
Многодвигательный сканер уязвимостей со встроенными движками Nuclei Lite, Afrog и XRay. Включает обнаружение активов через FOFA/Shodan, обнаружение взаимодействий OOB, систему плагинов на Python и управление результатами в реальном времени для операций Red Team.
OmniScan — это легковесный, многодвигательный сканер уязвимостей на Python, разработанный для операций Red Team и исследований в области безопасности. Он объединяет облегчённый движок Nuclei (Lite) и движок Afrog, предоставляя мощные возможности сбора активов и управления результатами.
simpleeval вместо eval и выполняет DSL-выражения в изолированной среде для предотвращения выполнения вредоносных шаблонов.{{lang-file}} → etc/passwd), поддерживает интеллектуальный фаззинг.hmac, gzip, reverse, rand_base и др.).flow и req-condition.cookie-reuse и управление перенаправлениями redirects.Interactsh для автоматической обработки уязвимостей без прямого отклика (например, Blind RCE, SSRF).tqdm для отображения хода сканирования каждого плагина на каждой цели в реальном времени.BasePlugin и реализовать метод check(url).git_config.py: обнаружение утечки .git/configspring_boot.py: обнаружение Spring Boot Actuatords_store.py: обнаружение утечки .DS_Storephpinfo.py: обнаружение страницы phpinfo()backup_files.py: обнаружение распространённых файлов резервных копий (.bak, .zip и т.д.)swagger_ui.py: обнаружение документации Swagger UIcountry="CN").asyncio и aiohttp.interactsh-client. (Я уже загрузил interactsh-client.zip, вы можете просто распаковать его в этот каталог.)xxx.oast.pro).{{interactsh-url}} в шаблонах на полученную в реальном времени полезную нагрузку.Клонирование репозитория:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
Установка зависимостей:
pip3 install -r requirements.txt
Настройка инструментов (опционально):
Afrog или XRay, убедитесь, что соответствующие исполняемые файлы находятся в корневом каталоге проекта или в системном PATH.config.yml (опционально) для задания API-ключей и параметров сканирования.Сканирование одного URL:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
Поиск активов через FOFA и сканирование с помощью Nuclei Lite:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
Чтение целей из urls.txt и сканирование:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
python3 omniscan.py -l urls.txt --tool lite -T ./templates/python3 omniscan.py -l urls.txt --tool afrogpython3 omniscan.py -l urls.txt --tool xrayЗапуск без параметра --tool для входа в интерактивное меню выбора инструмента:
python3 omniscan.py -l urls.txt
Сканирование Blind RCE-уязвимостей (автоматическое включение Interactsh):
python3 omniscan.py -l urls.txt --tool lite -T ./templates/blind-rce.yaml
При обнаружении OOB-взаимодействия консоль выведет [OOB DETECTED] и запишет уязвимость.
Использование движка Nuclei Lite со всеми плагинами:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugins
Запуск только плагинов Git Config и PHPInfo:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugin-file plugins/git_config.py,plugins/phpinfo.py
Без фактического сканирования, только проверка совместимости шаблонов:
python3 omniscan.py --classify-only --tool lite -T ./templates/
config.yml)app:
lite_timeout: 10 # Таймаут запроса (сек)
lite_threads: 10 # Количество параллельных потоков
use_async: true # Включить асинхронный режим
user_agents: # Пул пользовательских User-Agent
- "Mozilla/5.0..."
fofa:
email: "your_email"
key: "your_key"
shodan:
api_key: "your_key"
output:
formats: ["json", "csv", "html"] # Форматы отчётов
omniscan.py: Главный вход программы, разбор параметров и планирование задач.nuclei_lite.py: Ядро Nuclei Lite, реализация разбора YAML-шаблонов и сканирования.result_manager.py: Модуль управления результатами, обработка дедупликации и генерации отчётов.database.py: Управление базой данных SQLite.config.py: Модуль загрузки конфигурации.В: Что означает [OOB DETECTED]?
О: Это означает, что сканер успешно обнаружил внешнее (Out-of-Band) взаимодействие. Обычно это указывает на то, что цель инициировала callback DNS или HTTP, что доказывает наличие уязвимости Blind RCE, SSRF или Blind SQLi.
В: Как настроить API FOFA/Shodan?
О: Вы можете указать API-ключи в файле config.yml или через переменные окружения FOFA_EMAIL, FOFA_KEY, SHODAN_API_KEY.
В: Какие операционные системы поддерживаются? О: OmniScan кроссплатформенный, поддерживает Linux, macOS и Windows. Внешние инструменты (например, afrog, interactsh-client) должны быть исполняемыми в текущей системе.
MIT License
| Параметр | Описание | Пример |
|---|
-u URL | Сканирование одного URL | -u http://example.com |
-f | Поиск активов через FOFA | -f 'country="CN"' |
-s | Поиск активов через Shodan | -s 'apache' |
-l FILE | Указание локального файла с целями | -l targets.txt |
-T TEMPLATE | Путь к шаблонам Nuclei (файл/каталог) | -T ./templates/ |
--tool NAME | Инструмент сканирования (nuclei/afrog/xray/lite) | --tool lite |
--severity | Уровни критичности (по умолчанию critical,high) | --severity high,medium |
--plugins | Включить сканирование плагинов Python (каталог plugins/) | --plugins |
--plugin-file FILE | Запуск конкретных файлов плагинов (через запятую) | --plugin-file plugins/test.py |
--new | Сканирование только новых шаблонов (требуется поддержка Nuclei) | --new |
--no-resume | Отключение возобновления с прерванного места | --no-resume |
--verbose | Подробный отладочный вывод | --verbose |