Attaquer un serveur IRC

Publié le par Satellite

Avant toute chose, je signale que ce cours, tout comme tous les cours de ce blog est diffusé à but purement informatif, et n'a pour objectif que de vous aider a tester votre PROPRE sécurité. Je me dégage de toute responsabilité quant à une mauvaise utilisation de ces scripts, et des informations divulguées.

Un serveur irc sert à la création de salons sur lesquels des clients "les chatteurs" peuvent discuter en temps réel. Le protocole IRC est assez simple (je vous renvoie à developpez.com qui explique très bien son fonctionnement). Nous allons tenter d'attaquer un serveur IRC (1.1.1.1) utilisant un robot de protection et de modération, appelé Xénon (référence...) tournant sous UNREALiRC doté des services An0pe (Nickserv, Chanserv,Operserv et Botserv) doté d'un bot anti proxy ScanServ.

La pluspart des dénis de service fonctionnent sur IRC (NetKill,Ack + Psh,SynFlood), cela variant en fonction de sa sécurité. Etudions cependant comment attaquer le serveur pour alterer son bot de modération et sa sécurité. Déroulement de l'attaque :
Je me connecte via Xchat sur le serveur. Un message m'indique que mes ports vont être scannés pour tenter de detecter les proxys insécurisés.
La technique la plus courante d'anti-proxy, autre que la base de donnée iP, est le test de connection. Le serveur va envoyer une serie de sockets et va tenter de se connecter avec le protocole IRC sur ce port. Si la connection fonctionne, le client passe par un proxy insécurisé. Effectivement, le serveur IRC m'envoie une serie de paquets SYN, notament sur mon ports 1080, port courament utilisé par les anonymiseurs socks Je note sur un papier ces informations.

Deuxieme étape : tenter de connecter mes proxys sur la cible. Après une simple recherche sur internet d'anonymiseurs SOCKS,  j'en trouve une centaine. Je note leur IP et le port de connection dans un fichier texte. Mon objectif est de lancer une connection des proxy, et, si ils passent le test de la base de donnée, bloquer les connections de ScanServ sur les ports proxy utilisés par mes clones.

Troisième Etape : Un peu de programmation ! Mon objectif est de creer un script floodant le serveur de paquets ICMP "Host unreachable" afin de faire croire que le port est fermé sur chaque adresse de mes proxys. Cela est simple:


#-*-coding:Utf-8-*-
from scapy.all import *

if __name__ == '__main__':
    while 1:
        for ip,port in listeIP_Ports: #Liste Port etant une variable contenant [ip_proxy,port_proxy]
            send(IP(src = ip,dst = '1.1.1.1')/ICMP(type = 3))



J'envoie le script sur ma box (pour le spoofing IP), je lance mon cloneur (simple, mais long à programmer), et j'envoie par ssh

sudo python spoofer.py

Sur mes 100 proxys, seulement une trentaine a pu se connecter. Je dispose donc de 30 clones sur le serveur. Operserv etant actif, il m'est impossible de tenter de forcer le mot de passe OPER. Je vais tenter de provoquer une erreur fatale du bot afin de le déconnecter.
Je remarque que Xenon, comme tout bot de modération, modère les pseudos. Les pseudos à carractère racistes ou sexuels sont systematiquements bannis de la forme

pseudo.*!*@*.*

Ainsi, il est possible de revenir sur le salon en employant un autre pseudo. De plus, les pseudos bannis sont automatiquements débannis 3600 secondes plus tard. Le bot emploie donc un ou plusieurs Threads pour gérer les banissements. Sachant que le nombre de ressources qu'il peut utiliser est certainement limité, on va tenter de le surcharger.
A travers mon cloneur, je fais joindre tous mes clones sur le salon officiel en leur affectant les surnoms cam1/cam2/cam3...
Le robot les bannit imédiatement. Une simple commande et les 30 proxy reviennent avec un autre pseudo interdit, et ainsi de suite. Au bout d'un moment, le bot se déconnecta (connection reset by peer). Comme quoi n'importe quel bot peut subir un buff overflow. Les listes anti proxy doivent également être mises à jour très régulièrement car le test par socket est facilement contournable

Publié dans Python

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article