【HTB】OpenAdmin

感觉

学了那点 web 安全基础知识之后

完全放下有点亏

决定一周做一个靶机

在这里记录一下

都是跟着网上的 wp 复现的(菜

信息搜集

nmap -sC -A -T 4 -n 10.10.10.171

nmap参数:

-sC    根据端口识别的服务,调用默认脚本  -A     OS识别,版本探测,脚本扫描和traceroute  -T  (0-5)时间优化  -n/-R   不对IP进行域名反向解析/为所有的IP都进行域名的反响解析

访问web:并没有发现什么

DirBuster,选择

/usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt

进行目录爆破

发现两个目录 music 和 ona

music,点击 login 会跳到 /ona/ 目录

挨个访问,再看 ona

/ona/目录下提示的最新版是:OpenNetAdmin,当前版本是18.1.1.1

OpenNetAdmin 官网(来自谷歌自动翻译,了解一下是干啥的)

漏洞利用

searchsploit opennetadmin 搜一下利用的

searchsploit 是一个命令行搜索 exp 的工具,可以直接搜,使用空格来区分关键词

searchsploit -m 47691 使用参数 -m 将利用脚本复制到当前目录

关于shell脚本传参:

$0 是自身文件名

$1 就是第一个参数,比如:

执行:

./47691.sh http://10.10.10.171/ona/

拿到shell

(我把 47691 改成 yichen 了 ,另外会有延迟,执行之后稍等一下)

但是权限比较低,当前用户是:www-data,没法执行 cd 命令

使用 ls,尝试去找目录

在 /var/www/ 目录下使用 ls -la 查看文件信息,可以发现有个用户是 jimmy

-a 列出所有文件,包括 . 开头的

-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

在 /var/www/ona/config/

发现 config.inc.php

里面发现 dbconffile 的目录

找到数据库的用户名和密码

使用 n1nj4W4rri0R! 作为密码,使用 Jimmy 作为用户名 ssh 登录成功

可以看到 main.php 他会输出 joanna 的 .ssh 的 id_rsa

但是当我们去 curl 的时候没有输出,可能并不是在默认的 80 口,使用 netstat -tulpn 查看一下

netstat 各个参数解释

-a (all)显示所有选项,默认不显示LISTEN相关  -t (tcp)仅显示tcp相关选项  -u (udp)仅显示udp相关选项  -n 拒绝显示别名,能显示数字的全部转化成数字  -l 仅列出有在 Listen (监听) 的服务状态  -p 显示建立相关链接的程序名  -r 显示路由信息,路由表  -e 显示扩展信息,例如uid等  -s 按各个协议进行统计  -c 每隔一个固定时间,执行该netstat命令

猜测运行在 52846 上,所以 curl http://127.0.0.1:52846/main.php

把这个密钥保存出来:

然后使用:

python /usr/share/john/ssh2john.py mi > sshjohn

将保存出来的 mi 转换成 john 格式

ssh2john.py 的作用就是把 ssh 密钥 改成 john 可以识别的格式

john --wordlist=/usr/share/wordlists/rockyou.txt sshjohn

使用 john 爆破 –wordlist 指定字典

然而这一个并不是 ssh 连接的密码,而是使用密钥进行登录时的密码

这样就登陆了 joanna,在当前目录下有个 user.txt 里面存着 flag

使用 sudo -l 可以发现,下面两个不用密码就可以以 root 权限执行

使用 sudo /bin/nano /opt/priv 打开,然后使用 ctrl+R 来读取 /root/root.txt 的内容

成功读取:

第一次做

专门选了个评价是最简单的那种

然而还是搞懵了