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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
webshell-analyzer — Web shell स्कैनर और एनालाइज़र। | Kitploit
उपकरण/GitHubGitHub/tstillz/webshell-analyzer
स्थैतिक विश्लेषणभेद्यता स्कैनरफोरेंसिकवेब सुरक्षामालवेयर विश्लेषण
GitHubtstillz/webshell-analyzer

webshell-analyzer

Web shell स्कैनर और एनालाइज़र।

रिपॉजिटरी देखें
113263 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

वेब शेल विश्लेषक

वेब शेल विश्लेषक एक क्रॉस-प्लेटफॉर्म स्टैंड-अलोन बाइनरी है जो विशेष रूप से वेब शेल होने के संदेह वाली फ़ाइलों की पहचान, डिकोडिंग और टैगिंग के उद्देश्य से बनाई गई है। वेब शेल विश्लेषक, वेब शेल स्कैनर प्रोजेक्ट (http://github.com/tstillz/webshell-scan) का बड़ा भाई है, जो केवल रेगेक्स के माध्यम से फ़ाइलों को स्कैन करता है, बिना किसी डिकोडिंग या विशेषता विश्लेषण के।

अस्वीकरण

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

विशेषताएं

  • क्रॉस-प्लेटफॉर्म, स्टेटिकली कंपाइल्ड बाइनरी।
  • JSON आउटपुट
  • वर्तमान में अधिकांश PHP, ASP/X वेब शेल को सपोर्ट करता है। JSP/X, CFM और अन्य प्रकारों पर काम चल रहा है।
  • पुनरावर्ती, मल्टी-थ्रेडेड स्कैनिंग जो नेस्टेड निर्देशिकाओं के माध्यम से तेज़ी से पुनरावृत्ति करने में सक्षम है।
  • अस्पष्ट वेब शेल की कई परतों को संभालने की क्षमता जैसे base64, gzinflate और char code।
  • PRE/POST क्रियाओं का समर्थन करता है जो विश्लेषण इंजन के लिए लेयर्ड डी-अस्पष्टीकरण और डिकोडिंग को शक्ति प्रदान करता है।
  • मॉड्यूलर इंटरफेस के साथ ट्यूनेबल रेगेक्स लॉजिक जो विश्लेषक की क्षमताओं का आसानी से विस्तार करता है।
  • ट्यूनेबल विशेषता टैगिंग
  • मैच होने पर रॉ कंटेंट कैप्चर
  • सिस्टम जानकारी
  • वेब शेल रिपो के विरुद्ध परीक्षण: https://github.com/tennc/webshell

PRE/POST क्रियाएं

स्कैन की गई प्रत्येक फ़ाइल को PRE और/या POST क्रिया के माध्यम से चलाया जा सकता है:

  • PRE-डिकोडिंग: मैचिंग करने से पहले बुलाए जाने वाले फ़ंक्शन, जैसे base64 डिकोडिंग या स्ट्रिंग रिप्लेसमेंट।
  • POST-डिकोडिंग: मैचिंग करने के बाद बुलाए जाने वाले फ़ंक्शन, जैसे url डिफैंगिंग।

PreDecodeActions फ़ंक्शन के पीछे का विचार किसी मिलान स्ट्रिंग या पैटर्न की पहचान करने, उसकी रॉ मैच सामग्री प्राप्त करने, परिभाषित डिकोडिंग/क्लीनअप चरणों को निष्पादित करने और अंतिम आउटपुट को पुनः-स्कैनिंग/प्रसंस्करण के लिए विश्लेषण इंजन को वापस भेजने के लिए रेगेक्स का उपयोग करना था। इसका एक बहुत ही सरल उदाहरण Base64 डिकोडिंग है। बेस64 एनकोडेड वेब शेल के विरुद्ध किसी भी डिटेक्शन लॉजिक की जांच करने के लिए, हमें पहले base64 की सभी परतों को हटाना होगा। ऐसा करने के लिए, हम निम्नलिखित PreDecodeAction का उपयोग कर सकते हैं:

root@kitploit:~
{
    Name:        "PHP_Base64Decode",
    Regex:       *regexp.MustCompile(`(?i)(?:=|\s+)(base64_decode\('('?\"?[A-Za-z0-9+\/=]+'?\"?))`),
    DataCapture: *regexp.MustCompile(`(?i)((?:'|")[A-Za-z0-9+\/=]+(?:'|"))`),
    PreDecodeActions: []cm.Action{
        {Function: cm.StringReplace, Arguments: []interface{}{"\"", "", -1}},
        {Function: cm.StringReplace, Arguments: []interface{}{"'", "", -1}},
    },
    Functions: []cm.Base_Func{cm.DecodeBase64},
},

उपरोक्त ब्लॉक को देखते हुए, पहले हमारे पास फ़ंक्शन का नाम, मिलान के लिए उपयोग किया जाने वाला रेगेक्स, डेटा कैप्चर रेगेक्स (कभी-कभी आप कैप्चर करने बनाम मिलान करने के लिए समायोजित करना चाह सकते हैं) और PreDecodeActions हैं। इस मामले में, मिलान टेक्स्ट पर फ़ंक्शन cm.DecodeBase64 लागू करने से पहले, सिस्टम पहले निम्नलिखित आइटम " और ' को हटा देगा। PostDecodeActions इसके विपरीत काम करता है, जहां आउटपुट की जांच डिकोडिंग करने के बाद की जाती है। इस मॉडल का उपयोग करके, हम कई कस्टम डिकोडर बना सकते हैं जिनमें अनंत PRE/POST और डिकोडिंग फ़ंक्शन हों जो अधिकांश वेब शेल विश्लेषण आवश्यकताओं को संभाल सकें।

डिटेक्शन

डिटेक्शन एक रेगेक्स है जिसके साथ एक नाम और विवरण होता है। इस मॉडल के पीछे का विचार डिटेक्शन को मॉड्यूलर और स्केलेबल बनाना था और वास्तविक डिटेक्शन के संदर्भ में रखना था। डिटेक्शन विशेषताओं के समान प्रारूप साझा करते हैं, सिवाय इसके कि विशेषताएं कोई डिटेक्शन उत्पन्न नहीं कर सकतीं, वे केवल एक मौजूदा डिटेक्शन में संदर्भ जोड़ सकती हैं। आइए नीचे दिए गए उदाहरण डिटेक्ट लॉजिक ब्लॉक को देखें:

root@kitploit:~
{
    Name:        "Generic_Embedded_Executable",
    Description: "Looks for magic bytes associated with a PE file",
    Regex:       *regexp.MustCompile(`(?i)(?:(?:0x)?4d5a)`),
},

रेगेक्स के आधार पर, हम देख सकते हैं कि यह मैजिक हेडर बाइट्स 4D 5A के आधार पर एक एम्बेडेड विंडोज PE फ़ाइल की तलाश कर रहा है। यदि मिल जाता है, तो इससे एक डिटेक्शन होगा और फ़ाइल के लिए एक JSON रिपोर्ट उत्पन्न होगी। वर्तमान में, डिटेक्शन फ़ाइल एक्सटेंशन के आधार पर या सभी फ़ाइल प्रकारों के लिए सामान्य रूप से लागू होते हैं। उदाहरण के लिए, PHP के लिए डिकोडिंग रूटीन cm.GlobalMap.Function_Php के अंतर्गत परिभाषित होते हैं और विशेषताओं के लिए टैग cm.GlobalMap.Tags_Php के अंतर्गत परिभाषित होते हैं। फ़ंक्शन cm.GlobalMap.Function_Generics और cm.GlobalMap.Tags_Generics के अंतर्गत टैग सभी वेब शेल एक्सटेंशन पर कैच-ऑल के रूप में लागू होते हैं।

विशेषताएं

विशेषता टैगिंग एक नई अवधारणा है जिसे मैंने बनाया है जो मौजूदा वेब शेल डिटेक्शन में "संदर्भ" जोड़ता है। विशेषताएं अकेले वर्तमान में अपने आप कोई डिटेक्शन उत्पन्न नहीं कर सकती हैं। पारंपरिक स्कैन इंजन में, एक स्कैनर केवल तभी अलर्ट करेगा जब कोई वेब शेल डिटेक्ट होता है, लेकिन वेब शेल की संभावित क्षमताओं (विशेषताओं) में बहुत कम या कोई अतिरिक्त संदर्भ प्रदान नहीं करेगा। विशेषता टैग डिटेक्शन लॉजिक के समान काम करते हैं, हालांकि वे केवल एक डिटेक्शन की पहचान होने के बाद दिखाई देते हैं और अपने आप डिटेक्शन उत्पन्न नहीं कर सकते। नीचे दिए गए उदाहरण लॉजिक को देखें:

root@kitploit:~
cm.GlobalMap.Tags_Php = []cm.TagDef{
    {
        Name:        "PHP_Database_Operations",
        Description: "Looks for common PHP functions used for interacting with a database.",
        Regex:       *regexp.MustCompile(`(?i)(?:'mssql_connect\|mysql_exec\()`),
        Attribute: 	 true,
    },
}

हम देखते हैं कि स्ट्रक्ट Tags_Php के अंतर्गत, हमने एक नया PHP टैग बनाया है। स्कैनिंग के दौरान जब कोई मिलान मिलता है, तो Attribute फ्लैग की जाँच की जाती है और यदि True पर सेट है, तो डिटेक्ट किए गए वेब शेल में टैग PHP_Database_Operations को उसकी JSON रिपोर्ट में आवृत्ति और मिलान टेक्स्ट ब्लॉक के साथ जोड़ा जाएगा, जैसा कि नीचे दिए गए उदाहरण आउटपुट में दिखाया गया है:

root@kitploit:~
{
   "filePath": "/testers/1.php",
   "size": 66109,
   "md5": "6793d8ebab93e5a0f91e5a331221f331",
   "timestamps": {
      "birth": "2019-02-03 02:02:22",
      "created": "2020-07-29 02:50:15",
      "modified": "2019-02-03 02:02:22",
      "accessed": "2020-07-29 02:51:07"
   },
   "matches": {
      "FilesMAn": 5,
      "FilesMan": 29,
      "cmd": 20,
      "eval(": 4,
      "exec(": 2,
      "ipconfig": 1,
      "netstat": 2,
      "passthru(": 1,
      "shell_exec(": 1
   },
   "decodes": {
      "Generic_Base64Decode": 40,
      "Generic_Multiline_Base64Decode": 165
   },
   "tags": {
      "Generic_Embedding_Code_C": {
         "bind(": 2,
         "listen(": 2
      },
      "PHP_Banned_Function": {
         "exec(": 3,
         "get_current_user(": 1,
         "getmyuid(": 1,
         "link(": 7,
         "listen(": 2,
         "passthru(": 1,
         "realpath(": 1,
         "set_time_limit(": 1
      },
      "PHP_Database_Operations": {
         "mysql_query(": 1
      },
      "PHP_Disk_Operations": {
         "@chmod(": 1,
         "@filegroup(": 4,
         "@fileowner(": 4,
         "@rename(": 2,
         "fopen(": 7,
         "fwrite(": 6
      }
   }
}

ये टैग न केवल यह परिभाषित करने में मदद करते हैं कि एक वेब शेल क्या कर सकता है, बल्कि यह IR सलाहकारों जैसी टीमों को लाइव रिस्पांस एंगेजमेंट करते समय एक पिवट पॉइंट प्रदान करते हैं कि आगे कहाँ देखना है।

आवश्यकताएं

कोई नहीं! बस अपने OS के लिए बाइनरी डाउनलोड करें, वह निर्देशिका प्रदान करें जिसे आप स्कैन करना चाहते हैं (अन्य तर्क वैकल्पिक हैं) और इसे चलने दें।

बाइनरी चलाना

बिना किसी तर्क के wsa चलाने पर निम्नलिखित विकल्प दिखाई देते हैं:

root@kitploit:~
/Users/beastmode$ ./wsa
Options:
      -dir string
           Directory to scan for web shells
     -pretty
           If set to true, the analyzer will output the results in a json indented form
     -raw_contents
           If a match is found, grab the raw contents and base64 + gzip compress the file into the JSON object.
     -size int
           Specify max file size to scan (default is 10 MB) (default 10)
     -verbose
           If set to true, the analyzer will print all files analyzer, not just matches

एकमात्र आवश्यक तर्क dir है। यदि आप चाहें तो अन्य प्रोग्राम डिफ़ॉल्ट को ओवरराइड कर सकते हैं।

विश्लेषक का आउटपुट कंसोल (स्टैंडर्ड आउटपुट) पर लिखा जाएगा। नीचे उदाहरण दिया गया है (सर्वोत्तम परिणामों के लिए, stdout को एक json फ़ाइल में भेजें और ऑफ़लाइन समीक्षा/पोस्ट प्रोसेस करें):

root@kitploit:~
Linux: ./wsa -dir /opt/www
Windows: wsa.exe -dir C:\Windows\Inetput\wwwroot

### STDOUT और पूर्ण वेब शेल फ़ाइल एन्कोडेड और संपीड़ित के साथ:
Linux: ./wsa -dir /opt/www -raw_contents=true > scan_results.json

एक बार विश्लेषक समाप्त हो जाने पर, यह समग्र स्कैन मेट्रिक्स को STDOUT पर आउटपुट करेगा, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

{"scanned":311,"matches":122,"noMatches":189,"directory":"/webshell-master/php","scanDuration":1.4757737378333333,"systemInfo":{"hostname":"Beast","envVars":[""],"username":"beastmode","userID":"501","realName":"The Beast","userHomeDir":"/Users/beastmode"}}

टूल डाउनलोड करें