password

DTPacker – 興味深いパスワードを持つ .NET パッカー

Share with your network!

主な調査結果 

  • Proofpoint社は、リサーチャーが「DTPacker」と名付けたマルウェアパッカーを確認しました。
  • ペイロードのデコードには、ドナルド・トランプ元米大統領の名前を含む固定パスワードが使用されています。
  • 数週間にわたり、このダウンローダーの亜種は、Liverpool Football Clubをテーマにしたダウンロード先を使用していました。
  • このマルウェアは、通常、情報を盗んだり、ランサムウェアなどの後続のペイロードをロードするためのリモートアクセス型トロイの木馬をパックするために使用されます。  

概要

ブログ「Commodity .NET Packers use Embedded Images to Hide Payloads」では、.NETパッカーの「CyaX」および「Hectobmp」ファミリーについて説明しました。

このブログでは、2段階のコモディティ.NETパッカーまたはダウンローダーについて説明します。このパッカーまたはダウンローダーは、第1段階ではかなり多様性があるものの、第2段階ではデコードの一部として固定パスワードを使用します。パッカーとダウンローダーの主な違いは、前者では埋め込まれ、後者ではダウンロードされるペイロードデータの場所です。DTPackerは両方の形態を使用しています。1つのマルウェアがパッカーとダウンローダーの両方を兼ねることは珍しいことです。

Proofpointでは、DTPackerがAgent Tesla、Ave Maria、AsyncRAT、FormBookなどの複数のリモートアクセス型トロイの木馬(RAT)や情報窃取マルウェアを配布しているのを確認しています。このマルウェアは、複数の難読化技術を用いて、アンチウイルス、サンドボックス、および分析を回避します。このマルウェアは、おそらくアンダーグラウンドのフォーラムで配布されています。プルーフポイントは、2020年以降、TA2536やTA2715を含む数十のキャンペーンや複数の脅威アクターとDTPackerが関連していることを確認しています。プルーフポイントは、DTPackerが高度標的型攻撃グループ(APT)とサイバー犯罪の両方の攻撃グループによって使用されていることを確認しています。確認されたキャンペーンには数千のメッセージが含まれ、複数の業界の数百の顧客に影響を与えました。

 

攻撃経路の例 

観測された多くのキャンペーンでは、初期の感染経路として電子メールが使用されています。添付ファイルは通常、悪意のある文書や圧縮された実行ファイルで、ユーザーがこれを操作すると、パッカーの実行ファイルがダウンロードされます。このマルウェアは、埋め込まれた、またはダウンロードされたリソースを、マルウェアのペイロードを含むDLLにデコードし、マルウェアを実行します。

DTPackerの攻撃経路

 

図1:DTPackerの攻撃経路の例

 

カスタムXORデコーディング

Proofpointは、複数の復号方法と、ドナルド・トランプをテーマにした2つの固定鍵を観測したことから、「DT "Packer"」と名付けました。多くのパッカーやローダーは、2段階の機能で作られています。DTPackerの初期のバージョンでは、カスタムのXORルーチンを使用して、両方のステージで悪意のあるコンテンツをデコードしていました。DTPackerの第1ステージでは、埋め込みまたはダウンロードされたリソースを中間ステージ(通常はDLL)にデコードし、第2ステージではそのDLLからペイロードを抽出して実行します。

カスタムXORルーチンは、キーとのXORに加えて、次のデータ値を減算するもので、このPythonスクリプト(Github上)decoder-xor-sub.pyで実装されています。

 

Windows Portable Executableの場合、かなりの数のヌルバイトが存在するため、暗号文を1バイトシフトしたものとXORすると、ヌルバイトに対応する位置に鍵があることがわかります。

例えば、このサンプル (SHA256: 512b2f1f4b659930900abcc8f51d175e88c81b0641b7450a6618b77848fa3b40)では、中間ステージは、カスタムXORルーチンとキー "P"(今回はUnicode UTF-16ではなくASCII)でエンコードされた.NETリソースに格納されています。

DTPacker 2

.NETリソースを1バイトシフトした自分自身とXORすると、パスワード "P "が表示されます:

DTPacker 3

キー "P "でデコードすると、第2段の実行ファイルが得られます:

DTPacker 4

2段目には、.NETリソース(名前は「00112266」)が入っています:

DTPacker 5

自分自身を1バイトシフトしたものとXORすると以下となり、Unicode UTF-16の "trump2020 "という鍵が得られます: 

DTPacker 6

脅威の主体は、この鍵を1年間一貫して使用しており、これがパッカーの名前の理由です。

「trump2020」の鍵でデコードすると、最終的なペイロードが得られます: 

DTPacker 7

このケースでは、ペイロードは、一般的な情報窃取マルウェアであるAgent Teslaでした。

 

多彩なファーストステージ・エンコーディング

このダウンローダーのサンプル (SHA256: 9d713d2254e529286ed3ac471e134169d2c7279b0eaf82eb9923cd46954d5d27)では、ダウンロードURLはジャンクなUnicode文字で難読化された文字列として保存されています。 

この場合、分解されたコードは次のようになります。 

DTPacker 8

Unicode文字を削除すると以下になります:  

DTPacker XX

ダウンロードは一緒にされており、Base64エンコードされた文字列が含まれています: 

DTPacker 9

これらは以下のようにデコードされ

DTPacker 10

バイト0x02とXORした後、次のようになります: 

DTPacker 11

これは、先ほどと同様に「trump2020」キーでエンコードされた「00112266」リソースを含む第2段の実行ファイルで、これをデコードするとAgent Teslaになります。

 

10進文字コード 

この種のパッカーに共通して見られるテーマは、数字を他の文字で置き換えた10進法の文字コードを使用していることです。 

例えば、このサンプル (SHA256: 285f4e79ae946ef179e45319caf11bf0c1cdaa376924b83bfbf82ed39361911b)は、第2段階を.NET Stringsテーブルに埋め込んだパッカーです: 

DTPacker 12

これは、コンマで区切られた10進数のASCII文字コードで、数字の0〜9は "!@#$%[X]&*()" に置き換えられています: 

DTPacker 13

これは、鍵が「trump2020」の「00112266」リソースを含む中間PEにデコードされ、Ave Maria(Warzone RATとしても知られている)にデコードされます。

このサンプル (SHA256: 1312912d725d45bcd1b63922ec9a84abca7a8c9c669c13efbd03472c764be056 )は上記と似ていますが、2段目がUser Stringsテーブルに格納されています: 

DTPacker 14

これは数字の0~9を "zxcasdwqru"(QWERTYキーボードの列の最初の3文字と部分的に一致)に置き換えられ、AsyncRATにデコードされます。

他のサンプル (SHA256: ba0f9be7cf006404bcfab6b6adbad0cef7281c3792490903632a4010d8a74f42) は、ダウンロード文字列がSample 1と同様の方法で難読化されたローダーで、難読化を解除すると(defanged)になります。

hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=E2E813E9694BE43CAD964C0453632F91@@@hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=63DC49E5D8F5F50F8838551347009928@@@hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=D13B96F0619AC39B44A32D3E0A260C89@@@hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=85530E49BB23CD9DBD8461A2FC5D18A2 

ダウンロードは、サンプル3および4と同様の方法で難読化されており、0~9の数字がA~Jの文字に置き換えられています: 

DTPacker 15

ダウンロードは通常のセカンドステージにデコードされ、さらにAgent Tesla.にデコードされます。

 

大文字コードオフセットによる文字列難読化

このサンプル(SHA256 5d555eddfc23183dd821432fd2a4a04a543c8c1907b636440eb6e7d21829576c) は難読化されたUnicode文字列に、の文字コードから差し引く整数を付加したローダです。

DTPacker 16

これは以下にデコードされます: 

DTPacker 17

ダウンロードは再びASCIIの文字コードで、0~9の数字が"PxfnVCKsAi"の文字に置き換えられています。

しかし今回は、カスタムXORルーチンと "trump2020 "キーによる中間ステップがなく、ペイロードはAgent Teslaでした。

 

サッカークラブをテーマにしたペイロード格納場所

2021年3月以降、プルーフポイントは、サッカークラブやそのファンのためのウェブサイトをダウンロード先として使用するサンプルを観測しました。これらのWebサイトはおとりで、実際のペイロードの場所はリストに埋め込まれていたようです。

例えば、このサンプル (SHA256 b53558a85b8bb10ce70cb0592a81e540683d459b9d8666b7927c105f1141a189)では、分解されたコードは次のようになります: 

DTPacker 18

これは難読化されると以下になります: 

DTPacker 19

このペイロードは、この場合、Snake Keyloggerでした。

その後のサンプルでは、リバプール・フットボール・クラブをテーマにしたダウンロード先が使用されています。

このサンプルでは (SHA256: 9cc817f0205da4bde1d938e1817aa98fe4f4a5dcbcaffbe8b45041e24c105aa0)、ダウンロード先はジャンクなUnicode配列や文字列の組み立てで難読化されています。

DTPacker 20

これは、非ASCII文字を取り除いた後は以下のようになります: 

DTPacker 21

これは以下のダウンロード場所 (無力化済)に導かれます。: 

hxxp://liverpoolofcfanclub[.]com/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-1FE8F2E05D5035C0446552639B8336B8.html 

hxxp://liverpoolofcfanclub[.]com/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-EC7D4835EC6F56BD999A943FEDF8D489.html 

hxxp://liverpoolofcfanclub[.]com/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-DE7C2CE9F7D38544A851414C40C46A3F.html 

その中には、liverpool.comから引用したと思われるページの中に、次のステージを0〜9の数字を"GIucvPNTOs"に置き換えたASCII文字コードで掲載しています: 

DTPacker 22

最後に、通常の「00112266」リソースが「trump2020」キーでエンコードされ、最終的なペイロードである「Agent Tesla」を保持していることがわかります。

その後のサンプルでは、ドメイン名を変えていますが、パスは非常に似通っており、同じように一見無害そうなページが表示されています。 

DTPacker 23

図: DTPackerは、最終的なペイロードにリバプールFCをテーマにしたダウンロードサイトを使用
これらのサイトは、正規のリバプールFCおよびファン関連のウェブサイトを装っていました。

 

難読化された文字コード配列を用いた文字列難読化

このサンプル (SHA256:  281cdbf590c22cd684700dcde609d6be48ddf3e4d988d48e65d9c688ce76f7af) は、難読化された.NETコードを使用して、重要な文字列をASCII文字コードの配列として格納しています:

[0] : qHWXhtvYuc 

[1] : Append 

[2] : hxxp://mmwrlridbhmibnr[.]ml/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-40505C0917C3E190B486745F4941F177.html 

[3] : <meta name="keywords" content="([\w\d ]*)"> 

[4] : UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41 

[5] : GetType 

[6] : Assembly 

[7] : ToArray 

[8] : Load 

[9] : EntryPoint 

[10] : Invoke 

[11] : LoginForm 

URLの文字列については、(ILSPYで分解すると)次のようになります: 

DTPacker 24

4つの割り当ての各ブロックでは、最初の3つがジャンクになり、次のもので上書きされます。 

これは、基礎となるMSIL(中間言語)コードで行われているようです: 

DTPacker 25

DTPacker 26

難読化のための命令は、実際には通常のコンパイラから期待されるような最短の形式ではありません。例えば、以下のように最終課題を行う設問のような形式です。

(05) 2000000000 : ldc.i4 0x0 

これは以下を用いて達成できたはずです。

(01) 16 : ldc.i4.0  

この場合の最終的なペイロードはAgent Teslaでした。

このPythonスクリプト(Github上)decoder-dup-array-strings.pyは、この技術を使って.NETバイナリから難読化された文字列を出力します。

 

ストレートXORによる "Trump2026 "の変種 

2021年8月以降、プルーフポイント社は、セカンドステージがカスタムXORルーチンと固定キー「trump2020」を使用しなくなり、代わりに固定ASCIIキー「Trump2026」とストレートXORを使用しているサンプルを観測しました。

今回のサンプル (SHA256: a564eb282800ed662b1c55ae65fbba86b6feca00a2e15ebb36a61fc53ac47c3a) では、中間段階をASCII文字コードとして「Strings」テーブルに格納しています: 

DTPacker 27

ペイロードは、中間ステージのオフセット 0x250 から格納されます: 

DTPacker 28

これをキー "Trump2026 "とのXOR処理を行うと以下になります: 

DTPacker 29

このペイロードはAgent Teslaでした。 

このサンプル (SHA256 affea9c276ded88eea1e39ac39fb19373c4b62d4251fb1d06f37a05e35dfa463)は、ダウンロードURLをUser Strings(defanged)でクリアに保存したダウンローダーです(無力化されています):

hxxps://cdn.discordapp[.]com/attachments/893177342426509335/897124528768032848/9722D04C.jpg 

hxxps://cdn.discordapp[.]com/attachments/893177342426509335/897124531213336656/F526E587.jpg 

ダウンロードはASCIIの文字コードです: 

DTPacker 30

これをつなぎ合わせてデコードすると、次のような中間ステージが得られます:  

DTPacker 31

XORキー「Trump2026」で復号すると、最終的なペイロードはFormBookでした。

 

同じ修正されたXORルーチンを使用するCyaX Packer 

2021年11月以降、プルーフポイント社は、CyaX-packerが「trump2020」キーを使用したDTPackerと非常によく似たセカンドステージを使用しているのを確認しました。

しかし今回は、UTF-16でエンコードされた「trump2020」ではなく、ランダムに生成された、ASCII、アルファベット混合、8~14文字の鍵を使用しています。

このサンプル (SHA256: 4053206d66d627d145d9da8d8e208d08c85755036a5393ccc6e8afd6117df864)では、中間ステージには、.NETリソースファイル「18Ocjj4dc4」が起動しています: 

jCcPzKq+9JLar8eO2ILnqfrkj8Wj64Lqo7XsiMaV85jStPyV/bTiu9+RwqTPheOrwqrjteyIxpXzmNK0/BV9NGItKqrrjTJvPFOC ... 

これをベース64にデコードすると以下の通りとなります: 

DTPacker 32

これを1バイトシフトした自分自身とXORすると以下の通りとなります: 

DTPacker 33

鍵「dNSfkJfHihIVY」でフィックスしたXORルーチンを使うと以下の通りとなります: 

DTPacker 34

1バイト目をフィックスした後、Agent Teslaとなります。 

これは、「trump2020」バージョンのDTPackerと最新のCyaXの第2段階のソースが共通していることを示唆しています。DTPackerとCyaXの間でリソースが重複している可能性があります。例えば、両方の作者が同じDLLエンコーダを購入している可能性がありますが、Proofpointはこれを確認できません。

結論

DTPackerは、パッカーとダウンローダーの両方に使用され、配信と難読化のバリエーションを持ちながら、解読の一部としてこのような2つのユニークなキーを保持しているのは非常に珍しいことです。

マルウェアの作者が、マルウェアの固定パスワードにドナルド・トランプ氏を明記した理由は不明です。これは、政治家や政治団体を特別に狙うために使用されるものではなく、意図した被害者が目にすることはないからです。プルーフポイントでは、このマルウェアは今後も複数の攻撃グループによって使用されると評価しています。

 

ネットワーク IDS ルール: 

Proofpoint Emerging Threatsには、このマルウェアに対する複数の検知ルールがあります。

2031127 - ET MALWARE DTLoader Binary Request 

2031128 - ET MALWARE DTLoader Encoded Binary - Server Response 

2031129 - ET MALWARE DTLoader Domain (ahgwqrq .xyz in TLS SNI) 

2033356 - ET MALWARE DTLoader Binary Request M2 

2844913 - ETPRO MALWARE Haskell Downloader/DTLoader CnC Activity 

2846706 - ETPRO MALWARE DTLoader Variant Activity 

2847389 - ETPRO MALWARE DTLoader CnC Activity 

2847503 - ETPRO MALWARE DTLoader Variant Activity 

2847916 - ETPRO MALWARE DTLoader Obfuscated HTML Payload Inbound 

2847940 - ETPRO MALWARE DTLoader Activity 

2850461 - ETPRO MALWARE DTLoader Retrieving Encoded Payload 

 

IoC(侵害の痕跡)のサンプル 

Indicator 

Description 

Associated Malware 

9d713d2254e529286ed3ac471e134169d2c7279b0eaf82eb9923cd46954d5d27 

DTPacker SHA256 

Agent Tesla 

hxxps://hastebin[.]com/raw/azipitojuj 

hxxps://hastebin[.]com/raw/urafehisiv 

Payload Download Location 

Agent Tesla 

285f4e79ae946ef179e45319caf11bf0c1cdaa376924b83bfbf82ed39361911b 

DTPacker SHA256 

Ave Maria RAT 

512b2f1f4b659930900abcc8f51d175e88c81b0641b7450a6618b77848fa3b40 

DTPacker SHA256 

Agent Tesla 

1312912d725d45bcd1b63922ec9a84abca7a8c9c669c13efbd03472c764be056 

DTPacker SHA256 

AsyncRAT 

ba0f9be7cf006404bcfab6b6adbad0cef7281c3792490903632a4010d8a74f42 

DTPacker SHA256 

Agent Tesla 

hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=E2E813E9694BE43CAD964C0453632F91 
hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=63DC49E5D8F5F50F8838551347009928 
hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=D13B96F0619AC39B44A32D3E0A260C89 
hxxps://ahgwqrq[.]xyz/getrandombase64.php?get=85530E49BB23CD9DBD8461A2FC5D18A2 

 

Payload Download Location 

Agent Tesla 

5d555eddfc23183dd821432fd2a4a04a543c8c1907b636440eb6e7d21829576c 

DTPacker SHA256 

Agent Tesla 

hxxp://193.239.147[.]103/base/264712C97B662289D6644F926525A252.html 

Payload Download Location 

Agent Tesla 

b53558a85b8bb10ce70cb0592a81e540683d459b9d8666b7927c105f1141a189 

DTPacker SHA256 

Snake Keylogger 

hxxp://osndjdjjjdjshgaggdkf[.]com/base/377A23697621555ED2123D80005200D7.html 

hxxp://osndjdjjjdjshgaggdkf[.]com/base/650D6251494D3B160CBC93685F2FA1E4.html 

hxxp://osndjdjjjdjshgaggdkf[.]com/base/2A812C716BD7EB40F36227E584D97524.html 

Payload Download Location 

Snake Keylogger 

9cc817f0205da4bde1d938e1817aa98fe4f4a5dcbcaffbe8b45041e24c105aa0 

DTPacker SHA256 

Agent Tesla 

hxxp://liverpoolofcfanclub[.]com/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-1FE8F2E05D5035C0446552639B8336B8.htm 

hxxp://liverpoolofcfanclub[.]com/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-EC7D4835EC6F56BD999A943FEDF8D489.html 

hxxp://liverpoolofcfanclub[.]com/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-DE7C2CE9F7D38544A851414C40C46A3F.html 

Payload Download Location 

Agent Tesla 

281cdbf590c22cd684700dcde609d6be48ddf3e4d988d48e65d9c688ce76f7af 

DTPacker SHA256 

Agent Tesla 

hxxp://mmwrlridbhmibnr[.]ml/liverpool-fc-news/features/steven-gerrard-liverpool-future-dalglish--goal-40505C0917C3E190B486745F4941F177.html 

 

DTPacker Download URL 

Agent Tesla 

a564eb282800ed662b1c55ae65fbba86b6feca00a2e15ebb36a61fc53ac47c3a 

DTPacker SHA256 

Agent Tesla 

affea9c276ded88eea1e39ac39fb19373c4b62d4251fb1d06f37a05e35dfa463 

DTPacker SHA256 

FormBook 

hxxps://cdn.discordapp[.]com/attachments/ 
893177342426509335/897124528768032848/9722D04C.jpg 

hxxps://cdn.discordapp[.]com/attachments/ 

893177342426509335/897124531213336656/F526E587.jpg 

 

DTPacker Download URL 

FormBook 

4053206d66d627d145d9da8d8e208d08c85755036a5393ccc6e8afd6117df864 

DTPacker SHA256 

Agent Tesla 

 

 

※本ブログの情報は、英語による原文「DTPacker – a .NET Packer with a Curious Password」の翻訳です。英語原文との間で内容の齟齬がある場合には、英語原文が優先します。