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

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
--lfipour les inclure dans l'analyse.
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.
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.
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.
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
$ git clone https://github.com/VainlyStrain/Vailyn
Une fois sur votre système, vous devrez installer les dépendances Python.
Sur les systèmes Unix, il suffit d'exécuter
$ pip install -r requirements.txt # --user
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.
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
$ python Vailyn -h
Vailyn a 3 arguments obligatoires : -v VIC, -a INT et -p2 TP P1 P2. Cependant, selon -a, d'autres arguments peuvent être nécessaires.
, \ / ,
':. \. /\. ./ .:'
':;. :\ .,:/ ''. /; ..::'
',':.,.__.'' ' ' `:.__:''.:'
';.. ,;' *
* '., .:'
`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.