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.
 

85 lines
3.5 KiB

МОДУЛЬ РАСПРОСТРАНЕНИЯ
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
ЦЕЛЬ
Доработать имеющийся модуль распространения по сети:
* Добавить универсальный интерфейс для добавления новых эксплойтов
* Определить используемый тип эксплойта и оформить его для работы через интерфейс
* Добавить эксплойт BlueKeep в модуль.
ОПИСАНИЕ МОДУЛЯ
Модуль сканирует локальную сеть и применяет на найденных машинах некий эксплойт - тип пока неизвестен.
Известно, что шелл-код скачивает нагрузку по адресу http://galamatics.com/jomangi1.png и http://galamatics.com/jomangi2.png
(вероятней всего через DownloadFromUrlA) и запускает ее. Организация шелл-кода неизвестна:
если он специфичный для эксплойта, там может быть ROP.
Если нет, то возможно там производится поиск нужных функций в таблице импорта и работа через них.
Сканирование производится по трем типам сетевого окружения:
- обычная рабочая группа Windows
- домен Windows
- LDAP
Модуль оформлен в соответствии с документом module_HOWTO.
ДОРАБОТКА
Все доработки должны проводиться в рамках документа module_HOWTO.
Код сканирования сети не требует доработки.
Доработки требует следующее:
1) Интерфейс работы с эксплойтами:
- у эксплойта должен быть основной метод Exploit(const char* hostname) (здесь может быть адрес машины или ее имя)
- код сканирования сети должен быть изолирован от кода эксплуатации
- модуль должен собираться как конструктор, из нужной комбинации сканера сети и варианта эксплойта, условной компиляцией.
Цель - переиспользовать код сканирования, для создания на его основе разных модулей.
Комбинация "каждый с каждым" не нужна (каждый эксплойт с каждым вариантом сканирования) - нету цели достичь полной вариативности.
Реализовать такой конструктор следует так:
- макросами в файле config.h выбирается, какой именно модуль мы собираем.
Этими же макросами отключаем неиспользуемый в данной сборке код.
Например, если используем эксплойт FOO, делаем
config.h:
#define FOO
#undef BAR
foo.cpp:
#include "config.h"
#ifdef FOO
...
code here
...
#endif
- Название выходного файла должно быть разным для разных вариаций
- Лучше всего использовать профили компиляции в Visual Studio для разных вариантов
В таком случае можно макросы препроцессора задавать непосредственно в настройках сборки для конкретного профиля проекта.
На каждый вариант создать свой профиль сборки.
2) В модуль следует добавить эксплойт BlueKeep в соответствии с интерфейсом работы с эксплойтами.
Информация по BlueKeep:
https://github.com/umarfarook882/CVE-2019-0708
https://github.com/n1xbyte/CVE-2019-0708
https://github.com/adalenv/CVE-2019-0708-Tool
https://github.com/gobysec/CVE-2019-0708
https://github.com/Ekultek/BlueKeep
https://github.com/robertdavidgraham/rdpscan
https://github.com/zerosum0x0/CVE-2019-0708
https://github.com/dothanthitiendiettiende/BlueKeep
https://github.com/Ekultek/BlueKeep/blob/master/bluekeep_poc.py
3) Дооформление модуля
- обфусцировать строки библиотекой Andrivet Advanced Obfuscator, применить шифрование из MetaString4.h
- обфусцировать системные вызовы через GetApi
- добавить следующие события:
+ Module wormDll build %date% %time% started - при старте модуля
+ Trying %sploit% on %hostname% (%addr%) - при применении эксплойта к хосту
- сделать логирование в файл в текущем каталоге. Имя лога такое же, как у запускаемого модуля, но с расширением .log
Использовать приложенную библиотеку логирования.
- логирование должно происходить только в профилях сборки Debug, Release_logged. В профиле Release_nologs логирование должно отключаться
(отключением макросов LOG_TO_FILE, LOG_TO_CONSOLE)