Mostrando entradas con la etiqueta troyano. Mostrar todas las entradas
Mostrando entradas con la etiqueta troyano. Mostrar todas las entradas

lunes, julio 22, 2019

SMOLPION Symbiote: Cómo atacar equipos con un troyano físico [Parte 1 de 2]

Ahora el bloquear tu equipo al salir de la oficina no te salvará. Ya sea de un inocente ataque David Hasselhof o de la peligrosa infección con un RAT (Remote Administration Tool) pues hasta ahora una buena práctica para evitar ataques sobre tu ordenador personal en tu ausencia era tan simple como presionar WINDOWS + L, sin embargo ¿de qué serviría esto cuando el atacante tiene el control de tu teclado desde cualquier parte del mundo utilizando un troyano basado en hardware?

Figura 1: SMOLPION Symbiote: Cómo atacar equipos con un troyano físico [Parte 1 de 2]

Hace ya casi un año, se presentó formalmente SMOLPION, un dispositivo USB destinado a pentesters que simula un teclado físico para inyectar pulsaciones de teclas a velocidad sobrehumana, su única “limitante” hasta el momento era que el payload cargado sólo podía ser ejecutado una sola vez, además de no poder precargar múltiples payloads y ejecutarlos a placer, remotamente y a una hora deseada.

Bajo esta premisa y con la finalidad de diseñar herramientas más poderosas para el Red Team, nace SMOLPION Symbiote, un dispositivo USB que utiliza radiofrecuencia para que el atacante pueda tomar el control del equipo víctima.


Al ser conectado en el ordenador objetivo, el dispositivo se mantendrá en StandBy a la espera de las ordenes del atacante, la ventaja de esto, es que puede mantenerse conectado por tiempo indefinido a un puerto USB, ya sea como una memoria USB, como un “inocente” dispositivo USB weaponizado (como un pequeño ventilador, una lámpara o en cables como lo hace el USBNinja), como un dispositivo intermediario entre el teclado o el ratón de la computadora y el puerto USB, e incluso ser conectado desde dentro de una computadora portátil o de un ordenador de escritorio.


Esta forma de funcionar se hace con la finalidad de asegurar que siempre se mantenga adherido e indetectable a los ojos de la víctima, esperando las ordenes de quien lo controla, haciendo la perfecta alegoría a un caballo de Troya, al mero estilo de los Symbiotes de los cómics, asegurando el control remoto por parte del atacante, sin importar si la víctima reinicia el equipo, si lo formatea o si instala nuevo software antivirus. A final de cuentas ¿qué ordenador del mundo sospecha de un inocente teclado?

1.- Métodos de Control

En el ordenador víctima no hay más ciencia que conectar el dispositivo a un puerto USB (más adelante se describirán las diferentes maneras de lograr este cometido). Una vez hecho esto, el atacante podrá decantarse por 3 opciones para controlar el ordenador objetivo de acuerdo a sus necesidades.

1.1- Monitor serie

El atacante puede utilizar cualquier placa de Arduino que tenga a la mano para conectar el Emisor RF y mandar órdenes a SMOLPION Symbiote a través del monitor serial del IDE de Arduino.

Figura 4: Emisor RF conectado a Arduino UNO

Al compilar el código necesario en la placa Arduino y dar apertura al monitor serial, se mostrará un menú extremadamente amigable, en el cual solo se deberá escribir la palabra correspondiente al ataque que se desea ejecutar.

Figura 5: Vectores de ataque visualizados con el monitor serial

Cabe mencionar que, en este modo de utilización, la distancia de la que el atacante esté del ordenador víctima es crucial, ya que si no se le coloca una antena al emisor RF este tendrá un alcance limitado de aproximadamente 15 metros. Aunque eso ya es una distancia moderada para pasar desapercibido por la víctima.

Si se desea controlar el equipo víctima desde una distancia más lejana se deberá soldar una antena al emisor RF (que bien puede ser un simple cable coaxial) de este modo aumentará considerablemente la distancia a la que podemos controlar a la víctima, teniendo la posibilidad de aparcarnos fuera de su oficina. Un buen trabajo para los makers hackers que usan Arduino.

Figura 6: Libro "Arduino para Hackers: PoCs & Hacks Just For Fun"
(Esta semana con un 10% de Descuento con el cupón VERANO2019)

Pero si se requiere tener el control desde distancias mayores, es posible utilizar antenas más potentes, que incluso puedan brindar control al pentester desde 8 kilómetros, hacer uso de repetidores amplificadores de señal, de hardware especializado para trabajar con radiofrecuencia como el HackRF One o realizar una creativa combinación de todo lo anterior, pues los métodos de ataque solo están limitados por la propia imaginación.

1.2.- Con un control remoto

Para mayor comodidad, es posible hacer uso de un control remoto con antena plegable, tal como se muestra en las demos más adelante, de esta manera con solo presionar un botón, el pentester podrá ejecutar un ataque determinado en el momento que desee.

Figura 7: Control remoto con antena plegable

1.3.- Monitor Serie + Raspberry Pi + VNC

Si lo que se desea es tener el control del objetivo desde cualquier parte del mundo es posible agregar una Raspberry Pi a la ecuación. Tan solo se debe tener corriendo un sistema operativo estable como Raspbian, instalar el IDE de Arduino y tener operando la Raspberry Pi cerca del objetivo, o relativamente cerca, utilizando una antena con potencia decente.

Se sugiere una Raspberry Pi por su reducido tamaño (Aunque en las imágenes se utiliza el modelo 3, resultaría óptima la utilización del modelo Zero) y facilidad para pasar desapercibida, con miras de ocultarse en lugares inimaginables como en un enchufe, escuchando ordenes 24/7.

Figura 8: Ocultando una Raspberry Pi en un enchufe cercano al objetivo

Cumpliendo con estas condiciones, lo único que resta es acceder a la Raspberry Pi por medio de un ordenador o un Smartphone a través de VNC, dar apertura al IDE de Arduino y enviar ordenes a través del monitor serial para concretar un ataque exitoso.

2.- Métodos de infiltración

Infiltrar SMOLPION Symbiote en un ordenador víctima es tan trivial como conectar el dispositivo a un puerto USB, como si este fuera una unidad de almacenamiento, sin embargo, esto puede lograrse de maneras variadas e ingeniosas en un Ethical Hacking con la finalidad de levantar las menores sospechas en el administrador del equipo y garantizar que se mantenga adherido a él indefinidamente. A continuación, se listan algunas.

2.1.- Conexión interna a la placa madre (Motherboard)

Es posible conectar el dispositivo directamente a la placa madre del ordenador  si se cuenta con algo de tiempo extra con el equipo objetivo (entre 5 y 10 minutos), tan solo es necesario desmontar la caja de la CPU para tener acceso al conector IDC, conectar SMOLPION y volver a montar la caja, de este modo el dispositivo se mantendrá en StandBy, imperceptible a la espera de órdenes.

Figura 9: Conectores IDC para USB en la placa madre y adaptador hembra

Si por el contrario el objetivo es un computador portátil o una tableta, simplemente hay que quitar temporalmente unos cuantos tornillos cercanos a los puertos USB y conectar el dispositivo directamente (o con un adaptador si las dimensiones del equipo lo permiten) a los pines verticales del conector USB u optar por hacer uso de una placa NanoHub -de la que se hablará más adelante-.

Figura 10: Área de conexión en una computadora portátil

Ahora ya sabes por qué hay que precintar los equipos y poner una pintura de sellado en los tornillos que salte si alguien intenta manipular tu equipo. En la segunda parte completamos los métodos de infiltración y vemos cómo funciona el proceso en real.

Autor: Raphael L. Molina (@raphael_mol)

**************************************************************************************************
- SMOLPION Symbiote: Cómo atacar equipos con un troyano físico (Parte 1 de 2)
- SMOLPION Symbiote: Cómo atacar equipos con un troyano físico (Parte 2 de 2)
**************************************************************************************************

lunes, marzo 05, 2018

JSRAT: Una Remote Administration Tool (RAT) con PowerShell & JavaScript

Hace unos años, Chema Alonso y Manuel Fernández trabajaron el concepto de la Javascript Botnet, exponiéndola en diferentes congresos internacionales. Poco después, en el libro de Hacking a dispositivos iOS Ioseba Palop mostraba cómo llevar a cabo esta prueba de concepto a un iPhone o un iPad y se podía observar como las consecuencias eran fatales para cualquier dispositivo que navegase por la red. Este hecho tiene que ver con el artículo de hoy, ya que hoy en día tenemos diferentes soluciones para utilizar Javascript como un payload y poder utilizarlo para lograr el control de una máquina, dentro del contexto de pentesting en un proyecto de hacking ético.

Figura 1: JSRAT: Una Remote Administration Tool (RAT) con PowerShell & JavaScript

El investigador Casey Smith, originalmente, desarrolló un prototipo de herramienta que utiliza Javascript como un payload y permite conectar contra un servidor web que se encuentra a la escucha. Un investigador de seguridad llamado 3gstudent extendió las funcionalidades de la herramienta de Casey Smith para que ésta trabajase con Powershell, añadiendo algo de funcionalidades extra. Existen más variaciones de la herramienta, por ejemplo, una en Python. En el caso de la herramienta en Powershell está basada en PoshC2.

Figura 2: Owning bad guys {and mafia} with Javascript Botnet

La herramienta JSRat es un Command and Control o C&C, el cual utiliza Javascript y el protocolo HTTP para ejecutar payloads y tener comunicación entre el servidor y las máquinas comprometidas. Como comenté anteirormente, hay dos implementaciones, una en Powershell y otra en Python. Son totalmente embebibles en el Pentesting con Powershell y en el Pentesting con Python.

Jugando con JSRat y PoshC2 en Powershell

El esquema de JSRat y PoshC2 es sencillo. Tenemos un servidor, el cual será ejecutado en nuestra Powershell, con privilegios. Por otro lado, están los hosts que pueden haber sido comprometidos o que ejecuten el código Javascript desde cualquier parte del sistema.

En primer lugar, vamos a ejecutar en un Windows 10 el script JSRat.ps1. Esto nos deja el puerto 80 del equipo abierto para recibir las conexiones. Como se puede leer, obtenemos el estado de "Listening…". Hay que tener en cuenta que la dirección IP del servidor viene "hardcodeada" en el código, por lo que es recomendable que se observe el código, se entienda y se cambie lo necesario.

Figura 3: JSRat listening

¿Cómo se puede ejecutar el código para que se conecten las máquinas? Nosotros lo vamos a hacer desde la consola con el binario rundll32.exe, pero se podría utilizar una máquina comprometida con otros mecanismos para lograr ejecutar este tipo de código.

Como se puede ver en la imagen, en la máquina que será comprometida se utiliza rundll32.exe para ejecutar el código Javascript. Hay que indicar que este código tiene la dirección IP que hay que modificar, como ocurría en el servidor.

Figura 4: Ejecución de código Javascript con rundll32.exe

Cuando en el equipo se ejecuta el código se obtiene el control remoto. Obtenemos una pequeña shell con varias opciones. El script de JSRat nos proporciona las siguientes posibilidades:
  • Poder abrir una cmd, con la que se pueda ejecutar comandos.
  • Eliminar un fichero de la máquina comprometida.
  • Leer un fichero de la máquina comprometida.
  • Ejecutar un binario.
  • Descargar un archivo desde la máquina comprometida.
  • Subir un fichero hacia la máquina comprometida.
Si queremos eliminar un fichero o leerlo, podemos ejecutar delete o read, respectivamente, e introducir la ruta del fichero en cuestión. Realmente el uso del script es muy sencillo. Si, por otro lado, queremos subir o descargar un archivo es igual, salvo que en el caso de la subida debemos indicar la ruta local y no la ruta remota.

Figura 5: Menú de comandos JSRat

En el caso de ejecutar algo podemos utilizar el comando run. Una vez introducido la shell nos pedirá información sobre el binario que queremos ejecutar y sus argumentos. En este caso, y a modo de ejemplo, vamos a ejecutar rundll32.exe para ejecutar una DLL creada con msfvenom y que contiene un Meterpreter. Para ello, escribimos la instrucción rundll32 shell32.dll,Control_RunDLL [ruta DLL con Meterpreter].

Figura 6: Ejecución de una DLL creada con msfvenom

Si hemos configurado un handler de Metasploit para recibir la conexión, la DLL nos otorgará una sesión de Meterpreter en nuestra máquina Kali Linux, tal y como se puede ver en la imagen. Realmente, esto es para simplificar que podemos ejecutar cualquier cosa con el comando run de JSRat, como se puede observar.

Figura 7: Ejecución de un Meterpreter

Una de las grandes ventajas que nos ofrece este Command & Control o C&C es que no necesita ser escrito en disco. Proporciona una comunicación vía HTTP rápida a través de un protocolo común. La detección de JSRat a través de Javascript es difícil, a no ser que, en este caso, rundll32 esté siendo monitorizado. Sea como sea, y de todos modos, habilitando y configurando AppLocker para denegar la ejecución de rundll32.exe se evita el ataque.


Figura 8: PoC JSRat: Una R.A.T. con PowerShell & Javascript

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

lunes, diciembre 11, 2017

¿Un Backdoor en los routers con ZeroShell?

El pasado mes de octubre, se publicada en este blog el artículo que llevaba por título “Ejecución de Código Remoto en dispositivos GNU/Linux con Zeroshell” donde se explicaba cómo ejecutar código remoto aprovechando la vulnerabilidad CVE 2009-0545 que pone de manifiesto la falta de validación de ciertos parámetros enviados por GET/POST a la aplicación del estándar criptográfico X.590 que soportan.

Figura 1: ¿Un Backdoor en los routers con ZeroShell?

Parece que una buena medida de seguridad sobre este tipo de dispositivos sería detener o no levantar los servicios HTTP y HTTPS para evitar una posible inyección de código de forma remota. Es por anterior que este artículo se mostrará cómo abrir una shell en el dispositivo con privilegios de root.

Explorando la línea de comandos de ZeroShell

En muchos dispositivos destinados a la administración de redes y defensa perimetral, como pueden ser los sistemas ZeroShell, una buena opción para reducir la superficie de exposición es permitir la administración del dispositivo únicamente bajo una interfaz de línea de comandos, a veces de manera remota bajo servicios como SSH, y otras de manera local.

Figura 2: Opciones de la línea de comandos de los dispositivos ZeroShell

Como parece, la superficie de exposición se reduce de manera considerable, pero el sistema sigue quedando expuesto mientras se pueda interactuar con él, aunque sea bajo una interfaz de línea de comandos.

Una primera aproximación es seleccionar la opción <s> Shell Prompt para ver si es posible disponer de una shell sin estar autenticado en sistema. Como es lógico, el sistema solicita la contraseña del usuario que corre en el sistema. Además, como máximo permite tres intentos sobre el password. Si son infructuosos, el sistema regresa a las opciones mostradas en la Figura 2.

Figura 3: Intentos de autenticación fallidos

Ejecución de comandos bajo root

Dado que no conocemos la contraseña de acceso al sistema, se prueban todas posibilidades que ofrece el menú de línea de comandos.

Figura 4: Opciones del router ZeroShell

Ocurre algo curioso si seleccionamos la opción Show Firewall Rules para ver cuáles son las reglas que incorpora en su iptables.


Figura 5: Reglas iptables en el firewall del router ZeroShell

Pulsando la tecla ‘H’ mientras el sistema muestra las cadenas que tiene en iptables, el sistema ofrece diferentes opciones. Una de ellas parece que permite la ejecución de comandos en una subshell. Lo único que hay que hacer es escribir el carácter “!”(ALT+1) seguido del comando que se quiera ejecutar en el sistema.

Figura 6: Opción para abrir una shell "sin privilegios administrativos"
Ejecutando el comando “uname –a”, se observa que la versión de ZeroShell que corre en el sistema es la 3.4.19.

Figura 7: Información del sistema operativo que se está utilizando

Se comprueba que el entorno donde se ejecutan los procesos generados por los comandos que recibe el sistema es el del usuario root y, por lo tanto, es muy posible visualizar archivos críticos del sistema como pueden ser /etc/passwd o /etc/shadow.

Figura 8: El usuario root no utilizado en la ejecución de comandos

Figura 9: Información de los usuarios del sistema en /etc/passwd

Entrando por la puerta de atrás

Dado que el entorno donde se ejecutan los comandos es el del usuario root, probaremos a ejecutar “/bin/sh” o “/bin/bash” para intentar obtener la shell del usuario root, cualquiera de las dos es buena.

Figura 10: Obtención de una shell /bin/bash con privilegios de root

Como se observa, es posible obtener una shell dentro del sistema con privilegios de “root” sin la necesidad de estar autenticado en él.

Consideraciones finales
• Las pruebas realizadas para obtener los resultados expuestos en el artículo, han sido realizadas bajo un entorno virtual con la versión 3.4.19 de Zeroshell, concretamente sobre la máquina virtual proporcionada en uno de los retos de las Cyberolimpiadas organizadas para Centros Educativos en el marco del Cybercamp de este año.

• No se han realizado pruebas exhaustivas en entornos de producción real donde corren este tipo de sistemas, por lo que no se puede determinar que exista realmente un backdoor en la versión
3.14.9 de ZeroShell, en versiones inferiores o posteriores, pero habría que probarlo.
Autores: Amador Aparicio de la Fuente (@amadapa) y Álvaro Gutiérrez Rebollo (@alvgut98), alumno de 1º de Administración de Sistemas Informáticos en Red.

miércoles, noviembre 01, 2017

ZeroDoor: Un script en Python para crear backdoors multiplataforma

Hace unas semanas estuvimos viendo una herramienta llamada OWASP ZSC con la que podíamos hacer la competencia al gran msfvenom de Metasploit. La herramienta de la que hablaremos hoy se llama Zerodoor, con la que se puede generar backdoors de forma sencilla para diferentes plataformas. Es cierto que Zerodoor no tiene el nivel de madurez aún que tienen otras aplicaciones, pero es una nueva forma de automatizar el proceso de creación de backdoors. Además, Zerodoor proporciona la posibilidad de utilizar el listener de forma automática, dentro de la propia aplicación.

Figura 1: ZeroDoor: Un script en Python para crear backdoors multiplataforma

Como se dice en el Github del proyecto, Zerodoor es un script desarrollado en Python (muy utilizado para desarrollar tools en el mundo de los pentesters) que permite generar backdoors para las necesidades diarias del pentester en un proyecto de Ethical Hacking. Estos backdoors son generados de forma sencilla, como se verá en este artículo. Una vez que se genera el payload se puede generar un binario para sistemas *nix o Windows, incluso se puede preparar para código Powershell. En este artículo se mostrarán las diferentes opciones que trae la herramienta, la cual, como se ha mencionado, ha implementado posibilidades para Powershell en las últimas versiones. Esto siempre le da un toque de poderío a la herramienta.

Figura 2: Información de ZeroDoor en GitHub

Para arrancar la aplicación se puede ejecutar el único script de Python que encontramos en el GitHub desde nuestro Kali Linux, tras hacer el git clone del proyecto. Lo primero que nos aparece es un mensaje de descarga legal y las diferentes opciones que tenemos de base:
• Generar backdoors. 
• Configurar listener.
Para este primer ejemplo, vamos a optar por la opción backdoors, ya que crearemos una para Windows, tal y como se puede ver en la imagen.

Figura 3: Opciones de ZeroDoor para crear BackDoors o Listeners

Si pulsamos sobre la opción de backdoors, podemos ver cómo se ofrecen tres opciones nuevas: la posibilidad de generar una backdoor en Linux, la posibilidad de generar una backdoor en Windows y la nueva posibilidad de generar instrucciones en Powershell que permitan ejecutar código remoto. De esta última opción hablaremos más tarde.

En la imagen, se puede ver cómo tras insertar la Opción 2 se nos solicita varios datos, como son LHOST y LPORT, es decir, la dirección IP dónde la backdoor devolverá el control de la máquina remota y el puerto al que se tendrá que conectar la conexión inversa.

Figura 4: Construyendo un backdoor para Windows

Una vez confirmados los datos que nos piden, se genera un nuevo fichero, el cual se puede ver en el sistema de archivo llamado winshell.c. En la imagen, se puede ver el código de la backdoor, la cual es muy simple, y puede ser modificada para mejorar sus prestaciones, al menos de cara a la evasión de los antivirus.

Figura 5: Fichero winshell.c generado

Se puede ver, que la backdoor ejecutará un cmd.exe y se conectará a una dirección IP y un puerto. Estos datos fueron configurados previamente en la ejecución del script y en la selección de las diferentes opciones.

PoC: Powerdoor en Zerodoor

La Opción 3 del script de Zerodoor proporciona la posibilidad de utilizar Powershell para ejecutar instrucciones, lo cual es realmente interesante, pensando también en la evasión. La instrucción que por defecto nos proporciona Zerodoor para Powershell es detectado, a día de hoy, por Windows Defender en Windows 10, lo cual es algo a tener en cuenta.

Cuando elegimos la opción de Powershell nos solicitan información sobre LHOST y el nombre del fichero que se buscará en el servidor. En este caso hemos elegido exec.txt como nombre de fichero que será buscado en el servidor y ejecutado.

Figura 6: Backdoor en Powershell

El fichero exec.txt contiene el código Powershell que ejecutará las diferentes instrucciones. En este caso, y para probar, hemos optado por la instrucción calc.exe. Lógicamente si utilizaremos funciones, instrucciones o scripts más potentes orientados al Pentesting con Powershell, ganaríamos en posibilidades.

Cuando descargamos la instrucción a través del navegador y la pegamos en la Powershell, obtenemos una calculadora. Hemos logrado ejecutar código, a través de la Powershell y el límite lo marcaremos nosotros con todas las posibilidades que tenemos al alcance de la mano con Powershell.

Figura 7: Ejemplo de ejecución de calc.exe con Powerdoor

Para finalizar, decir que es una herramienta que debemos tener en la mochila como script útil para generar una backdoor en un momento determinado de un Ethical Hacking. Además, recomendamos el uso de OWASP ZSC o msfvenom, las cuales aportan un mayor número de funcionalidades y posibilidades. También hay que decir que Zerodoor es una herramienta nueva que tiene posibilidades de mejorar.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

sábado, agosto 26, 2017

Zloader ataca con macros Excel a bancos en España

El troyano bancario Zloader ha vuelto a las noticias en España por haber sido utilizado en una campaña de infección de equipos para robar cuentas de clientes de bancos como Santander España, BMN, Abanca o Ruralvia, utilizando para ello documentos Excel enviados por correo electrónico.

Figura 1: Zloader ataca con macros Excel a bancos en España

La técnica de infección no es nueva, pero por ello no deja de seguir siendo válida, y como han analizado en Una al día, todo comienza con la llegada de un documento Excel que pretende ser una factura enviada a la víctima.

Figura 2: Fichero de Excel con macros maliciosas que simula ser una factura

El documento exige que se habiliten las macros en Excel, algo que una vez hecho abre muchas posibilidades al documento. En el blog de ElevenPaths se publicó en el año 2015 un artículo en el que ya veíamos cómo este tipo de malware de macro estaba poniéndose otra vez en primera línea, gracias a la sencillez de crearlo. 

Figura 3: Malware de macro distribuido como factura en 2015

El código de la macro, ofuscado como en el caso de Zloader, o simplemente camuflado como hemos visto en otras ocasiones, lleva a conectarse a un backend que hace de C&C o de dropper, como en este caso, ejecutando el código malicioso en %APPDATA%. Ahí, se puede acceder a los WebInjects, es decir, al fichero de configuración de Zloader que le dice qué debe inyectar en cada página bancaria.

Figura 4: Fichero de configuración de Zloader con los WebInjects

A día de hoy, los equipos de seguridad de las instituciones bancarias han frenando la campaña y las muestras utilizadas están firmadas por todas o casi todas las casas de antimalware, así que si tienes un motor con protección en tiempo real activado debería detectarlos. 

Figura 5: Detección de la muestra analizada por Una al día

No obstante, a pesar de que pasan los años, este tipo de ataques permanecen así que más vale que tengas cuidado tú personalmente con estas campañas de ficheros con macros peligrosas - y avises a tus compañeros de empresa -.

Saludos Malignos!

viernes, agosto 04, 2017

iPhone: Device Paired Tool para saber qué iPhone o iPad se conectó a tu Windows o macOS y protegerte

Ya por todos es conocido el riesgo que existe cuando un iPhone es conectado a un equipo. Desde el equipo pareado con el terminal iPhone se pueden hacer muchos ataques a iPhone para robarle datos, troyanizarlo, etcétera. Una de las debilidades conocidas por todos.

Figura 1: iPhone: Device Paired Tool para saber qué
iPhone o iPad se conectó a tu Windows o macOS y protegerte

Como ya sabéis, hace ya más de tres años impartí una charla en la que hablaba precisamente de esto. De que cuando se parea un terminal iPhone con un equipo Windows, la seguridad del terminal queda delegada a la seguridad del terminal Windows.


Figura 2: Tu iPhone es tan (IN)seguro como tu Windows 

Sobre este tema estuve hablando con mi amigo Kevin Mitnick por una vídeo conferencia hace ya un par de años cuando estaba escribiendo su última novela titulada "The art of invisibility". Este fue uno de los cosas que surgió y nos preguntamos cómo revisar un equipo para saber qué terminales iPhone se conectaban allí o lo que es lo mismo, cuáles son los terminales que estarían pareados y que han dado una prioridad especial al equipo.


Con esto en mente, y teniendo en mente la publicación de la 2ª Edición del libro de Hacking iOS: iPhone & iPad, le pedí a mis compañeros que hicieran una pequeña herramienta para poder no solo revisar la lista de dispositivos pareados, sino también que se pudieran eliminar esas claves.
Así surgió primero el módulo de Metasploit que hizo Pablo González (@pablogonzalezpe) para, una vez llegado a un equipo, buscar estos dispositivos pareados, tal y como vimos en el artículo ¿Qué dispositivos iOS se han pareado con este Windows o macOS?.

Figura 5: Módulo iPhone Pairing Detector para Metasploit

Y para los usuarios de Windows y macOS, mis compañeros Rodolfo Bordón y Ioseba Palop hicieron sendas herramientas para los dos sistemas operativos que se llamaron Device Paired Tool.

Figura 6: Device Paired Tool en ElevenPaths para Windows y macOS

Su funcionamiento es muy sencillo. Se instala en tu Windows o macOS y accediendo a la herramienta se puede ver la lista de todos los dispositivos que se han pareado al equipo, además de que se pueden borrar en cualquier momento las claves de pareado.

Figura 7: Lista de dispositivos iOS conectados a un macOS

Pero además, se queda residente y cuando se desconecta cualquier terminal iPhone o iPad permite hacer un despareado seguro, eliminado de manera automática todas las claves de pareado que se han generado.

Figura 8: Dispositivo despareado. ¿Eliminar claves?

Son unas pequeñas tools que hicimos desde el laboratorio de ElevenPaths, y las podéis descargar ahora para usarlas en vuestro día a día. Si tenéis que conectar un iPhone o un iPad a cualquier equipo, no os olvidéis de eliminar esas claves cuando lo desconectes. Por tu seguridad.

Saludos Malignos!

martes, agosto 30, 2016

TheFatRat: La Rata Gorda lucha contra los AntiMalware #Metasploit #malware #pentesting

Echando un ojo a muchas de las herramientas que salen diariamente en Internet relacionadas con el mundo de la seguridad me llamó la atención TheFatRat. Desarrollada por Edo Maland y ayudado en módulos de evasión de AV por Daniel Compton de NCC Group, es un script que ayuda a la generación de binarios en diferentes plataformas con el objetivo de lograr buenos resultados en la lucha contra la detección de antivirus. Lo que se dice, una imagen del binario FUD = "Fully UnDetectable". En otras palabras, en una herramienta de botón “grueso” que permite generar backdoors con msfvenom con Meterpreter de tipo reverse TCP como payload.

Figura 1: TheFatRat lucha contra los antimalware

Decidí evaluar algunas de las características que nos ofrece TheFatRat. En un primer vistazo podemos ver que se nos permite crear backdoors de 3 formas distintas: a través de msfvenom, una imagen FUD (Fully UnDetectable) a través de Powerfull o crear una copia FUD a través de Avoid 1.2 de Daniel Compton. Además, la herramienta nos permite:
• Arrancar un TCP listener para obtener las sesiones, una vez los binarios hayan sido ejecutados.
• Drop into de nuestra quería msfconsole.
• Realizar búsquedas de exploits a través de searchsploit.
¿Qué necesitamos?

En primer lugar, una vez lo descarguemos de su Github, necesitamos poner con permisos de ejecución el fichero fatrat y powerfull.sh. Durante el lanzamiento del script fatrat se chequeará sobre los requisitos de la aplicación, un Metasploit instalado, searchsploit, un PostgreSQL y algunos compiladores necesarios para realizar algunos FUD.

Utilizando Searchsploit

Antes de comparar binarios y resultados vamos a comentar una funcionalidad que trae TheFatRat y es Searchsploit. Esta es una herramienta de exploit-db, con la que se tiene todos los exploits disponibles en su base de datos en modo offline. TheFatRat permite realizar búsquedas sobre los exploits que tengamos en modo offline gracias a exploit-db y su searchsploit. En la siguiente imagen se puede ver las diferentes opciones de TheFatRat. En sexto lugar encontramos searchsploit.

Figura 2: Menú de TheFatRat

Una vez introducimos la opción de Searchsploit, TheFatRat nos solicitará el contenido a buscar. Para este ejemplo probamos con Zabbix 2.0.5, recordando al módulo que implementé para Metasploit sobre la vulnerabilidad CVE-2013-5572. Searchsploit nos da la ruta, dentro de la aplicación offline que viene en Kali Linux 2.0 de exploit-db, y el nombre del fichero que contiene el exploit. En la imagen se puede ver la ruta y el nombre del módulo “Cleartext ldap_bind_password”.

Figura 3: Módulo para Zabbix 2.0.5

Si accedemos a la ruta podemos encontrar el código del módulo, en esta ocasión para Metasploit. Interesante herramienta para descubrir exploits en modo offline, por si en alguna auditoria interna no tenemos acceso a Internet. Además, nunca se sabe cuándo se puede reutilizar el código.

PoC: Backdoor con msfvenom y TheFatRat

Ahora vamos a comentar las posibilidades para la creación de backdoors con TheFatRat. Utilizando la opción 1 del script accedemos a un submenú dónde se pide que indiquemos la plataforma. Como se puede ver hay gran diversidad de lenguajes y plataformas sobre las que se puede crear la backdoor. Realmente, se está haciendo uso de las opciones que Metasploit dispone y que pueden verse desde la consola con generate -h, dentro de un tipo de módulo payload.

Figura 4: Elección de plataforma Windows en TheFatRat

Se utilizan diversos encoders automáticamente, con varias iteraciones, pero al pasar la prueba de Virus Total encontramos que los resultados no son excesivamente buenos. 42 de 57 antivirus han detectado el binario como malicioso, por lo que la prueba de bypass de AV no ha sido muy satisfactoria.

Figura 5: En Virus Total 42 de 57 motores de AV detenta como malicioso el fichero

Hay que recordar el análisis que se hizo de The Shellter, Veil-Evasion y PayDay, dónde The Shellter salió muy bien parado. Parece que TheFatRat no saldrá tan bien parada. Tal vez es porque ha llamado demasiado la atención del mundo del malware y los laboratorios de las casas de antivirus han puesto esfuerzo en firmar los trucos que realizan para saltárselos. Así es el juego del gato y el ratón (o la rata).

PoC: Backdoor con Avoid 1.2

Ahora vamos a probar otra de las opciones, en este caso de tipo FUD, que proporciona TheFatRat. Elegimos la opción número 3 de la herramienta y nos pedirán el nombre del fichero de salida, el nombre del fichero de autorun que queremos utilizar y luego los datos sobre la dirección IP y el puerto.

Figura 6: Crear un Backdoor con Avoid 1.2

Una vez hemos introducido los campos necesarios, esta herramienta de Daniel Compton nos solicitará qué tipo de binario, en cuanto a tamaño, queremos crear. Para esta prueba de concepto hemos introducido la opción de Stealth, entre 1 y 2 MB, con una compilación rápida, pero se recomienda probar una generación Super Stealth ;)

Figura 7: Opciones del backdoor con Avoid 1.2

Los resultados obtenidos en Virus Total son mucho mejores al caso anterior, aunque aún bastante mejorables. Aún 18 de 57 motores de antivirus detectan el binario generado como malware. Por esta razón, deberíamos intensificar esfuerzos o probar otro tipo de soluciones con mejores resultados, como por ejemplo The Shellter.

Conclusiones

TheFatRat es una interesante herramienta que permite generar backdoors de cara a un posible ethical hacking. Además, incluye un pequeño script de búsqueda a través de Searchsploit con el que poder buscar exploits en modo offline.  En el siguiente vídeo tienes una demostración del proceso que hemos visto en este artículo.


Figura 8: TheFatRat lucha contra los antimalware

Además, se integra perfectamente con Metasploit, a través del uso de listeners e interacción con msfconsole. Herramienta interesante para probar en vuestro laboratorio y para tener un ojo encima y ver cómo evoluciona.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares