BlogWonderHowTo

Cómo: Construir una puerta trasera inversa daemonic en Python – Part2

Hola, bienvenidos amigos,

¿Listo para la segunda parte del tutorial?
En esta parte, le mostraré cómo escribir Daemonic Reverse Backdoor (por lo tanto, el programa del lado de la víctima).

Entonces vamos.

Paso 1: Establecer la ruta del intérprete e importar el paquete requerido

Primero necesitamos importar el paquete requerido para nuestro programa.

También configuramos al principio la ruta del intérprete para que pueda ejecutar nuestro script sin tener que llamar a python3 cada vez.

Paso 2: Detecta al atacante

Nuestra puerta trasera debe poder detectar al atacante que está esperando la conexión.

Hay varias formas de hacerlo. Una forma es emitir paquetes regularmente para detectar cualquier atacante en espera, pero nuestra puerta trasera no sabe cuál es la dirección del atacante y no sabe en qué puerto está esperando el atacante. Entonces necesitaríamos difundir mensajes. Este método es como un sonar activo: es efectivo pero realmente ruidoso y nuestra puerta trasera probablemente será detectada inmediatamente por cualquier NIDS, arruinando nuestro sigilo.

La alternativa al sonar activo es el sonar pasivo (también conocido como rastreador de paquetes). En lugar de enviar un mensaje, la puerta trasera escuchará la red y buscará cualquier señal del atacante.

Esta función usa un socket sin procesar que rastrea todos los paquetes TCP entrantes y los analiza.
Recupera la IP de origen y la IP de destino en el encabezado de IP y el Puerto de origen y el Puerto de destino.

Si la carga útil del paquete es igual a la frase de contraseña codificada (“frase de contraseña 1”) que se utiliza para identificar al atacante, entonces devuelve la IP de origen, el puerto de origen, la IP de destino y el puerto de destino.

Nota: este rastreador solo funciona en una red IPv4.

Paso 3: inicialice la comunicación

Esta función se utiliza para inicializar la conexión con el atacante. Como puede ver, llama al rastreador para recuperar la información necesaria para la conexión:

  • (daddr, dport) = el socket en el que espera el atacante
  • (saddr, sport) = el enchufe solicitado por el atacante para iniciar la conexión (para que el atacante “configure” la puerta trasera)

“passphrase2” es la segunda contraseña codificada enviada por el atacante para solicitar a la víctima que envíe “passphrase3” para autenticarse de alguna manera.

Finalmente, la función devuelve el enchufe conectado al atacante o Ninguno si algo salió mal durante el “protocolo de comunicación”.

Paso 4: recuperar la información del sistema

Esta función es aproximadamente la misma propuesta por DEFALT en su tutorial “Cómo: construir un shell evasivo en Python” excepto que la modifico para python3.

Paso 5: el caparazón de la puerta trasera

Ahora el caparazón en sí:
Esta función simplemente llamará a os.popen para ejecutar un comando dado y enviar el resultado a través del socket.

Nota: os está más o menos desaprobado y reemplazado por subproceso por varias razones, sin embargo, tuve problemas para ejecutar comandos encadenados como “echo algo> file.txt” con subproceso, así que decidí seguir con os

La siguiente función es nuestro bucle principal de shell. Recibe el comando del conector y llama a la función anterior.
Si recibe el comando “salir” devuelve True y si recibe “release” devuelve False

Paso 6: El bucle principal de la puerta trasera

Este es el bucle principal de puerta trasera, llama a la función de inicialización para recuperar la información del sistema y la función de bucle de shell.

Si la función de ciclo de shell devuelve False (en el comando “liberar”), entonces rompe el ciclo y regresa: esto terminará nuestra puerta trasera.

Paso 7: Daemonize la puerta trasera

Antes de probar la puerta trasera demoníaca. Debe saber que no puede terminar el demonio como un programa “normal” usando la interrupción del teclado o cerrando el shell que inició el programa.

Nuestra puerta trasera solo puede terminar de dos maneras:

  • Recibir un comando de “liberación” de un atacante conectado
  • matar desde un caparazón

Aquí hay un comando que lo ayudará a encontrar el PID de la puerta trasera daemonic si necesita eliminarlo manualmente:
ps -eo ‘tty, pid, comm’ | grep ^?

Luego recupere el PID asociado a su puerta trasera (si lo inició desde un shell, debería tener el nombre de su script) y luego escriba:

matar backdoorPID

Aquí está el código que demonizará su puerta trasera:

Paso 8: llama a la puerta trasera

Al final del script, llame a la función daemonize () para crear nuestro Daemonic Reverse Backdoor y … ¡eso es todo!
Nuestro demonio se está ejecutando y está buscando una solicitud de atacante 🙂

Continuará

A continuación, le mostraré cómo escribir el programa atacante.

Nos vemos pronto,

WhatHat?

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar