Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
TripleCross — Un rootkit Linux eBPF con backdoor, C2, iniezione di librerie, hijacking dell'esecuzione, funzionalità di persistenza e furtività. | Kitploit
Strumenti/GitHubGitHub/h3xduck/triplecross
Escalation di PrivilegiMeccanismi di PersistenzaCommand and ControlApprendimento e Formazione
GitHubh3xduck/triplecross

TripleCross

Un rootkit Linux eBPF con backdoor, C2, iniezione di librerie, hijacking dell'esecuzione, funzionalità di persistenza e furtività.

Vedi Repository
2.0k2433 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

TripleCross

License GitHub release (latest by date including pre-releases) Maintainability GitHub last commit

TripleCross è un rootkit eBPF per Linux che dimostra le capacità offensive della tecnologia eBPF.

TripleCross è ispirato a precedenti progetti di implant in questo ambito, in particolare i lavori di Jeff Dileo al DEFCON 271, Pat Hogan al DEFCON 292, Guillaume Fournier e Sylvain Afchain sempre al DEFCON 293, e il Boopkit di Kris Nóva4. Riutilizziamo ed estendiamo alcune delle tecniche pionieristiche di queste precedenti esplorazioni delle capacità offensive della tecnologia eBPF.

Questo rootkit è stato creato per la mia tesi di laurea triennale presso UC3M. Maggiori dettagli sul suo progetto sono forniti nel documento della tesi.

Disclaimer

Questo rootkit è puramente per scopi educativi e accademici. Il software è fornito "così com'è" e gli autori non sono responsabili per eventuali danni o incidenti che possano verificarsi durante il suo utilizzo.

Non tentare di utilizzare TripleCross per violare la legge. L'uso improprio del software e delle informazioni fornite può comportare accuse penali.

Indice

  1. Funzionalità
  2. Panoramica di TripleCross
  3. Compilazione e installazione
  4. Modulo di injection di librerie
  5. Backdoor e C2
  6. Modulo di hijacking dell'esecuzione
  7. Persistenza del rootkit
  8. Furtività del rootkit
  9. Licenza

Funzionalità

  1. Un modulo di injection di librerie per eseguire codice malevolo scrivendo nella memoria virtuale di un processo.
  2. Un modulo di hijacking dell'esecuzione che modifica i dati passati al kernel per eseguire programmi malevoli.
  3. Un modulo di escalation dei privilegi locale che consente di eseguire programmi malevoli con privilegi di root.
  4. Una backdoor con capacità C2 che può monitorare la rete ed eseguire comandi inviati da un client rootkit remoto. Incorpora molteplici trigger di attivazione in modo che queste azioni vengano trasmesse in modo furtivo.
  5. Un client rootkit che consente a un attaccante di stabilire 3 diversi tipi di connessioni simili a shell per inviare comandi e azioni che controllano lo stato del rootkit da remoto.
  6. Un modulo di persistenza che garantisce che il rootkit rimanga installato mantenendo pieni privilegi anche dopo un riavvio.
  7. Un modulo di furtività che nasconde all'utente file e directory relativi al rootkit.

Panoramica di TripleCross

La figura seguente mostra l'architettura di TripleCross e i suoi moduli.

La libreria di socket raw RawTCP_Lib utilizzata per le trasmissioni del rootkit è di mia creazione e ha il proprio repository.

La tabella seguente descrive i principali file sorgente e directory per facilitarne la navigazione:

Compilazione e installazione

Requisiti

Questo progetto di ricerca è stato testato nei seguenti ambienti:

DISTRIBUZIONEKERNELGCCCLANGGLIBC
VERSIONEUbuntu 21.045.11.010.3.012.0.02.33

Raccomandiamo l'uso di Ubuntu 21.04, che per impostazione predefinita includerà le versioni del software qui mostrate. Altrimenti, alcuni dei problemi che potresti incontrare sono descritti qui.

Compilazione

Il codice sorgente del rootkit viene compilato utilizzando due Makefile.```

Build rootkit

cd src make all

Build rootkit client

cd client make

root@kitploit:~
La seguente tabella descrive in dettaglio lo scopo di ciascun Makefile:

| MAKEFILE  | COMANDO | DESCRIZIONE | FILE RISULTANTI |
| ------------- | ------------- | ------------- | ------------- |
| src/client/Makefile  | make  | Compilazione del client rootkit | src/client/injector |
| src/Makefile  | make help  | Compilazione dei programmi per testare le capacità del rootkit, e il programma malevolo e la libreria dei moduli di hijacking dell'esecuzione e di iniezione di librerie, rispettivamente | src/helpers/simple_timer, src/helpers/simple_open, src/helpers/simple_execve, src/helpers/lib_injection.so, src/helpers/execve_hijack |
| src/Makefile | make kit | Compilazione del rootkit utilizzando la libreria libbpf | src/bin/kit |
| src/Makefile | make tckit | Compilazione del programma TC egress del rootkit | src/bin/tc.o |

### Installazione
Una volta generati i file del rootkit in src/bin/, i programmi *tc.o* e *kit* devono essere caricati in ordine. Nell'esempio seguente, la backdoor del rootkit opererà nell'interfaccia di rete *enp0s3*:```
// TC egress program
sudo tc qdisc add dev enp0s3 clsact
sudo tc filter add dev enp0s3 egress bpf direct-action obj bin/tc.o sec classifier/egress
// Libbpf-powered rootkit
sudo ./bin/kit -t enp0s3

Script di scenari di attacco

Ci sono due script, packager.sh e deployer.sh, che compilano e installano il rootkit automaticamente, proprio come farebbe un attaccante in uno scenario reale.

  • L'esecuzione di packager.sh genererà tutti i file del rootkit nella directory apps/.

  • L'esecuzione di deployer.sh installerà il rootkit e creerà i file di persistenza.

Questi script devono prima essere configurati con i seguenti parametri per il corretto funzionamento del modulo di persistenza:

SCRIPTCOSTANTEDESCRIZIONE
src/helpers/deployer.shCRON_PERSISTJob cron da eseguire dopo il riavvio
src/helpers/deployer.shSUDO_PERSISTVoce sudo per concedere privilegi senza password

Modulo di iniezione delle librerie

Il rootkit può dirottare l'esecuzione dei processi che chiamano le system call sys_timerfd_settime o sys_openat. Ciò viene ottenuto sovrascrivendo la sezione Global Offset Table (GOT) nella memoria virtuale del processo che effettua la chiamata. Questo porta all'esecuzione di una libreria dannosa (src/helpers/injection_lib.c). La libreria genererà una reverse shell verso la macchina dell'attaccante, e poi restituirà il flusso di esecuzione alla funzione originale senza far crashare il processo.

TripleCross è preparato per bypassare le comuni tecniche di hardening ELF, tra cui:

  • ASLR
  • Stack canaries
  • DEP/NX
  • PIE
  • Full RELRO

È anche preparato per funzionare con codice compatibile Intel CET.

La funzionalità del modulo può essere verificata utilizzando due programmi di test src/helpers/simple_timer.c e src/helpers/simple_open.c. In alternativa, puoi provare a dirottare qualsiasi processo di sistema (testato e funzionante con systemd).

La configurazione del modulo è impostata tramite le seguenti costanti:

La ricezione di una reverse shell dalla macchina dell'attaccante può essere effettuata con netcat:``` nc -nlvp <ATTACKER_PORT>

root@kitploit:~
### Iniezione di libreria tramite tecnica di hijacking del GOT
La tecnica incorporata in TripleCross consiste in 5 fasi:

#### Localizzazione del GOT e dell'indirizzo di ritorno
Il rootkit aggancia la system call utilizzando un programma tracepoint. Da lì, individua l'indirizzo nella sezione GOT che lo stub PLT ha usato per effettuare la chiamata alla funzione glibc responsabile della syscall.

Per raggiungere la sezione GOT, il programma eBPF utilizza l'indirizzo di ritorno memorizzato nello stack. Nota che:
* Il .text effettua una *call* al .plt, quindi *rip* viene salvato come *ret* nello stack.
* Il .plt effettua un *jump* a glibc usando .got, quindi nessun altro *rip* viene salvato. Inoltre non modifica né salva il valore di *rbp*.
* Glibc effettua una *syscall*, che non salva *rip* nello stack, ma lo salva in *rcx*.

<img src="https://assets.kitploit.com/production/public/readmes/5614/d216fa5b7b656bb52587027db28f3e3902fa8389d0b2944a1f7e870d6d2e6bee.jpg" float="left">

Pertanto, per verificare da eBPF che un indirizzo nello stack sia l'indirizzo di ritorno che ci condurrà al GOT corretto, dobbiamo controllare che sia l'indirizzo di ritorno dello stub PLT che utilizza l'indirizzo GOT che salta alla funzione glibc che effettua la system call che abbiamo agganciato da eBPF.

Sono state incorporate due tecniche per trovare l'indirizzo di ritorno:
* Con sys_timerfd_settime, il programma eBPF scansiona in avanti utilizzando gli argomenti della syscall.
* Con sys_openat, il programma eBPF utilizza i dati nella struttura *pt_regs* dei tracepoint per scansionare l'indirizzo di ritorno.

<img src="https://assets.kitploit.com/production/public/readmes/5614/61217fb3fd84bec65cbbee906dd27860e5e1c211912cfe450ea4cf9051fa480b.png" float="left">


#### Localizzazione delle funzioni chiave per lo shellcode
Lo shellcode deve essere generato dinamicamente per bypassare ASLR e PIE, che cambiano l'indirizzo di funzioni come dlopen() ad ogni esecuzione del programma.

<img src="https://assets.kitploit.com/production/public/readmes/5614/6cbb620495d8cb9711e499fd5b1ae9ea845c03d0c33019cf008b456a95d5ddd6.png" float="left">


#### Iniezione dello shellcode in una code cave
Una code cave può essere trovata tramite reverse engineering di un ELF se ASLR e PIE sono disattivati, ma di solito non è così. Il programma eBPF invia una richiesta a un programma rootkit nello spazio utente che utilizza il filesystem /proc per localizzare e scrivere in una code cave nella sezione .text (eseguibile).

<img src="https://assets.kitploit.com/production/public/readmes/5614/c7daea0eed684437b5c7d971d0f69f5aac9138861d44da36c5368be9f97666d1.png" float="left">

#### Sovrascrittura della sezione GOT
A seconda che RELRO Parziale o Completo sia attivo sull'eseguibile, il programma eBPF sovrascrive la sezione GOT direttamente o tramite il filesystem /proc.

<img src="https://assets.kitploit.com/production/public/readmes/5614/7e69ec2982ee8c77c39b42f364ab25e52c40d96890f7413b3afe04dde1b825c3.png" float="left">

#### Attesa della prossima system call
Quando viene emessa la prossima syscall nel programma dirottato, la sezione PLT utilizza la sezione GOT modificata, dirottando il flusso di esecuzione che viene reindirizzato allo shellcode nella code cave. Lo shellcode è preparato per evitare che il programma si blocchi, e chiama la libreria dannosa (*src/helpers/lib_injection.so*). Questa libreria esegue un fork() e genera una reverse shell con la macchina dell'attaccante. Successivamente il flusso di esecuzione viene ripristinato.

<img src="https://assets.kitploit.com/production/public/readmes/5614/4e780cbcba855fe11a55f6a34709d83d855a4235960b15b69470233147f04318.png" float="left">



## Backdoor e C2
La backdoor funziona immediatamente senza necessità di configurazione. La backdoor può essere controllata remotamente utilizzando il programma client del rootkit:

| CLIENT ARGUMENTS | ACTION DESCRIPTION |
| ------------- | ------------- |
| ./injector -c \<Victim IP\> | Genera una pseudo-shell in chiaro utilizzando il modulo di hijacking dell'esecuzione |
| ./injector -e \<Victim IP\> | Genera una pseudo-shell crittografata comandando la backdoor con un trigger basato su pattern |
./injector -s \<Victim IP\> | Genera una pseudo-shell crittografata comandando la backdoor con un trigger multi-pacchetto (di entrambi i tipi) |
./injector -p \<Victim IP\> | Genera una phantom shell comandando la backdoor con un trigger basato su pattern |
./injector -a \<Victim IP\> | Ordina al rootkit di attivare tutti i programmi eBPF |
./injector -u \<Victim IP\> | Ordina al rootkit di scollegare tutti i suoi programmi eBPF |
./injector -S \<Victim IP\> | Mostra come la backdoor può nascondere un messaggio dal kernel (Simple PoC) |
| ./injector -h | Mostra l'aiuto |

### Trigger della backdoor

Le azioni vengono inviate alla backdoor utilizzando trigger della backdoor, che indicano alla backdoor l'azione da eseguire in base al valore dell'attributo **K3**:

| K3 VALUE | ACTION |
| ------------- | ------------- |
| 0x1F29 | Richiesta di avviare una connessione pseudo-shell crittografata |
| 0x4E14 | Richiesta di avviare una connessione phantom shell |
| 0x1D25 | Richiesta di caricare e allegare tutti i programmi eBPF del rootkit |
| 0x1D24 | Richiesta di scollegare tutti i programmi eBPF del rootkit (eccetto quelli della backdoor) |


#### Trigger basato su pattern
Questo trigger nasconde il comando e le informazioni del client in modo che possano essere riconosciuti dalla backdoor, ma allo stesso tempo appaiono sufficientemente casuali per un supervisore di rete esterno. È basato sul trigger utilizzato dal rootkit NSA recentemente scoperto [Bvp47](https://www.pangulab.cn/files/The_Bvp47_a_top-tier_backdoor_of_us_nsa_equation_group.en.pdf).

<img src="https://assets.kitploit.com/production/public/readmes/5614/58cec7ee2dbd89b6c7d71d60c006a1a98d7b9165b20bdbe006467a82d5dc30ab.png" float="left">

#### Trigger multi-pacchetto
Questo trigger consiste di più pacchetti TCP in cui il payload della backdoor è nascosto negli header dei pacchetti. Questo design è basato sull'impianto CIA [Hive](https://wikileaks.org/vault7/document/hive-DevelopersGuide/hive-DevelopersGuide.pdf) descritto nella fuga di Vault 7. Viene utilizzato il seguente payload:

<img src="https://assets.kitploit.com/production/public/readmes/5614/45a8348c3d366af4941d9cca845c281fc8c5a565353fc8fe3fb91350f39dd5f8.png" float="left">

Viene quindi calcolato uno XOR rolling sul payload sopra e viene diviso in più parti, a seconda della modalità selezionata dal client del rootkit. TripleCross supporta payload nascosti nel numero di sequenza TCP:

<img src="https://assets.kitploit.com/production/public/readmes/5614/2b9d7fd46f7133e3eeda694e0b4791fbed2a51616b7d2f14e989a9e0e56af9e2.png" float="left">

E nella porta sorgente TCP:

<img src="https://assets.kitploit.com/production/public/readmes/5614/1a6ea6da628a9902eaf55cc3c1549a2ecf26cba211275acdce6bc5491b34140c.png" float="left">

### Pseudo-shell della backdoor
Il client può stabilire pseudo-shell del rootkit, una speciale connessione client rootkit-a-rootkit che simula un programma shell, consentendo all'attaccante di eseguire comandi Linux da remoto e ottenere i risultati come se li stesse eseguendo direttamente sulla macchina infetta. Nel nostro rootkit sono incorporate diverse pseudo-shell:

#### Pseudo-shell in chiaro
Questa shell viene generata dopo un'esecuzione riuscita del modulo di hijacking dell'esecuzione, che eseguirà un file dannoso che stabilisce una connessione con il client del rootkit come segue:

<img src="https://assets.kitploit.com/production/public/readmes/5614/6495b5b62c33ae136b8c965658d9c5f501e609029bde7fcefe7266966f8effbb.png" float="left">
<img src="https://assets.kitploit.com/production/public/readmes/5614/5301e208d9853760eabdc14772c57a3639f28d71d050ee82d151bff93a76cedf.png" float="right">

#### Pseudo-shell crittografata
Una pseudo-shell crittografata può essere richiesta dal client del rootkit in qualsiasi momento, consistente in una connessione TLS tra il rootkit e il client del rootkit. All'interno della connessione crittografata, viene seguito un protocollo di trasmissione per comunicare comandi e informazioni, simile a quello delle pseudo-shell in chiaro.

Per generare una pseudo-shell crittografata è necessario che la backdoor ascolti i trigger, che accetta sia trigger basati su pattern che entrambi i tipi di trigger multi-pacchetto:

<img src="https://assets.kitploit.com/production/public/readmes/5614/d4929247af8895f78522f28c4ac8087e74d76b91320c67e0b37ea841cd8869d0.png" float="left">
<img src="https://assets.kitploit.com/production/public/readmes/5614/6e2a72d04028212a4917397b75b052a4bdf3c0529fb6c5e336b7fc0a06571728.png" float="right">

#### Phantom shell
Una phantom shell utilizza una combinazione di programmi XDP e TC per superare le limitazioni di eBPF sulla rete, in particolare che non può generare nuovi pacchetti. Per questo, la backdoor modifica il traffico esistente, sovrascrivendo il payload con i dati della trasmissione C2. I pacchetti originali non vengono persi poiché le ritrasmissioni TCP inviano nuovamente il pacchetto originale (senza modifiche) dopo un breve periodo.

Il seguente protocollo illustra il traffico durante l'esecuzione di un comando utilizzando una phantom shell:
<img src="https://assets.kitploit.com/production/public/readmes/5614/0aafe6b672757e4e9d37402c72ce14893a8a7f198030b2f2386df631c345d16b.png" float="left">

Una phantom shell viene richiesta dal client del rootkit che emette un comando da eseguire da parte della backdoor:

<img src="https://assets.kitploit.com/production/public/readmes/5614/e07dec48ff6a22e708b6d4b0d762473cc6483f065011cd6cdccdac49f12f916b.png" float="left">

Dopo che la macchina infetta invia un qualsiasi pacchetto TCP, la backdoor lo sovrascrive e il client mostra la risposta:

<img src="https://assets.kitploit.com/production/public/readmes/5614/19bea585b78a0bb1d52aa7c63ff05a0111551a0cc767732775491641e1dec021.png" float="left">


## Modulo di hijacking dell'esecuzione
In linea di principio, un programma eBPF non può avviare l'esecuzione di un programma da solo. Questo modulo mostra come un rootkit dannoso possa sfruttare programmi benigni per eseguire codice dannoso nello spazio utente. Questo modulo raggiunge due obiettivi:
* Eseguire un programma utente dannoso sfruttando l'esecuzione di un altro programma.
* Essere trasparente per lo spazio utente, cioè, se dirottiamo l'esecuzione di un programma in modo che un altro venga eseguito, anche il programma originale dovrebbe essere eseguito con il minimo ritardo.

Questo modulo funziona dirottando la syscall sys_execve(), modificando i suoi argomenti in modo che venga eseguito invece un programma dannoso (*src/helpers/execve_hijack.c*). Questa modifica è fatta in modo tale che il programma dannoso possa successivamente eseguire il programma originale con gli argomenti originali per evitare di destare sospetti nello spazio utente. Il seguente diagramma riassume la funzionalità complessiva:

<img src="https://assets.kitploit.com/production/public/readmes/5614/601610696506e303f91a7957ec2a3d61f73f7d0e036430a9f67bd80a6f19b2d3.png" float="left">

Gli argomenti della chiamata originale sys_execve() vengono modificati in modo tale che gli argomenti originali non vengano persi (utilizzando argv[0]) in modo che il programma originale possa essere eseguito dopo quello dannoso:

<img src="https://assets.kitploit.com/production/public/readmes/5614/e483317a3bdac422cdfc49ca92acdcefe624ddceb5b2ed036ccec141c8d1e5e6.png" float="left">

Abbiamo incorporato un programma di test di esempio (*src/helpers/simple_execve.c*) per testare il modulo di hijacking dell'esecuzione. Il modulo può anche dirottare qualsiasi chiamata nel sistema, a seconda della configurazione:

| FILENAME | CONSTANT | DESCRIPTION |
| ------------- | ------------- | ------------- |
| src/common/constants.h | PATH_EXECUTION_HIJACK_PROGRAM | Posizione del programma dannoso da eseguire in caso di successo nell'esecuzione di una chiamata sys_execve |
| src/common/constants.h | EXEC_HIJACK_ACTIVE | Disattiva (0) o attiva (1) il modulo di hijacking dell'esecuzione |
| src/common/constants.h | TASK_COMM_RESTRICT_HIJACK_ACTIVE | Dirotta qualsiasi chiamata sys_execve (0) o solo quelle indicate in TASK_COMM_NAME_RESTRICT_HIJACK (1) |
| src/common/constants.h | TASK_COMM_NAME_RESTRICT_HIJACK | Nome del programma da cui dirottare le chiamate sys_execve |

Dopo un hijack riuscito, il modulo si fermerà da solo. Il programma dannoso *execve_hijack* resterà in ascolto di richieste di una pseudo-shell in chiaro da parte del client del rootkit.

## Persistenza del rootkit
Dopo il riavvio della macchina infetta, tutti i programmi eBPF verranno scaricati dal kernel e il programma rootkit in spazio utente verrà terminato. Inoltre, anche se il rootkit potesse essere eseguito di nuovo automaticamente, non godrebbe più dei privilegi di root necessari per allegare nuovamente i programmi eBPF. Il modulo di persistenza del rootkit mira ad affrontare queste due sfide:
* Eseguire il rootkit automaticamente e senza interazione dell'utente dopo un evento di riavvio della macchina.
* Una volta che il rootkit ha acquisito i privilegi di root la prima volta che viene eseguito sulla macchina, deve mantenerli anche dopo un riavvio.

TripleCross utilizza due file segreti, creati sotto *cron.d* e *sudoers.d*, per implementare questa funzionalità. Queste voci garantiscono che il rootkit venga caricato automaticamente e con pieni privilegi dopo un riavvio. Questi file sono creati e gestiti dallo script *deployer&#46;sh*:

<img src="https://assets.kitploit.com/production/public/readmes/5614/88500b779b9ad5ba771803900a8abfffd08f3a6be59518e690534779a4134cf8.png" float="left">
<img src="https://assets.kitploit.com/production/public/readmes/5614/5ae61ed98af6d7c8aa9448fed3de553712ffb5c63e95d98a6f4300ff407bce23.png" float="right">

Lo script contiene due costanti che devono essere configurate per l'utente da infettare sul sistema di destinazione:

| SCRIPT | CONSTANT | DESCRIPTION |
| ------------- | ------------- | ------------- |
| src/helpers/deployer.sh | CRON_PERSIST | Job cron da eseguire dopo il riavvio |
| src/helpers/deployer.sh | SUDO_PERSIST | Voce sudo per garantire privilegi senza password |

## Furtività del rootkit
Il modulo di persistenza si basa sulla creazione di file aggiuntivi, ma questi potrebbero eventualmente essere trovati dal proprietario del sistema o da qualche strumento software, quindi esiste il rischio di lasciarli nel sistema. Inoltre, i file del rootkit dovranno essere memorizzati in qualche posizione, in cui potrebbero essere scoperti.

Tenendo conto di quanto sopra, il modulo di furtività fornisce le seguenti funzionalità:
* Nascondere completamente una directory all'utente (in modo da poter nascondere tutti i file del rootkit all'interno).
* Nascondere file specifici in una directory (dobbiamo nascondere i file di persistenza, ma non possiamo nascondere completamente le directory *sudoers.d* o *cron.d*, poiché appartengono al normale funzionamento del sistema).

I file e le directory nascosti dal rootkit possono essere personalizzati tramite le seguenti costanti di configurazione:

| FILENAME | CONSTANT | DESCRIPTION |
| ------------- | ------------- | ------------- |
| src/common/constants.h | SECRET_DIRECTORY_NAME_HIDE | Nome della directory da nascondere |
| src/common/constants.h | SECRET_FILE_PERSISTENCE_NAME | Nome del file da nascondere |

Per impostazione predefinita, TripleCross nasconderà tutti i file chiamati "*ebpfbackdoor*" e una directory denominata "*SECRETDIR*". Questo modulo viene attivato automaticamente dopo l'installazione del rootkit.

La tecnica utilizzata per ottenere questa funzionalità consiste nell'alterare gli argomenti della system call sys_getdents():

<img src="https://assets.kitploit.com/production/public/readmes/5614/7f928351c1c07e7b6a534846c5374788449e03455191cddf8c7f02af2c885852.png" float="left">



## Licenza
Il rootkit TripleCross e il client del rootkit sono concessi in licenza sotto la licenza GPLv3. Vedi [LICENSE](https://github.com/h3xduck/TripleCross/blob/master/LICENSE).

La libreria [RawTCP_Lib](https://github.com/h3xduck/RawTCP_Lib) è concessa in licenza sotto la licenza MIT.

Il documento originale della tesi e le figure incluse sono rilasciati sotto [Creative Commons BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/).

Footnotes

  1. J. Dileo. Evil eBPF: Practical Abuses of an In-Kernel Bytecode Runtime. DEFCON 27. slides ↩

  2. P. Hogan. Warping Reality: Creating and Countering the Next Generation of Linux Rootkits using eBPF. DEFCON 27. presentation ↩

  3. G. Fournier and S. Afchain. eBPF, I thought we were friends! DEFCON 29. slides ↩

  4. Kris Nóva. Boopkit. github ↩

Scarica lo strumento
DIRECTORYCOMANDO
docsDocumento originale della tesi
src/clientCodice sorgente del client rootkit
src/client/libLibreria condivisa RawTCP_Lib
src/commonCostanti e configurazione per il rootkit. Include anche l'implementazione di elementi comuni al lato eBPF e allo spazio utente del rootkit, come il ring buffer
src/ebpfCodice sorgente dei programmi eBPF utilizzati dal rootkit
src/helpersInclude programmi per testare la funzionalità di diversi moduli del rootkit, e anche il programma malevolo e la libreria utilizzati rispettivamente nei moduli di hijacking dell'esecuzione e di injection di librerie
src/libbpfContiene la libreria libbpf integrata con il rootkit
src/userCodice sorgente dei programmi in spazio utente utilizzati dal rootkit
src/vmlinuxHeader contenenti la definizione delle strutture dati del kernel (questo è il metodo consigliato quando si utilizza libbpf)
NOME FILE
COSTANTE
DESCRIZIONE
src/common/constants.hTASK_COMM_NAME_INJECTION_
TARGET_TIMERFD_SETTIME
Nome del processo da dirottare alla syscall sys_timerfd_settime
src/common/constants.hTASK_COMM_NAME_INJECTION_
TARGET_OPEN
Nome del processo da dirottare alla syscall sys_openat
src/helpers/injection_lib.cATTACKER_IP & ATTACKER_PORTIndirizzo IP e porta della macchina dell'attaccante