信息搜集

nmap -sC -A -T 4 -n 10.10.10.171

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

image.png
image.png

访问 web:并没有发现什么

image.png
image.png

DirBuster,选择/usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
进行目录爆破

image.png
image.png

发现两个目录 music 和 ona
挨个访问,先看 ona

image.png
image.png

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

image.png
image.png

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

image.png
image.png

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

image.png
image.png

漏洞利用

searchsploit opennetadmin 搜一下利用的

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

image.png
image.png

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

image.png
image.png

关于 shell 脚本传参:
$0 是自身文件名
$1 就是第一个参数,比如:

image.png
image.png

执行:./47691.sh http://10.10.10.171/ona/ 拿到 shell
(我把 47691 改成 yichen 了 ,另外会有延迟,执行之后稍等一下)

image.png
image.png

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

image.png
image.png

使用 ls,尝试去找目录

在 /var/www/ 目录下使用 ls -la 查看文件信息,可以发现有个用户是 jimmy
-a 列出所有文件,包括 . 开头的
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

image.png
image.png

在 /var/www/ona/config/ 发现 config.inc.php
里面发现 dbconffile 的目录

可能需要了解一下 linux 各个目录是干啥的,这样才能知道要用到什么
会在 杂项 知识库补充,然后在下面做个超链接

image.png
image.png

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

image.png
image.png

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

image.png
image.png

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

image.png
image.png

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

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

image.png
image.png

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

image.png
image.png

同时了解一下 curl 这个功能,同样在 杂项 知识库记录

讲这个密钥保存出来:

image.png
image.png

然后使用:
python /usr/share/john/ssh2john.py mi > sshjohn 将保存出来的 mi 转换成 john 格式

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

john --wordlist=/usr/share/wordlists/rockyou.txt sshjohn 使用 john 爆破 –wordlist 指定字典

image.png
image.png

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

image.png
image.png

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

image.png
image.png

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

image.png
image.png

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

image.png
image.png
image.png
image.png

成功读取:

image.png
image.png