为什么识别操作系统呢?
因为操作系统安装之后默认情况下会开放端口,我们可以根据扫描操作系统的版本知道默认开放的服务和端口。
原理:
通过ttl值识别,不同类型的操作系统起始值是不同的,win的ttl是128(65-128)(1-64)是Linux活unigx,某些特殊的版本可能是255。每次经过一个路由器ttl会减一。所以根据数据包发送的目标地址,在目标主机上抓取收到的数据包的ttl值可以判断数据包经过几次路由器。
主动扫描:
nmap:
root@kali:~# nmap 192.168.19.132 -O //-O大写
xprobe:
root@kali:~# xprobe2 192.168.191.32
结果不太可靠。
被动扫描:
p0f:
命令执行之后,开始进行监听数据包(与本机进行交互的数据包),根据数据包判断目标IP以及操作系统类型。
snmp:
简单网络管理协议,他的通信走的udp161 和162,被查询的服务端使用的是161端口,客户端查询机器使用的是162端口,snmp可以查看设备的很多详细信息(内存大小、cpu情况)。
工作原理:
客户端需要有一个MB库,根据MB库对服务端进行查询。
首先我们需要在win03中安装snmp服务:
SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
snmp中的团体(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。类似于密码,默认值为 public。团体名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理 员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。