攻防实战思路-不靠0day组合拳拿下目标系统

华盟原创文章投稿奖励计划

案例素材来源于以往参加的攻防比赛和众测项目,旨在拓展外网打点的思路,图片已做去敏处理,如有雷同纯属巧合!

前期准备防溯源

临时VPS:https://aws.amazon.com/cn/campaigns/nc20241001/?trk=870dbb43-c500-4476-8a82-5ea9637bd7a7&sc_channel=psm

代理节点IP:https://www.feiyuip.com/

记得勾选掉线禁用网卡✔,防止网络切换过程中泄露真实出口IP

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

演习规则解读

注意 事项 内容
优先目标 攻击范围:提前沟通好目标分子公司是否算范围内,占比多少,提防裁判变卦;
多倍积分:关注多倍积分目标,方法用对,事半功倍
协同合作 攻击细节:补充POC等细节,方便与裁判争论和复现;
人员分工:A负责外网打点,B负责内网横向等,避免浪费人力,成果通过语雀或雨墨同步
现场洞察和预判 拿分目标:关注大屏攻击动态,找侧重;热点目标:关注裁判沟通内容,通常会讨论被攻击的目标、攻击队利用的攻击手段等;
出局预判:关注大屏防守方扣分情况,根据出局线预判即将下线单位,可优先集火攻击
裁判处合理获取信息,如目标信息、时间信息、成果是否值得深入等
信息获取 从裁判处合理获取信息,如目标信息、时间信息、成果是否值得深入等;如嘉定雪亮工程,以及雪亮工程和公安的关系。
成果最大化 隐患内容(权限)尽数勾选,是判分的依据,不要遗漏;
数据分:数据量和危害性,危害、影响描述尽可能大;
详情罗列:描述处所有成果依次罗列,标注好入口和横向方式;
沟通的艺术:和裁判谈判!裁判不聪明就换个裁判!

小程序弱口令爆破–Fuzz相似api接口越权–hash碰撞获取管理员密码–接管高权限账户

通过微信小程序搜索目标单位,发现一处后勤管控平台资产

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

shiro框架的,爆破一波key试试,好吧不成功

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

像这样的系统一般以员工工号作为用户名,通过google语法搜出工号位数为5位数字(类似10001,10002)

固定密码为123456,祭出我的Top1000用户名进行爆破,成功爆破出三个弱口令

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

这时候继续翻找功能点,毕竟弱口令才20分一个

从history中翻出这么一个接口,StaffListV2返回包提示没权限,尝试Fuzz相似接口

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

尝试把 StaffListV2 修改为 StaffListV1、StaffListV3、StaffList

发现StaffList没做鉴权,能够获取所有员工的邮箱和工号信息

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

接着通过小程序解包找到web后台管理地址:https://api.xxxx-admin.com

小程序解包项目:https://github.com/Ackites/KillWxapkg

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

利用小程序爆破出的账号密码进行登录

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

但由于我们爆破出的账号为普通员工账号,因此后台没有数据,所以我还需要去尝试接管管理员账号

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

翻看history数据包,发现在修改密码功能有一个api接口返回了用户名pwd_hash

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

通过传入userid可以越权查看他人的pwd_hash,刚好我们在StaffList接口能够获取所有员工的userid

接着分析pwd_hash,虽然无法直接解密,但返回包中包含了随机的salt值

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

分析后发现 pwd_hash=(password md5–salt)sha256,根据此编写对应的碰撞脚本

1.使用密码和盐值生成基于 MD5 和 SHA-256 的哈希值

2.从指定文件中读取密码列表,每行一个密码。

3.将密码文件中的每个密码与提取的盐值和哈希进行比对,找到匹配项

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

成功碰撞出高权限账户密码 1qaz@WSX

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

JS隐藏注册页面–短信验证回显–断点调试获取动态密钥–越权获取其他用户手机–登入管理员后台

渗透测试过程中,要善于通过js挖掘隐藏接口,找到那些没有在前端页面明面暴露的遗留或测试接口

  • 可通过全局检索js代码,查找路由配置、接口注释或服务端代码中的注册逻辑
  • 通过修改常见的注册接口路径(如 /api/register, /user/signup, /auth/create)尝试访问,看看是否有响应。
  • 结合字典爆破(如使用 dirbuster、ffuf 等工具)扫描可能的接口路径

这里通过全局检索js代码 register字段

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

正想拿小号接收个短信验证码,突然发现 /xxx/sendsmscode/接口泄露了验证码内容信息

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

存在短信验证回显漏洞,意味着我们可以伪造任意手机号进行系统登录,但如何获得管理员的手机号呢?

这时候脑海里有三个思路

  • 社工手段获取目标管理员手机号(通过各种搜索引擎,打电话均无结果,放弃)
  • 手机号爆破(尝试爆破了几万次,成功次数为0,也放弃)
  • 最后决定进入后台挖掘越权漏洞

随意手机号注册系统,抓包发现数据包为加密字段

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

通用思路,首先确认加密函数位置,设置条件断点(如访问 encrypt 字段或调用 AES-GCM 函数时触发)

然后观察函数参数,尤其是密钥和初始化向量(IV)参数,接着跟踪密钥的来源,看是否硬编码或通过密钥交换生成

这里全局搜索encrypt字段,发现使用的AES-GCM加密方式,加断点动态调试获取session key

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

PS:这里的session key是一次性,刷新页面就会变化

使用AES-transfer 插件自动替换字段

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

成功获取明文数据

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

成功解密出数据后,开始寻找可能存在越权的接口

这里有小技巧: 可以通过搜索存在id参数的接口,配合hae插件泄露用户信息提示快速挖掘越权

最终通过 /xxx/xxx/Getinfo?pageIndex=1&pageSize=15&key=1&id=72 成功找到越权点获取管理员的手机号

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

最后利用管理员的手机号–短信验证回显成功登录后台

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

VUE未授权获取账号–验证码爆破–配置文件获取数据库账密–百万数据泄露

通过jadx反编译app,找到管理系统域名地址

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

可以看到登录页面有数字验证码,

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

抓包发送到验证码识别模块

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

https://github.com/f0ng/captcha-killer-modified

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

最近发现一个针对vue很不错的浏览器插件: https://github.com/Ad1euDa1e/VueCrack

用于分析Vue框架网站的路由结构,并绕过路由守卫机制,从而发现站点的隐藏资产与未授权访问漏洞

通过vue泄露的未授权路由/admin/dashboard,右上角获取管理员的掩码手机号 155xxxx0168

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

找到许可证功能点–文件上传,没有任何拦截很舒服

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

getshell后发现为iis权限,权限太低只能浏览部分文件,很多命令无法执行

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

看到进程里有sunloginclient.exe,尝试读向日葵配置文件

向日葵默认配置文件路径: 安装版:C:\Program Files\Oray\SunLogin\SunloginClient\config.ini 便携版:C:\ProgramData\Oray\SunloginClient\config.ini 本机验证码参数:encry_pwd 本机识别码参数:fastcode(去掉开头字母) sunlogincode:判断用户是否登录状态 

读到了但是连接不上

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

柳暗花明又一村,这时候通过 web.config 文件找到数据库账密

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

指纹识别jeecg–swagger信息泄露获取token–命令执行

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

常规的目录扫描,弱口令均发现问题,正打算看下个站点,这时候通过 sweetpotato 插件发现目标系统框架为 jeecg

https://github.com/z2p/sweetPotato

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

JeecgBoot 受影响版本中由于积木报表 /jeecg-boot/jmreport/queryFieldBySql Api接口未进行身份校验,使用 Freemarker 处理用户用户传入的 sql 参数,未经授权的攻击者可发送包含恶意 sql 参数的 http 请求,可以通过 SSTI 在应用端执行任意代码

POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1 Host:  User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36 Connection: close Content-Type: application/json Content-Length: 105  {"sql":"select 'result:<#assign ex=\"freemarker.template.utility.Execute\"?new()> ${ex(\"whoami \") }'" } 

发送数据包回显报错,提示缺少token

有时候开发人员会考虑兼容性,并未直接更新版本修复,可能仅增加鉴权把接口回收至后台

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

那么我们该如何进入后台或获取有效token呢?爆破弱口令很明显行不通

这时候扫描目录发现站点存在swagger信息泄露

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

通过 httptrace接口获取有效的x-access-token

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

请求携带 x-access-token成功执行命令

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

旁站备份文件泄露–go代码审计绕鉴权–yaegi第三方库命令注入

搜集完一二级域名后未有太大进展,继续搜集三四级域名(Oneforall、Amass、SubdomainBrute)

凭借敏锐的嗅觉发现一个测试平台疑似有戏,右键查看源代码提取网站特征,body = ‘updatexxxxx’

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

代码审计辅助:一些好用的静态代码扫描插件分享,使用体验下来挺不错

https://github.com/KimJun1010/inspector

https://github.com/Zjackky/CodeScan

https://github.com/SpringKill-team/SecurityInspector

这个系统使用的是gin框架,Gin 框架中的路由定义了客户端请求的 URL 和处理该请求的函数之间的映射关系,Gin框架的路由可以找GET、POST等关键字。

如下图,我们可以看到/giro/stats/ 路由对应的请求方法为POST,函数处理逻辑则在stats.HandleUrl函数中

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

sql注入大多存在于fmt.printf中使用%s拼接导致

query := fmt.printf("SELECT * FROM users WHERE name='%s'", name)  rows, err := db.Query(query) 

可以通过%s进行全局搜索,但跟了一波并未发现用户侧输入可控的有效注入点

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

这个时候发现其引入了yaegi第三方库 https://github.com/traefik/yaegi

yaegi 库中常用于插件系统、动态脚本执行等场景,但同时i.Eval 方法支持动态执行用户提供的 Go 代码会导致安全问题

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

这里发现没有对用户输入做安全控制,导致存在命令注入的问题

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

根据路由定位到对应功能点,但直接访问会重定向到首页

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

这时候发现其写法为 context.Request.URL.Path

我们可以将请求的Path进行URL编码绕过鉴权,由于 request.url.path 特性仍能正确匹配到路由

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

发送payload,成功执行命令回显dnslog

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

asp调试信息泄漏–后台FTP下载源码–模板插件压缩包上传–某云替换hash登录系统

扫描目录发现asp.net调试信息泄漏,泄漏Cookie信息:/Trace.axd?id=0,替换Cookie进⼊后台

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

使用burp自带替换cookie进入后台,在配置文件位置抓包找到FTP账户密码

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

正常ftp服务能直接上传webshell,但这个环境不行,可能是由于设置问题只允许文件读取和下载

于是把根目录下的www.zip打包到本地进行代码审计

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

上传压缩包位置仅做了zip后缀过滤,继续跟UploadPackage往下看

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

发现默认上传路径为 /App_Data/BaseManage/Applications/,但该路径前台无法访问

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

继续翻找发现copyfile的方法,可以通过传入json文件,把压缩包解压到指定的路径 "/App_Data/BaseManage/Applications/" -- appkey

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

因此我们可以构造 app.json ,一同打包到压缩包里

    "AppName": "111",    "AppKey": "../../../Test",    "Version": "0.0.0.1",    "Author": "222",    "Roles": "Administrators",    "Description": "333"   

接着选择压缩包上传–安装

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

getshell拿下该服务器权限,拿下后发现靶标系统也在该服务器下,本打算提交报告收工

这时候裁判方要求证明能够登录web系统,好吧那只能再加会班

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

开始翻找数据库配置⽂件 ./xxx/xxx/product/application.ini,找到 root/ENC(2RllAsMDeSP–MsRbM0CdSS7xxxxxx7XeyVHQNGUBE0XU=)

这里密码为加密字符串,不能直接使用,继续定位找到加密逻辑代码

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

分析后发现使用AES-128-CBC 加密,key会使⽤sha256循环hash 100次⽣成最终的key

根据加密逻辑编写脚本,成功解出数据库密码

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

mysql -u root -p KFMI5xxxxxVOCC select * from xxxx.v3_user limit 0,100; 

密码为 BCrypt 算法生成,不可逆只能替换

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

例如,一个 BCrypt 哈希值的格式如下:

$2a$10$QkBrYzvFkxslEu.NR4K6jOScKpiEqeptALHRoVkj5hoMFm9TqCm8u 

其中:

  • $2a$:表示 BCrypt 算法的版本。
  • 10:表示工作因子为 10,工作因子越大,安全性越高。
  • QkBrYzvFkxslEu.NR4K6jO:是随机生成的盐值。
  • ScKpiEqeptALHRoVkj5hoMFm9TqCm8u:是加密后的密码哈希值。
  • https://github.com/gchq/CyberChef

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

重新生成一个替换即可 (记得保留原来的值后面替换回去),成功拿下靶标

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

网页导航–旁站端口扫描–docker未授权K8s集群–环境变量获取密码–接管云主机平台

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

通过扫描旁站端口发现其中6666端口存在目录遍历

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

可通过 UploadSource – UploadDestination 达到模拟远程下载webshell到服务器的效果

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

找到前台页面,右键查看源代码,随便找一个静态资源chunk-000a3681.70cde055.css,一般静态资源目录下前台可以直接访问

find /|grep chunk-000a3681.70cde055.css|while read f;do sh -c 'echo xxx | base64 -d' >$(dirname $f)/test.jsp  

找到前台路径直接下载webshell,哥斯拉直接连接

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

接着fscan扫描内网,发现存在docker未授权

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

任意选择一个节点进行验证

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

在 云管平台 里,数据库账号和密码往往涉及多层组件,常见的地方主要有:

  • 应用配置文件

    • application.properties / appsettings.json / web.config / config.yaml
    • 很多平台把数据库连接字符串(含账密)直接写在这里。
  • Docker Compose / Kubernetes 配置

    • docker-compose.ymlk8s deployment.yaml 中可能写死账号密码。
  • 云管平台可能用环境变量存储数据库连接字符串

    DB_USER=admin DB_PASS=SupXXXXXXX123 

    这里恰恰密码就存放在环境变量里

    国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

连接数据库,定位web系统对应的表,新增管理员用户 adminx

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

成功登录h3c云管平台,可管控1000–云主机

国家安全机关破获美国国家安全局重大网络攻击案|大众汽车遭8Base勒索团伙攻击,敏感数据疑遭窃取

文章来源:亿人安全

本文来源数世咨询,经授权后由华盟君发布,观点不代表华盟网的立场,转载请联系原作者。

发表回复