黑客19 – 引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!
1.信息搜集
先来看看目标站点的各种信息
后端PHP,前端使用layui,路由URL规则看起来像ThinkPHP,自然想到的是ThinkPHP那些年爆发的命令已经了,准备了一把梭子!然而,尝试了一番,并没有历史漏洞。
然后继续收集信息。这里首先使用的是Tide团队潮汐在线指纹识别39,看域名和旁站信息,资产还是很多的。PS:项目关系,这里截图只截图部分。
这里强烈的安利潮汐,虽然目前指纹识别指纹库不是很完整,但它集成了域名信息、子域名、旁站、C段等功能,加上是SaaS模式不会被封IP,因此,在信息收集的初始阶段是神兵利器。
扫描出的信息,含有大量登录窗口且界面UI它们非常相似。它们应该是同一家外包公司的产品,源代码也应该相似。查看子域名和旁站资产时,发现关键信息。
总结 :到目前为止,初步信息收集已经结束,获得的信息是ThinkPHP、FastAdmin、宝塔、外包公司、子域名、C段信息等
2.利用常见漏洞
宝塔和FastAdmin,首先FastAdmin印证了是ThinkPHP猜测,宝塔可以尝试使用宝塔phpmyAdmin利用未经授权的访问漏洞。
7.4.2(Linux)、7.5.13(Linux)宝塔面板版本未经授权访问phpmyAdmin通过访问ip:888/pma无需任何登录操作即可直接进入phpmyAdmin
访问宝塔没有响应,所以重点是FastAdmin上面,FastAdmin2020年有一个前台Getshell漏洞分析可见http://www.cnpanda.net/codeaudit/777.html,使用此漏洞时,需要打开目标站点的注册和前台登录功能。
访问FastAdmin站点,眼前一亮,祖师爷赏饭吃,基本默认FastAdmin Demo页面打开注册。然后上传图片马,访问/fastadmin/public/index/user/_empty?name=../../public/uploads/20210116/4a91d432904c0042bcd038ea96ad4947.jpg,emm,当时僵硬了0.5秒,访问后不是自己的小马,而是DEBUG页面,这个站其实是调试模式。
虽然FastAdmin根据DEBUG页面获取数据库的连接信息。
总结:我们依据信息搜集到的内容,对常见的漏洞进行了利用尝试,最终虽然没有利用成功的历史漏洞,但依据DEBUG拿到一个信息RDS数据库的权限。
3.权限放大
阿里云获得的数据库是阿里云RDS,使用Navicat连接数据库,查看admin表,系统有两个admin该账户包含密码和盐字段。百度在这里FastAdmin根据帖子内容,忘记密码并添加帐户。
https://ask.fastadmin.net/article/43.html2
数据库修改fa_admin?表的两个字段 密码(password):c13f62012fd6a8fdf06b3452a94430e5?密码盐(salt):rpR6Bv?登录密码登录密码123456
使用添加帐户登录后,发现无权访问后台
这里没有提示账户密码错误。添加帐户应该是成功的,所以查看数据库,看看是否有权限表。找到了三个关键的表信息,auth_group?,auth_group_access?,auth_rule
所以添加添加用户admin在分组中,成功登录,到目前为止看到了后台界面的全貌。
FastAdmin通过安装文件管理插件,后台提供了插件管理功能Getshell。官方商店的文件管理需要收费,之前的免费插件也被下架了。幸运的是,Github找到插件的源码。
https://github.com/WenchaoLin/Filex2FastAdmin文件管理插件
下载Zip后,在站点=>插件管理=>离线安装刚下载的插件,上传马,成功GetShell。
拿到shell先不急着开心,先看能不能旁站过去,还是经典祖师爷赏饭,shell虽然是www用户,但权限相当高,可以跨目录。
然后查看我们最初的目标,通过网站源代码整理数据库信息,然后重复以前的操作。
该网站的数据库不对外开放,监控本地端口,因此利用哥斯拉的数据库管理功能,连接目标数据库,增加管理员账户。
这里有一个小插曲。查看目标站点的源代码也是如此FastAdmin,但是通过添加之前找到的忘记密码的方法,提示账号密码错误。所以仔细看了看目标站点的源代码,得知认证方法是 md5(password salt),和FastAdmin认证加密方法不同,FastAdmin认证方法为md5(md5(password) salt);
FastAdmin通过认证GitHub文件找了一下。
https://github.com/karsonzhang/fastadmin/blob/12a62eaa0512a48ad9e150261170fafa870c3084/application/admin/library/Auth.php#L392
目标站点是Think PHP,因此在application/[module]/controller/Admin.php 可以找到。
接下来就简单了,php123456输出密码,salt指定字符串的密文即可。
然后通过哥斯拉,update查看之前创建的帐户,将密码更新为刚刚输出的密文,并成功登录。
结论:目标服务器的后台系统权限通过旁站的数据库权限成功获得。总体思路是找到后台认证加密的方法=>添加系统帐户=>GetShell=>横向目标=>寻找认证加密的方法=>添加系统帐户。另外由于各个站点之间没有隔离,旁站的shell目标站点shell没有区别,没有必要继续,这个渗透教程到此结束!希望大家看看借鉴。如果您有技术咨询,请联系我们
黑客19引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢