
python3 में लिखा गया एक व्यापक स्कैनिंग टूल, मुख्य रूप से जीवितता सत्यापन, संवेदनशील फ़ाइल पता लगाने (निर्देशिका स्कैनिंग/जेएस लीक इंटरफ़ेस/एचटीएमएल टिप्पणी लीक), WAF/CDN पहचान, पोर्ट स्कैनिंग, फिंगरप्रिंट/सेवा पहचान, ऑपरेटिंग सिस्टम पहचान, POC स्कैनिंग, SQL इंजेक्शन, CDN को बायपास करना, साइड साइट क्वेरी आदि के लिए उपयोग किया जाता है। मुख्य रूप से ग्राहक पक्ष के स्व-परीक्षण या अधिकृत पक्ष के परीक्षण के लिए, कृपया विनाश के लिए उपयोग न करें।
अंग्रेज़ी | सरलीकृत चीनी
Python3 व्यापक स्कैनिंग उपकरण, मुख्य रूप से संवेदनशील फ़ाइल पहचान (निर्देशिका स्कैनिंग और js लीक इंटरफ़ेस), WAF/CDN पहचान, पोर्ट स्कैनिंग, फिंगरप्रिंट/सेवा पहचान, ऑपरेटिंग सिस्टम पहचान, कमजोर पासवर्ड पहचान, POC स्कैनिंग, SQL इंजेक्शन, CDN को बायपास, अगली साइट की जाँच के लिए उपयोग किया जाता है।
2019.8.19
gov.cn और edu.cn डोमेन नामों को स्कैन करने पर प्रतिबंध जोड़ा गया, प्रोग्राम पता लगाने पर तुरंत समाप्त हो जाएगा।
प्रोग्राम आउटपुट इंटरफ़ेस को समय + प्लगइन + डोमेन नाम + परिणाम शैली में बदलने के लिए संशोधित किया गया।
मूल SQL इंजेक्शन प्लगइन हटा दिया गया और एक कमजोर पासवर्ड पहचान प्लगइन (Mysql, Postgresql, SSH, आदि) जोड़ा गया।
Fofa की फिंगरप्रिंट पहचान लाइब्रेरी को WEBEYE के साथ जोड़ें। फिंगरप्रिंट नियम 2000+।
2019.7.19
socks5 ग्लोबल प्रॉक्सी जोड़ा गया।
requests को पैकेज किया गया।
निर्देशिका संरचना अनुकूलित की गई।
मूल html रिपोर्ट हटा दी गई, Perun से निकाली गई html रिपोर्ट का उपयोग किया गया।
json परिणाम आउटपुट हटा दिया गया, sqllite3 डेटाबेस में संग्रहीत करने के लिए समायोजित किया गया, वेयरहाउसिंग करते समय डुप्लिकेट हटाएं, स्कैनिंग के दौरान यदि लक्ष्य होस्ट पहले से db फ़ाइल में मौजूद है तो छोड़ दें।
phpinfo, leaves सामान्य जानकारी लीक स्कैनिंग प्लगइन जोड़ा गया।
Pdns में viewdns.info इंटरफ़ेस जोड़ा गया।
2019.7.1
ping विफल होने वाले होस्ट को प्रदर्शित करें।
-u कमांड में अब एकाधिक लक्ष्य जोड़े जा सकते हैं, अल्पविराम से अलग करें।
फिंगरप्रिंट पहचान त्रुटि ठीक की गई।
2019.6.18
iis वेबसाइट फिंगरप्रिंट पहचान समस्या ठीक की गई, apps.json संशोधित किया गया।
कुछ तृतीय-पक्ष लाइब्रेरी और स्क्रिप्ट हटा दी गईं जो त्रुटि प्रवण थीं।
यदि स्कैनिंग पूरी होने पर फ्लैश होता है, तो इसका कारण यह है कि प्रोग्राम पहले dns पार्सिंग और ping ऑपरेशन का पता लगाता है।
पहली बार Vxscan का उपयोग करते समय, fake_useragent https://fake-useragent.herokuapp.com/browsers/0.1.11 से ua सूची लोड करेगा, और लोड टाइमआउट त्रुटि हो सकती है।
Python संस्करण > 3.6
requests
pyfiglet
fake-useragent
beautifulsoup4
tldextract
python-nmap
geoip2
lxml
pymongo
virustotal_python
dnspython
pysocks
wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
डीकंप्रेस करने के बाद, GeoLite2-City.mmdb को vxscan/data/GeoLite2-City.mmdb में रखें।
wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-ASN.tar.gz
डीकंप्रेस करने के बाद, GeoLite2-ASN.mmdb को vxscan/data/GeoLite2-ASN.mmdb में रखें।
pip3 install -r requirements.txt
python3 Vxscan.py -h
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Start scanning this url -u xxx.com
-i INET, --inet INET cidr eg. 1.1.1.1 or 1.1.1.0/24
-f FILE, --file FILE read the url from the file
1. एक वेबसाइट स्कैन करें
python3 vxscan.py -u http://www.xxx.com/
2. फ़ाइल सूची से एक वेबसाइट स्कैन करें
python3 vxscan.py -f hosts.txt
3. cidr उदा. 127.0.0.0/24
python3 vxscan.py -i 127.0.0.0/24
├─Vxscan.py मास्टर फ़ाइल
├─data
│ ├─apps.json वेब फिंगरप्रिंट जानकारी
│ ├─apps.txt वेब फिंगरप्रिंट जानकारी (WEBEYE)
│ ├─GeoLite2-ASN.mmdb geoip
│ ├─GeoLite2-City.mmdb asn
├─doc कुछ छवि या दस्तावेज़ संसाधन रखने के लिए
├─report html रिपोर्ट से संबंधित सामग्री
├─lib
│ ├─common.py CDN, पोर्ट स्कैन, POC स्कैन आदि निर्धारित करें
│ ├─color.py टर्मिनल रंग आउटपुट
│ ├─cli_output.py टर्मिनल आउटपुट
│ ├─active.py dns रिज़ॉल्यूशन और ping ip उत्तरजीविता निर्धारित करें
│ ├─save_html.py html रिपोर्ट उत्पन्न करें
│ ├─waf.py waf नियम
│ ├─options.py विकल्प सेटिंग्स
│ ├─iscdn.py ip खंड और asn सीमा के आधार पर निर्धारित करें कि IP CDN है या नहीं
│ ├─osdetect.py OS संस्करण पहचान
│ ├─random_header.py कस्टम हैडर हैडर
│ ├─settings.py सेटिंग स्क्रिप्ट
│ ├─vuln.py बैच में POC स्कैन कॉल करें
│ ├─url.py प्राप्त कनेक्शन से डुप्लिकेट हटाएं
│ ├─verify.py स्क्रिप्ट सत्यापन इंटरफ़ेस प्रदान करती है
│ ├─sqldb.py sqlite3 से संबंधित सब कुछ यहाँ है
│ ├─Requests.py पैकेज की गई requests लाइब्रेरी, कुछ कस्टम सेटिंग्स करें
├─script
│ ├─Poc.py Poc स्क्रिप्ट
│ ├─......
├─Plugins
│ ├─ActiveReconnaissance
│ ├─active.py होस्ट उत्तरजीविता निर्धारित करें और dns रिज़ॉल्यूशन सत्यापित करें
│ ├─check_waf.py वेबसाइट waf निर्धारित करें
│ ├─crawk.py वेबसाइट लिंक क्रॉल करें और परीक्षण करें
│ ├─osdetect.py ऑपरेटिंग सिस्टम पहचान
│ ├─InformationGathering
│ ├─geoip.py स्थान खोज
│ ├─js_leaks.py js जानकारी लीक
│ ├─PassiveReconnaissance
│ ├─ip_history.py pdns इंटरफ़ेस
│ ├─reverse_domain.py साइड स्टेशन क्वेरी
│ ├─virustotal.py VT Pdns क्वेरी
│ ├─wappalyzer.py CMS निष्क्रिय फिंगरप्रिंट पहचान
│ ├─Scanning
│ ├─dir_scan निर्देशिका स्कैन
│ ├─port_scan पोर्ट स्कैन
├─requirements.txt
├─report.py html रिपोर्ट जनरेशन
├─logo.jpg
├─error.log
# coding=utf-8
# global timeout
TIMEOUT = 5
# Is the status to be excluded
BLOCK_CODE = [
301, 403, 308, 404, 405, 406, 408, 411, 417, 429, 493, 502, 503, 504, 999
]
# Set scan thread
THREADS = 100
# Content type to exclude
BLOCK_CONTYPE = [
'image/jpeg', 'image/gif', 'image/png', 'application/javascript',
'application/x-javascript', 'text/css', 'application/x-shockwave-flash',
'text/javascript', 'image/x-icon'
]
# Whether to skip directory scanning
SCANDIR = True
# Whether to start the POC plugin
POC = True
# Skip if it exists in the result db
CHECK_DB = False
# invalid 404 page
PAGE_404 = [
'page_404"', "404.png", '找不到页面', '页面找不到', "Not Found", "访问的页面不存在",
"page does't exist", 'notice_404', '404 not found'
]
# ping
PING = True
# socks5 proxy
# SOCKS5 = ('127.0.0.1', 1080)
SOCKS5 = ()
# shodan
SHODAN_API = ''
# VT
VIRUSTOTAL_API = ''
# cookie
COOKIE = {'Cookie': 'test'}
1. पोर्ट ओपन या फिंगरप्रिंट पहचान परिणामों के आधार पर POC कॉल करें
script निर्देशिका में एक नई python फ़ाइल बनाएँ, check फ़ंक्शन परिभाषित करें, पास किए गए पैरामीटर मुख्य रूप से ip पता, पोर्ट सूची, फिंगरप्रिंट पहचान सूची हैं, फिर परिणाम वापस करें:
import pymongo
from lib.verify import verify
timeout = 2
vuln = ['27017', 'Mongodb']
def check(ip, ports, apps):
# Verify is used to verify if there is a Mongodb related result in the scan list. If the port is not open, it will not be scanned.
if verify(vuln, ports, apps):
try:
conn = pymongo.MongoClient(host=ip, port=27017, serverSelectionTimeoutMS=timeout)
database_list = conn.list_database_names()
if not database_list:
conn.close()
return
conn.close()
return '27017 MongoDB Unauthorized Access'
except Exception as e:
pass
2. लक्ष्य IP के प्रत्येक खुले HTTP पोर्ट पर ट्रैवर्स करें
पास किए गए पोर्ट सेवाओं की सूची के अनुसार स्कैन किए जाने वाले url उत्पन्न करें, फिर प्रत्येक वेब पोर्ट पर उस पर जाएँ। निम्नलिखित स्क्रिप्ट ip के प्रत्येक http पोर्ट का शीर्षक प्राप्त करेगी।
from lib.verify import get_list
from lib.random_header import HEADERS
from lxml import etree
import requests
def get_title(url):
try:
r = requests.get(url, headers=HEADERS, timeout=3, verify=False)
html = etree.HTML(r.text)
title = html.xpath('//title/text()')
return url + ' | ' + title[0]
except:
pass
def check(ip, ports, apps):
result = []
probe = get_list(ip, ports)
for i in probe:
out = get_title(i)
if out:
result.append(out)
return result
फिंगरप्रिंट पहचान सुविधाएँ कैसे जोड़ें
data/apps.txt फ़ाइल की सामग्री संशोधित करें
1. HTTP हैडर हैडर से मिलान करें
Cacti|headers|Set-Cookie|Cacti=
2. HTTP प्रतिक्रिया बॉडी से मिलान करें
ASP|index|index|<a[^>]?href=('|")[^http][^>]?.asp(?|#|\1)
3. हैडर्स हैडर को k या v में मिलान करने के लिए विभाजित करें
ThinkSNS|match|match|T3_lang
360
360wzws
Anquanbao
Armor
BaiduYunjiasu
AWS WAF
AdNovum
Airee CDN
Art of Defence HyperGuard
ArvanCloud
Barracuda NG
Beluga CDN
BinarySEC
BlockDoS
Bluedon IST
CacheFly CDN
ChinaCache CDN
Cisco ACE XML Gateway
CloudFlare CDN
Cloudfront CDN
Comodo
CompState
DenyALL WAF
DenyAll
Distil Firewall
DoSArrest Internet Security
F5 BIG-IP APM
F5 BIG-IP ASM
F5-TrafficShield
Fastly CDN
FortiWeb
FortiWeb Firewall
GoDaddy
GreyWizard Firewall
HuaweiCloudWAF
HyperGuard Firewall
IBM DataPower
ISAServer
Immunify360
Imperva SecureSphere
Incapsula CDN
Jiasule
KONA
KeyCDN
ModSecurity
NGENIX CDN
NSFOCUS
Naxsi
NetContinuum
NetContinuum WAF
Neusoft SEnginx
Newdefend
Palo Alto Firewall
PerimeterX Firewall
PowerCDN
Profense
Qiniu CDN
Reblaze Firewall
SDWAF
Safe3
Safedog
SiteLock TrueShield
SonicWALL
SonicWall
Sophos UTM Firewall
Stingray
Sucuri
Teros WAF
Usp-Sec
Varnish
Wallarm
WatchGuard
WebKnight
West263CDN
Yundun
Yunsuo
ZenEdge Firewall
aesecure
aliyun
azion CDN
cloudflare CDN
dotDefender
limelight CDN
maxcdn CDN
mod_security
yunsuo
नीचे AWVS स्कैनर परीक्षण वेबसाइट के परिणाम हैं

फिंगरप्रिंट पहचान मुख्य रूप से Wappalyzer और WebEye को कॉल करती है:
https://github.com/b4ubles/python3-Wappalyzer
https://github.com/zerokeeper/WebEye
Poc संदर्भित:
BBscan स्कैनर https://github.com/lijiejie/BBScan
POC-T https://github.com/Xyntax/POC-T/tree/2.0/script
Perun https://github.com/WyAtu/Perun
पोर्ट स्कैन, सेवा निर्णय के लिए anthx संदर्भ:
https://raw.githubusercontent.com/AnthraX1/InsightScan/master/scanner.py
Js संवेदनशील जानकारी रेगेक्स निष्कर्षण संदर्भ:
https://github.com/nsonaniya2010/SubDomainizer
WAF निर्णय waf00f और whatwaf निर्णय नियमों का उपयोग करता है:
https://github.com/EnableSecurity/wafw00f
https://github.com/Ekultek/WhatWaf
html रिपोर्ट उपयोग करती है:
https://github.com/WyAtu/Perun
https://github.com/ly1102