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




