セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

PowerShell難読化をだた試しながら読む(1) Binary Pulsarさんの記事

//

ただ下の記事を読んで試すだけ。そのうち忘れて終わりそうな、、笑
PowerShell難読化の基礎 (1) – Binary Pulsar


はじめに

難読化されたコードは実行中に意味あるコードに変わり、コードを評価する関数で実行する。
JavaScriptPHPなどでは、eval関数。PowerShellの場合はInvoke-Expressionコマンドレットやアンパサンド記号がそれ。

Invoke-Expression

パイプで繋がるよってことと、省略形の"iex"の方が一般的に使われるよってこと。
f:id:thinline196:20180905202011p:plain

アンパサンド記号

アンパサンド記号はファイルや関数を実行する関数であるため、複雑なPowerShellスクリプトソースコードを引数に渡しても、実行できません。

f:id:thinline196:20180905202458p:plain


Invoke-Expressionの難読化

どのマシンでも同じと保証されている環境変数を利用する。COMSPECはcmd.exeまでのパスが入っている。PowerShellは大文字小文字の区別はないらしい。
f:id:thinline196:20180905203734p:plain


コードの難読化

アルファベッドをアスキーで表現する。出力は " -Join '. ' "で繋げてあげるとコピペしやすい。
f:id:thinline196:20180905204809p:plain
f:id:thinline196:20180905211435p:plain