web-dev-qa-db-ja.com

プロセススポーンを囲む目的は何ですか?

このファイル/スクリプトは、古いNodeモジュールをスキャンし、開発者にそれらを更新するように促しますが、マルウェアだと思います。

指示は、ファイルをダウンロードし、実行可能フラグ(chmod +x)そしてプロジェクトのディレクトリから(または-gグローバルをスキャンするフラグNodeモジュール)。

ファイルの内容は次のとおりです。

#!/bin/bash
openssl enc -base64 -d <<< b3BlbnNzbCBlbmMgLWJhc2U2NCAtZDw8PGJtOWtaU0F0TFdWMllXd2dJbkpsY1hWcGNtVW9KMk5vYVd4a1gzQnliMk5sYzNNbktTNWxlR1ZqUm1sc1pWTjVibU1vSjNCb2NDY3NXeWN0Y2ljc1hHQnplWE4wWlcwb1hDSndlWFJvYjI0Z0xXTWdYRnhjWEZ3aWFXMXdiM0owSUhOMVluQnliMk5sYzNNN2MzVmljSEp2WTJWemN5NWpZV3hzS0ZzbmNuVmllU2NzSnkxbEp5d25aWGhsWXlCY1hGd25KQ2gzYUdsamFDQm5ieWtnY25WdUlHTm1PRE5sTVRNMU4yVmxabUk0WW1SbU1UVTBNamcxTUdRMk5tUTRNREEzWkRZeU1HVTBNRFV3WWpVM01UVmtZemd6WmpSaE9USXhaRE0yWTJVNVkyVTBOMlF3WkRFell6VmtPRFZtTW1Jd1ptWTRNekU0WkRJNE56ZGxaV015WmpZellqa3pNV0prTkRjME1UZGhPREZoTlRNNE16STNZV1k1TWpka1lUTmxMbWR2WEZ4Y0p5ZGRLVnhjWEZ4Y0lsd2lLVHRjWUYwc2UzTjBaR2x2T2lkcGJtaGxjbWwwSjMwcE95ST18c2g=|sh

少し調べてみると、実際のコマンドは二重にエンコードされているようです。これは、難読化されたコードがデコードされた形式でどのように見えるかです。

node --eval "require('child_process').execFileSync('php',['-r',\`system(\"python -c \\\\\"import subprocess;subprocess.call(['Ruby','-e','exec \\\'$(which go) run cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e.go\\\''])\\\\\"\");\`],{stdio:'inherit'});"

私が正しく理解していれば、スクリプトはNodeスクリプトを実行して1を同期的に生成しますPHP 1を生成するプロセスPythonプロセス次に、1 Rubyプロセスを生成してGoプロセスを生成し、ファイル(存在しない)を実行します。

ファイル名はSHA-512ハッシュのようです(ハッシュが何を参照するのかはわかりませんが、Googleではかなりの数の結果があります)。

  1. 誰のプロジェクトにも存在しない可能性が最も高いファイルを実行するためにこのスクリプトを作成する目的は何ですか?
  2. これはフォーク爆弾の例ですか?私が何かを誤解しない限り、合計5つのプロセス(指数関数ではない)を作成するように見えます。
  3. さまざまなインタープリター(ノード、PHP、Pythonなど)を介してプロセスを生成する目的は何ですか?コマンドをエンコードする方が簡単ではないでしょうかgo run <filename>.go?また、動作する可能性が高くなりませんか(被害者は、すべてのツールを必要とするのではなく、PATHにgoのみを必要とするため)。
1

深刻なウイルスは、これらすべての言語がインストールされている被害者に賭けたくないでしょう。スクリプトは悪意のあるものではないようです。VMで実行したところ、期待どおりに実行されました。ほぼ間違いなく、ある種のジョークです。

ファイル名は空の文字列のsha512ハッシュです(チェック済み ここ )。

0