Sophos обнаружили вредоносную деятельность по боковой загрузке DLL, которая основана на классическом сценарии боковой загрузки, но добавляет сложность и многоуровневость в его выполнение. Более того, наше расследование показало, что ответственный(ые) агент(ы) настолько полюбил(и) эту адаптацию оригинального сценария, что использовал(и) множество его вариаций, неоднократно меняя местами определенные компоненты в процессе, чтобы избежать обнаружения на этом этапе цепочки атак.
Dragon Breath APT
В основе атаки лежит классическая боковая загрузка, состоящая из чистого приложения, вредоносного загрузчика и зашифрованной полезной нагрузки, с различными модификациями, вносимыми в эти компоненты с течением времени. Последние кампании добавляют изюминку, когда чистое приложение на первом этапе "боковой" загрузки загружает второе чистое приложение и автоматически выполняет его. Второе чистое приложение загружает вредоносную DLL-загрузчик. После этого вредоносная DLL-загрузчик выполняет конечную полезную нагрузку.
Угрожающий агент, наиболее связанный с этой атакой, называется по-разному: "Операция "Дыхание дракона", "APT-Q-27" или "Золотоглазый пес", и считается, что он специализируется на сфере онлайн-гемблинга и его участниках. Сценарий с двумя чистыми приложениями настолько понравился этим субъектам, что они использовали несколько сценариев, в которых приложения второго этапа заменялись другими чистыми приложениями.
Первоначальные кампании были направлены на китайскоговорящих пользователей Windows, вовлеченных в азартные игры онлайн, а векторы первоначального заражения распространялись через Telegram. На сегодняшний день мы выявили предполагаемые цели на Филиппинах, в Японии, Тайване, Сингапуре, Гонконге и Китае. Sophos обычно блокирует атаки боковой загрузки во время процесса боковой загрузки, поэтому полезная нагрузка никогда не выполняется, и пользователи защищены.
В самом начале расследование Sophos привело к веб-сайту (telegramos[.]org), который предоставляет или утверждает, что предоставляет версии приложения Telegram на китайском языке для Android, iOS и Windows. Мы отметили, что сайт - который мы и другие производители отмечаем как вредоносный - иногда, но не постоянно, игнорировал выбор нашей ОС, когда нажимали на ссылки для загрузки, вместо этого предоставляя версию, основанную на строке пользовательского агента, на которую был настроен браузер.
Это сайт, с которого, как предполагается, пострадавший пользователь загрузил пакет, вызвавший заражение. Как пользователь впервые попал на этот сайт - через фишинг, SEO-яд или каким-либо другим способом, - не входит в рамки данного расследования.
Как уже упоминалось выше, в первоначальном исследовании этих атак использовался вредоносный установщик Telegram.
Когда вредоносный установщик Telegram (SHA256: 097899b3acb3599944305b064667e959c707e519aef3d98be1741bbc69d56a17) запущен, он устанавливает и выполняет пакет боковой загрузки.
Он также создает ярлык на рабочем столе. Однако этот ярлык запускает не программу Telegram, а необычную команду:
1 | C:\Users\{redacted}\AppData\Roaming\Tg_B518c1A0Ff8C\appR.exe /s /n /u /i:appR.dat appR.dll |
Здесь appR.exe - это переименованный компонент Windows regsvr32.exe. Он выполнит библиотеку appR.dll, которая является другим переименованным компонентом Windows, scrobj.dll - механизмом выполнения сценариев. Затем он выполнит код Javascript, хранящийся в appR.dat.
Программа установки также создает файл ярлыка в каталоге запуска пользователя. Таким образом, вредоносная программа обеспечивает постоянство и автоматическое выполнение после запуска системы.
Компоненты боковой загрузки и ссылка на запуск создаются только при выполнении ссылки на рабочий стол Telegram. Это может быть уловкой против анализа, поскольку песочницы динамического анализа не увидят сброшенные файлы боковой загрузки.
Sophos также обнаружили троянизированный установщик для LetsVPN (SHA256: e414fc7bcd80a75d57ee4fdbb1c80a90a0993be8e8bbbe0decfc62870a2e1e86). Вредоносные части пакета те же, что и в случаях с Telegram, но в качестве прилагаемого чистого приложения выступает LetsVPN:
Как и установщик Telegram, он создает ярлык на рабочем столе. Программа, которую запускает ярлык, вызывает код JavaScript, который выполняет окончательную установку пакета с боковой загрузкой.
Как уже упоминалось, одним из самых интересных моментов в этом расследовании было обнаружение новой вариации боковой загрузки DLL - использование второго "чистого" приложения в качестве вторичного этапа атаки. В этих необычных атаках начало (загрузчик первого этапа) и конец (полезная нагрузка) были одинаковыми; разница была только в этой второй стадии боковой загрузки.
На самом деле это программа XLGame.exe, подписанная Shenzhen Thunder Networking Technologies Ltd, но переименованная злоумышленниками в Application.exe. Она имеет чистую зависимость, libexpat.dll, которая входит в состав пакета.
XLGame автоматически выполнит автоматическое обновление, если найдет в том же каталоге программу с именем XLGameUpdate.exe. Процесс загрузки использует эту функцию автоматического обновления, поскольку вредоносный пакет содержит исполняемый файл с таким именем - но это не настоящий XLGameUpdate.exe. Скорее, это чистый, подписанный .exe от Beijing Baidu Netcom Science and Technology Co.,Ltd.
А теперь мы возвращаемся к обычному процессу загрузки DLL-библиотек. Этот загрузчик второго этапа имеет зависимость BASICNETUTILS.dll, которую злоумышленники заменили на вредоносную DLL-загрузчик. Вредоносная DLL-загрузчик находит в том же каталоге файл templateX.txt, загружает его содержимое, расшифровывает шеллкод загрузчика полезной нагрузки и выполняет его.
Как отмечалось во введении, злоумышленники, похоже, очень любят свою стратегию двойной боковой загрузки DLL, подменяя различные чистые приложения на новом месте в процессе боковой загрузки. На рисунке 16 показан поток, очень похожий на предыдущую схему, но чистый исполняемый файл в загрузчике второго этапа отличается. Следовательно, вредоносная DLL-загрузчик должна быть переименована, чтобы отразить зависимость заменяемого чистого приложения.
Как и раньше, "Application.exe" на самом деле является XLGames.exe. Чистый загрузчик второго этапа снова переименовывается в XLGameUpdate.exe, но его оригинальное (настоящее) имя - KingdomTwoCrowns.exe. Он не имеет цифровой подписи, поэтому неясно, какую пользу может принести замена чистого, подписанного загрузчика от Baidu на этот.
Он имеет следующий путь к PDB:
1 | C:\buildslave\unity\build\artifacts\WindowsPlayer\Win32_nondev_i_r\WindowsPlayer_Master_il2cpp_x86.pdb |
Этот загрузчик второго этапа используется для обычного сценария боковой загрузки; его зависимость, UNITYPLAYER.dll, заменяется на вредоносную DLL-загрузчик. Вредоносный загрузчик находит в том же каталоге файл templateX.txt, загружает его содержимое, расшифровывает шеллкод загрузчика полезной нагрузки и выполняет его.
Таким образом, чистый загрузчик второго этапа отличается, но вредоносный загрузчик второго этапа и файлы полезной нагрузки в этой вариации по сути те же, что и в вариации, описанной в предыдущем разделе (за исключением переименования). Фактически, один из зашифрованных файлов полезной нагрузки (3fc9405cfe9272323bd96aacfd082c16b392fea6e0f108545138026aa6f79137) был использован в обоих сценариях.
В другом сценарии снова подменяется чистый исполняемый файл в загрузчике второго этапа, на этот раз с использованием чистого инструмента с цифровой подписью, когда-то предлагавшегося компанией HP. Это очень похоже на предыдущую схему, но поскольку чистый исполняемый файл снова отличается в загрузчике второго этапа, вредоносная DLL загрузчика должна быть снова переименована, чтобы отразить другую зависимость.
Чистый загрузчик второго этапа снова переименовывается в XLGameUpdate.exe. Его оригинальное название - d3dim9.exe. Он имеет цифровую подпись HP Inc.
Этот загрузчик второго этапа используется для обычного сценария боковой загрузки. Его зависимая часть, d3dx9_43.dll, заменяется на вредоносную DLL-загрузчик. Эта DLL находит файл templateX.txt в том же каталоге и - снова - загружает его содержимое, расшифровывает шеллкод загрузчика полезной нагрузки и выполняет его.
У загрузчиков второго этапа были интересные вариации, но все дороги ведут к одному: краже криптовалют. Для этого полезные нагрузки, которые мы видели в этом исследовании, были довольно постоянными.
В конце второго этапа чистый загрузчик второго этапа (в зависимости от того, какой из них используется) вызывает определенную DLL - и получает вредоносную версию с идентичным названием, которую злоумышленники поместили в тот же каталог, классическим способом DLL-боковой загрузки. Вредоносная DLL загружает полезную нагрузку из файла template.txt, а затем расшифровывает ее.
Шифрование полезной нагрузки представляет собой простую комбинацию байтового SUB и XOR.
Расшифрованное содержимое представляет собой шелл-код загрузчика, который распаковывает и выполняет конечную полезную нагрузку.
Sophos также обнаружили на VirusTotal особую версию полезной нагрузки (SHA256: d86f1292d83948082197f0a29fcb69fdec9feb4bf3898d7b8e693c7d5a28099c), которая содержит больше внутренней информации, чем обычно. Это также исполняемый файл, в отличие от обычных полезных нагрузок (которые являются DLL).
Путь к PDB как обычно:
1 | D:\Work\3远控\企业远程控制\Debug\ServerDll.pdb. |
В данном случае, однако, он содержит исходный код печально известного gh0st RAT. Предполагается, что исходный архив должен быть сброшен одной из процедур, но этот код никогда не выполняется:
Для этого образца сервер C2 имеет номер 23[.]225[.]147[.]227.
Sophos также видели на VirusTotal похожий образец (sha256: 64613eadd91a803fe103bef5349db04ddfc01b8d115ba7a24a694563123d38ad), который содержал исходный код gh0st RAT, но без отладочной информации и без информации PDB. Обе эти отладочные версии были отправлены на VirusTotal из Гонконга, одного из регионов, известных как пострадавший, поэтому вполне вероятно, что они действительно использовались в атаках.
Indicators of Compromise
IPv4
- 23.225.147.227
- 206.233.128.103
Domains
- 123.nsjdhmdjs.com
- 2.nsjdhmdjs.com
- 2.potatouu.com
- a.pic447.com
- ac2.nsjdhmdjs.com
- b.pic447.com
- d.pic447.com
- j.pic6005588.com
- l.pic447.com
- l2.pic447.com
- nsjdhmdjs.com
- potatouu.com
- t.pic447.com
- v.pic447.com
- v2.pic447.com
- w.pic447.com
SHA256
- 00a9101514b7cf8fd974a7f3b4ebf6c1768ac9a257848cb9df95874cc984ae55
- 02e7ede9b7bcc19506a4fa36fa66ecde2b8638422d7e711d525fb4a4fedc2f82
- 03b1df2b08999262c772b67a7bd65e9e8f6058036b5e7a382f06d3aa672854d0
- 0400b20492be1fcf6d2128b5b8d50a6011279341394fafce1da1e69482e7a750
- 04db8e4dfecfc300a86614a2393bb768861196b18f17845b5765d06e1ba692c4
- 097899b3acb3599944305b064667e959c707e519aef3d98be1741bbc69d56a17
- 0b2b9da3685db339ab0bf7380fe39dd7a3f5ce004edb98fa4e1244b3eb35de25
- 0b85cc5a583e94ba793a88a5184c68658eb7543bcc41deb4cf6aa633c67e538a
- 0e73131b428f45aa10a36e48fc8d5b30643a404125b95f9b179dd3756c6e023d
- 0ed0f8476f0c7d7cdbdfb8935c5c012463ce2cf1e00c8fbfc1ad202366539b38
- 11359b92b062c426d58fcf738b4f92644c7bdd7e9f47a3ab9e1cb54ad29e6dc4
- 187edeadef737db0733f7abad0f8a471f79d9fbd4bc39fea4d3475a19cea9d8e
- 1b32c531aca954a7812c65ea41b85941e199aa78ace782f17d9307f5f51f4e43
- 1c4ad390cf903e78571fe9c3dbc0f9ff63fda7cae449d81f743a6011e8287caf
- 1cb279f73e354ba6caff8aa69cbd7dde2182746a459dbe9bf4529f9890182ea6
- 1d4ccdda1c3ee0770a0eaf3e401d816949d1abfa4e26c6e6bb1daf1bfab90124
- 21388b23d5faf37632518c3309d44e721aa2d83911ab092272fc4526db34ea75
- 229011ca0351dc3461b19e427b1910990dde9f268f2a361e92f728171544b589
- 274fcf60280fbf9f2f21c8a529738e7839d412b5c98eedfbbbc8e967bc15900e
- 283426bb17d23c9b80c3f4c93666b6225caa50af8b004c5913b2e8ed386ab023
- 2839b91b46b3d68b6a0355b580d282ecd511a5fc9cd3a6f4250ca4b22af8511c
- 2f6c5fa76ddfb7ad9aa08aaa98305ac729fe742193bf3c6db5212cc651df851d
- 31d2076066107bd04ab24ff7bbdf8271aa16dd1d04e70bd9cc492e9aa1e6c82b
- 324bbcae91d4287e481ece09abe8d6d123b0c2f8ae0355c416924e4f8371661d
- 33a1216f3d1b1299d7227aef12eb91af7247e77f2bd52f29d8e82df89c0bc460
- 34c4eda45c782e74a5f3b179961659b472c053b63eb48318a2441db2bcbbb1dc
- 3fc9405cfe9272323bd96aacfd082c16b392fea6e0f108545138026aa6f79137
- 45023fd0e694d66c284dfe17f78c624fd7e246a6c36860a0d892d232a30949be
- 464cce4295016c57b0af90d7621e4f358b58c2385377dcf77294383b246b7037
- 46b1c4848ba79be3d90542bd8b9537e72d9f96bd983d9cf793e455782e273807
- 484fdf350c4a10c8bf0c495abf696a09f0a25258d39e81884122cb75e4432191
- 489e121909baf86c725fda439838b7c4cc7da19038ab21df5bf041a4125c6405
- 48a35466b1a08711abcdd2cd5564164265a4ee4e2082700f2eba69e1f3bf111a
- 49a1826a70ef6a373910ebf43bb441213ec195e68c9a242e4bead60f7e04609b
- 49aca2efaca973d9dea2e01c2ac63cea7cd1e0cf12aa45d98653eea46b7593c9
- 49c1dec7843c186e434718818311d3fc693eefe26c2d2a068bdfa7601d118781
- 4bf6b4544c8584fe933eec269568d8e3dc259110b36a9376d6956980fe43a37d
- 4c3899f2b7be819620b5eeb6f35643043141a2e51223d56a54840b1268a6893d
- 4cb3ebdc53a10c0c911fa79dd156f2d8b6c64c37f4f7c71a5ac002fd4fc8f3d5
- 4fbab28e76b3e58b4ddc04e7494e73c84b5264e03195dca01f0809f957e9b70e
- 530f01699688ab8c2bb25349a6bc398907b2adb5164d7602c28152c66851fa43
- 57a5ca04980f24e71bc08eca42d2da23ec17ae6dc0897649520b0b0f4e4fcf40
- 5e19f77df4d5241985e94e2770b94ed6f7fbaa977d516f44bb24f2cff1bca827
- 60f6fa45809c39ecdff4161d5925e6e8f491adedb7ed8ac67d772cd3c212b1cf
- 64613eadd91a803fe103bef5349db04ddfc01b8d115ba7a24a694563123d38ad
- 659fdd90ec33b0809d1b037f06c864ec02d785178ba6acfa02533661195d5163
- 687f682f6ddfb9786e4905ec367fe4fb55b9adfe1112c4e6aaab43ebfa52de5a
- 695e0312d6612201af4b3c6d4f50f67df8614cae69e35ce2a72e68d0c587de54
- 6966a13c71badbf82357d3108ed8f3a921c1f8e8cba47194ccfdc446765faeb4
- 6e0bdffbaa91dd9360a638988a9231a2ac81b8935b14d285b2aaaca13bbd49cc
- 73667daa2716b33a672b05658ac3a3393c1d26f9bf9b94186f7c54c2d0a18468
- 749c6874af94ae263221e3d1261acf9a19b0599d247be3080c6bbb33a1fe687d
- 74efdf66302cda73060903ee07957cbae32a2c68416ed5cfa3c1aa7bfc1ed475
- 769d59d03036af86c7a9950f03ebc7b693a94d3e2f8ecd1d74cf5600ab948105
- 79bcd6e9dadf67b771a530821abff5944a2f40019bc5e57c59cc037edebfec51
- 7cd096bb8e2edd384b9cf149916b67653d07804bc0024973ee1e2e02c8d5288e
- 7e45c502e7ba61c2ed583c441cd41df24a6ca16405ceffa0fcd9e27c9a98ca1c
- 7e5b4dbc4b3db7a0e85bfa55e255260cf5426b8483c4f1d8365a3824b928886e
- 7f79408634879cd6c752340ebf2e609476512c2b8d239707e081cd1d1085209d
- 7fcba1dc809f39fa6b36e923af22fc7c576f3cfb49aaa7248a98d32e9bc90991
- 831b6a78bc193e5bb3a112aecc385ae00a2c81b963e126d2b949140b6acf333e
- 849d9e694d3e5d3f0eabcae4b722c2bbed31168d161a4f5d668f351bfa169743
- 86959372cb04eb9c178cfe5150801774e5b8a3fe3876dcfda98a26c40a20e46c
- 87528e65b5c10c699edce279516f8c41c603d2382261d2d7601191e97666fa57
- 882746f97d4cad4424735035e6fa45f96a849da63737cc1eeaca4ff459ad9d30
- 88edf471eed533e34fd18fa1d234f2cc3c6769f1e6456961b5b094cd6c934b0d
- 8bf79d037d2f6d422730b95407ea0de15ce119527083a06dfa18268cb8c95e04
- 8efcbcff36c0dfed3e4966e1ecafe9f56532a9c1cceaeb76b5dd3033b4ebb5f2
- 93ce3af0ce4374aa1d5f5ba5258f03ec540ab4a744b57b20ecda72a03e0b648c
- 971389ff8acd1d883068dcc2c32c4bf0122c7d468f389a41e75f499b04e95c8b
- 9832b185d9b6d93f0ddb0ce62cd109ca64fffc5142fd4872b36d1d42635c9c81
- 99f6932e3de96d6558f37030fce5007a13bed9de8617935dcad25e7be551b2a2
- 9a17c5a4f48367557f06dacd3aefaa132214cb4163bc6b6cf43e06041936a69e
- 9c4f42124ff130e0ff61846b2cb3d1aa6d618d65b141e466613533a350bdf278
- a21f66260427b18c5db840dca84f33a762d4089a23ff293c4ae9dcf4ef2cb90f
- a3e4747f878fa1959b54874d239c6170d8d3dde29b5bfbe7bfdf154a51cccdee
- a8a09d4e1ddbe4de188100b285a53b53b10677e4fbc93014e07211cdaf532e7b
- ad7ff3ffcf4276219830228de0c0454310710011f5274f3d2436a4b699af7030
- ae2e145b36ab2ed129a2d34de435b76a1f4e5a4820d9d623e7018b87f24d0648
- af04147945915737f3f2eed7df222c0b45d7b911bf82f6176df6856514e58c08
- b95909f153ed99a279fc8e3b04bbc3416662bc755032fb886b93a18f23312e77
- be061c8bb82cd52d2f76aeb1e3ba2448c1a3230dd7eda1250d272648af4669ca
- beda51527ba522bd4b033c3d0c10028acffe5bc7a1ab51c373109a45cf3707e6
- bf19222b9eac87650db9206cee05c695b1df22499bcac310376734197ee5457c
- bfb44fb2194e25eee516b431fd84892a6073735dbf510a70dfa3a344526ade97
- c55d501f880425330b84c7a6594662e055e898df6a978cca2c8b2eff588bf2c1
- c84fed7e05b1b1cf2bff72ee3e96ec923929741c77fe6d97996664833bec1f00
- c856930a4e67c36cba866401c5acda717eab636fd6648292b23cbd75d8f0f816
- c936f1598721a9a92d7f31c6c13b55013b8a2a344e3df4156e5b033006336544
- cb8714989882b6756aadf4ba1b1e3deb2b1f669cccf799a5ff423ecfb6467d0f
- cc011a8487698bfe463d9ae6d615246349a8a61f980f497c53ef17e973e0a2d4
- cdb645ea97980e63b9c165ca842bad2751ce2728cc5c55329ba04e96bab3077b
- d1652c5153171fb5420a7c647888b23ab43c286eb2331ec661162cc37fb527f3
- d58de58c55b55779ad9d45347337e2d5ebb94846bf38c29c4519cb0c7bc75557
- d5a438d6f59f91d546ada978e842e47622b2f3ce1837248c0243fa19d750a114
- d86f1292d83948082197f0a29fcb69fdec9feb4bf3898d7b8e693c7d5a28099c
- da1d66610e0253a82c7ba3f2cc3e4c50d23bccee71f7a61f18f8f99937d04bdd
- dc41b8e22c725ee4f8e04f55851b3129f0b8b6b5c2c16aaf893bfe92de440503
- dc758f11e768a829836e27fa265993c937fd2bb4575a3dc18c12ba4b69baa953
- df1ef7db4e0c54de1f9362c873b21bc1c07710fd7106a7e0312c64aab807168b
- e07113850a83ebf58816f619f14ce142187d7e27af4025ff44bfe611e1d68820
- e1e0fba8c5c14bab3d83ee18f266385d56c91b347e509cd090bdb3ef4168d91f
- e414fc7bcd80a75d57ee4fdbb1c80a90a0993be8e8bbbe0decfc62870a2e1e86
- e50e72bf4684b2543b55234f798e728b02cafb27a70fa6f4459e68d99b988f3b
- e744f4d6ea7b88bc5e8d432f0c11b7c5cf86c0e4d22809f2df159608baf586f7
- eb5b72a8a40123dfec2341414196ee11ec13c404125bb5c5ada9d70c0b2cc015
- ec9083eb656234b4eb3dd5df1882046e605870975fa67ecf04bbee454a4d44ec
- ee07de81fd6b8896bcd128dfe9db53e9e987b9bf42e865e1f1aa7dc5b27f373d
- ee927ca55d06406b6dd266b286d3cfe0626308ec4193d98336e00ad509fe44e2
- efacfe7cc34c5807f88296a373187a5c9324f59f476cbf07d219b6373d014f3a
- f05db80e4676ffb4b4df68982f1f22b38e8054070f78b21fed1baf51e62c6853
- f3ea4862b50ca8d0a360d05460a97bf7eb855c004a70323884396ef98be1bdee
- f8bdd7ab540033de65a93c5329f9b1dacfabaca0b05b06f5abc797c336d20cfe
- fb9e192c418655704e86cc0ba606828a87a97a9fd3409791ae5e40200ee0205b
- fe8c97f1ca9aab32b0ff4d46559f22677b3dba3c6d73c8b5d2fe9dd07c8ec64a
- ff16e3b2a3f380de41b5fac6f6d2da7aebb3f1e4fc527490de0147e5ad18036f