本文记录攻破Hack The Box - OpenAdmin的关键步骤,参考了众多大神的WP
端口扫描
首先使用nmap扫描端口
nmap -A -T4 -Pn 10.10.10.171
发现目标系统使用Ubuntu并且对外开放了SSH 22和Apache 2.4.29 80端口
web 扫描
使用nikto
扫描目标网站
nikto -host 10.10.10.171 -port 80
这里没有看到什么可以利用的信息。然后通过浏览器访问目标80端口发现只有一个apache2的默认页面,此时考虑使用
gobuster
或者Kali自带的dirbuster
配合目录字典查找网站目录,字典使用/usr/share/wordlists/dirbuster
- gobuster示例
gobuster -w /usr/share/wordlist/directory-list-2.3-medium.txt -u http://10.10.10.171
-
dirbuster示例
通过扫描目录发现了几个可以访问的web路径,如/music/通过浏览器访问该页面,似乎并没有发现什么可以利用的弱点。直到访问到/ona/,发现这实际上是一个开源的管理页面( OpenNetAdmin version 18.1.1 )
web 漏洞利用
搜索 ONA 18.1.1的漏洞发现他存在一个远程代码执行漏洞,将该脚本复制到本地的.sh文件然后执行
sh ona1811.sh http://10.10.10.171/ona/
漏洞可以成功利用,拿到了目标服务器的shell,但是该账号不是root,权限比较小,所以下一步尝试获取更大权限的账号。通过浏览目录上的文件,我们发现
/home
下面有两个其他用户的文件,查看/etc/passwd
证实linux确实存在这两个账号,但是/etc/shadow
权限不足无法读取,没办法做口令hash的爆破最终在
local/config
目录下找到一个数据库的配置文件,并且包含明文的数据库账号和密码经尝试,这个密码
n1nj4W4rri0R!
正是前面我们在/home
下看到的jimmy
的账号密码,因此可以通过ssh直接登录jimmy的账号
ssh jimmy@10.10.10.171
账号获取
使用jimmy的账号登录以后,执行find / -type f -user jimmy
查询jimmy有权限访问的文件,从查询结果中看到一些疑似是apache的web目录
查看
main.php
的内容发现,这个php会打印出joanna
的rsa秘钥文件,这个秘钥有可能可以用来ssh到joanna的账号尝试用
curl
访问这个页面,结果返回404错误但是我们确认这个文件是存在的,后来查看监听端口发现这个服务器除了80端口以外还有一个不常用的52846端口,尝试访问这个端口,最终返回了一个RSA秘钥
这里还看到别的大神用了一个神奇的脚本linpeas,可以一键收集linux的所有信息
这里推测这个RSA私钥就是ssh的key,将私钥部分保存到joanna_rsa,然后执行
ssh -i joanna_rsa joanna@10.10.10.171
,结果发现这个私钥居然还设置了密码。。。
这里要注意,执行使用这个秘钥的时候会提示你文件权限太大,需要将权限改为400,
chmod 400 joanna_rsa
接下来需要用john
来破解这个秘钥文件的密码,但首先要先将文件转换为john可以处理的格式,在kali执行/usr/share/john/ssh2john.py joanna_rsa > joanna_rsa.hash
,然后使用john
配合rockyou.txt
爆破密码
所以密码是
bloodninjas
,然后使用该秘钥文件ssh joanna的账号成功拿下
user.txt
。但是这个账号还是没有root权限,这时我们可以使用sudo -l
查看这个账号可以无需密码就可以执行的特权操作权限提升
这里看到在一个特定路径/opt/priv
下面可以执行nano,这个nano
有时可以绕过权限管理读取文件甚至执行命令
sudo /bin/nano /opt/priv
然后依次按
contrl+r
,contrl+x
然后输入reset; sh 1>&0 2>&0
可以进入命令模式