APT34はイランのAPT組織で、2014年から中東やアジアを中心に政府、金融、エネルギー、通信などを対象にAPT攻撃を続けています。攻撃兵器は常に改良され、攻撃手法も次々と導入されていますが、攻撃者はそれが暴露されたからといって攻撃をやめないという状況が長年続いています。
4 月 17 日、海外メディアは、「Lab Dookhtegan」という名前のユーザーが APT34 組織からの攻撃を Telegram 上で暴露したと報じました。データも暴露されました。この事件は、これまでのソースコード漏洩と同様、非常に爆発的なものでした。 APT34 組織は、少なくとも 2014 年以来、中東とアジアの特定の国に対して、政府、金融、エネルギー、電気通信、その他の業界を標的とした複数の攻撃を仕掛け続けています。この組織の標的はイランと敵対する国々が多いことから、イランの治安部門、あるいはイラン政府と長年協力関係にある警備会社ではないかとの見方もある。この組織は、ソーシャル メディアの利用、さまざまな ID を持つインターネット アカウントの偽造、ソーシャル エンジニアリング技術による攻撃ターゲットへのアプローチを得意としています。同時に、組織の攻撃兵器は常にアップグレードされており、その攻撃手法はますます洗練されており、スピア フィッシングなどの攻撃手法と新しい攻撃テクノロジーを統合して、既存のターゲットの侵入範囲を継続的に拡大しています。
APT34 組織のメンバーを暴露
漏洩した Webshell リストによると、この組織が最近中国に対して大規模な攻撃を実行したことは明らかです。 。この表には、侵害された「中国」とラベル付けされた 10 以上の Web サイトがリストされており、国内攻撃の議論を裏付ける証拠として使用できます。
Lab Dookhtegan はかつて、組織メンバーの個人情報を数日ごとに公開していると主張していましたが、現在は Telegram と Twitter のアカウントがブロックされています。
このソース コード漏洩には、APT34 組織で一般的に使用される多数の重要な攻撃兵器が含まれています (Webshells_and_Panel、posion frog など)。 、ウェブマスク、チラ見せ。 Dongxun Technology 2046Lab は、「Iron Dome Advanced Persistent Threat Warning System」を使用してこれらの攻撃兵器の脅威検出を実施し、技術レベルから詳細な分析を実施しました。
Webshells_and_Panel ディレクトリには主に C# で書かれたさまざまな Webshell ツールが含まれており、Webshell ディレクトリには2 つのメイン ファイル フォルダー、それぞれ HighShell と HyperShell。
1.1 HighShell
HighShell ディレクトリには、Windows サーバー用の WebShell である HighShell.aspx のみがあります。開いた後のデフォルトのインターフェイスは次のとおりです。
上の図からわかるように、このバージョンはバージョン 5.0 で、認証、ファイルのアップロード、コマンドの実行、データベースが備わっています。操作などの機能。
この Webshell を使用するには、「ログイン」ラベルの後の赤い入力ボックスに接続パスワード (Th!sN0tF0rFAN) を入力し、「実行」ボタンをクリックする必要があります。入力ボックスが緑色に変わると、 Webshell を使用してサーバーにログインし、関連する操作を実行できます。以下の図は、「command」コマンドを操作してサーバ情報を取得する動作図です。
## 1.2 HyperShell
HyperShell は、複数の WebShell ソース コード ファイルを含む、ソース コード ファイルを含むプロジェクト。以下に、使用できるいくつかの Web シェル関数を示します。simple.aspx
認証、コマンド実行、ファイル アップロード機能を含むシンプルな Web シェルは simple.aspx です。開くと、次の図のようになります:パスワード入力ボックスに接続パスワード (MkRg5dm8MOk) を入力し、「ログイン」ボタンをクリックするとサーバーを制御し、ファイルをアップロードします。パスワード接続は以下の通りです。
以下の図は「command」コマンドを操作してサーバ情報を取得する動作図です。
simpleDownload.aspx
simpleDownload.aspx には、次に示すように、アップロード関数が 1 つだけあります。
HighShelllocal.aspx
HighShelllocal.aspx は HighShell のアップグレード バージョンです。バージョン番号は 8.6.2 です。このバージョンの機能は、独立したバージョン 5.0 とほぼ同じです。インターフェイスと機能は主に最適化されています。インターフェイスは図は次のとおりです。
2.1 エージェント
2.1.1 Poisonfrog.ps1
Poisonfrog.ps1 はエージェントの唯一のファイルであり、侵害されたホストにバックドア プログラムを仕掛けるために使用されます。このファイルが実行されると、dUpdater.ps1、hUpdater.ps1、UpdateTask.vbs の 3 つのファイルが侵害されたホストの C:\Users\Public\Public ディレクトリに残ります。
ホスト上に残されたバックドア プログラムは UpdateTask.vbs スクリプトで、スケジュールされたタスクを通じて 10 分ごとに自動的に実行されます。これは、dUpdater.ps1 と hUpdater.ps1 という 2 つのスクリプトを実行します。
2.1.2 dUpdater.ps1
このスクリプトはリモート コントロール スクリプトであり、DNS ドメイン名を生成し、コントロール サーバーに接続し、そこからのリモート指示やファイルの送受信が可能です。 DGA.Changer アルゴリズムは、サーバー ドメイン名を動的に計算するために DNS ドメイン名を生成するときに使用されます。2046Lab はこの DGA.Changer アルゴリズムを復元しました:
受信関数:
EEA 関数を実行して VVA ドメイン名を取得し、JJA パラメータを r に設定します;
VVA ドメイン名の解決を試みます。失敗した場合は、例外がスローされ、新しいドメイン名が作成されます。再生成され、新しいドメイン名の解決を試みます。ドメイン名に到達するまで操作を繰り返します。解析は成功しました。成功した場合は、最初に解析に成功した IP を取得し、IP の各セグメントをそれぞれ取り出します。
IP が 1.2.3.* の場合、NNA を false に設定し、RRA を設定します。値は PPA ファイルに書き込まれ、メイン関数を終了します。
NNA が true の場合、RRA の値を最初の値に変更します。 IP の 3 つのセグメントを分割し、main 関数のループを続けます。
IP が 24.125.*.* の場合、IP の 3 番目と 4 番目のセグメントを C:\Users\Public\Public\ として連結します。 $DDA\receivebox サブフォルダー名 (PPA)、GGA を 1 に設定、NNA を true に設定して、main 関数のループを続けます。
IP が 11.24.237.110 の場合は、解析を停止して main 関数を終了します。この IP は、OilRig によってかつて使用されていた IP です。
送信関数:
Slaber を実行して送信されたファイルを確認し、EEA 関数を実行して VVA ドメイン名を取得し、JJA パラメーターを s に設定します。
次のことを試してください。 VVA ドメイン名の解決に失敗した場合は、例外をスローし、新しいドメイン名を再生成して、新しいドメイン名の解決を試行します。ドメイン名の解決が成功するまで操作を繰り返します。成功した場合は、最初に正常に解決された IP を取得し、 IP の各セグメントを個別に取得します;
IP が 1.2.3.* の場合、IP の 4 番目のセグメントの値を取得し、main 関数をループします;
If IP は 11.24.237.110 です。解析を停止して関数を終了し、送信するデータを削除します。
スラバー機能:
送信ファイルのサイズを確認し、600kbを超える場合はエラーが報告され、それ以外の場合はリゾルバー機能を実行します。
リゾルバ関数:
送信されたファイルを 30 文字のグループごとに解決します。
プロセッサ関数:
受信したファイルを処理します。MMB は "sendbox" フォルダー内のファイルです;
受信したファイル名が "0" で終わる場合、ファイルを「sendbox」フォルダーに書き込み、UTF-8 エンコードを使用して、以前に受信したファイルを削除します;
受信したファイル名が「1」で終わる場合、パスが存在する場合受信したファイルの内容 、このパスを送信パスとして使用します;
それが存在しない場合は、「ファイルが存在しません」という文字列を MMB ファイルに書き込み、以前に受信したファイルを削除します; 名前の末尾は次のとおりです。 「2」では、「done」フォルダ内のファイルにRRBを設定し、受信したファイルを「done」フォルダに移動し、ファイルの内容をMMBファイルに書き込み、以前に受信したファイルを削除します。
2.1.3 hUpdater.ps1「myleftheart.com」の IP を解決して接続を試みます;
C:\Users\Public\Public\files\ cfg.ini ファイルが存在する場合は、srv、usr、pas、prt、dom などの対応するパラメータ フィールドを取得します。 srv と prt の値を「:」で新しい文字列に連結し、その文字列を http を使用してプロキシ サーバーとして設定し、usr、pas、および dom の値を資格情報として使用します。プロキシ サーバー; 存在しない場合は、デフォルトのプロキシ サーバーを取得します;
OOA: 0 ~ 9 の整数をランダムに選択し、1 ~ 9 の数値をランダムに選択し、抽出した数値を結合します。
DDA: dUpdater 用。ps1 スクリプトの DDA;
PPA: DDA の 5 番目のビットは OOA を挿入することで取得されます;
「http://myleftheart. com/co/$PPA" で、ダウンロードしたファイルの内容を QQA に設定し、QQA を "" で区切って、配列を SSA に設定します。
p はパス C:\Users\Public\Public\files\$SSA[0] です。
SSA[2] の長さが 0 より大きく、SSA[2] に「not」文字列が存在しない場合は、http://myleftheart.com/fil/SSA[3] からファイルをダウンロードします。 ] を C:\Users \Public\Public\files\$SSA[2] に書き込み、その内容をパス p;
SSA[1] の長さが 0 より大きく、" not" 文字列が SSA[1] に存在しない場合は、パス p でファイルを http://myleftheart.com/res/$PPA$SSA[0] にアップロードします;
SSA の長さ[ 4] が 0 より大きく、SSA[4] 文字列に「not」文字が存在しない場合は、パス SSA[4]d でファイルを http://myleftheart.com/res/$PPA$SSA[0] にアップロードします。 ];
SSA の最後のデータ値が "1" の場合、ループ内で main 関数を実行します;
SSA[0] の長さが 0 より大きく、 SSA[1] に「not」文字列がない場合は、パス p のファイルを http://myleftheart.com/res /$PPA$SSA[0] にアップロードし、パス p のファイルを削除します。
サーバー側は、侵害されたホストを管理するために APT34 によって使用される一般的な制御エンドであり、侵害されたホストからファイルをダウンロードしたり、侵害されたホストにファイルをアップロードしたりできます。
このサーバーは、シンプルなログイン インターフェイスを提供します。
JSON 構成ファイルを使用してユーザーとパスワードを管理するのは非常に簡単です。流出した文書では、推測しやすいユーザー名 (blacktusk) とパスワード (fireinthehole) が使用されていました。
下図のGUID(/7345SDFHSALKJDFHNASLFSDA3423423SAD22)はブラウザをログインページに誘導するために使用されており、非常に重要なGUIDと言えます。
HTTP エージェントと DNS エージェントの両方のホスト リストは、サーバー側でも利用できます。このリストから、現在制御されているホストを簡単に確認できます。
各 HTTP エージェントと DNS エージェントには詳細情報が記載されたページがあり、侵害されたホストに C&C コマンドを発行して、ファイルをアップロードまたはダウンロードできます。ここでの DNS Agent には Glimpse の機能が組み込まれている可能性がありますが、Glimpse については以下で詳しく紹介します。
侵害されたホストの場合、APT34 はデフォルトの BAT リモート コントロール スクリプトを使用してホスト情報を取得します。取得される情報は、システム、ユーザー、グループ、ドメイン、特定のレジストリ、スケジュールされたタスクなど、非常に詳細です。 、ウイルス対策ソフトウェアなど。
このツールは主に、DNS プロキシを実装し、特定の DNS ドメイン名をハイジャックし、攻撃者のサーバーに展開されます。デフォルトでドメイン名をローカル サーバーに送信し、Squid3 ICAP を介して HTTP/HTTPS プロキシを実装し、被害者のアカウント パスワードなどの機密情報を盗みます。
dns-redir ディレクトリ:
dnsd.py: DNS プロキシ転送スクリプト
config.json: 設定ファイル
dnsd.js: JS タイプの DNS プロキシ スクリプト。機能は dnsd.py に似ています。
ローカルでシミュレートされた DNS プロキシ機能のスクリーンショットを以下に示します。
icap ディレクトリ:
icap.py: Squid3 と組み合わせて使用し、http/https プロキシを構築し、機密データをプロキシにローカルに記録します。
squid.conf 設定ファイル:
Squid3 ICAP は透過的なプロキシ サーバーを実装しており、icap.py スクリプトは次のような機密データを抽出して記録します。パスワードをローカル ログ ファイルに保存します。
icap スクリプト ファイルは、response_body 部分にハイジャック コードを追加し、指定された画像要素を被害者のブラウザに読み込みます。
Glimpse は、エージェント、パネル、サーバーの 3 つの部分で構成されている DNS リモート コントロール ツールです。 Glimpse Server の一部のコードから判断すると、コマンドの発行方法など、機能の一部がヤドクガエルと重複している可能性があります。
全体的に、Glimpse は上で紹介したヤドクガエルとよく似ています。流出した情報にはGlimpseの使い方も記載されています。
4.1 エージェント
同様に、Glimpse のエージェントは、侵害されたホスト上で実行されるバックドア プログラムです。機能は、コマンドを受け入れ、ファイルをアップロードおよびダウンロードすることです。
エージェントは、ホスト上の C:\Users\Public\Libraries ディレクトリを作業ディレクトリとして使用します。ファイルの送信とファイルの受信は、このディレクトリの下のサブディレクトリで完了します。
エージェントは 2 つのモードで動作できます。1 つは ping モード、もう 1 つはテキスト モードです。
#ping モードは主にホスト情報を交換するために使用されます。テキスト モードは、エージェントとサーバー間の内部プロトコル モードに似ており、内部命令の受け入れを可能にします。
4.2 パネル
パネルは、マスター コントロールのステータスを表示するために使用されます。制御されている侵害されたホストの数を確認できます。同時に、ここで侵害されたホストにコマンドを送信します。
コマンドがパネルを通じて侵害されたホストに送信され、結果が返されたことがわかります。
4.3 サーバー
サーバーはマスター制御端末であり、DNS トンネル プロトコルを通じて通信し、エージェントによって送信された ping モード メッセージまたは TXT モード コマンドに応答できます。また、TXT モードでエージェントへの送信コマンドに応答することもできます。コードのスタイルから判断すると、Glimpse と Poison Frog は同じチームによって作成されたはずです。
#サーバーは TXT モードでさらに多くのプロトコル コマンドをサポートしています。これらのコマンドの意味を簡単に確認できます。
if (action == 'M') { // in this place we check the request for type of connection ping or text type if (action == 'W') { // in this place we check the request type if its text we response it else if (action == 'D') { else if (action == '0') { // ctrl[0] => action, if 0 = is there any file else if (action == '1') { // ctrl[0] => action, if 1 = sending the file else if (action == '2') {// ctrl[0] => action, if 2 = receiveing the file
cd0bbff03ce7946cd7c9dc339726d90a9d3d8fe14927172ca5546bdb95d947625e17061bf2dce87d402ddd8531abb49f
myleftheart.com
11.24.237.110
1 .電子メール、不審なリンク、不審な文書などの不審なファイルを安易に開かないでください。
2. システム パッチを適時にインストールし、最新バージョンのソフトウェアを使用してください。
3. ウイルス対策ソフトウェアをインストールし、ウイルス データベースを適時に更新します。
以上がAPT34 漏洩武器レポート分析の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。