使用p0f进行操作系统探测
p0f是一款被动探测工具,通过分析网络数据包来判断操作系统类型。目前最新版本为3.06b。同时p0f在网络分析方面功能强大,可以用它来分析NAT、负载均衡、应用代理等。
p0f的命令参数很简单,基本说明如下:
l -f fname指定指纹数据库 (p0f.fp) 路径,不指定则使用默认数据库。
l -i iface 指定监听的网卡。
l -L 监听所有可用网络。
l -r fname 读取由抓包工具抓到的网络数据包文件。
l -o fname 附加之前监听的log文件,只有同一网卡的log文件才可以附加合并到本次监听中来。
l -d 以后台进程方式运行p0f ;
l -u user 以指定用户身份运行程序,工作目录会切换到到当前用户根目录下;
l -p 设置 –i参数指定的网卡为混杂模式;
l -S num 设置API并发数,默认为20,上限为100;
l -m c,h 设置最大网络连接数和同时追踪的主机数 (默认值: c = 1,000, h = 10,000).
l -t c,h 设置连接超时时间
下面使用如下命令进行测试:
p0f -i eth0 –p
上面命令的含义为监听网卡eth0,并开启混杂模式。这样会监听到每一个网络连接,部分结果摘录如下:
p0f监听结果1
p0f监听结果2
在p0f监听结果2图中,检测的结果我windows7或8,对比下nmap的结果为windows7,实际该机器系统为 windows7 sp1。
nmap检测结果
p0f监听结果3
在p0f监听结果3图中,捕获的数据是浏览器发送的请求数据,我们可以看到浏览器请求信息中“Windows NT 6.1; WOW64; Trident/7.0; rv:11.0”的字样,从这段UserAgent中,可以看出发出请求的系统为windows7 64位,IE11。
使用miranda进行操作系统探测
miranda工具是一个通过UPNP功能来探测主机信息的工具,并不限于探测操作系统。下面我们通过一个实例,演示如何使用miranda。
在终端输入如下命令:
miranda -v -i eth0
上面的命令是指定打开网卡eth0,返回结果如下:
miranda提示输入开启upnp的主机,现在我们不知道哪台主机开启了upnp,输入命令“msearch”,会自动搜索upnp主机,
接着我们会看到扫描到的upnp主机:
按 CTRL +C终止扫描,输入host list。
可以看到搜集的主机列表,然后使用host get [index]命令可以查看该主机的upnp设备列表。
使用host info [index]查看主机详细信息。
从上图信息可以看到,这是一台TP-Link路由器。同样的方法,查看一台windows 7主机。