
خدمة استضافة ملفات قابلة للنشر الذاتي لفريق الاختراق (Red Teamers)، تتيح رفع ومشاركة الحمولات بسهولة عبر HTTP وWebDAV.
pwndrop هي خدمة استضافة ملفات ذاتية النشر لإرسال حمولات الفرق الحمراء أو مشاركة ملفاتك الخاصة بشكل آمن عبر HTTP و WebDAV.
إذا كنت يومًا بحاجة إلى إعداد خادم nginx/apache بسرعة لاستضافة ملفاتك، ولم تكن راضيًا عن قيود python -m SimpleHTTPServer، فإن pwndrop هي الخيار الأمثل لك!
مع pwndrop يمكنك:
هدفها الرئيسي هو جعل مشاركة الملفات سهلة وبديهية قدر الإمكان، مع تنفيذ ميزات إضافية للمساعدة في تقييمات الفرق الحمراء.
الواجهة الأمامية لـ pwndrop مطورة بـ Vue.js + Bootstrap خالصين دون تبعيات npm أو webpack. الخلفية تقدم REST API وتدير قاعدة بيانات محلية، مدعومة بلغة GO.
إذا كنت تريد معرفة كيفية استخدام pwndrop أو معرفة الميزات الجديدة التي تم إضافتها في الإصدارات الأخيرة، تأكد من زيارة المقالات على مدونتي:
ألقِ نظرة على الفيديو الرائع الذي أعده Luke Turvey (@TurvSec)، والذي يشرح بالكامل كيفية البدء في استخدام pwndrop.
إذا لم يكن لديك خادم للنشر بعد، فإنني أوصي بشدة بـ Digital Ocean. سيرفر Debian 9 بأرخص سعر $5/شهريًا و 25GB مساحة تخزين سيعمل بشكل رائع معك. يمكنك استخدام رابط الإحالة الخاص بي للحصول على $100 إضافية لإنفاقها على خوادمك خلال 60 يومًا مجانًا.
سجل نطاقًا جديدًا ووجه سجلات DNS A الخاصة به إلى عنوان IP الخاص بـ VPS الخاص بك. يمكنك أيضًا تسجيل نطاق وتوجيه خوادم الأسماء ns1 و ns2 الخاصة به إلى عنوان IP الخاص بـ pwndrop - سيقوم تلقائيًا بالرد بردود DNS A صالحة.
إذا كنت ترغب في إعداد pwndrop بدون نطاق، تحقق أدناه من كيفية إعداد مثيل محلي، والذي لن يقوم بتوليد شهادات HTTPS تلقائيًا.
تأكد من عدم وجود أي خوادم DNS أو HTTP(S) قيد التشغيل قبل محاولة تثبيت pwndrop.
لا أوصي بتشغيل الأوامر الواحدة دون تحميل وفحص كود السكريبت أولاً، ولكن إذا كنت في عجلة من أمرك، فإليك الأمر:
curl https://raw.githubusercontent.com/kgretzky/pwndrop/master/install_linux.sh | sudo bash
سيؤدي هذا إلى تحميل أحدث إصدار ثنائي amd64 وتثبيت خفي (daemon) يعمل في الخلفية بالكامل.
أولاً، يجب تنزيل حزمة الإصدار التي تريدها من: https://github.com/kgretzky/pwndrop/releases
ثم قم بالتالي (يقوم بنفس الإجراءات التي يقوم بها الأمر الواحد):
tar zxvf pwndrop-linux-amd64.tar.gz
./pwndrop stop
./pwndrop install
./pwndrop start
./pwndrop status
أولاً، تأكد من تثبيت GO بحد أدنى إصدار 1.13: https://golang.org/doc/install
ثم قم بالتالي:
sudo apt-get -y install git make
git clone https://github.com/kgretzky/pwndrop
cd pwndrop
make
make install
تأكد من أن pwndrop قيد التشغيل.
https://yourdomain.com/pwndrop (هذه قيمة افتراضية؛ تأكد من استخدام المسار السري الذي قمت بتكوينه مسبقًا)https://yourdomain.com/ (بما أنك فوضت متصفحك، سترى الآن صفحة تسجيل دخول لوحة الإدارة)/pwndrop.أصبحت جاهزًا للانطلاق!
لست بحاجة لتثبيت pwndrop كخفي، ويمكنك تشغيله مباشرة من الكونسول.
usage: pwndrop [start|stop|install|remove|status] [-config <config_path>] [-debug] [-no-autocert] [-no-dns] [-h]
daemon management:
start : بدء الخفي
stop : إيقاف الخفي
install : تثبيت الخفي باستخدام مدير النظام المتاح (يدعم systemd و systemv و upstart)
remove : إلغاء تثبيت الخفي
status : التحقق من حالة الخفي المثبت
parameters:
-config : تحديد مسار مخصص لملف الإعدادات (الافتراضي 'pwndrop.ini' في نفس دليل الملف التنفيذي)
-debug : تمكين إخراج التصحيح
-no-autocert : تعطيل الاسترجاع التلقائي لشهادات TLS من LetsEncrypt؛ مفيد عند الاتصال عبر IP أو/وفي شبكة محلية
-no-dns : عدم تشغيل خادم DNS على المنفذ 53 UDP؛ استخدم هذا إذا كنت لا ترغب في استخدام pwndrop كخادم أسماء
-h : تعليمات الاستخدام
في التشغيل الأول، سيقوم pwndrop افتراضيًا بإنشاء ملف إعدادات جديد pwndrop.ini في نفس دليل الملف التنفيذي. يمكنك لاحقًا تعديله أو تقديم ملفك الخاص، على سبيل المثال لتكوين pwndrop مسبقًا قبل التثبيت لأتمتة نشر الأداة بشكل أفضل.
فيما يلي مثال على ملف إعدادات مع جميع متغيرات الإعدادات المتاحة مع التعليقات:
[pwndrop]
listen_ip = "190.33.86.22" # عنوان IP الخارجي لمثيل pwndrop الخاص بك (يجب تعيينه إذا كنت تريد استخدام ميزة خادم الأسماء)
http_port = 80 # منفذ الاستماع لـ HTTP و WebDAV
https_port = 443 # منفذ الاستماع لـ HTTPS
data_dir = "./data" # مسار الدليل حيث سيتم تخزين البيانات (المسارات النسبية من دليل الملف التنفيذي)
admin_dir = "./admin" # مسار الدليل حيث توجد ملفات لوحة الإدارة (المسارات النسبية من دليل الملف التنفيذي)
[setup] # اختياري: ضعه إذا كنت تريد تكوين pwndrop مسبقًا (سيتم حذف هذا القسم من ملف الإعدادات عند التشغيل الأول)
username = "admin" # اسم مستخدم حساب المسؤول
password = "secretpassword" # كلمة مرور حساب المسؤول
redirect_url = "https://www.somedomain.com" # عنوان URL الذي سيتم إعادة توجيه الزوار إليه إذا قدموا مسارًا لا يشير إلى أي ملف مشارك (اتركه فارغًا إذا كنت تريد إرجاع 404)
secret_path = "/pwndrop" # مسار URL السري، الذي عند زيارته سيسمح لمتصفحك بالوصول إلى صفحة تسجيل الدخول للوحة الإدارة (تأكد من تغيير القيمة الافتراضية)
إذا كنت تريد تكوين مثيل pwndrop الخاص بك مسبقًا قبل النشر باستخدام أي من نصوص التثبيت، ضع ملف الإعدادات الخاص بك في /usr/local/pwndrop/pwndrop.ini وسيتم تحليله في اللحظة التي يتم فيها تشغيل خفي pwndrop لأول مرة.
شكر كبير لـ @jaredhaight لإلهامي لتعلم Vue، من خلال إطاره Faction C2!
وأيضًا شكر جزيل لجميع الأشخاص الذين قدموا لي ملاحظات قبل الإصدار ودعموني بآرائهم حول الأداة!
pwndrop من صنع Kuba Gretzky (@mrgretzky) ويتم إصدارها تحت ترخيص GPL3.