W3AF:Architecture

From aldeid
Jump to navigation Jump to search
This article needs to be translated
This article has been copied from the old wiki and is in french. It needs to be translated into english. If you wish to participate, please send a mail to (click to reveal email)

Architecture de W3AF

Organisation générale de W3AF

La navigation dans les menus de W3AF en mode console est organisée comme suit :

Plugins

Catégories de plugins

W3AF est composé de deux éléments: le coeur assure le fonctionnement de l'outil, et les plugins permettant l'ajout de fonctionnalités à W3AF. Les plugins sont classés dans une des catégories suivantes :

Ces catégories sont détaillées dans les paragraphes qui suivent.

Flux d'informations entre les plugins

Les flux d'informations au sein des plugins sont organisés comme suit :

  __________________________________________________________________________
 /                                                                          \
| +-------------------------------------+                                    |
| | [ DISCOVERY ] -----> [ BRUTEFORCE ] | -----> [ AUDIT ] -----> [ ATTACK ] |
| |               <-----                |                                    |
| +-------------------------------------+                                    |
 \__________________________________________________________________________/
                  ^ |               |                  |
                  | |               |                  |
                  | V               V                  V
                [ GREP ] -----> [ OUTPUT ] <----- [ EVASION ]

discovery

Ces plugins ont pour objectif de découvrir un maximum de pages susceptibles de constituer des points d'entrée (url, formulaires, etc.) pour les fournir aux plugins audit.

Nom du plugin Description Paramètres
MSNSpider Consulte la base MSN afin d'obtenir une liste de nouvelles URL. Recherche si l'hôte a un système de filtrage (IPS ou WAF).
  • resultLimit : valeur fixée par défaut à 300 correspondant au nombre de résultats à considérer
allowedMethods Enumère la liste des méthodes autorisées à partir d'une URL.
  • reportDavOnly : Fixé par défaut à "True". Si fixé à "True", seules les méthodes non-standards seront énumérées.
  • execOneTime : Fixé par défaut à "False". Si fixé à "True", seules les méthodes à la racine du site seront énumérées.
archiveDotOrg Consulte archive.org pour trouver de nouvelles pages à partir du site cible. Ce plugin accepte le paramètre suivant :
  • max_depth : Fixé à 3 par défaut. Correspond à la profondeur (récursion max) pour la recherche.
crossDomain Analyse le fichier crossdomain.xml utilisé par Flash. Utilisé comme ACL, ce fichier fournit des informations relatives aux domaines autorisés.
detectReverseProxy Tente d'évaluer si l'hôte est derrière un reverse proxy en envoyant une requête et en recherchant la chaîne "Via" dans l'en-tête de la réponse.
detectTransparentProxy Tente d'évaluer si un proxy transparent est installé en se connectant à une série d'adresses IP sur le port 80. Si toutes les requêtes retournent un socket ouvert (open), c'est le proxy qui répond.
digitSum A partir d'un fichier contenant des nombres (index1.php), tente de rechercher d'autres fichiers par incrémentation (index2.php, index3.php, etc.).
  • fuzzImages : Fixé par défaut à "False". Si fixé à "True", tous les fichiers (images, videos, zip, etc.) seront inclus.
  • maxDigitSections : Fixé par défaut à "4". Fixe le compteur maximum.
dnsWildcard Evalue si www.cible.com et cible.com retournent la même page.
domain_dot Construit une requête sur le nom de la cible avec un point à la fin de l'adresse (http://www.cible.com./) et analyse la réponse. Il arrive que dans certains cas de mauvaise configuration, il soit posssible de lire les fichiers sources du site.
dotNetErrors .aspx ou default~.aspx.
findBackdoor

Tente de trouver des portes dérobées web (web backdoors) et des terminaux web (web shells) à la racine du site fourni comme paramètre target. Par exemple, si le site cible est http://host.tld/w3af/, les adresses suivantes seront testées :

findCaptchas Identifie les images captcha sur les pages Web. Pour ce faire, les pages sont appelées deux fois, et les hashes d'images sont comparés. S'ils diffèrent, l'image est susceptible d'être générée aléatoirement et d'être un captcha.
findvhost Recherche des hôtes virtuels (virtual hosts) en comparant le paramètre Host de l'en-tête HTTP sur différentes pages. Si celui-ci est le même pour plusieurs sections du site (intranet vs. public), et que le serveur est mal configuré, il est possible de lister les virtual hosts. Ce plugin n'est pas basé sur les techniques DNS.
fingerGoogle Utilise l'API Google afin d'obtenir une liste d'utilisateurs d'un domaine.
  • fastSearch : Fixé à "False" par défaut. Lorsque la valeur du paramètre est à "True", effectue une recherche rapide mais la liste des adresses mail n'est pas exhaustive.
  • resultLimit : Fixé par défaut à "300". Définit la profondeur de la recherche en nombre de résultats.
  • key : clé de la licence pour l'utilisation de l'API Google.
fingerMSN Consulte la recherche MSN pour obtenir une liste d'utilisateurs d'un domaine.
  • resultLimit : Fixé par défaut à "300". Définit la profondeur de la recherche en nombre de résultats.
fingerPKS Recherche une liste d'adresse mail d'un domaine par interrogation des serveurs PGP PKS.
fingerprint_WAF Tente d'évaluer si un firewall applicatif Web (WAF: Web Application Firewall) est installé et tente d'en récupérer le nom et la version. L'évaluation repose sur la présence du plugin afd (Active Filter Detection).
fingerprint_os Tente une prise d'empreinte en utilisant le protocole HTTP. Pour le moment, l'implémentation est relativement simpliste. En effet, si les adresses http://host.tld/abc/def.html et http://host.tld/abc\def.html remontent la même page, le plugin détermine que le système installé est Windows.
frontpage_version Recherche des fichiers d'informations FrontPage (par exemple _vti_inf.html) et, le cas échéant, tente de déterminer la version de FrontPage.
ghdb Utilise la base de données GHDB (Google Hack DataBase mise à disposition par Johnny) pour rechercher des vulnérabilités.
  • resultLimit : Fixé par défaut à "300". Définit la profondeur de la recherche en nombre de résultats.
  • key : clé de la licence pour l'utilisation de l'API Google.
googleSets Utilise les proposition de rapprochement de mots Google (google sets) afin de trouver de nouvelles adresses. Par exemple, si l'adresse fournie est http://foo.bar/default.php?color=blue, et que "blue" est fournie à Google sets, ce dernier pourra retourner "white" et l'adresse sera http://foo.bar/default.php?color=white.
  • minInput : Fixé à "2" par défaut. N'exploite les équivalences que si le plugin fournit au minimum minInput résultats.
  • setResults : Fixé à "2" par défaut. Définit la profondeur de recherche en nombre de résultats.
googleSpider Utilise l'API Google pour trouver de nouvelles adresses. La chaîne "site:domaine.com" est fournie à Google et chaque résultat retourné est testé par l'envoi d'une requête GET.
  • resultLimit : Fixé par défaut à "300". Définit la profondeur de la recherche en nombre de résultats.
  • key : clé de la licence pour l'utilisation de l'API Google.
halberd Tente d'évaluer si l'hôte utilise un équilibrage de charges (load balancer).
hmap Tente une prise d'empreinte du serveur cible (apache, iis, tomcat, etc.)
  • genFpF : Fixé par défaut à "False". Génère un fichier d'empreintes.
importResults Teste des adresses à partir d'un fichier dont chaque ligne contient les paramètres suivants, séparés par des virgules : HTTP-METHOD,URI,POSTDATA
  • input_file : Fichier contenant les informations permettant de tester les adresses.
oracleDiscovery Tente une découverte d'Oracle sur le système cible.
phishtank Consulte la base de données phishtank.com pour déterminer si l'hôte est référencé (phishing scams).
  • dbFile : Valeur par défaut : plugins/discovery/phishtank/index.xml. Chemin du fichier de la base de données phishtank.
  • updateDB : Fixé à "False" par défaut. Permet de mettre la base de données phishtank à jour.
phpEggs

Tente une prise d'empreinte sur la version de PHP en consultant les oeufs de Pâques. Les adresses testées sont les suivantes :

Cette recherche n'aboutit cependant pas si la directive "expose_php" est à "off" dans le fichier "php.ini" sur le serveur cible.

phpinfo Recherche phpinfo dans toute l'arborescence de l'adresse fournie, afin d'obtenir le maximum d'informations.
pykto Un port nikto pour Python. Utilise le fichier scan_database de nikto afin de découvrir des adresses vulnérables.
  • dbFile : La valeur par défaut est "plugins/discovery/pykto/scan_database.db". Ce paramètre correspond au chemin du fichier scan_database.db.
  • updateScandb : Fixé par défaut à "False". Vérifie que pykto utilise la dernière version de la base de données scan_database, à partir de cirt.net.
  • adminDirs : Fixé par défaut à "/admin/,/adm/". Liste de répertoires d'administration dans lesquels rechercher des scripts vulnérables.
  • nukeDirs : Fixé par défaut à "/,/postnuke/,/postnuke/html/,/modules/,/phpBB/,/forum/". Liste des répertoires PostNuke dans lesquels rechercher des scripts vulnérables.
  • mutateTests : Valeur fixée par défaut à "False". Teste tous les fichiers avec tous les répertoires racines.
  • genericScan : Fixé par défaut à "False". Si la valeur est fixée à "True" (scan générique), les tests seront tous effectués sans vérification du type de serveur.
  • cgiDirs : Fixé par défaut à "/cgi-bin/". Chemin correspondant aux répertoire CGI-BIN dans lesquels rechercher des scripts vulnérables.
  • extra_db_file : Fixé par défaut à "plugins/discovery/pykto/w3af_scan_database.db". Chemin du fichier "w3af_scan_databse.db".
robotsReader Analyse le fichier robots.txt pour trouver de nouvelles adresses.
serverHeader Evalue le type de serveur en se basant sur les en-têtes récupérées par une requête GET.
  • execOneTime : Fixé par défaut à "True". N'exécute le plugin qu'une seule fois.
serverStatus Tente une découverte de nouvelles adresses par le fichier cgi "server-status" d'Apache.
sharedHosting Utilise la recherche MSN pour déterminer si la cible est dans un espace mutualisé (shared hosting). La recherche envoyée est la chaîne "ip:82.240.150.190" où "82.240.150.190" est remplacé par l'adresse IP du serveur testé.
  • resultLimit : Fixé par défaut à "300". Définit la profondeur de la recherche en nombre de résultats.
sitemapReader Analyse le fichier sitemap.xml pour trouver de nouvelles adresses. Ce fichier est utilisé pour une meilleure indexation par le moteur de recherche Google.
spiderMan Proxy local pour récupérer de nouvelles adresses. Utile lorsque des applets Java ou Flash sont présentes. Dans ce cas, le proxy se basera sur la navigation effectuée manuellement par l'auditeur avec son navigateur.
  • listenPort : La valeur par défaut est "44444". Spécifie le port d'écoute du proxy HTTP spiderman.
  • listenAddress : Fixé par défaut à "127.0.0.1". Spécifie l'adresse IP à laquelle envoyer les requêtes au proxy HTTP spiderman.
urlFuzzer

Tente de trouver des sauvegardes (backups), codes sources et assimilés. Si par exemple, la page cible est http://site/default.aspx, les adresses suivantes seront testées :

  • fuzzImages : Fixé par défaut à "False". Permet d'étendre le fuzzing à tous les fichiers (images, vidéos, zip, etc.).
userDir

Tente une découverte de répertoires utilisateurs en se basant sur les résultats envoyés par les autres plugins, et identifie le système d'exploitation ainsi que les applications installées pour les utilisateurs découverts. Si par exemple l'URL de base est http://domaine.com/index.php, et que le plugin de découverte de mail renvoie les adresses "[email protected]" et "[email protected]", les pages testées seront :

  • identifyOS : Fixé par défaut à "True". Tente d'évaluer le système d'exploitation basé sur les utilisateurs distants.
  • identifyApplications : Fixé par défaut à "True". Tente d'identifier les applications rattachées aux utilisateurs découverts.
webDiff Compare un répertoire local avec une adresse distante.
  • content : Fixé par défaut à "True". Compare également le contenu des fichiers.
  • banUrl : Fixé par défaut à "asp,jsp,php". Ignore les extensions spécifiées.
  • remotePath : Répertoire distant utilisé pour la comparaison.
  • localDir : Répertoire local utilisé pour la comparaison.
webSpider Suit tous les liens des pages pour découvrir de nouvelles adresses.
  • urlParameter : Fournit un paramètre à chaque adresse trouvée. Par exemple : http://www.foobar.com/index.jsp;<parameter>?id=2
  • followRegex : Valeur par défaut : ".*". Lors de la recherche, suit uniquement les liens qui coincident avec l'expression régulière fournie.
  • ignoreRegex : Fixé à "None" par défaut. Lors de la recherche, ne suis pas les liens qui coincident avec l'expression réulière fournie.
  • onlyForward : Fixé à "False" par défaut. Lors de la recherche, ne parcours que les répertoires à l'intérieur du répertoire correspond à celui de l'adresse fournie.
wordnet Utilise la base de données Wordnet pour exploiter des équivalences de mots et ainsi découvrir de nouvelles adresses. Par exemple, si l'adresse fournie est "http://site/a.php?color=blue", les adresses suivantes seront testées : http://site/a.php?color=white, http://site/a.php?color=black, etc.
  • wnResults : Valeur par défaut : "2". N'utilise que les wnResults premiers résultats pour chaque catégorie.
wsdlFinder Tente une récupération des fichiers de définition des web services en ajoutant la chaîne "?WSDL" aux adresses trouvées.
yahooSiteExplorer Utilise l'index de Yahoo (Yahoo site explorer) pour découvrir de nouvelles adresses.
  • resultLimit : Fixé par défaut à "300". Définit la profondeur de la recherche en nombre de résultats.
zone_h Recherche sur le site http://www.zone-h.org/ si le site a déjà été défacé et, le cas échéant, relève la nature de l'exploit.

audit

Ces plugins se basent sur les résultats envoyés par les plugins discovery afin de déceler des vulnérabilités (injection sql, xss, buffer overflows, response splitting, etc.) dans les pages renvoyées. Les vulnérabilités ainsi découvertes sont ajoutées à la base de connaissance en tant que vuln objects.

Nom du plugin Description Paramètres
LDAPi Cherche des injections LDAP en envoyant une chaine spéciale et en analysant la réponse.
blindSqli Cherche des vulnérabilités par des injections SQL à l'aveugle
  • equAlgorithm : Fixé par défaut à "setIntersection". Nom de l'algorithme à utiliser pour comparer les réponses vraies et fausses pour les injections sql à l'aveugle (blind sql).
  • equalLimit : Fixé par défaut à "0.9" la variable "égal" limite.
buffOverflow Cherche des failles de dépassement de tampon (buffer overflow). Ceci n'est possible que pour les languages où la mémoire est gérée par le developpeur (par exemple cgi-c) et si les erreurs sont activées.
dav Cherche des erreurs de configuration WebDAV, souvent liées au paramétrage du serveur lui-même plutôt qu'au paramétrage de l'application Web. Ce plugin tente d'uploader un fichier dans un répertoire où WebDAV est activé, ce qui n'est, dans le cas d'un serveur correctement configuré, pas possible.
eval Cherche des vulnérabilités liées à l'utlisation de la fonction eval().
  • useEcho : Fixé par défaut à "True". Utilise les implémentations "echo".
  • useTimeDelay : Fixé par défaut à "True". Utilise les implémentations "sleep()".
fileUpload Tente d'exploiter des vulnérabilités liées à l'upload de fichiers, en tentant d'uploader sur le serveur cible des fichiers au format correct, mais possédant un champ commentaires qui ne devrait pas être autorisé (contenant du code exploitable).
  • extensions : Les valeurs par défaut sont "gif,html,bmp,jpg,png,txt" et correspondent aux extensions de fichiers que W3AF tentera d'uploader au travers de formulaires.
formatString Cherche des vulnérabilités liées aux formats chaînes. De telles erreurs ne peuvent être découvertes que pour les languages pouvant générer ce type de bug et à condition que les erreurs soient activées sur le serveur.
frontpage Tente d'uploader un fichier sur le serveur en exploitant le script "author.dll" fourni par FrontPage.
  • stopOnFirst : Fixé par défaut à "True". Stoppe dès le premier succès d'upload.
generic Cherche des erreurs génériques, sans utiliser de base de données de vulnérabilités spécifique à l'implémentation serveur (PHP, J2EE, ...).
  • diffRatio : Fixé par défaut à "0.35". Si deux chaînes ont un diffRatio inférieur à cette valeur, elles sont réputées différentes.
globalRedirect Cherche des vulnérabilités de redirection globale. Ces vulnérabilités sont souvent exploitées dans les attaques de "phishing" et autres vols d'informations. Par exemple, une page qui accepte comme paramètre une URL et que l'appel de cette page retourne une erreur HTTP 302 (page déplacée temporairement).
htaccessMethods Cherche des erreurs de configuration dans le paramètre "<LIMIT>" des fichiers .htaccess d'Apache. Par exemple, il est possible d'exploiter une faille dans la limitation des méthodes spécifiées dans une balise "<LIMIT GET>". Dans ce cas, il est par exemple possible d'exploiter la méthode POST. Pour plus d'informations, vous pouvez lire l'excellente documentation suivante : http://www.kernelpanik.org/docs/kernelpanik/bme.eng.pdf.
localFileInclude Cherche des vulnérabilités d'inclusions locales. Recherche par exemple la chaîne "root:x:0:0:" en tentant d'inclure en paramètres un chemin du type "../../../../../etc/passwd".
mxInjection Cherche des vulnérabilités liées aux injections MX (mails).
osCommanding

Cherche des vulnérabilités liées aux injections de code (OS commanding). Deux techniques sont employées :

  • la commande "ping -c 5 localhost" est injectée. Si le contenu est retardé de 5 secondes (time delays), l'attaque a réussi.
  • envoi d'une requête contenant un code générique (applicable à tous les langages, plateformes et installations) afin de rechercher un fichier connu (par exemple /etc/passwd).
phishingVector Recherche des vecteurs de phishing en exploitant des failles d'inclusions distantes. Par exemple "http://victim.com/?url=http://attacker.com".
preg_replace Recherche de mauvaises utilisations de la fonction PHP "preg_replace". Cette fonction est vulnérable lorsque l'utilisateur peut contrôler l'expression réugilière ou la chaîne envoyée à la fonction "preg_replace", et que le modificateur "e" est utilisé. Pour plus de renseignements sur le modificateur "e", voir ici : http://www.talkincode.com/using-the-e-modifier-in-php-preg_replace-400.html.
remoteFileInclude Cherche des vulnérabilités d'inclusions distantes. Il est possible, pour ce faire, d'utiliser le serveur distant W3AF (paramètre useW3afSite), ou de spécifier un autre serveur (paramètres listenPort et listenAddress).
  • usew3afSite : Fixé par défaut à "True". Utilise le site de W3AF pour tester l'inclusion de fichiers distante.
  • listenPort : Fixé à "44449" par défaut. Port TCP utilisé pour la réception des requêtes sur le serveur Web.
  • listenAddress : Adresse IP du serveur Web pour la réception des requêtes.
responseSplitting Utilise la technique du HTTP Splitting pour référencer des points d'entrées. La chaîne "w3af\r\nVulnerable: Yes" est envoyée à tous les points d'injection, et la chaîne "Vulnerable" est recherchée dans les en-têtes de réponse.
sqli Effectue des injections SQL (la chaîne d'z"0 est envoyée à tous les points d'injection) dans le but de générer des erreurs SQL.
ssi Cherche des vulnérabilités d'inclusions côté serveur (SSI : Server Side Include).
sslCertificate Analyse les paramètres des certificats SSL afin d'en étuder leur validité. L'utilisation de ce plugin n'est pertinente que pour les sites en HTTPS.
unSSL Vérifie si les pages disponibles en HTTPS le sont également en HTTP.
xpath Cherche des vulnérabilités liées aux injections XPATH. Injecte pour ce faire la chaîne "d'z'0" à tous les points d'injection et recherche dans les réponses des erreurs XPATH.
xsrf Cherche des vulnérabilités de XSRF (Cross Site Request Forgeries). La forme la plus basique de XSRF est pour le moment implémentée. En effet, si l'application stocke des cookies permanents et qu'elle accepte des paramètres, elle est réputée vulnérable.
xss Recherche des failles de Cross Site Sripting (XSS).
  • numberOfChecks : Fixé par défaut à "3". Fixe le nombre de tests à effectuer (entre 1 et 14) pour chaque paramètre fuzzable.
  • checkStored : Fixé par défaut à "True". Utilisation d'attaques persistantes.
xst Cherche des vulnérabilités de Cross Site Tracing (XST). La méthode TRACE renvoie les requêtes qu'elle reçoit.

grep

Ces plugins permettent une reconnaissance par mots clés (grep) dans le code des pages renvoyées, afin d'isoler les commentaires, les champs de mots de passe, les adresses IP, etc.

Nom du plugin Description Paramètres
ajax Identifie toutes le pages contenant des traces de code Ajax.
blankBody Recherche des pages avec un corps vide pouvant indiquer des sources d'erreurs ou de mauvaise configuration.
codeDisclosure Identifie toutes les pages contenant des publications de code en utilisant le module "re" (filtrage sur "<?.*?>" pour le PHP et "<%.*%>" pour l'ASP).
collectCookies Cherche dans toutes les réponses des traces de cookies de session et les analyse afin d'en déceler des vulnérabilités.
creditCards Identifie les pages contenant des numéros de cartes de crédit.
directoryIndexing Recherche des problèmes d'indexation de répertoires dans les réponses.
domXss Identifie toutes les pages présentant des traces de DOM XSS. Pour plus d'informations : http://www.webappsec.org/projects/articles/071105.shtml.
dotNetEventValidation Recherche des pages .Net présentant dans l'en-tête EnableEventValidation="false" (paramètre permettant de s'assurer que chaque réponse provient du bon contrôle). Ces pages peuvent présenter des failles permettant d'outrepasser une authentification.
error500 Identifie toutes les pages retournant un code 500 ("Internal Server Error" ou, en français, "Erreur interne du serveur"), et n'ayant pas été identifiées par les autres plugins.
errorPages Recherche les pages en erreur et tente de récupérer des informations serveur (nom du serveur Web et version).
feeds Recherche les pages contenant des flux rss, atom ou opml. Cela permet d'identifier le générateur de flux et de déterminer le framework de développement. Par ailleurs, les injections de flux sont également testées.
fileUpload Identifie les pages contenant des formulaires permettant l'upload de fichiers.
findComments Recherche les commentaires dans les pages.
  • search404 : Fixé par défaut à "False". Recherche des commentaires également dans les pages 404 (Page non trouvée).
getMails Recherche des adresses email dans les pages. Ces comptes pourront ensuite servir aux plugins bruteforce.
  • onlyTargetDomain : Fixé par défaut à "True". Limite la recherche au domaine spécifié.
hashFind Analyse les hashes dans les réponses HTTP.
httpAuthDetect Détecte les pages protégées par une authentification HTTP.
httpInBody Recherche des chaînes de requêtes ou réponses HTTP dans les corps des réponses. Utilisé par les développeurs pour le debugging.
lang Détermine la langue du site par la lecture de N pages.
metaTags Recherche les informations (meta tags) intéressantes dans les pages, comme par exemple "microsoft", "visual", "linux", etc.
motw Fournit une indication de conformité au standard MOTW, Mark Of The Web (http://msdn2.microsoft.com/en-us/library/ms537628.aspx). Le standard MOTW se matérialise par un commentaire du type <!-- saved from url=(0023)http://www.contoso.com/ --> destiné à Internet Explorer.
  • withoutMOTW : Fixé par défaut à "False". Identifie les pages qui n'ont pas de MOTW.
newline Identifie le type de saut de ligne (newline) utilisé dans les pages et évalue si le fichier a été créé sous Windows, Linux ou Mac.
objects Recherche les objets et applets contenus dans les pages.
oracle Recherche des informations Oracle (messages, versions, etc.).
passwordProfiling Créé une liste de mots de passe possibles en analysant les corps de réponses HTTP (pondération des occurences mots).
pathDisclosure Recherche les pages présentant des traces de fichiers ("C:\www", "iles\...", "/var/www/..."). Les résultats sont sauvegardés dans le KB et exploités par les autres plugins.
privateIP Recherche des adresses IP privées dnas les corps de réponses et les en-têtes.
ssn Recherche des numéros de sécurité sociale (format US) dans les pages Web.
strangeHTTPCode Analyse les codes de réponses HTTP renvoyés par l'application Web cible à la recherche d'éléments non communs.
strangeHeaders Recherche les en-têtes non standards présents dans les réponses HTTP pour identifier des modules spéciaux et autres fonctionnalités.
strangeParameters

Recherche les pages contenant des paramètres particuliers dans les réponses HTML, comme par exemple :

svnUsers Recherche des noms d'utilisateurs SVN/CVS dans toutes les réponses et, le cas échéant, les stockent dans le KB.
wsdlGreper Recherche des fichiers de définition de Web Services (WSDL) dans toutes les pages.

output

Assurent la partie reporting (stdout, html, textfile)

Nom du plugin Description Paramètres
console Affiche les messages sur la console (stdout).
  • verbose : Fixé à "False" par défaut. Active le mode verbeux.
gtkOutput Sauvegarde les messages dans kb.kb.getData('gtkOutput', 'queue') sous la forme d'objets.
htmlFile Sauvegarde tous les messages dans un fichier HTML.
  • verbose : Fixé à "False" par défaut. Active le mode verbeux (pour debug).
  • fileName : Fixé à "report.html". Nom du fichier HTML.
textFile Sauvegarde tous les messages dans un fichier texte.
  • showCaller : Fixé par défaut à "False". Affiche certains messages supplémentaires.
  • httpFileName : Fixé par défaut à "output-http.txt". Nom du fichier dans lequel écrire les requêtes et réponses HTTP.
  • verbose : Fixé par défaut à "True". Active le mode verbeux.
  • fileName : Fixé par défaut à "output.txt". Nom du fichier dans lequel afficher les messages.
xmlFile Sauvegarde tous les messages dans un fichier XML.
  • fileName : Fixé par défaut à "report.xml". Nom du fichier.

mangle

Modifient les requêtes et réponses en se basant sur les expressions régulières (regex)

Nom du plugin Description Paramètres
sed Editeur de flux (stream editor) pour requêtes et réponses HTTP.
  • priority : Fixé par défaut à "20". Fixe la priorité d'exécution du plugin.
  • expressions : Expressions d'édition de flux.
  • fixContentLen : Fixé par défaut à "True". Adapte automatiquement la longueur de l'en-tête après mangling.

evasion

Modifent les requêtes pour assurer la furtivité (evasion firewall, IDS, etc.)

Nom du plugin Description Paramètre
backSpaceBetweenDots Insère les caractères 'A' et 'BS' (backspace) entre les points dans un chemin. Ces caractères s'annulent lorsqu'ils sont combinés mais cela permet de passer certains filtres. Par exemple ../../etc/password est remplacé par .%41%08./.%41%08./etc/password.
fullWidthEncode Evasion de détection en utilisant l'encodage de caractère (full width encoding). Ainsi, /bar/foo.asp sera remplacé par /b%uFF61r/%uFF66oo.asp. Suivre l'adresse suivante pour plus de renseignements : http://www.kb.cert.org/vuls/id/739224.
modsecurity Evasion de détection basée sur l'exploitation d'une vulnérabilité concernant le mod_security jusqu'à sa version 2.1.0. Par exemple, a=b pourra être remplacé par \x00a=b.Pour plus de renseignements, voir http://www.php-security.org/MOPB/BONUS-12-2007.html.
reversedSlashes Remplacement des slashes (/) par des backslashes (\). Ainsi, /bar/foo.asp sera remplacé par \bar\foo.asp.
rndCase Modification aléatoire de la casse. Ainsi, /bar/foo.asp pourra être remplacé par /BAr/foO.Asp.
rndHexEncode Encodage hexadécimal aléatoire. Par exemple, /bar/foo.asp pourra être remplacé par /b%61r/%66oo.asp.
rndParam Ajout d'un paramètre aléatoire. L'adresse /bar/foo.asp pourra par exemple être transformée en /bar/foo.asp?alsfkj=f09.
rndPath Ajout d'un chemin aléatoire à l'URI. Par exemple, l'adresse /bar/foo.asp pourra être transformée en /aflsasfasfkn/../bar/foo.asp.
selfReference Ajout d'une référence au répertoire courant (directory self reference). Par exemple, l'adresse /bar/foo.asp pourra être transformée en /bar/./foo.asp.
shiftOutShiftInBetweenDots Ajout, entre les point, des caractères de contrôle shift-in et shift-out. Ceux-ci s'annulent lorsqu'ils sont combinés, mais cela permet de passer certains filtres. Par exemple, ../../etc/password est remplacé par .%0E%0F./.%0E%0F./etc/password.

bruteforce

Crackage d'identifiants par bruteforce

Nom du plugin Description Paramètres
basicAuthBrute Permet de bruteforcer les authentifications HTTP basiques (Protection par .htaccess).
  • profilingNumber : Fixé par défaut à "50". Indique le nombre de mots de passe du profiling à utiliser.
  • useMails : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser les noms collectés par les autres plugins.
  • useProfiling : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser le profiling des mots de passe pour collecter d'autres mots de passe.
  • passEqUser : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser des mots de passe équivalents aux logins.
  • useMailUsers : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser comme login les noms d'utilisateurs issus des adresses email collectées par les autres plugins.
  • passwdFile : Fixé par défaut à "core/controllers/bruteforce/passwords.txt". Fichier des mots de passe à utiliser pour le bruteforcing.
  • usersFile : Fixé par défaut à "core/controllers/bruteforce/users.txt". Fichier des noms d'utilisateurs à utiliser pour le bruteforcing.
  • stopOnFirst : Fixé par défaut à "True". S'arrête dès la première combinaison réussie.
  • useSvnUsers : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser comme logins les noms d'utilisateurs collectés à partir des en-têtes SVN.
formAuthBrute Permet de bruteforcer les authentifications basées sur des formulaires HTML.
  • profilingNumber : Fixé par défaut à "50". Indique le nombre de mots de passe à utiliser.
  • useMails : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser les mots de passe collectés par les autres plugins.
  • useProfiling : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser le profiling des mots de passe pour collecter d'autres mots de passe.
  • passEqUser : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser des mots de passe équivalents aux logins.
  • useMailUsers : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser comme login les noms d'utilisateurs issus des adresses email collectées par les autres plugins.
  • passwdFile : Fixé par défaut à "core/controllers/bruteforce/passwords.txt". Fichier des mots de passe à utiliser pour le bruteforcing.
  • usersFile : Fixé par défaut à "core/controllers/bruteforce/users.txt". Fichier des noms d'utilisateurs à utiliser pour le bruteforcing.
  • stopOnFirst : Fixé par défaut à "True". S'arrête dès la première combinaison réussie.
  • useSvnUsers : Fixé par défaut à "True". Indique si le bruteforcer doit utiliser comme logins les noms d'utilisateurs collectés à partir des en-têtes SVN.

Exploits

Nom du plugin Description
sqlmap Exploite les injections SQL en utilisant sqlmap (http://sqlmap.sf.net).
osCommandingShell Exploite les injections de code.
xssBeef Exploite les failles de XSS en utilisant beEF (http://www.bindshell.net/tools/beef/).
localFileReader Exploite les inclusions de fichiers locales
rfiProxy Exploite les inclusions de fichiers distantes pour créer un serveur proxy
remoteFileIncludeShell Exploite les vulnérabilités de fichiers d'inclusion
davShell Exploie les accès DAV non authentifiés
eval Exploite les vulnérabilités de la fonction eval()
fileUploadShell Exploite les applications proposant l'upload de fichiers de manière illimitée
sql_webshell Exploite les injections SQL en uploadant un shell web (webshell) sur la cible.