Posts Tagged ‘xss’

Pump & dump, el viejo amigo ataca de nuevo

|

El Pump & dump no es una nueva técnica de estafa. Es una versión refinada del spam que consiste en que el calado de una información falsa proporcione beneficios a quién la difunde o sabe aprovecharse de ella. Un ejemplo básico serían los correos de spam que circulan con las leyendas urbanas sobre la CocaCola (no he dicho que los difunda la competencia).

Recientemente he vuelto a tener noticias de esta modalidad de estafa debido a un par de noticias publicadas en el blog de s21sec y en Eweek.

Apliquemos una idea un poco más maliciosa y refinada y pensemos en un medio de comunicación. Muchos de los actos de inversores están basados en las noticias que los medios proporcionan. Las noticias publicadas por los medios conocidos o de prestigio tienen un gran efecto en la red. Tras una noticia publicada son cientos las páginas y pequeños medios que copian estas noticias y las reescriben en sus respectivos medios.

La idea maliciosa viene a continuación: imaginemos que un fallo de seguridad permite que sean publicadas noticias arbitrarias. Rápidamente estas noticias tendrán su calado en multitud de medios y permitiran al atacante beneficiarse, por ejemplo mediante la compra de acciones.
Como veremos en el documento que realizé hace algún tiempo no es necesario un enrevesado fallo de seguridad en los medios, simplemente son necesarios un Cross Site Scripting (XSS) y un poco de ingeniería social para su difusión.

El documento que escribí detalla ejemplos concretos de dos fallos de seguridad que descubrí que permitían hacer esto, en medios de comunicación de sector de TI (Eweek y Network World). Si estáis interesados podéis descargarlos:


Documento en castellano

Documento en inglés

Las vulnerabilidades detectadas fueron notificadas y resueltas antes de la publicación del documento.

XSS en medios de comunicación

|

Las vulnerabilidades por Cross Site Scripting (XSS) son importantes. Sucede sin embargo que en muchos foros estos fallos son menospreciados e infravalorados.
Hay muchas maneras de aprovecharse de este tipo de vulnerabilidades: deface’s, robo de cookies, ejecución de código, etc.

En este documento vamos a centrarnos en una nueva posibilidad a explotar que apenas ha sido comentada hasta la fecha. Se trata de aprovechar este tipo de vulnerabilidades en medios informativos y montar una infraestructura necesaria para publicar noticias falsas aparentemente ciertas y difundirlas con velocidad para sacar partido de las mismas obteniendo un beneficio económico a través de la venta de acciones en bolsa.
La única referencia al respecto que he conocido ha sido durante la realización de este documento y data de Marzo de este mismo año:

http://archives.neohapsis.com/archives/fulldisclosure/2008-04/0001.html

Realizaremos una prueba de concepto utilizando vulnerabilidades reales encontradas en los medios informativos Eweek y NetworkWorld.

Para llevar a cabo las pruebas crearemos un par de noticias falsas y las difundiremos de manera que las víctimas tomen estas noticias por ciertas al aparentemente provenir de los medios antes citados. La difusión de estas noticias provocan asímismo que las acciones de las empresas implicadas por la noticia varíen de valor. Anticipando este movimiento provocado (y controlado) nos beneficiaremos económicamente a través de la venta de acciones.

Las vulnerabilidades utilizadas en este documento son reales y han sido notificadas a los medios implicados antes de la publicación de este documento.

El documento puede descargarse desde la siguientes URL’s:

XSS en medios de comunicación - en castellano
XSS in media comunication - en inglés


Agradecimientos:

Vicente Aceituno. Por la traducción en inglés del documento y por la idea inicial, porque la misma surgió en una conversación y no sabría decir si fue mia, suya o de ambos.

(In)Eficacia de la correlación de logs en OSSEC para detectar XSS

|

OSSEC es un detector de intrusos de Host(HIDS) que está alcanzando gran popularidad ultimamente. No es de extrañar dado que tiene múltiples e interesantes funciones: correlación de eventos, control de integridad de ficheros, multiplataforma(*nix, BSD’s, Windows), soporta instalación cliente-servidor-local y personalización de reglas (en formato XML).

El propósito de este post es demostrar que, si bien la correlación de eventos puede detectar intentos de intrusiones no es la panacea ni muchísimo menos. En concreto nos centramos en la “única” regla anti XSS de OSSEC. Esta regla se encuentra en el fichero web_rules.xml y tiene el siguiente aspecto:

Como podemos apreciar las reglas de correlación de eventos son facilmente entendibles debido a que están escritas en formato XML. En este caso se basan en una pequeña lista negra:


%3Cscript
%2Fscript
script>
script%3E
SRC=javascript
IMG%20
%20ONLOAD=
INPUT%20
iframe%20

Esta regla está relacionada con la que veremos a continuación:

De manera que si la regla 31105 (XSS) salta y el código de resultado que devuelve el servidor es un 200 OK salta la alerta 31106 (A web attack returned code 200).

Lo primero que hay que destacar es que la búsqueda de patrones se realiza sobre los ficheros de log del servidor web. En el caso de Apache estos tags aparecerán en el fichero access_log con lo cual tenemos la primera debilidad: cualquier intento de XSS utilizando el método POST no será detectado. Tampoco serán detectados los intentos de XSS en las cabeceras http. Esto es debido a que por lo general una traza del fichero access_log tiene la siguiente pinta en el caso de un GET:

127.0.0.1 – - [27/Apr/2008:19:30:44 +0200] “GET /ossec/index.php?f=VALOR_DEL_PARAMETRO HTTP/1.1″ 200 259

En el caso de que se produzca inyección de código en el parametro f podrá ser correlado. Sin embargo en el caso de utilizar el método POST el valor del parametro no queda registrado en la traza por lo que no se puede correlar:

127.0.0.1 – - [27/Apr/2008:19:30:44 +0200] “POST /ossec/index.php HTTP/1.1″ 200 259

De la misma manera no quedan registrados los valores de la cabecera (El servidor Apache puede ser configurado para que sí se muestren aunque en su configuración por defecto no es así y no es habitual encontrarse con servidores Apache que muestren mucha más información en sus trazas de las expuestas anteriormente).

Nos situamos en el caso de que el ataque se produzca utilizando el método GET. En este caso el correlador de logs compara con la lista negra y en caso afirmativo produce una alerta:

** Alert 1209321044.76264: mail – web,accesslog,attack,
2008 Apr 27 20:30:44 MI_SERVIDOR->/var/log/httpd/access_log
Rule: 31106 (level 12) -> ‘A web attack returned code 200 (success).’
Src IP: 127.0.0.1
User: (none)
127.0.0.1 – - [27/Apr/2008:20:30:43 +0200] “GET /ossec/index.php?f=s%3Cscript HTTP/1.1″ 200 2593

Vemos que en este caso el patrón %3Cscript ha hecho saltar las alarmas. A partir de aqui no es dificil imaginar que la correlación con la lista negra es facilmente evitable.
Si probamos esa misma inyección de manera ofuscada en código hexadecimal comprobados la cadena en el fichero access_log:

127.0.0.1 – - [27/Apr/2008:20:41:28 +0200] “GET /ossec/index.php?f=s%3c%73%63%72%69%70%74 HTTP/1.1″ 200 2593

Sin embargo en el detector de intrusos no salta la alarma. Hemos conseguido realizar el ataque evandiendo el detector de intrusos.

Conclusiones.

La correlación de eventos puede prevenir algunos tipos de ataques web pero no es la panacea para la detección de los mismos. Estos detectores pueden ser evadidos sin demasiada dificultad. Las listas negras son a menudo insuficientes y tienen como riesgo añadido la falsa sensación de seguridad que aportan.

Nota mental para el ego

|

Constatar simplemente que el bug de BASE que descubrí en septiembre ha sido insertado en las bases de datos de vulnerabilidades más importantes:

* FrSIRT Advisory: ADV-2007-4021
* Bugtraq ID: 26596
* OSVDB ID: 38792
* Secunia Advisory ID: 27834
* CVE ID: 2007-6156 (ver también: NVD)

Esto además de alimentar mi ego me incentiva para seguir buscando errores en aplicaciones web de código abierto.

SIAADV-08-001 – W-Agora web publishing and forum Cross Site Scripting

|

Autor: Daniel Medianero García ( dmedianero @ gmail.com )
Fabricante: W-Agora – http://www.w-agora.net
Impacto: Cross Site Scripting
URL: http://www.meleagro.es.kz

Aplicaciones afectadas:
———————–
- W-Agora : web publishing and forum software

Versiones afectadas:
——————–
- W-Agora 4.2.1

Sistemas operativos afectados:
——————————
- Multiplataforma(Aplicación web escrita en php)

Versiones no afectadas:
———————–
- Actualmente ninguna

Descripción del producto:
————————–
W-agora(http://www.w-agora.net) Sistema de publicación en Web y foros de discusión, totalmente personalizable de acuerdo con las necesidades del usuario, de código abierto para su libre modificación y distribución. La instalación y configuración es rápida y sencilla.

Descripción de la vulnerabilidad:
———————————
La vulnerabilidad se debe a la mala validación de los parametros de
entrada en el fichero admin_user.php. Concretamente los parámetros
userid” y “pattern“.

Detalles técnicos:
——————
La explotación de estas vulnerabilidades es posible haciendo
tampering de los parametros mencionados y cambiando su valor por algún vector
de ataque XSS.

Soluciones:
———-
- Actualmente no hay ninguna versión que corrija este fallo. Se recomienda instalar modsecurity con reglas anti XSS.

Histórico:
—————-

03/01/2008 - Vulnerabilidad descubiertas
- Primera notificación a W-Agora Software
- Apertura de bug en Bugtrack #1863010

Descargar advisory (Spanish):SIAADV-08-001-ES.txt

Descargar advisory (English):SIAADV-08-001-EN.txt