
पेनिट्रेशन टेस्टर्स के लिए एक वेबशेल फ्रेमवर्क।
novahot एक पैठ परीक्षकों के लिए वेबशेल ढांचा है। यह एक JSON-आधारित API को लागू करता है जो किसी भी भाषा में लिखे ट्रोजन के साथ संवाद कर सकता है। डिफ़ॉल्ट रूप से, यह 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)
नवनिर्मित ट्रोजन में नियंत्रण पासवर्ड बदलें।
ट्रोजन को लक्ष्य पर वेब-सुलभ स्थान पर अपलोड करें।
~/.novahotrc में targets गुण में लक्ष्य जानकारी कॉन्फ़िगर करें।
शेल खोलने के लिए novahot shell <target> चलाएं।
आंतरिक रूप से, novahot विभिन्न इंटरैक्टिव क्लाइंटों का अनुकरण करने के लिए "मोड" और "एडेप्टर" का उपयोग करता है, जिसमें वर्तमान में mysql, psql (पोस्टग्रेज) और 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 पर अपलोड करता है, और यदि निर्दिष्ट किया गया तो वैकल्पिक रूप से <local-filename> को <remote-filename> में नाम बदलता है।
view <remote-filename> [<local-filename>]
<remote-filename> को --download-dir पर डाउनलोड करता है, और यदि निर्दिष्ट किया गया तो वैकल्पिक रूप से इसे <local-filename> में नाम बदलता है। डाउनलोड करने के बाद, फ़ाइल configs में निर्दिष्ट "व्यूअर" एप्लिकेशन द्वारा खोली जाएगी।
edit <remote-filename>
<remote-filename> को एक अस्थायी फ़ाइल में डाउनलोड करता है, और फिर उस फ़ाइल को configs में निर्दिष्ट "एडिटर" का उपयोग करके संपादन के लिए खोलता है। बाद में, यदि फ़ाइल में परिवर्तन स्थानीय रूप से सहेजे जाते हैं, तो फ़ाइल स्वचालित रूप से सर्वर पर फिर से अपलोड हो जाएगी।
इस भंडार में Vagrant, Docker, और डैमन वल्नरेबल वेब एप्लिकेशन ("DVWA") पर निर्मित एक प्रयोगशाला वातावरण है। वातावरण तैयार करने के चरण आपके भौतिक होस्ट की क्षमताओं के आधार पर भिन्न होते हैं।
यदि आपके भौतिक होस्ट पर docker और docker-compose स्थापित हैं, तो आप बस निम्नलिखित कर सकते हैं:
cd करेंdocker-compose upडॉकर कंटेनर शुरू होने के बाद, DVWA http://localhost:80 पर उपलब्ध होगा।
यदि आपके भौतिक होस्ट पर docker स्थापित नहीं है, तो आप डॉकर-सक्षम वर्चुअल मशीन तक पहुंचने के लिए Vagrant/Virtualbox का उपयोग कर सकते हैं:
cd करेंvagrant upvagrant sshsudo su; cd /vagrant; docker-compose upDVWA http://localhost:8000 पर उपलब्ध होगा।
DVWA कंटेनर में एम्बेडेड PHP ट्रोजन से novahot क्लाइंट को जोड़ने के लिए अपनी ~/.novahotrc फ़ाइल में निम्नलिखित कनेक्शन स्ट्रिंग्स निर्दिष्ट करें:
{
"targets": {
"dvwa" : {
"uri" : "http://localhost:8000/novahot.php",
"password" : "the-password",
"mysql" : {
"username": "root",
"password": "vulnerables",
"database": "dvwa"
}
}
}
}
फिर आप इसके माध्यम से एक वेबशेल स्थापित कर सकते हैं:
novahot shell dvwa
अतिरिक्त जानकारी wiki में पाई जा सकती है: