Material de la REcon 2016

REcon es una conferencia de seguridad que tiene lugar anualmente en Montreal y que está enfocada a la ingeniería inversa y a las técnicas de explotación avanzadas. Hace unos días vi que publicaron prácticamente todo el material, incluido los vídeos de todas las charlas... así que para quien quiera aprovechar el fin de semana, ahí se lo dejo... ;)

Presentaciones:
Videos:
Web: https://recon.cx/

Envío seguro de contraseñas... ¡a través del cuerpo humano!

El envío de una contraseña o código secreto a través de ondas de radio como WiFi o Bluetooth significa que cualquiera podría "escuchar" a escondidas, por lo que esas transmisiones pueden ser vulnerables a hackers que intenten romper el código cifrado.

Ahora, los científicos informáticos e ingenieros eléctricos de la Universidad de Washington han ideado una manera de enviar contraseñas seguras a través del cuerpo humano, usando transmisiones benignas de baja frecuencia (por debajo de 30 mhz) generadas por los sensores de huellas digitales y pantallas táctiles de los dispositivos de consumo.

"Los sensores de huellas dactilares hasta el momento se han utilizado como un dispositivo de entrada. Lo que es interesante es que hemos demostrado por primera vez que los sensores de huellas digitales pueden ser re-utilizados para enviar información hacia al cuerpo", dijo el autor principal Shyam Gollakota, profesor asistente de la Universidad de Washington de informática e ingeniería.

Estas transmisiones "sobre el cuerpo" ofrecen una forma más segura para transmitir la información de autenticación entre dispositivos que tocan partes del cuerpo (como una cerradura inteligente o un wearable médico) y un teléfono o dispositivo que confirma la identidad pidiendo la contraseña.

Esta nueva técnica aprovecha las señales ya generadas por los sensores de huellas digitales de los smartphones y los touchpads de los ordenadores portátiles para transmitir los datos de nuevas maneras, tal y como se describe en el paper presentado en septiembre en el 2016 en la UbiComp de Alemania.

"Digamos que quiero abrir una puerta con una cerradura electrónica inteligente", comenta Merhdad Hessar, otro de los autores. "Puedo tocar el pomo de la puerta y tocar el sensor de huellas dactilares en mi teléfono y transmitir mis credenciales secretas a través de mi cuerpo para abrir la puerta, sin fugas de información personal a través del aire."

El equipo de investigación probó la técnica en el iPhone y otros sensores de huellas dactilares, así como con los touchpads de portátiles Lenovo y pantallas táctiles capacitivas Adafruit. Probando con 10 sujetos diferentes, de diferentes alturas, pesos y tipos de cuerpo, fueron capaces de generar transmisiones utilizables. El sistema también trabajó cuando los sujetos estaban en movimiento, incluyendo mientras caminaban y movían sus brazos.

"Hemos demostrado que funciona en diferentes posiciones al pararse, sentarse y dormir" dijo el investigador Vikram Iyer. "También podemos generar una señal fuerte a lo largo del cuerpo. Los receptores pueden estar en cualquier lugar -en la pierna, pecho, manos- y sigue funcionando".

Los investigadores alcanzaron velocidades de 50 bits por segundo en paneles táctiles portátiles y 25 bits por segundo con sensores de huellas digitales, los suficientemente rápido para enviar una contraseña simple o un código numérico a través del cuerpo y hacia un receptor en cuestión de segundos.

Esto representa sólo un primer paso, dicen los investigadores. Los datos pueden ser transmitidos a través del cuerpo aún más rápido si los fabricantes de sensores de huellas digitales proporcionan más acceso a su software.

Fuente: https://techxplore.com/news/2016-09-passwords-body-air.html

WSSAT, un escáner de seguridad de web services

El turco Yalçın Yolalan ha desarrollado como proyecto del máster de administración de software de la Middle East Technical University (METU) una herramienta para testear la seguridad de web services. Se trata de WSSAT - Web Service Security Assessment Tool, un escáner de seguridad de web services que acepta un WSDL como entrada para cada servicio y realiza una serie de pruebas tanto estáticas como dinámicas en busca de vulnerabilidades. De esta manera las organizaciones podrán realizar un análisis de la seguridad de todos sus servicios web a la vez, fortificarlos y tener informes valiosos para obtener una valoración global de la seguridad.


Características:

- Soporta autenticación básica
- Comprueba la autenticación de cada método del web service incluso si el usuario y contraseña es suministrado en el WSDL
- Permite enviar múltiples payloads
- Examina el código de estado, la cabecera y el body HTTP del objeto de respuesta
- Soporta múltiples búsquedas en el texto de respuesta
- Realiza inyecciones SQL en bases de datos Oracle, MSSQL, MySQL y SQLite
- Comprueba el valor o la existencia de un nodo/atributo XML en el análisis stático
- Soporta la comprobación de múltiples nodos XML
- Los informes contienen 3 gráficos para visualizar el nombre, tipo y severidad de las vulnerabilidades encontradas
- Incluye modo de depuración y logs detallados


Pruebas dinámicas:

- Comunicación insegura - No se utiliza SSL
- Método de servicio no autenticado
- Inyección SQL basada en error
- Cross Site Scripting
- Bomba XML
- Ataque de entidad externa - XXE
- Inyección XPath
- Mensajes detallado de errores SOAP

Análisis estático:

- Esquema XML débil: Ocurrencias no acotadas
- Esquema XML débil: Namespace indefinido
- WS-SecurityPolicy débil: Transporte inseguro
- WS-SecurityPolicy débil: Soporte insuficiente de protección de tokens
- WS-SecurityPolicy débil: Tokens no protegidos

Fuga de información:

- Descubrimiento de información del servidor o tecnología

Los principales módulos de WSSAT son:

- Parser
- Cargador de vulnerabilidades
- Analizador/Attacker
- Logger
- Generador de informes

Proyecto: https://github.com/YalcinYolalan/WSSAT

Las 10 contraseñas por defecto más usadas por el malware del IoT

El malware especializado en atacar dispositivos de la Internet de las Cosas (IoT) a menudo basa sus ataques en intentar acceder en primera instancia con las credenciales por defecto del firmware instalado, aprovechando que normalmente un usuario doméstico conecta el dispositivo y no se preocupa en cambiar la contraseña ni, en general, realizar ningún cambio para mejorar la seguridad del dispositivo "inteligente" de turno.

Un interesante informe de Symantec (que os recomiendo leer aquí) revela la lista de las contraseñas por defecto que distintos tipos de malware para IoT han intentado utilizar contra sus honeypots. A destacar 'ubnt' por los gusanos que intentan explotar la vieja vulnerabilidad de los routers Ubiquiti y 'pi' por la creciente tendencia del uso de Raspberry:

UsernamesPasswords
root admin
admin root
DUP root 123456
ubnt 12345
access ubnt
DUP admin password
test 1234
oracle test
postgres qwerty
pi raspberry

Obtención de passwords de Outlook analizando el dump del proceso

Últimamente he andado mirando temas de volcado de procesos para posteriormente analizarlos, o bien con herramientas dedicadas para cada proceso o sencillamente interactuando con el comando string y un poco de grep.

Lo último que probé fue volcar el proceso outlook.exe (versión 2003):
 

procdump -ma outlook.exe outlook.dmp

ProcDump v7.1 - Writes process dump files
Copyright (C) 2009-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
With contributions from Andrew Richards

[17:18:34] Dump 1 initiated: D:\Pruebas\Microsoft\technet\Sysinternals\Procesos y subprocesos\outlook.dmp
[17:19:40] Dump 1 complete: 528 MB written in 66.3 seconds
[17:19:41] Waiting for dump to complete...
[17:19:41] Dump count reached.

Una vez volcado el proceso outlook.exe, dije "pues ahora a jugar un poco con strings"...

Antes de nada, como el protocolo utilizado para el correo en este caso es IMAP, quise informarme un poco de comandos del mismo a través de la RFC.

https://tools.ietf.org/html/rfc3501#page-25

Y me resultó curioso el comando NOOP:

6.1.    Client Commands - Any State

   The following commands are valid in any state: CAPABILITY, NOOP, and LOGOUT.
6.1.2.  NOOP Command

   Arguments:  none
   Responses:  no specific responses for this command (but see below)
   Result:     OK - noop completed
               BAD - command unknown or arguments invalid

      The NOOP command always succeeds.  It does nothing.

      Since any command can return a status update as untagged data, the
      NOOP command can be used as a periodic poll for new messages or
      message status updates during a period of inactivity (this is the
      preferred method to do this).  The NOOP command can also be used
      to reset any inactivity autologout timer on the server.

   Example:    C: a002 NOOP
               S: a002 OK NOOP completed
                  . . .
               C: a047 NOOP
               S: * 22 EXPUNGE
               S: * 23 EXISTS
               S: * 3 RECENT
               S: * 14 FETCH (FLAGS (\Seen \Deleted))
               S: a047 OK NOOP completed

Embeber backdoors en APKs al vuelo con Spade

Spade es un pequeño pero útil script que permite infectar fácilmente APKs con payloads de Android de Metasploit.


Veréis que sólo con unas pocas líneas de Python y Metasploit es posible hacerlo rápidamente:

git clone https://github.com/suraj-root/spade.git
cd spade/
./spade.py


Demo vídeo:
Github: https://github.com/suraj-root/spade

Conexión inversa usando como vector NetHunter o Rubber Ducky (HID attack)

Kali NetHunter (kali.org/kali-linux-nethunter), la plataforma Android de pentesting para dispositivos Nexus, tiene muchas opciones interesantes, entre ellas el "DuckHunter HID" que puede convertir rápida y fácilmente los scripts del USB Rubber Ducky para realizar ataques de tipo HID keyboard, ya sabéis, ataques que convierten el smartphone y su cable OTG USB en un teclado preprogramado, capaz de escribir cualquier comando dado...

Lo que vamos a hacer a continuación es algo muy simple, pero puede ser peligroso cuando se implementa.

Preparando el backdoor en Metasploit

Vamos a utilizar el módulo “script web delivery” (rapid7.com/db/modules/exploit/multi/script/web_delivery), que tiene la ventaja de no tener que crear un archivo ejecutable, y muchas probabilidades de transmitir el malware sin que el AV lo detecte.
 

Para nuestra prueba, elegimos el objetivo 2, que va a generar una secuencia de comandos que se utilizará en PowerShell

Configuración del payload
Payload: payload windows/meterpreter/reverse_tcp
LHOST: IP local, que recibirá la conexión
URIPATH: se puede poner simplemente una “/”
LPORT: puerto local, por defecto el 4444
Script: exploit -j

Demuestran que era posible hackear remotamente un coche Tesla Model S, tanto estacionado... como en movimiento

Los chinos de Keen Lab han descubierto una serie de vulnerabilidades que pueden ser explotadas por un atacante para hackear remotamente un Tesla Model S de fábrica, las reportaron bajo el programa de recompensas de Bugcrowd y de paso se embolsaron la nada despreciable cifra de 10.000$.

Aunque de momento no han publicado los detalles técnicos, para demostrar las vulnerabilidades publicaron un impresionante vídeo con la PoC del hack que muestra cómo fueron capaces de tomar el control del techo solar, de la posición de los asientos, de las señales de giro y del sistema de cierre de puertas. La parte más impactante fue cuando el coche estaba en movimiento, momento en que fueron capaces de activar los frenos y los limpiaparabrisas, plegar los espejos laterales y abrir el maletero.


Keen Lab explicaba en su blog: "Con varios meses de investigación en profundidad sobre los coches Tesla, hemos descubierto múltiples vulnerabilidades de seguridad y aplicado con éxito remotamente, sin contacto físico ninguno, el control sobre el Tesla Model S, tanto en modo de conducción como de estacionamiento. Vale la pena señalar que se utilizó un coche sin modificar con el último firmware para demostrar el ataque".

Los investigadores son el primer equipo de hackers capaz de poner en peligro el Bus CAN de control remoto de los coches de Tesla mediante la explotación de una serie de defectos.

"Por lo que sabemos, este es el primer caso de ataque a distancia que compromete el bus CAN para lograr control remoto de los coches de Tesla. Hemos verificado el vector de ataque en múltiples variedades de Tesla Model S. Es razonable suponer que otros modelos de Tesla se ven afectados. A Keen Lab le gustaría enviar este recordatorio a todos los propietarios de automóviles Tesla".

Actualización: Tesla ha comprobado la existencia de las vulnerabilidades y ya las ha parcheado, lo bueno es que la empresa no llevará a taller ningún Tesla Model S porque es capaz de aplicar las actualizaciones de firmware "on-air". Este es su comunicado oficial:

"Tan sólo 10 días después de recibir este informe, Tesla ya ha desplegado una actualización de software over-the-air (v7.1, 2.36.31) que soluciona los problemas de seguridad potenciales. La vulnerabilidad sólo aplica cuando se utiliza el navegador web y también requiere que el coche esté físicamente cerca y conectado a un punto de acceso wifi malicioso. Nuestra estimación realista es que el riesgo para nuestros clientes fue muy bajo, pero esto no nos impidió responder con rapidez".

Fuentes:
- Car Hacking Research: Remote Attack Tesla Motors 
- A group of security researchers from the Chinese firm Tencent have found a series of flaws that can be exploited to remotely hack a Tesla Model S.
- First Tesla Model S remotely controlled by hackers, Tesla already pushed a fix

WinPayloads - generación de payloads indetectables para Windows

WinPayloads de NCCGroup es una herramienta de generación de payloads escrita en Python 2.7 que utiliza el shellcode de meterpreter, inyecta la IP y el puerto del usuario en el shellcode y escribe un archivo de Python que ejecuta dicho shellcode usando ctypes. Posteriormente es cifrado con AES y compilado a un ejecutable de Windows usando PyInstaller.


Características:

- Generación de payloads de Windows indetectables
- GUI fácil de utilizar
- Subida del payload a un WebServer local
- Psexec del payload al equipo destino
- Automáticamente ejecuta el listener de Metasploit con la configuración correcta después de que se haya generado el payload

WinPayloads viene también con algunas características como el bypass UAC y la persistencia de payloads. Estos son archivos de PowerShell que se ejecutan en el sistema cuando el meterpreter consigue una shell inversa. El bypass UAC viene con PowerShellEmpire y utiliza el exploit para evadir UAC con las cuentas de administrador local y crea un shell de meterpreter inverso contra la máquina del atacante como administrador local.

WinPayloads puede también instalar un SimpleHTTPServer para poner el payload en red y permitir descargarlo en el equipo de destino. Además mediante psexec (psexec.py) puede ejecutar directamente en el equipo objetivo si se suministra con nombres de usuario, contraseñas de dominio, o hashes.

Instalación y uso

git clone https://github.com/nccgroup/winpayloads.git
cd winpayloads
sudo ./setup.sh
./Winpayloads.py
Escribe 'help' o '?' para ayuda
setup.sh -r (reinstalar)

Demo:

Proyecto: https://github.com/nccgroup/Winpayloads

CryptoTrooper: el primer ransomware 'white-box' con propósitos educativos para Linux

CryptoTrooper, de Maksym Zaitsev alias cryptolok, es el primer ransomware de tipo white-box o caja blanca para Linux del mundo, con propósitos educativos.

Requiere :

- Un SO de 32/64 bits basado en Debian con privilegios de root
- Apache/Nginx - para el cifrado de servicios web y para cambiar la página principal
- MySQL/PostgreSQL - para el cifrado de base de datos
- / y /home - para el cifrado de los datos personales, excepto el directorio .ssh

Cómo funciona :

- Infección - el servidor de la víctima es comprometido e infectado de alguna manera, obteniendo privilegios de root
- Cifrado - el ransomware genera una clave única de cifrado simétrico y cifra los datos
- White-box - la criptografía de caja blanca intenta proteger la clave secreta del cifrado en un entorno en que adversario tiene acceso completo a la implementación y al entorno de ejecución. El sistema de cifrado utiliza la clave de una sola dirección y cifra la clave utilizada para el cifrado de datos
- Descifrado - la víctima envía al atacante la clave de cifrado de caja blanca y su vector de inicialización (IV), esta clave se descifra por el atacante con su IV y la clave maestra que se utiliza para generar la clave white-box, la verdadera clave se envía a la víctima.

Pros:

- No se requiere conexión a Internet después de la infección (ya que no se utiliza el cifrado de clave pública en ningún C&C)
- Protección contra la extracción de clave
- Sólo AES
- Anti-forense
- Generación aleatoria de claves
- Random IV