
Servizio di hosting di file auto-distribuibile per red teamer, che consente di caricare e condividere facilmente payload su HTTP e WebDAV.
pwndrop è un servizio di hosting file auto-distribuibile per inviare payload di red team o condividere in modo sicuro i tuoi file privati tramite HTTP e WebDAV.
Se hai mai avuto bisogno di configurare rapidamente un server web nginx/apache per ospitare i tuoi file e non sei mai stato soddisfatto delle limitazioni di python -m SimpleHTTPServer, pwndrop è sicuramente ciò che fa per te!
Con pwndrop puoi:
Il suo obiettivo principale è rendere la condivisione di file il più semplice e intuitiva possibile, implementando funzionalità extra per assistere nelle valutazioni di red team.
Il frontend di pwndrop è sviluppato in puro Vue.js + Bootstrap senza dipendenze npm o webpack. Il backend serve API REST e gestisce un database locale, basato sul linguaggio GO.
Se vuoi imparare come usare pwndrop o vuoi scoprire quali nuove funzionalità sono state implementate nelle versioni recenti, dai un'occhiata ai post sul mio blog:
Dai un'occhiata al fantastico video realizzato da Luke Turvey (@TurvSec), che spiega completamente come iniziare a usare pwndrop.
Se non hai ancora un server su cui distribuire, consiglio vivamente Digital Ocean. Il server Debian 9 più economico a $5/mese con 25GB di spazio di archiviazione ti sarà molto utile. Puoi usare il mio link di affiliazione per ottenere 100$ extra da spendere sui tuoi server in 60 giorni gratuitamente.
Registra un nuovo dominio e punta i suoi record DNS A all'IP del tuo VPS. Puoi anche registrare un dominio e puntare i suoi nameserver ns1 e ns2 all'IP dell'istanza pwndrop - risponderà automaticamente con risposte DNS A valide.
Se vuoi configurare pwndrop senza un dominio, controlla sotto come configurare un'istanza locale, che non genererà automaticamente certificati HTTPS.
Assicurati che non ci siano server DNS o HTTP(S) in esecuzione prima di tentare di installare pwndrop.
Non consiglio di eseguire one-liner senza prima scaricare e controllare il codice dello script, ma se sei davvero di fretta, eccolo:
curl https://raw.githubusercontent.com/kgretzky/pwndrop/master/install_linux.sh | sudo bash
Questo scaricherà l'ultimo binario di rilascio amd64 e installerà completamente un demone in esecuzione in background.
Per prima cosa devi scaricare il pacchetto di rilascio che desideri da: https://github.com/kgretzky/pwndrop/releases
Poi esegui quanto segue (questo esegue le stesse azioni dello one-liner):
tar zxvf pwndrop-linux-amd64.tar.gz
./pwndrop stop
./pwndrop install
./pwndrop start
./pwndrop status
Prima di tutto, assicurati di aver installato GO con versione almeno 1.13: https://golang.org/doc/install
Poi esegui quanto segue:
sudo apt-get -y install git make
git clone https://github.com/kgretzky/pwndrop
cd pwndrop
make
make install
Assicurati che pwndrop sia in esecuzione.
https://yourdomain.com/pwndrop (questo è il valore predefinito; assicurati di usare il percorso segreto che hai preconfigurato)https://yourdomain.com/ (dopo aver autorizzato il browser, vedrai una pagina di login del pannello di amministrazione)/pwndrop.Sei pronto per partire!
Non devi installare pwndrop come demone e puoi eseguirlo direttamente dalla console.
usage: pwndrop [start|stop|install|remove|status] [-config <config_path>] [-debug] [-no-autocert] [-no-dns] [-h]
daemon management:
start : start the daemon
stop : stop the daemon
install : install the daemon using the available system manager (systemd, systemv and upstart supported)
remove : uninstall the daemon
status : check status of the installed daemon
parameters:
-config : specify a custom path to a config file (def. 'pwndrop.ini' in same directory as the executable)
-debug : enable debug output
-no-autocert : disable automatic TLS certificate retrieval from LetsEncrypt; useful when you want to connect over IP or/and in a local network
-no-dns : do not run a DNS server on port 53 UDP; use this if you don't want to use pwndrop as a nameserver
-h : usage help
Al primo avvio, pwndrop, per impostazione predefinita, creerà un nuovo file di configurazione pwndrop.ini nella stessa directory dell'eseguibile. Puoi successivamente modificarlo o fornirne uno tuo, ad esempio per preconfigurare pwndrop prima dell'installazione per automatizzare ancora meglio la distribuzione dello strumento.
Ecco un esempio di file di configurazione con tutte le variabili di configurazione disponibili con commenti:
[pwndrop]
listen_ip = "190.33.86.22" # the external IP of your pwndrop instance (must be set if you want to use the nameserver feature)
http_port = 80 # listening port for HTTP and WebDAV
https_port = 443 # listening port for HTTPS
data_dir = "./data" # directory path where data storage will reside (relative paths are from executable directory path)
admin_dir = "./admin" # directory path where the admin panel files reside (relative paths are from executable directory path)
[setup] # optional: put in if you want to pre-configure pwndrop (section will be deleted from the config file on first run)
username = "admin" # username of the admin account
password = "secretpassword" # password of the admin account
redirect_url = "https://www.somedomain.com" # URL to which visitors will be redirected to if they supply a path, which doesn't point to any shared file (put blank if you want to return 404)
secret_path = "/pwndrop" # secret URL path, which upon visiting will allow your browser to access the login page of the admin panel (make sure to change the default value)
Se vuoi preconfigurare la tua istanza pwndrop prima della distribuzione utilizzando uno qualsiasi degli script di installazione, posiziona il file di configurazione in /usr/local/pwndrop/pwndrop.ini e verrà analizzato nel momento in cui il demone pwndrop viene eseguito per la prima volta.
Un enorme ringraziamento a @jaredhaight per avermi ispirato a imparare Vue, con il suo framework Faction C2!
Grazie anche a tutte le persone che mi hanno dato feedback pre-rilascio e mi hanno supportato con le loro opinioni sullo strumento!
pwndrop è creato da Kuba Gretzky (@mrgretzky) ed è rilasciato sotto licenza GPL3.