hack,serveur,linux,awstat

Cela faisait 2 ans et demi qu'il tournait sans aucun soucis et je viens de me faire hacké hier soir par des Roumains.
Voici toutes les explications sur leur attaque et de la façon dont j'ai pu détecter leur attaque ....

J'ai tout d'abord analysé les ports ouverts de ma machine :


# netstat -pa 

J'ai remarqué qu'il y avait des processus qui se connectaient à Undernet, un réseau IRC.
J'ai donc vérifier mon hyposthèse :


# tcpdump -X -i eth0 dest port ircd

En analysant les trames sniffées, j'en ai conclu qu'il s'agissait bien de trames IRC, je recevais en effet des "IRC PING" de Undernet.

En réalisant un :


#ps -eaf | grep 2290

2290 étant le port que j'ai noté lors de ma dernière commande, j'ai relevé un processus anormal qui tourne sous le nom de ''xinetd'' avec les droits de ''apache''. Chose qui ne devrait jamais arriver sur un système ....

Je me suis donc précipité dans mon répertoire ''/proc/2290'' pour analyser le processus qui était en train de tourner, et voici ce que j'ai découvert :

En analysant le fichier d'environnement associé au processus, j'y ai découvert la cause du problème :


REQUEST_URI=//cgi-bin/awstats/awstats.pl?configdir=%7cecho%20%3becho%20b_exp%3bcd%20%2ftmp%2f%2e%7e%3bexport%20PATH%3d%3bxinetd%3becho%20e_exp%3b%2500

Louche la requête n'est-ce pas ? Cela me semble tout simplement l'utilisation d'un trou de sécurité de AWSTAT ...
En plus de cette variable, voici une variable intéressante :


REMOTE_ADDR=83.16.79.166

Il s'agit de l'adresse de la machine qui a piraté mon serveur. Je me suis donc amusé à scanner la machine cible :


# nmap -O 83.16.79.166

Et j'y ai découvert des choses intéressantes :


 Interesting ports on adb166.internetdsl.tpnet.pl (83.16.79.166):
 (The 1646 ports scanned but not shown below are in state: closed)
 PORT      STATE SERVICE
 21/tcp    open  ftp
 22/tcp    open  ssh
 25/tcp    open  smtp
 53/tcp    open  domain
 80/tcp    open  http
 443/tcp   open  https
 465/tcp   open  smtps
 587/tcp   open  submission
 993/tcp   open  imaps
 995/tcp   open  pop3s
 10000/tcp open  snet-sensor-mgmt

Tout d'abord la machine est une machine polonaise qui est connectée à de l'ADSL, chez le FAI TPNet, l'équivalant de notre Wanadoo local ...
Ensuite cette machine semble avoir beaucoup de ports ouverts .... Je reconnais qu'il s'agit que des ports des principaux services : pop,smtp, ftp,ssh ..
Le "-O" du nmap m'a permis de savoir qu'il s'agit en fait d'une machine i686 sous Linux :


 SInfo(V=3.45%P=i686-pc-linux-gnu%D=11/21%Time=43824F70%O=21%C=1)

Deux hypothèses viennent à mon esprit, soit cette machine correspond à la personne qui a piraté mon serveur, soit c'est un relais qui a été utilisé à l'insu de son propriétaire. Pour vérifier ces hypothèse, je décide de collecter plus d'informations sur cette machine :


 pundit root # telnet 83.16.79.166 25
 Trying 83.16.79.166...
 Connected to 83.16.79.166.
 Escape character is '^]'.
 220 www.sp342.waw.pl ESMTP Sendmail 8.13.4/8.13.3; Tue, 22 Nov 2005 01:02:57 GMT

Son serveur de mail est paramétré pour relayer le courrier de "www.sp342.waw.pl" .... Pas vraiment informatif ...


# dig @83.16.79.166 

Son serveur DNS ne semble pas contenir de domaine propre


 http://83.16.79.166

Un beau logo "Under Construction"

Étrange !

Je continu donc mes recherches la où j'en étais tout à l'heure, c'est à dire dans le repertoire "/proc/2290"
Et la je vois un beau lien "cwd" pointant vers mon répertoire /tmp/

Un beau petit fichier boti.tar.gz ... Cela me rappelle quelque chose tout cela, il ne s'agirait pas du bot IRC ?
En fouillant un peu, je découvre le repertoire où celui-ci a été installé : ''/tmp/.~''
Un petit "ls" et la je découvre l'arme du crime ;-) un bot irc au doux nom de "checkmech", je sauvegarde toute les données associé au Bot dans un répertoire sur et je kill le processus 2290 pour que le bot se déconnecte de l'IRC :


# kill -9 2290

Je revérifie que le bot est bien mort en réalisant un :


# netstat -na

Et là je découvre que tout est fermé, je peux donc continuer mon investigation, le bot est bien mort ...
Je jette un oeil dans le fichier de configuration du bot "mech.set" et je découvre tous les paramètres du bot de mon pirate.


 SERVER 195.204.1.132
 SERVER 66.198.80.67
 SERVER 193.110.95.1
 SERVER 195.54.102.4
 SERVER 217.106.2.92
 SERVER 205.252.46.98
 SERVER 66.28.140.14
 SERVER 194.134.7.194
 SERVER 132.207.4.32
 ENTITY x
 PASS mafia
 PORT 31337

 ###BOT 1###
 NICK isp1
 USERFILE 1.user
 CMDCHAR -
 LOGIN marcela
 IRCNAME Deschide Gura SC#-ti Predau LegC#tura 
 MODES +i-ws
 HASONOTICE
 TOG CC          1
 TOG CLOAK       1
 TOG SPY         1
 SET OPMODES     6
 SET BANMODES    6
 CHANNEL         #akka
 TOG PUB         1
 TOG MASS        1
 TOG SHIT        1
 TOG PROT        1
 TOG ENFM        0
 SET MKL         7
 SET MBL         7
 SET MPL         1
  ...... etc ....

Les bots utilisés portent donc le nom de ispn ou n s'incrémente de 1 en 1.

Un petit coup d’œil dans le fichier "mech.session" :


 tog SPY 1
 channel #sellers
 tog AOP 1
 channel #ISP
 tog AOP 1
 channel #Sh3ll
 tog AOP 1
 channel #kr
 tog AOP 1
 channel #B:
 tog AOP 1

Les bots ont donc été utilisés pour squatter ces channels IRC ....
Je me rend donc dans ces channels, et je me fait jetter des 3 premiers qui sont protégés par des mots de passe.
Je continue ma route ... .... J’hallucine .. Pleins de bots ...

Bon mon investigation s'arrête ici, cela ne sert à rien d'aller plus loin dans mes recherches ....
Juste la conclusion de l'article, si vous utilisez AWSTATS, désinstallez le de suite !!

Voici les identité des pirates :


 handle          dani
 mask            *!*@danylo.users.undernet.org

et


 handle          gang
 mask            *!*@Romania.users.undernet.org

Je vais réinstaller Snort sur ma machine :-)