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
Outils/GitHubGitHub/codingo/interlace
ReconnaissanceScripting et AutomatisationTests d'IntrusionUtilitaires et Frameworks
GitHubcodingo/interlace

Interlace

Transformez facilement des applications en ligne de commande monothread en une application multithread rapide avec support CIDR et glob.

Voir le dépôt
1.3k188il y a 11 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 →
Partager
Interlace — Transformez facilement des applications en ligne de commande monothread en une application multithread rapide avec support CIDR et glob. | Kitploit

Interlace

Transformez facilement des applications en ligne de commande monothread en une application rapide et multithread avec le support CIDR et glob.

Python 3.2|3.6 License Twitter Twitter

Critiques / Guides pratiques

Interlace : un outil pour automatiser et multithreader facilement votre workflow de pentesting et bug bounty sans aucun code

Table des matières

  • Installation
  • Utilisation - Options
  • Exemples d'utilisation
  • Explication de la notation des ports
  • Explication de la notation des cibles
  • Support du threading pour une application qui ne le supporte pas
  • Notation CIDR pour une application qui ne la supporte pas
  • Notation GLOB pour une application qui ne la supporte pas
  • Support de plusieurs proxys pour une application qui ne le supporte pas
  • Remplacements de variables
  • Utilisation avancée d'un fichier de commandes
  • Utilisation avancée : Bloqueur
  • Utilisation avancée : Blocs
  • Exclusions

Installation

Installez avec :

root@kitploit:~
$ python3 setup.py install

Les dépendances seront alors installées et Interlace sera ajouté à votre PATH sous le nom interlace.

Utilisation

Informations complémentaires concernant les ports

ExempleType de notation
80Port unique
1-80Notation par tiret, exécute une commande pour chaque port de 1 à 80
80,443Exécute une commande pour le port 80 et le port 443

Informations complémentaires concernant les cibles

-t et -tL seront traités de la même manière. Vous pouvez passer des cibles comme vous le feriez avec nmap. Cela peut être fait en utilisant la notation CIDR, la notation par tiret, ou une liste délimitée par des virgules. Un seul fichier de liste de cibles peut également utiliser différents types de notation par ligne.

Alternativement, vous pouvez passer des cibles via STDIN et ni -t ni -tL ne seront nécessaires.

Remplacements de variables

Les variables suivantes seront remplacées dans les commandes à l'exécution :

Utilisation avancée d'un fichier de commandes

Interlace permet également l'utilisation de deux fonctionnalités supplémentaires pour contrôler le flux d'exécution dans un fichier de commandes : _blocker_ et _block:<name>_. Les bloqueurs empêchent l'exécution des commandes listées après eux, jusqu'à ce que toutes les commandes avant eux soient terminées, et les blocs peuvent être utilisés pour forcer l'exécution séquentielle des commandes listées dans un bloc, pour une cible.

Ces fonctionnalités sont exécutées par cible. Si des threads sont disponibles et qu'un bloqueur bloque la cible actuelle, Interlace commencera les commandes de la cible suivante dans la liste des cibles afin de maximiser l'efficacité.

L'utilisation de ces fonctionnalités vous permettra de contrôler plus directement le flux d'exécution pour des cibles individuelles afin d'empêcher les commandes de s'exécuter dans le désordre.

Bloqueur

Les bloqueurs empêchent tout ce qui se trouve en dessous de s'exécuter jusqu'à ce que toutes les commandes au-dessus d'eux soient terminées (pour l'hôte actif). Par exemple, dans ce qui suit :

root@kitploit:~
mkdir -p _output_/_target_/scans/
_blocker_
nmap _target_ -oA _output_/_target_/scans/_target_-nmap

L'utilisation d'un bloqueur ici empêche nmap de s'exécuter sur une cible avant que la structure de dossiers de base n'ait été créée, empêchant nmap de lever une exception.

Blocs

Les blocs forcent tout ce qui se trouve à l'intérieur à s'exécuter séquentiellement. Vous pouvez également utiliser plusieurs blocs par fichier de commandes. Par exemple, dans ce qui suit :

root@kitploit:~
_block:nmap_
mkdir -p _target_/output/scans/
nmap _target_ -oN _target_/output/scans/_target_-nmap
_block:nmap_
nikto --host _target_

Dans cet exemple, le bloc s'exécuterait comme avant, mais en supposant que le nombre de threads est suffisamment élevé, nikto commencerait à s'exécuter immédiatement, renvoyant les résultats dans le terminal (tandis que nmap et la création de fichiers se déroulent en arrière-plan).

Exemples d'utilisation

Exécuter Nikto sur plusieurs sites

Supposons que vous ayez un fichier targets.txt contenant ce qui suit :

root@kitploit:~
bugcrowd.com
hackerone.com

Vous pourriez utiliser Interlace pour exécuter sur n'importe quel nombre de cibles dans ce fichier en utilisant :

root@kitploit:~
➜  /tmp interlace -tL ./targets.txt -threads 5 -c "nikto --host _target_ > ./_target_-nikto.txt" -v
=========================================================================
Interlace v1.0	by Michael Skelton (@codingo_) & Sajeeb Lohani (@sml555_)
=========================================================================
[14:33:23] [THREAD] [nikto --host hackerone.com > ./hackerone.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host bugcrowd.com > ./bugcrowd.com-nikto.txt] Added to Queue 

Cela exécuterait Nikto sur chaque hôte et sauvegarderait dans un fichier pour chaque cible. Notez que dans l'exemple ci-dessus, comme nous utilisons l'opérateur >, les résultats ne seront pas renvoyés dans le terminal ; cependant, cela est une fonctionnalité souhaitée car autrement nous ne pourrions pas attribuer à quelle cible les résultats de Nikto appartiennent.

Pour les applications où vous souhaitez un retour, passez les commandes comme d'habitude (ou utilisez tee).

Exécuter Nikto sur plusieurs sites et ports

En reprenant l'exemple ci-dessus, supposons que vous souhaitiez exécuter des scans indépendants pour les ports 80 et 443 sur les mêmes cibles. Vous utiliseriez alors la commande suivante :

root@kitploit:~
➜  /tmp interlace -tL ./targets.txt -threads 5 -c "nikto --host _target_:_port_ > ./_target_-_port_-nikto.txt" -p 80,443 -v
=========================================================================
Interlace v1.0	by Michael Skelton (@codingo_) & Sajeeb Lohani (@sml555_)
=========================================================================
[14:33:23] [THREAD] [nikto --host hackerone.com:80 > ./hackerone.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host bugcrowd.com:80 > ./hackerone.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host bugcrowd.com:443 > ./bugcrowd.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host hackerone.com:443 > ./hackerone.com-nikto.txt] Added to Queue 

Exécuter une liste de commandes sur des hôtes cibles

Souvent, lors de tests d'intrusion, il y a une liste de commandes que vous souhaitez exécuter sur presque chaque mission. Supposons que cette liste inclue testssl.sh, nikto et sslscan. Vous pourriez sauvegarder une liste de commandes dans un fichier appelé commands.txt :

root@kitploit:~
nikto --host _target_:_port_ > _output_/_target_-nikto.txt
sslscan _target_:_port_ >  _output_/_target_-sslscan.txt
testssl.sh _target_:_port_ > _output_/_target_-testssl.txt

Si l'on vous donne alors une cible example.com, vous pourriez exécuter chacune de ces commandes sur cette cible en utilisant la commande suivante :

root@kitploit:~
interlace -t example.com -o ~/Engagements/example/ -cL ./commands.txt -p 80,443

Cela exécuterait nikto, sslscan et testssl.sh pour les ports 80 et 443 sur example.com et sauvegarderait les fichiers dans votre dossier d'engagements.

Notation CIDR avec une application qui ne la supporte pas

Interlace étend automatiquement la notation CIDR lorsqu'il lance des threads (sauf si le drapeau --no-cidr est passé). Cela vous permet de passer une notation CIDR à diverses applications :

Pour exécuter un scan d'hôte virtuel sur chaque cible dans 192.168.12.0/24 en utilisant une commande directe, vous pourriez utiliser :

root@kitploit:~
interlace -t 192.168.12.0/24 -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Ceci bien que VHostScan n'ait aucun support intégré de notation CIDR. Puisqu'Interlace étend la notation avant de construire une file d'attente de threads, VHostScan ne reçoit en réalité qu'une liste d'adresses IP directes à scanner.

Notation Glob avec une application qui ne la supporte pas

Interlace étend automatiquement les plages glob lorsqu'il lance des threads. Cela vous permet de passer des plages glob à diverses applications :

Pour exécuter un scan d'hôte virtuel sur chaque cible dans 192.168.12.* en utilisant une commande directe, vous pourriez utiliser :

root@kitploit:~
interlace -t 192.168.12.* -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Encore une fois, VHostScan n'a aucun support intégré de plage glob.

Notation par tiret (-) avec une application qui ne la supporte pas

Interlace étend automatiquement les plages par tiret lorsqu'il lance des threads. Cela vous permet de passer des plages par tiret à diverses applications :

Pour exécuter un scan d'hôte virtuel sur chaque cible dans 192.168.12.1-15 en utilisant une commande directe, vous pourriez utiliser :

root@kitploit:~
interlace -t 192.168.12.1-15 -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Encore une fois, VHostScan n'a aucun support intégré de plage par tiret.

Support du threading pour une application qui ne le supporte pas

Exécutez un scan d'hôte virtuel sur chaque hôte dans un fichier (target-list.txt), tout en limitant les scans à 50 threads maximum à la fois.

Cela pourrait être fait en utilisant une commande directe :

root@kitploit:~
interlace -tL ./target-list.txt -c "vhostscan -t _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Ou, alternativement, pour exécuter la même commande qu'au-dessus, mais en utilisant un fichier de commandes :

root@kitploit:~
interlace -cL ./vhosts-commands.txt -tL ./target-list.txt -threads 50 -o ~/scans

Cela suppose que le contenu du fichier de commandes est :

root@kitploit:~
vhostscan -t $target -oN _output_/_target_-vhosts.txt

Cela produirait un fichier pour chaque cible dans le dossier de sortie spécifié. Vous pourriez également exécuter plusieurs commandes simplement en les ajoutant dans le fichier de commandes.

Exclusions

Interlace exclut automatiquement tous les hôtes fournis lorsqu'ils sont spécifiés via les arguments -e ou -eL. Ces arguments sont également compatibles avec les notations de plage mentionnées ci-dessus (CIDR, glob et tiret).

Pour exécuter un scan d'hôte virtuel sur chaque cible dans la plage CIDR 192.168.12.0/24 mais pas pour les cibles dans la plage 192.168.12.0/26, en utilisant une commande directe, vous pourriez utiliser :

root@kitploit:~
interlace -t 192.168.12.0/24 -e 192.168.12.0/26 -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Exécuter Nikto en utilisant plusieurs proxys

En reprenant l'exemple ci-dessus, supposons que vous souhaitiez exécuter des scans indépendants via différents proxys pour les mêmes cibles. Vous utiliseriez alors la commande suivante :

root@kitploit:~
➜  /tmp interlace -tL ./targets.txt -pL ./proxies.txt -threads 5 -c "nikto --host _target_:_port_ -useproxy _proxy_ > ./_target_-_port_-nikto.txt" -p 80,443 -v

Auteurs et remerciements

Écrit à l'origine par Michael Skelton (codingo) et Sajeeb Lohani (sml555) avec l'aide de Charelle Collett (@Charcol0x89) pour le refactoring du threading et l'approche globale, et Luke Stephens (hakluke) pour les tests et l'approche.

Contributions

Les contributions à ce projet sont les bienvenues. Si vous êtes nouveau dans l'open source et souhaitez un peu d'aide pour le faire, n'hésitez pas à nous contacter sur Twitter (@codingo_) / (@sml555_) et nous vous assisterons autant que possible.

Télécharger l’outil
ArgumentDescription
(stdin)Transmettez des listes de cibles depuis une autre application au format délimité par des virgules, en notation CIDR, ou en tant qu'hôte individuel
-tSpécifiez une cible ou un nom de domaine soit au format délimité par des virgules, en notation CIDR, ou en tant qu'hôte individuel
-tLSpécifiez une liste de cibles ou de noms de domaine
-eSpécifiez une liste de cibles à exclure, soit au format délimité par des virgules, en notation CIDR, ou en tant qu'hôte individuel
-eLSpécifiez une liste de cibles à exclure
-threadsSpécifiez le nombre maximal de threads à exécuter simultanément (PAR DÉFAUT : 5)
-timeoutSpécifiez une valeur de timeout en secondes pour chaque thread (PAR DÉFAUT : 600)
-cSpécifiez une commande unique à exécuter sur chaque cible ou domaine
-cLSpécifiez une liste de commandes à exécuter sur chaque cible ou domaine
-oSpécifiez une variable de dossier de sortie qui peut être utilisée dans les commandes en tant que _output_
-pSpécifiez une liste de variables de port qui peut être utilisée dans les commandes en tant que _port_. Cela peut être un port unique, une liste délimitée par des virgules, ou une plage utilisant la notation par tiret
-pLSpécifiez une liste de proxies
--protoSpécifiez des protocoles qui peuvent être utilisés dans les commandes en tant que _proto_
-rpSpécifiez une variable de port réel qui peut être utilisée dans les commandes en tant que _realport_
-randomSpécifiez un répertoire de fichiers qui peuvent être utilisés aléatoirement dans les commandes en tant que _random_
--no-bar / --soberSi défini, la barre de progression sera supprimée
--no-cidrSi défini, la notation CIDR dans un fichier de cibles ne sera pas automatiquement étendue en hôtes individuels
--no-colorSi défini, les couleurs de premier plan ou d'arrière-plan seront supprimées
--silentSi défini, seules les informations importantes seront affichées, les bannières et autres informations seront masquées
-vSi défini, la sortie verbeuse sera affichée dans le terminal
VariableRemplacement
_target_Remplacé par la liste de cibles étendue sur laquelle le thread actuel s'exécute
_cleantarget_Remplacé par la cible nettoyée de http:// ou https://
_safe-target_Remplacé par la cible automatiquement échappée pour les commandes, empêchant l'exécution de sous-commandes
_host_Fonctionne comme _target_, et peut être utilisé indifféremment
_output_Remplacé par la variable de dossier de sortie d'Interlace
_port_Remplacé par la variable de port étendue d'Interlace
_realport_Remplacé par la variable de port réel d'Interlace
_proxy_Remplacé par la liste de proxies d'Interlace
_random_Remplacé par le fichier choisi aléatoirement d'Interlace