Fscan
English
Комплексный инструмент сканирования внутренней сети — автоматическое выявление уязвимостей одной командой.
Версия: 2.2.0
Возможности
Сканирование
- Обнаружение хостов — проверка доступности через ICMP/Ping, поддержка статистики активных хостов для больших подсетей B/C
- Сканирование портов — полное TCP-сканирование, встроенные 133 популярных порта, поддержка групп портов (web/db/service/all)
- Определение служб — интеллектуальное распознавание протоколов, поддержка сопоставления 20+ сигнатур служб
- Web-разведка — заголовки сайтов, CMS-отпечатки, веб-промежуточное ПО, определение WAF/CDN (40+ сигнатур)
Брутфорс
- Брутфорс слабых паролей — атака на 28 служб (SSH/RDP/SMB/FTP/MySQL/MSSQL/Oracle/Redis и др.)
- Pass-the-Hash — поддержка аутентификации по NTLM Hash (SMB/WMI)
- Вход по SSH-ключам — поддержка аутентификации по закрытому ключу
- Умные словари — встроенные 100+ распространённых слабых паролей, поддержка подстановки переменной {user}
Обнаружение уязвимостей
- Критические уязвимости — MS17-010 (EternalBlue), SMBGhost (CVE-2020-0796)
- Неавторизованный доступ — проверка Redis/MongoDB/Memcached/Elasticsearch и др. на отсутствие аутентификации
- POC-сканирование — встроенные веб-POC, поддержка формата Xray POC
- DNSLog — поддержка внеполосного обнаружения через DNSLog
Эксплуатация уязвимостей
- Эксплуатация Redis — запись публичного ключа, запись заданий cron, запись WebShell, RCE через master-slave репликацию
- Эксплуатация MS17-010 — инъекция ShellCode, поддержка добавления пользователей и выполнения команд
- Выполнение команд через SSH — автоматическое выполнение команд после успешной аутентификации
Локальные модули
- Сбор информации — системная информация, переменные окружения, данные домена, конфигурация сетевых адаптеров
- Получение учётных данных — дамп памяти (MiniDump), запись клавиш, экспорт реестра
- Закрепление (persistence) — Systemd-сервисы, службы Windows, планировщик задач, автозагрузка, LD_PRELOAD
- Reverse Shell — прямые (bind) и обратные (reverse) шеллы, SOCKS5-прокси
- Обнаружение антивирусов — определяет установленное на целевом хосте защитное ПО
- Очистка следов — инструменты очистки журналов
Ввод и вывод
- Ввод целей — IP/CIDR/домен/URL, поддержка пакетного импорта из файла
- Правила исключений — возможность исключать конкретные хосты и порты
- Форматы вывода — TXT/JSON/CSV
- Тихий режим — без баннера, индикатора выполнения и цветного вывода
Управление сетью
- Поддержка прокси — HTTP/SOCKS5-прокси, поддержка указания сетевого интерфейса
- Контроль отправки пакетов — ограничение скорости и максимального количества отправляемых пакетов
- Контроль тайм-аутов — независимая настройка тайм-аута портов, веб-тайм-аута и глобального тайм-аута
- Управление параллелизмом — независимая настройка потоков сканирования портов и потоков сканирования служб
Расширенные возможности
- Встраиваемый SDK —
pkg/fscan предоставляет Go SDK для встраивания в агенты или платформы безопасности; поддержка управления задачами (Pause/Resume), обратных вызовов прогресса в реальном времени и трассировки TaskID
- Веб-интерфейс управления — визуальное управление задачами сканирования (условная компиляция -tags web)
- Лабораторный полигон — встроенный Docker-полигон для тестирования и обучения
- Плагинная архитектура — сервисные/веб/локальные плагины разделены, легко расширяется
- Поддержка нескольких языков — переключение китайского и английского интерфейса (-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, удалён мёртвый код
- Оптимизация системы журналирования — сокращены вызовы LogDebug (71→18), упрощён вывод стартового журнала
Оптимизация производительности
- Предварительная компиляция регулярных выражений — глобальная предкомпиляция регулярных выражений, исключение повторных затрат на компиляцию
- Оптимизация памяти — map[string]bool заменён на map[string]struct{} для экономии памяти
- Параллельное сопоставление отпечатков — многопоточное сопоставление для ускорения идентификации
- Переиспользование соединений — переиспользование глобального dialer SOCKS5, исключение повторных рукопожатий
- Планировщик со скользящим окном — адаптивный пул потоков + потоковый итератор для оптимизации сканирования портов
- Оптимизация кэша CEL — кэширование CEL-окружения POC-сканирования, уменьшение повторной инициализации
- Выделение переменных уровня пакета — proxyFailurePatterns/resourceExhaustedPatterns/sslSecondProbes и др.
- Предварительное выделение ёмкости — упрощение цепочек преобразований, одиночная замена строк
- Оптимизация потокобезопасности — улучшена гранулярность блокировок и выделение памяти
Новые функции
- Веб-интерфейс управления — визуальное управление задачами сканирования, адаптивная вёрстка и отображение прогресса
- Поддержка 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 веб-служб в конец для пакетного тестирования
- Интеграция ядра nmap — три ключевых улучшения: стратегия зондирования / движок сопоставления / разбор версий
- Выборочная компиляция плагинов — система Build Tags, поддержка независимой компиляции сервисных/локальных/веб-плагинов
- Расширение портов по умолчанию — расширено с 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 и движка сопоставления отпечатков
- Интеграционные тесты — веб-сканирование / сканирование портов / определение служб / SSH-аутентификация / ICMP-зондирование
- Тесты CLI-аргументов — проверка разбора аргументов командной строки
- Бенчмарки производительности — benchmark для AdaptivePool и стратегий определения служб
- Тесты ResultBuffer — проверка дедупликации и оценки полноты
Инженерные улучшения
- Оптимизация CI — обновление golangci-lint до v2, упрощение этапов сборки
- Автоматизация Issues — оптимизация шаблонов GitHub Issues, автоматизация рабочего процесса 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 и Agent
- Расширение возможностей SDK, совершенствование поддержки встраивания в агенты на конечных устройствах
- Продолжение сканирования с места остановки, ограничение скорости на уровне полосы пропускания, контроль уровня памяти
- Больше примеров интеграции для сценариев Agent
Экосистема плагинов
- Постоянное расширение охвата сервисных плагинов
- Разработка дополнительных возможностей обнаружения и эксплуатации уязвимостей для каждого сервисного плагина
- Сохранение обратной совместимости API плагинов, чтобы старые POC оставались работоспособными
Fscan-lite
- Облегчённая версия, переписанная на языке C
- Меньший размер, меньше зависимостей
- Поддержка большего количества встраиваемых и ограниченных сред
- Каталог: fscan-lite
Fscan-lab
- Полигон для тестирования на проникновение во внутренние сети
- Покрывает все сценарии уязвимостей, поддерживаемые fscan
- Платформа для разработки тестов и проверки функциональности
- Среда для обучения новичков и отработки навыков
- Каталог: fscan-lab
Отказ от ответственности
Данный инструмент предназначен исключительно для легально авторизованных мероприятий по обеспечению безопасности предприятий. Перед использованием убедитесь, что вы получили разрешение и действуете в соответствии с местными законами; не сканируйте неавторизованные цели. Автор не несёт ответственности за последствия незаконного использования.
404StarLink

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

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