67 lines
3.7 KiB
Markdown
67 lines
3.7 KiB
Markdown
# Безопасная внешняя инвентаризация
|
|
|
|
Набор скриптов для аккуратной первичной инвентаризации публичных IPv4-адресов и подготовки отчетов по открытым сервисам.
|
|
|
|
Основной сценарий запускает умеренную проверку через `nmap`, собирает результаты в CSV/Markdown и помогает быстро выделить хосты, которые требуют ручной проверки.
|
|
|
|
## Что делает основной скрипт
|
|
|
|
`scripts/safe_external_inventory.sh`:
|
|
|
|
- валидирует и дедуплицирует IPv4-адреса из входного файла;
|
|
- запускает `nmap` по top-20 TCP-портам;
|
|
- выполняет легкое определение сервисов;
|
|
- сохраняет сырые результаты `nmap`;
|
|
- формирует краткие отчеты `summary.csv` и `summary.md`.
|
|
|
|
Скрипт намеренно не запускает агрессивные vulnerability-проверки, OS fingerprinting и полный перебор портов.
|
|
|
|
## Использование
|
|
|
|
Установить `nmap`, подготовить входной файл со списком IPv4-адресов и запустить:
|
|
|
|
```bash
|
|
chmod +x scripts/safe_external_inventory.sh
|
|
scripts/safe_external_inventory.sh
|
|
```
|
|
|
|
Optional arguments:
|
|
|
|
```bash
|
|
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`.
|