Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
DarkWidow — Indirect Dynamic Syscall, SSN + Syscall address sorting via Modified TartarusGate approach + Remote Process Injection via APC Early Bird + Spawns a sacrificial Process as target process + (ACG+BlockDll) mitigation policy on spawned process + PPID spoofing + Api resolving from TIB + API hashing | Kitploit
Инструменты/GitHubGitHub/reveng007/darkwidow
Повышение привилегийЭксплуатацияОбход IDS/IPSПост-эксплуатацияАнализ вредоносных программАнализ Бинарных ФайловОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubreveng007/darkwidow

DarkWidow

Репозиторий
807104198 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

Indirect Dynamic Syscall, SSN + Syscall address sorting via Modified TartarusGate approach + Remote Process Injection via APC Early Bird + Spawns a sacrificial Process as target process + (ACG+BlockDll) mitigation policy on spawned process + PPID spoofing + Api resolving from TIB + API hashing

Поделиться

DarkWidow

Настраиваемый инструмент-дроппер, нацеленный на Windows.


Почётные упоминания:

  1. BlackHat Asia, 2024 - Призыв к инструментам
  2. BlackHat USA, 2024 - Призыв к инструментам
  3. BlackHat SecTor, 2024 - Призыв к инструментам
  4. BlackHat Europe, 2024 - Призыв к инструментам
  5. Wild West Hacking Fest 2024 - Арсенал
  • Большое спасибо Soumyadeep Da (он же @SoumyadeepBas12) за то, что подтолкнул меня подать заявку на эти конференции, иначе я бы этого не сделал :)
  • Большое спасибо Faran (он же @Chrollo_l33t) за помощь в создании слайдов и презентации для этого инструмента :)

Возможности:

  1. Непрямой динамический системный вызов. (MITRE ATT&CK TTP: T1106)
  2. Сортировка SSN + адресов системных вызовов через модифицированный подход TartarusGate
  3. Удалённое внедрение в процесс через APC Early Bird для ОТСЕЧЕНИЯ перехвата телеметрии EDR. (MITRE ATT&CK TTP: T1055.004)
  4. Запускает процесс-жертву в качестве целевого процесса, не нарушая работу уже открытых процессов в среде.
  5. Политика смягчения ACG (Arbitrary Code Guard)/BlockDll на запущенном процессе-жертве.
  6. Спуфинг PPID (MITRE ATT&CK TTP: T1134.004)
  7. Разрешение API и DLL из TIB (напрямую через смещение (из TIB) -> TEB -> PEB -> разрешение Nt API) (MITRE ATT&CK TTP: T1106)
  8. Проклятое хэширование Nt API (MITRE ATT&CK ID: S0574)

Бонус: Если повезло с привилегиями администратора =>

  1. Отключает журнал событий через убийство потоков службы EventLog (MITRE ATT&CK TTP: T1562.002)

Недостаток: Если потоки будут возобновлены, все события, произошедшие во время приостановки регистратора событий, будут зарегистрированы снова!

Поэтому решил вместо этого их убить!

"Это более инвазивно, чем приостановка, но решение всегда за оператором. К тому же убийство потоков регистрируется на уровне ядра" - @SEKTOR7net

При попытке убить только те потоки в импланте непрямого системного вызова, возникла ошибка. Мне не удалось получить значение "eventlog" SubProcessTag. Поэтому решил убить все потоки, то есть убить весь процесс (ответственный svchost.exe). Да, создавая IOC!.

=

1. Обход хуков EDR/Ring-3/UserLand

2. Системный вызов и оператор возврата выполняются из памяти ntdll.dll

3. Обнаружение EDR, основанное на проверке адреса возврата в стеке вызовов, может быть обойдено.

Компиляция:

Непосредственно через компилятор VS:

image

Также добавьте флаг компилятора /MT! => Для статической компоновки функций CRT в двоичном файле (Да, вы правильно догадались, это раздувает имплант)

image

  1. Также через compile.bat (предпочтительнее вариант 1.)
./compile.bat

Использование:

PS C:> .\x64\Release\indirect.exe
[!] Wrong!
[->] Syntax: .\x64\Release\indirect.exe <PPID to spoof>

В действии:

https://github.com/reveng007/DarkWidow/assets/61424547/62a90c5b-84af-4389-8ddc-9f7926debdcf

Успешное выполнение без создания оповещений на конечной точке Sofos XDR:

SofosXDREvade


Дальнейшие улучшения:

  1. Спуфинг PPID (метод Emotet)
  2. Гораздо более скрытный вариант использования отключения журнала событий!

Фрагменты кода и ссылки, которые помогли:

  1. TIB:

    • https://en.wikipedia.org/wiki/Win32_Thread_Information_Block
    • https://www.wikiwand.com/en/Win32_Thread_Information_Block
  2. Регистры GS и FS:

    • https://stackoverflow.com/questions/39137043/what-is-the-gs-register-used-for-on-windows
    • https://stackoverflow.com/questions/10810203/what-is-the-fs-gs-register-intended-for#:~:text=The%20registers%20FS%20and%20GS,to%20access%20thread%2Dspecific%20memory.
  3. Структура PEB LDR:

    • BlackHat - Что авторы вредоносных программ не хотят, чтобы вы знали - Уклончивое внедрение процессов Hollow от @monnappa22

    • Изображение памяти процесса из вышеуказанной ссылки:
      alt text

    • Из labs.cognisys.group, блог от @D1rkMtr :
      alt text

  4. TIB -> TEB -> PEB -> Разрешение Nt API и хэширование API

    • https://stackoverflow.com/questions/41277888/iterating-over-peb-dllname-shows-only-exe-name

    • https://doxygen.reactos.org/d7/d55/ldrapi_8c_source.html#l01124

    • labs.cognisys.group, блог от @D1rkMtr

    • Изображение фрагмента из вышеуказанной ссылки, который я использовал здесь для динамического разрешения API без жесткого кодирования смещений:
      alt text

    • Код хэширования API, который я применил:


#include <stdint.h>
#include <stdio.h>
#include <Windows.h>

DWORD64 djb2(const char* str)
{
	DWORD64 dwHash = 0x7734773477347734;
	int c;

	while (c = *str++)
		dwHash = ((dwHash << 0x5) + dwHash) + c;


	return dwHash;
}

int main(int argc, char** argv)
{
	if (argc < 2)
	{
		printf("[!] Wrong!\n");
		printf("[->] Syntax: .\\%s <NTFuncName>\n\n", argv[0]);
		return 1;
	}

	const char* string = argv[1];

	DWORD64 hashvalue = djb2(string);

	printf("Hash Value: 0x%llX\n", hashvalue);

	return 0;
}

  1. Политика смягчения ACG(Arbitrary Code Guard)/BlockDll:

    • ссылки:
    • Protecting Your Malware от @xpn
    • Wraith от @winterknife
    • spawn и HOLLOW от @0xBoku alt text
  2. Обнаружение спуфинга PPID:

    • Обнаружение спуфинга PPID от @spotheplanet
    • Если будет время, я добавлю часть обнаружения в этот раздел! -> [Осталось..............................................!]
  3. Обнаружение Moneta и PESieve:\

    • Moneta:
      alt text

    • PESieve:
      alt text

Скачать инструмент