Fscan
English
Инструмент комплексного сканирования внутренней сети с автоматическим сканированием уязвимостей в один клик.
Версия: 2.2.1
Возможности
Сканирование
- Обнаружение хостов - Проверка активности через ICMP/Ping, поддержка статистики выживших хостов в больших подсетях B/C
- Сканирование портов - Полное TCP-сканирование, 133 встроенных часто используемых порта, поддержка групп портов (web/db/service/all)
- Определение сервисов - Интеллектуальное определение протоколов, поддержка сопоставления сигнатур 20+ сервисов
- Web-разведка - Заголовки сайтов, CMS-отпечатки, Web-промежуточное ПО, определение WAF/CDN (40+ сигнатур)
Подбор паролей
- Подбор слабых паролей - Подбор 28 сервисов (SSH/RDP/SMB/FTP/MySQL/MSSQL/Oracle/Redis и др.)
- Hash-коллизии - Поддержка NTLM Hash аутентификации (SMB/WMI)
- Вход по SSH-ключу - Поддержка аутентификации по закрытому ключу
- Умные словари - 100+ встроенных распространённых слабых паролей, поддержка подстановки переменной {user}
Обнаружение уязвимостей
- Критические уязвимости - MS17-010 (EternalBlue), SMBGhost (CVE-2020-0796)
- Несанкционированный доступ - Проверка Redis/MongoDB/Memcached/Elasticsearch и др. на отсутствие аутентификации
- POC-сканирование - Встроенные Web-уязвимости POC, поддержка формата Xray POC
- DNSLog - Поддержка внешнего обнаружения через DNSLog
Эксплуатация уязвимостей
- Эксплуатация Redis - Запись публичного ключа, запись планировщика задач, запись WebShell, RCE через master-slave репликацию
- Эксплуатация MS17-010 - Внедрение ShellCode, поддержка добавления пользователей и выполнения команд
- Выполнение команд через SSH - Автоматическое выполнение команд после успешной аутентификации
Локальные модули
- Сбор информации - Системная информация, переменные окружения, информация о домене, конфигурация сетевых карт
- Получение учётных данных - Дамп памяти (MiniDump), кейлоггер, экспорт реестра
- Закрепление - Systemd-сервисы, Windows-сервисы, планировщик задач, автозагрузка, LD_PRELOAD
- Reverse Shell - Прямой Shell, обратный Shell, прокси-сервис SOCKS5
- Обнаружение антивирусов - Определение установленного на целевом хосте защитного ПО
- Очистка следов - Инструменты очистки журналов
Ввод и вывод
- Ввод целей - IP/CIDR/домены/URL, поддержка пакетного импорта из файла
- Правила исключения - Поддержка исключения конкретных хостов и портов
- Форматы вывода - Многоформатный вывод TXT/JSON/CSV
- Тихий режим - Без баннера, без индикатора прогресса, без цветного вывода
Сетевой контроль
- Поддержка прокси - HTTP/SOCKS5 прокси, поддержка указания сетевого интерфейса
- Контроль отправки пакетов - Ограничение скорости, контроль максимального количества отправляемых пакетов
- Контроль таймаутов - Независимая настройка таймаута портов, Web и глобального таймаута
- Контроль параллелизма - Независимая настройка потоков сканирования портов и сервисов
Расширенные функции
- Встраивание SDK -
pkg/fscan предоставляет Go SDK для встраивания в агенты или платформы безопасности, поддержка управления задачами (Pause/Resume), обратных вызовов прогресса в реальном времени, отслеживания TaskID
- Web-интерфейс управления - Визуальное управление задачами сканирования (условная компиляция -tags web)
- Лабораторная среда - Встроенная Docker-лаборатория для тестирования и обучения
- Плагинная архитектура - Разделение плагинов сервисов/Web/локальных плагинов, лёгкое расширение
- Многоязычная поддержка - Переключение интерфейса китайский/английский (-lang zh/en)
- Статистика производительности - Отчёт о производительности в формате JSON (-perf)
Журнал изменений v2.1.0
Это обновление включает 262 коммита, охватывающих 30 новых функций, 120 исправлений, 54 рефакторинга, 14 оптимизаций производительности и 20 улучшений тестирования.
Архитектурный рефакторинг
- Устранение глобальных переменных - Миграция на объекты Config/State для повышения потокобезопасности и тестируемости
- Объединение SMB-плагинов - Интеграция smb/smb2/smbghost/smbinfo в единый плагин, добавлен smb_protocol.go
- Рефакторинг определения сервисов - Реализация механизма fallback в стиле Nmap, оптимизация стратегии идентификации отпечатков портов
- Рефакторинг системы вывода - Запись TXT в реальном времени + механизм двойной записи, решение проблем потери и неупорядоченности результатов
- Обновление фреймворка i18n - Миграция на go-i18n, полное покрытие модулей core/plugins/webscan
- Рефакторинг HostInfo - Поле Ports изменено с string на int для типобезопасности
- Оптимизация сложности функций - clusterpoc (125→30), EnhancedPortScan (111→20)
- Аудит кода - Исправление проблем уровня P0-P2, очистка deadcode
- Оптимизация системы журналирования - Очистка вызовов LogDebug (71→18), упрощение вывода журнала запуска
Оптимизация производительности
- Предварительная компиляция регулярных выражений - Предварительная компиляция глобальных регулярных выражений для избежания повторных затрат на компиляцию
- Оптимизация памяти - Замена map[string]bool на map[string]struct{} для экономии памяти
- Параллельное сопоставление сигнатур - Многопоточное параллельное сопоставление для ускорения идентификации
- Повторное использование соединений - Повторное использование глобального dialer SOCKS5 для избежания повторного рукопожатия
- Планирование со скользящим окном - Адаптивный пул потоков + потоковый итератор для оптимизации сканирования портов
- Оптимизация кэша CEL - Кэширование окружения CEL для POC-сканирования, уменьшение повторной инициализации
- Извлечение переменных уровня пакета - proxyFailurePatterns/resourceExhaustedPatterns/sslSecondProbes и др.
- Предварительное выделение ёмкости - Упрощение цепочек преобразований, однократная замена строк
- Оптимизация потокобезопасности - Оптимизация гранулярности блокировок и выделения памяти
Новые функции
- Web-интерфейс управления - Визуальное управление задачами сканирования, адаптивный макет и отображение прогресса
- Адаптация POC в нескольких форматах - Поддержка POC форматов xray и afrog
- Умный режим сканирования - Дедупликация фильтром Блума + оптимизация прокси
- Расширенная база сигнатур - Интеграция FingerprintHub (3139 сигнатур)
- Идентификация Favicon - Поддержка сопоставления хэшей в форматах mmh3 и MD5
- Универсальный извлекатель версий - Автоматическое извлечение информации о версиях сервисов
- Сортировка приоритетов сигнатур - Умная сортировка результатов сопоставления
- Интеллектуальное определение протоколов - Автоматическое определение типов протоколов HTTP/HTTPS
- Функция указания сетевого интерфейса - Поддержка сценариев VPN (параметр -iface)
- Файл исключения хостов - Поддержка чтения исключаемых хостов из файла (параметр -ehf)
- Ограничение скорости ICMP через token bucket - Предотвращение сбоя маршрутизаторов при высокоскоростном сканировании
- Повтор сканирования портов - Механизм автоматического повторного сканирования при сбоях
- Реальная аутентификация RDP - Интеграция библиотеки grdp для идентификации системных отпечатков
- Списки файлов SMB/FTP - Автоматическое перечисление файлов при анонимном доступе
- Двойная идентификация 302-редиректов - Одновременная идентификация сигнатур исходного ответа и ответа после перенаправления
- Сводка URL в TXT-выводе - Добавление списка URL Web-сервисов в конец для пакетного тестирования
- Интеграция ядра nmap - Три основных улучшения: стратегия зондирования/движок сопоставления/анализ версий
- Выборочная компиляция плагинов - Система Build Tags, поддержка независимой компиляции плагинов сервисов/локальных/Web
- Расширение портов по умолчанию - Расширение с 62 до 133 часто используемых портов
- Поддержка сканирования всех портов - Расширение ограничений диапазона портов
- Контроль HTTP-редиректов - Настраиваемое ограничение количества перенаправлений
- Поддержка анализа производительности - Добавление анализа производительности pprof и benchmark-тестов
- Статистика TCP-пакетов - Плагины сервисов поддерживают статистику отправки TCP-пакетов
Исправления ошибок (120, перечислены ключевые)
- Паника из-за нулевого указателя RDP - Исправление сбоя при разборе сертификатов (#551)
- Пропуски при массовом сканировании - Исправление проблемы пропуска при крупномасштабном сканировании (#304)
- Формат JSON-вывода - Исправление ошибки формата вывода (#446)
- Обнаружение слабых паролей Redis - Исправление проблемы пропуска обнаружения (#447)
- Сохранение результатов в реальном времени - Исправление проблемы несвоевременного сохранения результатов сканирования (#469)
- Переполнение при разборе nmap - Исправление ошибки разбора восьмеричных escape-последовательностей (#478)
- Гонка при идентификации сигнатур - Исправление проблем гонки webtitle/webpoc (#474)
- Проверка соединения MySQL - Переход на проверку через базу information_schema
- Неверное определение прокси-портов - Исправление ошибки определения состояния портов в режиме прокси
- Таймаут Context - Исправление 22 случаев отсутствия ответа плагинов по таймауту
- Условия гонки ICMP - Исправление проблем конкуренции при параллельном сканировании
- Формат адресов IPv6 - Исправление 4 проблем форматирования адресов
- Зависание POC при высокой нагрузке - Исправление проблемы непередачи Context
- Потеря результатов при Ctrl+C - Добавление обработки сигналов для гарантии записи результатов
- Полный эхо-ответ SOCKS5 - Добавление проверки прокси-соединения
- Утечка при определении сервисов - Исправление проблемы некорректного закрытия соединений
- Отбрасывание ответов webtitle - Исправление проблемы потери части данных ответа, приводящей к сбою идентификации
- Отсутствие информации об уязвимостях в TXT - Исправление пропуска деталей уязвимостей в выводе
- Отсутствие сигнатур в JSON - Унификация формата Target для результатов SERVICE
- Отображение времени сканирования - Исправление проблемы отображения нулевого времени завершения
- Ложные записи об уязвимостях - Рефакторинг системы TXT-вывода для устранения ложных срабатываний
- Кроссплатформенные пути Redis - Исправление проблем путей и таймаутов в функции эксплуатации
- Предупреждения компиляции Windows - Исправление совместимости платформ fscan-lite
Улучшения тестирования (20)
- Модульные тесты - Покрытие ключевых модулей 74-100%
- Тесты потокобезопасности - Специальные тесты объекта State и движка сопоставления сигнатур
- Интеграционные тесты - Web-сканирование/сканирование портов/определение сервисов/SSH-аутентификация/ICMP-зондирование
- Тесты CLI-параметров - Проверка разбора аргументов командной строки
- Тесты производительности - Benchmark AdaptivePool и стратегии определения сервисов
- Тесты ResultBuffer - Проверка дедупликации и оценки полноты
Инженерные улучшения
- Оптимизация CI-процесса - Обновление golangci-lint до v2, упрощение шагов сборки
- Автоматизация Issue - Оптимизация шаблонов GitHub Issue, автоматизированный рабочий процесс Project
- Полное исправление Lint - revive/errcheck/shadow/staticcheck/gosimple полностью пройдены
- Переписывание README - Полное обновление документации на китайском и английском
- Унификация форматирования кода - Нормализация gofmt/goimports
Быстрый старт
# Сканирование подсети C
./fscan -h 192.168.1.1/24
# Указание портов
./fscan -h 192.168.1.1 -p 22,80,443,3389
# Только обнаружение активности
./fscan -h 192.168.1.1/24 -ao
# Отключение подбора паролей
./fscan -h 192.168.1.1/24 -nobr
# Web-сканирование
./fscan -u http://192.168.1.1
# Локальные плагины
./fscan -local systeminfo
# Hash-коллизии
./fscan -h 192.168.1.1 -m smb2 -user admin -hash xxxxx
# Запись публичного ключа Redis
./fscan -h 192.168.1.1 -m redis -rf id_rsa.pub
Компиляция
# Стандартная компиляция
go build -ldflags="-s -w" -trimpath -o fscan .
# С Web-интерфейсом управления
go build -tags web -ldflags="-s -w" -trimpath -o fscan-web .
Установка
# Arch Linux
yay -S fscan-git
Скриншоты запуска
fscan.exe -h 192.168.x.x


fscan.exe -h 192.168.x.x -rf id_rsa.pub (запись публичного ключа Redis)

fscan.exe -h 192.168.x.x -m ssh -user root -pwd password

fscan.exe -h 192.168.x.x -m ssh -user root -pwda pass1 pass2 pass3 (добавление нескольких паролей)
fscan.exe -h 192.168.x.x -p80 -proxy http://127.0.0.1:8080

fscan.exe -h 192.168.x.x -socks5 socks5://user:[email protected]:1080 (прокси SOCKS5 с аутентификацией)
fscan.exe -h 192.168.x.x -p 139 -m netbios


fscan.exe -h 192.0.0.0/8 -m icmp



Дорожная карта
План обновлений
- Цикл обновлений - Ежемесячный выпуск версий
- Первые две недели - Разработка новых функций и обновление возможностей
- Вторые две недели - Исправление ошибок и интеграция кода
- Приветствуются PR - Ждём вашего вклада!
Интеграция SDK и агентов
- Расширение возможностей SDK, улучшение поддержки встраивания в агенты на стороне конечных устройств
- Возобновление сканирования с точки прерывания, ограничение скорости на уровне полосы пропускания, контроль уровня памяти
- Больше примеров интеграции для сценариев агентов
Экосистема плагинов
- Постоянное расширение охвата плагинов сервисов
- Разработка дополнительных возможностей обнаружения и эксплуатации уязвимостей для каждого плагина сервиса
- Сохранение обратной совместимости API плагинов для обеспечения постоянной работоспособности старых POC
Fscan-lite
- Облегчённая версия, переписанная на C
- Меньший размер, меньше зависимостей
- Поддержка большего количества встраиваемых/ограниченных сред
- Каталог: fscan-lite
Fscan-lab
- Лабораторная среда для пентеста внутренней сети
- Покрытие всех сценариев уязвимостей, поддерживаемых fscan
- Платформа для разработки, тестирования и проверки функций
- Среда для обучения новичков и отработки навыков
- Каталог: fscan-lab
Отказ от ответственности
Данный инструмент предназначен только для легально авторизованных действий по обеспечению безопасности корпоративных систем. Перед использованием убедитесь, что вы получили авторизацию и действуете в соответствии с местными законами и нормативными актами. Не сканируйте неавторизованные цели. Автор не несёт ответственности за последствия незаконного использования.
404StarLink

fscan является проектом-участником 404Team StarLink Plan 2.0.
Тренд звёзд

Пожертвования
Угостите автора напитком
Ссылки