2018年、Emotetの活動が急増しました。Emotetは当初、バンキング型トロイの木馬として始まりましたが、このブログでは、それがどのようにして「脅威の拡散者」。サーバー側とクライアント側の活動、そしてその拡散方法についても解説します。自己増殖性が高いため、セキュリティベンダーにとって静的に検出することがより困難になっています。スパムメール内のURL、これらのURLにホストされているマルウェアが絶えず変化していること、そしてブルートフォース攻撃によるラテラルムーブメントについても解説します。
Emotetとは何ですか?
Emotetマルウェアキャンペーンは2014年から存在しています。様々な手法や亜種を用いて、定期的に発生し、被害者にマルウェアを配信します。攻撃者は複雑な手法を用いて検出を回避しています。スタンドアロンのバンキング型トロイの木馬から、複雑な脅威の配信者へと進化しています。2017年初頭には、PDFファイルやJavaScriptファイルが添付されたマルスパムメールを通じてEmotetキャンペーンが拡散していました。2018年には、高度に難読化されたマクロが組み込まれたMS Office Word文書を通じて拡散しています。メールには、MS Office(Word、Excel)文書をダウンロードするためのURLも含まれています。US-CERTは、この件に関して情報公開を行いました。 アラート Emotet がいかに深刻な脅威であるかを強調します。
より複雑なディストリビューターになる理由は何ですか?
このマルウェアは持続的な感染を示し、URLと配信ペイロードを定期的に変更するという非常に積極的な手法を採用しているため、静的な検出は困難です。また、ネットワークの認証情報、メールアカウントの認証情報、Webブラウザに保存されているパスワードの窃取も確認されています。このマルウェアは、窃取した認証情報を用いたブルートフォース攻撃によって、ネットワーク全体に拡散しようとします。被害者のOutlookアカウントから名前とメールアドレスをスクレイピングすることでメールIDを乗っ取り、そのアカウントを使用してさらにマルスパムを送信することで、被害者をスパマーへと変貌させます。
感染ベクター:

キャンペーンは2つのステージに分かれています。
- ウェブサイトへの攻撃。
- 被害者のマシンへの攻撃(前回のブログで既に説明しました)
これらの侵害されたウェブサイトは、最新のマルウェアをホストするために使用されました。これらのマルウェアはドキュメントとしてダウンロードされ、その後、マルウェア拡散の最終段階でEmotetの実行ファイルとしてダウンロードされます。
Emotet が PHP ベースの Web サイトをターゲットにするのはなぜですか?
ウェブサイトの約70%~80%はPHPで開発されています。JoomlaやWordPressなどのコンテンツ管理システムもPHPで動作しています。PHPはサーバーサイドスクリプト言語であり、サーバー上でコードを実行し、HTMLをレスポンスとして返します。攻撃者がPHPサーバー上で悪意のあるコードの実行に成功すると、サーバーの管理者権限を取得できます。サーバー上で悪意のあるコードを実行するために、脆弱性が狙われます。WordPressやJoomlaのプラグインと同様に、悪用可能な脆弱性が多数発見されています。その中には、「任意のファイルアップロードの脆弱性」、「XMLRPC.phpへの直接アクセスの脆弱性」、「リモート権限昇格の脆弱性」、「クロスサイトスクリプティングの脆弱性」、「情報漏洩の脆弱性」などがあります。分析の結果、最新の脆弱性であるexploit-dbとrapid7が使用されていることが確認されました。また、コード内には「https://exploit-db.com/search/?action=search&filter_description=LinuxLinuxKernelposix_getegid?nameuidnamegid/cwd”通常、これらの脆弱性はウェブサイトの所有者によって修正されません。最新のプラグインにアップデートすると、ウェブサイトのテーマに影響が出る可能性があるためです。そのため、これらのウェブサイトは容易に標的にされ、様々なマルウェアを採取するための無料かつ検出不可能なインフラとして利用される可能性があります。
Emotet はどのように Web サイトを侵害し、脅威の配布元として使用されているのでしょうか?
ユーザーがURLにアクセスすると、そのURLは「Get」リクエストとしてサーバーに送信されます。サーバーはURLを読み取り、現在のリクエストに関連付けられたPHPページを実行します。
例えば、ユーザーが「https://www.Abc.com/login」にアクセスすると、サーバー側のウェブサーバーはlogin.phpページをチェックします。ページが存在する場合、サーバー上でコードを実行し、HTMLを応答として送信します。通常、PHPコードへのアクセスはサーバーによって制限されているため、直接アクセスすることはできません。PHPベースのウェブサイト/サーバーにバックドアスクリプトを埋め込むには、攻撃者は前述の脆弱性のいずれかを利用して、バックドアスクリプトをPHPサーバーにアップロードする必要があります。次に、攻撃者はそのリソース(バックドアスクリプト)へのリクエストを送信する必要があります。このリクエストはPHPサーバー上で実行され、サーバーの管理者IDとパスワードと共にPHPサーバーへのアクセスを許可します。これにより、CnCサーバーからさらに悪意のあるコンテンツがダウンロードされます。
Emotetは、脆弱なウェブサイトにバックドアスクリプトをアップロードすることで、PHPウェブサイトを標的とする可能性があります。攻撃者は、wpscan、owasp-zap、Joomla scanner、nmapなどの脆弱性スキャナーを使用して、ウェブサイトの脆弱性を検出する可能性があります。また、多くの侵害されたウェブサイトが「fped8.org」サーバーにリストされていることも確認されています。

Emotetに感染したウェブサイトには、同様のスクリプトも含まれている。 スクリプト of Roi777Eng PHP バックドアを使用して Web サイトをハッキングする。
Emotetの最初の標的は、「fped8.org」サーバーにリストされているウェブサイトを侵害し、悪意のあるスクリプトをアップロードすることです。その後、他の脆弱なウェブサイトを試行します。任意のファイルアップロードの脆弱性を悪用し、バックドアPHPスクリプトをアップロードします。これは、アップロード中にファイルのMIMEタイプがサーバーやコードによってチェックされず、特定のウェブサイト上のアップロードされたフォルダに直接アクセスできることを意味します。そのため、攻撃者は容易にバックドアを仕掛けることができます。スクリプトがウェブサイトにアップロードされると、攻撃者は「https://www.Abc.com/wp-uploads/2018/11/backdoor.php」のようなリクエストを送信し、サーバー上でスクリプトが実行されます。また、WordPressショップやJoomlaショップで入手可能なWordPressテーマも侵害します。私たちは、404月にアップロードされた「sketch」というテーマを含む、侵害されたウェブサイトのXNUMXつを分析しました。この特定のウェブサイトのXNUMX.phpページが侵害され、攻撃者にバックドアアクセスを提供していました。ウェブサイトが悪用されると、攻撃者は悪意のあるコードを投稿で実行し、リクエストを取得します。フィルターを回避するために、難読化されたコードが使用されています。
例: 「https://www.Abc.com/remote.php?key='shell_'$v'exec(ls -ano)'」。
上記の例で、shell_exec はシェルコマンドを実行する PHP 関数です。Web ホスティングサービスプロバイダが追加したチェックを回避するために、攻撃者はリクエストに $v のような null 変数を追加します。これらの初期化されていない変数は単に無視されます。PHP では、「shell_exec」と shell_exec は同じ意味を持ち、どちらの文字列も関数呼び出しとして使用できます。この関数名を 73 進数で記述すると、「\x68\x65\x6\x6C\x5C\x65F\x78\x65\x63\xXNUMX」となり、これは shell_exec に他なりません。このようにして、ファイアウォールを回避して Web サーバー上で複数のコマンドが実行されます。
例えば:
<?php
$m=”shell_exec”;
$v = $m('dir');
$v をエコーします。
?>
調査の結果、これらの侵害された Web サイトは、Emotet、Miner などのマルウェアを配信するために攻撃者によってマルウェア ホスティング プラットフォームまたはインフラストラクチャとして使用されていることが判明しました。前述のように、世界中の PHP Web サイトの数は非常に多く、同様に侵害された Web サイトの数も多くなっています。

Emotetキャンペーンでは、攻撃者のコマンドに従って実行されるこのようなスクリプトが複数確認されました。攻撃者は、POSTリクエストだけでexeファイルまたはdocファイルの新しい亜種を送信できます。侵害されたウェブサイトでは、スクリプトによってファイルが暗号化され、ランダムな名前で保存されます。これらのPHPスクリプトを実行するために、PHPのeval()関数が使用されています。以下の悪意のあるスクリプトは、侵害されたサーバーへのリモートアクセスまたはバックドアアクセスを実行するために使用されます。通常、スクリプトは以下の場所にあります。 wp-admin\wpclient。
リモート.php
settings.php
minify.php
wsetting.php
syslib.php
新しいライセンス.php

上記のスクリプトがウェブサイトのルートフォルダまたはwp-includesに配置されているケースや、テーマの404.phpを編集して、下記のスクリプトと同じコードが含まれているケースがいくつか確認されました。重要なスクリプトをいくつか見ていきましょう。
リモート.php:
このスクリプトはPHPのドアウェイバックドアとして使用されます。これらのスクリプトは「HTTP」および「curl」リクエストを「fped8.org/doorways/settings_v2.php” の三脚と 「update.php」 下の図のようになります。

このスクリプトは、悪意のあるスクリプトモジュールの更新において中心的な役割を果たしている可能性があります。攻撃者は、「get」および「post」リクエストパラメータに基づいて関数を起動します。remote.phpには、HTTPリクエストから取得したPHPスクリプトをダウンロードして実行する機能があることが判明しました。remote.phpに直接アクセスしようとすると、「true」のレスポンスが返されるか、別のドメインにリダイレクトされます。このスクリプトは、WordPressの場合は「/wp-blog-header.php」、Joomlaの場合は「/includes/framework.php」を検出することで、コンテンツ管理システム(CMS)をチェックします。次に、PHPサイトの種類に応じて、edittext()という関数を定義し、_themesfile_data、_extlinksfilename、および_other_dataを受け入れて、Webサイトのテーマに追加します。


このマルウェアは、temp*clientid*という名前のキャッシュフォルダにデータをダウンロードして保存します。そして、エンコードされたPHPスクリプト8つと、fpedXNUMX.orgにリクエストを送信するホストサーバーのIPアドレスリストを取得します。調査の結果、このIPアドレスリストは、侵害されたウェブサイトのEmotetフォルダに存在するIPアドレスリストと類似していることが判明しました。これにより、Emotetキャンペーンと「PHPバックドアへの扉」キャンペーンとの関連性が明らかになりました。また、ディレクトリを削除する関数full_del_dir()も含まれています。
設定.php:
このファイルは侵入者の主要コンポーネントです。このページを開くと、パスワード入力ボックスと送信ボタンが表示されます。PHPコードを解析したところ、このページは複数回暗号化されていることがわかりました。base64_decodeとstr_rot13を使用してこのファイルを復号したところ、配列内に多数のbase64暗号化された文字列が含まれていました。さらにデコードすると、ソケット接続を実行するPerlスクリプトとJavaScriptが見つかりました。このスクリプトファイルは、攻撃者がシェルアクセスを取得するために使用されていると推測されます。


また、このスクリプトには、「https://exploit-db.com/search/?action=search&filter_description=LinuxLinuxKernelposix_getegid?nameuidnamegid/cwd」、「http[:]//crackfor.me/index.php」、「http[:]//md5.rednoize.com/」、「https[:]//hashcracking.ru/index.php」のhrefアクションが含まれています。また、シェル上でコマンドを実行し、出力を文字列として返すshell_execなどのPHP関数を使用してコマンドを実行します。ファイルのアップロード機能も備えています。このスクリプトは、「find -type f -name fetchmailrc、htpasswd、config*」などの関数も使用しています。SQLコマンドを使用して、データを挿入したり、SQLでデータをダンプしたりすることもできます。


wpsetting.php:
アップロードされたファイルを宛先に移動するために使用されます。
Minify.php:
ユーザーリクエストを送信すると、パスワード入力ボックスが表示されます。Minify.phpとSettings.phpはどちらも同じファイルです。復号後、これは単なるWebシェルであることがわかりました。同様のWebシェルは「hxxps://webshell.co/」にも存在します。minify.phpとsetting.phpはそれぞれ異なる暗号化アルゴリズムで暗号化されており、実行時に復号されます。サーバー側での検出を回避するため、両方のスクリプトファイルは高度に暗号化されています。このスクリプトは様々なユーティリティで構成されたWebシェルであり、攻撃者はユーザーIDやパスワードを入力せずにシステム全体にアクセスできるようになります。
このスクリプトで使用できるツール:
1.ファイルマネージャー
2.SQLブラウザ
3.コンソール
4. PHPコードを実行するためのPHPシェル。(Eval())
5.辞書攻撃のためのブルートフォースツール
6.ソケット接続を作成するネットワーク スクリプト。

このスクリプトがウェブサーバーにアップロードされると、攻撃者は他のスクリプトを簡単にインストールしたり、ファイルマネージャーを使ってFTPアクセスを取得したりできるようになります。調査の結果、このスクリプトは感染サイトのアクティブテーマに404ページとして追加され、永続化を実現していることが分かりました。しかし、これらのスクリプトはワンクリックで自動的に削除できるため、攻撃者はこれらのスクリプトをすべて削除できます。
新しいライセンス.php:
侵害されたサーバーの一部で、new_license.php が見つかりました。この PHP スクリプトには、クライアント側およびサーバー側の検証が行われていないマルチパート HTML フォームが含まれています。攻撃者は、図 12 に示すように、任意の PHP(ペイロードまたはバックドア)をサーバーにアップロードできます。このページには、アップロードされたスクリプトへのリンクが表示されます。このタイプのスクリプトは、任意のファイルをアップロードし、Web サーバー上で悪意のあるコードを実行するために使用されます。


Emotet スクリプトファイル
Emotet がランダムに生成された名前のフォルダに5つのファイルをドロップすることが判明しました。ファイルのリストは以下の通りです。
.67179322b768a6c97af866b5561a06aabf878f15
.bt
.htaccess
index.phpを
web.config

.bt:
これはホストURLリストとIPリストを含む隠しファイルで、このファイルと「PHPバックドアファイル」の内容は同じです。多くのEmotet感染ドメインには、このファイルと上記のファイルが含まれています。そのため、これら2つのキャンペーンはマルウェアの拡散において連携していたと考えられます。

.67179322b768a6c97af866b5561a06aabf878f15:
これは、Emotet が特定の感染サイトからダウンロードされるたびに、リクエストごとに更新される JSON ファイルです。
{“4″:1031,”5″:1255,”2″:31,”3”:14}
ここで 1031 は、現在感染しているサイトからの Emotet のダウンロード数です。
.htaccess:
ファイルへのアクセスを許可したり、特定のファイルへのアクセスを制限したりするために使用します。このファイルはindex.phpに権限を与えます。権限のリストは以下のとおりです。
ディレクトリインデックス index.php
拒否、許可するを注文
すべてから許す
index.php:
Emotetのメインペイロードが含まれています。フィッシングメールには、index.phpへのリンクを含む上記のフォルダが被害者に提供されます。ユーザーがリンクをクリックすると、復号されたEmotetマルウェア(doc/Exe)がレスポンスとして送信されます。メールには、index.phpを含むフォルダへのリンクが含まれています。サーバーにリクエストが送信されると、index.phpが実行され、exeまたはdocがレスポンスとして送信されます。
このindex.phpも厳重に暗号化されています。デコードの結果、Emotetはクラスとプライベート変数を用いてメインペイロードを暗号化された形式で保存していることがわかりました。「execute」という関数がペイロードをデコードしてユーザーに送信します。レスポンスの送信にはPHPのヘッダー関数が使用されています。

ヘッダーには、「Expires: Tue, 01 Jan 1970 00:00:00 GMT」、「Cache-Control: no-store, no-cache, must-revalidate, max-age=0」といったデータが送信されています。ファイルのコンテンツタイプは「application/octet-stream」、「Content-Transfer-Encoding: Binary」と記載されています。ファイルのレスポンスとして正常に送信された後、ダウンロード回数がJSONファイル「.67179322b768a6c97af866b5561a06aabf878f15」に書き込まれます。
このスクリプトを復号するには、まず上の図に示すように、pack関数を使用してAPI名を復号します。次に、復号された関数(Gzinflate、base64_decode)を使用して、残りのPHPスクリプトを復号します。


クライアント側での実行
このキャンペーンのクライアント側での拡散メカニズムについては、以前のブログですでに説明しました。 4年前の脅威Emotetの進化:悪名高いトロイの木馬から複雑な脅威拡散ツールへ
まとめ:
このように、PHPマルウェアはクリーンなPHPウェブサイト/サーバーに感染し、攻撃者に悪意のあるスクリプトを実行するためのアクセスを提供します。また、マルウェアの配布にも利用される可能性があります。例えば、今回のケースでは、index.phpに暗号化されたEmotetマルウェアが含まれていました。このPHPが呼び出されるたびに、復号化されたEmotetマルウェア(doc/exeファイル)がレスポンスとして送信されます。これらの侵害されたウェブサイトは、攻撃者によってマルウェアホスティングプラットフォームまたはインフラストラクチャとして利用されます。場合によっては、攻撃者がウェブサーバーへのアクセスを取得した後、悪意のあるスクリプトを削除する可能性があることも確認されています。
Emotet マルウェアは、ユーザーを簡単にフィッシングできるソーシャル エンジニアリングのトリックを備えたスパム メールを介して拡散しています。
Quick Heal は、Emotet キャンペーンの各層に対して多層的な保護を提供します。
従うべきセキュリティ対策
- 不明なソースから送信されたメール本文内のリンクを開かないでください。
- 信頼できないソースから受信した添付ファイルをダウンロードしないでください。
- ウイルス対策ソフトウェアの電子メール保護を常にオンにしてください。
- ドキュメントの実行時に「マクロ」または「編集モード」を有効にしないでください。
Emotet キャンペーンに関する技術論文は近日中に公開予定ですので、ご期待ください。
主題の専門家:
バジュラン・マネ、ヴァラブ・チョーレ、プレクシャ・サクセナ |クイックヒールセキュリティラボ



