ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム

この投皿では、サむバヌ グルヌプ OceanLotus (APT32 および APT-C-00) が最近、公開されおいる゚クスプロむトの XNUMX ぀をどのように䜿甚したかを説明したす。 CVE-2017-11882、Microsoft Office のメモリ砎損の脆匱性、およびこのグルヌプのマルりェアがどのように痕跡を残さずに䟵害されたシステム䞊で氞続化するのかに぀いお説明したす。 次に、2019 幎の初め以来、このグルヌプがコヌドを実行するために自己解凍アヌカむブをどのように䜿甚しおいるかに぀いお説明したす。

OceanLotus はサむバヌスパむ掻動を専門ずし、優先タヌゲットは東南アゞア諞囜です。 攻撃者は、朜圚的な被害者の泚意を匕き぀けおバックドアを実行するよう説埗する文曞を停造し、ツヌルの開発にも取り組んでいたす。 ハニヌポットの䜜成に䜿甚される手法は、「二重拡匵子」ファむル、自己解凍アヌカむブ、マクロを含むドキュメントから既知の゚クスプロむトたで、攻撃によっお異なりたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム

Microsoft 数匏゚ディタヌで゚クスプロむトを䜿甚する

2018 幎半ば、OceanLotus は CVE-2017-11882 の脆匱性を悪甚したキャンペヌンを実斜したした。 サむバヌ グルヌプの悪意のある文曞の 360 ぀が、XNUMX 脅嚁むンテリゞェンス センタヌの専門家によっお分析されたした (䞭囜語での研究)、゚クスプロむトの詳现な説明が含たれたす。 以䞋の投皿には、このような悪意のある文曞の抂芁が含たれおいたす。

第1ステヌゞ

ドキュメント FW Report on demonstration of former CNRP in Republic of Korea.doc SHA-1 D1357B284C951470066AAA7A8228190B88A5C7C3) は䞊蚘の研究で述べたものず同様です。 カンボゞア政治CNRP - カンボゞア救囜党、2017幎末に解散に興味のあるナヌザヌを察象ずしおいるので興味深い。 .doc 拡匵子にもかかわらず、ドキュメントは RTF 圢匏 (䞋の図を参照) で、ガベヌゞ コヌドが含たれおおり、たた歪んでいたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 1. RTF の「ガベヌゞ」

文字化けした芁玠があっおも、Word はこの RTF ファむルを正垞に開きたす。 図 2 からわかるように、オフセット 0xC00 に EQNOLEFILEHDR 構造があり、その埌に MTEF ヘッダヌ、そしおフォントの MTEF ゚ントリ (図 3) が続きたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 2. FONT ゚ントリの倀

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図3。 FONT蚘録フォヌマット

フィヌルドでのオヌバヌフロヌの可胜性 名コピヌする前にサむズがチェックされないためです。 長すぎる名前は脆匱性を匕き起こしたす。 RTF ファむルの内容 (図 0 のオフセット 26xC2) からわかるように、バッファヌにはシェルコヌドずそれに続くダミヌ コマンド (0x90および返送先䜏所 0x402114。 アドレスはダむアログ芁玠です。 EQNEDT32.exe、指瀺を瀺したす RET。 これにより、EIP はフィヌルドの先頭を指すようになりたす。 名シェルコヌドが含たれおいたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 4. ゚クスプロむト シェルコヌドの始たり

アドレス 0x45BD3C 珟圚ロヌドされおいる構造䜓ぞのポむンタヌに到達するたで逆参照される倉数を栌玍したす。 MTEFData。 残りのシェルコヌドはここにありたす。

シェルコヌドの目的は、開いおいるドキュメントに埋め蟌たれおいるシェルコヌドの XNUMX 番目の郚分を実行するこずです。 元のシェルコヌドは、最初にすべおのシステム蚘述子を反埩凊理しお、開いおいるドキュメントのファむル蚘述子を芋぀けようずしたす (NtQuerySystemInformation 匕数付き SystemExtendedHandleInformation) 䞀臎するかどうかを確認したす PID 蚘述子ず PID プロセス WinWord ドキュメントがアクセスマスクで開かれたかどうか - 0x12019F.

正しいハンドルが芋぀かったこず (開いおいる別のドキュメントぞのハンドルではないこず) を確認するために、関数を䜿甚しおファむルの内容が衚瀺されたす。 CreateFileMapping、シェルコヌドはドキュメントの最埌の XNUMX バむトが䞀臎するかどうかをチェックしたす。yyyy」゚ッグハンティング法。 䞀臎するものが芋぀かるず、ドキュメントは䞀時フォルダヌ (GetTempPath どうやっお ole.dll。 次に、ドキュメントの最埌の 12 バむトが読み取られたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 5. 文曞の終わりのマヌカヌ

マヌカヌ間の 32 ビット倀 AABBCCDD О yyyy 次のシェルコヌドのオフセットです。 関数を䜿甚しお呌び出されたす CreateThread。 以前に OceanLotus グルヌプによっお䜿甚されおいたものず同じシェルコヌドを抜出したした。 Python゚ミュレヌションスクリプト2018 幎 XNUMX 月にリリヌスした は、珟圚でも第 XNUMX 段階のダンプずしお機胜したす。

第2期

コンポヌネントの削陀

ファむル名ずディレクトリ名は動的に遞択されたす。 コヌドは、実行可胜ファむルたたは DLL ファむルの名前をランダムに遞択したす。 C:Windowssystem32。 次に、そのリ゜ヌスにリク゚ストを送信し、フィヌルドを取埗したす。 FileDescription フォルダヌ名ずしお䜿甚したす。 これが機胜しない堎合、コヌドはディレクトリからフォルダヌ名をランダムに遞択したす。 %ProgramFiles% たたは C:Windows (GetWindowsDirectoryW より)。 既存のファむルず競合する可胜性のある名前の䜿甚を回避し、次の単語が含たれないようにしたす。 windows, Microsoft, desktop, system, system32 たたは syswow64。 ディレクトリがすでに存圚する堎合は、名前に「NLS_{6 文字}」が远加されたす。

リ゜ヌス 0x102 が分析され、ファむルがダンプされたす %ProgramFiles% たたは %AppData%、ランダムに遞択されたフォルダヌに保存されたす。 䜜成時間を同じ倀になるように倉曎したした。 kernel32.dll.

たずえば、実行可胜ファむルを遞択しお䜜成されたフォルダヌずファむルのリストは次のずおりです。 C:Windowssystem32TCPSVCS.exe デヌタ゜ヌスずしお。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 6. さたざたなコンポヌネントの抜出

リ゜ヌス構造 0x102 スポむトの堎合は非垞に耇雑です。 䞀蚀で蚀えば、次のものが含たれたす。
— ファむル名
— ファむルサむズず内容
— 圧瞮圢匏 (COMPRESSION_FORMAT_LZNT1、関数によっお䜿甚されたす RtlDecompressBuffer)

最初のファむルは次のようにリセットされたす TCPSVCS.exe、これは合法です AcroTranscoder.exe によるず FileDescription、SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

䞀郚の DLL ファむルは 11 MB を超えおいるこずに気づいたかもしれたせん。 これは、ランダム デヌタの倧きな連続バッファが実行可胜ファむル内に配眮されるためです。 これは、䞀郚のセキュリティ補品による怜出を回避する方法である可胜性がありたす。

氞続性の確保

リ゜ヌス 0x101 ドロッパヌには、氞続性を提䟛する方法を指定する 32 ぀の XNUMX ビット敎数が含たれおいたす。 最初の倀は、マルりェアが管理者暩限なしでどのように存続するかを指定したす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
è¡š 1. 管理者暩限のない氞続化メカニズム

XNUMX 番目の敎数の倀は、管理者暩限で実行するずきにマルりェアが持続性を達成する方法を指定したす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
è¡š 2. 管理者暩限を持぀氞続化メカニズム

サヌビス名は拡匵子のないファむル名です。 衚瀺名はフォルダヌの名前ですが、フォルダヌがすでに存圚する堎合は、文字列「」が远加されたす。Revision 1” (未䜿甚の名前が芋぀かるたで番号が増加したす)。 オペレヌタヌは、サヌビスの氞続性が堅牢であるこずを確認したした。障害が発生した堎合は、サヌビスは 1 秒埌に再起動される必芁がありたす。 次に、倀 WOW64 新しいサヌビスのレゞストリ キヌは 4 に蚭定され、これが 32 ビット サヌビスであるこずを瀺したす。

スケゞュヌルされたタスクは、いく぀かの COM むンタヌフェむスを通じお䜜成されたす。 ITaskScheduler, ITask, ITaskTrigger, IPersistFile О ITaskScheduler。 基本的に、マルりェアは隠しタスクを䜜成し、珟圚のナヌザヌたたは管理者の情報ずずもにアカりント情報を蚭定し、トリガヌを蚭定したす。

これは毎日のタスクで、期間は 24 時間、10 回の実行間隔は XNUMX 分です。぀たり、継続的に実行されたす。

悪意のあるビット

この䟋では、実行可胜ファむル TCPSVCS.exe (AcroTranscoder.exe) は、䞀緒にリセットされる DLL をロヌドする正芏の゜フトりェアです。 この堎合、興味深いのは、 Flash Video Extension.dll.

その機胜 DLLMain 別の関数を呌び出すだけです。 いく぀かのあいたいな述語が存圚したす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 7. ファゞヌ述語

これらの誀解を招くチェックの埌、コヌドにはセクションが远加されたす。 .text ファむル TCPSVCS.exe、防埡力を次のように倉曎したす。 PAGE_EXECUTE_READWRITE ダミヌ呜什を远加しお曞き換えたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 8. 呜什のシヌケンス

最埌に関数アドレスぞ FLVCore::Uninitialize(void)、茞出された Flash Video Extension.dll、指瀺が远加されたす CALL。 これは、悪意のある DLL がロヌドされた埌、ランタむムが呌び出したずきに WinMain в TCPSVCS.exe、呜什ポむンタが NOP を指すこずになり、 FLVCore::Uninitialize(void)、 次のステヌゞ。

この関数は単玔に次で始たるミュヌテックスを䜜成したす。 {181C8480-A975-411C-AB0A-630DB8B0A221}その埌に珟圚のナヌザヌ名が続きたす。 次に、䜍眮に䟝存しないコヌドを含むダンプされた *.db3 ファむルを読み取り、 CreateThread コンテンツを実行したす。

*.db3 ファむルの内容は、OceanLotus グルヌプが通垞䜿甚するシェルコヌドです。 公開した゚ミュレヌタ スクリプトを䜿甚しお、ペむロヌドを再び正垞に解凍したした。 GitHubで.

スクリプトは最終段階を抜出したす。 このコンポヌネントはバックドアであり、すでに分析したした。 以前の OceanLotus 研究。 これは GUID によっお刀断できたす。 {A96B020F-0000-466F-A96D-A91BBF8EAC96} バむナリヌファむル。 マルりェア構成は PE リ゜ヌス内で匕き続き暗号化されたす。 構成はほが同じですが、C&C サヌバヌは以前のものずは異なりたす。

- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz

OceanLotus チヌムは、怜出を回避するためのさたざたなテクニックの組み合わせを再床デモンストレヌションしたす。 圌らは、感染プロセスの「掗緎された」図を携えお戻っおきたした。 ランダムな名前を遞択し、実行可胜ファむルにランダムなデヌタを埋め蟌むこずで、(ハッシュずファむル名に基づく) 信頌できる IoC の数が枛りたす。 さらに、サヌドパヌティの DLL ロヌドを䜿甚しおいるため、攻撃者は正芏のバむナリを削陀するだけで枈みたす。 AcroTranscoder.

自己解凍アヌカむブ

RTF ファむルの埌、グルヌプはナヌザヌをさらに混乱させるために、䞀般的なドキュメント アむコンを備えた自己解凍 (SFX) アヌカむブに移行したした。 Threatbook はこれに぀いお曞いおいたす (䞭囜語のリンク。 起動時に、自己解凍型 RAR ファむルがドロップされ、.ocx 拡匵子の付いた DLL が実行されたす。その最終ペむロヌドは以前に文曞化されおいたす。 {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll。 2019 幎 XNUMX 月䞭旬以来、OceanLotus はこの技術を再利甚しおいたすが、時間の経過ずずもに䞀郚の構成を倉曎しおいたす。 このセクションでは、そのテクニックず倉曎点に぀いお説明したす。

ルアヌの䜜成

ドキュメント THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE SHA-1 AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEABは2018幎に初めお発芋されたした。 この SFX ファむルは賢明に䜜成されたした - 説明 (バヌゞョン情報) これは JPEG 画像であるず衚瀺されたす。 SFX スクリプトは次のようになりたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 9. SFX コマンド

マルりェアがリセットされる {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx SHA-1 EFAC23B0E6395B1178BCF7086F72344B24C04DCC、写真だけでなく 2018 thich thong lac.jpg.

おずり画像は次のようになりたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 10. おずり画像

SFX スクリプトの最初の XNUMX 行で OCX ファむルを XNUMX 回呌び出しおいるこずに気づいたかもしれたせんが、これぱラヌではありたせん。

{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)

OCX ファむルの制埡フロヌは、他の OceanLotus コンポヌネントず非垞に䌌おおり、倚くのコマンド シヌケンスが䜿甚されたす。 JZ/JNZ О PUSH/RET、ガベヌゞコヌドず亀互になりたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 11. 難読化されたコヌド

ゞャンクコヌドを陀倖した埌、゚クスポヌトしたす DllRegisterServer、ず呌ばれる regsvr32.exeこのようになりたす

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 12. 基本的なむンストヌラヌ コヌド

基本的には最初の電話で DllRegisterServer ゚クスポヌトセットのレゞストリ倀 HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model DLL 内の暗号化されたオフセットの堎合 (0x10001DE0).

関数が XNUMX 回目に呌び出されるずき、同じ倀が読み取られ、そのアドレスで実行されたす。 ここから、RAM 内のリ゜ヌスず倚くのアクションが読み取られお実行されたす。

シェルコヌドは、過去の OceanLotus キャンペヌンで䜿甚されたものず同じ PE ロヌダヌです。 を䜿甚しお゚ミュレヌトできたす 私たちのスクリプト。 結局圌はリセットしおしたう db293b825dcc419ba7dc2c49fa2757ee.dll、それをメモリにロヌドしお実行したす DllEntry.

DLL はリ゜ヌスの内容を抜出し、埩号化 (AES-256-CBC) しお圧瞮解陀 (LZMA) したす。 リ゜ヌスには、逆コンパむルしやすい特定の圢匏がありたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図 13. むンストヌラヌ構成構造 (KaitaiStruct Visualizer)

構成は明瀺的に指定されたす。特暩レベルに応じお、バむナリ デヌタが曞き蟌たれたす。 %appdata%IntellogsBackgroundUploadTask.cpl たたは %windir%System32BackgroundUploadTask.cpl たたは SysWOW64 64 ビット システムの堎合)。

次の名前のタスクを䜜成するこずで、さらに氞続性が確保されたす。 BackgroundUploadTask[junk].jobどこ [junk] バむトのセットを衚したす 0x9D О 0xA0.

タスクアプリケヌション名 %windir%System32control.exe、パラメヌタ倀はダりンロヌドされたバむナリ ファむルぞのパスです。 非衚瀺のタスクは毎日実行されたす。

構造的には、CPL ファむルは内郚名を持぀ DLL です。 ac8e06de0a6c4483af9837d96504127e.dll、関数を゚クスポヌトしたす CPlApplet。 このファむルはその唯䞀のリ゜ヌスを埩号化したす {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll次に、この DLL をロヌドし、その唯䞀の゚クスポヌトを呌び出したす。 DllEntry.

バックドア蚭定ファむル

バックドア蚭定は暗号化され、そのリ゜ヌスに埋め蟌たれたす。 構成ファむルの構造は、前のものず非垞によく䌌おいたす。

ESETOceanLotusサむバヌグルヌプ向けの新しいバックドア配信スキヌム
図14. バックドア構成構造KaitaiStruct Visualizer

構造は䌌おいたすが、フィヌルド倀の倚くは、図に瀺したものから曎新されおいたす。 私たちの叀いレポヌト.

バむナリ配列の最初の芁玠には DLL (HttpProv.dll MD5 2559738D1BD4A999126F900C7357B759), テンセントによっお特定された。 ただし、゚クスポヌト名がバむナリから削陀されおいるため、ハッシュは䞀臎したせん。

远加の研究

サンプルを収集しおいるずきに、いく぀かの特城に気づきたした。 先ほど説明した暙本は 2018 幎 2019 月頃に出珟し、同様の個䜓も最近では XNUMX 幎 XNUMX 月䞭旬から XNUMX 月初旬に出珟したした。 SFX アヌカむブは感染ベクトルずしお䜿甚され、正芏のおずりドキュメントず悪意のある OSX ファむルが投䞋されたした。

OceanLotus は停のタむムスタンプを䜿甚したすが、SFX ファむルず OCX ファむルのタむムスタンプは垞に同じであるこずに気付きたした (0x57B0C36A (08 幎 14 月 2016 日 @ 午埌 7 時 15 分 UTC) および 0x498BE80F (02 幎 06 月 2009 日 @ 7:34am UTC) それぞれ)。 これはおそらく、䜜成者に、同じテンプレヌトを䜿甚し、いく぀かの特性を倉曎するだけの、ある皮の「デザむナヌ」がいるこずを瀺しおいたす。

2018 幎の初めから私たちが調査した文曞の䞭には、攻撃者が関心を寄せおいる囜を瀺すさたざたな名前がありたす。

— カンボゞアメディアの新しい連絡先情報(新芏).xls.exe
— 李建銙 (䞪人简历).exe (履歎曞の停の PDF ドキュメント)
— フィヌドバック、28 幎 29 月 2018  XNUMX 日の米囜ラリヌ.exe

バックドアが発芋されおから {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll そしお数人の研究者によるその分析の公開により、マルりェア構成デヌタにいく぀かの倉化が芳察されたした。

たず、䜜成者はヘルパヌ DLL から名前を削陀し始めたした (DNSprov.dll そしおXNUMX぀のバヌゞョン HttpProv.dll。 その埌、オペレヌタヌは XNUMX 番目の DLL (XNUMX 番目のバヌゞョン) のパッケヌゞ化を䞭止したした。 HttpProv.dll)、XNUMX ぀だけ埋め蟌むこずを遞択したす。

第 XNUMX に、倚くの IoC が利甚可胜になるに぀れお、倚くのバックドア構成フィヌルドが倉曎され、怜出を回避する可胜性がありたす。 䜜成者によっお倉曎された重芁なフィヌルドには次のものがありたす。

  • AppX レゞストリ キヌが倉曎されたした (IoC を参照)
  • ミュヌテックス゚ンコヌディング文字列 ("def"、"abc"、"ghi")
  • ポヌト番号

最埌に、分析されたすべおの新しいバヌゞョンには、IoC セクションに新しい C&C がリストされおいたす。

所芋

OceanLotus は開発を続けおいたす。 このサむバヌ グルヌプは、ツヌルずデコむの改良ず拡匵に重点を眮いおいたす。 䜜成者は、察象ずなる被害者に関連するトピックを含む泚目を集める文曞を䜿甚しお、悪意のあるペむロヌドを停装したす。 圌らは新しいスキヌムを開発し、数匏゚ディタヌの゚クスプロむトなどの公的に入手可胜なツヌルも䜿甚したす。 さらに、被害者のマシンに残るアヌティファクトの数を枛らすためのツヌルを改良し、それによっおりむルス察策゜フトりェアによる怜出の可胜性を枛らしおいたす。

䟵入の痕跡

䟵害の指暙ず MITRE ATT&CK 属性が利甚可胜 Welivesecurity に぀いお О GitHubで.

出所 habr.com

コメントを远加したす