プログラムコード消えて終わり(かと思いきや...)
皆さんこんにちは、紫夜千景です。
えー、昨日の記事の最後におきまして
こう書いたんですがこの後、保存していたプログラムコードをWindows Defenderに脅威判定されてプログラムコードが書かれていたtxtファイルが消されました。
危ないこと書いてあるからバックアップしなかったのが裏目に出ました。
うーわマジか...と思いながらどうにかならんかと代わりを探していたところ...
5分でかつて使っていたのとまったく同じサンプルが手に入りました。
これで一安心です。
とりあえず、Windows Defenderに検知されないようにするために急いで記事を書きます。
しかし、私はPowerShellコード?やプログラム?なんて一切分からないので今回はChatGPTに聞くことにしました。
今回も危ない部分にはモザイクをかけます。コードやプログラムが気になる方もいるかも知れませんが、ご了承ください。
昨日の記事では公開していませんでしたが、23498文字の難読化されたコードから802文字のコードに簡略化すると
こんな感じのコードになります。
問題になりそうな部分が冒頭にしかなくて助かりました。
PowerShellに詳しい方はすぐ分かるかもしれませんが、千景さんは分からないのでChatGPTに聞いてみました。
ほうほう。
と、ChatGPTの説明を受けて改めてコードを見直したらなんとなく動作が理解できました。
動作を説明すると
- 変数1を使って文字列を保存。
- 変数1の文字列にある「#」を「2」に、「%」を「3」に置き換えた文字列を変数2に保存。
- 変数2の文字列を2文字ずつ区切り、それを16進数として変換する。その変換した16進数をバイト配列として変数3に保存。
- 変数3のバイト配列をASCII文字列に変換して変数4に保存。
- 変数4の最初の3文字と39文字目以降を取得し、それをPowerShellでコマンドとして実行。
という動作です。
これの手順を踏んで、最後の手順を行う手前の変数4に保存されている文字列がおそらくこれです。
モザイクで隠している部分はリンクで、マルウェアのダウンロードリンクだと思われます。
実は、最後の手順をChatGPTにテストさせたんですがなぜか最後の手順を行う前と同じ文字列が出力されるんですよね。
もしかしたらプログラムが違うかもしれないし、ChatGPTがどこかで間違ってるかもしれないですね。
この文字列をPowerShellで実行するとどうなるのか最後に聞いてみると
と教えてくれました。これを教えてもらった後にコードを見るとなんとなく動作が理解できる。
これの動作原理は
- iex(昨日の記事で出たInvoke-Expressionと同じ)を使って文字列をコマンドとして実行、処理。
- 「new-object net.webclient」と続くコマンドで「WebClient」オブジェクトを作る。
- 「;」で一旦区切る。
- もう一度iexを用いて先ほど作った「WebClient」オブジェクトを使い「downloadstring」メソッドを呼び出し、対象のURLからマルウェアをダウンロードする。
ここら辺あんまり理解が浅いので正確な動作原理がイマイチです。
ここ3日の記事をまとめて結論を上げるなら
「偽のreCaptcha認証を通してユーザーが知らずのうちにPowerShellを使って実行したコマンドを起点に難読化処理されたプログラムやコード、コマンドを用いてマルウェアをダウンロードし、実行させる。」
というものだと思います。
難読化処理されたプログラムなどを使っている点が厄介ですよね。何されるか分かんないんだもん。
でも、Windows Defender側も難読化されたPowerShellのプログラムコードを脅威として検知して対処されたのでセキュリティ側も黙ってはいないようです。
消されたときは不安だったけど、セキュリティがちゃんと反応してくれた時はなんか安心しました。
マルウェアをダウンロードして動作を調べてみるのもアリだと思いましたが、exeファイルをダウンロードする時点でセキュリティに弾かれそうなのもありますし、ダウンロードできてもWindows Defenderが脅威としてすぐ削除してきそう。
たとえそれらを潜り抜けてもexeファイルの解析環境なんか無いので、ここでこの話題は終わりにしたいと思います。
(正直マルウェアダウンロードしたくないもん、怖い。)
昔独学でほんのちょっとやってた分野のことだったのでここ数日は楽しく記事が書けました。
また興味が出てきたり、こんな感じの話題を見つけたら今回みたいなのを書こうと思います。
最後に一言
つかれた!!!!!!!!!!!!!!
コメント
コメントを投稿