
Service d'hébergement de fichiers auto-déployable pour les red teamers, permettant de télécharger et partager facilement des charges utiles via HTTP et WebDAV.
pwndrop est un service d'hébergement de fichiers auto-déployable pour envoyer des payloads de red team ou partager en toute sécurité vos fichiers privés via HTTP et WebDAV.
Si vous avez déjà eu besoin de configurer rapidement un serveur web nginx/apache pour héberger vos fichiers et que vous n'avez jamais été satisfait des limitations de python -m SimpleHTTPServer, pwndrop est définitivement fait pour vous !
Avec pwndrop vous pouvez :
Son objectif principal est de rendre le partage de fichiers aussi simple et intuitif que possible, tout en implémentant des fonctionnalités supplémentaires pour aider aux évaluations de red team.
Le frontend de pwndrop est développé en pur Vue.js + Bootstrap sans dépendances npm ou webpack. Le backend sert une API REST et gère une base de données locale, propulsé par le langage GO.
Si vous voulez apprendre à utiliser pwndrop ou découvrir les nouvelles fonctionnalités implémentées dans les versions récentes, n'oubliez pas de consulter les articles de mon blog :
Jetez un œil à la fantastique vidéo réalisée par Luke Turvey (@TurvSec), qui explique en détail comment commencer à utiliser pwndrop.
Si vous n'avez pas encore de serveur sur lequel déployer, je recommande vivement Digital Ocean. Le serveur Debian 9 le moins cher à 5 $/mois avec 25 Go d'espace de stockage fera des merveilles pour vous. Vous pouvez utiliser mon lien de parrainage pour obtenir 100 $ supplémentaires à dépenser sur vos serveurs en 60 jours gratuitement.
Enregistrez un nouveau domaine et pointez ses enregistrements DNS A vers l'IP de votre VPS. Vous pouvez également enregistrer un domaine et pointer ses serveurs de noms ns1 et ns2 vers l'IP de l'instance pwndrop - il répondra automatiquement avec des réponses DNS A valides.
Si vous souhaitez configurer pwndrop sans domaine, consultez ci-dessous comment configurer une instance locale, qui ne générera pas automatiquement de certificats HTTPS.
Assurez-vous qu'aucun serveur DNS ou HTTP(S) ne tourne avant de tenter d'installer pwndrop.
Je ne recommande pas d'exécuter des commandes en une ligne sans d'abord télécharger et vérifier le code du script, mais si vous êtes vraiment pressé, voici :
curl https://raw.githubusercontent.com/kgretzky/pwndrop/master/install_linux.sh | sudo bash
Vous devez d'abord télécharger le paquet de la version souhaitée depuis : https://github.com/kgretzky/pwndrop/releases
Ensuite, faites ce qui suit (cela effectue les mêmes actions que la commande en une ligne) :
tar zxvf pwndrop-linux-amd64.tar.gz
./pwndrop stop
./pwndrop install
./pwndrop start
./pwndrop status
Tout d'abord, assurez-vous d'avoir installé GO avec une version au moins 1.13 : https://golang.org/doc/install
Ensuite, faites ce qui suit :
sudo apt-get -y install git make
git clone https://github.com/kgretzky/pwndrop
cd pwndrop
make
make install
Assurez-vous que pwndrop est en cours d'exécution.
https://yourdomain.com/pwndrop (c'est une valeur par défaut ; assurez-vous d'utiliser le chemin secret que vous avez préconfiguré)https://yourdomain.com/ (puisque vous avez autorisé votre navigateur, vous verrez maintenant une page de connexion au panneau d'administration)/pwndrop.Vous êtes prêt !
Vous n'avez pas besoin d'installer pwndrop en tant que démon et vous pouvez l'exécuter directement depuis la 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
Au premier lancement, pwndrop, par défaut, créera un nouveau fichier de configuration pwndrop.ini dans le même répertoire que l'exécutable. Vous pouvez ensuite le modifier ou fournir le vôtre, par exemple pour préconfigurer pwndrop avant l'installation afin d'automatiser encore mieux le déploiement de l'outil.
Voici un exemple de fichier de configuration avec toutes les variables de configuration disponibles commentées :
[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)
Si vous souhaitez préconfigurer votre instance pwndrop avant le déploiement en utilisant l'un des scripts d'installation, placez votre fichier de configuration dans /usr/local/pwndrop/pwndrop.ini et il sera analysé au moment où le démon pwndrop sera exécuté pour la première fois.
Un grand merci à @jaredhaight pour m'avoir inspiré à apprendre Vue, avec son framework Faction C2 !
Merci également à toutes les personnes qui m'ont donné des retours avant la sortie et qui m'ont soutenu avec leurs opinions sur l'outil !
pwndrop est créé par Kuba Gretzky (@mrgretzky) et est publié sous licence GPL3.