Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DarkWidow — Syscall dynamique indirect, tri des adresses SSN + Syscall via approche TartarusGate modifiée + Injection de processus distant via APC Early Bird + Génère un processus sacrificiel comme processus cible + Politique d'atténuation (ACG+BlockDll) sur le processus généré + Usurpation de PPID + Résolution d'API depuis TIB + Hachage d'API | Kitploit
Outils/GitHubGitHub/reveng007/darkwidow
Escalade de PrivilègesExploitationÉvasion IDS/IPSPost-ExploitationAnalyse de MalwareAnalyse de BinairesApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles
GitHubreveng007/darkwidow

DarkWidow

Voir le dépôt
80710419il y a 8 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Syscall dynamique indirect, tri des adresses SSN + Syscall via approche TartarusGate modifiée + Injection de processus distant via APC Early Bird + Génère un processus sacrificiel comme processus cible + Politique d'atténuation (ACG+BlockDll) sur le processus généré + Usurpation de PPID + Résolution d'API depuis TIB + Hachage d'API

Partager

DarkWidow

Un outil dropper personnalisable ciblant Windows.


Mentions honorables :

  1. BlackHat Asia, 2024 - Appel à outils
  2. BlackHat USA, 2024 - Appel à outils
  3. BlackHat SecTor, 2024 - Appel à outils
  4. BlackHat Europe, 2024 - Appel à outils
  5. Wild West Hacking Fest 2024 - Arsenal
  • Un grand merci à Soumyadeep Da alias @SoumyadeepBas12 pour m'avoir encouragé à postuler à ces conférences, sinon je ne l'aurais pas fait :)
  • Un grand merci à Faran alias @Chrollo_l33t pour m'avoir aidé à créer les diapositives et le PPT pour la présentation de cet outil :)

Capacités :

  1. Syscall dynamique indirect. (MITRE ATT&CK TTP: T1106)
  2. Tri des adresses SSN + Syscall via l'approche TartarusGate modifiée
  3. Injection de processus distant via APC Early Bird pour couper la capture de télémétrie par l'EDR. (MITRE ATT&CK TTP: T1055.004)
  4. Lance un processus sacrifié comme processus cible, sans perturber les processus déjà ouverts dans l'environnement.
  5. Politique d'atténuation ACG (Arbitrary Code Guard)/BlockDll sur le processus sacrifié lancé.
  6. Usurpation de PPID (MITRE ATT&CK TTP: T1134.004)
  7. Résolution d'API et de DLL depuis TIB (directement via offset (depuis TIB) -> TEB -> PEB -> résoudre Nt Api) (MITRE ATT&CK TTP: T1106)
  8. Hachage Nt API maudit (MITRE ATT&CK ID: S0574)

Bonus : Avec privilège Admin =>

  1. Désactive le journal des événements en tuant les threads du service EventLog (MITRE ATT&CK TTP: T1562.002)

Inconvénient : Si les threads sont repris, tous les événements survenus pendant la suspension du journal des événements sont à nouveau enregistrés !

Donc, j'ai pensé à les tuer à la place !

"C'est plus invasif que la suspension, mais la décision revient toujours à l'opérateur. De plus, tuer des threads est journalisé au niveau du noyau" - @SEKTOR7net

Alors que tuer uniquement ces threads dans l'implant syscall indirect posait une erreur. Je n'ai pas pu obtenir la valeur SubProcessTag de "eventlog". J'ai donc pensé à tuer tous les threads, c'est-à-dire tuer tout le processus (le svchost.exe responsable). Oui, créer un IOC !.

=

1. Contournement des hooks EDR/Ring-3/UserLand

2. Le syscall et l'instruction return sont exécutés depuis la mémoire de ntdll.dll

3. La détection EDR basée sur la vérification de l'adresse de retour dans la pile d'appels peut être contournée.

Compilation :

Directement via le compilateur VS :

image

Ajoutez également le flag du compilateur /MT ! => Pour lier statiquement les fonctions CRT dans un binaire (Oui, vous l'avez deviné, cela gonfle l'implant)

image

  1. Aussi via compile.bat (préférez l'option 1.)
./compile.bat

Utilisation :

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

En action :

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

Exécution réussie sans créer d'alerte sur le point de terminaison Sophos XDR :

SofosXDREvade


Améliorations futures :

  1. Usurpation de PPID (méthode Emotet)
  2. Cas d'utilisation beaucoup plus furtif de désactivation du journal des événements !

Portions du code et liens qui ont aidé :

  1. TIB :

    • https://en.wikipedia.org/wiki/Win32_Thread_Information_Block
    • https://www.wikiwand.com/en/Win32_Thread_Information_Block
  2. Registres GS et 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. Structure PEB LDR :

    • BlackHat - What Malware Authors Don't Want You to Know - Evasive Hollow Process Injection par @monnappa22

    • Une image de la mémoire du processus depuis le lien ci-dessus :
      alt text

    • Depuis labs.cognisys.group, un blog de @D1rkMtr :
      alt text

  4. TIB -> TEB -> PEB -> Résoudre Nt API et hachage d'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, un blog de @D1rkMtr

    • Une image de l'extrait du lien ci-dessus, que j'ai utilisé ici pour résoudre dynamiquement l'API sans coder en dur les offsets :
      alt text

    • Le code de hachage d'API que j'ai appliqué :


#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. Politique d'atténuation ACG (Arbitrary Code Guard)/BlockDll :

    • liens :
    • Protecting Your Malware par @xpn
    • Wraith par @winterknife
    • spawn et HOLLOW par @0xBoku alt text
  2. Détection de l'usurpation de PPID :

    • PPID Spoofing Detect par @spotheplanet
    • Si j'ai le temps, j'ajouterai une partie de détection à cette section ! -> [Restant................................................!]
  3. Détection Moneta et PESieve :\

    • Moneta :
      alt text
Télécharger l’outil