Newsgroup: it.comp.os.linux.sys
Titolo: Ale' han bucato pure me!

Oggi ho scoperto di avere avuto un visitatore indesiderato su uno dei miei
server.
Molto probabilmente e' entrato attraverso il server web che era un po'
datato
(apache 1.3.26).
Adesso che l'ho scoperto mi rimangono due problemi:
1) Vorrei sapere che tipo ti attacco e' stato utilizzato per essere sicuro
di
   avere individuato la causa.
   Gli indizi che ho trovato sono:
   - in /tmp c'erano dei file di (mi pare di proprieta' di apache) che pero'
     ho cancellato.
   - in /usr c'e' una dierctory .valy con i seguenti file
     -rwxr-xr-x    1 root     root        13605 apr  2 01:49 netrate
     -rwxr-xr-x    1 root     root         3229 apr  2 01:49 socklist
     -rwxr-xr-x    1 root     root        13633 apr  2 01:49 zgrabb
     -rwxr-xr-x    1 root     root        15023 apr  2 01:49 zportscan
     -rwx------    1 root     root        38601 apr  2 01:49 zps
   - /sbin/init ha la data di ultima modifica aggiornata anche se
     e' uguale bit a bit con l'originale
   - /sbin/ifconfig e' stato rinominato in ifcfg e rimpiazzato da un wrapper
di
     cui riporto l'output di ltrace in fondo al messaggio.
   Qualcuno ha visto nulla del genere?
2) non riesco a ripristinare il file /sbin/ifconfig. Ho provato anche a
ripartire
   con un cd di ripristino ma non posso ne' eliminarlo ne' rinominarlo (non
riesce
   a fare l'unlink). C'e' qualcuno che riesce ad immaginarne la causa?
   Il file system e' un ext3 e mount dice che e' montato in lettura e
scrittura.
Grazie per qualunque suggerimento.
Alessandro.
__libc_start_main(0x08048620, 1, 0xbffffaf4, 0x0804845c, 0x0804891c
<unfinished ...>
__register_frame_info(0x08049a44, 0x08049b40, 0xbffffaa8, 0x08048481,
0x40159154) = 0x40159da0
malloc(128)                                       = 0x08049b60
sprintf("/var/run/runlevel.pid", "%s/%s", "/var/run", "runlevel.pid") = 21
malloc(128)                                       = 0x08049be8
malloc(128)                                       = 0x08049c70
fopen("/var/run/runlevel.pid", "r")               = 0x08049cf8
sprintf("date +%M%S > /tmp/session.null", "date +%%M%%S > %s",
"/tmp/session.null") = 30
system("date +%M%S > /tmp/session.null" <unfinished ...>
--- SIGCHLD (Child exited) ---
<... system resumed> )                            = 0
fopen("/tmp/session.null", "r")                   = 0x08049e68
fgets("5854\n", 128, 0x08049e68)                  = 0x08049c70
atoi(0x08049c70, 0x08049c70, 0x08049be8, 0x08049b60, 0) = 5854
fclose(0x08049e68)                                = 0
sprintf("rm -f /tmp/session.null", "rm -f %s", "/tmp/session.null") = 23
system("rm -f /tmp/session.null" <unfinished ...>
--- SIGCHLD (Child exited) ---
<... system resumed> )                            = 0
fopen("/var/run/runlevel.pid", "r")               = 0x08049e68
fgets("5701\n", 128, 0x08049e68)                  = 0x08049c70
atoi(0x08049c70, 0x08049c70, 0x08049be8, 0x08049b60, 5854) = 5701
fclose(0x08049e68)
--- SIGCHLD (Child exited) ---
<... system resumed> )                            = 0
fopen("/var/run/runlevel.pid", "r")               = 0x08049e68
fgets("5701\n", 128, 0x08049e68)                  = 0x08049c70
atoi(0x08049c70, 0x08049c70, 0x08049be8, 0x08049b60, 5854) = 5701
fclose(0x08049e68)                                = 0
sprintf("echo 5854 > /var/run/runlevel.pi"..., "echo %d > %s", 5854,
"/var/run/runlevel.pid") = 33
system("echo 5854 > /var/run/runlevel.pi"... <unfinished ...>
--- SIGCHLD (Child exited) ---
<... system resumed> )                            = 0
sprintf("/etc/sysconfig/console/load.zk", "/%s/%s/%s/%s.%s", "etc",
"sysconfig", "console", "load", "zk") = 30
fopen("/etc/sysconfig/console/load.zk", "r")      = 0x08049e68
system("/etc/sysconfig/console/load.zk" <unfinished ...>
--- SIGCHLD (Child exited) ---
<... system resumed> )                            = 0
execve(0x08048a24, 0xbffffaf4, 0, 0x08049c70, 0x08049be8 <unfinished ...>
...e di qui in poi credo che esegua l'ifconfig standard.

 scrittura.
lasttr
chattr
bye,
-- 
piergiorgio

 lasttr
lsattr
bye,
-- 
piergiorgio


Grazie!
Alessandro
...che li' per li' pensava fosse un messaggio in rot13 ;-P

 Grazie per qualunque suggerimento.
Staccata la macchina dalla rete, vero?
-- 
GHERdO, happy GNU/linux user.
 
http://www.cyberspace.org/~gherdo/


Adesso si. Pero' non rileva nulla.
Il visitatore sembra abbia usato zk (sembra che mi abbia lasciato una
home directory sul disco che conteneva anche i file di installazione).
Che probabilita' mi dai che io sia riuscito a bloccarlo manualmente
ed e' per questo che non viene rilevato? E quante che sia una falsa pista?
Alessandro.

 ed e' per questo che non viene rilevato? E quante che sia una falsa pista?
Hai usato chkrootkit con binari 'sani'?
per essere completamente sicuro l'ispezione cmq la devi fare su 
filesystem 'freddo': devi fare un boot di un altro S.O. e poi 
controllare i files senza mandare in esecuzione niente da quel disco. In 
altre parole, o smonti (fisicamente) l'HD e lo agganci a un'altra 
macchina sana o fai un boot di un sistema live da CD e poi monti (col 
comando mount) l'HD corrotto e lo esamini con cura.
I rootkit che usano moduli di kernel 'stealth' altrimenti non li vedi 
neanche con il microscopio elettronico :-/
-- 
Fabrizio "Hermooz" Ermini


Ottima domanda: quando e' che il sistema e' abbastanza sano da far funzionare
chkrootkit correttamente ma abbastanza "reale" da presentare i sintomi
dell'attacco?
In altre parole: se faccio il boot da CD, chkrootkit controllera' solo
qualche eseguibile "standard" ma comunque non rilevera' la presenza di
eseguibili "aggiunti" che magari vengono caricati da qualche script d'avvio.
In questo senso risulta forse piu' utile rpm -qa, anche se, essendo il
sistema in questione abbastanza customizzato da' un sacco di falsi positivi.
A questo punto mi rimangono due scelte: autoconvincermi che va' tutto bene
o formattare...
Alessandro


Sto provando snort. Ci sono controindicazioni?
Alessandro.

 Sto provando snort. Ci sono controindicazioni?
Solo che ci azzecca poco, con tripwire...
-- 
Emanuele Balla  aka Skull -  Public Key #661E5CBF on 
www.keyserver.com
+----------------------------------------------------------------------+
"And 1.1.81 is officially BugFree(tm), so if you receive any bug-reports
on it, you know they are just evil lies." (By Linus Torvalds)


Ah... ppero'!
Alessandro.

 ed e' per questo che non viene rilevato? E quante che sia una falsa pista?
Il  punto e`  che qualcuno  e` entrato  e tu  non sai  *COSA* posa  aver
manomesso.
Salva i dati e pialla tutto.


 Sto provando snort. Ci sono controindicazioni?
snort  != tripwire.  In  ogni caso,  spero che  la  box compromessa  sia
abbondantemente scollegata dalla rete... vero?


 Ah... ppero'!
Ok, scusa ;-)



/me arrosisce
Hem... al momento non posso scollegarla fisicamente dalla rete (ci sono
servizi che non posso replicare facilmente da un'altra parte) :-/
In attesa di poter riformattare cerco di tenerla il piu' ingabbiata
possibile (adesso non dovrebbe uscire in internet).
Alessandro.

 possibile (adesso non dovrebbe uscire in internet).
GLOM!
