
python3 написанный комплексный инструмент сканирования, в основном используемый для проверки выживаемости, обнаружения конфиденциальных файлов (сканирование каталогов / утечка интерфейсов через JS / утечка комментариев в HTML), идентификация WAF/CDN, сканирование портов, идентификация отпечатков/сервисов, идентификация операционной системы, POC-сканирование, SQL-инъекции, обход CDN, запрос соседних сайтов и другие функции. В основном используется для самостоятельного тестирования заказчиком или авторизованного тестирования подрядчиком. Не используйте для разрушительных действий.
English | 简体中文
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.
Упакованы запросы.
Оптимизирована структура каталогов.
Удалён старый HTML-отчёт, теперь используется HTML-отчёт, извлечённый из Perun.
Удалён вывод результатов в JSON, теперь данные сохраняются в базу данных SQLite3; при добавлении производится дедупликация – если цель уже есть в файле .db, она пропускается.
Добавлен плагин для обнаружения утечек информации, таких как phpinfo, листьев.
В PDNS добавлен интерфейс viewdns.info.
2019.7.1
Отображение хостов, у которых пинг не прошёл.
Команда -u может принимать несколько целей, разделённых запятыми.
Исправлена ошибка в распознавании отпечатков.
2019.6.18
Исправлена проблема с неправильным распознаванием отпечатков для сайтов IIS, изменён apps.json.
Удалены некоторые сторонние библиотеки и скрипты, склонные к ошибкам.
Если сканирование завершается сразу – это потому, что программа сначала проверяет DNS-резолвинг и пинг.
При первом использовании Vxscan fake_useragent загружает список UA с https://fake-useragent.herokuapp.com/browsers/0.1.11 — может возникнуть ошибка тайм-аута загрузки.
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 показать это справочное сообщение и выйти
-u URL, --url URL Начать сканирование этого URL -u xxx.com
-i INET, --inet INET cidr, напр. 1.1.1.1 или 1.1.1.0/24
-f FILE, --file FILE читать URL из файла
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-резолвинга и пинга хоста
│ ├─save_html.py Генерация HTML-отчётов
│ ├─waf.py Правила WAF
│ ├─options.py Настройки опций
│ ├─iscdn.py Определение, является ли IP CDN на основе сегмента IP и диапазона ASN
│ ├─osdetect.py Определение версии ОС
│ ├─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
# глобальный таймаут
TIMEOUT = 5