Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
MSFinger — Инструмент идентификации сетевых служб Microsoft | Kitploit
Инструменты/GitHubGitHub/secorizon/msfinger
РазведкаКартирование сетиАнализ уязвимостейСбор информацииТестирование на ПроникновениеАнализ DNS
GitHubsecorizon/msfinger

MSFinger

Инструмент идентификации сетевых служб Microsoft

Репозиторий
7577 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

MSFinger — Инструмент для снятия отпечатков сетевых служб Microsoft

Версия: 1.0
Автор: Laurent Gaffie
Компания: Secorizon

Обзор

MSFinger — это высокопроизводительный инструмент для снятия отпечатков сети, предназначенный для внутренней разведки сети. Он быстро идентифицирует службы Microsoft, обнаруживает конфигурации безопасности и выделяет потенциальные уязвимости в протоколах SMB, LDAP и LDAPS.

Ключевые особенности:

  • Быстрое параллельное сканирование, оптимизированное для внутренних сетей (тайм-аут по умолчанию 1 секунда)
  • Обнаружение версий SMB/SMB2/SMB3 и подписывания
  • Обнаружение подписывания и привязки каналов LDAP/LDAPS
  • Идентификация версии ОС с сопоставлением номеров сборок
  • База данных SQLite для постоянного хранения результатов сканирования
  • Цветной вывод, выделяющий риски безопасности
  • Поддержка отдельных IP-адресов, диапазонов CIDR, диапазонов IP и ввода из файла

Установка

MSFinger написан на чистом Python. Дополнительные зависимости не требуются, кроме Python 3.6+.

root@kitploit:~
cd /path/to/MSFinger
chmod +x MSFinger.py

Использование

Базовый синтаксис

root@kitploit:~
python3 MSFinger.py -i <target> [options]

Параметры командной строки

* Должен быть указан либо -i, либо -f


Примеры

Сканирование одного хоста

root@kitploit:~
python3 MSFinger.py -i 192.168.1.10

Сканирование подсети (CIDR)

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24

Сканирование диапазона IP

root@kitploit:~
python3 MSFinger.py -i 192.168.1.1-50

Несколько диапазонов из файла

root@kitploit:~
python3 MSFinger.py -f targets.txt

Пример targets.txt:

root@kitploit:~
192.168.1.0/24
10.0.0.1-100
172.16.5.50
# Comments are supported
192.168.2.0/25

Пользовательские тайм-аут и рабочие потоки

root@kitploit:~
# Faster scan with shorter timeout and more workers
python3 MSFinger.py -i 10.0.0.0/16 -t 0.3 -w 200

# More reliable scan with longer timeout
python3 MSFinger.py -i 192.168.1.0/24 -t 1.0 -w 50

Пользовательская база данных

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24 -d pentest_2026.db

Отключение цветов (для логирования)

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24 --no-color > scan_results.txt

Формат вывода

Вывод в консоль

Результаты отображаются в реальном времени с цветовыми индикаторами безопасности:

root@kitploit:~
[192.168.1.10] SMB: 3.1.1, Signing: required, OS: Windows Server 2022 21H2, Domain: CORP.LOCAL, Boot: 2026-01-01 10:30:15 | SMB1: disabled | Services: RDP, LDAP (signing: required), LDAPS (signing: required, channel binding: required)

Цветовая кодировка

  • 🟢 ЗЕЛЁНЫЙ: Безопасная конфигурация (подписывание обязательно)
  • 🟡 ЖЁЛТЫЙ: Предупреждение (включено, но не обязательно, или порт открыт с ошибками)
  • 🔴 КРАСНЫЙ: Уязвимо (подписывание отключено или не обязательно)
  • 🔵 СИНИЙ: Информационное (SMB1 отключён, статус службы)

Поля вывода

Информация SMB:

  • SMB: X.X.X — версия диалекта SMB (2.0.2, 2.1, 3.0, 3.0.2, 3.1.1)
  • Signing: <status> — обязательно/включено/отключено
  • OS: <version> — версия Windows с номером сборки
  • Domain: <name> — имя домена/рабочей группы NetBIOS
  • Boot: <time> — время загрузки системы (или Disabled/Unknown)

Статус SMB1:

  • SMB1: disabled — SMB1 не поддерживается (безопасно)
  • SMB1: supported, Signing: <status> — SMB1 включён (потенциальный риск)

Службы:

  • RDP — Протокол удалённого рабочего стола (порт 3389) открыт
  • MSSQL — Microsoft SQL Server (порт 1433) открыт
  • LDAP (signing: <status>) — LDAP на порту 389
  • LDAPS (signing: <status>, channel binding: <status>) — LDAPS на порту 636
  • LDAPS (port open, <error>) — Порт LDAPS отвечает, но SSL-рукопожатие не удалось

Схема базы данных

MSFinger сохраняет все результаты сканирования в базе данных SQLite для постоянного хранения и анализа.

Таблица: hosts

Поведение базы данных

  • Существующая база данных: Записи обновляются последними данными сканирования (операция upsert)
  • Новая база данных: Создаётся автоматически с правильной схемой
  • Дублирующиеся IP-адреса: Последний результат сканирования перезаписывает предыдущие данные для того же IP

Запросы к базе данных

root@kitploit:~
# View all vulnerable hosts (no SMB signing)
sqlite3 MSFinger.db "SELECT ip, os_version, smb_signing FROM hosts WHERE smb_signing != 'required'"

# Find hosts with LDAP signing disabled
sqlite3 MSFinger.db "SELECT ip, domain, ldap_signing FROM hosts WHERE ldap_signing = 'not_required'"

# List all Windows Server 2022 hosts
sqlite3 MSFinger.db "SELECT ip, os_version, domain FROM hosts WHERE os_version LIKE '%Server 2022%'"

# Export to CSV
sqlite3 -header -csv MSFinger.db "SELECT * FROM hosts" > results.csv

# Count hosts by OS
sqlite3 MSFinger.db "SELECT os_version, COUNT(*) FROM hosts GROUP BY os_version"

Детали обнаружения

Обнаружение SMB/SMB2/SMB3

Проверяемые протоколы:

  • SMB1 (устаревший протокол, риск безопасности, если включён)
  • SMB2/3 (современные протоколы с несколькими диалектами)

Собираемая информация:

  1. Версия диалекта: 2.0.2, 2.1, 3.0, 3.0.2, 3.1.1
  2. Статус подписывания:
    • required — сервер требует подписывания сообщений (безопасно)
    • enabled — сервер поддерживает, но не требует подписывания
    • disabled — поддержка подписывания отсутствует (уязвимо)
  3. Версия ОС: извлекается из запроса NTLMSSP
  4. Номер сборки: номер сборки Windows для точной идентификации версии
  5. Домен: имя домена или рабочей группы NetBIOS
  6. Время загрузки: временная метка запуска системы (если доступно)

Сопоставление версий ОС:

Обнаружение LDAP (порт 389)

Проверяет анонимное подключение для определения требований к подписыванию:

  • Код результата 0: Успех — подписывание НЕ требуется (уязвимо к relay-атакам)
  • Код результата 8: Требуется строгая аутентификация — подписывание ТРЕБУЕТСЯ (безопасно)
  • Другие коды: Различные ошибки аутентификации

Обнаружение LDAPS (порт 636)

Проверяет SSL/TLS-соединение с привязкой LDAP:

  1. SSL-рукопожатие: Попытка TLS-соединения с допустимыми наборами шифров
  2. Обнаружение подписывания: Проверяет подписывание сообщений LDAP через SSL
  3. Привязка канала: Определяет, применяется ли привязка TLS-канала

Возможные результаты:

  • signing: required, channel binding: required — максимальная безопасность (безопасно)
  • signing: not_required, channel binding: not_required — защита отсутствует (уязвимо)
  • port open, SSL handshake failed — порт отвечает, но SSL-согласование не удалось
  • port open, Connection error: 104 — соединение сброшено партнёром

Анализ безопасности

Критические находки (🔴 Красный)

Подписывание SMB отключено:

  • Уязвимо к relay-атакам SMB
  • Злоумышленник может перехватывать и ретранслировать аутентификацию
  • Рекомендация: Включите подписывание SMB через групповую политику

Подписывание LDAP не требуется:

  • Уязвимо к relay-атакам LDAP
  • Учётные данные могут быть ретранслированы на другие службы
  • Рекомендация: Установите LdapEnforceChannelBinding=2 и LDAPServerIntegrity=2 в реестре

LDAPS без привязки канала:

  • Уязвимо к relay-атакам LDAPS, несмотря на шифрование
  • Рекомендация: Включите расширенную защиту для аутентификации

Предупреждения (🟡 Жёлтый)

Подписывание SMB включено (не обязательно):

  • Лучше, чем отключено, но не принудительно
  • Клиенты могут отказаться от подписывания
  • Рекомендация: Измените с «включено» на «требуется»

SMB1 поддерживается:

  • Устаревший протокол с известными уязвимостями
  • Должен быть отключён, если не требуется для устаревших систем
  • Рекомендация: Отключите SMBv1 через PowerShell или групповую политику

Хорошие конфигурации (🟢 Зелёный)

Подписывание SMB требуется:

  • Весь трафик SMB криптографически подписан
  • Предотвращает relay-атаки

Подписывание LDAP/LDAPS требуется:

  • Сообщения LDAP подписаны
  • Защищает от подмены и relay-атак

Привязка канала принудительно:

  • Привязка TLS-канала предотвращает relay через SSL
  • Самый высокий уровень безопасности LDAPS

Настройка производительности

Рекомендации по тайм-ауту

Память

Каждый рабочий поток потребляет минимум памяти (~1-2 МБ). Настройте количество потоков в зависимости от ресурсов системы:

root@kitploit:~
# High-performance scan (requires good CPU/RAM)
python3 MSFinger.py -i 10.0.0.0/8 -t 0.5 -w 500

# Conservative scan (low resource usage)
python3 MSFinger.py -i 192.168.0.0/16 -t 2.0 -w 50

Устранение неполадок

Результаты не отображаются

  1. Проверьте сетевое подключение:

    root@kitploit:~
    ping <target_ip>
    telnet <target_ip> 445
    
  2. Увеличьте тайм-аут:

    root@kitploit:~
    python3 MSFinger.py -i <target> -t 3.0
    
  3. Проверьте правила брандмауэра:

    • Убедитесь, что порты 445, 389, 636, 3389, 1433 доступны
    • Проверьте, не блокирует ли сканирование брандмауэр хоста

Ошибки подключения LDAPS

"SSL handshake failed" или "Connection error: 104":

  • Сервер может требовать аутентификацию по клиентскому сертификату
  • Сервер может использовать нестандартную конфигурацию SSL/TLS
  • Попробуйте выполнить openssl s_client -connect <ip>:636 для диагностики

База данных заблокирована

Если сканирование выполняется из нескольких процессов:

root@kitploit:~
# Use different database files
python3 MSFinger.py -i 192.168.1.0/24 -d scan1.db &
python3 MSFinger.py -i 192.168.2.0/24 -d scan2.db &

Ошибки прав доступа

Убедитесь, что скрипт является исполняемым:

root@kitploit:~
chmod +x MSFinger.py

Примеры интеграции

Интеграция с Nmap

Сначала определите живые SMB-хосты, затем снимите отпечатки:

root@kitploit:~
nmap -p445 --open -oG - 192.168.1.0/24 | awk '/445\/open/{print $2}' > smb_hosts.txt
python3 MSFinger.py -f smb_hosts.txt

Плановое сканирование

Мониторинг изменений в сети с помощью cron:

root@kitploit:~
# Add to crontab (every day at 2 AM)
0 2 * * * /usr/bin/python3 /path/to/MSFinger.py -i 192.168.1.0/24 -d /var/scans/daily_scan.db

Экспорт в PowerShell

Запрос и исправление из PowerShell:

root@kitploit:~
# Install SQLite PowerShell module
Install-Module -Name SimplySql

# Query vulnerable hosts
Open-SQLiteConnection -DataSource "MSFinger.db"
$vulnerable = Invoke-SqlQuery -Query "SELECT ip FROM hosts WHERE smb_signing != 'required'"
Close-SqlConnection

# Remediate
foreach ($host in $vulnerable) {
    Set-SmbServerConfiguration -ComputerName $host.ip -RequireSecuritySignature $true -Force
}

Авторы

Автор: Laurent Gaffie ([email protected])
Лицензия: GNU General Public License v3.0


Лицензия

Эта программа является свободным программным обеспечением: вы можете распространять её и/или изменять в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.

Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ. Подробнее см. в Стандартной общественной лицензии GNU.

Скачать инструмент
ОпцияОписаниеПо умолчанию
-i, --ipЦелевой IP-адрес, диапазон CIDR или диапазон IPОбязательно*
-f, --fileФайл, содержащий цели (по одной на строку)Обязательно*
-t, --timeoutТайм-аут подключения в секундах1.0
-w, --workersКоличество параллельных рабочих потоков100
-d, --databaseФайл базы данных SQLite для результатовMSFinger.db
--no-colorОтключить цветной выводОтключено
СтолбецТипОписание
idINTEGERПервичный ключ (автоинкремент)
ipTEXTIP-адрес (уникальный)
hostnameTEXTИмя хоста (зарезервировано для будущего использования)
os_versionTEXTВерсия операционной системы
os_buildINTEGERНомер сборки ОС
domainTEXTИмя домена/рабочей группы
boot_timeTEXTВременная метка загрузки системы
smb_dialectTEXTВерсия протокола SMB
smb_signingTEXTСтатус подписывания SMB
smb1_supportedINTEGERSMB1 включён (0=нет, 1=да)
smb1_signingTEXTСтатус подписывания SMB1
rdp_openINTEGERПорт RDP открыт (0=нет, 1=да)
mssql_openINTEGERПорт MSSQL открыт (0=нет, 1=да)
ldap_signingTEXTСтатус подписывания LDAP
ldaps_signingTEXTСтатус подписывания LDAPS
ldaps_channel_bindingTEXTСтатус привязки каналов LDAPS
ldaps_errorTEXTОшибка подключения LDAPS (если есть)
scan_timeTIMESTAMPВременная метка первого сканирования
last_seenTIMESTAMPВременная метка последнего сканирования
Диапазон сборокОперационная система
10240Windows 10 1507
14393Windows 10 1607 / Server 2016
17763Windows 10 1809 / Server 2019
19041-19045Windows 10 20H2 - 22H2
20348Windows Server 2022 21H2
22000+Windows 11
25398Windows Server 2025
Тип сетиРекомендуемый тайм-аутРабочие потоки
Быстрая внутренняя LAN (1 Гбит/с+)0.5s200-300
Обычная внутренняя сеть1.0s (по умолчанию)100-150
Медленная/беспроводная сеть2.0-3.0s50-100
VPN-соединение3.0-5.0s30-50