Conti Ransomware malware leak WITH LOCKER
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

102 lines
4.1 KiB

ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ МОДУЛЯ СБОРА COOKIES БРОУЗЕРОВ
ЦЕЛИ И ТРЕБОВАНИЯ
Модуль должен собирать куки основных броузеров (Chrome, Firefox, Internet Explorer, Microsoft Edge) и отправлять по протоколу DPOST на сервер.
Требования к модулю:
- оформлен в соответствии с правилами разработки модулей
- единственный конфиг модуля - список прокладок DPOST
- работает как от имени пользователя, так и от имени SYSTEM
ДЕТАЛИ РЕАЛИЗАЦИИ
1. Собираются только куки без даты истечения, либо еще не истекшие по времени.
2. Если модуль работает от SYSTEM, он перебирает всех не-системных пользователей и собирает куки для каждого из них.
Если модуль работает от обычного пользователя, он собирает куки только для него.
3. По завершению работы модуль должен дать событие WantRelease (см "module_HOWTO") для выгрузки из памяти
4. Отправка собранных куки производится до тех пор, пока не будет получен положительный ответ от прокладки.
Если связи с прокладками нет, модуль засыпает на полчаса, после чего повторяет попытки. До бесконечности.
5. Модуль отправляет следующие события:
- "Version build %DATE% %TIME%" (один раз при старте)
- "Cookies grabbed from <browser name> for user <username>" при успехе сбора
- "No cookies from <browser name> for user <username>" если у данного броузера нету куки
- "Cookies sent to server" при успехе отправки на сервер DPOST
- "Cookies send failure: servers unavailable" при отсутствии доступных серверов DPOST
6. В данном модуле можно ограниченно использовать C++ STL (std::string, контейнеры).
Запрещено использовать std::mutex и примитивы синхронизации - для этого можно использовать только
примитивы синхронизации WinAPI (CRITICAL_SECTION итд).
7. Строки обфусцировать библиотекой Andrivet (приложена, см.макрос _STR())
8. Системные вызовы обфусцировать библиотекой GetApi.h. Быть внимательным, обфускация сисвызовов может давать падения.
9. Модуль должен иметь две версии - x32- и x64-разрядную.
10. В боевой сборке должны быть обфусцированы по максимуму строки, отключен всяческий отладочный вывод.
11. Модуль должен иметь отладочную версию. Отладочный вывод должен выводиться в c:/temp/cookies.log (путь к логу настраивается в макросе).
12. В проекте должен быть файл настроек config.h (название неважно, важна суть - здесь все глобальные настройки - пути, макросы-переключатели условной компиляции итд).
13. Модуль должен работать на всех современных версиях Windows.
Минимальная поддерживаемая версия Windows - Windows XP (если невозможно - Windows Vista).
ПРОТОКОЛ DPOST
См.документ "ТЗ граб паролей DPOST".
Относительно данного документа, изменен формат отправки:
username|browser|domain|cookie_name|cookie_value|created|expires|path\r\n
где
username - имя пользователя
browser - код броузера (enum = chrome|ff|ie|edge)
domain - домен куки
cookie_name - имя куки
cookie_value - значение куки
created - дата-время создания, Unix time
expires - дата-время истечения, Unix time
path - путь URI
КОНФИГ DPOST
См.документ "ТЗ граб паролей DPOST".
Данный конфиг модуль парсит при получении вызова Control("dpost",...)
ЗАДАНИЕ ДЛЯ ДОРАБОТКИ DERO
1. Создать новую команду для получения данных куки. Например, код команды 84
2. Создать таблицу для хранения данных (псевдокод SQL):
CREATE TABLE cookies (
id SERIAL,
username VARCHAR(255),
browser VARCHAR(255)
domain VARCHAR(255)
cookie_name VARCHAR(255)
cookie_value VARCHAR(255)
created DATETIME,
expires DATETIME,
path VARCHAR(255)
);
3. Обеспечить прием данных в следующем формате:
- простой текст, разделенный на строки.
Разделитель строк - может быть как UNIX, так и DOS.
Одна строка - одна запись.
Разделитель полей в записи - вертикальная черта |
Формат записи:
username|browser|domain|cookie_name|cookie_value|created|expires|path\r\n
где
username - имя пользователя
browser - код броузера (enum = chrome|ff|ie|edge)
domain - домен куки
cookie_name - имя куки
cookie_value - значение куки
created - дата-время создания, Unix time
expires - дата-время истечения, Unix time
path - путь URI
- прием на URI /group/id/84
по HTTP POST
Получение данных в поле data