p0f采用被动的方式方法探测目标主机的操作系统类型。
这个工具可以识别以下几种机器:
~~~
链接到你主机的机器 (SYN,默认模式)
你的主机可访问的机器 (SYN+ACK模式)
你的主机不能访问的机器 (RST模式)
你可以监控到其网络通信的机器
~~~
这个程序通过自身发出的TCP包分析操作系统类型。
通过ping数据包和TTL的长度判断windows和linux。
**p0f的命令参数很简单,基本说明如下:**
~~~
-f fname 指定指纹数据库 (p0f.fp) 路径,不指定则使用默认数据库。
-i iface 指定监听的网卡。
-L 监听所有可用网络。
-r fname 读取由抓包工具抓到的网络数据包文件。
-o fname 附加之前监听的log文件,
只有同一网卡的log文件才可以附加合并到本次监听中来。
-d 以后台进程方式运行p0f ;
-u user 以指定用户身份运行程序,
工作目录会切换到到当前用户根目录下;
-p 设置 –i参数指定的网卡为混杂模式;
-S num 设置API并发数,默认为20,上限为100;
-m c,h 设置最大网络连接数和同时追踪的主机数
(默认值: c = 1,000, h = 10,000).
-t c,h 设置连接超时时间
~~~
实际运用:
`p0f -i eth0 -p`
然后,再与要探测的机器建立TCP链接,即可猜测目标主机操作系统了。