Muhstik, ou comment tester la securité de votre reseau irc.

* Ce tutorial est destiné aux utilisateurs de Windows(c)

Muhstik est un logiciel pratique pour les proprietaires de reseau irc, afin de tester la securité de ce dernier. Il permet de mener des attaques de clones. Cet outil va donc pouvoir vous permettre de tester la resistance de votre reseau, ou la capacité de vos IRCops a faire face a ce genre de problemes. Bien sur, ce type de tests ne doit etre effectué QUE sur votre propre reseau... Il est interdit par la loi de faire des attaques de clones, en l'utilisant, vous engagez votre responsabilité et devrez en assumer les consequences si vous en abusez. Je decline toute responsabilité quand a l'usage que vous en ferez. Ce logiciel et ce tutorial sont des outils destinés à permettre à des proprietaires de reseau IRC de prendre conscience des risques que peuvent representer les attaques de clones, et a leur montrer ou sont les faiblesse pour pouvoir en tenir compte dans la configuration de leur serveur.

1 Cygwin

1.1 Pourquoi Cygwin ?

Cygwin permet à des programmes écrits pour Linux d'être compilés et exécutés sous Windows. Ainsi muhstik requiert la librairie cygwin1.dll de Cygwin pour fonctionner sous Windows.

De plus, muhstik vient avec une série de scripts nécessitant le shell Bash. Ce dernier est disponible pour Windows via la distribution Cygwin.

1.2 Installation

  1. Lancez le fichier d'installation récupérable à l'URL suivante : http://www.cygwin.com/setup.exe.

  2. Choose A Download Source : sélectionnez l'option "Install from Internet".

  3. Select Root Install Directory : spécifiez le répertoire où Cygwin sera installé. Laissez les autres options à leur valeur par défaut.

  4. Select Local Package Directory : spécifiez le répertoire où les paquets Cygwin seront téléchargés.

    Remarque : si jamais vous deviez réinstaller Cygwin, il peut être utile de le faire à partir de ce répertoire plutôt que de télécharger à nouveau tous les paquets. Dans ce cas, sélectionnez l'option "Install from Local Directory" à l'étape b.

  5. Select Your Internet Connection : rien à changer normalement.

  6. Choose A Download Site : sélectionnez un serveur FTP proche de chez vous. La liste des paquets installables va ensuite s'afficher.

  7. Select Packages : dans la rubrique "Shells", vérifiez que bash est sélectionné (normalement il l'est par défaut).

    Choix des paquets de Cygwin

    Cliquer sur Suivant commencera le téléchargement, suivi directement par l'installation.

    Remarque 1 : chez moi (ligne à 4 Mbps down), l'opération a pris une bonne minute pour le téléchargement et une petite autre pour l'installation des fichiers.

    Remarque 2 : si une erreur de téléchargement est signalée, retournez à l'étape 6 et choisissez dans la joie et la bonne humeur un autre serveur FTP. Sachez toutefois que ftp://ftp-stud.fht-esslingen.de m'a bien réussi.

2 muhstik

2.1 Installation

  1. Avant de commencer, lancez d'abord un shell avec Cygwin afin de créer votre répertoire utilisateur. C'est là que vous installerez muhstik.

    Normalement l'installateur de Cygwin aura créé une entrée dans le Menu Démarrer : Programmes -> Cygwin -> Cygwin Bash Shell. Cliquez dessus pour lancer le shell. S'il n'y a rien dans le Menu Démarrer, lancez simplement le script cygwin.bat présent dans le répertoire de Cygwin.

    En supposant que vous ayez installé Cygwin sur C:\ et que votre login soit "tartempion", cela créera le répertoire C:\cygwin\home\tartempion\.

  2. Récupérez l'archive muhstik-<version>-cygwin.zip sur http://sourceforge.net/projects/muhstik/ et décompressez-la dans votre répertoire utilisateur Cygwin. Vous devriez aboutir à une arborescence de fichiers semblable à ceci :

    Le projet muhstik a ete supprimé de Sourceforge, peut-etre parce qu'il n'est plus maintenu, toutefois vous pouvez quand meme trouver les sources de ce logiciel ici : Muhstik pour Linux Muhstik pour Windows Attention toutefois, il m'a ete signalé pour la version windows qu'il contiendrait un virus... Je ne sais pas si c'est le logiciel lui meme qui est reconnu comme tel, mais n'ayant plus windows (Linux est tellement mieux...), je n'ai pas pu verifier personnellement. J'ai donc demandé a deux personnes, une sous XP avec Antivir qui a detecté un virus, et l'autre sous vista avec kapersky, qui n'a rien detecté. Le second a changé le format d'archive en ZIP (C'etait un RAR a l'origine). Normalement, il n'y a aucun soucis, toutefois vous le telechargez a vos risques et perils, je vous ai prévenu et je decline toute responsabilité en cas de probleme. Si vous avez plus d'information a ce sujet, n'hesitez pas a nous en faire part dans les commentaires.

    Arborescence de muhstik

2.2 Configuration

Avant de pouvoir utiliser muhstik, il faut d'abord établir les listes de proxys à utiliser et la liste des serveurs IRC cibles. Tous ces fichiers devront se trouver dans le répertoire de muhstik.

2.2.1 Proxys

Créez un fichier texte par type de proxy utilisé : proxys.txt, socks4.txt, socks5.txt, ... Placez-y ensuite les adresses des proxys à raison d'une ligne par proxy, chaque ligne étant de la forme <hote>:<port>. Exemple :

socks4.txt :

85.130.149.222:22157
62.204.144.207:1080
82.224.83.56:52840
 

proxys.txt :

128.134.184.92:8080
194.165.130.93:8080
201.44.216.23:6588
 

2.2.2 Serveurs IRC

Les serveurs IRC sont définis dans un fichier servers.txt. Chaque ligne du fichier sera de la forme <hote>:<port> <nb_max_de_clones>. Exemple :

irc.mon_serveur.com:6667 10
irc.mon-autre-serveur.com:6667 50
 

2.2.3 Fichier de configuration

Ouvrez muhstik.conf avec un éditeur et décommentez les lignes (en enlevant les dièses au début) correspondant aux types de proxy que vous allez utiliser.

Pour chaque type de proxy, spécifiez la liste de proxys à utiliser, la liste des serveurs IRC auxquels vont se connecter ces proxys et le nom du fichier dans lequel seront sauvegardés les "bons" proxys (ceux qui ont permis de créer des clones). Exemple :

# Uncomment the following lines if you wish to use SOCKS4

sock4_list socks4.txt
sock4_server_list servers.txt
sock4_save good_socks4.txt

# Uncomment the following lines if you wish to use SOCKS5

sock5_list socks5.txt
sock5_server_list servers.txt
sock5_save good_socks5.txt

# Uncomment the following lines if you wish to use PROXYS

proxy_list proxys.txt
proxy_server_list servers.txt
proxy_save good_proxys.txt
 

Parmi d'autres paramètres utiles :

  • clones <nombre> : permet plusieurs connexions à partir d'un même proxy ;
  • chan <canal> : permet de spécifier un canal rejoint par les clones à leur connexion.

Encore beaucoup d'autres choses sont paramétrables. RTFM

2.3 Exécution

  1. Lancez le shell de Cygwin si ce n'est déjà fait.

  2. Lancez muhstik via les commandes

    cd muhstik
    ./muhstik muhstik.conf

    Exécution de muhstik

    Tapez help ou ? pour obtenir la liste des commandes disponibles.

2.4 Utilisation des scripts

muhstik fournit des scripts shell permettant d'effectuer des opérations à intervalles réguliers : requêtes CTCP, messages, changer le nick des clones, etc. Ces scripts se trouvent dans le sous-répertoire script de muhstik.

2.4.1 Configuration

Un script s'exécute séparément de muhstik, dans un autre shell. Pour que muhstik reçoive les commandes du script, il faut le configurer en mode serveur, les connexions étant acceptées sur base d'un mot de passe.

  1. Décommentez le paramètre link_pass à la fin du fichier muhstik.conf et choisissez un mot de passe. Exemple :

    ###################################################################
    # [ADVANCED] LINK SETTINGS                                        #
    ###################################################################
    
    # Password to authenticate muhstiks (required)
    link_pass 1mot2passe
    
    # To set the port of the link server
    # [default=7777]
    #link_port 7777
         
  2. Editez le fichier script\common.sh et mettez le même mot de passe. Exemple :

    ######################################
    # hostname of the server
    HOST=localhost
    
    # port of the server
    PORT=7777
    
    # The botnet password
    PASS="1mot2passe"
         

2.4.2 Exécution

Je montre ici comment utiliser le script msg.sh qui permet d'envoyer un message à un utilisateur ou un canal de manière périodique.

  1. Lancez d'abord muhstik dans un shell.

    Remarque : votre pare-feu vous demandera peut-être de permettre à muhstik.exe d'écouter sur le port 7777.

  2. Ouvrez un autre shell et entrez-y les commandes suivantes :

    cd muhstik/script
    ./msg.sh

    Remarque : de nouveau, votre pare-feu pourrait vous avertir d'une tentative de connexion de telnet.exe vers 127.0.0.1:7777. La raison est que le script msg.sh utilise le programme telnet pour envoyer ses commandes à muhstik.

    Si tout se passe bien, "connected" est affiché. Rentrez alors les paramètres du script.

    Exécution du script msg.sh

  3. Arrêtez le script en appuyant sur Ctrl-C.

2.4.3 Un script à ajouter

Voilà un autre script qui permettra d'écrire des lignes aléatoirement à partir d'un fichier texte

Pour cela il suffit de copier ce qui suit dans un nouveau fichier, de l'enregistrer avec n'importe quel nom dans le répertoire script/ et d'y mettre un fichier texte qui doit obligatoirement s'appeler "lignes.txt" (ou alors faut modifier le script)

Ce script marche de la façon suivante ./script.sh NOMBRE_DE_LIGNES_ALEATOIRES NOM_DU_SALON_SANS_#_DEVANT

#!/bin/sh

#./script.sh <NOMBRE_DE_LIGNES_RANDOMS> <SALON_SANS_#> 

# Nom
NAME="[msg]"

. ./common.sh

function readalea()
{
 nb=$(cat lignes.txt | wc -l)
 if [ $1 -le $nb ]
 then
   a=1
   while [ $a -le $1 ]
   do
      i=$[($RANDOM % nb) + 1]
      ln=$(head -n $i lignes.txt | tail -n 1)
      echo "privmsg #$2 :$ln"
      a=$(($a+1))
   done
 fi
}


msg () {
  init
  while true
  do
    readalea "$1" "$2"
    xsleep 4
  done
}

msg "$1" "$2" | telnet $HOST $PORT

Last modified : Mon Jul 3 15:14:37 CEST 2006

4 commentaires:

Anonyme a dit…

Sa a l'air bien pour tester notre serveur mais sa marche pas...

Anonyme a dit…

Pas tout jeune ce Muhstik =)

Les personnes qui l'ont dev avaient déjà pondu un autre cloner bien plus basique.

Mais ... bonne nouvelle : ils ont lancé un nouveau forum pour participer à l'évolution de la prochaine generation de cloners.

Google et une paire de mains suffira pour trouver ;o)

Anonyme a dit…

Quel dommage, prendre la peine de dire tout ca et ne meme pas donner le lien :s

Anonyme a dit…
Ce commentaire a été supprimé par un administrateur du blog.