第46篇:伊朗APT组织入侵美国政府内网全过程揭秘(上篇)
Part1 前言
大家好,我是ABC_123,公众号更名为"ABC123安全研究实验室"。本期分享一个真实的APT实战案例,我查看了公布在网上的英文分析报告,并对部分汉化文章的翻译错误进行了改正,力图还原真实过程分享给大家。有些技术细节,英文报告中并没有提到,还望大家谅解。欢迎关注我的公众号"ABC123安全研究实验室"。
Part2 流程图
首先放一张我画的此次APT事件的流程图,这个APT案例的图示非常难画,还好之前在qax时"猛哥"分享了很多作图技巧,稍后文章会给出此次APT流程的详细讲解。
Part3 美国政府的分析报告
2022年11月16日,美国国家网络安全和基础设施安全局(CISA)与联邦调查局(FBI)发布了联合公告,由伊朗政府赞助的一个APT组织入侵了美国联邦民事行政部门(FCEB)内网。攻击者利用Log4j2(CVE-2021-44228)远程代码执行漏洞获取了外网的VMware Horizon服务器权限,安装了XMRig加密货币挖掘软件,同时在内网进行横向移动获取了域控服务器权限,之后在多台主机上安装了Ngrok反向代理程序用来做权限维持。
CISA安全局通过美国网络空间态势感知系统EINSTEIN(爱因斯坦)对此次事件进行了流量分析及溯源分析,CISA和联邦调查局(FBI)确定此次攻击事件是由伊朗政府赞助的APT组织入侵的。这两个机构还给出了事件处理建议:所有安装VMware系统的机构都应该在假设自己已经被入侵前提下,在各自的网络环境中寻找攻击者恶意活动,同时还给出了IOCs及TTPs帮助安全人员进行应急处理和溯源分析。
Part4 伊朗APT过程
2022年上半年,伊朗APT组织利用VMware Horizon的Log4j2漏洞,获取了未打补丁的VMware Horizon服务器权限,CISA追踪到了可疑的JNDI的LDAP回调行为,反向连接到51.89.181.64这个LDAP服务端的443端口,进而获取了VMware服务Administrator账号和系统权限。
接下来在服务器上执行如下powershell命令:
powershell try{Add-MpPreference -ExclusionPath 'C:\'; Write-Host 'added-exclusion'} catch {Write-Host 'adding-exclusion-failed' }; powershell -enc "$BASE64 encoded payload to download next stage and execute it"
上述Powershell命令为Windows Defender添加了一个排除规则,不对c:\目录进行恶意软件扫描。后续攻击者会在c盘创建drive目录,将渗透工具放在c:\drive目录下。
攻击者继续从/182.54.217.2/mdepoy.txt下载powershell脚本,保存为本地文件c:\users\public\mde.ps1。运行mde.ps1脚本,从182.54.217.2下载file.zip压缩包,之后删除mde.ps1脚本。
file.zip压缩包文件中含有XMRig加密货币挖矿软件及相关配置文件:
1 WinRing0x64.sys XMRig矿机驱动程序
2 wuacltservice.exe XMRig矿工
3 config.json XMRig矿工配置程序
4 RuntimeBroker.exe 这个程序可以创建一个本地的账户,并且通过ping 8.8.8.8命令测试互联网连通性。这个程序会创建一个名为RuntimeBrokerService.exe的计划任务,伪装成合法的Windows任务,每天以SYSTEM权限自启动RuntimeBroker.exe程序。
接下来,攻击者启用Windows内置默认账号DefaultAccount,并使用RDP登录方式在局域网内进行横向渗透,获取VMware VDI-KMS主机权限,攻击者利用来自144.76.136.153服务器的transfer.sh脚本,下载了30MB的各种文件,这些文件主要是以下几款黑客工具:
1 PsExec 供系统管理员使用的带有微软签名的工具。
2 Mimikatz 凭证窃取工具。
3 Ngrok 一个反向代理工具,可以用于绕过防火墙。
随后,攻击者在VDI-KMS服务器上执行Mimikatz程序获取服务器的账号凭证,同时创建了一个仿冒的域管理员账户。使用这个新创建的域管账号,攻击者通过RDP登录的方式,内网横向了很多主机权限。后续攻击者在多台内网主机上,通过图形界面GUI手动关闭Windows Defender,并且植入Ngrok代理程序及配置文件,这样可以确保在主机例行重启的时候,能够保持不丢失权限。
攻击者使用ngrok代理通过RDP服务连接内网主机,代理程序以HTTPS协议的443端口与tunnel.us.ngrok.com,korgn.su.lennut,com进行代理交互。攻击者也有可能配置了自定义的域名或者使用了其它的Ngrok隧道域名,导致有些攻击行为没有检测到,这些Ngrok隧道域名可能是*.ngrok.com, *.ngrok.io, ngrok.*.tunnel.com, or korgn.*.lennut.com等。
一旦攻击者在内网环境中建立了一个较深的据点并横向移动到了域控服务器,他们会执行如下Powershell命令在活动目录上,获取域内所有计算机列表:
Powershell.exe get-adcomputer -filter * -properties * | select name,operatingsystem,ipv4address
攻击者也更改了很多服务器的本地管理员的账号密码,以防止恶意的域管理员账号被删除或者被禁止。此外,还观察到攻击者尝试使用任务栏管理器转储本地安全机构子系统服务 (LSASS) 进程,但是被FCEB机构的防毒软件拦截了。
Part5 总结
1. 我曾经研究过伊朗APT35组织的工具,发现他们特别喜欢使用Powershell,放置挖矿程序是为了扰乱正确的溯源方向。
2. 上述行为可以看到,APT组织在内网横向过程中,特别注意权限维持。
3. 在对一个目标的APT实战攻击过程中,APT组织会使用大量的跳板机IP及代理域名,这样可以给应急响应及溯源分析工作增加难度,毕竟没法保证所有的反向连接行为都被阻断掉,当然这也是需要充足的资金支撑。
4. 伊朗的APT35组织也喜欢开启DefaultAccount默认账号,迷惑安全人员。
专注于网络安全技术分享,包括红队攻防、蓝队分析、渗透测试、代码审计等。每周一篇,99%原创,敬请关注
Contact me: 0day123abc#gmail.com(replace # with @)