捕获某个端口和/或 IP 的数据包请求/响应对,以辅助创建基于网络协议的 Nuclei 模板。
▶ network-fingerprint -h
这将显示工具的帮助信息。你可以在下方找到所有支持的开关:
| 标志 | 描述 |
|---|
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> 是要捕获流量的端口。
在像 80 这样噪声较大的常见端口上运行时,如果还想按 IP 过滤,可以使用 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,以帮助轻松识别正确的指纹。
| 示例 |
|---|
| iface | 用于执行捕获的接口(默认 lo0) | network-fingerprint -iface eth0 |
| ip | 用于过滤数据包的 IP | network-fingerprint -ip 127.0.0.1 |
| port | 用于捕获数据包的端口 | network-fingerprint -port 27017 |