第七章(七)—主动信息收集—操作系统识别(TTL起始值、nmap、xprobe、被动识别p0f)

操作系统识别

目标:
通过对操作系统的扫描,识别操作系统的类型和使用的版本。
目的:
扫描端口后面服务的目的是发现应用服务的版本;通过应用服务版本的信息来判断这个版本上是否存在有漏洞,如果存在漏洞的话,我们可以利用这些漏洞进行渗透测试。
无论是windows、linux、unix,默认安装之后,都会默认开放一些端口,通过扫描操作系统的版本,可以识别这些默认开放的服务和端口上面存在的漏洞,可以利用操作系统本身自带的漏洞,也有可能进入到目标系统。

操作系统识别技术:
种类繁多,
最简单的识别方法是通过ttl值。

1. TTL起始值

不同类型的操作系统,默认的起始ttl值是不同的。但是也不够准确,目标服务器可以伪造自己的操作系统类型,难度较大,但是可以实现。

  • windows:128(65-128)
  • linux/unix:64(1-64)
  • 某些Unix:255

也可以通过python编程来实现对ttl值抓取的判断。
ttl_os.py脚本:

#!/usr/bin/python
from scapy_all import *
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
import sys

if len(sys.argv)!=2;
	print "Usage - ./ttl_os.py [IP Address]"
	print "Example - ./ttl_os.py 10.0.0.5"
	print "Example will perform ttl analysis to attempt to determine whether the system is Windows or Linux/Unix"
	sys.exit()

ip=sys.argv[1]

ans=sr1(IP(dst=str(ip))/ICMP(),timeout=1,verbose=0)
if ans == None;
	print "No response was returned"
elif int(ans[IP].ttl)<=64;
	print "Host is Linux/Unix"
else:
	print "Host is Windows"

在这里插入图片描述

2. nmap

nmap 1.1.1.1 -O
#-O 判断操作系统具体的版本

3. xprobe

是一个专门用来识别操作系统的工具,得出的结果并不精确。

xprobe2 1.1.1.1

4. 被动操作系统识别

扫描器不主动向目标ip发包。
工作原理:
基于网络抓包、网络监听。
不同的操作系统发出去的包都是不一样的,比如linux和windows的ping包。不同的linux发出来的包也不尽相同,通过差别可以判断。

被动式扫描,你可以把他部署在网络出口的地方,凡是有进出的数据包,可以通过抓包或交换机做镜像端口或地址欺骗抓包,总之让这些数据包流经到我被动扫描器的主机上,被动扫描器所在主机上面可以运行一个被动操作系统扫描的软件,通过这个软件去分析收到的包,通过这些包里面的特征来判断ip分别是什么样的操作系统。

工具:
p0f
可结合ARP地址欺骗识别全网OS

p0f
#然后被动触发流量
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值