如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 论文范文 > 论文格式 > 基于VC++平台的远程主机操作系统探测技术的应用与开发

基于VC++平台的远程主机操作系统探测技术的应用与开发

来源:免费论文网 | 时间:2019-09-26 13:36:27 | 移动端:基于VC++平台的远程主机操作系统探测技术的应用与开发

基于VC++平台的远程主机操作系统探测技术的应用与开发 本文关键词:探测,操作系统,主机,开发,平台

基于VC++平台的远程主机操作系统探测技术的应用与开发 本文简介:摘要:介绍了基于VC++平台的远程主机操作系统探测技术的应用,对常见的远程主机操作系统探测技术作了较为详尽的论述,比较了这些技术的特点和不足,最后借鉴和吸取nmap思想,通过理解吸收,采用动态链接库技术对一个破解系统中的远程主机操作系统探测模块的进行开发。论文关键词:反求工程,逆向,网络安全  近

基于VC++平台的远程主机操作系统探测技术的应用与开发 本文内容:

摘要:介绍了基于VC++平台的远程主机操作系统探测技术的应用,对常见的远程主机操作系统探测技术作了较为详尽的论述,比较了这些技术的特点和不足,最后借鉴和吸取nmap思想,通过理解吸收,采用动态链接库技术对一个破解系统中的远程主机操作系统探测模块的进行开发。
论文关键词:反求工程,逆向,网络安全
  近年来,远程操作系统探测技术被越来越多的运用于网络安全评估软件的开发,它作为一种网络扫描器的应用技术,需要能够避免错误的探测结果 、避免影响(或被影响于)防火墙和入侵检测系统,并且可以允许大范围的网络扫描。而不管其作为网络安全评估工具或者是网络漏洞扫描器,都需要利用网络通信协议工作的特点来实现获取远程主机操作系统的信息。本文是通过对基于VC++平台的网络服务口令破解系统开发中所采用的远程操作系统探测技术应用提出自己的想法。
  2.探测工具中使用的远程主机操作系统探测技术
  在很多探测工具中是通过获取标识信息技术来获得某些服务的标识信息,这往往是通过对二进制文件的收集和分析来实现的。另外还可以通过TCP分段(标准/非标准)的响应分析,这是依靠不同操作系统对特定分段的不同反应来区分的。比较流行的工具有Fyodor的NMAP和Savage的QueSO, 这些大都使用了来自于这种技术的变种。还有的工具是使用了ICMP响应分析技术,它通过发送UPD或ICMP的请求报文,然后分析各种ICMP应答。Ofir Arkin的X-Probe就是使用的这种技术,在通常情况下,X-Probe工作的比较好,但是在防火墙阻塞某些协议时,结果就不太令人满意了。
  3.远程主机操作系统探测原理及扫描方式的比较
  远程主机操作系统探测可以根据各个操作系统在TCP/IP协议栈实现上的不同特点,采用功能测试方法,通过研究其对各种探测的响应,进而识别远程目标主机运行的操作系统。根据采集信息的方式,可以分为主动扫描和被动扫描两种方式。
  1)主动扫描:采用向目标系统发送构造的特殊包并监控其应答的方式来识别操作系统类型。优缺点:主动扫描具有速度快、可靠性高等优点,但同样严重依赖于目标系统网络拓扑结构和过滤规则。
  2)被动扫描:通过Sniffer收集数据包,再对数据包的不同特征(TCP Window-size、 IP TTL、IP TOS、DF位等参数)进行分析,来识别操作系统。优缺点:被动扫描基本不具备攻击特征,具有很好的隐蔽性,但其实现严格依赖扫描主机所的网络拓扑结构;和主动探测相比较,具有速度慢、可靠性不高等缺点。
  本软件设计是采用主动扫描技术,调用动态链接库,通过TCP/IP堆栈特征探测远程操作系统。
  4.几种相关技术的具体实现和分析
  1)FIN探测:通过发送一个FIN数据包(或任何未设置ACK或SYN标记位的数据包)到一个打开的端口,并等待回应。RFC793定义的标准行为是“不”响应,但诸如MS Windows、BSDi、CISCO、HP/UX、MVS和IRIX等操作系统会回应一个RESET包。大多数的探测器都使用了这项技术。
  2)BOGUS(伪造)标记位探测:Queso是第一个使用这种更聪明技术的探测器。它原理是在一个SYN数据包TCP头中设置未定义的TCP“标记” (64或128)。低于2.0.35版本的Linux内核会在回应包中保持这个标记,而其它操作系统好象都没有这个问题。不过,有些操作系统 当接收到一个SYN+BOGUS数据包时会复位连接。所以这种方法能够比较有效地识别出操作系统。
  3)TCP ISN取样:其原理是通过在操作系统对连接请求的回应中寻找TCP连接初始化序列号的特征。目前可以区分的类别有传统的64K(旧UNIX系统使用)、随机增加(新版本的Solaris、IRIX、FreeBSD、DigitalUNIX、Cray和其它许多系统使用)、真正“随机”(Linux2.0.*及更高版本、OpenVMS和新版本的AIX等操作系统使用)等。Windows平台(还有其它一些平台)使用“基于时间”方式产生的ISN会随着时间的变化而有着相对固定的增长。不必说,最容易受到攻击的当然是老式的64K方式。而最受我们喜爱的当然是“固定”ISN!确实有些机器总是使用相同的ISN,如某些3Com集线器(使用0x83)和Apple LaserWriter打印机(使用0xC7001)。根据计算ISN的变化、最大公约数和其它一些有迹可循的规律,还可以将这些类别分得更细、更准确。
  4)“无碎片”标记位:许多操作系统逐渐开始在它们发送的数据包中设置IP“不分片(无碎片)”位。这对于提高传输性能有好处(虽然有时它很讨厌-- 这也是为什么nmap不对Solaris系统进行碎片探测的原因)。但并不是所有操作系统都有这个设置,或许并不并总是使用这个设置,因此通过留意这个标记位的设置可以收集到关于目标主机操作系统的更多有用信息。
  5)ACK值:也许很多人认为ACK值总是很标准的,但事实上操作系统在ACK域值的实现也有所不同。例如,假设向一个关闭的TCP端口发送一个FIN|PSH|URG包,许多操作系统会将ACK值设置为ISN值,但Windows和某些愚蠢的打印机会设置为seq+1。如果向打开的端口发送SYN|FIN|URG|PSH包,Windows的返回值就会非常不确定。有时是seq序列号值,有时是S++,而有时回送的是一个似乎很随机性的数值。
  6)ICMP信息引用:RFC定义了一些ICMP错误信息格式。如对于一个端口不可到达信息,几乎所有操作系统都只回送IP请求头+8字节长度的包,但Solaris返回的包会稍微长一点,Linux则返回更长的包。这样即使操作系统没有任何监听任何端口,nmap仍然有可能确定Linux和Solaris操作系统的主机。
  7)ICMP错误信息回显完整性:由于机器必须根据接收到的数据包返回“端口不可到达”(如果确实是这样)数据包,有些操作系统会在初始化处理过程中弄乱了请求头,这样当你接收到这种数据包时会出现不正常。例如,AIX和BSDI返回的IP包中的“总长度”域会被设置为20字节(太长了)。某些BSDI、FreeBSD、OpenBSD、ULTRIX和VAX操作系统甚至会修改请求头中的IP ID值。另外,由于TTL值的改变导致校验和需要修改时,某些系统(如AIX、FreeBSD 等)返回数据包的检验和会不正确或为0。有时这种情况也出现在 UDP包检验和。总的说来,nmap使用了九种不同的ICMP错误信息探测技术来区分不同的操作系统。
  8)服务类型(TOS): 对于ICMP的“端口不可到达”信息,经过对返回包的服务类型(TOS)值的检查,几乎所有的操作系统使用的是ICMP错误类型0,而Linux使用的值是0xC0。
  9)片段(碎片)处理: 不同操作系统在处理IP片段重叠时采用了不同的方式。有些用新的内容覆盖旧的内容,而又有些是以旧的内容为优先。有很多探测方法能确定这些包是被如何重组的,从而能帮助确定操作系统类型。
  操作系统类型探测有多种技术(除了某些攻击性方法外), 这些技术都可以在nmap扫描器中实现。nmap是Linux,FreeB

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


基于VC++平台的远程主机操作系统探测技术的应用与开发》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/show/226519.html
转载请保留,谢谢!