3.7 KiB
Безопасная внешняя инвентаризация
Набор скриптов для аккуратной первичной инвентаризации публичных IPv4-адресов и подготовки отчетов по открытым сервисам.
Основной сценарий запускает умеренную проверку через nmap, собирает результаты в CSV/Markdown и помогает быстро выделить хосты, которые требуют ручной проверки.
Что делает основной скрипт
scripts/safe_external_inventory.sh:
- валидирует и дедуплицирует IPv4-адреса из входного файла;
- запускает
nmapпо top-20 TCP-портам; - выполняет легкое определение сервисов;
- сохраняет сырые результаты
nmap; - формирует краткие отчеты
summary.csvиsummary.md.
Скрипт намеренно не запускает агрессивные vulnerability-проверки, OS fingerprinting и полный перебор портов.
Использование
Установить nmap, подготовить входной файл со списком IPv4-адресов и запустить:
chmod +x scripts/safe_external_inventory.sh
scripts/safe_external_inventory.sh
Optional arguments:
scripts/safe_external_inventory.sh \
public_ipv4_from_master.txt \
reports/custom-run
Результаты
Каждый запуск создает отдельную папку в reports/:
targets.txt- очищенный список валидных IP-адресов;nmap_inventory.nmap- обычный выводnmap;nmap_inventory.gnmap- grepable-вывод;nmap_inventory.xml- XML для дальнейшей обработки;summary.csv- одна строка на каждый найденный открытый порт;summary.md- краткая очередь на ручную проверку.
Дополнительные скрипты
scripts/check_ssh_auth_methods.py- проверяет, какие методы SSH-аутентификации предлагает сервер.scripts/build_network_mapping.py- собирает сетевую карту по IP, PTR, httpx-результатам и данным RIPE.scripts/build_final_excel.py- формирует итоговый Excel-отчет.
Как читать результаты
В первую очередь стоит проверять хосты, у которых наружу открыты:
- несколько сервисов одновременно;
- административные порты, например SSH, RDP, WinRM или панели управления;
- устаревшие или неожиданные баннеры сервисов;
- plaintext-сервисы, например Telnet, FTP или HTTP-админки.
Результаты инвентаризации стоит использовать как очередь для ручной проверки, уточнения владельцев, ограничения доступа и дальнейшего анализа в рамках согласованного процесса.
Что не хранится в репозитории
Файлы со списками реальных IP-адресов, временные отчеты и локальные артефакты не должны попадать в репозиторий. Для этого настроен .gitignore.