2.信息收集
除了确定攻击目的之外,攻击前的最主要工作就是收集尽量多的关于攻击目标的信息 。这些信息主要包括目标的操作系统类型及版本 , 目标提供哪些服务,各服务器程序的类型与版本以及相关的社会信息 。
要攻击一台机器,首先要确定它上面正在运行的操作系统是什么,因为对于不同类型的操作系统,其上的系统漏洞有很大区别,所以攻击的方法也完全不同,甚至同一种操作系统的不同版本的系统漏洞也是不一样的 。要确定一台服务器的操作系统一般是靠经验,有些服务器的某些服务显示信息会泄露其操作系统 。例如当我们通过TELNET连上一台机器时 , 如果显示
Unix(r)System V Release 4.0
login:
那么根据经验就可以确定这个机器上运行的操作系统为SUN OS 5.5或5.5.l 。但这样确定操作系统类型是不准确的,因为有些网站管理员为了迷惑攻击者会故意更改显示信息 , 造成假象 。
还有一种不是很有效的方法 , 诸如查询DNS的主机信息(不是很可靠)来看登记域名时的申请机器类型和操作系统类型 , 或者使用社会工程学的方法来获得,以及利用某些主机开放的SNMP的公共组来查询 。
另外一种相对比较准确的方法是利用网络操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份 。因为不同的操作系统在网络底层协议的各种实现细节上略有不同 。可以通过远程向目标发送特殊的包,然后通过返回的包来确定操作系统类型 。例如通过向目标机发送一个FIN的包(或者是任何没有ACK或SYN标记的包)到目标主机的一个开放的端口然后等待回应 。许多系统如windows、 BSDI、CISCO、 HP/UX和IRIX会返回一个RESET 。通过发送一个SYN包,它含有没有定义的TCP标记的TCP头 。那么在Linux系统的回应包就会包含这个没有定义的标记,而在一些别的系统则会在收到SYN+BOGU包之后关闭连接 。或是利用寻找初始化序列长度模板与特定的操作系统相匹配的方法 。利用它可以对许多系统分类 , 如较早的Unix系统是64K长度,一些新的Unix系统的长度则是随机增长 。还有就是检查返回包里包含的窗口长度,这项技术根据各个操作系统的不同的初始化窗口大小来唯一确定它们 。利用这种技术实现的工具很多,比较著名的有NMAP、CHECKOS、QUESO等 。
获知目标提供哪些服务及各服务daemon的类型、版本同样非常重要,因为已知的漏洞一般都是对某一服务的 。这里说的提供服务就是指通常我们提到的喘口,例如一般TELNET在23端口,FTP在对21端口 , WWW在80端口或8080端口 , 这只是一般情况,网站管理完全可以按自己的意愿修改服务所监听的端口号 。在不同服务器上提供同一种服务的软件也可以是不同,我们管这种软件叫做daemon,例如同样是提供FTP服务,可以使用wuftp、proftp,ncftp等许多不同种类的daemon 。确定daemon的类型版本也有助于黑客利用系统漏洞攻破网站 。
- 牡丹吊兰有毒吗,心叶日中花有毒吗
- 冰块怎么做不容易化,怎样让冰块保持不融化
- 抖音怎么制作手动翻照片,抖音图集怎么搞成自己翻?
- 中筋粉和高筋粉的区别有哪些,高筋面粉和中筋面粉的区别
- 锂保存在哪里,锂单质存放在哪?
- 老公生日送什么礼物,送老公生日礼物送什么比较有意义
- 炒蚬子用不用焯水,辣炒蚬子 是先煮一下呢 还是直接炒
- 雅泰角鲨烯胶囊的功效,角鲨烯软胶囊的功效与作用
- 海上交通与陆上交通相比,明显的优势有,陆上运输与海上运输的优势各是什么
- 中国五大名酒,中国五大名酒是什么?
