• STATISTIQUES
  • Il y a eu un total de 0 membres et 42110 visiteurs sur le site dans les dernières 24h pour un total de 42 110 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités
    [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [EN] Defcon
    Lancé en 1992 par Dark Tangent, DEFCON est la plus ancienne et la plus grande conférence underground de...
    Hacking
    [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Le "Footprinting"
17-01-2013, 04h40 (Modification du message : 17-01-2013, 15h13 par CyberSee.)
Message : #1
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
Le "Footprinting"
Bonjour à tous,
Certain d'entre vous le fait de façon adroite, d'autre le font comme ça viens et d'autre ne save pas du tout ce qu'ils font. Le "Footprinting" est un art qui vous ouvrira les portes dans l'univers du pentesting.

Il est possible que certain de ceux qui me lisent actuellement ne save même pas de ce dont je vous parle. Permettez-moi donc de commencer par la définition du mot.

Le "Footprinting" est probablement l'une des choses les plus importantes qu'un hacker doit faire avant de tenter de pénétrer un système. Il s’agit de l'art très intense de la collecte d'information liée à une organisation, intranet, internet et extranet. Elle permet de créer un profil complet de la cible.

Le "Footprinting" doit être performé avec précision et de manière contrôlée. Ça fait un petit bout que je n'ai pas partagé avec vous un tuto alors permettez moi de vous partager mon expérience sur ce sujet.

Bien que la collecte d'informations est un processus lent et ennuyeux, il est probablement le processus le plus important qui est nécessaire à faire avant que toute attaque de pentesting soit envisageable ... Il est donc primordial de le faire sans négliger aucune étape.

Étape 1: Collect d'information primaire

Je pense que je n'ai pas vraiment besoin de le dire, mais avant tous, il faut savoir qui et quoi nous voulons pentester lol. Il faut déterminer si vous envisagez d'attaquer une organisation ou si vous avez une cible bien précise. Cela va grandement changer la tactique de collecte d'information.

C'est parfois très surprenant le nombre d'informations que l'ont peut récolter quand on visite le site de la cible. Une bonne pratique est d'utiliser un logiciel pour sniffer l'intégrale du site en HTML. Les logiciels que je recommande pour Windows seraient: "WinHTTrack ou Teleport Pro" et pour unix "Wget".

Une fois sur votre disque dur, vous pourrez récupérer via une recherche tout les commentaires HTML ce qui peut être très pratique pour bien comprendre l'architecture et même identifier le ou les CMS utilisés. Vous pourrez également étudier les différents scripts JS qui sont parfois bien cachés. Ceux qui corresponde en AJAX avec des scripts côté serveur comme PHP peuvent parfois être manipulé pour retourner des informations incroyables sous forme d'un array ou encoder en json. Ses scripts sont souvent détachés du core du site et peuvent souvent être vulnérable à des attaques d'injection SQL. Car il est facile de ce dire en tant que programmeur que personne ne va le remarquer.

Utiliser Google pour apprendre le plus d'information possible sur votre cible est à ne pas négliger. Parfois pour atteindre nos objectifs, il faut passer par des partenaires ou d'autres sites partagent le même serveur. C'est aussi un bon moyen pour trouver des courriels d'employer et même des adresses.

Effectuer un reverse domain sur le domaine de la cible.

http://www.yougetsignal.com/tools/web-si...eb-server/

Il arrive souvent que la porte d'entrée que vous trouverez sur le serveur réside dans un autre site héberger au même endroit. Il sera donc important de visiter chacun de ses sites et d'effectuer au audit de sécurité afin dévaluer vos chances d'effectuer des attaques au serveur qui pourrait être bénéfique a votre but premier. Attention à ne pas vous égarer... Rappeler vous de votre objectif et surtout n'effectuer aucune opération que vous n'avez pas préalablement eu l'autorisation de faire.

Étape 2: Réseau

La première étape est d'identifier les noms de domaine et réseaux connexes relatifs à cette organisation. Pour les noms de domaine, faire un WHOIS est une étape importante à ne pas négliger. Il existe de nombreux endroits ou vous pouvez le faire. Domaintools.com étant un que j'apprécie énormément. Vous pouvez également utiliser intodns.com et dnswatch.info pour obtenir des informations supplémentaires sur les DNS. Cela peut être particulièrement intéressant pour trouver des serveurs internes qui serviraient également de serveur mail. Il est important aussi d'identifier la plateforme et la version du serveur utiliser. Un bon outil pour ça que j'apprécie est:

http://uptime.netcraft.com/up/graph?site..._sible.com

Vérifier les vulnérabilités rapporter pour cette version du serveur est très important. Netcraft offre d'ailleurs plusieurs autres outils que je vous conseille de visiter.

Un autre truc qui peut aider à collecter des informations sur la structure de leur réseau est le traceroute qui consiste à vous donner une compréhension de la topologie du réseau que nous essayons d'attaquer. Pour ce faire, les outils dont vous aurez besoin sont traceroute pour les utilisateurs UNIX et tracert pour les utilisateurs Windows.

En gros, traceroute envoie des paquets à partir de votre ordinateur sur les ordinateurs cibles. Chaque commutateur ou routeur qu'il traverse renvoie des informations vers votre ordinateur.

La commande à effectuer est:
[bash]$ traceroute <domain>.<suffix>

Ce qui vous retournera un truc dans le genre de:

Code :
[bash]$ traceroute www.drdfrn.co.za
traceroute to www.drdfrn.co.za (193.45.150.151), 64 hops max, 40 byte packets
1  gw (156.231.112.234)  6.318 ms  9.638 ms  10.079 ms
2  drdfrn.ru.ac.za (126.23.148.54)  9.570 ms  9.775 ms  10.009 ms
3  ru03.drdfrn.ru.ac.za (192.46.79.1)  11.117 ms  8.343 ms  9.981 ms
4  bbs-ruf-mcg-ipnet.uni.net.za (158.252.214.9)  25.978 ms  24.893 ms  24.296 ms
5  unknown.unis.net.za (155.232.30.6)  61.537 ms  47.080 ms  52.064 ms
6  intd-rud-mcw-ipnet.uni.net.za (115.222.220.135)  376.040 ms  223.358 ms  224.651 ms
7  tenetf-nationalw-routerd.uni.net.za (145.22.36.4)  45.892 ms  43.787 ms  53.357 ms
8  natw-rue-mce-ipnet.uni.net.za (25.32.242.145)  50.791 ms  71.585 ms  56.101 ms
9  wblvr-ipr-es3r-1-wan.telkome-ipnet.co.za (15.255.231.133)  43.296 ms  48.826 ms  48.247 ms
10  eelr-ip-er3-1-atm2-6-0-5.telkome-ipnet.co.za (146.45.31.72)  76.126 ms  298.927 ms                
    180.148 ms
11  prm3-mediad-marketingd-gw3.ec.saix.net (193.45.14.26)  370.002 ms  94.990 ms  146.403 ms
12  albany1d.drdfrn.co.za (196.3.30.14)  183.212 ms  123.657 ms  143.289 ms

En règle générale, et en fonction de la complexité de l'organisation, on peut supposer que le saut avant la destination finale est le routeur de l'organisation qui fait office de firewall.

Une fois que vous avez collecté toutes ses informations, il est important de les épurer afin que les informations excédentaires de nuise pas au portrait global que vous essayez d'effectuer. Prenez toute foi garde à bien réfléchir aux informations que vous vous apprêter a supprimé ...

Un truc que beaucoup de monde néglige est le contact administratif du serveur que vous aurez obtenu dans votre WHOIS. C'est un élément important, car avec sont nom et courriel vous pourriez entrer en contact avec la cible en substituant votre courriel pour celui de l'administrateur (Email spoofing). Il vous serait donc possible de récupérer plusieurs informations sensibles en vous assurant que le "Reply-to" dans le header de votre mail point a un courriel que vous pourrez récupéré par la suite.

Cette opération peut être fait très facilement en PHP. Voici un exemple de code qui permetrait de ce faire passer pour un autre.

Code PHP :
<?php

if ($_POST){
    
// On traite les headers du mail
    
$headers 'From: ' $_POST[de] . "\r\n" .
        
'Reply-To: ' $_POST[reply] . "\r\n" .
        
'X-Mailer: PHP/' phpversion();
    
    
mail($_POST[a], $_POST[sujet], $_POST[message], $headers);
    
    echo 
"Message envoyé!";
    
}else{
    
// On affiche le formulaire
    
print ('<form method="post">
            <p>Sujet:<input type="text" name="sujet" size="73"><br>
            Ã€: <input type="text" name="a" size="76"><br>
            De: <input type="text" name="de" size="75"><br>
            Reply-to : <input type="text" name="reply" size="67"><br><br>
            Message:<br><textarea rows="9" name="message" cols="48"></textarea></p>
            <p><input type="submit" value="Submit" name="B1"></p></form><br><br> Par CyberSee'
);
}

?>

Utilisez la forme "Prénom Nom <courriel>" standard dans les champs pour plus de réalisme. Rappelez -vous cependant que le serveur mail qui va envoyer le courriel et celui qui recevras le reply peuvent être facilement retraçable ... prenez les précautions qui s'impose. Mais de toute façon, puisqu'il s’agit d'un pentesting légal, le but n'est pas de vous protégez, mais de ne pas ce faire repéré.

Il ne faut jamais écarter les possibilités de SE qui s'offre à vous quand on fait un pentesting. Ses souvent une faille humaine qui ce cache derrière les infiltrations les plus dévastatrices. Trouver les maillons faibles d'une organisation est un bon moyen d'arriver à nos fins.

Étape 3: Scan

Avec tout les informations que vous aurez obtenues, et une fois le ménage effectuer sur ce qui est pertinent et pas, vous êtes rendu a l'étape du scan. Premièrement, vérifier les ports ouverts sur tous les IP de votre cible. Certains ports pourraient être vulnérables à des attaques.

Il existe plusieurs logiciels qui peuvent le faire, mais voici un code partager par khaled en PHP qui fera très bien l'affaire.

Code PHP :
<?php
namespace core_01;
function 
analyse_ports($host=null,$min_port=null,$max_port=null,$print=null)
{
        
/*
                Version 1.0
                Cette fonction "Analyse des Ports d'une Machine" possede 4 parametres:
                OGLIGATOIRE     : le 1er est l'hote que l'on veut tester.
                FACULTATIF      : le 2eme est le port minimun que l'on veut tester (par default 1)
                FACULTATIF      : le 3eme est le port maximun que l'on veut tester (par default du 2eme parametre)
                        (donc un seul port est tester)
                FACULTATIF      : le 4eme définit l'affichage (par default rien ne seras affichés)
                        (1 correspond aux ports fermes et 2 correspond aux ports ouverts et 3 Ã  tous les ports  )

                /!\ note : Si ni le 2eme, ni le 3eme paramètre est passer, alors tous les ports seront analysers!
                (malgrer ce que pourrais faire croire les phrases en haut  )

                Exemple d'appel : analyse_port('127.0.0.1',80,120,2);
                afficheras les ports ouverts sur 127.0.0.1 allant de 80 Ã  120 

                Elle retourne un array Ã  deux dimensions $result['open_ports'][] et $result['close_ports'][]
        */

        
global $_VAR;global $_TEXT;

        
$result=null;

        if(
$host!=null)
        {
                
$host=htmlspecialchars($host);
                if(
filter_var(gethostbyname($host), FILTER_VALIDATE_IP))
                {
                        if(
$min_port==null&&$max_port==null)
                        {
                                
$min_port=1;
                                
$max_port=65536;
                        }
                        if(
is_numeric($min_port)&&$min_port>=1&&$min_port<=65536)
                        {
                                
$min_port=intval($min_port);
                                if(
$max_port==null)
                                {
                                        
$max_port=$min_port;
                                }
                                if(
is_numeric($max_port)&&$max_port>=1&&$max_port<=65536&&$max_port>=$min_port)
                                {
                                        
$max_port=intval($max_port);
                                        if(
$print==null||$print==1||$print==2||$print==3)
                                        {
                                                for(
$min_port=$min_port;$min_port<=$max_port;$min_port++)
                                                {
                                                        if (@
fsockopen($host,$min_port))
                                                        {
                                                                
$result['open_port'][]=$min_port;
                                                        }
                                                        else
                                                        {
                                                                
$result['close_port'][]=$min_port;
                                                        }
                                                }
                                                if(
$print==1)
                                                {
                                                        foreach(
$result['close_port'] as $key=>$value)
                                                        {
                                                                echo 
'port ',$value,' is close at ',$host,'<br />';
                                                        }
                                                }
                                                elseif(
$print==2)
                                                {
                                                        foreach(
$result['open_port'] as $key=>$value)
                                                        {
                                                                echo 
'port ',$value,' is open at ',$host,'<br />';
                                                        }
                                                }
                                                elseif(
$print==3)
                                                {
                                                        
$test_1=array_flip($result['close_port']);
                                                        foreach(
$test_1 as $key=>$value)
                                                        {
                                                                
$test_1[$key]='close';
                                                        }

                                                        
$test_2=array_flip($result['open_port']);
                                                        foreach(
$test_2 as $key=>$value)
                                                        {
                                                                
$test_2[$key]='open';
                                                        }

                                                        
$test=$test_1+$test_2;
                                                        
ksort($test);

                                                        foreach(
$test as $key=>$value)
                                                        {
                                                                echo 
'port ',$key,' is ',$value,' at ',$host,'<br />';
                                                        }
                                                }
                                        }
                                        else
                                        {
                                                echo 
'error in function analyse_port : false parameter print!';
                                                return 
false;
                                        }
                                }
                                else
                                {
                                        echo 
'error in function analyse_port : false parameter max_port!';
                                        return 
false;
                                }
                        }
                        else
                        {
                                echo 
'error in function analyse_port : false parameter min_port!';
                                return 
false;
                        }
                }
                else
                {
                        echo 
'error in function analyse_port : false host!';
                        return 
false;
                }
        }
        else
        {
                echo 
'error in function analyse_port : false parameter host!';
                return 
false;
        }
        return 
$result;


Il est important d'utiliser des logiciels automatiser d'audit de sécurité. Je vous conseil nikto qui est très puissant et complet. Bien que vous avez acquis avec le temps beaucoup de connaissance sur les différentes failles, les logiciels sont en mesure de les tester pour vous à une bonne vitesse et trouveront sans doute les failles les plus évidentes en n'oubliant aucune variante.

Bien entendu, ce serait une énorme erreur de prétendre que votre audit serait complet quand il affiche 100%. BEACOUP BEAUCOUP de faille réside à des endroits que le logiciel ne peux pas accéder ou ne connais pas encore. C'est là que le cerveau humain et vos compétences acquises doivent entrer en jeux.

Utilisez la version HTML que vous avez préalablement clonée. Scrutez-la avec minutie. Si le site en question utilise un CMS, téléchargez-la, lisez la source. Installez-le en serveur local et testez les options et les manipulations possibles. Essayez d'identifier la version utilisée et renseignez-vous sur les failles déjà connues. Ne faites pas l'erreur de vous fier qu'à ce qui a été publié ... Le meilleur réside dans ce qui est inconnu aux autres. À vous de les trouver! et ses ici que votre aventure commence!

Conclusion
Le "Footprinting" est un must pour tout hacker qui se respecte. Utilisez les informations que vous récoltez, soyez créatif et évidemment ne faites rien que vous pourriez regretter. Un "Footprinting" bien formaté vous guidera tout au long de vos exploitations et servira de base pour votre rapport final.

Soyez intelligent et restez WhiteHat!
Par CyberSee
Code PHP :
<?php
$pape 
"pape"; echo $pape
// Le $pape en string!
?>
+1 (8) -1 (0) Répondre


Messages dans ce sujet
Le "Footprinting" - par CyberSee - 17-01-2013, 04h40
RE: Le "Footprinting" - par ThibauT - 17-01-2013, 13h50
RE: Le "Footprinting" - par InstinctHack - 17-01-2013, 14h29
RE: Le "Footprinting" - par CyberSee - 17-01-2013, 15h13
RE: Le "Footprinting" - par gruik - 17-01-2013, 15h19
RE: Le "Footprinting" - par CyberSee - 17-01-2013, 15h24
RE: Le "Footprinting" - par gruik - 17-01-2013, 16h10
RE: Le "Footprinting" - par Yttrium - 17-01-2013, 21h40
RE: Le "Footprinting" - par Di0Sasm - 11-02-2013, 00h00
RE: Le "Footprinting" - par Swissky - 18-01-2013, 08h09
RE: Le "Footprinting" - par InFamouZz - 18-01-2013, 13h24
RE: Le "Footprinting" - par CyberSee - 10-02-2013, 23h24

Atteindre :


Utilisateur(s) parcourant ce sujet : 6 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut