Joomla Scan v1.2

Acabo de subir a la web un nuevo programa que he terminado (tengo varios a medias siempre :) ). Se trata de JoomlaScan, y lo que hace básicamente es analizar remotamente una web (Joomla, claro!) y detectar la versión que está corriendo. Salvo un par o tres de versiones que no saca exactas, el resto te da con exactitud la versión y revisión que usa, incluidas las betas de la 1.6. Además de esto también saca un listado con los componentes que usa.

Para la detección de versión de Joomla me he basaco en un genial script en perl de OWASP, cuyo proyecto se abandonó en diciembre del 2008 y, por lo cual sólo era capaz de detectar hasta la versión 1.5.12.

El método usado consiste en comprobar una serie de ficheros que varían de una versión a otra, así como otros que contienen el ID de la última revisión. En resumen, ralizando muchas verificaciones en varios ficheros se llega a acortar el margen entre versiones hasta dar con la exacta.

Además de eso, me he pegado la gran currada de introducir todos los avisos que hay en securityfocus y que hacen referencia a Joomla, de manera que tras detectar la versión, muestra un listado con los posibles bugs que afectan a esa versión o a cualquiera de los componentes instalados.

El programa al arrancarse comprueba si hay nuevas versiones o actualizaciones de la base de datos, de manera que cada vez que suba un nuevo bug se actualizará sólo.

Podeis descargarlo aquí: JoomlaScan

Aviso: Este programa no es para hackear nada sino para hacer un autoanálisis de nuestras webs en Joomla y no me hago responsable si alguien le da un mal uso …

Etiquetas: , , , , ,

Cada vez que Tuenti cambia algo me volveis loco

Aunque se que me repito, sigo sin salir de mi asombro cuando veo la cantidad de gente que usa TPlus. Ya van casi 320.000 descargas (y subiendo :) )

Voy a poner una captura de las estadísticas del blog (no de la web) que no deja de ser curioso como la gente empieza a entrar cuando las cosas no van bien jejeje

La media de 200-250 visitas diarias es cuando todo va bien.

Cuando empieza a fallar algo vamos llegando a más de 700 al día.

Hoy que he subido la nueva versión ha llegado la cosa a 1.230 (y aún queda 1/4 de hora para las 12)

Bueno, pues espero que ya os funcione bien a todos :) … saludos

Etiquetas: , , ,

TPlus 4.9 disponible

Bueno, al final he modificado el cambio antiguo de imágenes para que no se alteren, es decir, que las muestre tal y como las coge de la web (en pequeño).

Sólo he cambiado eso para que salgan de nuevo los amigos (y dejeis de darme la coña :)

Que nadie se queje de que salen en pequeño porque de momento no sabemos convertirlas con el nuevo formato. Aunque me da a mi que lo que más le interesa a la gente es aumentar la visitas .. jeje .. a ver si alguien me explica algún día la finalidad de tener el contador de visitas alterado si nada más que lo ve el propio usuario …

En fin, que lo podeis descargar de la web.

Un saludo

Etiquetas: , ,

Bot para el juego ‘Guerra de Pandillas’ en Facebook

Ya tengo más que testeado el programa para jugar automáticamente al juego Guerra de Pandillas de Facebook, así que lo he subido a la web.

Si alguien quiere descargarlo, puede hacerlo desde aquí: Guerra de Pandillas

Etiquetas: , ,

Tuenti: nueva forma de codificar las imágenes (otra vez)

Sí, TPlus no va y todo por culpa de los nuevos formatos en las imágenes. Al margen de este post, dejar de escribirme diciéndome que no va!!!! que ya lo se!!!

Bueno, a lo que iba. La tarde de un domingo es buena para dedicarse a la ingeniería inversa y a la criptografía. No con este calorazo, pero bueno, el ventilador hace lo suyo.

De nuevo Tuenti ha modificado la forma de codificar las imágenes. Y esta vez se lo ha currado. Para poder llegar a la imagen original (algo que aún no he conseguido) vamos a analizar el proceso que utiliza Tuenti para mostrar las fotografías en sus diferentes formatos. Por ejemplo, veamos diferentes formas de codificar una misma foto:

http://cd2.images.tuenti.net/1-2.i44/13-982.503818474/371-570/br.120.120/rmZYjWsgFLouCinUI10/zDNlBFQPQLs.jpg

http://cd2.images.tuenti.net/thumbs/i44/dOLSIK7S8tFF7qJ0ILoRJSSLdOo/13-982.503818474/1.2.371-570/fwmrh.200.177.50.33.355/rmZYjWsgFLouCinUI10/NScCwlZY12s.jpg

http://cd2.images.tuenti.net/thumbs/i44/sRnUT9EQZRfUF99FIRXCf9PmQkw/13-982.503818474/1.2.371-570/rc.30.30.50.49.53/rmZYjWsgFLouCinUI10/N8mi9nXVAOA.jpg

http://cd2.images.tuenti.net/thumbs/i44/ycZthSd6Eh45E2qNGcY87uX2Dzo/13-982.503818474/1.2.371-570/br.600.600/rmZYjWsgFLouCinUI10/Jy8xCCX7PaY.jpg


Luego explico lo que es cada color. Antes comentar que me he tirado varias horas comprobando tipos de hashes y jugando con el CrypTool sin llegar a ninguna conclusión. Bueno, la conclusión a la que he llegado es que, al igual que en el anterior cambio, creo que hay que obviar los hashes. Es decir, si tiene que llegar a una URL final (siempre la misma) debe basarse en los datos que se repiten (igual me equivoco) pero la cosa tiene su lógica.

Veamos la fotografía con el formato final:

http://cd2.images.tuenti.net/i44/i/6/600/2/s/_vrmZYjWsgFLouCinUI1.0.jpg


(El link lo conozco porque tenía guardada la ruta anterior, no porque lo haya deducido.)

Pasamos a analizar las coincidencias:

En azul: siempre va fijo (podemos cambiar el servidor y siempre nos da la misma foto. Esto es señal de que o apunta a la misma IP o están replicados)

En rojo: lo que podemos deducir con cualquiera de los enlaces (hay que fijarse bien que el nombre original de la foto está compuesto por uno de los hashes de la ruta nueva (menos los dos primeros dígitos) más ‘.0.jpg’)

En verde: 600 es el tamaño que deseamos y la ‘i’ va fija … en las nuevas he puesto en verde lo que coincide entre un formato y otro y donde me estoy centrando en analizar

Cabe destacar que el dígito que va tras el /i/ es un número de 0 a 9 y que el resto, que desconocemos, puede oscilar de [a-z][A-Z][0-9] y _

La forma de averiguar estos dígitos que faltan aún la desconozco pero por fuerza bruta serían muchísimas combinaciones.

He realizado otras pruebas con más fotos por si a alguien le interesa:

Nueva:

http://cd1.images.tuenti.net/thumbs/i70/yKQvSNrnzQI4YwTqr8I4UZC4XSs/13-982.500214440/1.4.437-233/rc.35.35.50.50.62/1ojUMA6NFYXRr-Z1C10/8AsgfmNCX8w.jpg

Original:

http://cd1.images.tuenti.net/i70/i/2/600/3/-/Zd1ojUMA6NFYXRr-Z1C1.0.jpg

Nueva:

http://cd3.images.tuenti.net/thumbs/i61/w7v9VixrseI1l7Q0UF5Q00rCQSA/13-982.500214436/1.6.200-907/fwmrh.200.177.50.33.355/KCqHzMKUbPz75rS3o0/3qockuCsR-4.jpg

Original:

http://cd3.images.tuenti.net/i61/i/4/600/o/d/LmKCqHzMKUbPz75rS3o.0.jpg

Otra conclusión que saco es que en todas aparece ’13-982′ lo cual me hace pensar que es de mi albúm o usuario y que es posible que tampoco tenga relevancia.

Además de esto, en la ftografía original el /ixx/ puede alterarse (al menos a veces)

Si alguien puede aportar fotografías con formato nuevo y su equivalente en el antiguo, se agradece. Y si esta información le sirve a alguien que también esté tras la pista pues que comparta sus avances a ver si entre todos los sacamos :)

http://cd2.images.tuenti.net/1-2.i44/13-982.503818474/371-570/br.120.120/rmZYjWsgFLouCinUI10/zDNlBFQPQLs.jpg

http://cd2.images.tuenti.net/thumbs/i44/dOLSIK7S8tFF7qJ0ILoRJSSLdOo/13-982.503818474/1.2.371-570/fwmrh.200.177.50.33.355/rmZYjWsgFLouCinUI10/NScCwlZY12s.jpg

http://cd2.images.tuenti.net/thumbs/i44/sRnUT9EQZRfUF99FIRXCf9PmQkw/13-982.503818474/1.2.371-570/rc.30.30.50.49.53/rmZYjWsgFLouCinUI10/N8mi9nXVAOA.jpg

http://cd2.images.tuenti.net/thumbs/i44/ycZthSd6Eh45E2qNGcY87uX2Dzo/13-982.503818474/1.2.371-570/br.600.600/rmZYjWsgFLouCinUI10/Jy8xCCX7PaY.jpg

Etiquetas: , , ,

Guerra de Pandillas en Facebook

Si algo tiene de bueno Facebook son los juegos y, la verdad es que el juego de Guerra de Pandillas es bastante adictivo ya que no es como otros en los que haces 4 cosas y tienes que esperar hasta el día siguiente para volver a jugar. En este no, ya que son varios los factores que te permiten seguir jugando, bien atacar enemigos, bien realizar misiones, bien comprar territorios.

Lo malo es que al final ves que pasan las horas y te tiras el fin de semana mirando la pantalla. Es por eso que decidí hacer un pequeño programa que juegue por mí :-)

Leer el resto de esta entrada »

Etiquetas: , , , ,

Conexión con Facebook desde CSharp

Después de hacer TPlus esto ha sido coser y cantar. Aunque la validación es algo diferente, con este trozo de código se puede obtener la cookie (cookiefb) que nos permite interactuar con Facebook.

Una vez tenemos la cookie sólo hay que usarla en cada llamada (GET o POST) y podremos naegar sin problemas.
private void ConectarConFacebook()
{
String miUser = "mail@dominio.com";
String miPass = "casimiro";

// Obtenemos la cookie inicial al entrar en la página de validación de usuario
 String cookie = CargarHome();

 // Extraemos la clave 'lsd' de la cookie
 String lsd = ExtraerCookie(cookie, "lsd");

 // Con la cookie anterior validamos y obtenemos la nueva cookie
 cookie = Conectar(miUser, miPass, cookie);

 if (cookie == null)
    // ERROR AL CONECTAR
 else
 {
 // Extraemos los datos necesario para crear la cookie que necesitamos para navegar
 String c_user = ExtraerCookie(cookie, "c_user");

 if (c_user == null)
    // ERROR AL CONECTAR

 String datr = ExtraerCookie(cookie, "datr");
 String lxe = ExtraerCookie(cookie, "lxe");
 String lxs = ExtraerCookie(cookie, "lxs");
 String xs = ExtraerCookie(cookie, "xs");
 String lo = ExtraerCookie(cookie, "lo");
 String sct = ExtraerCookie(cookie, "sct");

 usergp = c_user;

 // Creamos la nueva cookie
 cookiefb = "lsd=" + lsd + ";";
 cookiefb += "c_user=" + c_user + ";";
 cookiefb += "datr=" + datr + ";";
 cookiefb += "lxe=" + lxe + ";";
 cookiefb += "lxs=" + lxs + ";";
 cookiefb += "xs=" + xs + ";";
 cookiefb += "lo=" + lo + ";";
 cookiefb += "sct=" + sct + ";";
}

Función CargarHome:

private string Home()
 {
 HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.facebook.com/");
 req.Method = "GET";
 req.UserAgent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1";
 req.ContentType = "application/x-www-form-urlencoded";

 try
 {
 HttpWebResponse response = (HttpWebResponse)req.GetResponse();
 return response.GetResponseHeader("Set-Cookie");
 }
 catch
 {
 return null;
 }
 }

Función Conectar:

private string Conectar(String user, String pass, String cookie)
 {
 System.Net.ServicePointManager.Expect100Continue = false;
 Uri address = new Uri("https://login.facebook.com/login.php?login_attempt=1");
 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
 req.AllowAutoRedirect = false;

 req.ProtocolVersion = HttpVersion.Version11;
 req.Method = "POST";
 req.UserAgent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1";
 req.ContentType = "application/x-www-form-urlencoded";
 req.Headers.Add("Cookie", cookie);

 byte[] byteData = UTF8Encoding.UTF8.GetBytes("locale=es_ES&email=" + user + "&pass=" + pass);
 req.ContentLength = byteData.Length;

 try
 {
 Stream postStream = req.GetRequestStream();
 postStream.Write(byteData, 0, byteData.Length);
 postStream.Close();
 }
 catch { }   

 try
 {
 HttpWebResponse response = (HttpWebResponse)req.GetResponse();
 cookie = response.GetResponseHeader("Set-Cookie");

 return cookie;
 }
 catch { }

 return null;
 }

Función ExtraerCookie:

private string ExtraerCookie(String cookie, String clave)
 {
 clave += "=";
 string[] datos1 = cookie.Split(';');

 foreach (string dato1 in datos1)
 {
 string[] datos2 = dato1.Split(',');

 foreach (string dato2 in datos2)
 {
 if (dato2.StartsWith(clave))
 return dato2.Replace(clave, "");
 }
 }

 return null;
 }

Etiquetas: , ,

Protección de datos … what is this?

Me encanta avisar a las empresas cuando detecto un fallo de seguridad (es una ironía). Realmente me parece una estupidez ya que pueden pasar 3 cosas:

1- Que te ignoren (es lo más habitual)

2- Que te digan que ellos no tienen ningún fallo y que dejes de tocar los co**nes (suele pasar)

3- Que te agradezcan el aviso (esto no suele ocurrir nunca)

No es que me dedique a buscar fallos en webs pero muchas veces se te presentan sólos y la curiosidad te lleva siempre a mirar un poco más allá. Intentando no rebasar los límites de lo legal vas mirando aquí, vas mirando allá, con los ojos como platos por la sorpresa. ‘:-o … No es posible lo que estoy viendo …’

Normalmente me digo a mi mismo … ‘Oh my God!’ y cierro la web para evitar tentaciones, porque si avisas son todo problemas; pero esta vez fue diferente. Esta vez llegué a través de una búsqueda de Google, a una web de una entidad bancaria vinculada a una entidad bancaria, que me mostraba los datos de sus empleados: nombre, apellidos, dni, dirección, teléfonos particulares, mail del trabajo, mail personal, oficina en la que trabajan, cargo que ocupan, número de cuenta bancaria … SI, su número de cuenta bancaria (del director, del interventor, del cajero, …) algo verdaderamente escandaloso, vergonzoso, indignante … vamos, para meter a los ingenieros a picar piedras un mes.

No es que estén los datos de todos los empleados sino que se trata de un club para el personal de la entidad al que se suscriben para hacer viajes y otras cosas. Pues toda esa gente tenía sus datos personales ahí, a la vista de todo el mundo.

Y lo peor de todo no es eso, sino que tras digerir los datos que Google me estaba mostrando, decidí entrar en el directorio raíz donde estaban esos datos y me encontré un File Manager, el cual no pedía ni usuario ni contraseña ni nada de nada. Ale!!! alegría!!!! acceso libre al sistema.

El gestor de archivos te permitía navegar por ciertos directorios y descargar, subir, modificar o borrar archivos libremente. No tuve que exprimir mucho la neurona para averigurar que ese gestor de archivos era de código abierto, un proyecto de sourceforge que, tras descargar el código fuente (del año 2003 la última actualización!, casi nada!) lo analicé y vi que, obviamente, estaba lleno de fallos de seguridad, que, entre otras cosas permitían hacer un LFI y sacar el /etc/passwd, y cualquier archivo del sistema al que se tuviera acceso (todo esto lo probé en local en mi máquina tras bajar los fuentes de sourceforge, eh! no pienses mal :-P ) …

La descripción del bug de ese File Manager lo puedes encontrar en mi web, aquí: sFileManager

Bueno, la entidad en cuestión es la CAM (Caja de Ahorros del Mediterráneo) y el motivo por el que me siento estúpido tras avisar es que sigo esperando una respuesta o un mensaje de agradecimiento que nunca llegará, como viene siendo habitual. Eso sí, la carpeta con los datos la han borrado totalmente parcialmente (al menos los datos del personal y el File Manager han desaparecido … hasta han desaparecido de la caché de Google!!), por lo que deduzco que han recibido mi mail. Al menos me queda la satisfacción de que los pobres empleados de la CAM ya no tienen sus datos personales a la vista de todo el mundo.

Sí, las cosas suceden así, mandas el aviso, que llega al buzón general. Una persona lo lee y no entien nada (puaj! habla de cosas de informática … se lo reenviaré a la empresa que lleva la web). Luego la empresa que lleva el mantenimiento le da una colleja al becario de turno, parchea rápidamente y borra toda evidencia antes de que se entere alguien y llegue la sangre al río. Sólo decir que la web tiene más fallos de seguridad fácilmente detectables pero como no quiero hacer nada ilegal no voy a profundizar ni a dar más detalles. Pero una empresa con tanto dinero … que contraten una auditoría de seguridad, c**o!!!

El mail que les mandé fue este:

Por favor remitan esto urgentemente a su departamento de informática porque me parece algo verdaderamente increible que una entidad como la CAM deje datos personales (de sus empleados) a la vista de todos. Me explico …

Realizando una búsqueda en Google llegué a la siguiente página:
http://webcache.googleusercontent.com/search?q=cache:mRhm4rpYt2AJ:www.elclubcam.com/ficheros/logs/Alta%2520socio+site:elclubcam.com/ficheros&cd=2&hl=es&ct=clnk&gl=es&client=firefox-a

en la que me salen un montón de datos de gente, donde aparecen DNIs, direcciones de email, teléfonos, etc (aquí ya están violando la ley al tener esa información pública en Internet). Siguiendo mi curiosidad me decido a entrar en la web http://www.elclubcam.com y veo un lugar donde pone ‘hazte socio’ y un link a un formulario que, casualmente se asemeja mucho a los datos que me encontré en la página anterior. Cuál es mi sorpresa cuando veo que entre los datos hay números de cuenta, entre otras cosas. Vamos, los números de cuenta, direcciones, teléfonos, mails, dni, apellidos, etc del personal de su empresa, incluída la oficina dónde trabajan!!!

Aparte de esto, entro en http://www.elclubcam.com/ficheros/ y me veo un listado de archivos con un file manager (gestor de archivos), accesible sin usuario y contraseña, y sin que diga nada de acceso restrigido ni información privada ni nada de nada …. y, desde el cual se puede ver todo el contenido privado de la web (es decir, muchos listados con datos personales de empleados). Es más, ese gestor de archivos (público, gratuito, y, con el código fuente en http://onedotoh.sourceforge.net) es del año 2003 y tiene fallos de seguridad que permiten acceder a todo el servidor, es decir, no sólo a la web sino a todo el sistema. (más información aquí: http://www.pepelux.org/download.php?f=exploits/sfilemanager.txt)

Si su departamente informático desea más detalles pueden contactar conmigo. Espero que lo resuelvan rápido o, al menos quiten los datos de sus empleados de Internet ya que, repito, hay hasta datos bancarios!

Un saludo

Rectificación: Bueno, quiero aclarar (ya que me han llegado algunos mails) que esta web creo que la lleva una empresa externa y no la propia CAM, aunque como ya he dicho, creo que si de una u otra forma está vinculada a la entidad, deben prestar cierta atención. No obstante, a pesar de que los datos eran de personal de la CAM, no creo que el equipo informático de esta sean los responsables del ‘descuido’.

Etiquetas: , , ,

Creación de shellcodes y exploits en win32

–[ Contenido

1 – Introduccion

2 – Antes de empezar
2.1 – Conocimientos previos
2.2 – Herramientas

3 – Creando un exploit local
3.1 – Creando un programa vulnerable
3.2 – Programando una shellcode
3.3 – Creando un exploit

4 – Creando otro exploit local
4.1 – Programando una shellcode
4.2 – Creando un exploit
4.3 – Solucion de problemas

5 – Haciendo mas estandar nuestro exploit

6 – Creando un exploit remoto
6.1 – Creando un programa vulnerable
6.2 – Programando una shellcode
6.3 – Creando un exploit

7 – Referencias

8 – Agradecimientos

ver la entrada completa

Etiquetas: , , , ,

Tuenti o Facebook?

Bueno!! tras mucho tiempo sin escribir, voy a poner un par de chorradas ahora que tengo más tiempo :)

La verdad es que estoy algo cansado de tanto Tuenti para arriba y Tuenti para abajo, de contestar las mismas preguntas una y otra vez, de intentar entender la importancia de incrementar las visitas de un perfil …. el caso es que yo nunca he usado Tuenti, es más, soy usuario de Facebook … jejeje

Y aprovechando esta confesión, quería comentar que me parece algo tremendo que en Facebook, cuando un usuario pone en su privacidad que no quiere mostrar sus fotos a desconocidos, si tienes acceso a su muro, al final siguiendo un enlace puedes ver su album completo … es decir, no tienes acceso al index de las fotos pero si encuentras un enlace a cualquiera de sus fotografías, por ejemplo cuando se publica en su muro que tiene una nueva foto, ya es ir dando a siguiente o anterior para ver todas las fotos de esa persona que en la configuración de privacidad puso que sólo ‘sus amigos’ podían ver sus fotos.

Bueno, os deseo un feliz verano a todos!

Etiquetas: ,