免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1216 | 回复: 0
打印 上一主题 下一主题

入侵技术介绍——目标探测(1) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-07 13:43 |只看该作者 |倒序浏览
计划介绍的内容包括信息收集,探测,渗透,帐号破解,入侵攻击,清除踪迹,后门制作等等(庞大的计划),主要都是从实现上来讲的(使用其他工具的不是计划内),其中的代码都需要自己写。不过我时间有限,写一次需要很长时间,也许一段时间内没时间写。那也怪不得我哦。不过,只希望能够让更多人脱离"工具黑客",去看看实际到底是什么,然后去自己探索应该是什么。
写这个的目的不是教人怎么入侵怎么"黑",只是让更多人去学习,去研究。
作者:未知欢迎交流,Email: refdom@263.net
声明:所有都是属于一种技术上的研究和探讨,如果有人利用下面涉及的技术进行破坏等,与本人无任何关系!
************************************************************************
         主机识别技术
作者: Refdom,
EmaiL: Refdom@263.net
2002/1/28
大多数的端口扫描就是让我们能够达到这样的目的:
1、让我们能够大致判断目标是什么操作系统
2、目标到底在运行些什么服务
当然,要得到这些东西还是最后为了让我们能够知道哪些可能拿来利用,可能存在的漏洞。很多工具提供的扫描也可能就直接得到什么操作系统了,或者相对应的端口使用的是什么程序,程序是什么版本的等等。不过,这些都是由那些工具自己做了,不讨论这个,我们应该去想想这些工具到底是怎么去实现的。
  正如Fyodor(nmap的作者)在他的《Remote OS detection via TCP/IP Stack FingerPrinting》中讲解的进行主机识别的两个作用,第一,很多系统漏洞是同OS密切相关的,还有就是社会学(social engineering)问题,你能够在非常了解对方的系统之后,冒充软件提供商给目标发送"补丁"。
  按照我们上面提到的高级扫描方式,直接进行的端口扫描,能够赋予我们绕过防火墙的能力,而且可以尽可能地隐藏自己等等,但是,我们能够得到的信息也是有限的,也许对是否开放一个端口并不是那么直接地感兴趣,比如一个21端口,我们真正感兴趣的是这个端口被用来作什么了,运行地什么版本的程序,也就是,我们对下面得到地这个东西更感兴趣(关系到IP的地方,我都用X代替了):
C:>ftp XXX.XXX.XXX.XXX
Connected to XXX.XXX.XXX.XXX.
220 XXXXX X2 WS_FTP Server 1.0.5 (1327846197)
User (XXX.XXX.XXX.XXX:(none)):
其实,这就是一种最简单和最直接的判别方式。我们可以对每个打开的端口进行相应的连接,通常这些服务程序就会非常高兴地显示自己的"banner",也就让我们能够直接得到他是什么版本了。甚至,我们能够得到更好的东西:
C:>telnet XXX.XXX.XXX.XXX
Red Hat Linux release 7.1 (Seawolf)
Kernel 2.4.2-2 on an i686
login:
  这让我们对操作系统版本一览无余了。正象这些只对80端口感兴趣的"黑客"一样,通过对80端口的连接,我们也能得到足够多的信息。
C:>telnet XXX.XXX.XXX.XXX 80
HEAD / HTTP/1.1
HTTP/1.1 200 OK
Via: 1.1 ADSL2000
Content-Length: 97
Date: Thu, 24 Jan 2002 13:46:56 GMT
Content-Type: text/html
Server: Apache/1.3.20 (Unix) PHP/4.0.6
Last-Modified: Wed, 26 Dec 2001 09:22:54 GMT
ETag: "8715f-61-3c2996ee"
Accept-Ranges: bytes
Keep-Alive: timeout=15, max=100
可以注意到:Server: Apache/1.3.20 (Unix) PHP/4.0.6
这样直接的连接探测方式,对于这些banner开放的,简直是太容易了,当然,负责的管理员也会屏蔽或者修改掉这些BANNER。
还有一种粗劣而且简单的判别主机操作系统类型的办法就是通过Ping,然后分析得到的TTL值,当然,稍微准确点可以同时在配合Tracert来确定主机原始的TTL值,不过,这种办法很容易被欺骗,比如,在WINDOWS系统中,对注册表的修改:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
Key: DefaultTTL
  对主机使用端口的分析,同样也能够进行操作系统识别,一些操作系统使用特殊的端口,比如:WINDOWS的137、139,WIN2K的445,而且一些网络设备比如入侵检测系统、防火墙等等也都有厂商自己的端口开放。
  高级的主机识别技术主要分为主动协议识别和被动协议识别,都是利用各种操作系统在网络协议通讯中不同的协议内容,然后进行分析进行的识别。
Nmap这个强大的扫描工具在远程主机判断上也使用了很多技术,来实现更高级的主机系统检测。这主要是通过主动的TCP/IP协议辨识来实现的,每种OS,在TCP交流中总是使用一些具有特性的标志,这些标志在TCP IP数据包的头中。比如window、ACK序号、TTL等等的不同反应,通过大量的数据分析,然后精确地判断主机系统。在之后,Fyodor 和Ofir又分析和收集利用ICMP协议的操作系统特性来进行的主机系统判别,这种主动的识别方式都经过了大量的分析,在《Remote OS detection via TCP/IP Stack FingerPrinting》http://www.insecure.org/nmap/nmap-fingerprinting-article.html)和Phrack #57《ICMP based remote OS TCP/IP stack fingerprinting techniques》有详细的技术细节,我就不再多嘴了。
  和主动的协议识别原理相同,Lance Spitzner在《Passive Fingerprinting》中提出了被动的协议识别,同样用来判别主机系统。这种办法主要集中考虑:
1、TTL的设置
2、WINDOW SIZE:操作系统设置的窗口大小
3、DF:操作系统是否设置分片位
4、TOS:操作系统设置的服务类型
  比如多数系统使用DF位设置,但是有些系统如SCO和OPENBSD不使用这个DF标志,这样就可以用来识别一些没有设置DF位的操作系统。被动协议识别也可以用来判断远程代理防火墙,因为代理防火墙重建对客户的连接,它有它自身的特征代码,也可以用这样的办法来分析。在http://the.wiretapped.net/security/info/papers/security /lance-spitzner/finger.html)可以找到Lance Spitzner的这篇文章。
  主动识别方式需要主动发送数据包,因此相对于那些安全设备来说,也比较容易识别这些数据包,同被动识别比较起来,隐蔽性稍微差些。
Reference:
1、《X - Remote ICMP Based OS Fingerprinting Techniques》
2、Phrack #57《ICMP based remote OS TCP/IP stack fingerprinting techniques》
3、Fyodor《Remote OS detection via TCP/IP Stack FingerPrinting》
4、Lance Spitzner《Passive Fingerprinting》



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11897/showart_60447.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP