编程实现

p0f被动流量指纹识别[未完成]

p0f 是一个被动探测工具,用于被动式获取操作系统指纹以识别远程主机操作系统。从IPv4 和 IPv6 标头、TCP 标头、数据中提取内容。

对于 TCP/IP,该工具对源自客户端的 SYN 数据包和来自服务器的第一个 SYN+ACK 响应进行指纹识别,同时关注TCP 选项的顺序、最大分段大小和窗口大小之间的关系、 TCP 时间戳、以及十几个特殊的状态数据来确定远程连接的相关信息。

该工具可以在前台运行或作为守护进程运行,并提供简单的实时API。

安装(debian 11)

ShellSession
apt install git libpcap-dev -y
git clone https://github.com/ValdikSS/p0f-mtu.git
cd p0f-mtu
./build.sh

一些命令

1.列出所有接口
  ./p0f -L
2. p0f运行
  ./p0f -i eth0 -o /root/p0f-3.09b/p0f.log -s /root/p0f-3.09b/p0f-socket -d -S 100 "port 80 or port 443"
    -f 读取指定位置的指纹配置文件 (默认是 p0f.fp)
    -i 指定网络接口
    -o 将日志写入指定文件
    -s 侦听指定套字节上的API查询
    -d 以守护模式运行, 此模式需要指定 -o 或 -s
    -S 设置同时API连接的最大数量,默认为20,最大为100

  此外,命令行最后允许语法为pcap-filter的单个参数进行过滤数据包
  "port 80 or port 443" 仅识别80或443端口的数据包

3. 查找进程并退出
  ps -ef | grep p0f
  kill 14197

原作者 Michal Zalewski 官网及相关资料:

来自 俄罗斯 ValdikSS 的演示代码实现

python的API客户端实现

php的API客户端实现

Leave a Reply

Your email address will not be published. Required fields are marked *