Tales from the Machine Room


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Login/Register

Search And Destroy

E' un tranquillo (penso io) lunedi' mattina quando comincio a controllare tutti i log dei vari server. E noto subito una cosa poco bella: c'e' un server che ha cercato di inviare una paccata di mail mentre non dovrebbe inviarne per niente ed ha anche cercato di contattare via ssh una serie di server di cui io non so niente.

Dato che il server ospita l'ennesima PHPorkeria sviluppata dai soliti PHProgrammatroti comincio gia' a sospettare il peggio. Ed infatti noto subito che nel log c'e' anche una bella fila di imbufaliti che cercano il solito rompica$$p phpmyadmin. E indovina un po': LO TROVANO!

Ed ovviamente il phprogrammatroto non ha pensato di rimuovere il merdacchioso script di setup no eh... anzi, e' aperto e disponibile al mondo. Grrr...

Ok, zanza via il server dal firewall e comincia a vedere cosa gli e' successo. A quanto pare adesso questa merdaccia sta facendo funzionare un qualche demone ssh con privilegi di root. Ranza via quel coso subito. E gia' che ci siamo ranziamo via tutto il phmycrapshot che andiamo anche meglio.

Poi, dopo aver inviato una mailla di spiegazione al PHProgrammatroto faccio un bel giro sul resto delle schifezze che sono installate.

E trovo un altra versione del phpmycrapshot in una directory diversa. Pure quella con la directory di installazione aperta all'universo. Zanza via anche quello. Poi scopro che la directory di /tmp e' scrivibile da Apache (ovviamente). In effetti, ben poco NON E' scrivibile da Apache.

A questo punto decido che la cosa migliore sarebbe reinstallare tutto il server e basta, altro che mettersi a patchare le cose. Riporto per tanto a DB.

IO - ...quindi, dato che non c'e' modo di capire esattamente cosa sia successo e cosa sia ancora decente, la cosa migliore e' zappare via tutto e ripartire da capo.
DB - E CL che dice?
IO - CL non lo ho ancora sentito. Ma dato che le versioni (plurale) di software che CL ha installato sono antidiluviane, non mi pare che CL sia la persona piu' indicata per decidere come gestire la sicurezza di quella macchina.
DB - Ma non hai detto che hai rimosso le versioni bacate?
IO - Ho rimosso quello che ho trovato, molto rapidamente, ma come ho appena detto, non possiamo essere sicuri.
DB - Allora fai un altro giro, poi rimetti il server nel firewall e sentiamo CL.
IO - ??? "rimetti il server nel firewall"?? Quale parte di "non sappiamo cosa e' buono e cosa no" non era chiara?
DB - Ma abbiamo un contratto che dice che il server deve essere disponibile
IO - Dice anche che CL (che si e' assunto la responsabilita' del sistema) deve aggiornare il software che usa ed e' responsabile per le cazzate che fanno.

La discussione e' andata avanti per un bel pezzo, anche perche' il solito rompimarroni di P si e' aggiunto. Ondepercui cio' alla fine la decisione e' stata di "rimuovere tutto cio' che potrebbe essere compromesso e rimettere il server on-line".

IO - Rimuovere tutto?
P - Quello che potrebbe essere compromesso.
IO - E con CL ci parli tu suppongo...

Il che significa che la serie di madonne che avevo in programma di passare a CL non saranno passate... Grrr...

Ok, rimuovere tutto cio' che potrebbe essere compromesso.

find / -type f -name '*.php' -exec rm -f {} \;

Ohhhh.... adesso mi sento gia' meglio...

Davide
25/07/2011 08:00

Previous Next

Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.

23 messages this document does not accept new posts
Anonymous coward By Anonymous coward - posted 25/07/2011 08:06

brrrrrr

mi sono corsi i brividi lungo la schiena, ho avuto una visione:

CL: " ma porc non ho i backup dei file php installati"

P:"Noi dovevamo cmq fare copia prima blablabla" (qui il brivido)

--
Anonymous coward


ARM_ By ARM_ - posted 25/07/2011 08:37

e un bel # rm -fr /

 

dopotutto potrebbe essere compromesso anche altro...

--
ARM_


Nicholas By Nicholas - posted 25/07/2011 09:02

Nella mia testa "rimuovere tutto ciò che potrebbe essere compromesso" viene tradotto in una serie di deluser. :\)

--
Nicholas


Dacav By Dacav - posted 25/07/2011 09:08

LOL php programmers!

Grazie Davide! Non conoscevo l'opzione "-exec" di find! Di solito mi lanciavo in avventure con "-print0" e "xargs -0"... interessante!

--
Dacav


Alberto By Alberto - posted 25/07/2011 09:16

Certo che DB e P sono proprio degli ingenui o dei beati.

Dalle tue domande (e dalle tue storie precedenti), era ABBASTANZA CHIARO che avresti spianato tutto il PHP.

Onestamente però, mi aspettavo la stessa cosa anche nei confronti di Apache. smiley

--
Alberto


Anonymous coward By Anonymous coward - posted 25/07/2011 09:26

Io avrei fatto un bel rm -rf *... per essere ancora più sicuro smiley

--
Anonymous coward


Spooky By Spooky - posted 25/07/2011 09:55

Questa era veramente da Bofh :-D

--
Spooky


Lex By Lex - posted 25/07/2011 10:50

E con questo comandino "chi s'è visto s'è visto" :D

--
Lex


Anonymous coward By Anonymous coward - posted 25/07/2011 11:13

Tolto il dente, tolto il dolore...

--
Anonymous coward


Marco Colombo By Marco Colombo - posted 25/07/2011 11:24

Ma come, dimentichi che se qualcuno ha messo le mani nel server, può aver alterato anche i vari HTML inserendo virus in Javascript! Per cui ogni .html che trovi potrebbe essere compromesso!

find / -type f -name '*.html' -exec rm -f {} \;

Ovviamente occorre fotografare la faccia di CL quando riceve la notizia. In realtà, oggi ci sono rootkit molto sofisticati che arrivano ad inserire moduli stealth nel kernel, per cui non puoi essere sicuro di niente se hanno avuto accesso a root.

E la prossima volta vai di selinux.



--
.TM.


Mte90 By Mte90 - posted 25/07/2011 14:02

Zappiamo via tutto LOL

Sei un grande! Sono un tuo fan e aspetto il lunedì solo per leggere la prossima storia!!

Buon lavoro!

--
Mte90


Edoardo Mantovani By Edoardo Mantovani - posted 25/07/2011 19:28

Hahahaha Stupenda!!! Grandissimo D.

--
Se il problema non ha soluzione perche' ti arrabbi?
Se il problema ha soluzione perche' ti arrabbi?
Ma soprattutto, se non sei parte della soluzione
Allora sei parte del problema.


Massimo Bacilieri By Massimo Bacilieri - posted 25/07/2011 20:06

Draconiano ma efficiente come metodo :-\)

CL poi come l'ha presa?! :-D

--
Massimo Bacilieri


guido By guido - posted 25/07/2011 21:56

Non so perché ma me Lo aspettavo :\)

--
guido


Alessandro Porcu By Alessandro Porcu - posted 25/07/2011 22:36

Niente male, una soluzione proprio radicale yes

Io avrei risolto con un bel "mke2fs -j /dev/sda[1..4] (a seconda di quali partizioni c'erano su quel disco. E poi vai di reinstall. E se CL si lamentava, un grosso e nodoso randello di noce.

--
Alessandro Porcu


Anonymous coward By Anonymous coward - posted 26/07/2011 12:06

ahahahahahahah... ma che mitooo!!!  :D

Mi viene in mente solo un'altra frase, ora: "quale parte di rm -f ... non era chiara?" :D

Da vero BOFH

--
Anonymous coward


Anonymous coward By Anonymous coward - posted 26/07/2011 12:43

Il problema non è php e sempre che chi programma (mi è capitato di recente) non usa tre strumenti fondamentali per la programmazione :

Matita (o penna)

foglio

Cervello.

Rimuovi tutto ciò che è compromesso !

Facile, rimovere l'orifizio anale a CL.

--
Anonymous coward


Panzer By Panzer - posted 26/07/2011 14:41

Rimuovere tutto quello che potrebbe essere compromesso... dopo che il mondo ha avuto accesso come root... per me è roba da fdisk... per fortuna di CL non sono io a decidere...

anche se sono convinto che un reboot del server da DVD e con con dischi NUOVI (o ricondizionati ;-P) non sarebbe stata male...

--
io so di non sapere, ma quello che so... lo so!


Anonymous coward By Anonymous coward - posted 26/07/2011 18:21

Anch'io, come altri che hanno scritto prima di me, avrei pensato a qualcos'altro di compromesso,, oltre ai file PHP.

Il mio comando preferito, in questi casi, è

 

for device in /dev/sd* /dev/hd*; do dd if=/dev/urandom of=$device bs=10240 count=1024; done; reboot

 

e poi si vede ...

--
Anonymous coward


Anonymous coward By Anonymous coward - posted 26/07/2011 18:29

Hm ma se i processi ssh giravano come root significa che c'è qualche vulnerabilità al sistema, oltre che il php:)

--
Anonymous coward


Anonymous coward By Anonymous coward - posted 26/07/2011 23:40

Io per essere sicuro avrei fatto un wipe del disco... comunque è sempre bello vedere quanto si rendono conto che una macchina compromessa è una macchina da rifare da zero - e quanto tenerla attiva è un rischio, anche dopo qualsiasi tentativo di ripulirla.

--
Anonymous coward


Alessandro By Alessandro - posted 29/07/2011 09:48



>Ohhhh.... adesso mi sento gia' meglio...

NOn potevi scrivere : godo??? :-\)

--
Alessandro


Alquanole By Alquanole - posted 30/07/2011 12:43

Mi è capitato di dover giocare con un server compromesso che CL voleva patchare a tutti i costi... Da allora l'opzione "togli solo i file sospetti" -> FDISK

--
Alquanole


23 messages this document does not accept new posts

Previous Next


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project
Powered By Gojira