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

lunes, 19 de septiembre de 2016

Controla tu Raspberry Pi mediante Telegram



Buenos días a tod@s.

En ésta ocasión vamos a crear un bot de Telegram en python para controlar nuestra Raspberry Pi desde el móvil, éste va a incluir:
  • Control de una webcam (fotos, timelapse).
  • Información sobre el estado de la Raspberry (ram, hd, temperatura y cpu).
  • Envío de comandos de sistema (como en una terminal).
  • Comprobación de seguridad para restringir el acceso a ciertas partes.

Lo primero de todo será buscar "BotFather" en Telegram para crear y obtener el TOKEN de nuestro bot, basta con escribir @BotFather en el buscador de Telegram.


Pulsamos Iniciar y nos mostrará los comandos disponibles, para ejecutar un comando podemos pulsar en la lista o escribirlo en un mensaje. El primero que usaremos será /newbot, BotFather nos preguntará por este orden:
  • Nombre del bot.
  • Nombre público del bot terminado en "bot" (Ej: PruebaBot)

Una vez introducidos, nos muestra un mensaje satisfactorio con el TOKEN, guardarlo pues nos hará falta. Echarle un vistazo a los demás comandos disponibles para personalizar el bot como la descripción, imagen, comandos disponibles, etc, luego veremos alguno.



Ya estamos listos para empezar a escribir el bot en sí. Creamos un nuevo archivo en python e importamos los módulos necesarios, en mi caso he utilizado pyTelegramBotAPI. También vamos a declarar algunas variables que utilizaremos posteriormente.

Instalación del módulo: sudo pip install pyTelegramBotAPI



Para tener una visión mas clara de lo que sucede en consola, creamos una clase para darle color al texto.


Añadimos una función que comprobará si es un nuevo usuario o no y obtener su id.


Lo siguiente será crear las funciones esenciales del bot, listener (recibe los mensajes que envían los usuarios), comando start(arranca el bot) y la ayuda.



Para que el bot muestre los comandos que tenemos en la ayuda, tenemos que irnos nuevamente a @BotFather y usar la opción /setcommands, elegimos el bot, escribimos los comandos con su respectiva descripción tal como nos muestra @BotFather.


Ahora es turno de los menús del bot: principal, cámara e información de la Raspberry.

  • Menu Principal
Este menú se va a encargar básicamente de enviarnos al menú de la opción seleccionada.



  • Menú RPInfo
Mediante este menú obtenemos información relacionada con la Raspberry como la temperatura de CPU y GPU, espacio en disco, memoria RAM usada y uso de la CPU. Nos enviará un mensaje con la info solicitada además de imprimirla por consola, de esta forma podemos ver los comandos que se ejecutan.




En el caso de la información del disco duro y memoria RAM tenemos dos funciones apartes, éstas son llamadas en el menú anterior.



  • Menú Cámara
En este menú tenemos las opciones sacar foto simple y timelapse (saca un número de fotos indicado por nosotros, una cada 10 segundos). En mi caso he usado de webcam una EyeToy de Playstation 2, no necesita alimentación extra ni ningún tipo de instalación extra, enchufar y usar ;) .

El programa que saca las fotos es fswebcam, para instalarlo basta con un apt-get install fswebcam. Lo usaremos tanto para sacar una foto simple como para el timelapse.


 En este menú hay un pequeño cambio con respecto a los demás, antes de hacer nada, comprueba el id de usuario para saber si somos nosotros los que intentamos acceder, en caso contrario bloquea el acceso y no funcionará. Ésta opción podéis añadirla a cualquier otro menú o función que deseéis bloquear a los demás usuarios o como medida de seguridad.

Para saber cual es vuestro id basta con que ejecutéis cualquiera de las opciones de información, en consola mostrará un número.

Otro detalle a tener en cuenta es en la línea que ejecuta fswebcam (subrayada de amarillo), en el caso que ejecutéis el bot en un portátil, éste ya tendrá su propia webcam, por lo tanto deberéis comprobar los dispositivos de vídeo que tenéis mediante el comando ls /dev/video* . Elegir el dispositivo y modificar dicha línea en caso de que fuera necesario.
Para terminar con la cámara, nos falta la función timelapse y otra encargada de comprimir las fotos obtenidas y enviar el archivo .tar a nuestro móvil.





El enviar las fotos comprimidas puede no ser la mejor opción puesto que luego necesitamos una app en el móvil que las descomprima o esperar a pasar el archivo al pc. Lo he hecho así para el caso en que tenga muchas fotos, solo enviará un archivo además de ahorrar un poco de espacio.

La aplicación que uso yo para descomprimir es "Rar Zip 7Zip File Explorer", que como podéis intuir soporta varios formatos.

También se pueden enviar las fotos según se van sacando modificando la función timelapse, ¡A gusto del consumidor!.


Command Exec

Como última opción tenemos el envío de comandos de sistema, como si de una shell se tratara. Funciona de la siguiente manera: cuando el bot recibe un mensaje que empieza por /exec (podéis poner lo que querais) sabe que el texto que le sigue es un comando a ejecutar.



Es una función sencilla, en primer lugar comprueba el id, si somos nosotros, ejecuta el comando que indiquemos y nos envía un mensaje con la salida del mismo.


Capturas de ejemplo:



Con esto hemos terminado el bot, es muy mejorable, se le pueden añadir opciones, modificar las que ya tiene o utilizarlo como ejemplo para construir uno mejor.

Aquí os dejo el enlace al bot.py.

Un saludo, vasco.


jueves, 8 de septiembre de 2016

Securizar SSH mediante Latch en Raspbian.




Hola amantes de la seguridad!!

En esta entrada vamos a ver como instalar Raspbian en la Raspberry Pi y securizar el servicio ssh para evitar posibles ataques mediante Latch y Fail2Ban.

Para quien no conozca la Raspberry Pi dejo unos enlaces con información:


Tenemos dos opciones para la instalación de Raspbian:

  • NOOBS: se trata de un instalador de sistemas operativos para Raspberry.
    • Descargamos la imagen desde este enlace.
    • Lo descomprimimos en la raíz de una tarjeta SD previamente formateada.
    • Introducimos la tarjeta en la Raspberry y la arrancamos (enchufamos).

    • Basta con elegir el/los sistema/s operativo/s que queramos instalar y pinchar en Install.
    • Cuando termine el proceso, nos mostrará un grub donde elegir el sistema operativo.
  • RASPBIAN: descargar la imagen directamente.
    • Descargamos la imagen del siguiente enlace. 
    • A continuación tenemos que "copiar" la imagen en una tarjeta SD de forma que sea booteable. En Windows podemos usar Win32DiskImage, en Linux Startup Disk Creator.

LATCH

Con Raspbian ya instalado, vamos a securizar el servicio SSH con Latch.

Lo primero que necesitamos es crear una cuenta de Desarrollador en la web de Latch. Con la cuenta ya creada y logueados, añadiremos una nueva aplicación indicando un nombre, obtendremos esta pantalla con los datos de la misma.


    • Nombre: nombre de la aplicación.
    • Id Aplicación: número que identifica la aplicación.
    • Secreto: clave secreta, podemos renovarla si creemos que está comprometida.
    • Imagen: icono de la aplicación, no debe superar 1Mb de tamaño y se recomienda que esté en formato png de 24 bits sin canal alfa, con unas proporciones 1:1.
    • Las opciones OTP y Bloquear tras consultar, solo están disponibles en las cuentas de pago.
    • Operaciones: cada una de las acciones incluidas en el servicio y que se quieren proteger.
Añadiremos una operación para proteger el login del servicio SSH. Pinchamos en añadir y le ponemos un nombre. Dejamos la web abierta para copiar algunos datos que necesitaremos para la configuración de Latch.

A continuación descargamos el plugin de Latch para Unix del Github de Eleven Paths. Descomprimimos y nos situamos en la raiz de la carpeta resultante.

Ejecutamos el siguiente comando para instalar el plugin:
./configure prefix=/usr sysconfdir=/etc && make && sudo make install


Tras la instalación, tendremos el módulo pam_latch.so en el directorio /usr/lib. Debemos mover dicho módulo al directorio PAM del sistema operativo, en el caso de Raspbian se encuentra en /lib/arm-linux-gnueabihf/security/.
El siguiente paso es modificar la configuración PAM del servicio SSH, para ello modificamos el archivo /etc/pam.d/sshd añadiendo la siguiente linea:

auth required pam_latch.so config=/etc/latch/latch.conf accounts=/etc/latch/latch.accounts operation=<NOMBRE OPERACION> otp=no

Donde NOMBRE OPERACION es el nombre que pusimos al crear la operación (sshd-login) en la web de Latch.


En la carpeta del plugin de Latch que descargamos anteriormente, hay una carpeta "examples" con ejemplos de los archivos a modificar para cada servicio, echarles un vistazo en caso de tener problemas.


A continuación configuramos el plugin editando el archivo /etc/latch/latch.conf.


    • app_id: id de la aplicación.
    • secret_key: clave secreta ("Secreto" en la web).
    • sshd-login: este es el nombre que le dimos a la operación anteriormente, aquí introducimos el número id de la misma.


Por último configuramos SSH para uso del plugin, esto lo haremos editando el archivo /etc/ssh/sshd_config, añadiendo o modificando las siguientes lineas:
    • UserPAM yes
    • ChallengeResponseAuthentication yes
    • PasswordAuthentication no

Reiniciamos el servicio (sudo service sshd restart) para cargar la nueva configuración.


Con Latch configurado, solo nos falta parear un usuario para así activar o desactivar el acceso a SSH desde nuestro móvil, además recibiremos notificaciones de bloqueo, accesos, etc.
 Instalamos Latch en el móvil desde Google Play, abrimos la aplicación y nos logueamos con la cuenta creada en la web. Añadimos un nuevo servicio y Generamos nuevo código.


Como podéis ver en la captura anterior, tenemos un tiempo para usar el código, usamos el siguiente comando en la terminal de la Raspberry para parear el servicio:  latch -p <CODIGO>

Recibiremos un aviso en el móvil confirmando que el servicio ha sido pareado. Ahora nos aparecerá el nuevo servicio creado en la pantalla principal de la aplicación, desde aquí podemos bloquear o permitir el login SSH.



Ya disponemos de un segundo factor de autenticación mediante Latch. Ni que decir tiene que esto mismo se puede realizar para el login de una máquina, comando sudo, servicio vnc y un largo etc.


FAIL2BAN

Como complemento tenemos Fail2Ban, una aplicación escrita en Python para la prevención de intrusos penalizando las ips que intentan el acceso por fuerza bruta en servidores SSH, FTP, HTTP, etc.

Fail2Ban bloquea las ips que intenten loguearse un determinado número de veces (indicado por el usuario) por un tiempo determinado (indicado por el usuario), evitando así ataques por diccionario.

Su instalación es muy sencilla, descargamos el paquete correspondiente a nuestra distribución Linux desde la web oficial y lo instalamos.

Para configurarlo tenemos que editar dos archivos.
  • /etc/fail2ban/fail2ban.conf


    • loglevel: elegimos los datos que mostrará el archivo log.
    • logtarget: ruta y nombre del archivo log.
    • pidfile: podemos elegir el número de proceso de fail2ban-server.
  •  /etc/fail2ban/jail.conf
    • bantime: tiempo en segundos que estará baneada la ip.
    • maxretry: número de intentos antes de ser baneado.
    • ignoreip: lista de ips que serán ignoradas y por tanto no baneadas.
    • protocol: protocolo por defecto (TCP/UDP).
 Éstas son algunas de las opciones disponibles, recomiendo echar un vistazo a todas detenidamente.

Reiniciamos el servicio (sudo service fail2ban restart) y ya lo tenemos todo listo. Para ver el log en tiempo real, podemos hacer uso del comando less +F /var/log/fail2ban.log para ver el archivo completo o tail -f /var/log/fail2ban.log para ver solo las últimas lineas.


Como véis ya he recibido algunos ataques...


Hasta aquí la entrada de hoy, espero os haya gustado y que sea de utilidad.

Un saludo, vasco.

martes, 30 de agosto de 2016

La fraude fiscale des grandes sociétés

Buenas hackers! Y bienvenidos a otro CTF de Vulnhub

"Welcome to Droopy. This is a beginner's boot2root/CTF VM.
The VM is set to grab a DHCP lease on boot.
There's 2 hints I would offer you:
1.) Grab a copy of the rockyou wordlist.
2.) It's fun to read other people's email.
SHA1SUM: e6862fa5ebc9c2a8e582e77f440510062afe47ba droopyctf.ova
Special thanks and shout-outs go to Barrebas and Rasta_Mouse for testing, and g0tmi1k for advice and offering to host my first CTF."

Atención Spoiler!!

En este CTF veremos el uso de exploits locales gracias a searchsploit, las diferentes técnicas entre el uso de un script en Python, una shell escrita en PHP y nc, o el uso más automatizado de Metasploit.
La escalada de privilegios basada en el uso de un exploit local debido a la versión del Kernel. Recomiendo mucho esta página web para poder realizar escalada de privilegios en Linux básicos---> https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
Una vez obtenido un fichero en .tc nos indica que es TrueCrypt y que tendremos que obtener una password en texto plano para poder montar un volumen. El descifrado se usa Hashcat.


Un saludo, Naivenom

lunes, 6 de junio de 2016

Análisis Forense II - Adquisición de memoria RAM

Buenas compañeros,

Con eso de que uno cumple años xd he querido regalaros esta entrada que sigue el hilo de la anterior para tener una toma de contacto con el mundo del análisis forense. Este post se centra en el proceso de adquisición de evidencias "en caliente" para adquirir la memoria RAM de un ordenador. Del mismo modo, se van a explicar los pasos a seguir para su posterior análisis.

Este proceso está relacionado con la labor profesional de un perito informático al que le solicitan el análisis de un equipo debido a que ha sido infectado por un malware o un empleado descontento que está extrayendo información confidencial.

El motivo de llamarse una adquisición en caliente está relacionado con la memoria volátil y no volátil. La memoria RAM sólo se puede adquirir mientras el ordenador se encuentra encendido, una vez apagado es imposible.

Bueno vamos al lio!

Para realizar el volcado de memoria se pueden emplear dos herramientas: DumpIt y FTK Imager. En este caso se ha empleado la suite FTK Imager.

Para simular un caso real se ha empleado un disco duro con todas las herramientas que se van a utilizar.  Esta buena práctica se emplea para evitar la modificación de la RAM con la ejecución de los programas del PC, así como no sé sabe si dichos programas han sido modificados para que se obtengan resultados predeterminados.

En el caso de emplear DumpIt se realizaría desde la consola de Windows:


En este caso, se ha empleado FTK Imager. Para ello, se crea una nueva imagen, se selecciona el formato de la imagen (EO1) y por último, la ubicación donde se desea guardar de tal manera que comienza la adquisición de memoria RAM.


Para respetar la cadena de custodia se realiza un hash del volcado de memoria RAM. Para ello, se pueden emplear herramientas como Winhex o Hashmyfiles.

Una vez adquirida la RAM en un dispositivo externo, se pasa a su análisis. Se va a emplear la herramienta Volatility para analizar el volcado de memoria RAM, así como para obtener datos de la misma.

Importante: Volatility tiene su propio ejecutable pero mola más emplear la versión es python así se puede "jugar" y me parece más potente. Al emplear python (yo tengo la 2.7) con Volatility es necesario la descarga e instalación de sus dependencias a través de librerías precompiladas. Adjunto las dependencias necesarias (PyCryto y Distorm3):





Para determinar el formato del volcado se emplea el plugin Imageinfo:

vol.py imageinfo –f D:\...\memdump.mem

Como se observa en el campo Suggesting Profile indica que podría ser un
Win7SPOx64



Seguidamente se muestran los programas que se estaban ejecutando en el momento en el que se ha capturado la memoria RAM. Para ello, empleando el plugin pslist:

vol.py pslist --profile=Win7sP1x64 –f
D:\...\memdump.mem


A continuación, se observa FTK Imager, que fue el software empleado:


También se cuenta con el plugin pstree para representar la ejecución de programa en forma de árbol.

Finalmente, se puede también obtener el historial de navegación del navegador web que se encontraba en ejecución en el momento de la adquisición de memoria.
Sin embargo, hace falta la instalación de dos plugins especiales (los plugins para IE si los tiene por defecto, pero sinceramente todos sabemos que IE se autodestruye al abrirse xd). Volatility no trae en la instalación estos plugins. Por ello, son necesarios los plugins:

- Firefoxhistory
- Firefoxcookies
- Firefoxdownloads

Buscando en Internet es fácil encontrar el código de los mismos. Adicionalmente, es necesario el
plugin sqlite_help pues tiene dependencia con los dos anteriores.

Si en el PC que se va analizar tuviera abierto Firefox, con el siguiente comando se exportaría las urls que tuviera abiertas en ese momento así como todas las descargas que hubiera hecho y el historial de sitios web vistos:




Tal que viendo el fichero exportado:


Esta información es realmente útil para un perito informático para realizar su labor. Por ejemplo, si suponemos que ese equipo estuviera infectado con una apt que se comunicará con su C&C (Command and Control) se podría ver ese tráfico si en ese momento se estuvieran enviado peticiones.


Ya por último, citar que Volatility cuenta con una interfaz gráfica para los que no les mole las ventanas de comando y prefieran tirar de botón rojo xd. Se llama VOLIX II, sin embargo, no contiene todos los plugins y además sólo captura la navegación para IE.

Así que eso es todo, espero que os sea útil y para cualquier duda, comentario, queja o agradecimiento xd no dudéis en escribir un comentario.

Saludos.

NaxHack5

"La mejor defensa es un buen ataque"

miércoles, 11 de mayo de 2016

Python Scripting (I) - Metadatos

Buenos días hackers, cuánto tiempo sin escribiros nada! Hoy vengo a introduciros un poco en el mundo de la programación de scripts en Python, ese lenguaje tan ampliamente utilizado en el mundo de la ciberseguridad.

Python

Python es un lenguaje interpretado y orientado a objetos cuyo principal objetivo es producir software de una forma fácil y rápida, así de sencillo. Python es rápido. Además, siendo bastante fácil de aprender y utilizar, lo hacen un lenguaje de programación perfecto para principiantes que quieran aprender programación.


Actualmente, la versión de Python más actualizada es la 3.5.1. Sin embargo, mucha gente (como yo de forma habitual) utiliza otra versión más antigua, de la familia 2.7.X. Esto se debe a que el paso de Python 2 a Python 3 llevó a una remodelación de algunos elementos del lenguaje. De todas formas, la rama de Python 2 aún sigue actualizándose, siendo la más actual la versión 2.7.11.

Pese a que estas diferencias existen, ambas ramas comparten el mismo paradigma y el mismo enfoque, y la sintaxis es prácticamente igual. Podéis usar cualquiera de estas dos versiones libremente, y los scripts escritos en una o en otra deberían poder usarse (con ciertos límites) en ambas versiones sin apenas modificaciones.

Dicho esto, soltaré una frase que me oiréis decir de vez en cuando: Saber programar no es saber un lenguaje. Cuando aprendes a programar, el lenguaje te da un poco igual. Esto, que puede sonar muy raro, al final tiene sentido; programar es comprender el flujo que tiene que seguir tu programa para solucionar tu problema de una forma ágil y fiable, y esto es igual en cualquier lenguaje de programación.

¡No me tengáis en cuenta los sermones! :)

Decir también que esta entrada y las que seguirán no pretenden realizar un paso-a-paso por la programación en Python; para ello puedo recomendar libros y manuales que os ayudarán mucho. Sin ir mas lejos, Python para todos de Raúl González Duque es el mejor manual que me he encontrado, y lo podéis descargar de forma gratuita. Lo que sí intentaré es justificar y explicar los elementos estructurales de la herramienta.

En Fwhibbit todos utilizamos Python en mayor o menor medida a la hora de crear herramientas y pruebas de concepto, como la que os traigo hoy. Este script, que podéis encontrar en mi perfil de GitHub, permite obtener metadatos de ficheros con extensión pdf y docx. Por supuesto, el script es ampliable (en un futuro seguramente se amplíe) con nuevos formatos soportados; os lo brindo como prueba de concepto a la recolección de metadatos.

Metadatos

Hablando de ello, ¿qué es eso de metadatos? Los metadatos son una serie de marcas o etiquetas en un archivo que describen diversa información acerca del mismo. La información que arrojan puede ser muy variada dependiendo de cómo se creó el archivo y con qué formato y extensión: autor, fecha de creación, programa y sistema operativo origen... La información que puede arrojar un solo fichero puede dejarnos muy sorprendidos y ser clave para la recolección de información de un objetivo.

El script metadatos.py

El proceso que suelo utilizar a la hora de realizar este tipo de scripts (que puede no ser la mejor, ¡uno no es perfecto!) es comenzar escribiendo la función principal del programa (la función main de toda la vida y que os sonará a los que sois más de Java o C), que verificará los argumentos que le pasamos al script; en este caso, es la dirección (absoluta o relativa) a un directorio que contendrá los ficheros a analizar.

Función principal del script

Una vez hecho esto, la función main invocará a la función que abre y realiza el análisis del fichero en sí, que llamo printMeta(target). Recibe como parámetro el directorio objetivo una vez comprobado y filtrado por la función principal. Una vez comprobado que el objetivo existe, realizará un recorrido en profundidad en su interior (utilizo la función os.walk(target), extremadamente útil en estos casos) y, por cada fichero encontrado, analizará su extensión e invocará a la función correspondiente para la impresión de metadatos si es una extensión soportada.

Función de apertura para analizar el directorio y ficheros encontrados

Por último, las funciones print_doxc(file_full_path) y print_pdf(file_full_path) reciben como parámetro la dirección completa del fichero objetivo e imprimen todos los metadatos encontrados. Para esto, hacemos uso de los módulos externos python-docx y PyPDF2, que proporcionan medios para crear, modificar y borrar ficheros .docx y .pdf respectivamente. En nuestro caso, servirán para analizar un fichero que ya existe y extraer toda la información en forma de metadatos que contengan, imprimiendo por pantalla los datos encontrados.

Análisis de metadatos en PDF
Análisis de metadatos en PDF

A continuación, la ejecución del script en nuestra distribución Linux favorita (funcionará en Windows excepto por la coloración de los resultados, dependiendo de nuestra shell): 

Ejecución del script sobre un directorio

Cabe destacar la importancia de varias cosas que podéis apreciar en el script como buenas prácticas que os animo encarecidamente a seguir: 
  • Los argumentos pasados al script deben verificarse antes de proceder a la ejecución de las funciones, evitando errores futuros. 
  • Es importante dividir el código en funciones para facilitar la lectura y el reciclado del código. Lo agradeceréis cuando abráis el script unos meses después. 
  • Los errores han de tratarse (bloques de código en try...except) y, si son conocidos, informar al usuario de lo que ha pasado.
  • ¡El código debe estar comentado! Una buena práctica es comenzar cada función con un docstring  y comentar el resto del código con comentarios normales (utilizando #). 



Y hasta aquí nuestro script de análisis de metadatos. Espero que os haya gustado y que os sirva para aprender, que es el objetivo de los scripts que os empezaré a traer más de vez en cuando en calidad de prueba de concepto. 

Un saludo hackers!
hartek

jueves, 17 de marzo de 2016

Troyano Hacoder y el source code

Buenos dias!
En el dia de hoy os mostrare una herramienta realizada por LukaSiki/HaCoder.py. Podeis localizar el repositorio en GitHub.



Parte 1:
Primero analizaremos el código fuente para aquellos entusiastas en la programación con Python. La herramienta de administración remota (troyano), tiene un encriptado AES eligiendo valores aleatorios (random), haciendo su backdoor FUD eludiendo a los antivirus.


El archivo principal (Hacoder.py), es un script de igual modo que el anterior, conteniendo a su vez dentro de una función otro script que será la generación del backdoor. Se importan los modulos, clases de colores, el logo del programa y la encriptación AES.



Más adelante, cuando se finaliza de escribir las lineas de código correspondientes al script del backdoor, se define una función que corresponde a la generación del handler, es decir, las instrucciones correspodientes a la interacción con el cliente.



 Dentro de ella se definen funciones e interaciones como:
  • Enviar y recibir datos.
  • Subida y bajada de archivos.
  • Actualización de los clientes que se nos conecta a nuestro host, dada una dirección IP y puerto.
  • Uso de la instrucción "while" para repetir una serie de instrucciones mientras la condición sea verdadera (True)
Por último se crea el menu y una serie de condiciones con "if" dependiendo de la elección del usuario, realizando las correspodientes llamadas a las funciones creadas anteriormente.



Parte 2:
Ahora en esta parte, vamos a probar la herramienta en un entorno virtualizado en VMware. Para instalar la herramienta podemos clonar el repositorio ejecutando lo siguiente:
git clone  https://github.com/LukaSikic/HaCoder.py.git
Entramos en la carpeta generada, y damos permisos de ejecución con chmod
Es importante tener instalado Python para poder ejecutar el script, ya que es un lenguaje interpretado y necesita de una maquina virtual. El bytecode se utiliza y produce el resultado. 
Ejecutamos el script y generamos el backdoor, copiando la clave AES aleatoria e indicando nuestra IP y puerto a la escucha: 


Una vez creado el backdoor, generara un archivo .py, y como dijimos antes Python es un lenguaje interpretado, por tanto si queremos enviar este archivo a un cliente, tiene que tener Python instalado. Una opción interesante es compilar el archivo a un .exe. Entonces necesitaremos usar Pyinstaller:  https://github.com/pyinstaller/pyinstaller
Usamos la herramienta y ya tendriamos nuestro backdoor en .exe. Existen buenos tutoriales del uso de esta herramienta. 
Al elegir la opción 3 del menu del programa, automaticamente pasará al handler a la espera de conexiones, como se puede apreciar el cliente ejecuto el .exe y se nos conecto:





Hacemos Control + C para interactuar con el cliente, y obtenemos una shell del cliente: 


Una vez obtenido la shell, podemos según las funciones declaradas en el código fuente subir y descargar archivos, escalada de privilegios, keylogger y hacerlo persistente. 
Un saludo, naivenom

P.D No me hago responsable del mal uso de esta herramienta y probarlo siempre en un entorno virtualizado usando dos maquinas virtuales, una el cliente y otra de servidor a la escucha de conexiones. 







 









Google Analytics