А теперь предлагаю осуществить эмуляцию APT-группировки. Научим netexec действовать как Lazarus :)
Netexec предоставляет модульную архитектуру, мы можем достаточно просто расширить его функционал. Давайте научим NXC тырить
tdata с компьютеров в домене. Nxc предоставляет пример модуля
тут. Нам достаточно заполнить основную информацию:
-
name - имя модуля;
-
description - описание модуля;
-
supported_protocols - протокол, поверх которого работает модуль. В зависимости от этого будет различаться
connection object, поверх которого идет взаимодействие с целевой службой;
-
category - категория модуля. может быть для перечисления, извлечения учетных данных, повышения привилегий.
Сами модули должны быть помещены в директорию
modules внутри папки
.nxc.
Затем нужно реализовать несколько основных функций:
-
on_login() - функция вызывается при успешной аутентификации на хосте. То есть, креды валидные. Однако, этот метод вызывается также если креды НЕ указаны, либо они пустые (Null Creds);
-
on_admin_login() - функция вызывается, если у переданных учетных данных есть права админа на целевой службе. Регулируется переменной
`self.admin_privs`. Значение переменной выставляется по уникальной для каждого протокола логике. Например, в случае SMB NXC пытается получить доступ
SC_MANAGER_ALL_ACCESS внутри функции
check_if_admin;
-
options() - в этой функции делаем парсинг опций, которые были переданы в модуль. Передача в модуль в таком формате:
-M abcd -o TARGET=admin ACTION=delete
В CME также была поддержка функций
on_request()/
on_response()/
on_shutdown(), но в NXC удалена поддержка этих функций. Посмотреть примеры реализации можно в
CME.
Для кражи сессии телеграм достаточно подключаться к шарам и осуществлять поиск папки
tdata. Отмечу, что уже был
POC на кражу tdata, но давайте избежим примитивов исполнения powershell-командлетов и сделаем все поверх SMB-соединения.
Логика моего модуля достаточно проста:
1. По умолчанию идет поиск папки
tdata внутри папки
C:\Users, можно путь переопределить через
SEARCH_DIR переменную. Отмечу, что в коде идет получение всех шар, изначальная логика была в полном облутывании хостовой системы в попытке найти
tdata на всех доступных дисковых шарах, но этот вариант крайне медленный и не очень оптимальный по ресурсам.
2. При обнаружении папки
tdata идет копирование ее на локальное устройство в папку
.nxc/.loot/telegram/<ip>.tg3. Затем мы можем взять
tdata, скачать Telegram Portable и вставить
tdata в корневую директорию Telegram Portable. И получить доступ к чужой сессии, запустив TG Portable!
Отмечу, что если пользователь использует блокировку TG по пин-коду (НЕ облачный пароль, а именно пин от приложения), то Telegram попросит нас ввести этот пин-код при входе в аккаунт
Код скрипта я прикрепил
здесь.
А после получения доступа в TG вы можете поискать, например,
ovpn-конфиги :)
@RedTeambro