# マルウエアLODEINFOの進化 - JPCERT/CC Eyes | JPCERT コーディネーションセンター公式ブログ **blogs.jpcert.or.jp/ja/2020/06/LODEINFO-2.html** 喜野 [孝太(Kota Kino)](https://blogs.jpcert.or.jp/ja/kino/) 2020/06/11 ## マルウエアLODEINFOの進化 [LODEINFO](https://blogs.jpcert.or.jp/ja/tags/lodeinfo/) [メール](http://10.10.0.46/mailto:?subject=%E3%83%9E%E3%83%AB%E3%82%A6%E3%82%A8%E3%82%A2LODEINFO%E3%81%AE%E9%80%B2%E5%8C%96&body=https%3A%2F%2Fblogs.jpcert.or.jp%2Fja%2F2020%2F06%2FLODEINFO-2.html) [以前のブログで、日本国内の組織を狙ったマルウエアLODEINFOについて紹介しました。](https://blogs.jpcert.or.jp/ja/2020/02/LODEINFO.html) JPCERT/CCでは、現在もこのマルウエアを使用した攻撃が活発に行われていることを確認 しており、新型コロナウイルスに関連したファイル名などを使って、感染を広げようとする 動きが見られます。また、LODEINFOは頻繁にアップデートが行われており、複数の機能が 追加・変更されていることを確認しています。 今回は、LODEINFOの一連の攻撃の中で見られた傾向と、アップデート内容について紹介し ます。 ### LODEINFOを配信する手口 確認されている全ての攻撃の起点は、添付ファイル付きの標的型攻撃メールです。添付ファ イルにはWord文書、またはExcel文書が使用されており、添付ファイルを開いてマクロを有 効化することで、内包していたLODEINFOがホスト上に作成、実行されます。 標的型攻撃 メールに使用されているメールと添付ファイルの内容は、以下のようなものを確認していま す。 新型コロナウイルスを題材にしたもの 日露や日韓の外交を題材にしたもの 企業への履歴書や申し込みを装ったもの 攻撃対象の業種としては、メディア系、公共系を確認しています。また、標的型攻撃メール の送信には、フリーのメールアドレス(Gmail等)を使用している傾向が見られます。 ### LODEINFOのバージョン ----- 以前のブログで紹介したLODEINFOのバージョンは、v0.1.2でしたが、本ブログ執筆時点で 確認している最新バージョンは、v0.3.6となっています。また、JPCERT/CCでは以下のバ ージョンのLODEINFOが存在することを確認しています。 図 1:バージョンの推移 なお、各バージョンで追加された主な機能としては、以下のようなものを確認しています。 バージョン 機能追加 v0.2.7 データ送受信フォーマットの一部変更 既存コマンドの拡張(ver) Mutexの作成 v0.3.2 新規コマンドの追加(print) 永続化処理の追加 v0.3.5 新規コマンドの追加(rm、ransom、keylog) ### 新規コマンドの追加 現時点での最新バージョン(v0.3.6)では、前回のv0.1.2の検体から以下のコマンドが追加 されています。 print rm ransom keylog ----- printコマンドは感染ホストのスクリーンキャプチャを取得し、rmコマンドは指定されたファ イルの削除を行います。 例えばrmコマンドを実行した場合、ファイル削除後、以下のよう な実行結果がC&Cサーバ宛てに送信されます。 ``` 1590318292|932|080027D50FB0|DESKTOP-J783225C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\Desert.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\desktop.ini: OK. C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\Koala.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg: OK. C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg: OK. ``` ransom、keylogコマンドについては、現時点で確認しているバージョンでは未実装となっ ており、コマンドを実行しても以下のような結果だけがC&Cサーバ宛てに送信されます。 ``` 1590318292|932|080027D50FB0|DESKTOP-J783225Not available ``` ただし、コマンド名から推測すると、将来的にファイルの暗号化やキーログ機能が搭載され る可能性があるかもしれません。 ----- 図 2:コマンドの一覧 図 3:ransom、keylogコマンド処理部 ### データ送受信フォーマットの一部変更 LODEINFOは、AESとBASE64を組み合わせてデータの暗号化を行っていますが、データを BASE64デコードした後のオフセット0x45の位置には、AESで暗号化されたデータのサイズ が記載されています。 ----- 図 4:変更前のデータフォーマット 前回のv0.1.2の検体では、該当部分にデータサイズがそのまま記載されていましたが、 v0.2.7以降の検体からは、オフセット0x49の位置に新しく1byteのXORキーが記載されるよ うになり、オフセット0x45のデータサイズにはXORキーでエンコードされた値が記載され るようになっています。 図 5:変更後のデータフォーマット 図 6:XORの 処理部 上記の変更によって、以前に紹介したHTTP POSTリクエストのデータを復号するコードが 正常に動作しなくなっているため、以下に対応したコードの一部を記載します。 ----- ``` from Crypto.Cipher import AES from base64 import urlsafe_b64decode from binascii import a2b_hex def decypt_lodeinfo_data(enc_data: str, key: bytes, iv: bytes) -> bytes: header_b64 = enc_data[:0x1C] header = urlsafe_b64decode(header_b64.replace(".", "=")) ## decode with base64 postdata_size = int.from_bytes(header[0x10:0x14], byteorder="little") postdata_b64 = enc_data[0x1C:0x1C+postdata_size] postdata = urlsafe_b64decode(postdata_b64.replace(".", "=")) ## decrypt with AES cipher = AES.new(key, AES.MODE_CBC, iv) xor_key = postdata[0x34] decrypt_size = int.from_bytes([b ^ xor_key for b in postdata[0x30:0x34]],byteorder="little") dec_data = cipher.decrypt(postdata[0x35:0x35+decrypt_size]) ## remove junk bytes junk_size = dec_data[-1] dec_data = dec_data[:decrypt_size-junk_size] return dec_data encrypted_data = "njgGCEgbkXQIgexSrDm3O7QAAADuSiTM6xoP8ResYAybhHoRx9WUlw_ealn9gIEjvsZzqQXG8vn3QYoIfmNmO4viy0rFkZGRkaN6IX4HXacdyoRLWkIYxVPI9Ciu8sDP1PK0x6gDH556OYX8GMdejk40daIbiwY3ERd0qL8jRawpwBHht7Sps_hwoZfeksly5sw2Y9RqtUQ.." KEY = a2b_hex("7306ED96A7D75BAB94C4F15AAF0A9E61690F0E300FEA9135764C206580DF2970") IV = a2b_hex("D5C5376805264812B3ED88BE4A614A1A") decrypted_data = decypt_lodeinfo_data(encrypted_data, KEY,IV) print("Decrypted Data: ", bytes.hex(decrypted_data)) ### LODEINFOの起動方法の変化 ``` 以前のLODEINFOでは、Word文書のマクロを有効化した際に、LODEINFOのDLLファイル をホスト上に作成し、rundll32.exe を使って実行していました。しかし、v0.3.2以降から は、DLLファイルと一緒に正規のWindows実行ファイルを作成し、DLLサイドローディング を使ってLODEINFOを実行するように手法が変わっています。 ----- 図 7:起動方法の変化(左: rundll32.exeによる実行、右: DLLサイドローディングによる実行) ### LODEINFOの通信特徴 LODEINFOはUser-Agentが検体内部でハードコードされており、v0.2.7までは以下が使用さ れています。 ``` Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36 ``` また、v0.3.2以降では以下が使用されています。 ``` Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363 ``` C&Cサーバのインフラには、様々な国のISPが利用されています。 ----- 図 8:C&Cサーバのインフラ分布 ### おわりに マルウエアLODEINFOの開発は頻繁に行われており、同様に攻撃も継続して確認されていま す。 今後もこのマルウエアを使用した攻撃が続く可能性がありますので、引き続き注意が 必要です。 なお、今回解説した検体のハッシュ値をAppendix A、新たに確認した通信先をAppendix B に記載しています。 Appendix Bの通信先に対して通信が発生していないかをご確認くださ い。 インシデントレスポンスグループ 喜野 孝太、佐條 研 **Appendix A 検体のハッシュ値** 65433fd59c87acb8d55ea4f90a47e07fea86222795d015fe03fba18717700849 (v0.3.6) 8c062fef5a04f34f4553b5db57cd1a56df8a667260d6ff741f67583aed0d4701 (v0.3.5) 1cc809788663e6491fce42c758ca3e52e35177b83c6f3d1b3ab0d319a350d77d (v0.3.2) **Appendix B 通信先** 103.27.184.27 103.140.187.183 103.204.172.210 133.130.121.44 167.179.101.46 ----- 167.179.112.74 172.105.232.89 194.68.27.49 www.amebaoor.net [メール](http://10.10.0.46/mailto:?subject=%E3%83%9E%E3%83%AB%E3%82%A6%E3%82%A8%E3%82%A2LODEINFO%E3%81%AE%E9%80%B2%E5%8C%96&body=https%3A%2F%2Fblogs.jpcert.or.jp%2Fja%2F2020%2F06%2FLODEINFO-2.html) この記事の筆者 喜野 [孝太(Kota Kino)](https://blogs.jpcert.or.jp/ja/kino/) 2019年8月より現職。主に、マルウェア分析・フォレンジック調査に従事。 このページは役に立ちましたか? 0人が「このページが役に立った」と言っています。 その他、ご意見・ご感想などございましたら、ご記入ください。 こちらはご意見・ご感想用のフォームです。各社製品については、各社へお問い合わせくだ さい。 javascriptを有効にすると、ご回答いただけます。 ありがとうございました。 ## 関連記事 HUI Loaderの分析 Anti-UPX Unpackingテクニック ----- モバイル端末を狙うマルウェアへの対応FAQ 攻撃グループLuoYuが使用するマルウェアWinDealer 攻撃グループBlackTechが使用するマルウェアGh0stTimes ≪ [前へ](https://blogs.jpcert.or.jp/ja/2020/05/security_conference.html) [トップに戻る](https://blogs.jpcert.or.jp/ja/) [次へ](https://blogs.jpcert.or.jp/ja/2020/06/how_to_convert_vol-plugin.html) ≫ -----