mardi 11 mai 2010

tutoriel footprinting - recherche passive de renseignements préalablement à un pentest

Un audit doit être planifié et préparé par plusieurs actions préliminaires visant à obtenir un inventaire le plus complet possible des ressources matérielles, logicielles et même humaines du réseau cible. Il s’agit de récupérer le maximum d’informations sur l’architecture du réseau, les systèmes d’exploitation, les applications et les utilisateurs. Ces informations permettront au minimum d’en déduire des vulnérabilités et de rechercher des outils adéquats. Elles peuvent servir également à réaliser une maquette permettant d’effectuer des simulations des tests réalisés.

Cette étape peut être qualifiée de reconnaissance mais ne doit pas se limiter à un scan des ports ou à une prise d’empreinte de systèmes d’exploitation (fingerprinting). En effet, un certain nombre d’informations intéressantes peuvent être obtenues de manière absolument passive et sans lien avec le système cible. Il s’agit par exemple de faire appel aux serveurs DNS ou à des moteurs de recherche comme Google.
On doit donc distinguer la reconnaissance passive ou footprinting et la reconnaissance active.
Le footprinting a pour objectif de collecter des informations de manière passive sur les serveurs web, de messagerie, DNS, annuaire, comme les adresses IP, noms de domaines, protocoles réseaux, services activés, systèmes d’exploitation et logiciels utilisés, noms d’utilisateurs.
Cette reconnaissance passive est ensuite suivie d’une phase de reconnaissance active qui complète la connaissance du réseau audité par des opérations actives directement sur le système cible. Il s’agit notamment de scanner le réseau avec des outils logiciels, pour déterminer ses adresses IP actives, les ports ouverts et les systèmes d’exploitation utilisés par les serveurs. On parle de scan de ports et de prise d’empreinte d’OS active (fingerprinting).

L’objet de cet article est donc de présenter les méthodes et les outils permettant de faire de la reconnaissance passive (footprinting). Il présente également une mise en œuvre concrète de footprinting. A titre pédagogique, nous analyserons le domaine owasp.org en utilisant le panorama des outils de footprinting actuels. Nous utiliserons également les deux scripts python de recherche DNS multithreadée dnsdic et dnsbf. Nous constaterons que tous ces outils sont complémentaires: une recherche approfondie nécessiterait donc de les utiliser tous.

Qu'est ce que le footprinting?

Le footprinting, ou en français "prise d'empreintes de pieds", est une technique d'audit de sécurité, permettant d'obtenir des informations sur l'infrastructure d'un réseau cible, uniquement à partir d'informations dont l'accès est libre et autorisé. C'est l'une des composantes de l'étape d' "information gathering" d'un audit, avec le scan de port, le traceroute et le fingerprinting.

Plus précisément, le but du footprinting est d'obtenir des adresses IP de machines et des plages d'adresse du réseau, ainsi que des noms de sous-domaines. Durant le footprinting, un certain nombre de services (courrier, Web, DNS...), proposés par les serveurs de l'infrastructure auditée, peuvent être dévoilés. Grace aux informations recueillies, un auditeur est ensuite en mesure de cibler davantage ses recherches.

Le footprinting est basé sur plusieurs techniques, dépendant du service DNS et des moteurs de recherche:
- requêtes DNS. Il s'agit d'envoyer un nom de domaine et d'obtenir l'adresse IP associée. Tous les champs d'une réponse DNS sont exploités: A, MX, etc. ,
- requêtes DNS inversées. A partir d'une adresse IP ou d'une plage d'adresses, nous obtenons tous les noms de domaine associés,
- dictionnaire DNS. A partir d'un nom de domaine, nous effectuons des requetes DNS sur les noms de sous-domaines courants et les domaines racine (top level domain). Par exemple, pour "monsite.com", nous cherchons "smtp.monsite.com", "pop.monsite.com", etc. , puis "monsite.fr", "monsite.biz", etc.
- tentative de transfert de zone DNS. Dans l'éventualité ou le fichier de zone du serveur DNS du nom de domaine était mal configuré, il serait possible de récupérer l'intégralité de sa table,
- parcours du site. En visitant systématiquement tous les liens internes d'un site, nous cataloguons les noms de sous-domaine rencontrés,
- récupération d'anciennes entrées DNS repertoriées sur certains sites,
- consultation de la base Whois. Cette base référence les informations données lors du dépot du nom de domaine,
- requêtes sur les moteurs de recherche,
- requêtes sur les serveurs de certificats X509,
- analyse des fichiers robots.txt du site,

Outils

- http://www.robtex.com/ site fournissant un ensemble complet de services d'information DNS et WHOIS,
- dig: commande linux permettant de retrouver l'IP associée à un nom de domaine,
- dnsbf: script pour une recherche DNS inversée sur un sous-réseau,
- dnsdic et un dictionnaire:  script pour une recherche DNS par dictionnaire de sous-domaines,
- dnsmap: (backtrack) script disponible sur la distribution backtrack. Il permet d'obtenir des adresses IP associées à un nom de domaine.
- dnsrecon: (backtrack) script pour rechercher les noms de domaines racines associés au nom recherché. Par exemple, pour Owasp, nous trouverons Owasp.org, Owasp.net, Owasp.fr, etc.
- DNSWalk (backtrack) - http://sourceforge.net/projects/dnswalk/,
- Burp Suite http://www.portswigger.net/suite/ (nécessite java)
- http://dnshistory.org - site répertoriant des informations DNS sauvegardées.
- subdomainer.pl: (Edge-Security) script pour une recherche de sous-domaines sur les moteurs de recherche,
- Metagoofil.py (backtrack) de Edge-Security. Script pour une recherche d'informations dans les documents (pdf,doc...) référencés dans Google. Metagoofil nécessite extract ($ sudo apt-get install extract). De plus, il est installé par défaut dans /usr/bin. Modifier le script pour utiliser l'exécutable depuis ce répertoire.
- FoxyProxy (https://addons.mozilla.org/fr/firefox/addon/2464), extension pour Firefox, afin d'utiliser plus facilement Burp Suite.
- Maltego (backtrack) - outil graphique de footprinting - http://www.paterva.com/
- Hostmap.rb: http://sourceforge.net/projects/hostmap ce script remarquable, écrit en Ruby, effectue des recherches itératives en utilisant DNS, moteurs de recherche et serveurs de clés cryptographiques.
- Fierce (backtrack) - http://ha.ckers.org/fierce - script perl pour Linux de recherche DNS,

Résultats obtenus

Durant cet article nous allons découvrir les informations suivantes:

Le site Owasp.org est hébergé par Fast.net. Les serveurs DNS utilisés sont hébergés par Secure.net, société de service informatique américaine comptant comme clients l'armée américaine.

noms de domaine

Les noms de domaines cité ci-après sont associés à l'adresse IP 216.48.3.18 (sauf si celle-ci est précisée).

owasp.org
esapi.org
webscarab.net
webscarab.com
webscarab.org
webgoat.org

owasp.asia
owasp.cg,188.165.42.228
owasp.ch
owasp.com.tw
owasp.cz,81.0.246.60
owasp.fr,216.48.3.18
owasp.de,78.46.49.201
owasp.dk
owasp.gr,69.93.193.98
owasp.hu,193.142.209.99
owasp.ir,213.175.221.136
owasp.kr,222.231.8.226
owasp.info
owasp.lt,79.98.25.1
owasp.my,202.190.179.45
owasp.mp,75.101.130.205
owasp.net
owasp.nl
owasp.org.tw
owasp.pw,70.87.29.150
owasp.pl,91.210.130.50
owasp.ph,203.119.6.249
owasp.ru,193.232.159.1
owasp.rw,94.23.192.35
owasp.tw
owasp.ws,64.70.19.33
owasp.st,195.178.160.40
owasp.es,213.186.33.5
owasp.se,212.97.132.112
owasp.ch,88.191.227.205
owasp.tw
owasp.tk,193.33.61.2
owasp.tk,209.172.59.196
owasp.tk,94.103.151.195
owasp.tk,217.119.57.22
owasp.tv,64.99.80.30
owasp.vn,72.52.194.126

adresses IP

Les adresses IP hébergeant des sous-domaines des principaux domaines situés dans le sous-réseau 216.48.3.0/24 sont:
216.48.3.18
216.48.3.19
216.48.3.20
216.48.3.22
216.48.3.23
216.48.3.26
216.48.3.30

De plus, l'adresse IP suivante est intéressante car elle héberge des données du créateur d'owasp:
66.255.82.14

tous les sous-domaines répértoriés ci-après sont associés à l'IP 216.48.3.18 sauf:

forums.owasp.org 216.48.3.19
stage.owasp.org 216.48.3.20
lists.owasp.org 216.48.3.22
voip.owasp.org 216.48.3.22
forums.owasp.net 216.48.3.23
ads.owasp.org 216.48.3.26
ml1lists.owasp.org 216.48.3.30
docs.owasp.org hébergé par google
mail.owasp.org hébergé par google
groups.owasp.org hébergé par google
calendar.owasp.org hébergé par google
mail.owasp.net 66.255.82.14

sous-domaines

owasp.org
ml1.owasp.org
www.owasp.org
www2.owasp.org
lists.owasp.org 216.48.3.22
ads.owasp.org 216.48.3.26
_adsp._domainkey.owasp.org
jobs.owasp.org
registration.owasp.org
_policy._domainkey.owasp.org
_domainkey.owasp.org
es.owasp.org  
austin.owasp.org
beta.owasp.org
blogs.owasp.org
forum.owasp.org
old.owasp.org
ww.owasp.org
localhost.owasp.org
google6912a08c3a8ccdf0b.owasp.org
ns.owasp.org
docs.owasp.org
calendar.owasp.org
austin.owasp.org
gateway.owasp.org
secure.owasp.org
intranet.owasp.org
extranet.owasp.org
web.owasp.org
webmail.owasp.org
ftp.owasp.org
stage.owasp.org

owasp.net
forums.owasp.net 216.48.3.23
www.owasp.net
mail.owasp.net 66.255.82.14

owasp.tw
mail.owasp.tw
_domainkey.owasp.tw

www.owasp.org.tw

owasp.fr
www.owasp.fr

mail.esapi.org 216.48.3.18
www.esapi.org 216.48.3.18

webscarab.net 216.48.3.18
ftp.webscarab.net
www.webscarab.net
pop.webscarab.net
smtp.webscarab.net
imap.webscarab.net

webscarab.com
www.webscarab.com
imap.webscarab.com
ftp.webscarab.com

webscarab.org

webgoat.org
www.webgoat.org
imap.webgoat.org
news.webgoat.org
smtp.webgoat.org
ftp.webgoat.org
pop.webgoat.org

serveurs DNS

pour tous sauf owasp.tw, owasp.org.tw et owasp.fr et plus généralement les serveurs situés à l'étranger des Etats-Unis d'Amérique:
ns1.secure.net 192.220.124.10 (USA)
ns2.secure.net 192.220.125.10

Par exemple,

pour owasp.tw:
ns1.eurodns.com 80.92.65.2 (Luxembourg)
ns2.eurodns.com 80.92.67.140

pour owasp.fr
a.dns.gandi.fr 217.70.179.40 (France)
b.dns.gandi.fr 217.70.184.40

pour owasp.org.tw:
csn1.net-chinese.com.tw 202.153.205.76 (Taiwan)
csn2.net-chinese.com.tw 202.130.187.243

les adresses suivantes étant répertoriées, toute recherche de sous-domaine inexistant renvoie à l'adresse IP associée au domaine principal:
*.owasp.org
*.owasp.tw

responsables

tous les noms de domaine référencés sauf owasp.fr et owasp.org.tw ont été déposés par:
Laurence Casey

owasp.fr a été déposé par Sébastien Gioria (0623040051) pour la société Doing Soft

owasp.org.tw par Wayne Huang pour la société Armorize technologies Inc

administrateurs

http://www.owasp.org/index.php?title=Special%3AListUsers&group=sysop

L'un d'entre eux Laurence Casey, possède un serveur vers lequel pointe le sous-domaine mail.owasp.net. Il le partage avec des proches. Son IP est 66.255.82.14.


Requêtes DNS simples

robtex.com

Nous utilisons le site Web robtex, et recherchons owasp.org dans leur moteur de recherche dns: http://www.robtex.com/dns -> owasp.org



Le site www.owasp.org est accessible sur un serveur dont l'IP est 216.48.3.18. Il appartient au sous-réseau 216.48.2.0/23. Cela signifie que la plage d'adresse disponible est:
216.48.2.0 à 216.48.3.255.

dig

Rq: nous pouvons également trouver l'adresse IP associée à un site avec

$ dig owasp.org

Les sites Web www.esapi.org, www.webscarab.net et www.owasp.org pointent sur la même adresse IP.

Le nom de domaine owasp.org est maintenu sur des serveurs DNS hébergés sur le domaine secure.net
Le serveur mail associé au nom de domaine owasp.org est hébergé par google.

google

Quelques recherches google nous apprennent:
google -> esapi.org
google -> owasp.net
google -> webscarab.net
google -> secure.net

esapi.org et webscarab.net sont deux projets d'Owasp
secure.net est un domaine détenu pas Secure Network Systems, entreprise US qui développe des logiciels professionnels de contrôle des accès physiques (aéroports, etc.) ayant
comme clients entre autres l'armée américaine. Cette information a peu d'importance pour l'instant.

La recherche de l'IP 216.48.3.18 avec robtex, nous donne: robtex.com/dns -> 216.48.3.18


Au cas où, jetons un oeil à owasp.*, toujours avec robtex:
- owasp.net
- owasp.de
- owasp.cz


DNS recherche inversée sur une plage d'IP

dnsbf.py

Owasp est hébergé par Fastnet (http://www.fast.net/) aux Etats Unis.
Ici, ce n'est sans doute pas très utile, car Owasp y loue certainement un serveur, mais nous aurions pu trouver les noms de domaine qui sont référencés sur la plage d'adresse attribuée à cet hébergeur: 216.48.2.0/23. Nous utilisons un petit script Python: dnsbf.py. Ce script fait une recherche DNS inversée sur chaque IP d'un sous réseau.

$  ./dnsbf.py 216.48.2.0/23

*****************************************
* under GNU 3.0 licence                               *
* v0.2 02/13/2010                                       *
* using dns, find hostnames in a subnet          *
*****************************************

begin search...

216.48.2.34 clarendon.my-vresume.com
216.48.2.10 mail.nvafamilypractice.com
216.48.4.251 ns1.croem.net
216.48.4.107 mail1.gulfstreamacademy.com
216.48.3.69 mail.nationalstrategiesinc.com
216.48.4.20 encirclepayments.com
216.48.3.90 mail.wssa.com
216.48.4.21 mail.encirclepayments.com
216.48.4.170 mail.wilhelminamiami.com
216.48.5.55 mail.eliteislandresorts.com
216.48.5.181 ns4.viomedia.com
216.48.3.10 mail.jandrroofing.com
216.48.4.194 amarinelli.com
216.48.2.74 mail.ppamedicalbilling.com
216.48.5.244 mail.terragroup.com
216.48.2.75 mail.hirestrategy.com
216.48.4.18 wxesrv01s.interpath
216.48.5.182 ns4.maquilon.com
216.48.4.253 mail.e-progroup.com
216.48.2.200 mailgate.catapulttechnology.com
216.48.4.162 mail.malloylaw.com
216.48.4.72 mail.amtel-security.com
216.48.2.194 fw.catapulttechnology.com
216.48.3.82 mail.wssa.com
216.48.3.92 freightoffice.wssa.com
216.48.3.29 mail.empiregroup.us
216.48.4.186 mail.marlinshowcase.com
216.48.2.3 smtp.advantagehomes.org
216.48.5.164 mailserver.federalmillwork.com
216.48.2.90 mail2.bgsb.net
216.48.3.122 mail3.bulletinnews.com
216.48.3.98 Mail.jamesmyersco.com
216.48.2.204 smtp.catapulttechnology.com
216.48.4.187 marlinshowcase.com
216.48.2.39 SMTP.edoptions.com
216.48.4.154 mail.krmlegal.com
216.48.5.162 mailserver.federalmillwork.com
216.48.4.106 gaamail.gulfstreamacademy.com
216.48.5.251 mail.eastridgerc.com
216.48.4.247 mail.croem.net

end of search
1023 ip tested, 40 names found, in 25 s
$

DNS dictionnaire

Il peut être intéressant de chercher quels sous-domaines possède Owasp.net (par exemple: mail.owasp.net est un sous-domaine de owasp.net).

dnsdic.py

Utilisons notre script Python dnsdic.py
dnsdic.py envoie des requêtes DNS en récupérant des préfixes de domaine dans un fichier dictionnaire.

Par exemple, pour owasp.org, dnsdic.py recherchera mail.owasp.org, smtp.owasp.org, etc.
Nous empruntons le fichier dns.txt de dnsenum1.1 [3] écrit par jer001 [2].
Au passage, nous ne résistons pas au plaisir de citer une excellente source de dictionnaires: http://www.skullsecurity.org/wiki/index.php/Passwords
$ ./dnsdic.py -f ./dns.txt owasp.net

***************************************************
* under GNU 3.0 licence *
* v0.1 02/14/2010 *
* dns dictionnary search of hostnames in a subnet *
***************************************************

begin search...

forums.owasp.net [] ['216.48.3.23']
owasp.net ['www.owasp.net'] ['216.48.3.18']

end of search
95 names tested, 2 hostnames found, in 6.032436 s Nous trouvons un serveur qui n'avait pas été détecté par la recherche reversedns: forums.owasp.net


$ ./dnsdic.py -f dns.txt webscarab.net

***************************************************
* under GNU 3.0 licence                           *
* v0.1 02/14/2010                                 *
* dns dictionnary search of hostnames in a subnet *
***************************************************

begin search...

webscarab.net ['ftp.webscarab.net'] ['216.48.3.18']
webscarab.net ['www.webscarab.net'] ['216.48.3.18']
webscarab.net ['pop.webscarab.net'] ['216.48.3.18']
webscarab.net ['smtp.webscarab.net'] ['216.48.3.18']

end of search
95 names tested, 4 hostnames found, in 8.064246 s


$ ./dnsdic.py -f dns.txt esapi.org

***************************************************
* under GNU 3.0 licence                           *
* v0.1 02/14/2010                                 *
* dns dictionnary search of hostnames in a subnet *
***************************************************

begin search...

esapi.org ['mail.esapi.org'] ['216.48.3.18']
esapi.org ['www.esapi.org'] ['216.48.3.18']

end of search
95 names tested, 2 hostnames found, in 2.036982 s

dnsdic.py ne donne rien sur owasp.org. En effet, en jetant un oeil aux résultats de robtex, nous remarquons que l'entrée de owasp.org est en fait *.owasp.org . Cela signifie que toute requête DNS d'un sous-domaine d'owasp (*.owasp.org) renverra l'adresse IP principale. Cette pratique est maligne, car elle noie une recherche de sous-domaines, mais peut être un bon moyen de noyer complètement un serveur DNS en remplissant son cache avec les résultats de cette recherche.

Et qu'en est il de mail.owasp.net? nous trouvons une IP supplémentaire: 66.255.82.14. Toujours avec robtex, la recherche de cette IP sur le moteur dns nous indique:
robtex.com/dns -> mail.owasp.net
robtex.com/dns -> 66.255.28.14

Il semblerait que M. Casey héberge les sites de connaissances à lui...

dnsmap

dnsmap est disponible sur la distribution backtrack. Il permet d'obtenir des adresses IP associées à un nom de domaine.

root@bt:/pentest/enumeration/dns/dnsmap# ./dnsmap owasp.org
dnsmap 0.24 - DNS Network Mapper by pagvac (gnucitizen.org)

[+] warning: the target domain might use wildcards. dnsmap will try to filter out false positives
[+] searching (sub)domains for owasp.org using built-in wordlist

forums.owasp.org
IP address #1: 216.48.3.19

groups.owasp.org
IP address #1: 74.125.47.121

localhost.owasp.org
IP address #1: 127.0.0.1
[+] warning: target domain might be vulnerable to "same site" scripting (http://snipurl.com/etbcv)

mail.owasp.org
IP address #1: 74.125.47.121

[+] 4 (sub)domains and 4 IP address(es) found
[+] completion time: 50 second(s)

dnsrecon

dnsrecon permet de rechercher non plus les sous-domaines, mais lesnoms de domaines racines associés au nom recherché. Par exemple, pour Owasp, nous trouverons Owasp.org, Owasp.net, Owasp.fr, etc.

root@bt:/pentest/enumeration/dnsrecon# ruby dnsrecon.rb -tld owasp
owasp.org,216.48.3.18,A
owasp.net,216.48.3.18,A
owasp.cg,188.165.42.228,A
owasp.cz,81.0.246.60,A
owasp.fr,216.48.3.18,A
owasp.de,78.46.49.201,A
owasp.gr,69.93.193.98,A
owasp.hu,193.142.209.99,A
owasp.ir,213.175.221.136,A
owasp.kr,222.231.8.226,A
owasp.lt,79.98.25.1,A
owasp.my,202.190.179.45,A
owasp.mp,75.101.130.205,A
owasp.pw,70.87.29.150,A
owasp.pl,91.210.130.50,A
owasp.ph,203.119.6.249,A
owasp.ru,193.232.159.1,A
owasp.rw,94.23.192.35,A
owasp.ws,64.70.19.33,A
owasp.st,195.178.160.40,A
owasp.es,213.186.33.5,A
owasp.se,212.97.132.112,A
owasp.ch,88.191.227.205,A
owasp.tw,216.48.3.18,A
owasp.tk,193.33.61.2,A
owasp.tk,209.172.59.196,A
owasp.tk,94.103.151.195,A
owasp.tk,217.119.57.22,A
owasp.tv,64.99.80.30,A
owasp.vn,72.52.194.126,A
Nous obtenons un certain nombre de sites internationaux affiliés à notre domaine.

Transfert de zone

le transfert de zone découle généralement d'une configuration maladroite du serveur DNS d'un domaine par son administrateur. Quand le transfert de zone est autorisé, il est possible de récupérer l'intégralité de la base de la zone couverte par le serveur.

DNSWalk

root@bt:/pentest/enumeration/dns/dnswalk# ./dnswalk owasp.org.
Checking owasp.org.
Getting zone transfer of owasp.org. from ns1.secure.net...done.
SOA=ns1.secure.net      contact=hostmaster.secure.net
WARN: owasp.org A 216.48.3.18: no PTR record
WARN: ads.owasp.org A 216.48.3.26: no PTR record
WARN: calendar.owasp.org CNAME ghs.GOOGLE.COM: CNAME (to ghs.l.google.com)
WARN: docs.owasp.org CNAME ghs.GOOGLE.COM: CNAME (to ghs.l.google.com)
WARN: es.owasp.org A 216.48.3.18: no PTR record
WARN: forums.owasp.org A 216.48.3.19: no PTR record
WARN: groups.owasp.org CNAME ghs.GOOGLE.COM: CNAME (to ghs.l.google.com)
WARN: lists.owasp.org A 216.48.3.22: no PTR record
WARN: mail.owasp.org CNAME ghs.GOOGLE.COM: CNAME (to ghs.l.google.com)
WARN: ml1lists.owasp.org A 216.48.3.30: no PTR record
WARN: stage.owasp.org A 216.48.3.20: no PTR record
WARN: voip.owasp.org A 216.48.3.22: no PTR record
0 failures, 12 warnings, 0 errors.

Le transfert de zone échoue. Cependant, DNSWalk utilise d'autres méthodes couvertes par d'autres paragraphes de cet article. Nous obtenons de nouvelles IP:
216.48.3.19 forums.owasp.org
216.48.3.30 ml1lists.owasp.org
216.48.3.20 stage.owasp.org


Anciennes entrées DNS

dnshistory.org

utilisons à présent le site http://dnshistory.org/ . Ce site recense d'anciennes entrées DNS.
pas de résultat...


Parcours du site

Burp Suite

Utilisons Burp Suite. Cet outil installe un proxy sur notre ordinateur et parcourt automatiquement le site Web.

Sans même utiliser Spider (l'un des modules de Burp Suite), nous obtenons dans la Sitemap un nouveau domaine: ads.owasp.org



Un traceroute vers ads.owasp.org nous renvoie l'adresse IP 216.48.3.26

$ traceroute ads.owasp.org

Il serait facile de coder un script qui retourne les adresses IP des sites que nous avons trouvés jusqu'ici. Après quelques manipulations sur http://www.robtex.com, nous obtenons que tous les sous-domaines répértoriés sont associés à l'IP 216.48.3.18 sauf:
ads.owasp.org 216.48.3.26
lists.owasp.org 216.48.3.22
forums.owasp.net 216.48.3.23
mail.owasp.net 66.255.82.14


Informations sur les administrateurs

OWasp publie la liste des personnes pouvant administrer son Wiki:

http://www.owasp.org/index.php?title=Special%3AListUsers&group=sysop
Aholmes ‎ (Created on 27 September 2006 at 14:51)
Alison.McNamee ‎ (Created on 26 November 2007 at 22:22)
Aspectmichelle ‎ (Created on 24 August 2007 at 15:10)
Brennan ‎ (Created on 13 June 2006 at 00:07)
Dinis.cruz ‎
Dwichers ‎
Esheridan ‎ (Created on 31 July 2006 at 20:09)
Jason Li ‎ (Created on 17 April 2007 at 20:16)
Jcmax ‎
Jeff Williams ‎
Jeremy Ferragamo ‎
KateHartmann ‎ (Created on 12 May 2008 at 14:01)
KirstenS ‎ (Created on 16 May 2008 at 11:38)
Laurence Casey ‎
OWASP ‎ (Created on 23 June 2006 at 16:50)
Paulo Coimbra ‎ (Created on 4 July 2008 at 00:22)
RoganDawes ‎
Sdeleersnyder
Weilin Zhong ‎
Wichers ‎
WikiSysop ‎

Whois

La base Whois regroupe les informations fournies lors du dépot de nom de domaine auprès des autorités.

$ whois owasp.org

Created On:21-Sep-2001 17:00:36 UTC
Last Updated On:15-Feb-2005 15:45:17 UTC
Expiration Date:21-Sep-2013 17:00:36 UTC
Sponsoring Registrar:Register.com Inc. (R71-LROR)
Registrant ID:546CEF135F727823
Registrant Name:Laurence Casey
Registrant Organization:OWASP Foundation
Registrant Street1:9175 Guilford Rd Suite 300
Registrant City:Columbia
Registrant Country:US
Registrant Phone:+1.3016044882
Registrant Email:larry.casey@owasp.org $ whois owasp.org

Organisation Address. UNITED STATES
Admin Name........... Laurence Casey


Moteurs de recherche


requête simple

google -> site:owasp.org
pas d'info apportée

subdomainer.py

Utilisons Subdomainer.py de Edge-Security [4]:

$ python ./subdomainer.py -d owasp.org -l 10 -m yahoo

*************************************
*Subdomainer Ver. 1.3b                *
*Coded by Christian Martorella      *
*Edge-Security Research             *
*laramies2k@yahoo.com.ar            *
*************************************


Searching for owasp.org in yahoo
=======================================
Total results:  1998
Limit:  10
Searching results: 0

Subdomains founded:
====================

www.owasp.org
lists.owasp.org

Total results:  2
Going for extra check:

www.owasp.org ====> 216.48.3.18
lists.owasp.org ====> 216.48.3.22

Nous trouvons donc un nouveau sous-domaine: lists.owasp.org

MetaGoofil.py

A présent, utilisons l'outil MetaGoofil.py (Edge-Security) [7].
Metagoofil.py est un script pour une recherche d'informations dans les documents (pdf,doc...) référencés dans Google. Il nécessite extract ($ sudo apt-get install extract). De plus, il est installé par défaut dans /usr/bin. Modifier le script pour utiliser l'exécutable depuis ce répertoire.

$ python ./metagoofil.py -d owasp.org -l 100 -f all -o tmp.html -t tmp-files

*************************************
*MetaGooFil Ver. 1.4a            *
*Coded by Christian Martorella      *
*Edge-Security Research             *
*cmartorella@edge-security.com      *
*************************************


[+] Command extract found, proceeding with leeching
[+] Searching in owasp.org for: pdf
[+] Total results in google: 496
[+] Limit:  800
[+] Searching results: 0
[+] Searching results: 20
[+] Searching results: 40

(...)

[+] Searching in owasp.org for: doc
[+] Total results in google: 86

(...)

[+] Searching in owasp.org for: xls
[+] Total results in google: 6

(...)

[+] Searching in owasp.org for: ppt
[+] Total results in google: 417

(...)

[+] Searching in owasp.org for: sdw
[+] Total results in google: 0
[+] Searching in owasp.org for: mdb
[+] Total results in google: 0
[+] Searching in owasp.org for: sdc
[+] Total results in google: 0
[+] Searching in owasp.org for: odp
[+] Total results in google: 1

(...)

Usernames found:
================


Paths found:
============

 2005PaperTemplate\
 \Program Files\Microsoft Office\Templates\1033\
 Normal\
 Professional Report\
 OWASP Presentation Template\
 OWASP Attacking J2EE\
 Flow\

[+] Process finished Les recherches dans owasp.org ne donne rien. $ python ./metagoofil.py -d owasp.net -l 800 -f all -o tmp.html -t tmp-files
$ python ./metagoofil.py -d forums.owasp.net -l 800 -f all -o tmp.html -t tmp-files
$ python ./metagoofil.py -d esapi.org -l 800 -f all -o tmp.html -t tmp-files
$ python ./metagoofil.py -d webscarab.net -l 800 -f all -o tmp.html -t tmp-files La recherche dans lists.owasp.org:
$ python ./metagoofil.py -d lists.owasp.org -l 800 -f all -o tmp.html -t tmp-files

(...)

Usernames found:
================


Paths found:
============

 Normal\
 owasp melbourne \
 OWASP Presentation Template\
[+] Process finished

Shodan

Shodan est un site répertoriant des informations de configuration et des vulnérabilités obtenues sur des sites mal configurés.
http://www.shodanhq.com/?q=owasp.org

216.48.3.20
Linux recent 2.4
Added on 23.07.2009
United States

HTTP/1.1 301 Moved Permanently
Date: Fri, 24 Jul 2009 03:15:20 GMT
Server: Apache/2.2.9 (Fedora)
X-Powered-By: PHP/5.2.6
Vary: Accept-Encoding,Cookie
X-Vary-Options: Accept-Encoding;list-contains=gzip,Cookie;string-contains=wiki1134Token;string-contains=wiki1134LoggedOut;string-contains=wiki1134_session
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: private, must-revalidate, max-age=0
Last-modified: Fri, 24 Jul 2009 03:15:21 GMT
Location: http://stage.owasp.org/index.php/Main_...
216.48.3.26
Linux recent 2.4
Added on 21.07.2009
United States

HTTP/1.1 302 Found
Date: Tue, 21 Jul 2009 08:08:41 GMT
Server: Apache/2.2.9 (Fedora)
X-Powered-By: PHP/5.2.6
Location: http://ads.owasp.org/www/admin/index.php
Connection: close
Content-Type: text/html; charset=UTF-8

216.48.3.18
Linux recent 2.4
Added on 21.07.2009
United States

HTTP/1.1 301 Moved Permanently
Date: Tue, 21 Jul 2009 08:08:29 GMT
Server: Apache/2.2.9 (Fedora)
X-Powered-By: PHP/5.2.6
Vary: Accept-Encoding,Cookie
X-Vary-Options: Accept-Encoding;list-contains=gzip,Cookie;string-contains=wiki15Token;string-contains=wiki15LoggedOut;string-contains=wiki15_session
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: private, must-revalidate, max-age=0
Last-Modified: Tue, 21 Jul 2009 08:08:29 GMT
Location: http://www.owasp.org/index.php/Main_Page
Co...
Nous obtenons les informations suivantes:

  • 3 Ips: 216.48.3.18, 216.48.3.20, 216.48.3.26 (déjà connues),
  • la version du serveur Apache au 23/07/2009: 2.2.9 (Fedora),
  • la version du moteur PHP au 23/07/2009: 5.2.6

Ces versions datant un peu, elles ne sont pas très pertinentes ici.

Web robots

les administrateurs mettent parfois des informations dans leur fichier sitemap ou robots. Ce fichier références les zones que les moteurs de recherche ne doivent pas visiter.

dans firefox -> http://owasp.org/Robots.txt
dans firefox -> http://owasp.org/sitemap.xml www.owasp.org ne possède pas de fichier Robots.txt ou sitemap.xml


Conjugaison de techniques

Certains outils nous permettent de conjuguer les différentes techniques de footprinting.


Maltego

Maltego est un outil graphique de footprinting, qui utilise différentes méthodes d'analyse, dont celles vues jusqu'à présent. Il classe automatiquement les résultats dans un graphique.
Téléchargeons la community edition depuis http://www.paterva.com/

Lancons le sur quelques unes des IP que nous avons précédemment trouvées et le nom de domaine owasp.org:
owasp.org
216.48.3.18
216.48.3.22
216.48.3.23
216.48.3.26

Nous obtenons le résultat suivant



Voici quelques éléments qui viennent compléter nos recherches précédentes. Nous remarquons également que Maltego ne retrouve pas d'emblée tous les résultats précédents avec une recherche simple sur les IP et le nom de domaine.

DNS MX - serveurs de messagerie
owasp.com.tw

DNS transfert de zone
localhost.owasp.org
google6912a08c3a8ccdf0b.owasp.org
ns.owasp.org
docs.owasp.org
calendar.owasp.org
austin.owasp.org
DNS bruteforce
gateway.owasp.org
secure.owasp.org
intranet.owasp.org
extranet.owasp.org

web.owasp.org
webmail.owasp.org
ftp.owasp.org

sharedIP
voip.owasp.org

noms de domaine pointant vers le site web owasp.org
owasp.net
owasp.tw
owasp.com.tw
owasp.org.tw
owasp.fr
owasp.nl
owasp.pl
owasp.cz
owasp.it
owasp.dk
owasp.de
owasp.info
owasp.ch
owasp.asia


hostmap.rb

Utilisons un autre outil (remarquable): hostmap.rb
hostmap effectue des recherches itératives sur les DNS, sur les moteurs de recherche et sur les serveurs de clés de chiffrement.

$ ruby hostmap.rb -t 216.48.3.18
hostmap 0.2.1 codename fissatina
Coded by Alessandro `jekil` Tanasi

[20:49] Detected a wildcard entry in X.509 certificate for: *.owasp.org
[20:49] Detected a wildcard entry in X.509 certificate for: *.owasp.org
[20:49] Found new hostname _adsp._domainkey.owasp.org
[20:49] Found new domain _domainkey.owasp.org
[20:49] Found new domain owasp.net
[20:49] Found new hostname www.owasp.net
[20:49] Found new hostname owasp.net
[20:49] Found new domain owasp.org
[20:49] Found new hostname _domainkey.owasp.org
[20:49] Found new hostname owasp.org
[20:49] Found new hostname www.owasp.org
[20:49] Found new hostname _policy._domainkey.owasp.org
[20:49] Found new hostname www.owasp.fr
[20:49] Found new domain owasp.fr
[20:49] Found new hostname owasp.fr
[20:49] Found new hostname www.webscarab.com
[20:49] Found new domain webscarab.com
[20:49] Found new hostname webscarab.com
[20:49] Found new hostname news.webgoat.org
[20:49] Found new domain webgoat.org
[20:49] Found new hostname webgoat.org
[20:49] Found new hostname austin.owasp.org
[20:49] Found new hostname ww.owasp.org
[20:49] Found new hostname jobs.owasp.org
[20:49] Found new hostname registration.owasp.org
[20:49] Found new hostname old.owasp.org
[20:49] Found new hostname ml1.owasp.org
[20:49] Found new hostname smtp.webgoat.org
[20:49] Found new hostname pop.webgoat.org
[20:49] Found new hostname www.webgoat.org
[20:49] Found new hostname forum.owasp.org
[20:49] Found new hostname es.owasp.org
[20:49] Found new hostname blogs.owasp.org
[20:49] Found new hostname beta.owasp.org
[20:49] Found new hostname imap.webgoat.org
[20:49] Found new hostname ftp.webgoat.org
[20:49] Found new hostname www2.owasp.org
[20:49] Found new hostname www.owasp.org.tw
[20:49] Found new domain owasp.org.tw
[20:52] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:52] Found new mail server aspmx3.googlemail.com
[20:52] Found new nameserver ns2.secure.net
[20:52] Detected a wildward domain: owasp.org
[20:52] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:52] Found new nameserver ns1.secure.net
[20:52] Found new mail server aspmx.l.google.com
[20:52] Found new mail server aspmx.l.google.com
[20:52] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:52] Found new mail server alt1.aspmx.l.google.com
[20:52] Detected a wildward domain: _domainkey.owasp.org
[20:52] Found new mail server alt1.aspmx.l.google.com
[20:52] Found new mail server aspmx4.googlemail.com
[20:52] Found new mail server aspmx5.googlemail.com
[20:52] Found new mail server aspmx5.googlemail.com
[20:52] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:52] Found new nameserver c.dns.gandi.net
[20:52] Found new mail server alt2.aspmx.l.google.com
[20:52] Found new mail server spool.mail.gandi.net
[20:52] Found new mail server aspmx2.googlemail.com
[20:53] Found new nameserver a.dns.gandi.net
[20:53] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:53] Found new mail server webscarab.com
[20:53] Found new mail server webscarab.com
[20:53] Found new mail server fb.mail.gandi.net
[20:53] Found new nameserver b.dns.gandi.net
[20:53] Found new mail server fb.mail.gandi.net
[20:53] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:53] Found new mail server webgoat.org
[20:53] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[20:53] Found new nameserver cns1.net-chinese.com.tw
[20:53] Found new nameserver cns2.net-chinese.com.tw
[20:56] Found new domain owasp.tw
[20:56] Found new domain webscarab.org
[20:56] Found new hostname owasp.tw
[20:56] Found new domain webscarab.net
[20:56] Found new domain webscarab.net
[20:56] Found new hostname webscarab.org
[20:56] Found new domain _domainkey.owasp.tw
[20:56] Found new hostname webscarab.net
[20:56] Found new hostname webscarab.net
[20:56] Found new hostname _domainkey.owasp.tw
[21:02] Found new hostname imap.webscarab.com
[21:02] Found new hostname ftp.webscarab.com
[21:02] Found new hostname imap.webscarab.com
[21:02] Plugin :bruteforcebydomain execution expired. Output: imap.webscarab.com imap.webgoat.org ftp.webgoat.org ftp.webscarab.com
[21:02] Plugin :bruteforcebydomain execution expired. Output: imap.webscarab.com imap.webgoat.org ftp.webgoat.org ftp.webscarab.com
[21:02] Plugin :bruteforcebydomain execution expired. Output: imap.webscarab.com imap.webgoat.org ftp.webgoat.org ftp.webscarab.com
[21:03] Plugin :bruteforcebydomain execution expired. Output: imap.webscarab.com imap.webgoat.org ftp.webgoat.org ftp.webscarab.com
[21:03] Plugin :bruteforcebydomain execution expired. Output: imap.webscarab.com imap.webgoat.org ftp.webgoat.org ftp.webscarab.com
[21:03] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[21:03] Detected a wildward domain: owasp.tw
[21:03] Found new nameserver ns1.eurodns.com
[21:03] Found new mail server mail.owasp.tw
[21:03] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[21:03] Found new nameserver ns2.eurodns.com
[21:03] Found new mail server snowball.spidynamics.com
[21:03] Found new nameserver ns1.inflow.net
[21:03] Found new hostname mail.owasp.tw
[21:03] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[21:03] Found new nameserver ns4.inflow.net
[21:03] Found new mail server atl-mr01.spidynamics.com
[21:03] Found new mail server webscarab.net
[21:03] Found new nameserver ns2.inflow.net
[21:03] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[21:03] Found new nameserver ns3.inflow.net
[21:03] Found new nameserver ns5.inflow.net
[21:03] Skipping DNS Zone transfer because it is disabled by default, you must enable it from from command line.
[21:03] Detected a wildward domain: _domainkey.owasp.tw
[21:03] Found new nameserver ns6.inflow.net
[21:13] Found new hostname pop.webscarab.net
[21:13] Found new hostname pop.webscarab.net
[21:13] Found new hostname smtp.webscarab.net
[21:13] Found new hostname smtp.webscarab.net
[21:13] Found new hostname smtp.webscarab.net
[21:13] Found new hostname ftp.webscarab.net
[21:13] Found new hostname ftp.webscarab.net
[21:13] Found new hostname ftp.webscarab.net
[21:13] Found new hostname imap.webscarab.net
[21:13] Plugin :bruteforcebydomain execution expired. Output: pop.webscarab.net smtp.webscarab.net ftp.webscarab.net imap.webscarab.net
[21:13] Found new hostname imap.webscarab.net
[21:13] Plugin :bruteforcebydomain execution expired. Output: pop.webscarab.net smtp.webscarab.net ftp.webscarab.net imap.webscarab.net
[21:13] Found new hostname imap.webscarab.net
[21:13] Plugin :bruteforcebydomain execution expired. Output: pop.webscarab.net smtp.webscarab.net ftp.webscarab.net imap.webscarab.net

Results for 216.48.3.18
Served by name server (probably)
    ns6.inflow.net
    ns1.eurodns.com
    c.dns.gandi.net
    ns4.inflow.net
    ns5.inflow.net
    ns3.inflow.net
    ns2.inflow.net
    b.dns.gandi.net
    ns1.inflow.net
    a.dns.gandi.net
    ns2.eurodns.com
    ns2.secure.net
    cns1.net-chinese.com.tw
    ns1.secure.net
    cns2.net-chinese.com.tw
Served by mail exchange (probably)
    atl-mr01.spidynamics.com
    aspmx2.googlemail.com
    aspmx.l.google.com
    mail.owasp.tw
    webscarab.com
    alt2.aspmx.l.google.com
    aspmx3.googlemail.com
    aspmx4.googlemail.com
    snowball.spidynamics.com
    webgoat.org
    fb.mail.gandi.net
    aspmx5.googlemail.com
    alt1.aspmx.l.google.com
    webscarab.net
    spool.mail.gandi.net
Hostnames:
    _adsp._domainkey.owasp.org
    pop.webscarab.net
    imap.webgoat.org
    www.owasp.org
    mail.owasp.tw
    jobs.owasp.org
    webscarab.com
    imap.webscarab.com
    www2.owasp.org
    registration.owasp.org
    news.webgoat.org
    _policy._domainkey.owasp.org
    owasp.org
    smtp.webscarab.net
    _domainkey.owasp.tw
    smtp.webgoat.org
    _domainkey.owasp.org
    ftp.webscarab.net
    webscarab.org
    ftp.webgoat.org
    es.owasp.org
    www.owasp.net
    austin.owasp.org
    owasp.fr
    owasp.tw
    beta.owasp.org
    www.webgoat.org
    webgoat.org
    owasp.net
    www.owasp.org.tw
    blogs.owasp.org
    ftp.webscarab.com
    webscarab.net
    forum.owasp.org
    ml1.owasp.org
    old.owasp.org
    www.webscarab.com
    www.owasp.fr
    imap.webscarab.net
    pop.webgoat.org
    ww.owasp.org

Fierce

Fierce (http://ha.ckers.org/fierce/) est un outil de recherche DNS écrit en PERL pour Linux.

root@bt:/pentest/enumeration/fierce# cat ~/tmp.txt
Now logging to /root/tmp.txt
DNS Servers for owasp.org:
        ns1.secure.net
        ns2.secure.net

Trying zone transfer first...
        Testing ns1.secure.net

Whoah, it worked - misconfigured DNS server found:
owasp.org.      86400   IN      SOA     ns1.secure.net. hostmaster.secure.net. (
                                        2007080369      ; Serial
                                        86400   ; Refresh
                                        7200    ; Retry
                                        2592000 ; Expire
                                        86400 ) ; Minimum TTL
owasp.org.      86400   IN      A       216.48.3.18
owasp.org.      86400   IN      NS      ns1.secure.net.
owasp.org.      86400   IN      NS      ns2.secure.net.
owasp.org.      86400   IN      MX      30 ASPMX2.GOOGLEMAIL.COM.
owasp.org.      86400   IN      MX      30 ASPMX3.GOOGLEMAIL.COM.
owasp.org.      86400   IN      MX      30 ASPMX4.GOOGLEMAIL.COM.
owasp.org.      86400   IN      MX      30 ASPMX5.GOOGLEMAIL.COM.
owasp.org.      86400   IN      MX      10 ASPMX.L.GOOGLE.COM.
owasp.org.      86400   IN      MX      20 ALT1.ASPMX.L.GOOGLE.COM.
owasp.org.      86400   IN      MX      20 ALT2.ASPMX.L.GOOGLE.COM.
owasp.org.      86400   IN      TXT     "v=spf1 include:aspmx.googlemail.com ~all"
*.owasp.org.    86400   IN      CNAME   owasp.org.
ads.owasp.org.  86400   IN      A       216.48.3.26
austin.owasp.org.       86400   IN      CNAME   owasp.org.
calendar.owasp.org.     86400   IN      CNAME   ghs.GOOGLE.COM.
docs.owasp.org. 86400   IN      CNAME   ghs.GOOGLE.COM.
es.owasp.org.   86400   IN      A       216.48.3.18
forums.owasp.org.       86400   IN      A       216.48.3.19
google6912a08c3a8cdf0b.owasp.org.       86400   IN      CNAME   GOOGLE.COM.
groups.owasp.org.       86400   IN      CNAME   ghs.GOOGLE.COM.
jobs.owasp.org. 86400   IN      CNAME   owasp.org.
lists.owasp.org.        86400   IN      A       216.48.3.22
lists.owasp.org.        86400   IN      MX      10 ml1lists.owasp.org.
localhost.owasp.org.    86400   IN      A       127.0.0.1
mail.owasp.org. 86400   IN      CNAME   ghs.GOOGLE.COM.
ml1lists.owasp.org.     86400   IN      A       216.48.3.30
registration.owasp.org. 86400   IN      CNAME   owasp.org.
stage.owasp.org.        86400   IN      A       216.48.3.20
voip.owasp.org. 86400   IN      A       216.48.3.22
www.owasp.org.  86400   IN      CNAME   owasp.org.
Okay, trying the good old fashioned way... brute force

Checking for wildcard DNS...
        ** Found 94784227069.owasp.org at 216.48.3.18.
        ** High probability of wildcard DNS.
Now performing 1896 test(s)...
216.48.3.26     ads.owasp.org
216.48.3.19     forums.owasp.org
216.48.3.22     lists.owasp.org
127.0.0.1       localhost.owasp.org
216.48.3.20     stage.owasp.org
216.48.3.22     voip.owasp.org

Subnets found (may want to probe here using nmap or unicornscan):
        127.0.0.0-255 : 1 hostnames found.
        216.48.3.0-255 : 5 hostnames found.

Done with Fierce scan: http://ha.ckers.org/fierce/
Found 1895 entries.

Have a nice day.

Foca 2


http://www.informatica64.com/DownloadFOCA/

Foca 2 est un outil Windows qui combine recherche sur les moteurs et les DNS. Il bénéficie d'une interface graphique agréable et présente une capture spider du site qui peut être utile. Il référence les meta données récupérées dans les documents, ainsi que les sous-domaines, les Ips et éventuellement une cartographie des serveurs.




Conclusion


Durant cette étude, nous avons déroulé la méthode du footprinting. Sans accéder au site, ou en nous contentant de le parcourir une seule fois, nous avons récolté un premier panel d'informations sur le domaine owasp.


Références

1) OWasp testing guide http://www.owasp.org/index.php/Category:OWASP_Testing_Project
2) Mission Security - Jer001 - look for subdomains - http://mission-security.blogspot.com/2008/03/pentesting-dns-look-for-subdomains.html
3) Filip Wayetens - dnsenum1.1 - http://packetstormsecurity.org/filedesc/dnsenum1.1.tar-gz.html
4) outils Sensepost - http://www.sensepost.com/research_misc.html
5) Sensepost footprinting whitepaper - http://www.sensepost.com/restricted/BH_footprint2002_paper.pdf
6) Mission Security - Jer001 - http://mission-security.blogspot.com/2008/04/pentesting-discovery-phase-when.html
7) outils Edge Security - http://www.edge-security.com/soft.php
8) Alessandro 'Jekil' Tanasi - hostmap.rb - http://sourceforge.net/projects/hostmap/files//

5 commentaires:

  1. J'ai lu le même article ici:
    http://ieword.wordpress.com/2010/05/12/tutoriel-pour-le-footprinting-surveillance-de-votre-sites-par-ludovic-tokata/

    ???

    RépondreSupprimer
  2. Merci pour l'info. L'auteur de ce blog a simplement copié collé cet article sans notre accord.

    RépondreSupprimer
  3. Comme d'habitude un excellent travail !

    Merci Ludovic ^_^

    RépondreSupprimer
  4. sacré boulot est d'une belle precision pour moi qui debute totalement !! :) merci et bravo

    RépondreSupprimer