Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
DarkWidow — Indirekter dynamischer Syscall, SSN + Syscall-Adresssortierung mittels modifiziertem TartarusGate-Ansatz + Remote-Prozess-Injection via APC Early Bird + Erzeugt einen Opferprozess als Zielprozess + (ACG+BlockDll)-Minderungsrichtlinie auf erzeugtem Prozess + PPID-Spoofing + API-Auflösung vom TIB + API-Hashing | Kitploit
Tools/GitHubGitHub/reveng007/darkwidow
Privilege EscalationExploitationIDS/IPS-UmgehungPost-ExploitationMalware-AnalyseBinäranalyseLernen & BildungRed TeamingPayload-Entwicklung
GitHubreveng007/darkwidow

DarkWidow

Repository anzeigen
80710419vor 8 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Indirekter dynamischer Syscall, SSN + Syscall-Adresssortierung mittels modifiziertem TartarusGate-Ansatz + Remote-Prozess-Injection via APC Early Bird + Erzeugt einen Opferprozess als Zielprozess + (ACG+BlockDll)-Minderungsrichtlinie auf erzeugtem Prozess + PPID-Spoofing + API-Auflösung vom TIB + API-Hashing

Teilen

DarkWidow

Ein anpassbares Dropper-Tool für Windows.


Ehrenvolle Erwähnungen:

  1. BlackHat Asia, 2024 - Aufruf für Tools
  2. BlackHat USA, 2024 - Aufruf für Tools
  3. BlackHat SecTor, 2024 - Aufruf für Tools
  4. BlackHat Europe, 2024 - Aufruf für Tools
  5. Wild West Hacking Fest 2024 - Arsenal
  • Vielen Dank an Soumyadeep Da aka @SoumyadeepBas12, der mich ermutigt hat, mich für diese Konferenzen zu bewerben, sonst hätte ich es nicht getan :)
  • Vielen Dank an Faran aka @Chrollo_l33t für die Hilfe bei der Erstellung der Folien und der PPT für die Präsentation dieses Tools :)

Fähigkeiten:

  1. Indirekter dynamischer Syscall. (MITRE ATT&CK TTP: T1106)
  2. SSN + Syscall-Adresssortierung mittels modifiziertem TartarusGate-Ansatz
  3. Remote Process Injection via APC Early Bird, um die Telemetrie-Erfassung durch EDR zu UNTERBRECHEN. (MITRE ATT&CK TTP: T1055.004)
  4. Startet einen Opferprozess als Zielprozess, ohne bereits geöffnete Prozesse in der Umgebung zu stören.
  5. ACG (Arbitrary Code Guard)/BlockDll-Mitigationsrichtlinie auf den gestarteten Opferprozess.
  6. PPID-Spoofing (MITRE ATT&CK TTP: T1134.004)
  7. Api- und Dll-Auflösung aus TIB (Direkt via Offset (vom TIB) -> TEB -> PEB -> Nt Api auflösen) (MITRE ATT&CK TTP: T1106)
  8. Verdammtes Nt-API-Hashing (MITRE ATT&CK ID: S0574)

Bonus: Falls mit Admin-Rechten gesegnet =>

  1. Deaktiviert das Ereignisprotokoll durch Töten der EventLog-Dienstthreads (MITRE ATT&CK TTP: T1562.002)

Nachteil: Wenn Threads fortgesetzt werden, werden alle Ereignisse, die während der Sperrung des Ereignisprotokolls aufgetreten sind, erneut protokolliert!

Also dachte ich, sie stattdessen zu töten!

„Es ist invasiver als das Anhalten, aber die Entscheidung liegt immer beim Bediener. Außerdem wird das Töten von Threads auf Kernel-Ebene protokolliert.“ - @SEKTOR7net

Während des Versuchs, nur diese Threads im indirekten Syscall-Implantat zu töten, trat ein Fehler auf. Ich konnte den SubProcessTag-Wert von „eventlog“ nicht abrufen. Also dachte ich, alle Threads zu töten, d.h. den gesamten Prozess (verantwortlich svchost.exe) zu töten. Ja, das erzeugt einen IOC!.

=

1. EDR/Ring-3/UserLand-Hook-Umgehung

2. Der Syscall und die Return-Anweisung werden aus dem Speicher von ntdll.dll ausgeführt

3. EDR-Erkennung basierend auf der Überprüfung der Rücksprungadresse im Aufrufstack kann umgangen werden.

Compile:

Directly via VS compiler:

image

Füge auch das /MT-Compiler-Flag hinzu! => Um CRT-Funktionen statisch in einer Binärdatei zu verknüpfen (Ja, du hast es erraten, es bläht den Implantat auf)

image

  1. Auch via compile.bat (Option 1 wird bevorzugt)
./compile.bat

Usage:

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

In Action:

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

Erfolgreiche Ausführung ohne Erstellen eines Alarms auf dem Sophos XDR-Endpunkt:

SofosXDREvade


Weitere Verbesserungen:

  1. PPID-Spoofing (Emotet-Methode)
  2. Viel heimlichere Verwendung der Deaktivierung des Ereignisprotokolls!

Teile des Codes und Links, die geholfen haben:

  1. TIB:

    • https://en.wikipedia.org/wiki/Win32_Thread_Information_Block
    • https://www.wikiwand.com/en/Win32_Thread_Information_Block
  2. GS- und FS-Register:

    • 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-Struktur:

    • BlackHat - Was Malware-Autoren nicht wollen, dass Sie wissen - Evasive Hollow Process Injection von @monnappa22

    • Ein Bild des Prozessspeichers aus dem obigen Link:
      alt text

    • Von labs.cognisys.group, einem Blog von @D1rkMtr :
      alt text

  4. TIB -> TEB -> PEB -> Nt-API auflösen und API-Hashing

    • 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, einem Blog von @D1rkMtr

    • Ein Bild des Snippets aus dem obigen Link, das ich hier verwendet habe, um die API dynamisch aufzulösen, ohne Offsets hart zu codieren:
      alt text

    • Der API-Hashing-Code, den ich angewendet habe:


#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-Mitigationsrichtlinie:

    • links:
    • Schützen Sie Ihre Malware von @xpn
    • Wraith von @winterknife
    • spawn und HOLLOW von @0xBoku alt text
  2. PPID-Spoofing-Erkennung:

    • PPID-Spoofing erkennen von @spotheplanet
    • Wenn ich Zeit habe, werde ich einen Erkennungsteil zu diesem Abschnitt hinzufügen! -> [Verbleibend..............................................!]
  3. Moneta-Erkennung und PESieve-Erkennung:\

    • Moneta:
      alt text
Tool herunterladen