Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
DutchOven — Dégradations réseau Windows ciblées par application, en C natif et sous forme de BOF | Kitploit
Outils/GitHubGitHub/loosehose/dutchoven
Post-ExploitationSécurité RéseauRed TeamingIngénierie du ChaosAttaque Adversariale
GitHubloosehose/dutchoven

DutchOven

Dégradations réseau Windows ciblées par application, en C natif et sous forme de BOF

Voir le dépôt
1il y a 2 joursPas encore vérifié

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 →
Partager

Logo de cocotte rouge DutchOven

DutchOven

Dégradations réseau Windows limitées à des applications pour une validation red team déterministe.

C natif  •  Windows Filtering Platform  •  IPv4 + IPv6  •  Nettoyage dynamique

Démarrage rapide • Profils • CLI • Fonctionnement • Compilation • BOF • Validation

[!CAUTION] Environnements contrôlés uniquement. Exécutez DutchOven uniquement sur des systèmes que vous possédez ou que vous êtes explicitement autorisé à évaluer. Il modifie la stratégie réseau Windows en direct et nécessite un jeton Administrateur élevé. Consultez SECURITY.md avant toute utilisation.

Qu'est-ce que DutchOven ?

DutchOven est une primitive red team Windows volontairement minimale qui place des chemins exécutables explicites derrière une porte réseau déterministe. À chaque période, les applications correspondantes sont bloquées pendant un intervalle borné puis autorisées à passer pour le reste de la période.

Le résultat est un brownout reproductible, et non un arrêt de service ou une règle de pare-feu permanente. Cela crée un moyen contrôlé de mesurer la logique de nouvelle tentative, la mise en tampon, les transitions d'état de santé, la livraison différée et le comportement de récupération pendant qu'un processus reste actif.

DutchOven contrôle l'autorisation des nouvelles connexions sortantes. Une connexion existante déjà autorisée par WFP n'est pas interrompue rétroactivement ; utilisez une nouvelle connexion canari ou forcez indépendamment la cible à se reconnecter pour valider un flux longue durée ininterrompu.

Démarrage rapide

Ouvrez une fenêtre PowerShell avec élévation de privilèges.

Validez la cible résolue et le minutage sans modifier WFP :

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --dry-run

Exécutez le profil brownout par défaut :

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe'

C'est l'invocation minimale complète. --app est le seul paramètre requis. Le profil par défaut bloque la cible pendant 1,5 seconde à chaque période de 5 secondes et se termine après une minute.

Utilisez Ctrl+C pour arrêter prématurément. DutchOven supprime les filtres actifs avant de fermer sa session WFP ; la session dynamique constitue le filet de sécurité de nettoyage si le processus est interrompu.

Profils d'exploitation

Les profils intègrent des calendriers utiles afin que les opérateurs n'aient pas à spécifier chaque valeur de minutage.

Sélectionnez un profil avec un seul paramètre facultatif :

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy

Référence CLI

root@kitploit:~
dutchoven --app <absolute.exe> [--app <absolute.exe> ...] [options]

Affichez la version du binaire avec dutchoven version.

Les paramètres de minutage avancés remplacent le profil sélectionné quel que soit l'ordre des arguments :

root@kitploit:~
.\dutchoven.exe `
  --app 'C:\Path\To\Target.exe' `
  --period-ms 8000 `
  --block-ms 2000 `
  --duration-ms 120000 `
  --warmup-ms 5000

Les lignes JSON sont destinées aux bancs de test et à la collecte de preuves :

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy --json

Les limites de minutage sont appliquées par l'analyseur :

  • Période : 100–60000 ms
  • Blocage : de 1 ms à la période complète
  • Durée : au moins une période, au plus 900000 ms (15 minutes)
  • Préchauffage : au plus 60000 ms
  • Cibles : au plus 16 chemins exécutables locaux explicites

Fonctionnement

root@kitploit:~
explicit executable path
          │
          ▼
   WFP application ID
          │
          ├── ALE_AUTH_CONNECT_V4 ──┐
          └── ALE_AUTH_CONNECT_V6 ──┤── BLOCK / PASS schedule
                                    │
                                    └── dynamic WFP session cleanup
  1. DutchOven résout chaque exécutable fourni en une identité d'application WFP.
  2. Il ouvre une session de moteur WFP dynamique non persistante et crée une sous-couche générée.
  3. Au début d'un intervalle de blocage, les filtres IPv4 et IPv6 sont ajoutés en une seule transaction.
  4. Au début d'un intervalle d'autorisation, ces filtres sont supprimés en une seule transaction.
  5. À la fin ou à une interruption normale, DutchOven supprime les filtres actifs et ferme le moteur.

Les cibles Windows sont résolues en Unicode et canonisées selon leur chemin long avant que DutchOven ne demande une identité d'application à WFP. Cela évite qu'un alias de chemin 8.3 tel que ADMINI~1 ne crée silencieusement un filtre incapable de correspondre à l'identité d'image au format long du processus.

La console affiche les transitions d'état avec des horodatages en temps réel et relatifs au calendrier :

root@kitploit:~
Targets: 1
  C:\Path\To\Target.exe
Schedule: block=1500ms pass=3500ms period=5000ms duration=60000ms warmup=0ms
Profile: brownout
Mode: brownout
BLOCK cycle=1 filters=2 wall_ms=1786973903811 elapsed_ms=0
PASS cycle=1 wall_ms=1786973908813 elapsed_ms=5000
...
CLEAN filters=0 session=closed cycles=12 wall_ms=1786973963812 elapsed_ms=60000

Compilation

La compilation Linux par défaut exerce l'analyse et le comportement dry-run. La porte WFP en direct nécessite la compilation croisée native Windows.

root@kitploit:~
make check
make release

make check exécute les tests portables, compile en croisé les artefacts Windows et vérifie le contrat d'importation du BOF. make release produit des artefacts de version allégés et SHA256SUMS sous artifacts/v<version>/.

Sorties principales :

L'exécutable Windows ne lie que les bibliothèques système Windows : fwpuclnt, rpcrt4 et advapi32.

Fichier d'objet Beacon

Le BOF empaquette DutchOven en une impulsion synchrone courte qui s'exécute de manière inline dans un Beacon x64. Compilez l'objet COFF, actualisez l'artefact versionné et vérifiez son contrat d'importation avec :

root@kitploit:~
make bof

Chargez bof/dutchoven.cna dans le Script Manager de Cobalt Strike, puis invoquez-le depuis une console Beacon :

root@kitploit:~
dutchoven "C:\Path\To\Target.exe"
dutchoven "C:\Path\To\Target.exe" heavy

Le profil par défaut est brownout. Les profils correspondent à un unique intervalle de blocage borné :

ProfilImpulsion
light0,5 s
brownout1,5 s
heavy

Chaque invocation ouvre une session WFP dynamique, installe atomiquement les filtres de connexion IPv4 et IPv6, attend l'impulsion sélectionnée, supprime explicitement les deux filtres puis ferme la session avant de retourner. La fermeture de la session dynamique reste le filet de sécurité de nettoyage si la suppression explicite échoue.

Le BOF utilise la résolution dynamique de fonctions pour Kernel32, Rpcrt4 et Fwpuclnt ; il ne comporte aucune importation de runtime C. Il accepte un chemin exécutable absolu existant, requiert un Beacon avec élévation de privilèges et refuse de contrôler le processus hébergeant le BOF. Parce qu'il s'exécute de manière inline, il ne reproduit volontairement pas le planificateur multi-cycles d'une minute du binaire autonome.

Workflow de validation

Un résultat red team utile nécessite des preuves indépendantes. Ne considérez pas un appel d'ajout de filtre réussi comme la preuve que la cible a subi la dégradation prévue.

  1. Sélectionnez une application canari bénigne dont le comportement réseau est observable.
  2. Enregistrez une référence (baseline) sans blocage.
  3. Exécutez DutchOven avec une application de contrôle sans rapport en parallèle.
  4. Mesurez à la fois les nouvelles tentatives de connexion et une connexion déjà établie.
  5. Capturez indépendamment les horodatages clients, les horodatages serveurs et les paquets.
  6. Confirmez que le contrôle est resté insensible et que chaque intervalle d'autorisation a récupéré.
  7. Confirmez qu'aucun filtre DutchOven ne subsiste après une sortie normale et une terminaison forcée.

Le dépôt comprend un banc de test d'intégration Windows qui automatise ces assertions avec deux copies d'un canari TCP inoffensif. Il requiert une session PowerShell avec élévation de privilèges et un écouteur TCP non local joignable ; le trafic en boucle locale n'est pas un substitut valide pour la validation WFP routée.

root@kitploit:~
.\tests\windows_integration.ps1 `
  -DutchOvenPath '.\build-windows\dutchoven.exe' `
  -CanaryPath '.\build-windows\windows_canary.exe' `
  -ServerAddress '192.0.2.10' `
  -ServerPort 8443

Le banc de test prouve la connectivité de référence, le blocage ciblé, un contrôle insensible, la récupération normale, la récupération après terminaison forcée via la session dynamique et l'absence totale de résidu WFP.

Comportement vérifié

DutchOven 0.4.1 a été validé sur Windows Server 2022 avec Elastic Defend 9.4.2 :

  • six filtres actifs couvraient IPv4 et IPv6 pour trois chemins exécutables Elastic explicites ;
  • après avoir forcé de nouvelles connexions, les connexions backend ciblées sont tombées à zéro tandis qu'un contrôle PowerShell sans rapport atteignait toujours les deux ports backend ;
  • les services Elastic sont restés actifs pendant toute la coupure bornée ;
  • DutchOven s'est terminé correctement et les vidages d'état WFP indépendants n'ont trouvé aucun filtre, session ou sous-couche résiduel ; et
  • toutes les connexions des agents et la santé de Fleet ont récupéré.

Elastic a enregistré le démarrage du processus DutchOven, sa fin, l'identité SYSTEM et la ligne de commande complète, puis a livré la télémétrie mise en tampon après la récupération. Cela n'a produit aucune alerte Elastic Defend dans cette configuration. Considérez ceci comme un résultat mesuré unique, et non comme une affirmation universelle de détection ou de contournement.

Limites opérationnelles

DutchOven ne fait volontairement pas :

  • énumérer les produits de sécurité installés ;
  • déduire les chemins exécutables ou la propriété des processus ;
  • arrêter, suspendre ou modifier des services ;
  • installer un service, un pilote, un mécanisme de persistance ou un filtre au démarrage ;
  • modifier les profils du pare-feu Windows, la stratégie de groupe ou l'état du registre policy-QoS ;
  • usurper le protocole d'un agent commercial ; ou
  • revendiquer des résultats de télémétrie côté fournisseur sans preuves backend indépendantes.

Les droits Administrateur sont requis car l'ajout d'objets WFP nécessite un accès en écriture au moteur de filtrage de base. L'identité d'application doit correspondre à l'exécutable qui possède réellement le flux réseau. Les agents multiprocessus, les proxys, la mise en réseau par noyau et les connexions longue durée peuvent modifier le résultat observé et doivent être mesurés plutôt que supposés.

Structure du dépôt

Télécharger l’outil
Choix de conceptionValeur pour l'opérateur
Filtres WFP limités à l'applicationLimite l'expérience aux chemins fournis par l'opérateur
Cycle bloqué/autorisation minutéProduit une dégradation mesurable au lieu de seulement des états en ligne/hors ligne
Changements IPv4 et IPv6 atomiquesMaintient les deux familles d'adresses sur le même calendrier
Session WFP dynamiqueSupprime les filtres et la sous-couche générée lorsque la session du moteur se ferme
Implémentation en C natifAucune dépendance à Go, .NET, une installation de service ou un pilote personnalisé
Cibles explicites uniquementAucune énumération de produits, aucune supposition de processus ni base de données de cibles intégrée
ProfilBlocageAutorisationPériodeDuréeUsage prévu
light0,5 s4,5 s5 s60 sObservation des nouvelles tentatives à faible impact
brownout1,5 s3,5 s5 s60 sExpérience équilibrée par défaut
heavy3,5 s1,5 s5 s60 sTest de file d'attente et de pression de récupération
blackout5 s0 s5 s30 sInterruption totale courte et bornée
ParamètreRequisDescription
--app <absolute.exe>OuiChemin de l'exécutable cible ; répétez pour les applications multiprocessus
--profile <name>Nonlight, brownout, heavy ou blackout
--period-ms <ms>NonRemplace la période complète blocage/autorisation
--block-ms <ms>NonRemplace la portion bloquée de chaque période
--duration-ms <ms>NonRemplace la durée totale bornée
--warmup-ms <ms>NonAutorise le trafic avant le premier intervalle de blocage
--dry-runNonValide et affiche la configuration sans ouvrir WFP
--jsonNonÉmet la configuration et les transitions d'état en JSON Lines
--helpNonAffiche l'aide de la commande
ArtefactObjectif
build/dutchovenAnalyseur POSIX et binaire dry-run
build/dutchoven_testsTests unitaires principaux
build-windows/dutchoven.exePorte WFP Windows native
build-windows/dutchoven_tests.exeBinaire de test Windows natif
build-windows/windows_canary.exeCanari de test d'intégration routé
bof/dutchoven.x64.oFichier d'objet Beacon x64 versionné
artifacts/v<version>/EXE de version allégé, BOF et sommes de contrôle
3,5 s
blackout5 s
CheminContenu
src/main.cPoint d'entrée minimal en ligne de commande
src/gate.cPorte WFP, profils, minutage et nettoyage
tests/test_gate.cTests de l'analyseur, des profils et des limites
tests/windows_canary.cCanari TCP inoffensif pour les tests d'intégration Windows routés
tests/windows_integration.ps1Banc de test d'intégration WFP avec nettoyage normal et forcé
bof/Source du BOF x64, wrapper Aggressor et vérificateur de contrat