
Помощник по генерации отпечатков (fingerprint) для сетевых шаблонов nuclei
Захват пар запрос/ответ для порта и/или IP-адреса, чтобы помочь в создании Nuclei-шаблонов на основе сетевых протоколов.
▶ network-fingerprint -h
Эта команда отобразит справку по инструменту. Ниже перечислены все поддерживаемые флаги:
| Флаг | Описание | Пример |
|---|---|---|
| iface | Интерфейс для захвата (по умолчанию lo0) | network-fingerprint -iface eth0 |
| ip | IP-адрес для фильтрации пакетов | network-fingerprint -ip 127.0.0.1 |
| port | Порт для захвата пакетов | network-fingerprint -port 27017 |
Для успешной установки network-fingerprint требуется go1.17+ и наличие установленного libpcap-dev в системе.
Для установки libpcap-dev:
▶ apt install -y libpcap-dev
▶ go install -v github.com/projectdiscovery/network-fingerprint@latest
Чтобы запустить инструмент для захвата трафика на определённом порту целевого адреса, просто выполните следующую команду.
▶ network-fingerprint -port <port>
где <port> — это порт, трафик на котором нужно захватывать.
Чтобы также фильтровать по IP при работе на более часто используемых портах, например 80, где много шума, можно использовать флаг ip.
▶ network-fingerprint -port <port> -ip <destination-ip>
Вот подробный блог, демонстрирующий возможности network-fingerprint: https://blog.projectdiscovery.io/writing-network-templates-with-nuclei/
testing@local# network-fingerprint -port 27017 -ip 127.0.0.1
2021/04/08 23:15:07 network-fingerprint: nuclei-helper by @pdiscoveryio
2021/04/08 23:15:07 [device] en0 IP: 192.168.1.9
2021/04/08 23:15:07 [device] bridge100 IP: 192.168.64.1
2021/04/08 23:15:07 [device] lo0 IP: 127.0.0.1
{
"data": "\ufffd",
"hex": "dd",
"request": true
}
{
"data": "?\u0001",
"hex": "3f01",
"response": true
}
Сообщения запросов (от клиента к цели) имеют значение request: true, а ответов (от цели к клиенту) — response: true, что помогает легко идентифицировать правильные отпечатки.