stihl не предоставил(а) никакой дополнительной информации.
Хакерам Saber и cyb0rg удалось успешно атаковать участника северокорейской шпионской хакгруппы Kimsuky. Отчет об этом они опубликовали в новейшем номере журнала Phrack. Из этой статьи ты узнаешь, как проходила атака, какой код и данные извлекли с рабочей станции, принадлежащей северокорейскому хакеру.
Далее — близкий к тексту пересказ Для просмотра ссылки Войдиили Зарегистрируйся Saber и cyb0rg из бумажной версии Phrack, подготовленной для DEF CON. Этот материал доступен без платной подписки.
Kimsuky — это поддерживаемая правительством КНДР хакерская группа типа Advanced Persistent Threat (APT), нацеленная на шпионаж за аналитическими центрами, предприятиями, операторами атомных электростанций и правительственными структурами. Она внесена в список в соответствии с указом E. O. 13687 как агентство, инструмент или подконтрольная структура правительства КНДР.
Мы будем называть этого конкретного участника просто KIM — так короче. И KIM тебе не друг!
В дампе нашлось немало бэкдоров и инструментов Kimsuky, а заодно и внутренняя документация. Из нее видно, что Kimsuky без стеснения работает в паре с китайскими APT-группами, обмениваясь инструментами и приемами.
Некоторые из этих инструментов тебе, возможно, уже встречались: ты видел их сканеры, находил серверные артефакты и импланты. А теперь в придачу получишь их клиенты, документацию, пароли, исходники и командные файлы.
И, чтобы жизнь казалась слаще, мы подкинули бонус — бэкап VPS, с которого члены группировки запускали атаки с таргетированным фишингом.
Итак, среди интересного:
Из занятного:
Логи показывают, что всего три дня назад была фишинговая атака на dcc.mil.kr.
В тех же логах засветились The Supreme Prosecutor Office (spo.go.kr), korea.kr, daum.net, kakao.com и naver.com. Обрати внимание, что Admin-C для dcc.mil.kr зарегистрирован на hyuny1982@naver.com.
Хост onnara9.saas.gcloud.go.kr недоступен из публичного интернета, но домен светится в ряде документов как внутренний правительственный портал. Похоже, что у Кима есть доступ к этой сети.
или Зарегистрируйся (ORB).
13 июня 2025 года KIM зарегистрировал сайт webcloud-notice.com. Мы думаем, что в рамках подготовки будущей фишинговой атаки. Мы нашли сертификат и приватный ключ для rc.kt.co.kr — это удаленный сервис управления South Korea Telecom.
Куча паролей LG Uplus (LGU) лежит в mnt/hgfs/Desktop/111/account/account.txt. LGU — южнокорейский мобильный оператор. Если копнуть глубже через favicon, то получается, что KIM сначала взломал SECUREKI, компанию, которая обеспечивает LGU многофакторной аутентификацией, а потом через нее пробрался уже в сеть LGU.
История поисковых запросов в Google точно заслуживает пристального внимания. Особенно все, что связано с chacha20 и arc4. Да и временные файлы Chrome стоит покопать — кто знает, что там можно нарыть.
Похоже, KIM качает свои Dev Tools вот с этого ресурса:
Для просмотра ссылки Войдиили ЗарегистрируйсяЛицензию на IDA Pro он стащил с заброшенного и не работающего больше сайта в Tor.
В конфигах Google Chrome содержатся вот такие ссылки. То есть для доступа к сайтам могли использоваться личные учетки Google. А что насчет аккаунта wwh1004 на GitHub? Может, тоже их? И еще вопросик: не использовала ли группировка Google Pay, чтобы оплатить VPN?
Сертификат граждан Южной Кореи нуждается в более глубоком изучении, особенно интересен момент с выделением профессоров университетов. Почему их так отдельно пометили?
В папке work/home/user/.cache/vmware/drag_and_drop/ хранятся файлы, которые KIM перекидывал между своими Windows- и Linux-машинами. Там лежат лоадеры Cobalt Strike и реверс‑шеллы на PowerShell, а также скомпилированный код Onnara и ее модули для проксирования в государственную сеть и не только.
В директории work/home/user/.config/google-chrome/Default/ можно найти много интересных файлов (.com.google.Chrome*), которые приоткрывают завесу над интересами, поисковыми привычками и посещаемыми сайтами пользователя KIM. Среди прочего мы узнаём, что его часто заботит выживание Cobalt Strike (CS), он интересуется, почему Куньмин находится в центре Центральной инспекционной группы, и неравнодушен к разным проектам на GitHub. Заходит он и на freebuf.com, xakep.ru, а Google Translate использует для чтения accessibility-moda-gov-tw через translate.goog, переводя с тайваньского.
Файлы voS9AyMZ.tar.gz и Black.x64.tar.gz требуют тщательной проверки. Их бинарные хеши пока неизвестны VirusTotal, но сами названия уж больно подозрительные:
Пит Хегсет бы сказал: «У него сейчас все чисто с OPSEC».
Финальная переадресация жертвы уводит ее с фишингового сайта на легальный веб‑сайт. Там он всегда видит ошибку входа.
Это целенаправленная атака, и ее автору пришлось потрудиться, чтобы найти такой URI на легальном сайте Для просмотра ссылки Войдиили Зарегистрируйся.
Плюс этого трюка в том, что жертва увидит ошибку от Для просмотра ссылки Войдиили Зарегистрируйся (которую он знает и которой доверяет), хотя его данные на самом деле утекли на фишинговый сайт.
Найти такие фишинговые сайты в интернете элементарно:
Клиент общается с сервером жертвы напрямую по TCP. Загруженный модуль ядра (LKM) отлавливает любые TCP-соединения, которые совпадают с определенной комбинацией TCP-SEQ и IP-ID. Для связи со своим пользовательским бэкдором master.c в юзерспейсе LKM использует /proc/acpi/pcicard.
Мастер‑пароль: Miu2jACgXeDsxd; клиент использует !@nf4@#fndskgadnsewngaldfkl.
Скрипт tomcat20250414_rootkit_linux2345/config.sh на лету генерирует новые секретные ID и строки для каждой инсталляции и сохраняет их в install.h. Главный пароль зашит в коде и неизменен.
Модуль ядра перехватывает каждое новое соединение по TCP и проверяет, используется ли секретный TCP-SEQ и IP-ID (причем на любом порте!). Эта проверка выполняется в функции syn_active_check.
Поле размера окна TCP как раз используется, чтобы настроить бэкдор‑протокол (чаще всего это SYN_KNOCK или SYN_KNOCK_SSL).
Если условие выполняется, стартуют два следующих этапа:
char smtp_tls1[] = "220 Ready to start TLS\r\n";
char smtp_starttls[] = "starttls\r\n";
char smtp_hellol] = "HELO Alicelr\n";
Засечь LKM на локальной машине — проще простого.
Удаленное обнаружение LKM может быть тоже несложным делом, но тут нужна дополнительная проверка: аутентификация по паролю происходит после SSL-рукопожатия.
Таким образом, при подключении с заранее известными значениями TCP SEQ=920587710 и IP-ID=10213 к любому целевому порту (включая те, где обычно нет TLS, — 80, 22, 25) LKM перехватывает соединение и передает его в master.c. Дальше master.c поднимает TLS и после рукопожатия проводит аутентификацию и предоставляет шелл или прокси.
Как проверить наличие бэкдора:
В файле config.cpp — два бинарных блоба с конфигами для Cobalt Strike. Эти блобы валидны, и их можно расшифровать с помощью скрипта CobaltStrikeParser. Внутри блобов обнаружатся следующие настройки:
В поддиректории /bak/ лежат старые версии некоторых файлов.
896fa846b1ec8cd4895f6320b56942f129e54bc9
Мы пока не выяснили, для чего предназначены многочисленные модификации ToyBox.
Приглашаем комьюнити разобраться.
В 2017 году парни из Synacktiv по ошибке приняли закладку за уязвимость. Но позже выяснилось, что это действительно был имплант, оставленный злоумышленниками.
Он называется RootRot.
Этот запрос ответит словом HIT, если бэкдор активен:
curl -ksi --cookie "DSPSALPREF=cHJpbnRmKCJISVQiKTsK" "Для просмотра ссылки Войдиили Зарегистрируйся"
Это эксплоит для Ivanti, возможно, для Для просмотра ссылки Войдиили Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся или Для просмотра ссылки Войди или Зарегистрируйся. Пейлоад устанавливает бэкдор.
Недавно ребята из Mandiant засекли в дикой природе интересный пейлоад. Они приписывают его группировке UNC5221, Для просмотра ссылки Войдиили Зарегистрируйся с Китаем.
Скрипт exp1_admin.py использует те же команды iptables, которые Mandiant нашли в дикой природе.
Эксплоит идет в комплекте с документацией, которая в переводе звучит так: «Свяжись с нами, если эксплоит не сработает».
Это может указывать на связи между группировками в разных государствах: возможно, они обмениваются кодом и оказывают друг другу поддержку.
Этот пейлоад также открывает удаленный доступ к скомпрометированной системе. Интересное начинается на строке 2219, где генерятся ключи и магические значения:
Функцию detect_door (строка 335) можно использовать для удаленного обнаружения бэкдора.
Заметь, что, чтобы постучаться в бэкдор, нужно только магическое значение, а не ключ. Оно передается в первых 24 битах ClientRandom в сообщении TLS Client Hello. Шанс, что обычный ClientRandom будет иметь вот такую начальную 24-битную комбинацию, — примерно 1 к 70.
IP-адрес 203.234.192.200 принадлежит hani.co.kr (The Hankyoreh) — либеральной газете из Южной Кореи.
Как работает port knocking, можно посмотреть в client.py на 152-й строке.
Еще он спрятан в TLS Client Hello, в 32-байтовом поле ClientRandom, но с новой особенностью: первые 4 байта должны содержать правильный CRC32 оставшихся 28 байт.
Среди улик — настройка локали: выставлен корейский язык. К тому же куча конфигов для доменных имен, которые связаны с атаками Kimsuky. Найденный код перекликается с тем, что использовали в предыдущих кампаниях.
Еще одна интересная деталь — у злоумышленника четкий рабочий график: каждый день он подключается примерно в 09:00 и исчезает к 17:00 по времени Пхеньяна.
или Зарегистрируйся
На системе злоумышленника мы обнаружили настройки веб‑сервера для домена, связанного с этой атакой.
GPKI — это такая система, благодаря которой чиновники Южной Кореи могут подписывать документы и подтверждать их подлинность. Так вот, мы нашли тысячи таких файлов на рабочей машине участника KIM.
Naver уже не первый раз становится мишенью для атаки со стороны Северной Кореи. В 2024 году Zscaler раскопали новую хромовую расширюху под названием TRANSLATEXT от киберпреступной группировки Kimsuky. Это расширение может впендюрить произвольные JS-скрипты при открытии определенных страниц. Например, когда ты заходишь на страницу логина Naver — nid.naver.com, расширение закидывает в браузер auth.js и тихо сливает твои логин — пароль.
Фишинговая атака, о которой рассказывается в разделе 2.1, использует домен nid.navermails.com в качестве основного URL. Вся загвоздка в том, что этот домен крепко связан с Kimsuky, как выяснили ребята из AhnLab.
или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся обнаружили атаку AiTM. Атакующие использовали веб‑сервер, который работает как прокси между настоящей страницей входа и жертвой.
Жертвам приходило письмо с заманухой в виде HTML-вложения. Открываешь его, и тебя тут же перекидывает на прокси через HTTPS. Прокси, в свою очередь, перекидывает любой запрос на серверы Microsoft, заново шифруя данные через HTTPS.
Как только жертва логинилась, прокси подхватывал ее сессионные куки и перенаправлял на сервер Microsoft.
Украденная кука валидна и может быть использована злоумышленником без необходимости проходить авторизацию с MFA. Для этой кампании Для просмотра ссылки Войдиили Зарегистрируйся домен websecuritynotice.com.
Конкретно этот домен мы в дампе не обнаружили, но нашли очень похожий (заметь лишнюю букву s):
KIM работает по расписанию китайских праздников. С 31 мая по 2 июня отмечали праздник драконьих лодок, и в это время KIM взял передышку, тогда как в Северной Корее это был обычный рабочий день.
При этом утилита Для просмотра ссылки Войдиили Зарегистрируйся показала, что в настройках Chrome у KIM выставлено корейское стандартное время.
Пару дней спустя Namecheap заблокировал домен, не объясняя причину. Когда KIM попытался восстановить доступ, в Namecheap сказали следующее:
Еще занятный факт: в 2020 году, когда домен websecuritynotice.com использовали в фишинговой кампании, владелец создал для этих атак несколько поддоменов с реалистичными адресами.
В январе 2025 года этот домен указывал на IP 104.167.16.97. А в марте 2025-го домен download.sponetcloud.com тоже резолвился в этот же IP.
На VirusTotal есть его родственник: sharing.sponetcloud.com. Вот список URL-адресов, которые с этим доменом связаны:
Те же самые адреса электронной почты (и еще куча других) всплывают на VPS Кима в файле request_log.txt:
Не может ли это быть подделкой? KIM ведь мог специально направить часть своих доменов на IP-адреса, которые когда‑то были засвечены в связке с Kimsuky.
Например, у nid-security.com вот такая история хостинга DNS:
В этом месяце домен резолвился на 45.133.194.126. Так что же, 27.255.80.170 был просто уловкой?
И напоследок еще одна забавная деталь. Когда Kimsuky регистрировал домен websecuritynotices.com, его почта засветилась в записях SOA:
websecuritynotices.com IN SOA ns4.1domainregistry.com dysoni91.tutamail.com
Далее — близкий к тексту пересказ Для просмотра ссылки Войди
Kimsuky — это поддерживаемая правительством КНДР хакерская группа типа Advanced Persistent Threat (APT), нацеленная на шпионаж за аналитическими центрами, предприятиями, операторами атомных электростанций и правительственными структурами. Она внесена в список в соответствии с указом E. O. 13687 как агентство, инструмент или подконтрольная структура правительства КНДР.
Мы будем называть этого конкретного участника просто KIM — так короче. И KIM тебе не друг!
В дампе нашлось немало бэкдоров и инструментов Kimsuky, а заодно и внутренняя документация. Из нее видно, что Kimsuky без стеснения работает в паре с китайскими APT-группами, обмениваясь инструментами и приемами.
Некоторые из этих инструментов тебе, возможно, уже встречались: ты видел их сканеры, находил серверные артефакты и импланты. А теперь в придачу получишь их клиенты, документацию, пароли, исходники и командные файлы.
И, чтобы жизнь казалась слаще, мы подкинули бонус — бэкап VPS, с которого члены группировки запускали атаки с таргетированным фишингом.
Дампы
- Для просмотра ссылки Войди
или Зарегистрируйся - Для просмотра ссылки Войди
или Зарегистрируйся
Итак, среди интересного:
- логи, фиксирующие атаку на Командование военной контрразведки;
- доступ к Министерству иностранных дел Южной Кореи;
- доступ к внутренней сети правительства Южной Кореи
- …и еще куча файлов, до которых мы пока не добрались.
Из занятного:
- Скриншот его рабочего стола (kim_desktop.jpg).
- Linux Dev System (VM на Deepin 20.9 Linux).
- Гостевая VM имела примонтированный диск хоста C:\ (через HGFS). Дамп прилагается.
- Список всех файлов лежит в ./file-lists.
- Около 20 тысяч записей в истории Brave и Chrome — с кучей email-адресов (jeder97271@wuzak.com, xocaw75424@weiby.com и так далее), сайтов, которые посещал KIM, и инструментов, которые он скачивал.
- Все расширения Chrome: для подмены User-Agent, Proxy SwitchyOmega, Cookie Editor и множество других.
- Файл ko图文编译.doc — это инструкция по эксплуатации одного из бэкдоров. Там даже есть официально звучащее предупреждение (перевод): «Запрещено использовать бэкдор не по назначению».
- В mnt/hgfs/Desktop/fish_25327/vps20240103.docx — куча паролей, включая рабочие пароли к почте и VPS.
- Море паролей — в mnt/hgfs/Desktop/fish_25327/vps20240103.docx. Там находятся как рабочие email, так и пароли к VPS:
- root: 1qaz2wsx;
- dysoni91@tutamail.com: !QAZ4rfv!@#$;
- Для просмотра ссылки Войди
или Зарегистрируйся: H4FHKMWMpX8bZ; - Для просмотра ссылки Войди
или Зарегистрируйся: dr567h%a"G6*m.
- Из fish-url.txt и generator.php ты узнаешь секреты повторяющихся паттернов паролей.
Второй дамп
- Имя сервера: vps1735811325, размещен на vps.bz.
- Этот сервер участвовал в целевых фишинговых атаках.
- Примечательны SSL-сертификаты и auth.log. Подробнее о сорцах фишинговых атак — ниже.
Командование военной контрразведки (dcc.mil.kr)
- Где лежит: vps/var/www/html/
Логи показывают, что всего три дня назад была фишинговая атака на dcc.mil.kr.
В тех же логах засветились The Supreme Prosecutor Office (spo.go.kr), korea.kr, daum.net, kakao.com и naver.com. Обрати внимание, что Admin-C для dcc.mil.kr зарегистрирован на hyuny1982@naver.com.
...grep -Fhr 'doc.mil.kr' 1og | uniq
jandy3912@dcc.mil.kr_amFuZHkzOTEyQGRjYy5taWwua3I=
di031111@dcc.mil.kr_ZGkwMzExMTFAZGNjLm1pbC5rcg==
didcdba@dcc.mil.kr_ZG1kY2RiYUBkY2MubWlsLmty
jhcgod88@dcc.mil.kr_amhjZ29k0DhAZGNjLm1pbC5rcg==
chanchan0616@dcc.mil.kr_Y2hhbmNoYW4wNjE2QGRjYy5taWwua3I=
yib100@dcc.mil.kr_eWliMTAwQGRjYy5taWwua3I=
Dsc808@dcc.mil.kr_RHNjODA4QGRjYy5taWwua3I=
Доступ в хранилище МИД Южной Кореи
Копия платформы электронной почты Министерства иностранных дел Южной Кореи лежала в файле с названием mofa.go.kr.7z. Похоже, исходники стащили совсем недавно.Судя по формату файлов, это, скорее всего, дамп из репозитория на GitHub, который выступает частью почтового сервера. В исходном коде полно упоминаний о правительственных доменах:1923 Apr 1 07:15 .gitignore
96 Apr 1 07:15. gitmodules
4096 Apr 1 07:15 kebi-batch/
4096 Apr 1 07:15 kebi-core/
4096 Apr 1 07:15 kebi-resources/
4096 Apr 1 07:15 kebi-web-admin/
4096 Apr 1 07:15 kebi-web-archive/
4096 Apr 1 07:15 kebi-web-mail/
4096 Apr 1 07:15 kebi-web-mobile/
4096 Apr 1 07:16 kebi-web-parent/
7528 Apr 1 07:16 pom.xml
14099 Apr 1 07:15 README.txt
./kebi-web-parent/mail/document/info.txt
/home/ksign/agent
Для просмотра ссылки Войдиили ЗарегистрируйсяДля просмотра ссылки Войдиили ЗарегистрируйсяДля просмотра ссылки Войдиили ЗарегистрируйсяДля просмотра ссылки Войдиили Зарегистрируйся
Доступ к внутренней сети правительства Южной Кореи
Похоже, KIM сохраняет доступ к внутренним системам сети правительства Южной Кореи. Есть проект под названием onnara_auto, где лежит несколько занятных файлов. Судя по всему, это набор инструментов для работы с внутренними правительственными серверами. Например, файл /onnara_auto/log/log-20250511.log содержит такие записи:Соответствующий код:[horedi179] get onnara9.saas.gcloud.go.kr в 11/05/2025 19:41:23
[horedi179] main_job: Session 6112b9bc-5a2a-4abd-a907-aaec4b19e2ed does not exist at 11/05/2025 19:41:23
[horedi179] get onnara9.saas.gcloud.go.kr at 11/05/2025 19:41:23
[horedi179] get Для просмотра ссылки Войдиили Зарегистрируйся at 11/05/2025 19:45:37
[horedi179] main_job: Session 0c446a8c-e913-467d-a9b9-3f08abfb6f7a does not exist at 11/05/2025 19:45:37
[horedi179] get Для просмотра ссылки Войдиили Зарегистрируйся at 11/05/202...
Код:
drives = instanceManger (config_hub)
client = Client(config_hub)
plugins = PluginManager()
try:
onnara = onnara_sso("horedi79", "1250000", "onnara9")
klass = plugins.load(os.path.join(os.getcwd(),
"scripts", target_project, "onLaunch.py"),
opts={'onnara' nnara, 'drives': drives, "client": client,)
Хост onnara9.saas.gcloud.go.kr недоступен из публичного интернета, но домен светится в ряде документов как внутренний правительственный портал. Похоже, что у Кима есть доступ к этой сети.
Разное
IP этой машины — 156.59.13.153 (Сингапур). На этом айпишнике крутится SSHD на порте 60233, а порт 4012 светит TLS-сертификат с CN=*.appletls.com.Fofa. Этот сертификат засветился на примерно 1100 уникальных IP. Львиная доля (>90%) разбросана по Китаю и Гонконгу. Возможно, это какая‑то сеть прокси или Для просмотра ссылки Войди13 июня 2025 года KIM зарегистрировал сайт webcloud-notice.com. Мы думаем, что в рамках подготовки будущей фишинговой атаки. Мы нашли сертификат и приватный ключ для rc.kt.co.kr — это удаленный сервис управления South Korea Telecom.
Куча паролей LG Uplus (LGU) лежит в mnt/hgfs/Desktop/111/account/account.txt. LGU — южнокорейский мобильный оператор. Если копнуть глубже через favicon, то получается, что KIM сначала взломал SECUREKI, компанию, которая обеспечивает LGU многофакторной аутентификацией, а потом через нее пробрался уже в сеть LGU.
История поисковых запросов в Google точно заслуживает пристального внимания. Особенно все, что связано с chacha20 и arc4. Да и временные файлы Chrome стоит покопать — кто знает, что там можно нарыть.
Похоже, KIM качает свои Dev Tools вот с этого ресурса:
Для просмотра ссылки Войди
В конфигах Google Chrome содержатся вот такие ссылки. То есть для доступа к сайтам могли использоваться личные учетки Google. А что насчет аккаунта wwh1004 на GitHub? Может, тоже их? И еще вопросик: не использовала ли группировка Google Pay, чтобы оплатить VPN?
KIM пользуется Google Translate, чтобы переводить сообщения об ошибках на китайский. В его истории Chrome есть целый ряд сайтов правительства и военных структур Тайваня."Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]0x1.gitlab.io":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]aldeid.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]asawicki.info":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]devglan.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]edureka.co":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]johnwu.cc":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]majorgeeks.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]maskray.me":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]namecheap.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]qwqdanchun.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]rakuya.com.tw":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]redteaming.top":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]reversecoding.net":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]shhoya.github.io":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]sparktoro.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]tutorialspoint.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]wiseindy.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]wwh1004.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]wwh1004.github.io":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]purevpn.com":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]purevpn.com.tw":
"Для просмотра ссылки Войдиили Зарегистрируйся, https://[*.]zoogvpn.com":
Сертификат граждан Южной Кореи нуждается в более глубоком изучении, особенно интересен момент с выделением профессоров университетов. Почему их так отдельно пометили?
В папке work/home/user/.cache/vmware/drag_and_drop/ хранятся файлы, которые KIM перекидывал между своими Windows- и Linux-машинами. Там лежат лоадеры Cobalt Strike и реверс‑шеллы на PowerShell, а также скомпилированный код Onnara и ее модули для проксирования в государственную сеть и не только.
В директории work/home/user/.config/google-chrome/Default/ можно найти много интересных файлов (.com.google.Chrome*), которые приоткрывают завесу над интересами, поисковыми привычками и посещаемыми сайтами пользователя KIM. Среди прочего мы узнаём, что его часто заботит выживание Cobalt Strike (CS), он интересуется, почему Куньмин находится в центре Центральной инспекционной группы, и неравнодушен к разным проектам на GitHub. Заходит он и на freebuf.com, xakep.ru, а Google Translate использует для чтения accessibility-moda-gov-tw через translate.goog, переводя с тайваньского.
Файлы voS9AyMZ.tar.gz и Black.x64.tar.gz требуют тщательной проверки. Их бинарные хеши пока неизвестны VirusTotal, но сами названия уж больно подозрительные:
В bash_history — SSH-подключения к компьютерам в локальной сети.2bcef4444191c7a5943126338f8ba36404214202 payload.bin
e6be345a13641b56da2a935eecfa7bdbe725b44e payload_test.bin
3e8b9d045dba5d4a49f409f83271487b5e7d076f s.X64.bin
Пит Хегсет бы сказал: «У него сейчас все чисто с OPSEC».
Артефакты
В этом разделе разбираемся с шестью бэкдорами и артефактами от Кима. Это еще не финальная версия и не полный список. Это только начало, чтобы заинтересовать тебя и помочь лучше понять, как действует Кимсуки и какие инструменты использует.Генератор против контрразведки
- Где лежит: vps/var/www/html/
Финальная переадресация жертвы уводит ее с фишингового сайта на легальный веб‑сайт. Там он всегда видит ошибку входа.
Это целенаправленная атака, и ее автору пришлось потрудиться, чтобы найти такой URI на легальном сайте Для просмотра ссылки Войди
Плюс этого трюка в том, что жертва увидит ошибку от Для просмотра ссылки Войди
- config.php — хранит длиннющую черную базу айпишников (и другие списки), чтобы такие компании, как Trend Micro и Google, не смогли найти фишинговый сайт.
- generator.php — это удаленный интерфейс для управления фишинговой атакой. Доступ к нему можно получить через заданный пароль. Однако хитрость в том, что куки здесь зашиты в коде, и в админку можно зайти без пароля, просто подставив нужное значение куки.
curl -v --cookie "HnoplYTfPX=x" [URL]https://phishing-site/generator.php[/URL]
Найти такие фишинговые сайты в интернете элементарно:
curl -v --cookie "HnoplYTfPX=x" [URL]https://phishing-site/logs.php[/URL]
Бэкдор в ядре Tomcat
- Где лежит: mnt/hgfs/Desktop/tomcat20250414_ rootkit linux234/
Клиент общается с сервером жертвы напрямую по TCP. Загруженный модуль ядра (LKM) отлавливает любые TCP-соединения, которые совпадают с определенной комбинацией TCP-SEQ и IP-ID. Для связи со своим пользовательским бэкдором master.c в юзерспейсе LKM использует /proc/acpi/pcicard.
Мастер‑пароль: Miu2jACgXeDsxd; клиент использует !@nf4@#fndskgadnsewngaldfkl.
Скрипт tomcat20250414_rootkit_linux2345/config.sh на лету генерирует новые секретные ID и строки для каждой инсталляции и сохраняет их в install.h. Главный пароль зашит в коде и неизменен.
- work/common.c — компилируется как в клиенте, так и в мастере. Тут полно старых приватных ключей. Новый бэкдор генерит эти ключи динамически (глянь install_common.c).
- Ikm — vmwfxs.mod.c — это так называемая «заготовка» LKM, которая позволяет перехватывать нужные функции ядра.
- Ikm — main.c — тут происходит секретная магия: прячутся процессы, сетевые коннекты и файлы.
- Ikm — hkcap.c — создает /proc/acpi/pcicard для общения с юзерспейсом:
Модуль ядра перехватывает каждое новое соединение по TCP и проверяет, используется ли секретный TCP-SEQ и IP-ID (причем на любом порте!). Эта проверка выполняется в функции syn_active_check.
Поле размера окна TCP как раз используется, чтобы настроить бэкдор‑протокол (чаще всего это SYN_KNOCK или SYN_KNOCK_SSL).
Если условие выполняется, стартуют два следующих этапа:
- Запускается юзерленд‑процесс master.c и передает MASTER_TRANS_STRAIGHT_ARGV в качестве параметра -m.
- Это перенаправляет TCP-поток на процесс master.c в пространство пользователя, фактически крадя его у целевого сервиса.
- master — master.c — пользовательский процесс, скрытый на сервере жертвы. Он принимает перенаправленный из LKM сетевой поток, выполняет SSL-рукопожатие и после него — аутентификацию по паролю. Предоставляет стандартный набор функций: запуск root-shell или проксирование соединений во внутреннюю сеть.
- client — tcat.c — здесь лежат все функции, нужные, чтобы «стучаться» в LKM (бэкдор) на машине жертвы через TCP-SEQ + IP-ID и устанавливать SSL-соединение с процессом master.c, который запускается (через LKM) на сервере жертвы.
- client — kernel.c — здесь хранятся предопределенные и засекреченные номера TCP-SEQ и IP-ID. Любая комбинация из них может применяться для использования бэкдора. Эти цифры не генерятся динамически и одинаковы для каждой установки.
- client — protocol.c — содержит всякие заглушки и статические строки, чтобы подключиться к бэкдору через протоколы SMTP, HTTP или HTTPS (TLS).
char smtp_tls1[] = "220 Ready to start TLS\r\n";
char smtp_starttls[] = "starttls\r\n";
char smtp_hellol] = "HELO Alicelr\n";
Засечь LKM на локальной машине — проще простого.
Удаленное обнаружение LKM может быть тоже несложным делом, но тут нужна дополнительная проверка: аутентификация по паролю происходит после SSL-рукопожатия.
Таким образом, при подключении с заранее известными значениями TCP SEQ=920587710 и IP-ID=10213 к любому целевому порту (включая те, где обычно нет TLS, — 80, 22, 25) LKM перехватывает соединение и передает его в master.c. Дальше master.c поднимает TLS и после рукопожатия проводит аутентификацию и предоставляет шелл или прокси.
Как проверить наличие бэкдора:
- Устанавливаем TCP-соединение.
- Отправляем TLS-CLIENT-HELLO.
- Если сервер скомпрометирован, он ответит корректным TLS-SERVER-HELLO, а любой другой сервер этого не сделает.
Личный маяк Cobalt Strike
- Где лежит: mnt/hgfs/Desktop/111/beacon
В файле config.cpp — два бинарных блоба с конфигами для Cobalt Strike. Эти блобы валидны, и их можно расшифровать с помощью скрипта CobaltStrikeParser. Внутри блобов обнаружатся следующие настройки:
- BeaconType: HTTP
- Port: 8172
- SleepTime: 60842
- MaxGetSize: 1048576
- Jitter: 0
- MaxDNS: Not Found
- PublicKey_MD5: c5b6350189a4d960eee8f521b0a3061d
- C2Server: 192.168.179.112,/dot.gif
- UserAgent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; BOIE9; ENUSSEM)
- HttpPostUri: /submit.php
- Watermark_Hash: BeudtKgqn1m0Ruvf+VYxuw==
- Watermark: 126086
В поддиректории /bak/ лежат старые версии некоторых файлов.
ToyBox для Android
KIM активно трудится над ToyBox для Android. Похоже, что этот проект разошелся с официальным репозиторием ToyBox на GitHub где‑то с коммита вот с этим ID:896fa846b1ec8cd4895f6320b56942f129e54bc9
Мы пока не выяснили, для чего предназначены многочисленные модификации ToyBox.
Приглашаем комьюнити разобраться.
Ivanti Control, он же RootRot
- Где лежит: mnt/hgfs/Desktop/ivanti_control
В 2017 году парни из Synacktiv по ошибке приняли закладку за уязвимость. Но позже выяснилось, что это действительно был имплант, оставленный злоумышленниками.
Он называется RootRot.
Этот запрос ответит словом HIT, если бэкдор активен:
curl -ksi --cookie "DSPSALPREF=cHJpbnRmKCJISVQiKTsK" "Для просмотра ссылки Войди
Bushfire
- Где лежит: /mnt/hgfs/Desktop/exp1_admin.py
Это эксплоит для Ivanti, возможно, для Для просмотра ссылки Войди
Недавно ребята из Mandiant засекли в дикой природе интересный пейлоад. Они приписывают его группировке UNC5221, Для просмотра ссылки Войди
Скрипт exp1_admin.py использует те же команды iptables, которые Mandiant нашли в дикой природе.
Эксплоит идет в комплекте с документацией, которая в переводе звучит так: «Свяжись с нами, если эксплоит не сработает».
Это может указывать на связи между группировками в разных государствах: возможно, они обмениваются кодом и оказывают друг другу поддержку.
Этот пейлоад также открывает удаленный доступ к скомпрометированной системе. Интересное начинается на строке 2219, где генерятся ключи и магические значения:
- ключ имеет всего 2064 различных комбинаций (менее 31 бит стойкости);
- магическое значение имеет (26 × 2 + 10)3 различных комбинаций (менее 18 бит стойкости).
Функцию detect_door (строка 335) можно использовать для удаленного обнаружения бэкдора.
Заметь, что, чтобы постучаться в бэкдор, нужно только магическое значение, а не ключ. Оно передается в первых 24 битах ClientRandom в сообщении TLS Client Hello. Шанс, что обычный ClientRandom будет иметь вот такую начальную 24-битную комбинацию, — примерно 1 к 70.
SpawnChimera и газета The Hankyoreh
- Где лежит: mnt/hgfs/Desktop/New folder/203.234.192.200_client.zip
IP-адрес 203.234.192.200 принадлежит hani.co.kr (The Hankyoreh) — либеральной газете из Южной Кореи.
Как работает port knocking, можно посмотреть в client.py на 152-й строке.
Еще он спрятан в TLS Client Hello, в 32-байтовом поле ClientRandom, но с новой особенностью: первые 4 байта должны содержать правильный CRC32 оставшихся 28 байт.
Приглашаем сообщество копнуть поглубже.random = os.urandom(28)
client_hello[15:43] = random
jamerc = int("Ob"+"1"*32, 2) - zlib.crc32(random)
client_hello[11:15] = struct.pack('!I', jamerc)
Кто такой Kimsuky
Мы пришли к выводу, что перед нами Kimsuky: цепочка артефактов и намеков сложилась в их фирменный почерк — слишком уж точное совпадение, чтобы приписать его кому‑то еще.Среди улик — настройка локали: выставлен корейский язык. К тому же куча конфигов для доменных имен, которые связаны с атаками Kimsuky. Найденный код перекликается с тем, что использовали в предыдущих кампаниях.
Еще одна интересная деталь — у злоумышленника четкий рабочий график: каждый день он подключается примерно в 09:00 и исчезает к 17:00 по времени Пхеньяна.
Операция Covert Stalker
Операция Covert Stalker — так в южнокорейской ИБ‑компании АhnLab окрестили многомесячную фишинговую атаку из КНДР, направленную против отдельных личностей и организаций в Южной Корее. Жертвы — журналисты, исследователи, политики и другие.www
Для просмотра ссылки ВойдиНа системе злоумышленника мы обнаружили настройки веб‑сервера для домена, связанного с этой атакой.
SSLCertificateFile /etc/letsencrypt/live/nid-security.com/cert.pem
Украденные сертификаты GPKI
В начале 2024 года специалисты из S2W наткнулись на новую малварь под названием Troll Stealer, написанную на Go. Она умеет утаскивать GPKI-сертификаты (Government Public Key Infrastructure) и ключи, которые хранятся на зараженных девайсах.GPKI — это такая система, благодаря которой чиновники Южной Кореи могут подписывать документы и подтверждать их подлинность. Так вот, мы нашли тысячи таких файлов на рабочей машине участника KIM.
subject=C=KR, 0=Government of Korea, OU=Ministry of Unification, OU=people, CN=Lee Min-kyung
issuer=C=KR, 0=Government of Korea, OU=GPKI, CN=CA131100001
- Где лежит: work/home/user/Desktop/desktop/uni_certs и work/home/user/Downloads/cert/
136박정욱001_env.key Password $cys13640229
041????001_env.key Password !jinhee1650!
041????001_sig.key Password ssa9514515!!
[ ... ]
- Где лежит: work/home/user/Downloads/cert/src/cert.java
Атака на похожие цели
Владелец машины атаковал те же цели, что в прошлом приписывали кибератакам группировки Kimsuky.Naver
Naver Corporation — это южнокорейская корпорация, запустившая кучу разных сервисов. У них есть поисковик, обогнавший все местные аналоги, мобильные платежи через Naver Pay, карты в духе Google Maps, почтовый сервис и еще много чего интересного.Naver уже не первый раз становится мишенью для атаки со стороны Северной Кореи. В 2024 году Zscaler раскопали новую хромовую расширюху под названием TRANSLATEXT от киберпреступной группировки Kimsuky. Это расширение может впендюрить произвольные JS-скрипты при открытии определенных страниц. Например, когда ты заходишь на страницу логина Naver — nid.naver.com, расширение закидывает в браузер auth.js и тихо сливает твои логин — пароль.
Фишинговая атака, о которой рассказывается в разделе 2.1, использует домен nid.navermails.com в качестве основного URL. Вся загвоздка в том, что этот домен крепко связан с Kimsuky, как выяснили ребята из AhnLab.
Министерство объединения
Одной из регулярных мишеней Kimsuky является Министерство объединения Южной Кореи. Злоумышленники смекнули, как подловить GPKI на взломанных паролях, и накатали специально заточенный под это вордлист для перебора. Логи четко показывают, что эти пароли гоняли против домена министерства.unikorea123$
unikoreal!! unikorea100
unikorea625!
[...]
- Где лежит: work/home/user/Downloads/cert/dict/pass.txt
AiTM-атака на пользователей Microsoft: гипотеза
В середине 2022 года Для просмотра ссылки ВойдиЖертвам приходило письмо с заманухой в виде HTML-вложения. Открываешь его, и тебя тут же перекидывает на прокси через HTTPS. Прокси, в свою очередь, перекидывает любой запрос на серверы Microsoft, заново шифруя данные через HTTPS.
Как только жертва логинилась, прокси подхватывал ее сессионные куки и перенаправлял на сервер Microsoft.
Украденная кука валидна и может быть использована злоумышленником без необходимости проходить авторизацию с MFA. Для этой кампании Для просмотра ссылки Войди
Конкретно этот домен мы в дампе не обнаружили, но нашли очень похожий (заметь лишнюю букву s):
subject=CN=*.websecur1tynotices.com
- Где лежит: vps/etc/letsencrypt/live/websecuritynotices.com
KIM — китаец?
KIM переводит корейский на упрощенный китайский через Google Translate. Похоже, без перевода он понимает по‑корейски совсем немного.KIM работает по расписанию китайских праздников. С 31 мая по 2 июня отмечали праздник драконьих лодок, и в это время KIM взял передышку, тогда как в Северной Корее это был обычный рабочий день.
При этом утилита Для просмотра ссылки Войди
Забавные факты и приколы
В сентябре 2023 года некто под псевдонимом KIM попытался приобрести домен nextforum-online.com на Namecheap.com. Оплата биткоином, что может пойти не так?Пару дней спустя Namecheap заблокировал домен, не объясняя причину. Когда KIM попытался восстановить доступ, в Namecheap сказали следующее:
Что ж, получается, что Namecheap не такой уж непробиваемый!Чтобы подтвердить легитимность зарегистрированных доменов, предоставь нам следующую информацию:
Цель регистрации домена.
Документы, подтверждающие полномочия действовать от имени Microsoft, или же подтверждение того, что данные домены не относятся к этой компании.
Еще занятный факт: в 2020 году, когда домен websecuritynotice.com использовали в фишинговой кампании, владелец создал для этих атак несколько поддоменов с реалистичными адресами.
Однако в 2025 году KIM поленился и пользовался только главным доменом:login.websecuritynotice.com. IN A 80.240.25.169
wwwoffice.websecuritynotice.com. IN A 80.240.25.169
www-microsoft.websecuritynotice.com. IN A 80.240.25.169
prod-msocdn-25ae5ec6.websecuritynotice.com. IN A 80.240.25.169
prod-msocdn-55e5273a.websecuritynotice.com. IN A 80.240.25.169
prod-msocdn-84311529.websecuritynotice.com. IN A 80.240.25.169
prod-msocdn-c7b8a444.websecuritynotice.com. IN A 80.240.25.169
aadcdn-msauth-84311529.websecuritynotice.com. IN A 80.240.25.169
sts-glb-nokia-346189f1.websecuritynotice.com. IN A 80.240.25.169
res-cdn-office-84311529.websecuritynotice.com. IN A 80.240.25.169
aadcdn-msftauth-25ae5ec6.websecuritynotice.com. IN A 80.240.25.169
aadcdn-msftauth-55e5273a.websecuritynotice.com. IN A 80.240.25.169
aadcdn-msftauth-84311529.websecuritynotice.com. IN A 80.240.25.169
r4-res-office365-55e5273a.websecuritynotice.com. IN A 80.240.25.169
r4-res-office365-84311529.websecuritynotice.com. IN A 80.240.25.169
Параметр i — это закодированный в Base64 адрес электронной почты получателя. В нашем случае это jhkim1@klid.or.kr.Для просмотра ссылки Войдиили Зарегистрируйся
В январе 2025 года этот домен указывал на IP 104.167.16.97. А в марте 2025-го домен download.sponetcloud.com тоже резолвился в этот же IP.
На VirusTotal есть его родственник: sharing.sponetcloud.com. Вот список URL-адресов, которые с этим доменом связаны:
Параметры снова зашифрованы в Base64, но при декодировании видим адреса lme2761@spo.go.kr и hantaehwan@spo.go.kr. Оба адресата работают в прокуратуре Южной Кореи.Для просмотра ссылки Войдиили ЗарегистрируйсяДля просмотра ссылки Войдиили Зарегистрируйся
Те же самые адреса электронной почты (и еще куча других) всплывают на VPS Кима в файле request_log.txt:
Код:
hantaehwan@spo.go.kr
paragon74@spo.go.kr
baekdu475@spo.go.kr
[...]
Например, у nid-security.com вот такая история хостинга DNS:
Лог фишинга на VPS от 2 декабря 2024 года засветил вот такой домен:nid-security.com. IN A 27.255.80.170 (observation date: 2024-11-05) nid-security.com. IN A 45.133.194.126 (observation date: <= 2025-05-09)
nid-security.com. IN A 185.56.91.21
nid-security.com. IN A 192.64.119.241
*.nid-security.com. IN A 45.133.194.126
lcs.nid-security.com. IN A 27.255.80.170
lcs.nid-security.com. IN A 45.133.194.126
nid.nid-security.com. IN A 27.255.80.170
nid.nid-security.com. IN A 45.133.194.126
Для просмотра ссылки Войдиили Зарегистрируйся. IN A 45.133.194.126
rcaptcha.nid-security.com. IN A 27.255.80.170
rcaptcha.nid-security.com. IN A 45.133.194.126
zwkd3e3wbc.nid-security.com. IN A 45.133.194.126
[URL unfurl="true"]https://nid.nid-security.com/bigfileupload/download?h=UJw39mzt3bLZ0ESuajYK1h-G1U1FavI1vmLUbNvCrX80-AtVgL7TIsphr1hlrvKOdOR-dbnMHVV7NJ4N[/URL]
В этом месяце домен резолвился на 45.133.194.126. Так что же, 27.255.80.170 был просто уловкой?
И напоследок еще одна забавная деталь. Когда Kimsuky регистрировал домен websecuritynotices.com, его почта засветилась в записях SOA:
websecuritynotices.com IN SOA ns4.1domainregistry.com dysoni91.tutamail.com
Kimsuky, ты не хакер!
Кто такой настоящий хакер? Это очень умный человек, который кайфует от того, что использует технологии не по их прямому назначению, — и делает это без вреда для других. У него нет политической повестки и нет корыстных мотивов. Он не берет денег и не гонится за наградами. Не служит никому и не преследует никаких целей, кроме одной — выразить себя.
То есть художник.
Kimsuky, ты не хакер! Тобой движет жажда наживы — ты хочешь набить карманы своим хозяевам и служить их политической повестке. Ты воруешь у других и заботишься только о своих. Ты ставишь себя выше всех остальных. Ты морально прогнил!
Мы — хакеры, и мы — полная противоположность тебе. В нашем мире мы все равны. У нас нет цвета кожи, национальности и политической повестки. Мы никому не служим. Мы взламываем, чтобы выразить себя и поделиться знаниями с другими такими же творцами. Чтобы вносить вклад, делиться и расширять знания всего человечества. Ради самой красоты передачи данных.
А ты лезешь в сети ради всего неправильного.
— Saber и cyb0rg