远程主机探测技术FAQ集 - OS识别篇
1:为什么要识别远程主机的OS?
OS识别是入侵或安全检测必要网络的紧张信息,是分析毛病和各种安全隐患的基础。只有确定了远程主机的操作系统范例,版本,才能对其安全状况做进一步评价。
2:什么能标识远程主机的OS信息?
端口及其运行的办事,主机上运行的步伐品种及版本信息,TCP/IP协议栈完成的差别等等,凡是能标明某个范例[版本]OS与其他全部差别范例[版本]OS差别的差别
均可作为标识远程主机OS信息的手段。
3:识别远程主机OS的要领都有什么?
凭据ICMP协议的使用得到TTL值: 直接对目标主机举行ping 指令将返回 TTL 值,也可以共同Tracert确定原始[或者更精确]的TTL值,这种要领相当简单,但是不精确且
不行靠,因为主机办理员可以手动修正TTL值 WINDOWS系统中只必要修正注册表的对应键值,将DefaultTTL 这个key修正即可。
获取使用步伐旗标:比如:直接对主机举行telnet 或者 Ftp 连接,缺省环境下你将得到远程主机返回的Banner信息,它将诚笃地交接本身的信息,telnet 可以直接得到一些OS的信息,FTP将得到FTP SERVER的信息,便于帮助确认远程OS。当然,这些 Banner 信息也可以很方便地被修正,因此不要太过相信它。[此要领将在“我该怎样获取远程OS及其上运行的使用步伐的旗标?”中专门指出]
使用TCP/IP协议栈指纹辨别 :[此要领将在“TCP/IP协议栈指纹辨别究竟是怎么回事?”中专门指出]必要指出:这个要领的准确性和牢靠性都很高!因为一般的办理员可不会去无认识地修正OS底层事情着的网络堆栈参数。queso,nMAP,checkOS等工具就是使用这个原理来识别远程OS。
WEB查点+综合分析:若目标主机是一台WEB主机,那么可以直接通过WWW访问它,当今很少见HTML静态页面了,许多站点都是通过一些WEB剧本[ASP PHP CGI等]搭建,通过在WEB页面上搜集的信息也可以粗略果断OS,比如ASP的剧本,那主机当然是WINDOWS系列了,通常这个要领粗略且不准确 [除非他们把主机设置装备摆设信息详细公布在WEBSITE上~:)]如今也有不少WEB站点用VMWARE等软件制作一个虚拟机环境,这给通过访问WEB来获取OS信息又形成了障碍。
交际工程探测:这个不用多讲了,与技能有关,看你的骗术高低了~:)
4:TCP/IP协议栈指纹辨别究竟是怎么回事?
协议栈指纹识别[stack fingerprinting]
此技能分两类,一类是自动识别,另一类则是主动识别
自动协议栈指纹识别
原理:由于TCP/IP协议栈技能只是在RFC 文档中描叙,并没有一个统一的行业标准,于是各个公司在编写使用于本身的OS的TCP/IP协议栈时,对RFC文档做出了不尽雷同的
解释,于是形成了各个OS在TCP/IP协议的完成上差别。比如人类的指纹,每个平凡人都有指纹,但是没有两个人的指纹是一模一样的。通过对差别 OS的TCP/IP协议栈存在的些微差别的辨别来判定OS范例[版本]的技能也就比如人们往往使用指纹来标明是否统一人一样,这种技能是目前很初级的远程OS辨别要领。最早将此技能使用于网络探测的工具是queso ,它通过一个已开放端口举行协议栈指纹识别[默认环境下是80端口],厥后这个步伐的作者Fyodor将它整和进nMAP里,作育了这一伟大扫描器的辉煌。
一般环境下nMAP要求远程主机至多开放一个端口以供密查,不过即使没有任何端口开放,nMAP也能智能果断远程OS,当然精确度要大打折扣。
关于自动协议栈指纹识别这个领域最权威的论文是Fyodor发表在Phrack杂志上的《Remote OS detection via TCP/IP Stack FingerPrinting 》
各种自动发送的探测数据包范例:
FIN 探测:凭据RFC 793文档,往目标主机上一个翻开的端口发送一个FIN分组[实在任何无ACK和SYN标志的包可以达到同样的目标],精确的响应应该是无任何响应;
但是,许多OS的TCP/IP协议栈完成上将返回一个FIN/ACK包[据笔者不完全统计有WINNT ,CISCO IOS,HP/UX,IRIX等]
BOGUS 标志探测:发送一个含有未定义的TCP标志的TCP头的SYN包,那么一些OS[比如Linux]的回应将包含这个未定义的标志,在别的一些系统收到SYN+BOGU包将封闭连接
使用这些特性可以标识一些OS。
ISN 采样探测:探求初始化序列长度模板与特定的OS匹配的要领,如许可以区分一些OS 比如早些的UNIX系统是64K长度;而一些新的UNIX系统则是随机增加长度。
[比如 Solaris,IRIX,FreeBSD,Digital Unix,Cray等)
Don't Fragement 位 探测:一些操作系统会设置IP头部 “Don't Fragement 位”[不分片位]以改进性能,监督这个位就可以判定区分远程OS
TCP 初始窗口大小 检测:简单查抄返回的包里包含的窗口大小,某些OS在TCP/IP协议栈的完成中,这个值是奇特的[AIX是0x3F25,NT和BSD是0x402E],可以增加指纹鉴另外准确度。
TCP 可选项 探测:由RFC 793,1323文档定义的TCP 可选项[比如:无操作;最大段大小MSS ;工夫戳等],使用在发送的TCP包里设定一些TCP 可选项,凭据返回包内容果断OS。在RFC 1323定义的一些初级可选项有许多在比较新的OS对TCP/IP协议栈完成中加入。
ACK 值探测:差别OS对TCP/IP协议栈实如今ACK包序列号值选择上存在差别,有些OS发送回所确认TCP包的序列号[少数环境下],另外一些则发送回所确认TCP包的序列号加1
[WINDOWS系列和一些打印机系统]
ICMP出错音讯抑制:凭据RFC 1812文档 的划定,有些OS限制ICMP出错音讯的速率;通过某个随即选定的高位端口发送UDP包,可能统计出在某个给定工夫段内担当的不行达出错音讯的数量。
ICMP音讯援用:当必要发送ICMP出错音讯时,差别OS在援用网络包的的信息量差别。通过检测所援用的音讯,可以粗略果断OS
ICMP出错音讯回射完备性:某些OS对TCP/IP协议栈的实如今返回ICMP出错音讯的时候会修正所援用的IP头,检测对IP头窜改的范例可以粗略果断OS。
TOS [办事范例]:检测ICMP端口不行达音讯的TOS字段,少数OS会是0,另一些则不是
片断处置惩罚:差别 TCP/IP协议栈实如今对重叠的片断处置惩罚上有差别。有些在重组时会用后抵达的新数据笼罩旧数据,有些则相反。
主动协议栈指纹识别
自动协议栈指纹识别由于必要自动往目标发送数据包,但这些数据包在网络流量中比较引人瞩目,因为正常使用网络不会按如许的顺序呈现包,因此比较容易被IDS捕获
为了秘密地识别远程OS,就必要使用主动协议栈指纹识别。
主动协议栈指纹识别在原理上和自动协议栈指纹识别类似,但是它从不自动发送数据包,只是主动地捕获远程主机返回的包来分析其OS范例[版本]
四种常用的主动签名[signature]:
TTL值: Time-To-Live 设置是什么
窗口大小: OS设置的窗口大小
DF: 是否设置 Don't Fragment [不分片]
TOS:设置的办事范例
主动分析这些属性并将得到的比较效果与属性库比较以果断远程OS范例[版本]
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|