Содержание статьи
01. Дампы
0.1.1 Командование военной контрразведки (dcc.mil.kr)
0.1.2 Доступ в хранилище МИД Южной Кореи
0.1.3 Доступ к внутренней сети правительства Южной Кореи
0.1.4 Разное
0.2 Артефакты
0.2.1 Генератор против контрразведки
0.2.2 Бэкдор в ядре Tomcat
0.2.3 Личный маяк Cobalt Strike
0.2.4 ToyBox для Android
0.2.5 Ivanti Control, он же RootRot
0.2.6 Bushfire
0.2.7 SpawnChimera и газета The Hankyoreh
0.3 Кто такой Kimsuky
0.3.1 Операция Covert Stalker
0.3.2 Украденные сертификаты GPKI
0.3.3 Атака на похожие цели
0.3.4 AiTM-атака на пользователей Microsoft: гипотеза
0.3.5 KIM — китаец?
0.3.6 Забавные факты и приколы
Ха*керам Saber и cyb0rg уда*лось успешно ата*ковать учас*тни*ка северо*корей*ской шпи*онской хак*груп*пы Kimsuky. Отчет об этом они опуб*ликова*ли в новей*шем номере жур*нала Phrack. Из этой статьи ты узна*ешь, как про*ходи*ла ата*ка, какой код и дан*ные извлек*ли с рабочей стан*ции, при*над*лежащей северо*корей*ско*му хакеру.
Да*лее — близ*кий к тек*сту перес*каз статьи Saber и cyb0rg из бумаж*ной вер*сии Phrack, под*готов*ленной для DEF CON. Этот матери*ал дос*тупен без плат*ной под*писки.
|
Kimsuky — это под*держи*ваемая пра*витель*ством КНДР хакер*ская груп*па типа Advanced Persistent Threat (APT), нацелен*ная на шпи*онаж за ана*лити*чес*кими цен*тра*ми, пред*при*ятиями, опе*рато*рами атом*ных элек*трос*танций и пра*витель*ствен*ными струк*турами. Она вне*сена в спи*сок в соот*ветс*твии с ука*зом E. O. 13687 как агентство, инс*тру*мент или под*кон*троль*ная струк*тура пра*витель*ства КНДР.
Мы будем называть это*го кон*крет*ного учас*тни*ка прос*то KIM — так короче. И KIM тебе не друг!
В дам*пе наш*лось немало бэк*доров и инс*тру*мен*тов Kimsuky, а заод*но и внут*ренняя докумен*тация. Из нее вид*но, что Kimsuky без стес*нения работа*ет в паре с китай*ски*ми APT-груп*пами, обме*нива*ясь инс*тру*мен*тами и при*ема*ми.
Не*кото*рые из этих инс*тру*мен*тов тебе, воз*можно, уже встре*чались: ты видел их ска*неры, находил сер*верные арте*фак*ты и имплан*ты. А теперь в при*дачу получишь их кли*енты, докумен*тацию, пароли, исходни*ки и коман*дные фай*лы.
И, что*бы жизнь казалась сла*ще, мы под*кинули бонус — бэкап VPS, с которо*го чле*ны груп*пиров*ки запус*кали ата*ки с тар*гетиро*ван*ным фишин*гом.
Дампы
Дамп на Onion
Дамп на Proton
Да*вай крат*ко про*бежим*ся по содер*жимому дам*пов, а потом раз*берем основные наход*ки.
Итак, сре*ди инте*рес*ного:
ло*ги, фик*сиру*ющие ата*ку на Коман*дование воен*ной конт*рраз*ведки;
дос*туп к Минис*терс*тву инос*тран*ных дел Южной Кореи;
дос*туп к внут*ренней сети пра*витель*ства Южной Кореи
…и еще куча фай*лов, до которых мы пока не доб*рались.
Пер*вый дамп — с гос*тевой вир*туал*ки KIM, вто*рой — с его пуб*лично*го VPS. Оба были получе*ны при*мер*но 10 июня 2025 года.
Из занят*ного:
Скрин*шот его рабоче*го сто*ла (kim_desktop.jpg).
Linux Dev System (VM на Deepin 20.9 Linux).
Гос*тевая VM име*ла при*мон*тирован*ный диск хос*та C:\ (через HGFS). Дамп при*лага*ется.
Спи*сок всех фай*лов лежит в ./file-lists.
Око*ло 20 тысяч записей в исто*рии Brave и Chrome — с кучей email-адре*сов (
[email protected],
[email protected] и так далее), сай*тов, которые посещал 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;
[email protected]: !QAZ4rfv!@#$;
https://sg24.vps.bz:4083/[email protected]: H4FHKMWMpX8bZ;
https://monovm.com/[email protected]: dr567h%a"G6*m.
Из fish-url.txt и generator.php ты узна*ешь сек*реты пов*торя*ющих*ся пат*тернов паролей.
Второй дамп
Имя сер*вера: vps1735811325, раз*мещен на vps.bz.
Этот сер*вер учас*тво*вал в целевых фишин*говых ата*ках.
При*меча*тель*ны SSL-сер*тифика*ты и auth.log. Под*робнее о сор*цах фишин*говых атак — ниже.
Командование военной контрразведки (dcc.mil.kr)
Где лежит: vps/var/www/html/
Ко*ман*дование воен*ной конт*рраз*ведки (DCC) — это раз*ведыва*тель*ная орга*низа*ция Воору*жен*ных сил Южной Кореи. Глав*ная мис*сия DCC — ковар*ные и тай*ные опе*рации, а так*же конт*рраз*ведка.
Ло*ги показы*вают, что все*го три дня назад была фишин*говая ата*ка на dcc.mil.kr.
В тех же логах зас*ветились The Supreme Prosecutor Office (spo.go.kr), korea.kr, daum.net, kakao.com и naver.com. Обра*ти вни*мание, что Admin-C для dcc.mil.kr зарегис*три*рован на
[email protected].
Доступ в хранилище МИД Южной Кореи
Ко*пия плат*формы элек*трон*ной поч*ты Минис*терс*тва инос*тран*ных дел Южной Кореи лежала в фай*ле с наз*вани*ем mofa.go.kr.7z. Похоже, исходни*ки ста*щили сов*сем недав*но.
Code:
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
Су*дя по фор*мату фай*лов, это, ско*рее все*го, дамп из репози*тория на GitHub, который выс*тупа*ет частью поч*тового сер*вера. В исходном коде пол*но упо*мина*ний о пра*витель*ствен*ных доменах:
Code:
./kebi-web-parent/mail/document/info.txt
/home/ksign/agent
http://email.mofa.go.kr:8080/mail/sso?type=login
http://mail.mofa.go.kr:8080/mail/sso?type=unseenMails
http://email.mofa.go.kr:8190/mail/sso?type=login
http://mail.mofa.go.kr:8080/mail/sso?type=unseenMails
Доступ к внутренней сети правительства Южной Кореи
По*хоже, KIM сох*раня*ет дос*туп к внут*ренним сис*темам сети пра*витель*ства Южной Кореи. Есть про*ект под наз*вани*ем onnara_auto, где лежит нес*коль*ко занят*ных фай*лов. Судя по все*му, это набор инс*тру*мен*тов для работы с внут*ренни*ми пра*витель*ствен*ными сер*верами. Нап*ример, файл /onnara_auto/log/log-20250511.log содер*жит такие записи:
Code:
[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 https://onnara9.saas.gcloud.go.kr/ 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 https://onnara9.saas.gcloud.go.kr/SSO.do at 11/05/202...
Со*ответс*тву*ющий код:
Code:
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%) раз*бро*сана по Китаю и Гон*конгу. Воз*можно, это какая‑то сеть прок*си или
Operational Relay Boxes (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 вот с это*го ресур*са:
https://bafybeih65no5dklpqfe346wyeia...ipfs.dweb.link
Ли*цен*зию на IDA Pro он ста*щил с заб*рошен*ного и не работа*юще*го боль*ше сай*та в Tor.
В кон*фигах Google Chrome содер*жатся вот такие ссыл*ки. То есть для дос*тупа к сай*там мог*ли исполь*зовать*ся лич*ные учет*ки Google. А что нас*чет акка*унта wwh1004 на GitHub? Может, тоже их? И еще воп*росик: не исполь*зовала ли груп*пиров*ка Google Pay, что*бы опла*тить VPN?
Code:
"https://accounts.google.com:443, https://[*.]0x1.gitlab.io":
"https://accounts.google.com:443, https://[*.]aldeid.com":
"https://accounts.google.com:443, https://[*.]asawicki.info":
"https://accounts.google.com:443, https://[*.]devglan.com":
"https://accounts.google.com:443, https://[*.]edureka.co":
"https://accounts.google.com:443, https://[*.]johnwu.cc":
"https://accounts.google.com:443, https://[*.]majorgeeks.com":
"https://accounts.google.com:443, https://[*.]maskray.me":
"https://accounts.google.com:443, https://[*.]namecheap.com":
"https://accounts.google.com:443, https://[*.]qwqdanchun.com":
"https://accounts.google.com:443, https://[*.]rakuya.com.tw":
"https://accounts.google.com:443, https://[*.]redteaming.top":
"https://accounts.google.com:443, https://[*.]reversecoding.net":
"https://accounts.google.com:443, https://[*.]shhoya.github.io":
"https://accounts.google.com:443, https://[*.]sparktoro.com":
"https://accounts.google.com:443, https://[*.]tutorialspoint.com":
"https://accounts.google.com:443, https://[*.]wiseindy.com":
"https://accounts.google.com:443, https://[*.]wwh1004.com":
"https://accounts.google.com:443, https://[*.]wwh1004.github.io":
"https://pay.google.com:443, https://[*.]purevpn.com":
"https://pay.google.com:443, https://[*.]purevpn.com.tw":
"https://pay.google.com:443, https://[*.]zoogvpn.com":
KIM поль*зует*ся Google Translate, что*бы перево*дить сооб*щения об ошиб*ках на китай*ский. В его исто*рии Chrome есть целый ряд сай*тов пра*витель*ства и воен*ных струк*тур Тай*ваня.
Сер*тификат граж*дан Южной Кореи нуж*дает*ся в более глу*боком изу*чении, осо*бен*но инте*ресен момент с выделе*нием про*фес*соров уни*вер*ситетов. Почему их так отдель*но помети*ли?
В пап*ке 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, но сами наз*вания уж боль*но подоз*ритель*ные:
2bcef4444191c7a5943126338f8ba36404214202 payload.bin
e6be345a13641b56da2a935eecfa7bdbe725b44e payload_test.bin
3e8b9d045dba5d4a49f409f83271487b5e7d076f s.X64.bin
В bash_history — SSH-под*клю*чения к компь*юте*рам в локаль*ной сети.
Пит Хег*сет бы ска*зал: «У него сей*час все чис*то с OPSEC».
Артефакты
В этом раз*деле раз*бира*емся с шестью бэк*дорами и арте*фак*тами от Кима. Это еще не финаль*ная вер*сия и не пол*ный спи*сок. Это толь*ко начало, что*бы заин*тересо*вать тебя и помочь луч*ше понять, как дей*ству*ет Ким*суки и какие инс*тру*мен*ты исполь*зует.
Генератор против контрразведки
Где лежит: vps/var/www/html/
Инс*тру*мент раз*ворачи*вает фишин*говый HTTPS-сайт на домене, который напоми*нает зна*комый жер*тве адрес. Потом жер*тве с dcc.mil.kr отправ*ляют ссыл*ку на этот фей*ковый сайт. Зло*умыш*ленник наде*ется, что жер*тва вве*дет свои логин и пароль на его сай*те.
Фи*наль*ная пере*адре*сация жер*твы уво*дит ее с фишин*гового сай*та на легаль*ный веб‑сайт. Там он всег*да видит ошиб*ку вхо*да.
Это целенап*равлен*ная ата*ка, и ее авто*ру приш*лось пот*рудить*ся, что*бы най*ти такой URI на легаль*ном сай*те
https://dcc.mil.kr.
Плюс это*го трю*ка в том, что жер*тва уви*дит ошиб*ку от
https://dcc.mil.kr (которую он зна*ет и которой доверя*ет), хотя его дан*ные на самом деле утек*ли на фишин*говый сайт.
config.php — хра*нит длин*нющую чер*ную базу айпиш*ников (и дру*гие спис*ки), что*бы такие ком*пании, как Trend Micro и Google, не смог*ли най*ти фишин*говый сайт.
generator.php — это уда*лен*ный интерфейс для управле*ния фишин*говой ата*кой. Дос*туп к нему мож*но получить через задан*ный пароль. Одна*ко хит*рость в том, что куки здесь зашиты в коде, и в админку мож*но зай*ти без пароля, прос*то под*ста*вив нуж*ное зна*чение куки.
curl -v --cookie "HnoplYTfPX=x"
https://phishing-site/generator.php
Най*ти такие фишин*говые сай*ты в интерне*те эле*мен*тарно:
curl -v --cookie "HnoplYTfPX=x"
https://phishing-site/logs.php
Бэкдор в ядре Tomcat
Где лежит: mnt/hgfs/Desktop/tomcat20250414_ rootkit linux234/
Это бэк*дор уров*ня ядра. Он поз*воля*ет зло*умыш*ленни*ку уда*лен*но получить дос*туп к сис*теме и остать*ся незамет*ным. В арсе*нале есть кли*ент (tcat.c), сер*верная часть LKM (vmwixs.mod.c) и поль*зователь*ский бэк*дор (master.c).
Кли*ент обща*ется с сер*вером жер*твы нап*рямую по 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 для обще*ния с юзер*спей*сом:
echo -n "${DECODEKEY}" > /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.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).
Code:
char smtp_el[] = "250-example.com\r\n250-STARTTLS\r\n250 SMTPUTF8\r\n";
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
Это кас*томный Cobalt Strike C2 Beacon. Исходный код раз*рабаты*вал*ся в сре*де IntelliJ IDEA IDE. В beacon/.idea/workspace.xml хра*нят*ся ссыл*ки на откры*тые фай*лы, их позиции и исто*рию пос*ледних поис*ковых зап*росов про*екта. Пос*ледние изме*нения в код вно*сились в июне 2024 года.
В фай*ле 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
В вер*сии KIM так*же есть ран*няя ревизия кода, который в 2025 году встро*или в тро*ян LKM (hkcap.c). Но она недоде*лан*ная: не хва*тает нес*коль*ких клю*чевых фай*лов, нап*ример config.h.
В под*дирек*тории /bak/ лежат ста*рые вер*сии некото*рых фай*лов.
ToyBox для Android
KIM активно тру*дит*ся над ToyBox для Android. Похоже, что этот про*ект разошел*ся с офи*циаль*ным репози*тори*ем ToyBox на GitHub где‑то с ком*мита вот с этим ID:
896fa846b1ec8cd4895f6320b56942f129e54bc9
Мы пока не выяс*нили, для чего пред*назна*чены мно*гочис*ленные модифи*кации ToyBox.
Приг*лаша*ем комь*юни*ти разоб*рать*ся.
Ivanti Control, он же RootRot
Где лежит: mnt/hgfs/Desktop/ivanti_control
Пред*став*ляем исходный код кли*ента для дос*тупа к пуб*лично извес*тно*му бэк*дору.
В 2017 году пар*ни из Synacktiv по ошиб*ке при*няли зак*ладку за уяз*вимость. Но поз*же выяс*нилось, что это дей*стви*тель*но был имплант, оставлен*ный зло*умыш*ленни*ками.
Он называ*ется RootRot.
Этот зап*рос отве*тит сло*вом HIT, если бэк*дор акти*вен:
Code:
curl -ksi --cookie "DSPSALPREF=cHJpbnRmKCJISVQiKTsK" "https://HOST/dana-na/auth/setcookie.cgi"
Bushfire
Где лежит: /mnt/hgfs/Desktop/exp1_admin.py
Этот файл так*же содер*жится в ivanti-new-exp-20241220.zip.
Это экс*пло*ит для Ivanti, воз*можно, для CVE-2025-0282, CVE-2025-0283 или CVE-2025-22457. Пей*лоад уста*нав*лива*ет бэк*дор.
Не*дав*но ребята из Mandiant засек*ли в дикой при*роде инте*рес*ный пей*лоад. Они при*писы*вают его груп*пиров*ке UNC5221, свя*зан*ной с Кита*ем.
Скрипт exp1_admin.py исполь*зует те же коман*ды iptables, которые Mandiant наш*ли в дикой при*роде.
Экс*пло*ит идет в ком*плек*те с докумен*таци*ей, которая в перево*де зву*чит так: «Свя*жись с нами, если экс*пло*ит не сра*бота*ет».
Это может ука*зывать на свя*зи меж*ду груп*пиров*ками в раз*ных государс*твах: воз*можно, они обме*нива*ются кодом и ока*зыва*ют друг дру*гу под*дер*жку.
Этот пей*лоад так*же откры*вает уда*лен*ный дос*туп к ском*про*мети*рован*ной сис*теме. Инте*рес*ное начина*ется на стро*ке 2219, где генерят*ся клю*чи и магичес*кие зна*чения:
ключ име*ет все*го 2064 раз*личных ком*бинаций (менее 31 бит стой*кос*ти);
ма*гичес*кое зна*чение име*ет (26 × 2 + 10)3 раз*личных ком*бинаций (менее 18 бит стой*кос*ти).
Шиф*рование про*исхо*дит на 85-й стро*ке, и это... XOR с 31-бит*ным клю*чом!
Фун*кцию 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
Кли*ент получа*ет дос*туп к бэк*дору SpawnChimera через порт‑нокинг.
IP-адрес 203.234.192.200 при*над*лежит hani.co.kr (The Hankyoreh) — либераль*ной газете из Южной Кореи.
Как работа*ет port knocking, мож*но пос*мотреть в client.py на 152-й стро*ке.
Еще он спря*тан в TLS Client Hello, в 32-бай*товом поле ClientRandom, но с новой осо*бен*ностью: пер*вые 4 бай*та дол*жны содер*жать пра*виль*ный CRC32 оставших*ся 28 байт.
Code:
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
От*чет АhnLab, PDF (на корей*ском)
На сис*теме зло*умыш*ленни*ка мы обна*ружи*ли нас*трой*ки веб‑сер*вера для домена, свя*зан*ного с этой ата*кой.
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/
Вла*делец машины соз*дал прог*рамму на Java, что*бы взло*мать пароли, защища*ющие клю*чи и сер*тифика*ты.
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 года Microsoft и Zscaler обна*ружи*ли ата*ку AiTM. Ата*кующие исполь*зовали веб‑сер*вер, который работа*ет как прок*си меж*ду нас*тоящей стра*ницей вхо*да и жер*твой.
Жер*твам при*ходи*ло пись*мо с заману*хой в виде HTML-вло*жения. Откры*ваешь его, и тебя тут же переки*дыва*ет на прок*си через HTTPS. Прок*си, в свою оче*редь, переки*дыва*ет любой зап*рос на сер*веры Microsoft, заново шиф*руя дан*ные через HTTPS.
Как толь*ко жер*тва логини*лась, прок*си под*хва*тывал ее сес*сион*ные куки и перенап*равлял на сер*вер Microsoft.
Ук*раден*ная кука валид*на и может быть исполь*зована зло*умыш*ленни*ком без необ*ходимос*ти про*ходить авто*риза*цию с MFA. Для этой кам*пании при*менял*ся домен websecuritynotice.com.
Кон*крет*но этот домен мы в дам*пе не обна*ружи*ли, но наш*ли очень похожий (заметь лиш*нюю бук*ву s):
subject=CN=*.websecur1tynotices.com
Где лежит: vps/etc/letsencrypt/live/websecuritynotices.com
Так*тика, тех*ника и про*цеду*ры (TTP), схо*жесть домен*ных имен и дей*ствия пос*ле взло*ма (мошен*ничес*тво с пла*тежа*ми и так далее) ука*зыва*ют на явную связь с груп*пой Kimsuky.
KIM — китаец?
KIM перево*дит корей*ский на упро*щен*ный китай*ский через Google Translate. Похоже, без перево*да он понима*ет по‑корей*ски сов*сем нем*ного.
KIM работа*ет по рас*писанию китай*ских праз*дни*ков. С 31 мая по 2 июня отме*чали праз*дник дра*конь*их лодок, и в это вре*мя KIM взял передыш*ку, тог*да как в Север*ной Корее это был обыч*ный рабочий день.
При этом ути*лита hindsight показа*ла, что в нас*трой*ках Chrome у KIM выс*тавле*но корей*ское стан*дар*тное вре*мя.
Забавные факты и приколы
В сен*тябре 2023 года нек*то под псев*донимом KIM попытал*ся при*обрести домен nextforum-online.com на Namecheap.com. Опла*та бит*коином, что может пой*ти не так?
Па*ру дней спус*тя Namecheap заб*локиро*вал домен, не объ*ясняя при*чину. Ког*да KIM попытал*ся вос*ста*новить дос*туп, в Namecheap ска*зали сле*дующее:
Что*бы под*твер*дить легитим*ность зарегис*три*рован*ных доменов, пре*дос*тавь нам сле*дующую информа*цию:
Цель регис*тра*ции домена.
До*кумен*ты, под*твержда*ющие пол*номочия дей*ство*вать от име*ни Microsoft, или же под*твержде*ние того, что дан*ные домены не отно*сят*ся к этой ком*пании.
Что ж, получа*ется, что Namecheap не такой уж неп*робива*емый!
Еще занят*ный факт: в 2020 году, ког*да домен websecuritynotice.com исполь*зовали в фишин*говой кам*пании, вла*делец соз*дал для этих атак нес*коль*ко под*доменов с реалис*тичны*ми адре*сами.
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
Од*нако в 2025 году KIM поленил*ся и поль*зовал*ся толь*ко глав*ным доменом:
http://www.websecuritynotices.com/re...tsaWQub3Iua3I=
Па*раметр i — это закоди*рован*ный в Base64 адрес элек*трон*ной поч*ты получа*теля. В нашем слу*чае это
[email protected].
В янва*ре 2025 года этот домен ука*зывал на IP 104.167.16.97. А в мар*те 2025-го домен download.sponetcloud.com тоже резол*вился в этот же IP.
На VirusTotal есть его родс*твен*ник: sharing.sponetcloud.com. Вот спи*сок URL-адре*сов, которые с этим доменом свя*заны:
https://sharing.sponetcloud.com/logo...BzcG8uZ28ua3I=
https://sharing.sponetcloud.com/bigf...BzcG8uZ28ua3I=
Па*рамет*ры сно*ва зашиф*рованы в Base64, но при декоди*рова*нии видим адре*са
[email protected] и
[email protected]. Оба адре*сата работа*ют в про*кура*туре Южной Кореи.
Те же самые адре*са элек*трон*ной поч*ты (и еще куча дру*гих) всплы*вают на VPS Кима в фай*ле request_log.txt:
[email protected]
[email protected]">
[email protected]
[email protected]
[...]
Не может ли это быть под*делкой? KIM ведь мог спе*циаль*но нап*равить часть сво*их доменов на IP-адре*са, которые ког*да‑то были зас*вечены в связ*ке с Kimsuky.
Нап*ример, у nid-security.com вот такая исто*рия хос*тинга DNS:
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
www.nid-security.com. 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
Лог фишин*га на VPS от 2 декаб*ря 2024 года зас*ветил вот такой домен:
https://nid.nid-security.com/bigfile...R-dbnMHVV7NJ4N
В этом месяце домен резол*вился на 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
|
(c)
https://xakep.ru/2025/08/15/kimsuky/