viernes, 26 de septiembre de 2014

Shell-Shock y cómo parchearlo!


Hola, espero estén alertas con esta vulnerabilidad que se viene hablando desde el 24-09-2014.

Primero un poco de contexto, para que la gente que no sabe pueda entender. Bash es un utilitario cuya función consiste en interpretar órdenes. Está basado en la shell de Unix y es compatible con POSIX. Su nombre es un acrónimo de Bourne-Again Shell (otro shell bourne), haciendo un juego de palabras: born-again = renacimiento. Fue uno de los primeros intérpretes importantes de Unix. Listo, hasta acá la historia. A lo que vinimos:

Y ahora... cuál es el problema?

En muchos SO's las variables de entorno proporcionan una forma ágil de influir en el comportamiento de los programas instalados en este. Estas variables, por lo general, se componen de un nombre y un valor asignado. En la shell Bash se pueden ejecutar dichas variables por medio de funciones. En estos ambientes, es común que una gran cantidad de programas ejecuten shell Bash en background y a menudo, se utiliza para proporcionar acceso remoto a un usuario (a través de ssh, telnet, etcétera), proporcionar un analizador de secuencias de comandos CGI (Apache) o incluso apoyar la ejecución de comandos.

El día miércoles 24 de este mes, se anunció la vulnerabilidad y se publicó con el CVE-2014-7169 originalmente encontrada por el hacker francés Stephane Schazelas. Más tarde el experto en ciberseguridad Travis Ormandy lanzó un segundo exploit que funcionaba en sistemas ya parcheados, debido que los primeros parches eran incompletos. El Shell-Shock (como también le llaman) tiene una nota de gravedad 10, lo que significa que tiene un impacto máximo, y una calificación baja en complejidad de explotación, que significa que es relativamente fácil de utilizar por cibercriminales para lanzar ataques.

Podemos crear una función en el intérprete, exportarla e invocarla, por ejemplo:
$function prueba { echo "hola"; }
$ export –f prueba
$ bash
$ prueba
  hola
El problema radica en el mecanismo de exportación y cómo se interpreta el código que se inyecta en el entorno donde es exportada la función.

Para conseguir lo anterior, el bash recurre a un pequeño truco. No exporta la función como tal, sino que lo hace en una variable de entorno donde se interpreta su valor como el cuerpo de una función. Usando el ejemplo anterior, en vez de una función creemos una variable de entorno:

$ prueba = '() { echo "hola"; }'

Y exportamos la variable...
$ export prueba
$ bash
$ prueba
  hola
Cuando el entorno recibe esta variable y el interprete detecta la siguiente cadena "() {" entiende que está ante una función y comienza a interpretar su código. El problema (y esto es lo diabólico ja ja ja...), es que NO para de interpretar cuando termina el cuerpo de la función y continua ejecutando el código que viene detrás del cuerpo.

Un par de ejemplos:
  1. DoS casero! Conocido como la fork-bomb, le pide a tu sistema ejecutar una gran cantidad de procesos hasta que el sistema se bloquea: '() {echo "hola";}; :(){:|:&};:'
  2. Este comando puede formatear o eliminar todos los archivos contenidos en un dispositivo: '() {echo "hola";}; mkfs.ext3 /dev/sda'
La función debería de terminar justo cuando encuentre el "};" correspondiente pero inexplicablemente no lo hace, y peor aún, ejecuta directamente ese código anexado al cuerpo de la función.

Entonces, qué alcance tiene la vulnerabilidad?

Como resultado de esta vulnerabilidad muchos contextos están expuestos, por ejemplo:
  • El ForceCommand es usado en configuraciones sshd, para proveer capacidades de ejecución de comandos a usuarios remotos. Este fallo puede ser usado para hacer bypass de comandos arbitrarios. Algunos deployments en Git o en Subversion pueden ser afectado por medio de estas inyecciones de código. 
  • Los servidores Apache usan el mod_cgi o el mod_cgid, y estos pueden ser afectados con CGI scripts que sean escritos en bash.
  • Otra falla se da mediante clientes DHCP, que en algunos casos ejecutan Bash scripts y utilizan variables de entorno suministradas por el servidor. Por ejemplo vean esta PoC para lograr Remote Code Execution (RCE).

OK... que hay del parche?

Debes comprender que va a arreglar sólo algunos de los aspectos de la vulnerabilidad y que al ser tan reciente, aún se desconocen los efectos secundarios del parche, además de las distintas opciones de ataques que podrían existir.

Puedes utilizar este >>>script<<< para prevenir y mitigar el impacto. En última instancia ya hay instrucciones para parchear el Bash.

Para acabar con el cuento, hay una serie de scripts para probar tanto la vulnerabilidad como el parche. Acá les dejo el post de la gente de RedHat al respecto.

Nos vemos y mucha suerte!

lunes, 8 de septiembre de 2014

No es ciencia ficción, es Malware!


Hola de nuevo,

Debido a ciertas consultas de mis contactos en redes sociales, he decidido tratar este tema (que para muchos de ustedes es muy básico), que el grueso de la población en Internet no considera seriamente.

¿Qué es el Malware?

El Malware (Malicious softWare), también llamado badware, código maligno, software malicioso o software malintencionado, es un tipo de software que tiene como objetivo infiltrarse o dañar una computadora o sistema de información sin el consentimiento de su propietario.

El término Malware es muy utilizado por profesionales de la informática para referirse a una variedad de software hostil, intrusivo o molesto. El término virus informático suele aplicarse de forma incorrecta para referirse a todos los tipos de Malware, incluidos los virus verdaderos.

Primero debo aclarar que a pesar de que una persona puede tener uno o varios antivirus (que deberían llamarse Antimalware) instalados en su ordenador, no es indicativo que está a salvo. Por lo que usted debería preguntarse:

¿Estos me protegen al 100%? Es una pregunta que tiene mucha gente y cuya respuesta es muy simple: NUNCA. Es cierto que hay antivirus muy completos y otros no tanto, por lo que no debemos confiarnos en ninguno, lo mejor es no entrar en sitios sospechosos (que carguen mucha publicidad, banners, pornografía…) y no descargar archivos que no estemos seguros de su procedencia.

¿La garantía de un equipo cubre la infección por virus? Este es un tema  algo delicado, pero la respuesta es un definitivo NO. Si el equipo se infecta de Malware se supone que la culpa la has tenido tú y no es un problema del software. Lo siento, pero la realidad es tan dura como un puño en tu cara.

Existen varios tipos de Malware muy expandidos por Internet, y obvio, por redes sociales. Les cito los más comunes:
  1. Malware infeccioso: virus y gusanos. Los tipos más conocidos de malware, virus y gusanos, se distinguen por la manera en que se propagan, más que por otro comportamiento particular. El término virus informático se usa para designar un programa que, al ejecutarse, se propaga infectando otros softwares ejecutables dentro de la misma computadora. Los virus también pueden tener un payload que realice otras acciones a menudo maliciosas, por ejemplo, borrar archivos. Por otra parte, un gusano es un programa que se transmite a sí mismo, explotando vulnerabilidades en una red de computadoras para infectar otros equipos. El principal objetivo es infectar a la mayor cantidad posible de usuarios, y también puede contener instrucciones dañinas al igual que los virus.
  2. Malware oculto: Backdoor o Puerta trasera, Drive-by Downloads, Rootkits y Troyanos. Un backdoor o puerta trasera es un método para eludir los procedimientos habituales de autenticación al conectarse a una computadora. Una vez que el sistema ha sido comprometido (por uno de los anteriores métodos o de alguna otra forma), puede instalarse una puerta trasera para permitir un acceso remoto más fácil en el futuro. Las puertas traseras también pueden instalarse previamente al software malicioso para permitir la entrada de los atacantes. Drive-by Downloads es un término puede referirse a las descargas de algún tipo de malware que se efectúa sin consentimiento del usuario, lo cual ocurre al visitar un sitio web, al revisar un mensaje de correo electrónico o al entrar a una ventana pop-up, la cual puede mostrar un mensaje de error. Sin ser su verdadera intención, el usuario consiente la descarga de software indeseable o de malware, y estas vulnerabilidades se aprovechan. Las técnicas conocidas como rootkits modifican el sistema operativo de una computadora para permitir que el malware permanezca oculto al usuario. Por ejemplo, los rootkits evitan que un proceso malicioso sea visible en la lista de procesos del sistema o que sus ficheros sean visibles en el explorador de archivos. Este tipo de modificaciones consiguen ocultar cualquier indicio de que el ordenador esta infectado por un malware. A grandes rasgos, los troyanos son programas maliciosos que están disfrazados como algo inocuo o atractivo que invitan al usuario a ejecutarlo ocultando un software malicioso. Ese software, puede tener un efecto inmediato y puede llevar muchas consecuencias indeseables, por ejemplo, borrar los archivos del usuario o instalar más programas indeseables o maliciosos.
  3. Para mostrar publicidad: Spyware, Adware y Hijacking. Los programas spyware son creados para recopilar información sobre las actividades realizadas por un usuario y distribuirla a agencias de publicidad u otras organizaciones interesadas. Algunos de los datos que recogen son las páginas web que visita el usuario y direcciones de correo electrónico, a las que después se envía spam.
  4. Robar información personal: Keyloggers y Stealers. Los keyloggers y los stealers son programas maliciosos creados para robar información sensible. El creador puede obtener beneficios económicos o de otro tipo a través de su uso o distribución en comunidades underground. La principal diferencia entre ellos es la forma en la que recogen la información.
  5. Ataques distribuidos: Botnets. Las botnets son redes de computadoras infectadas, también llamadas "zombis", que pueden ser controladas a la vez por un individuo y realizan distintas tareas. Este tipo de redes son usadas para el envío masivo de spam o para lanzar ataques DDoS contra organizaciones como forma de extorsión o para impedir su correcto funcionamiento.
  6. Otros tipos: Rogue software y Ransomware. Los rogue software hacen creer al usuario que la computadora está infectada por algún tipo de virus u otro tipo de software malicioso, esto induce al usuario a pagar por un software inútil o a instalar un software malicioso que supuestamente elimina las infecciones, pero el usuario no necesita ese software puesto que no está infectado. Los Ransomeware (también llamados criptovirus o secuestradores), son programas que cifran los archivos importantes para el usuario, haciéndolos inaccesibles, y piden que se pague un "rescate" para poder recibir la contraseña que permite recuperar los archivos.
Espero que esto les ayude en algo. Recuerden mantenerse afuera de sitios web peligrosos. Nos vemos.

miércoles, 3 de septiembre de 2014

Passwords de famosos... serán sencillos? Acá un script para averiguarlo.

Hola! Por estas fechas ya es un trending topic la noticia de las fotos de Jennifer  Lawrence y de otras actrices norteamericanas. Pues no serán las últimas, ni fueron las primeras. Sin contar a los millones de desconocidos por la farándula que les ha pasado lo mismo.

Primero lo primero, reglas doradas:
  1. Asegura tus contraseñas, hazlas basadas en frases. No hay que ser astro-físico para eso.
  2. No subas a Internet lo que no quieras que se comparta... igual que lo anterior, no hay que esperar la carta de aceptación de Yale para suponer lo obvio.
  3. Asegura bien tus dispositivos móviles. Claves basadas en frases, bloqueo remoto, etc. Falta de leer un poco, alegar ignorancia en la época de la tecnología es un absurdo.
  4. No te hagas fotos íntimas con los aparatos móviles (smartphones, tablets, etc.), mucho menos las compartas en Internet... aplica explicación de la regla 1.
  5. Cierra bien las sesiones antes de abandonar cualquier servicio o App que necesite logeo que estés utilizando. La magia se quedó en Hogwarts, tu tienes que buscar el botón de logout.
  6. No te fíes de ningún servicio on-line. DE NINGUNO! Para esta regla se necesita tener un poco de "malicia indígena" y es tan rara de encontrar como el sentido común.
Aclarado el punto anterior, vamos al fútbol. Muchos medios indican que el leak ha sido culpa de iCloud y otros indican que los usuarios usaron claves sencillas de hackear. Yo diría que, ambos.

Razones para segurar lo anterior:
  1. El lunes 01/09/2014 fue publicado en github un script (en Python) que parece haber permitido a los usuarios realizar fuerza bruta contra cuentas en iCloud, gracias a una vulnerabilidad en el servicio Find My iPhone.
  2. Los ataques por fuerza bruta resultan simples y rápidos de realizar cuando las contraseñas de las víctimas son, relativamente sencillas de analizar. Recuerden que descubrieron bastantes contraseñas, lo que supone una omisión de la regla dorada número 1 de arriba.
Resumiendo, la vulnerabilidad descubierta en dicho servicio parece haber dejado a los usuarios realizan fuerza bruta sin ningún tipo de bloqueo o de alerta (dejo acá la duda de si lo probé o no). Una vez que la contraseña ha sido obtenida mediante esta técnica, el atacante puede utilizarla para acceder a otros servicios de iCloud con total libertad.

Notas finales:
  • El script que han liberado, aplica fuerza bruta, o sea, prueba y error. Recuerda que al utilizar la herramienta, la cuenta queda bloqueada después de cinco intentos, ya que Apple se dió cuenta de la filtración.
  • Si conoces cuentas de Apple donde probar el script, date por enterado que lo más probable es que las bloquees. Básicamente estarías haciendo un ataque DoS.
  • Queda bajo tu responsabilidad usar o no el script!

Nos vemos.

lunes, 2 de junio de 2014

No más TrueCrypt! Qué hago?


Opciones; en informática siempre hay de donde escoger.  Que el equipo de TrueCrypt anunció el abandono del desarrollo de su aplicación... tranquilidad.

Les comentaré acerca de varias opciones alternas a la conocida herramienta, que también permiten proteger nuestros datos de firma segura. Unas son gratuitas y otras de pago, así que habrá para todos los gustos y presupuestos. Vamo'a ver:

BestCrypt Container Encryption (de pago)

Esta aplicación funciona de forma muy similar a como lo hace TrueCrypt, pero es una herramienta comercial sin versión gratuita. Dispone de versiones para tres de los OS más comúnes: Windows, Mac y Linux. De forma que un usuario podrá utilizar sus archivos cifrados en cualquier plataforma y tener el completo control sobre ellos. Como característica a destacar, esta herramienta permite el File Wiping de grado militar!! Soporta algoritmos de cifrado AES, CAST, Serpent, Twofish y Blowfish.

Más información y dónde descargarlo por aquí.

Symantec Drive Encryption (de pago)

Este cifrado de alto rendimiento, optimizado y seguro, realizado con Hybrid Cryptographic Optimizer (HCO) de PGP. Con validación FIPS 140-2, aprobación CAPS y DIPCOG, y certificación CC EAL 4+. Soporta hardware AES-NI en sistemas operativos Windows, Mac OS X y Linux para lograr un mayor rendimiento.

Más información y dónde descargarlo por aquí.

Challenger (gratuita para uso personal)

Permite cifrar archivos individuales, carpetas e incluso discos duros completos de forma similar a como permitía TrueCrypt. La versión profesional es bastante completa y no tiene las limitaciones de la versión gratuita aunque hay que pagar por ella.

Más información y dónde descargarlo por aquí.

Cryptsetup (gratuita)

Esta herramienta, aunque únicamente es compatible con Linux, tiene soporte para los discos creados con TrueCrypt, por lo que puede convertirse en una excelente alternativa a esta en el sistema operativo libre. Es basada en el device-mapper crypto target del kernel de Linux llamado: dm-crypt.

Más información y dónde descargarlo por aquí.

AxCrypt (gratuita)

Ofrece un cifrado AES de 128 bits y tiene soporte para claves de cifrado. Sin embargo, esta aplicación queda algo corta en funciones de cara a TrueCrypt y otras alternativas similares. Ideal para cifrar determinados archivos del sistema si no necesitamos hacer uso de las funciones avanzadas que ofrecía su predecesor.

Más información y dónde descargarlo por aquí.

AES Crypt (gratuita)

AES Crypt es compatible con Windows, Linux, Mac y Android para poder cifrar nuestros datos desde cualquiera de esas plataformas. Permite cifrar y descifrar archivos con el botón derecho fácilmente debido a la buena integración con los sistemas operativos.

Más información y dónde descargarlo por aquí.

DiskCryptor (gratuita)

Probablemente es la alternativa más similar al actual TrueCrypt. Permite cifrar datos fácilmente tanto individuales como discos duros completos, incluso permite cifrar el disco del sistema para evitar el acceso a los datos sin la clave correspondiente. Esta aplicación es únicamente compatible con Windows, por lo que los usuarios de otros sistemas operativos no podrán utilizarlo.

Más información y dónde descargarlo por aquí.

Cloudfogger (gratuita)

Esta herramienta de cifrado está especialmente diseñada para trabajar con la nube. Esta permite cifrar los datos a la hora de subirlos a la red para evitar que nadie acceda a ellos sin permiso. Soporta cifrado AES de 256 bits y automáticamente detectará los clientes compatibles tras su instalación para comenzar con el cifrado de datos de todo el tráfico que se envía hacia la nube.

Más información y dónde descargarlo por aquí.

Bueno, seguro encontrarán más herramientas, pero ya tienen por donde comenzara buscar. Nos vemos.

lunes, 19 de mayo de 2014

Libro "No Place to Hide" sobre Cincinnatus, Edward Snowden.


Sip... así se hacía llamar Snowden. Y se lo dejó saber a Glenn Greenwald, -abogado constitucionalista estadounidense, columnista, bloguero y escritor- antes de que estallara el escándalo. En junio de 2013, Greenwald publicó en The Guardian las revelaciones de Edward Snowden sobre el programa de vigilancia PRISM y otros programas de la Agencia de Seguridad Nacional clasificados como de alto secreto.

El 13 de Mayo de este año Greenwald, publicó su esperado libro: No Place to Hide. Greenwald recibió mensajes de un contacto misterioso que se hacía llamar Cincinnatus. Esta fuente instó a Greenwald a aprender como proteger su e-mail con cifrado de forma que pudiera recibir información sensible.

Cincinnatus incluso fue tan lejos como para enviar un video tutorial a Greenwald, llevándolo por los pasos necesarios para configurar el agregado de medidas de seguridad. Pero Greenwald no se molestó en conseguir el programa hasta que ya estuviera en Hong Kong y en profundas conversaciones con Snowden, y en ese momento se dio cuenta que podría haber perdido la oportunidad de otra primicia por no haber seguido la indicación.

Ahora cualquiera puede ver el video que Snowden le envió a Greenwald. Este dura apenas algo más de 12 minutos, fue publicado en Vimeo hace un año por alguien llamado "anon108." Allí se explica como configurar el cifrado en una máquina con Windows, usando figuras y capturas de pantalla que revelan que el creador estaba usando Tor y otras herramientas para cubrir su rastro.

Bueno acá les dejo las referencias de donde "descargar comprando" y "descargar no comprando". Les dejo a ustedes la decisión... 3:D

No Place to Hide... con esta opción irás al cielo.
No Place to Hide... con esta... irás todas partes.

Nos vemos... debo inventarme una despedida más pegajosa... "Hasta la vista baby"... olvídenlo.

martes, 13 de mayo de 2014

Minería de Bitcoin con DVR's infectados. Con código fuente!

Pareciera increíble que por la búsqueda del dinero, se utilicen estrategias como infectar sistemas de grabación para vigilancia con malware para hacer minería de Bitcoins. La imaginación es el límite cuando de delitos se trata.

¿Cuánto tiempo le toma a una grabadora de vídeo digital verse comprometida con malware una vez que el dispositivo se ha conectado a Internet? La respuesta lamentable, sólo un día.

A principios de abril de este año, Johannes Ullrich (SANS ISC CTO) descubrió que ciberdelincuentes lograron infectar a equipos de vigilancia digitales (Hikvision DVR y Synology DiskStation) con bitcoin-mining malware, por lo que decidió hacer algunas pruebas.

"Tomé parte de mi 'IoT Honeypot Lab'', añadí un DVR para ver cuánto tiempo se tardaría en quedar comprometida. El DVR (EPCOM Hikvision DVR S04) se instaló tal cuál se compró, exponiendo el puerto 23 a Internet", explicando así la puesta en marcha del laboratorio.



"Durante el primer día de la prueba, 13 direcciones IP de diferentes orígenes escanearon nuestro honeypot, y 6 lograron iniciar sesión con el nombre de usuario y contraseña por omisión ('root', '12345 ')", compartió posteriormente. "Sólo uno de los atacantes fue más allá de un simple "fingerprint" en la honeypot."

Según Ullrich, el atacante finalmente logró subir un binario para  bitcoin-mining, a pesar del hecho de que el dispositivo no cuenta con funciones de "upload" (wget, cliente FTP o Telnet). Éste finalmente logró realizar la hazaña con un script que contienía muchos comandos "echo" para cargar primero el wget, utilizando este último luego para recuperar el bitcoin-mining malware. *0*

Aún así, Ullrich cree que comprometer dispositivos como éste "no traería mucha alegría" a los atacantes.
"Durante el día periódicamente el servidor empuja los parámetros de minera, pero no he visto que devuelva nada, sin embargo, esto pone en relieve el hecho de que este tipo de miners son bastante inútiles debido a su poco procesamiento.", señaló.

También indicó que el dispositivo consiguió ser infectado varias veces, pero que ninguno de los atacantes cambió la contraseña predeterminada o  removió los bitcoin-miners anteriores.

Ullrich describe aquí las características del ataque al DVR, que utilizó para la prueba, siendo obvio que la mayor parte del problema se encuentra en: prácticas de seguridad deficientes y firmware sin ningún sesgo de seguridad.

Acá les dejo el código en Python (publicado en PasteBin) que inyectó los comandos echo al DVR.

Nos vemos!

miércoles, 7 de mayo de 2014

War Chalking, entendiendo los símbolos!


Hola! Como es costumbre quiero compartirles otro tema sobre ciberseguridad. Entre los hackers de todo tipo existe un lenguaje de símbolos para comunicar mensajes, el cual, fue inspirado en unos símbolos que utilizaban vagabundos en cierta ciudad norteamericana, y su sencillez ha sido uno de los factores que han hecho posible su proliferación por las grandes ciudades.

Warchalking es un lenguaje de símbolos normalmente escritos con tiza en las paredes, que informan a los posibles interesados de la existencia de una red inalámbrica en ese punto.

Además otras características como la no perdurabilidad de las marcas durante grandes períodos hacen que sea muy dinámico y se vaya adaptando constantemente a las características cambiantes de las redes sobre cuya existencia informa.

Los siguientes son los más usados:


Hay unas reglas sencillas de escritura a la hora de describir una red inalámbrica:
  1. En primer lugar se identifica el nombre del nodo, o SSID.
  2. En segundo lugar se identifica el tipo de red, bien sea abierta, cerrada o con otra característica.
  3. Por último, se identifica la velocidad de la misma (dada en megas).
Un ejemplo de ello sería:

red_del_lab
)(
2.5

En ocasiones se puede encontrar información adicional sobre la encripción y autenticación de la red. Hoy fue corto el post... te reto a buscar en tu ciudad estos símbolos! Si no los ves, pues empieza a buscar redes con Wardriving y a compartir con tu comunidad hacker lo que encuentres!

Nos vemos.