基于VC++平台的远程主机操作系统探测技术的应用与开发
本文关键词
探测操作系统主机开发平台
本文简介摘要介绍了基于VC++平台的远程主机操作系统探测技术的应用对常见的远程主机操作系统探测技术作了较为详尽的论述,比较了这些技术的特点和不足最后借鉴和吸取nmap思想通过理解吸收采用动态链接库技术对一个破解系统中的远程主机操作系统探测模块的进行开发。论文关键词反求工程,逆向,网络安全 近
本文内容
摘要介绍了基于VC++平台的远程主机操作系统探测技术的应用对常见的远程主机操作系统探测技术作了较为详尽的论述,比较了这些技术的特点和不足最后借鉴和吸取nmap思想通过理解吸收采用动态链接库技术对一个破解系统中的远程主机操作系统探测模块的进行开发。
论文关键词反求工程,逆向,网络安全
近年来远程操作系统探测技术被越来越多的运用于网络安全评估软件的开发它作为一种网络扫描器的应用技术需要能够避免错误的探测结果、避免影响或被影响于防火墙和入侵检测系统并且可以允许大范围的网络扫描。而不管其作为网络安全评估工具或者是网络漏洞扫描器都需要利用网络通信协议工作的特点来实现获取远程主机操作系统的信息。本文是通过对基于VC++平台的网络服务口令破解系统开发中所采用的远程操作系统探测技术应用提出自己的想法。
2.探测工具中使用的远程主机操作系统探测技术
在很多探测工具中是通过获取标识信息技术来获得某些服务的标识信息这往往是通过对二进制文件的收集和分析来实现的。另外还可以通过TCP分段标准/非标准的响应分析这是依靠不同操作系统对特定分段的不同反应来区分的。比较流行的工具有Fyo do r 的NMAP和Savage的QueSO,这些大都使用了来自于这种技术的变种。还有的工具是使用了ICMP响应分析技术 它通过发送UPD或ICMP的请求报文然后分析各种ICMP应答。OfirArkin的X-Probe就是使用的这种技术在通常情况下 X-Probe工作的比较好但是在防火墙阻塞某些协议时结果就不太令人满意了。
3.远程主机操作系统探测原理及扫描方式的比较
远程主机操作系统探测可以根据各个操作系统在T CP/I P协议栈实现上的不同特点采用功能测试方法通过研究其对各种探测的响应进而识别远程目标主机运行的操作系统。根据采集信息的方式可以分为主动扫描和被动扫描两种方式。
1)主动扫描采用向目标系统发送构造的特殊包并监控其应答的方式来识别操作系统类型。优缺点主动扫描具有速度快、可靠性高等优点但同样严重依赖于目标系统网络拓扑结构和过滤规则。
2)被动扫描通过Sniffer收集数据包再对数据包的不同特征TCPWindow-size、 IPTTL、I PTO S、 D F位等参数进行分析来识别操作系统。优缺点被动扫描基本不具备攻击特征具有很好的隐蔽性但其实现严格依赖扫描主机所的网络拓扑结构和主动探测相比较具有速度慢、可靠性不高等缺点。
本软件设计是采用主动扫描技术调用动态链接库通过TCP/IP堆栈特征探测远程操作系统。
4.几种相关技术的具体实现和分析
1 FI N探测通过发送一个FI N数据包或任何未设置ACK或SYN标记位的数据包到一个打开的端口并等待回应。 RFC793定义的标准行为是“不”响应但诸如MSWindows、BSDi、 CISCO、 HP/UX、 MVS和IRIX等操作系统会回应一个RESET包。大多数的探测器都使用了这项技术。
2 BOGUS 伪造标记位探测Queso是第一个使用这种更聪明技术的探测器。它原理是在一个SY N数据包T C P头中设置未定义的T CP“标记” 64或128 。低于2.0.35版本的Linux内核会在回应包中保持这个标记 而其它操作系统好象都没有这个问题。不过有些操作系统当接收到一个SYN+BOGUS数据包时会复位连接。所以这种方法能够比较有效地识别出操作系统。
3 TCPISN取样其原理是通过在操作系统对连接请求的回应中寻找TCP连接初始化序列号的特征。 目前可以区分的类别有传统的64K 旧UNIX系统使用 、随机增加新版本的Solaris、 IRIX、 FreeBSD、 DigitalUNIX、 Cray和其它许多系统使用 、真正“随机”
Linux2.0.*及更高版本、 OpenVMS和新版本的AIX等操作系统使用等。Windows平台
还有其它一些平台使用“基于时间”方式产生的ISN会随着时间的变化而有着相对固定的增长。不必说最容易受到攻击的当然是老式的64K方式。而最受我们喜爱的当然是“固定”ISN确实有些机器总是使用相同的ISN如某些3Com集线器使用0x83和AppleLaserWriter打印机使用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 I CMP信息引用RFC定义了一些I CMP错误信息格式。如对于一个端口不可到达信息几乎所有操作系统都只回送IP请求头+8字节长度的包但Solaris返回的包会稍微长一点 Linux则返回更长的包。这样即使操作系统没有任何监听任何端口 nmap仍然有可能确定Linux和Solaris操作系统的主机。
7 I CMP错误信息回显完整性由于机器必须根据接收到的数据包返回“端口不可到达”
如果确实是这样数据包有些操作系统会在初始化处理过程中弄乱了请求头这样当你接收到这种数据包时会出现不正常。例如 AIX和BSDI返回的IP包中的“总长度”域会被设置为20字节太长了 。某些BSDI、 FreeBSD、 OpenBSD、 ULTRIX和VAX操作系统甚至会修改请求头中的IPID值。另外 由于TTL值的改变导致校验和需要修改时某些系统如AIX、 FreeBSD等返回数据包的检验和会不正确或为0。有时这种情况也出现在UDP包检验和。总的说来 nmap使用了九种不同的ICMP错误信息探测技术来区分不同的操作系统。
8)服务类型TOS :对于ICMP的“端口不可到达”信息经过对返回包的服务类型TOS值的检查几乎所有的操作系统使用的是ICMP错误类型0 而Linux使用的值是0xC0。
9)片段碎片处理:不同操作系统在处理IP片段重叠时采用了不同的方式。有些用新的内容覆盖旧的内容 而又有些是以旧的内容为优先。有很多探测方法能确定这些包是被如何重组的从而能帮助确定操作系统类型。
操作系统类型探测有多种技术除了某些攻击性方法外 这些技术都可以在nmap扫描器中实现。 nmap是Linux,FreeB
来源网络整理免责声明本文仅限学习分享如产生版权问题请联系我们及时删除。
昔日数据,国内商家,成立于2020年,主要销售湖北十堰和香港HKBN的云服务器,采用KVM虚拟化技术构架,不限制流量。当前夏季促销活动,全部首月5折促销,活动截止于8月11日。官方网站:https://www.xrapi.cn/5折优惠码:XR2021湖北十堰云服务器托管于湖北十堰市IDC数据中心,母鸡采用e5 2651v2,SSD MLC企业硬盘、 rdid5阵列为数据护航,100G高防,超出防...
香港ctg云服务器香港ctg云服务器官网链接 点击进入妮妮云官网优惠活动 香港CTG云服务器地区CPU内存硬盘带宽IP价格购买地址香港1核1G20G3M5个19元/月点击购买香港2核2G30G5M10个40元/月点击购买香港2核2G40G5M20个450元/月点击购买香港4核4G50G6M30个80元/月点击购买香...
今天下午遇到一个网友聊到他昨天新注册的一个域名,今天在去使用的时候发现域名居然不见。开始怀疑他昨天是否付款扣费,以及是否有实名认证过,毕竟我们在国内域名注册平台注册域名是需要实名认证的,大概3-5天内如果不验证那是不可以使用的。但是如果注册完毕的域名找不到那也是奇怪。同时我也有怀疑他是不是忘记记错账户。毕竟我们有很多朋友在某个商家注册很多账户,有时候自己都忘记是用哪个账户的。但是我们去找账户也不办...