ESCalator
6.62K subscribers
480 photos
1 video
18 files
190 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
Download Telegram
🔎 Сетевой ресерч на коленке, или Как найти новую, никем не обнаруженную ранее активность известной группировки за 15 минут

В ходе анализа внешней экспертизы, на одном из ресурсов, в основном публикующих материалы об угрозах для китайской инфраструктуры, мы наткнулись на одну интересную, но достаточно немногословную статью о загрузчике RustyNet APT-группировки Patchwork.

В статье приводился пример вредоносного семпла с кратким описанием сетевой активности и прилагающимися скриншотами кода из IDE. По содержимому сетевых запросов (хеш-суммы семплов, как назло, не были указаны) мы нашли примеры трафика C2-сервера yw56[.]info (первый скриншот). Бэкдор отправляет данные о системе на C2-сервер, кодируя их с помощью XOR и Base64. Однако интересно было просмотреть и приведенные в упомянутом исследовании ссылки... так мы и наткнулись на новый семпл!

Но обо всем по порядку 🤔

Исследование индикаторов компрометации из статьи в открытых источниках позволило нам обнаружить, что по URL

weibo[.]nihaoucloud[.]org/akowutbuu753dtRWq21jk/odiworukdjo2375kjkl1lk87hl0


какое-то время назад дропался семпл

6afdf4a3088bff045e1998d2dc2863b90d06765abb2dc35c7b93c456b9818e55


детекты которого светились как новогодняя елка на всем нам известном ресурсе 🎄

«Что если это тот самый неуказанный в статье хешик?» — подумали мы и засунули его в доступные песочницы: VirusTotal CAPE Sandbox и Triage. И, о чудо, его трафик отличался от представленного в статье! Причем упоминаний этих сетевых взаимодействий не было нигде, как и срабатываний сетевых сигнатур, а взаимодействие бэкдор вел с C2-сервером shrilongu[.]info с датой создания 19.04.2024, о котором также ранее не сообщалось (подробнее на втором скриншоте).

🥳 Бинго! Один URL позволил нам атрибутировать семпл и отнести его к APT-группировке Patchwork (выдала схожесть HTTP payload) и, конечно, написать детектирующее правило:


alert http any any -> any any (msg: "BACKDOOR [PTsecurity] Unknown Backdoor (APT Patchwork)"; flow: established, to_server; pcre: "/^[a-z]{10,40}$/V"; http.method; content: "POST"; http.header; content: "Content-Type: application/x-www-form-urlencoded"; content: "Cache-Control: no-cache"; http.request_body; content: "umnome="; depth: 7; fast_pattern; content: "&pmjodf="; distance: 0; content: "&idkdfjej="; distance: 0; content: "&cokenme="; distance: 0; classtype: trojan-activity; sid: 1;)


Этот пример показывает, что на самом деле даже после прочтения чужих ресерчей, можно провести свой — и довольно успешно. А реверс файлов нужен далеко не всегда, по крайней мере не при поверхностном быстром анализе — в этом случае исследователь может использовать доступные песочницы с публичной экспертизой.

#detect #malware #network #suricata #patchwork #tips
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5👏4
🤨 Добавляете закладки в опенсорс-репозитории? Молодой человек, пройдемте.

В рамках threat intelligence, помимо исследования «традиционных» вредоносных программ, мы также занимаемся поиском закладок в репозитории Python Package Index с помощью сервиса PT PyAnalysis.

Тенденция такова, что не проходит и недели без троянов ☕️. При этом злоумышленники загружают не только полнофункциональные инфостилеры, но и свои маленькие пробы пера.

PT PyAnalysis очернил проекты нескольких разработчиков за последние дни, расскажем о самых интересных поделках:

🤔 Скрины 1, 2. Кампания с Android-стилером, содержащим арабские комментарии. Он отправляет файлы через телеграм-бот (как их детектить в сетевом трафике своей инфраструктуры мы писали здесь), токен которого вшит в коде. Пакеты имеют название вида raquest, ebell.

🤔 Скрин 3. Серия клипперов (троянов, ворующих данные из буфера обмена — clipboard), косящих под проверки лицензии. Закрепляются на устройствах под управлением Windows, добавляя запись автозагрузки в реестр. Слушают буфер обмена каждую секунду, в случае изменений отправляют данные в дискорд-канал. Пакеты имеют названия вида testjsonn1, testjson2, gentorqkkh.

🤔 Скрины 4, 5. Стилер, обходящий диски в поисках файлов .env, добывающий ключи SSH из стандартных путей и отправляющий все добро на сервер злоумышленника с помощью утилиты curl. Имеет логику, зависящую от целевой платформы: отдельную — для Windows, отдельную — для Linux и MacOS. Пакет: popeye-pip-v3. Имя разработчика говорит само за себя: shyam_the_hacker.

Уведомили Python Package Index, пакеты выпилены 👋

Несмотря на то, что названия этих пакетов выглядят незамысловато и вряд ли вы опечатаетесь, написав raquest вместо requests, такие пакеты могут попасть к вам через транзитивные зависимости. Построение внутреннего защищенного зеркала — сложный, но жизненно важный элемент для обеспечения современной безопасной разработки ❤️

#ti #stealer #pypi #pyanalysis
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍63
В начале 2024 года наша команда выявила применение ВПО Cobint в инфраструктуре заказчиков 🥷

Это ВПО активно использует группировка (Ex)Cobalt при атаках на российские компании (прочитать подробнее о Cobint можно в нашем блоге: здесь и здесь).

В атаках использовался специфический Powershell-загрузчик, который распаковывал и выполнял полезную нагрузку в памяти, а также загружал следующий стейдж с C2-сервера.

Интересная особенность загрузчика — использование Windows API функции InternetReadFile для загрузки стейджа с C2-сервера, вследствие чего зашифрованный стейдж может оставаться в кэше Internet Explorer, который располагается по пути:

\%User%\AppData\Local\Microsoft\Windows\InetCache\IE\


Зачастую ВПО запускается под учетными данными System или NetworkService, в этом случае индикатором может служить появление в кэше соответствующих пользователей файлов с длинными рандомными именами, например:

\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\INetCache\IE\adubiyzhofbsewzzvbyesa[1]
\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\INetCache\IE\kmduvjhwxevabeyuzafwe[1]


Анализ ВПО Cobint, полезные фишки, а также способы автоматизации расшифровки полезной нагрузки — ищите в статье на «xakep.ru».

#detect #malware #dfir #cobint #excobalt
@ptescalator
🔥8👍5👏1😢1🐳1
🫡 Hellhounds остается одной из самых продвинутых группировок, атакующих компании на территории России

Про деятельность Hellhounds мы уже рассказывали в статьях «Операция Lahat» и «Операция Lahat. Часть 2».

В ходе расследования инцидента в IT-компании внимательный администратор заметил на одном из продакшн-серверов процесс, который коннектился к нехарактерному для инфраструктуры IP-адресу — 185.104.106.147.

udevd   24429 root    9u  IPv4         1081871629      0t0        TCP example.com:15777->185.104.106.147:9443 (ESTABLISHED)


Беглый анализ артефактов на узле и самого процесса из юзерспейса не принес результатов, после чего было принято решение дополнительно запросить дамп оперативной памяти.

Для снятия дампа мы выбрали утилиту AVML, а для анализа — модули linux.malfind.Malfind, linux.proc.Maps и linux.pslist.PsList. Нам удалось обнаружить регионы памяти, которые имеют права на выполнение кода, не маппятся на конкретный файл в системе и содержат исполняемый ELF-файл.


DEBUG
volatility3.plugins.linux.malfind: Injections : processing PID 24429 : VMA Anonymous Mapping : 0x55cc7566b000-0x55cc75685000

24429 udevd 0x55cc7566b000 0x55cc75685000 r-x
7f 45 4c 46 02 01 01 00 .ELF....


Процесс udevd, вероятно, легитимен, но его область памяти была перезаписана и содержала код Decoy Dog (Pupy RAT). На момент анализа в файловой системе отсутствовали персисты и сами файлы бэкдора. Таким образом, Decoy Dog работал только в оперативной памяти.

В новой версии злоумышленники добавили скриплет dumbexec — простейший шелл, слушающий порт 39339.

Кроме того, в одном из конфигурационных файлов злоумышленники использовали порт 31337, что является очередной отсылкой к eleet:


{'debug': False, 'launcher': 'bind', 'launcher_args': ['-t', 'rsa', '0.0.0.0:31337'], 'delays': [(10, 5, 10), (50, 30, 50), (-1, 150, 300)]...


Интересно еще и то, что для генерации доменов (DGA) используются не только DDNS-сервисы, но и домен верхнего уровня .info. Применяется новый лончер l4beacon, который маскирует трафик под UDP (или под TCP, ICMP):


{'debug': False, 'launcher': 'l4beacon', 'launcher_args': ['-p', '161', '-s', 'udp', '--domain', [REDACTED], '-E', 'zzux.com,mooo.com,info'], 'delays': [(10, 5, 10), (50, 30, 50), (-1, 150, 300)]}


Кроме того, в новой версии появилось шифрование конфигурации, содержащей параметры сетевого взаимодействия, ключи и сертификаты:


{'debug': False, 'cid': [REDACTED], 'bound': True, 'data': [REDACTED], 'tmpk': b'gFwpC9rCRmSNjHmvjs+3kB4HD22LGmFgs1BSSvc68fzMQiPcNXchPWYEpjQMYB56'}


Если установлен флаг bound, то в data находится остальная часть конфигурации, зашифрованная криптоалгоритмом ChaCha20, а ключ генерируется на основе идентификатора системы.

Кроме того, появился ключ tmpk, который используется для шифрования данных о системе, отправляемых скриплетом telemetry. Ранее для этого использовался тот же ключ, с помощью которого расшифровывался файл динамической конфигурации.

YARA-правило:


rule PTESC_apt_mem_ZZ_DecoyDog__Backdoor{
strings:
$p1 = "pupy://"
$p2 = "--pass-args"
$p3 = "LZMA error"
$p4 = "/__init__.pyo"
$pupy = "pupy"
condition:
all of ($p*) and #pupy >= 2
}


IoCs:


185.104.106.147:9443
0.0.0.0:31337
0.0.0.0:39339
mindly.social

*.zzux.com (DGA)
*.mooo.com (DGA)


#hunt #detect #dfir #hellhounds
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍106🙈1
Эксфильтрация в промышленных масштабах 😐

APT-группировка Cloud Atlas атакует российские компании с 2019 года, занимается шпионажем и кражей конфиденциальной информации.

Расследуя очередной инцидент, связанный с деятельностью APT-группировки, команда PT ESC обнаружила Python-скрипт (VirusTotal 0/66) для массовой централизованной (по протоколу SMB) эксфильтрации данных из инфраструктуры жертвы.

Скрипт с именем v.3 запускался через механизм задач Windows:


C:\ProgramData\WindowsDefender\Update\SecuritySystrayw.exe C:\ProgramData\WindowsDefender\Update\v.3 -ip C:\ProgramData\WindowsDefender\Update\sys -c C:\ProgramData\WindowsDefender\Update\loc -A


Для корректной работы атакующие использовали в системе интерпретатор Python (SecuritySystrayw.exe) и архиватор 7-Zip. Конфигурационный файл loc закодирован с помощью алгоритма XOR с ключом 27. Файл sys содержал список IP-адресов, к которым подключались злоумышленники по протоколу SMB для поиска и сбора файлов по определенным параметрам.

Пример расшифрованной конфигурации:


{'USERCAT': True, 'USERCAT_DOWNLOAD': True, 'DEEP_SHARECAT': True, 'SHARECAT_DOWNLOAD': True, 'NEED_SAVE_CATS': False, 'remote_port': '445', 'username': [REDACTED], 'password': [REDACTED], 'my_name': [REDACTED], 'domain': [REDACTED], 'max_size_file': '2100000', 'min_size_file': '10', 'size_archive': '9242660', 'deep': '6', 'format_file': ['doc', 'docx', 'pdf', 'xls', 'rtf', 'xlsx', 'txt', 'zip', 'rar'], 'days': '1', 'host': 'https://update-version.net/pousowdie/alectoromancy/xenoblast/nadirwere/kamalbaka/shellprog/reverbed/saledroid.dotm/2', 'key': [REDACTED], 'wd': [{'wd_host': 'https://webdav.opendrive.com/', 'wd_login': [REDACTED], 'wd_password': [REDACTED], 'wd_work': True}], 'no_need_list': ['.', '..', 'desktop.ini', 'ADMIN$', 'IPC$', 'Default', 'All Users', 'Default User', 'Public', 'Microsoft', 'Windows', 'AppData', 'Application Data', 'Local Settings', 'Все пользователи'], 'need_folders': ['Downloads', 'Desktop', 'Documents']}


Конфигурация содержит параметры файлов, которые были интересны злоумышленникам, — списки расширений, директорий, размеров файлов. Перед отправкой собранные данные предварительно помещаются в архив с паролем.


command = f'{os.path.join(pfile, "7z.exe")} a "{os.path.join(pfile, "archiv_results", name)}" "{pfile}\\.\\temp\\*" -p{key} -mhe -sdel'


Эксфильтрация данных осуществлялась по протоколу WebDAV на сервис OpenDrive или методом POST на управляющий сервер. Помимо этого, нам удалось выявить, что атакующие начали использовать сервис MEGA.

IoCs:


164.25.54.22
update-version.net
webdav.opendrive.com
api.mega.co.nz


Happy hunting! 🎯

#dfir #hunt #detect #win #ioc #apt
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍642😱1
Злоумышленники ищут новые способы «открыть ворота»

Недавно мы обнаружили необычную схему атаки. Злоумышленники сначала устанавливают контакт с жертвой, усыпляют ее бдительность, представляясь некоей заинтересованной компанией, а после получения ответа отправляют цели ожидаемое ей вредоносное вложение.

Срочность открытия вложения обозначается неявно: например, отправитель уходит в отпуск и нужно сегодня подготовить коммерческое предложение, а для этого необходимо открыть вложение.

Киберпреступники работают в часовом поясе между UTC−4 и UTC+4 и владеют русским языком. Видно, что текст набирался вручную, без переводчика, поэтому там есть опечатка.

👉 Интересен также и выбор жертвы. Сейчас как никогда актуально импортозамещение — существует большое количество запросов к дистрибьюторам отечественного ПО. Взлом подобных организаций может открыть путь ко множеству других компаний, в том числе и в критически важных областях, через атаки типа trusted relationship.

В указанном случае злоумышленники представились компанией «Промышленная автоматизация» и использовали домен promautomautic.ru. Он отличается от реального всего одной буквой и был зарегистрирован незадолго до атаки.

К письму был приложен архив Promautomatic.zip, который содержит DOCX-документ Kartochka_Promautomatic.docx (карточку компании) и исполняемый файл:

Scan_Promautomatic_P7_Office_241_06_13.06.2024_ann←fdp.exe


Файл является бэкдором DarkGate, обычно используемым для кражи конфиденциальной информации и получения удаленного доступа к системе. DarkGate распространяется по модели malware as a service, поэтому идентифицировать злоумышленников затруднительно.

Атакующие использовали управляющий символ RTLO (Right-To-Left Override) для того, чтобы изменить порядок следования последних знаков:

Scan_Promautomatic_P7_Office_241_06_13.06.2024_annexe.pdf


Таким образом, у жертвы создается ощущение, что это PDF-документ, а не исполняемый файл.

IoCs:


promautomautic.ru
45.151.62.66
f81593ac3586e61eb9ee1b332eca2afc
5d586682ff20db587d991716dafa0b231ed7b2f8
f127c29f095f1771c6afc476e4b3adf3442d7f014f39cc47875226f651d64c92
35bd6ff114bbaeaa1b8f959e00042a33
00da82325086c940306d9df23fb8f8d09e044290
70afae352a5f8b2aaab952f2e702aac2fd0b4e38781f3a778b1756e67f779d54


#TI #DarkGate #Phishing
@ptescalator
🔥14🫡8👍6💔1
ℹ️ Эксфильтрация с помощью Powershell/C#

В процессе расследования инцидента при анализе журналов событий Windows на одном из скомпрометированных узлов мы обнаружили факт выполнения скрипта PowerShell, осуществляющего эксфильтрацию чувствительных файлов с сетевых папок на подконтрольный злоумышленникам сервер 🧐

Необходимая сетевая папка подключается командлетом New-SmbMapping, используются учетные данные, скомпрометированные на одном из предыдущих этапов атаки. После выполняется код на языке C#, определенный внутри PowerShell-скрипта и содержащий основную логику выгрузки файлов.

Программа на C# рекурсивно перебирает файлы, расположенные в заданной и во вложенных папках, и выгружает на подконтрольный веб-сервер те из них, для которых выполняются следующие условия:

размер не превышает 750 000 байт.
последняя модификация файла была не позже чем 130 дней назад.

📑 В процессе перебора информация записывается в %APPDATA%\tree.ini с указанием полного пути к файлам, их размеров в байтах, даты последней модификации и даты последнего доступа к ним.

Содержимое каждого из файлов, соответствующих описанным выше условиям, отправляется POST-запросом на веб-сервер злоумышленников в формате multipart/form-data частями по 16 384 байта.

В параметр filename передается идентификатор файла, который представляет собой закодированную Base64 строку формата:


fullpath&&last_write_time&&file_size&&host_name&&current_user&&drive_serial_number


После обработки и выгрузки всех файлов на сервер выгружается также и файл tree.ini, после чего удаляется из системы.

🔦 В обнаружении подобной активности может помочь анализ следующих событий журналов безопасности Windows:

1️⃣ Sysmon event ID 11: создание файлов в пользовательской папке %AppData% от имени процесса powershell.exe. В нашем случае создаются файлы с именами, определенными в коде: tree.ini, profiles_int.ini (БД, в которую записываются хеш-суммы MD5 идентификаторов файлов), sys_error.log и sys_error_ps.log (файлы журналов).

2️⃣ Sysmon event ID 3: сетевые соединения от имени процесса powershell.exe к узлам внутренней сети по порту 445 TCP.

3️⃣ Security event ID 4656, 4663: запрос дескриптора и получение доступа к файлам в сетевой папке процессом powershell.exe.

4️⃣ Windows PowerShell event ID 800 и Microsoft-Windows-PowerShell/Operational event ID 4103, 4104, содержащие характерные для скрипта строки. В частности, названия переменных и методов, определенных в коде:


C#: ___directoriesToUpload___, ___fileBase64Id___, ___WritePartInfo, ___SendTreeFileAndTryRemove


💡 Индикатором возможной вредоносной активности также служит наличие в сетевом трафике большого количества HTTP-запросов методом POST, URL которых содержат фрагменты, закодированные Base64.

👉 SIGMA-правило

IoC:

94.158.247.19


#detect #dfir #PowerShell #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3🆒2
☝️ Помимо журналов Windows, в расследовании активности, описанной в предыдущем посте, нам помог еще один интересный артефакт, предоставляемый популярным средством антивирусной защиты.

Этот артефакт представляет собой базу данных (reports.db), в которой хранятся сведения о работе приложений, в том числе о файлах и веб-ресурсах, с которыми взаимодействовал тот или иной процесс.


{"application.description":"Windows PowerShell","application.directory":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0","application.name":"powershell.exe","eventId":154,"object.directory":"\\\\10.50.1.39\\E$\\Очень важные документы\\отчет.xlsx//","object.name":"encrypted","timestamp":"2024-05-06T15:44:15.305346Z","user.name":"COMPANY\\admin","user.type":1}



{"application.description":"Windows PowerShell","application.directory":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0","application.name":"powershell.exe","eventId":154,"object.directory":"https://94.158.247.19/files/upload/4c3df659-4299-4f3d-a159-5cca5215f74f///WREQ//XFwxMC40MC4xMC4zNFxFJFzQntGH0LXQvdGMINCy0LDQttC90YvQtSDQtNC+0LrRg9C80LXQvdGC0Ytc0L7RgtGH0LXRgi54bHN4JiYyOC4wMi4yMDI0IDc6NDI6MTImJjM2NzQyJiZWTTAwMSYmYWRtaW4mJkRGNDUzNjI0//","object.name":"encrypted","timestamp":"2024-05-06T15:44:15.305346Z","user.name":"COMPANY\\admin","user.type":1}


Приведенные выше события, полученные после парсинга базы данных одним из наших инструментов, свидетельствуют о факте доступа процесса powershell.exe к документу в сетевой папке и к веб-странице.

🖥 URL, отраженный в поле object.directory, имеет следующий формат:


ip_address/files/upload/guid///WREQ//base64_id//


🧑‍💻 После декодирования из Base64 получим следующую строку:


\\10.40.10.34\E$\Очень важные документы\отчет.xlsx&&28.02.2024 7:42:12&&36742&&VM001&&admin&&DF453624


Запрос эксфильтрации содержит разделенные двойным амперсандом путь к файлу, дату модификации, размер файла в байтах, имя узла, имя пользователя и серийный номер жесткого диска.

Таким образом, reports.db — прекрасный источник данных, в котором можно найти:

факты применения этого скрипта для эксфильтрации;
перечень выгруженных ресурсов;
учетную запись, под которой велась хакерская активность.

#detect #dfir #PowerShell #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍5👏3👀2