napping-1.0.1-vulnhub靶场
环境信息
靶机:192.168.124.147
攻击机:192.168.124.129
打靶过程
nmap 扫描端口及服务

发现开放 22,80 端口
目录扫描

访问 /config.php 是一个空白页

访问 80 端口是一个登录页面,发现可以注册

注册一个 test 用户并登录,提示让输入一个链接地址,管理员将审核

输入“https://baidu.com”并点击提交,发现出现了 a 标签链接可点击


点击后打开一个新的标签页就是输入的链接地址

这里使用 a 标签,并且 target=_blank,没有使用 rel="noopener/noreferrer" 属性,这样跳转很容易受到 tap nabbing 钓鱼攻击;同时使用 window.open 方法也存在该漏洞。
tap nabbing 钓鱼攻击
创建两个页面 a.html,b.html
a.html 为正常页面,b.html 为恶意页面

攻击机在该目录下开启 http 服务,并监听 7777 端口

在页面中输入恶意页面地址并提交

等待一会儿后,果然管理员上钩了,监听返回了数据包,包含了账号密码:daniel/C%40ughtm3napping123

其中的 %40 是 url 编码,解码为 @ 符号

ssh 登录
最终账号密码为 daniel/C@ughtm3napping123
ssh 登录该用户

查找用户组可执行的程序
发现该用户也在 administrators 用户组下
那么查找一下 administrators 组可以运行的程序
find / -group administrators 2>/dev/null
#如果在 Linux 执行 find 命令时弹出大量内容到终端,可以追加 2>/dev/null 在命令末尾,表示:把错误输出到 “黑洞”
Linux系统预留可三个文件描述符:0、1、2,意义如下:
0——标准输入(stdin)
1——标准输出(stdout)即输入到终端
2——标准错误(stderr)

发现定时执行程序
发现该 query.py 脚本是一个检查网站状态的脚本,并且在对 site_status.txt 进行写入操作

查看 site_status.txt 文件,发现每两分钟写入一次,说明 query.py 每两分钟执行一次

反弹 shell
既然 administrators 组用户对该脚本有写权限,我就可以在脚本里加入执行反弹 shell

先生产一个 python 脚本的 shell

稍加改动后,加入 query.py 脚本中:

稍等 2 分钟后,成功反弹 shell
当然,这里也可以在外面创建一个 shell.sh 脚本,在 query.py 中添加执行 shell.sh 脚本的命令也可反弹

在用户家目录下查看,发现似乎离得到 flag 还差一点

vim 提权
使用命令 sudo -l,发现可以以 sudo 权限执行 vim

查询发现 vim 命令可提权

那么直接提权
sudo vim -c ':!/bin/bash'

成功获取 flag

总结
1.tap nabbing 钓鱼:这里使用 a 标签,并且 target=_blank,没有使用 rel="noopener/noreferrer" 属性,这样跳转很容易受到 tap nabbing 钓鱼攻击;同时使用 window.open 方法也存在该漏洞。
2.用户组权限:find / -group administrators 2>/dev/null 查看administrators用户组可执行的程序
3.vim 提权:vim 被允许以 root 权限运行,可维持该权限

浙公网安备 33010602011771号