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
revsuit — RevSuit est une plateforme de connexion inverse flexible et puissante conçue pour recevoir des connexions depuis un hôte cible lors d'une pénétration. | Kitploit
Outils/GitHubGitHub/li4n0/revsuit
Frameworks de Tests d'IntrusionReconnaissanceAnalyse des VulnérabilitésExploitationCollecte d'InformationsSécurité WebTests d'IntrusionAnalyse DNS
GitHubli4n0/revsuit

revsuit

RevSuit est une plateforme de connexion inverse flexible et puissante conçue pour recevoir des connexions depuis un hôte cible lors d'une pénétration.

Voir le dépôt
5646915il y a 3 ansVé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

RevSuit - Une plateforme de connexion inverse flexible et puissante

English |简体中文

Aperçu

RevSuit est une plateforme de connexion inverse flexible et puissante conçue pour recevoir des connexions depuis un hôte cible lors de tests de pénétration. Elle prend actuellement en charge les protocoles HTTP, DNS, RMI, LDAP, MySQL et FTP.

Flexible :

  1. RevSuit peut définir des règles flexibles pour capturer différentes connexions.
  2. Déploiement et exécution via des binaires sans se soucier des problèmes de dépendances.

Puissant :

  1. Permet de personnaliser la réponse pour différentes connexions grâce à des règles et prend en charge la génération dynamique de réponses à l'aide de variables de template.
  2. Prend en charge une variété de protocoles, ainsi que l'utilisation avancée de certains d'entre eux, comme le DNS rebinding, MySQL Load Local Data, JDBC Deserialize Exploit, FTP Passive Mode SSRF, etc.
  3. Prise en charge native pour une utilisation avec des scanners.
  4. Prise en charge des notifications push vers les logiciels de bureautique populaires.
  5. Autres fonctionnalités réfléchies et détaillées.

Utilisation de base

Installation et configuration

Téléchargez la dernière version directement ou construisez-la en suivant les étapes :

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git cd revsuit/frontend && yarn install && yarn build cd ../ && go build ./cmd/revsuit/revsuit.go

RevSuit générera un fichier de configuration par défaut lors du premier lancement. Modifiez le fichier de configuration selon vos besoins, puis relancez-le. Une description détaillée du fichier de configuration se trouve ici : Configuration Notes

Exécution

Pour confirmer la localisation IP, il est nécessaire d'utiliser une base de données de localisation IP. QQwry est utilisé comme source de données par défaut, vous pouvez également modifier la configuration pour utiliser GeoIP. Si la base de données sélectionnée n'est pas disponible dans le répertoire actuel ou si la base de données est mise à jour depuis plus d'une semaine, RevSuit téléchargera automatiquement la dernière base de données. Si le téléchargement échoue, le champ IpArea sera toujours null.

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53

Après l'exécution, vous pouvez visiter le chemin /revsuit/admin/ du serveur HTTP et entrer le token pour accéder au panneau de contrôle.

Créer des règles et recevoir des connexions

Prenons l'exemple de la création de règles HTTP :

Quelques remarques :

  1. Les champs name et flagFormat d'une règle sont uniques.
  2. FlagFormat utilise une syntaxe d'expression régulière, et pour différents protocoles, les champs correspondant à flagFormat sont différents. Vous pouvez consulter les indications correspondantes pour obtenir des détails lors de la création de règles.
  3. Les règles avec un rang élevé prennent effet en premier.
  4. Pour différentes règles de protocole, vous pouvez créer des réponses personnalisées différentes, et pour certains protocoles, des variables de template peuvent être utilisées.
  5. Vous pouvez définir des groupes nommés d'expressions régulières dans flagFormat, et le résultat du groupe correspondant sera également utilisé comme variable de template.

Comme illustré ci-dessous, nous créons une règle qui utilise les variables de template intégrées et personnalisées du protocole http, et nous la nommons test_create_rule :

img.png

Ensuite, effectuez une requête qui satisfait la règle et visualisez la réponse.

img.png

La requête sera enregistrée sur la plateforme en même temps.

img.png

Notification

Si vous souhaitez être notifié des nouvelles connexions sur votre logiciel de bureautique, vous pouvez configurer l'adresse webhook du logiciel concerné dans le fichier de configuration et activer le commutateur Notice pour la règle correspondante. Actuellement, seuls quatre types de logiciels sont pris en charge : dingtalk, wechat, lark, slack. (La prise en charge de Discord et Telegram est prévue.)

Importer/Exporter des règles

Si vous migrez des plateformes ou purgez des données, il peut être fastidieux de recréer des règles. C'est pourquoi la plateforme prend en charge l'import et l'export de règles.

Le point d'entrée de cette fonction se trouve dans Settings>RULES.

Les règles sont stockées au format yaml pour l'import et l'export, comme suit :

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: Hello Revsuit!
dns:
  ... ...

Utilisation avancée

Utilisation avec un scanner

RevSuit a été extrait de mon projet de scanner, donc sa prise en charge native fonctionne avec les scanners.

Du point de vue de RevSuit, nous appelons un scanner un client.

Établir une connexion

RevSuit utilise les Server-sent Events HTTP (SSE) pour établir un canal de communication unidirectionnel avec le client.

L'API pour le canal est : /revsuit/api/events?message. Le client doit d'abord ajouter l'en-tête Token: votre_token à l'en-tête, puis accéder à l'API pour établir le canal. Lorsque la plateforme reçoit une nouvelle connexion, le flag capturé par la règle sera transmis au client via ce canal. img.png

Voici une démo simple utilisant la bibliothèque sse de Golang comme exemple.

Multi-client

Comme indiqué ci-dessus, RevSuit prend en charge plusieurs clients, et chaque client à l'état connecté reçoit une poussée de flag, ce qui permet de prendre en charge le scan distribué.

Si vous ne souhaitez pas que chaque client reçoive toutes les poussées de flag, vous pouvez utiliser l'en-tête de requête Flag-Filter lors de la création d'une connexion sse pour définir le format (expressions régulières) du flag que vous souhaitez que ce client reçoive :

img.png

File d'attente de stockage temporaire

RevSuit stockera temporairement le flag dans la file d'attente lorsqu'il n'y a pas de connexion client et l'enverra lorsque le client se connectera, afin que vous n'ayez pas à craindre de manquer la vulnérabilité parce que le client se déconnecte. (Ceci est particulièrement utile pour découvrir les vulnérabilités déclenchées par un délai.)

Utiliser flagGroup

Dans un scénario réel de scan de vulnérabilités, vous pouvez envoyer un grand nombre de payloads différents pour un seul point de vulnérabilité, et ils peuvent tous être valides, ce qui peut entraîner la réception de nombreuses requêtes par la plateforme de retour, bien qu'elles soient causées par la même vulnérabilité. Si vous ne souhaitez pas que le client reçoive autant de flags pour la même vulnérabilité, vous pouvez profiter de la fonctionnalité flagGroup du flagFormat de la règle.

FlagGroup est le contenu correspondant au groupe anonyme dans le champ flagFormat de la règle. La plateforme vérifiera le contenu correspondant dans le groupe, et le flag n'est poussé vers le client que lorsque le contenu (flagGroup) est capturé pour la première fois.

Par exemple, le scan SSRF.

Créez d'abord une règle comme suit :

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "Here is a SSRF!"

Supposons que notre cible soit https://www.testvuln.com?url=api.com&p=useless, et pour SSRF nous avons 5 payloads. La requête finale envoyée par le scanner peut être ['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless']. Ils peuvent tous attaquer avec succès.

Cependant, comme un groupement anonyme est utilisé dans le flagFormat de la règle, la plateforme interrogera le flagGroup connecté, dans ce cas ssrfa98oni, et poussera le flag vers le client uniquement lors de sa première apparition, de sorte que le client ne recevra qu'un seul flag : ssrfa98oni1. Cela prouve déjà que le paramètre url de la cible est vulnérable.

Collaboration multi-modules

Dans les scénarios réels de tests de pénétration, certaines tâches peuvent être effectuées facilement et rapidement en combinant et en faisant correspondre divers modules de RevSuit. Voici un exemple d'XXE aveugle dans une application web Java, montrant comment utiliser les modules HTTP et FTP de RevSuit, combinés avec des variables de template, pour effectuer rapidement un scan de ports.

Créez d'abord une règle HTTP pour retourner evil.dtd, personnalisez la réponse avec le contenu du dtd afin qu'il se connecte au service FTP de RevSuit, et utilisez des variables de template pour passer l'hôte et le port à scanner au FTP via l'utilisateur et le mot de passe FTP.

create evil.dtd rule

Créez ensuite une règle FTP qui reçoit l'hôte et le port à scanner à partir des variables de template utilisateur et mot de passe, définies sur l'adresse Pasv.

create ftp scan rule

Utilisez ensuite BurpSuit pour lancer le scan, en définissant les paramètres d'hôte et de port dans l'URL evil.dtd pour définir la cible du scan de ports.

xxe

L'effet d'exécution est le suivant :

ftp-scan

Étant donné que la connexion FTP échouera si l'Adresse Passive n'est pas accessible, nous pouvons déterminer si le port est ouvert ou non en fonction de si la connexion se termine normalement. Pour cet exemple, nous avons détecté avec succès que les ports 8005 et 8080 sont ouverts.

Plus d'utilisations

Un wiki plus détaillé est en préparation, vous pouvez explorer par vous-même en attendant.

Retour, Suggestions et Communication

Soumettez un problème ou contactez-moi via Weixin : TGk0bjA2Cg==

Remerciements

Référence

Ce projet s'inspire du code des projets remarquables suivants :

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

Spécifiquement

Merci à mon ami @E99p1ant pour toute l'aide et les conseils que j'ai reçus lors du développement de ce projet.

Licence

@Apache License 2.0

Télécharger l’outil