天涯论坛

 找回密码
 立即注册
搜索
查看: 23|回复: 0

实战 | 记一次Fastadmin后台getshell的渗透记录

[复制链接]

3047

主题

119

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99159060
发表于 2024-10-10 03:36:01 | 显示全部楼层 |阅读模式

文案作者 :小九

文案源自war9.cn

1.信息搜集

先来瞧瞧目的站点的各样信息

后端PHP,前端运用layui,路由URL规则看起来像ThinkPHP,那自然想到的是ThinkPHP哪些年爆发的命令执行了,准备一把梭!然而,尝试了一番,并历史漏洞。

那接着继续信息搜集,这儿首要运用的是Tide团队的潮汐在线指纹识别,看了下子域名和旁站信息,资产还不少。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上面,FastAdmin在2020年有一个前台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.html

数据库修改fa_admin表的两个字段

秘码(password):c13f62012fd6a8fdf06b3452a94430e5

秘码盐(salt):rpR6Bv

登录秘码是 123456

运用添加的账号登录后,发掘权限拜访后台

这儿提示账号秘码错误,添加账户应该是成功了,于是翻看数据库,看有权限表之类的。找到了三个关键的表信息,auth_group,auth_group_access,auth_rule

于是将添加的用户添加到admin分组内,成功登录,至此看到了后台界面全貌。

FastAdmin后台供给了插件管理的功能,能够经过安装文件管理插件进行Getshell。官方商店的文件管理需要收费,另一之前一个免费的插件被下架了,还好在Github找到了此插件的源码。

https://github.com/WenchaoLin/Filex            FastAdmin文件管理插件

下载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#L39

目的站点是Think PHP,因此呢在application/[module]/controller/Admin.php 就能够找到。

接下来就简单了,php输出一个秘码为123456,salt为指定字符串的密文就可

之后经过哥斯拉,update一下之前创建的账号,将秘码更新为刚才输出的密文,成功登录。

总结:经过旁站的数据库权限,成功拿到了目的服务器的后台系统权限。

整体渗透思路:

寻找后台认证加密方式=>添加系统账户=>GetShell=>横向目的=>寻找认证加密方式=>添加系统账户。 

另一因为各个站点之间隔离,旁站的shell和目的站点的shell差别,无需继续,至此渗透结束。

侵权请私聊公众号删文





上一篇:基于TP框架的fastadmin研发插件基本流程
下一篇:FastAdmin答题考试系统-全开源商用小程序源码小程序-fastadmin插件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 21:08 , Processed in 0.094550 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.