難読化されたPowerShellの解読にはWrite-HostやWrite-Outputが便利

以下のような難読化されたPowerShellコマンドがあったとする。

("{1}{0}" -f 'AN','C') ([chAr]89+[chAr]79+[chAr]85) ('SZZ'.replace('Z', 'E')) ('T','H','I','S' -jOin '')([char]63)

PowerShellを立ち上げて、Write-Hostで上記をコンソール出力させると、手っ取り早く解読できる。

write-host ("{1}{0}" -f 'AN','C') ([chAr]89+[chAr]79+[chAr]85) ('SZZ'.replace('Z', 'E')) ('T','H','I','S' -jOin '')([char]63)

ps1.png

結果をファイルに出力したい場合はWrite-Outputを使う。

write-output ("{1}{0}" -f 'AN','C') ([chAr]89+[chAr]79+[chAr]85) ('SZZ'.replace('Z', 'E')) ('T','H','I','S' -jOin '')([char]63) > out.txt

もしくは

write-output ("{1}{0}" -f 'AN','C') ([chAr]89+[chAr]79+[chAr]85) ('SZZ'.replace('Z', 'E')) ('T','H','I','S' -jOin '')([char]63) | out-file -filepath .\out2.txt

※もし解読しようとしているPowerShellコマンドに悪意のあるコードが含まれている場合、コードが実行されてしまう可能性があるため、必ずVMなどの安全な環境で検証すること。

以上。

Leave a Reply

Your email address will not be published. Required fields are marked *