更新 (4 月 30 日): 4 部構成の CARBANAK Week ブログ シリーズのリリースに続いて、多くの読者が、これらの投稿で共有されたデータを実用的なものにする場所を見つけました。この記事を更新して、この情報の一部を含めました。
前回の記事では、CARBANAK で文字列ハッシュを使用して、コードベース全体で Windows API の解決を管理する方法について説明しました。しかし、著者はこの同じ文字列ハッシュ アルゴリズムを別のタスクにも使用しました。今回の記事では、中断したところから取り上げて、CARBANAK のウイルス対策 (AV) 検出、AV 回避、作成者のアーティファクト、エクスプロイト、シークレット、およびネットワーク ベースのインジケーターについて説明します。
ウイルス対策の回避
ソース コードは、文字列ハッシュの分析を間違いなく高速化します。たとえば、図 1 に示すように、AV.cpp 内の関数 AVDetect はプロセスを繰り返し、プロセス名のハッシュによって AV を検出します。
CARBANAK はこの情報で何をしますか?搭載されているものに応じてAVを回避。図 2 は、作成者がコメントアウトして無効にした AVG 回避のコードを示しています。これに基づくと、AVG 回避は廃止されたように見えますが、FLARE チーム メンバーのRyan Warnsは 2017 年 11 月に、1 つのマイナーな調整でまだ機能していることを確認しました。 FLARE は確認後、直ちに AVG にこれを開示しました。アバストは、私たちの開示後、影響を受ける DLL を更新して DLL_PROCESS_DETACH を無視し、そのフックをそのままにしたことを示しています。
2017 年 11 月、FLARE はトレンド マイクロのプロセス インジェクションの検出を回避する方法も明らかにしました。この回避は、リモート ヒープの割り当てと CreateRemoteThread の呼び出しを、メモリ マッピングと QueueUserAPC を介した非同期プロシージャ コールのキューイングに置き換える、 Carberpで使用される手法を反映しています。開示に続いて、トレンドマイクロは、動作監視ルールを更新し、この動作をカバーする新しい「攻撃的イベント」検出機能を備えたウイルスバスター Corp. XG SP1 を 2017 年 12 月にリリースしたことを示しました。
著者の特徴付け
ソース コードがあれば、キーボードの背後にいる個人について学ぶユニークな機会が得られる可能性があります。そのために、個人を指し示す可能性のあるソース コード ダンプ内のアーティファクトを検索しました。ほとんどの情報は、Visual Studio ソリューション ファイルで見つかりました。これらのほとんどはドライブ O: をソース ルートとして参照していましたが、次のホスト パスが見つかりました。
- C:Users博麗霊夢AppDataLocalTemp
- C:UsersIgorAppDataLocalTemp
- E:ProjectsprogsPetrosjanWndRec…
- E:ProjectsprogssbuWndRec…
残念ながら、これらのデータ ポイントから多くの答えが得られるわけではありません。それらが後のアーティファクトで観察された場合、関連性が推測される可能性がありますが、この記事の執筆時点では、作者についてはあまり知られていません.
ソースコード調査
CARBANAK のソース コードには、多数のエクスプロイト、以前の C2 ホスト、パスワード、およびキー マテリアルが含まれていました。私はこれらを包括的に調査し、それらが新しい結論につながるかどうか、または以前の観察を裏付けているかどうかを判断することにしました.
エクスプロイト
CARBANAK の作成者が、公開されていないエクスプロイトを使用したかどうかを知りたいと思いました。それどころか、すべてのエクスプロイトが十分に文書化されていることがわかりました.表 1 は、CARBANAK のソース コード ダンプから確認したエスカレーション コードを示しています。
名前 |
CVE |
ノート |
PathRec |
2013-3660 |
|
スドロップ |
2013-3660 |
|
NDProxy |
2013-5065 |
NDProxy.sys エクスプロイトは、もともと secniuによって作成されました |
UACバイパス |
Carberpで見つかった DLL ハイジャックによる UAC バイパス |
|
COM |
IFileOperation COM インターフェイスを介して昇格プロンプトとダイアログを無効にすることによる UAC バイパス |
|
CVE-2014-4113 |
2014-4113 |
オンラインで見つかるコードから派生した Win32k.sys エクスプロイト |
ブラックエナジー2 |
||
EUDC |
2010-4398 |
表 1: CARBANAK のソース コードで見つかった昇格のエクスプロイト
CARBANAK のソース コードには、lsass.exe からパスワードをダンプするための sekurlsa モジュールや、複数のリモート デスクトップ プロトコル接続を可能にするターミナル サービスのパッチ コードなど、 Mimikatzから大量にコピーされたコードも含まれています。
シークレット
私の分析には、ソース コードと付随するバイナリで見つかったパスワードとキー マテリアルの監査が含まれていました。これらの多くはデバッグ バージョンに使用されていましたが、ソース コードで使用されているパスワードに基づいて将来のパスワードを推測する必要が生じた場合に備えて、参照用に厳選しました。表 2 は、RC2 暗号化通信およびその他の目的で使用される回復されたパスワードを、ソース コード内の対応する名前と、それらが検出されたときの状態 (ソース コードでアクティブ、コメント アウト、またはバイナリにコンパイル) とともに示しています。
ソースコードごとの資格識別子 |
パスワード |
状態 |
管理者のパスワード |
1He9Psa7LzB1wiRn |
アクティブ |
管理者のパスワード |
1234567812345678 |
コメントアウト |
管理者のパスワード |
cbvhX3tJ0k8HwnMy |
アクティブ |
管理者のパスワード |
1234567812345678 |
コメントアウト |
なし |
1234567812345678 |
編集済み |
表 2: CARBANAK のソース コードとバイナリで見つかったパスワード
デバッグ ディレクトリに暗号化されたサーバー証明書が見つかりました。これは、操作を明確に結び付けたり、新しいアクティビティをキャッチしたりするための新しいネットワークベースのインジケーターを提供できるように思われました. C# で公開されている X509 処理のコード サンプルを適応させて、一般的なパスワード リストのパスワードを循環させることで、このコンテナーをブルート フォースするのは簡単なことでした。 1文字のパスワード「1」だったので、1秒もかからずにパスワードが見つかりました。証明書はテスト用であることが判明したため、パスワードは脆弱です。証明書を図 3 に、詳細を表 3 に示します。
パラメータ |
価値 |
主題 |
CN=試験会社 |
発行者 |
CN=試験会社 |
シリアルナンバー |
834C6C3985506D8740FB56D26E385E8A |
以前ではありません |
2004/12/31 午後 5:00:00 |
後ではない |
2017/12/31 17:00:00 |
拇印 |
0BCBD1C184809164A9E83F308AD6FF4DBAFDA22C |
署名アルゴリズム |
sha1RSA(1.3.14.3.2.29) |
公開鍵 |
アルゴリズム: RSA 長さ: 2048 キーブロブ: 30 82 01 0a 02 82 01 01 00 e4 66 7f d2 e1 01 53 f9 6d 26 a6 62 45 8b a8 71 ea 81 9a e6 12 d4 1c 6f 78 67 6d 7e 95 bb 3a c5 c0 2c ダ ce 48 ca db 29 ab 10 c3 83 4e 51 01 76 29 56 53 65 32 64 f2 c7 84 96 0f b0 31 0b 09 a3 b9 12 63 09 be a8 4b 3b 21 f6 2e bf 0c c1 f3 e4 ed e2 19 6e ca 78 68 69 be 56 3c 1c 0e a7 78 c7 b8 34 75 29 a1 8d cc 5d e9 0d b3 95 39 02 13 8e 64 ed 2b 90 2c 3f d5 e3 e2 7e f2 d2 d1 96 15 6e c9 97 eb 97 b9 0e b3 be bc c3 1b 1e e1 0e 1c 35 73 f4 0f d9 c3 69 89 87 43 61 c9 9e 50 77 a2 83 e4 85 ce 5a d6 af 72 a9 7b 27 c5 f3 62 8d e7 79 92 c3 9b f7 96 ed 5c 37 48 0a 97 ee f7 76 69 a2 b9 25 38 06 25 7d 8a e4 94 b2 bb 28 4a 4b 5d c5 32 0d be 8e 7c 51 82 a7 9e d9 2c 8e 6b d8 c7 19 4c 2e 93 8d 2d 50 b4 e0 a4 ed c1 65 a4 a1 ba bf c7 bf 2c ec 28 83 f4 86 f2 88 5c c4 24 8b ce 1d 02 03 01 00 01 パラメーター: 05 00 |
秘密鍵 |
キー ストア: ユーザー プロバイダー名: Microsoft Strong Cryptographic Provider プロバイダーの種類: 1 主な仕様: 交換 キー コンテナー名: c9d7c4a9-2745-4e7f-b816-8c20831d6dae 一意のキー コンテナー名: 5158a0636a32ccdadf155686da582ccc_2bb69b91-e898-4d33-bbcf-fbae2b6309f1 ハードウェア デバイス: False 取り外し可能: 偽 保護中: 偽 |
表 3: テスト会社の証明書の詳細
これは@mrdavi51によって共有されたピボットで、この自己署名証明書がまだ複数の IP でホストされていることを示しています。
FireEye は、証明書が最近次の IP で提供されていることを確認しました (表 4)。
知財 |
ホスト名 |
最後に見たのは |
104.193.252.151:443 |
vds2.system-host[.]net |
2019-04-26T14:49:12 |
185.180.196.35:443 |
customer.clientshostname[.]com |
2019-04-24T07:44:30 |
213.227.155.8:443 |
2019-04-24T04:33:52 |
|
94.156.133.69:443 |
2018-11-15T10:27:07 |
|
185.174.172.241:443 |
vds9992.ハイパーホスト[.]名前 |
2019-04-27T13:24:36 |
109.230.199.227:443 |
2019-04-27T13:24:36 |
表 4: 最近のテスト会社の証明書の使用
これらの IP は CARBANAK のアクティビティで確認されていませんが、これは、さまざまなマルウェアのテストに共通の開発者または共有ツールキットが使用されていることを示している可能性があります。これらの IP のいくつかは、Cobalt Strike BEACON ペイロードと METERPRETER リスナーをホストしていることが確認されています。 Virtual Private Server (VPS) の IP は頻繁に所有者が変わる可能性があり、これらの IP でホストされている追加の悪意のあるアクティビティは、たとえ近接していても、同じユーザーに関連付けられていない可能性があります。
また、ソース コード ダンプから保護されていない秘密鍵を解析しました。図 4 と表 5 は、それぞれ秘密鍵パラメーターの概要と詳細を示しています。
分野 |
価値 |
bタイプ |
7 |
bバージョン |
2 |
aiKeyAlg |
0xA400 (CALG_RSA_KEYX) – RSA 公開鍵交換アルゴリズム |
魔法 |
RSA2 |
シラミ |
512 |
PubExp |
65537 |
係数 |
0B CA 8A 13 FD 91 E4 72 80 F9 5F EE 38 BC 2E ED 20 5D 54 03 02 AE D6 90 4B 6A 6F AE 7E 06 3E 8C EA A8 15 46 9F 3E 14 20 86 43 6F 87 BF AE 47 C8 57 F5 1F D0 B7 27 42 0E D1 51 37 65 16 E4 93 CB |
P |
8B 01 8F 7D 1D A2 34 AE CA B6 22 EE 41 4A B9 2C E0 05 FA D0 35 B2 BF 9C E6 7C 6E 65 AC AE 17 EA |
Q |
81 69 AB 3D D7 01 55 7A F8 EE 3C A2 78 A5 1E B1 9A 3B 83 EC 2F F1 F7 13 D8 1A B3 DE DF 24 A1 DE |
DP |
B5 C7 AE 0F 46 E9 02 FB 4E A2 A5 36 7F 2E ED A4 9E 2B 0E 57 F3 DB 11 66 13 5E 01 94 13 34 10 CB |
Dq |
81 AC 0D 20 14 E9 5C BF 4B 08 54 D3 74 C4 57 EA C3 9D 66 C9 2E 0A 19 EA C1 A3 78 30 44 52 B2 9F |
Iq |
C2 D2 55 32 5E 7D 66 4C 8B 7F 02 82 0B 35 45 18 24 76 09 2B 56 71 C6 63 C4 C5 87 AD ED 51 DA 2ª |
D |
01 6A F3 FA 6A F7 34 83 75 C6 94 EB 77 F1 C7 BB 7C 68 28 70 4D FB 6A 67 03 AE E2 D8 8B E9 E8 E0 2A 0F FB 39 13 BD 1B 46 6A D9 98 EA A6 3E 63 A8 2F A3 BD B3 E5 D6 85 98 4D 1C 06 2A AD 76 07 49 |
表 5: 秘密鍵のパラメーター
構成ヘッダーで定義された PUBLIC_KEY という名前の値を見つけました。デバッグ目的であることを示すコメントが付いています。解析された値を表 6 に示します。
分野 |
価値 |
bタイプ |
6 |
bバージョン |
2 |
aiKeyAlg |
0xA400 (CALG_RSA_KEYX) – RSA 公開鍵交換アルゴリズム |
魔法 |
RSA1 |
ビトレン |
512 |
PubExp |
65537 |
係数 |
0B CA 8A 13 FD 91 E4 72 80 F9 5F EE 38 BC 2E ED 20 5D 54 03 02 AE D6 90 4B 6A 6F AE 7E 06 3E 8C EA A8 15 46 9F 3E 14 20 86 43 6F 87 BF AE 47 C8 57 F5 1F D0 B7 27 42 0E D1 51 37 65 16 E4 93 CB |
表 6: 構成ヘッダーで定義された PUBLIC_KEY の主要パラメーター
ネットワークベースの指標
ソース コードとバイナリには複数の Network-Based Indicator (NBI) が含まれており、FireEye によって以前に観察および文書化された CARBANAK バックドア アクティビティおよび FIN7 オペレーションと大きく重複しています。表 7 は、関連する FireEye の公開ドキュメントとともに、これらのインジケーターを示しています。これには、発生した各 NBI のステータス (ソース コードでアクティブ、コメント アウト、またはバイナリにコンパイル) が含まれます。ドメイン名は、ブラウザーやチャット クライアントなどによる偶発的な解決や相互作用を防ぐために、ファンクが除去されています。
NBI |
状態 |
脅威グループの関連付け |
comixed[.]org |
コメントアウト |
|
194.146.180[.]40 |
コメントアウト |
|
aaaabbbbcccccc[.]org |
アクティブ |
|
stats10-google[.]com |
コメントアウト |
|
192.168.0[.]100:700 |
アクティブ |
|
80.84.49[.]50:443 |
コメントアウト |
|
52.11.125[.]44:443 |
コメントアウト |
|
85.25.84[.]223 |
コメントアウト |
|
qwqreererwere[.]com |
アクティブ |
|
アカマイ テクノロジーズ[.]org |
コメントアウト |
|
192.168.0[.]100:700 |
アクティブ |
|
37.1.212[.]100:700 |
コメントアウト |
|
188.138.98[.]105:710 |
コメントアウト |
|
hhklhlkhkjhjkjk[.]org |
編集済み |
|
192.168.0[.]100:700 |
編集済み |
|
aaa.stage.4463714.news.meteonovosti[.]info |
編集済み |
|
193.203.48[.]23:800 |
アクティブ |
表 7: NBI と以前に観察された活動
これらの TCP エンドポイントのうち 4 つ (80.84.49[.]50:443、52.11.125[.]44:443、85.25.84[.]223、および 37.1.212[.]100:700) は私にとって初めてのことでした。一部は他の場所で文書化されていますが。
結論
このソース コード ダンプを分析した結果、CARBANAK であることが確認され、いくつかの新しい興味深いデータ ポイントが見つかりました。特にベンダーのセキュリティ スイートを対象とした開示について、ベンダーに通知することができました。以前に文書化された NBI、Windows API 関数の解決、バックドア コマンド ハッシュ値、Windows キャビネット ファイル API の使用、および CARBANAK に関連するその他のアーティファクトはすべて一致し、彼らが言うように、靴が合う場合はそれを着用します。興味深いことに、このプロジェクト自体は、CARBANAK や Anunak とは呼ばれていません。マルウェア内で見つかった文字列アーティファクトに基づいて、情報セキュリティ コミュニティがこのプロジェクトを呼ぶようになったからです。作成者は主に、Visual Studio プロジェクト、ファイル名、ソース コード コメント、出力バイナリ、ユーザー インターフェイス、およびマニュアルでマルウェアを「ボット」と呼んでいます。
この分析の広さと深さは、FLARE チームに寄せられる通常の要求とは一線を画しています。この旅には、ロシア語の学習、10 万行のコードから新しい情報を検索すること、数十のバイナリを分析することが含まれていました。最後に、この依頼を受ける機会があったことに感謝しています。
次の投稿では、Tom Bennett が手綱を取り、彼と Barry Vengerik の以前の分析をソース コードに照らして回顧します。 CARBANAK ウィークのパート 4も利用できます。
Comments