一.信息收集
端口扫描,照例整个全扫描
ok,开放了22.80.3306端口。先访问80端口康康,发现是个不认识的产品框架。可以,下面还有版本号,去搜搜有没有曝光的n day康康
可以,某歌,我愿称你为最强,轻易做到了某度做不到的事情。
英文不好,但大概意思就是访问那个路径有敏感信息泄露。
有趣有趣,竟然是数据库账号密码。难怪靶机开放了3306端口。尝试连接,一开始吃瘪了,因为真以为密码是<?php echo urlencode('UcVQCMQk2STVeS6J') ; ?>。后面试了两次才反应过来这是代码。可UcVQCMQk2STVeS6J的URL编码还是UcVQCMQk2STVeS6J啊,真是搞不懂。
连接成功,开始搞事情
二.渗透测试
第一反应,找到登录该产品的账号密码看看能不能从后台getshell,从qbms的configuration表中看见账号密码,账号是admin@localhost.com。可这密码......
好吧,mysql 的密码都是用SHA-256加密才存储的,这个我还是知道的。可我没想到cmd5竟然还解不开。
琢磨了好久,最后决定解不开算了。我都有数据库权限,重新写个密码存储到数据库里再去登录。可不知道盐值啊,想写也不知道怎么用加密格式写。找个AI问问盐值放在哪了
成,知道盐值放哪了,下载下来看看。结果呦呵,盐值不仅是乱码,还提示我THIS IS A COMBINATIO NO FIN VALID SALT AND PASSWORD THAT MUST NEVER BRBEUSED(这是一个无效盐值的组合,绝对不能使用)
也就是说思路一开始就是错的,后台根本没有shell。重新去网上查查资料,发现网上公开的该产品的命令执行漏洞都是9.1版本以前的,9.2根本找不到什么能getshell的漏洞。
靶机,你勾起了我的兴趣。从头开始审视,发现最开始端口扫描找到的22端口到现在都没有被用到。不会吧不会吧,不会直接ssh登录吧。从数据库里一通翻找,在staff数据库里找到一个login表和user表,user表里有人名应该是用户,可为啥login表里的数据都带着两个等号!!!mysql的加密方法里有base64吗,阿sir?!
base64解码,五个用户名五个密码总共才试25次。kali都懒得打开直接手工试。成功试出来用户名travis和密码DJceVy98W28Y7wLg(这里手工测试还帮我避过一个坑,因为数据库里用户名首字母其实是大写字母。但我手测时打错了,不然又得纠结半天哪里出了问题)
三.后渗透提权
试了试wget和gcc命令都能用,主机上先开启web服务,让靶机下个辅助提权脚本
把脚本放到tmp目录下跑,芜湖,又是脏管?!
赢麻了,去github下个脏管自动利用脚本,直接root,打靶结束