
बहु-सूत्र भेद्यता सत्यापन ढाँचा
ZEROScan एक मल्टी-थ्रेडेड भेद्यता पहचान फ्रेमवर्क है। इसके माध्यम से आसानी से भेद्यता पहचान प्लगइन प्राप्त या विकसित किए जा सकते हैं, जिससे लक्ष्य पर पेनिट्रेशन टेस्ट किया जा सकता है। इंटरफ़ेस और उपयोग के तरीके को metasploit-framework फ्रेमवर्क से प्रेरित किया गया है, जिससे इसे उपयोग करना और प्लगइन विकसित करना आसान है।
$ git clone https://github.com/zer0yu/ZEROScan.git
या आप नवीनतम zip स्रोत पैकेज डाउनलोड करके अनज़िप करके स्थापित कर सकते हैं:
$ wget https://codeload.github.com/zer0yu/ZEROScan/zip/master
$ unzip ZEROScan-master.zip
➜ ZEROScan git:(master) ✗ python z-console.py
____________ _____ ____ _____
|___ / ____| __ \ / __ \ / ____|
/ /| |__ | |__) | | | | (___ ___ __ _ _ __
/ / | __| | _ /| | | |\___ \ / __/ _` | '_ \
/ /__| |____| | \ \| |__| |____) | (_| (_| | | | |
/_____|______|_| \_\\____/|_____/ \___\__,_|_| |_|
+ -- --=[ ZEROScan - 1.0 ]
# help कमांड चलाकर आप प्रत्येक पैरामीटर का विवरण देख सकते हैं।
ZEROScan > help
Core Commands
=============
Command Description
------- -----------
run Run current plugin
help Help menu
use <plugin> Select a plugin by name
update Update the framework
search <keyword> Search plugin names and descriptions
set <option> <value> Set a variable to a value
info <plugin> Display information about one plugin
list List all plugins
version Show the framework version numbers
exit Exit the console
options Display options for current plugin
# list कमांड का उपयोग करके वर्तमान में सभी प्लगइन प्रदर्शित करें
ZEROScan > list
\Modules
=======
expName appName appVersion description
--------- --------- ------------ -----------------------------
demo PHP 1230 PH1424/down.php SQL Injection
# info कमांड का उपयोग करके संबंधित प्लगइन का विस्तृत विवरण देख सकते हैं
ZEROScan > info demo
appName: PHP
appVersion: 1230
Author:
123
Description:
PH1424/down.php SQL Injection
Reference:
http://124.xyz/
# use कमांड का उपयोग करके कॉल किए जाने वाले प्लगइन को निर्दिष्ट करें
ZEROScan > use demo
# options कमांड का उपयोग करके इस प्लगइन के लिए सेट किए जाने वाले संगत विकल्प देखें
ZEROScan exploit(demo) > options
# बैच स्कैन के लिए फ़ाइल को target निर्देशिका में रखा जाना चाहिए
# बैच स्कैन के लिए फ़ाइल को सीधे पैरामीटर url के रूप में फ़ाइल नाम दें (txt अंत जोड़ने की आवश्यकता नहीं)
Name Current Setting Required Description
------ ----------------- ---------- --------------------------
URL 1 URL or URL file
Thread 1 0 Threads
Cookie 0 Cookie
Report False 0 do you need a html report?
# set कमांड का उपयोग करके सेट करें
ZEROScan exploit(demo) > set URL ww.baidu.com
URL => ww.baidu.com
# run कमांड का उपयोग करके संबंधित प्लगइन निष्पादित करें
ZEROScan exploit(demo) > run
[!]exploit target:'ww.baidu.com'
[!]Requesting target site:ww.baidu.com
+--------------+------------+-------------+
| target-url | poc-name | status |
+==============+============+=============+
| ww.baidu.com | demo | test_plugin |
+--------------+------------+-------------+
success : 1
# अंतिम परिणाम output निर्देशिका में txt फ़ाइल में सहेजे जाते हैं
ZEROScan exploit(demo) >
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
from lib.core import log
# thirdparty से requests लाइब्रेरी आयात की जा सकती है
#from thirdparty import requests
# expInfo() आवश्यक फ़ंक्शन है, यहाँ निम्न जानकारी भरनी होगी
def expInfo():
expInfo={}
expInfo["appName"] = "PHP"
expInfo["appVersion"] = "123"
expInfo["author"] = "Z3r0yu"
expInfo["description"] = "PHPxxx/down.php SQL Injection"
expInfo["references"] = "http://zeroyu.xyz/"
expInfo["options"] = [
{
"Name": "URL",
"Current Setting": "",
"Required": True,
"Description": "URL or URL file"
},
{
"Name": "Thread",
"Current Setting": "1",
"Required": False,
"Description": "Threads"
},
{
"Name": "Cookie",
"Current Setting": "",
"Required": False,
"Description": "cookie"
},
{
"Name": "Report",
"Current Setting": "",
"Required": False,
"Description": "do you need a html report?"
},
]
return expInfo
# प्लगइन में आप अपनी इच्छित कोई भी फ़ंक्शन परिभाषित कर सकते हैं
def yourDefinition():
return "test_plugin"
# exploit(target, headers=None) निष्पादन फ़ंक्शन है, यह अनिवार्य है और इसे दो पैरामीटर देने होंगे
# target पैरामीटर लक्ष्य निर्दिष्ट करने के लिए, headers यादृच्छिक UA लागू करने के लिए उपयोग किया जा सकता है
def exploit(target, headers=None):
log.process("Requesting target site:"+ target)
# वापस लौटाएं जो चाहते हैं
# लेकिन फ्रेमवर्क उन स्कैन को सफल मानकर प्रदर्शित करेगा जिनमें return मान होता है
return yourDefinition()
यह सॉफ़्टवेयर केवल अध्ययन और आदान-प्रदान के लिए है। कृपया अवैध उद्देश्यों के लिए इसका उपयोग न करें, अन्यथा होने वाले परिणामों के लिए लेखक जिम्मेदार नहीं है।