网络安全知识 -- 网络攻击
1攻击分类
在最高层次,攻击可被分为两类:
主动攻击 被动攻击
主动攻击包含攻击者访问他所需信息的故意行为。比如远程登录到指定机器的端口25找出公司运行的邮件服务器的信息;伪造无效IP地址去连接服务器,使接受到错误IP地址的系统浪费时间去连接哪个非法地址。攻击者是在主动地做一些不利于你或你的公司系统的事情。正因为如此,如果要寻找他们是很容易发现的。主动攻击包括拒绝服务攻击、信息篡改、资源使用、欺骗等攻击方法。
被动攻击主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察到。被动攻击包括嗅探、信息收集等攻击方法。
说明:这样分类不是说主动攻击不能收集信息或被动攻击不能被用来访问系统。多数情况下这两种类型被联合用于入侵一个站点。但是,大多数被动攻击不一定包括可被跟踪的行为,因此更难被发现。从另一个角度看,主动攻击容易被发现但多数公司都没有发现,所以发现被动攻击的机会几乎是零。
再往下一个层次看,当前网络攻击的方法没有规范的分类模式,方法的运用往往非常灵活。从攻击的目的来看,可以有拒绝服务攻击(Dos)、获取系统权限的攻击、获取敏感信息的攻击;从攻击的切入点来看,有缓冲区溢出攻击、系统设置漏洞的攻击等;从攻击的纵向实施过程来看,又有获取初级权限攻击、提升最高权限的攻击、后门攻击、跳板攻击等;从攻击的类型来看,包括对各种*作系统的攻击、对网络设备的攻击、对特定应用系统的攻击等。所以说,很难以一个统一的模式对各种攻击手段进行分类。
实际上黑客实施一次入侵行为,为达到他的攻击目的会结合采用多种攻击手段,在不同的入侵阶段使用不同的方法。因此在这篇攻击方法讨论中我们按照攻击的步骤,逐一讨论在每一步骤中可采用的攻击方法及可利用的攻击工具。
2 攻击步骤与方法
攻击步骤与方法
黑客攻击的基本步骤:
搜集信息
实施入侵
上传程序、下载数据
利用一些方法来保持访问,如后门、特洛伊木马
隐藏踪迹
【 信息搜集 】
在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的环境,这需要搜集汇总各种与目标系统相关的信息,包括机器数目、类型、*作系统等等。踩点和扫描的目的都是进行信息的搜集。
攻击者搜集目标信息一般采用7个基本步骤,每一步均有可利用的工具,攻击者使用它们得到攻击目标所需要的信息。
找到初始信息
找到网络的地址范围
找到活动的机器
找到开放端口和入口点
弄清*作系统
弄清每个端口运行的是哪种服务
画出网络图
1> 找到初始信息
攻击者危害一台机器需要有初始信息,比如一个IP地址或一个域名。实际上获取域名是很容易的一件事,然后攻击者会根据已知的域名搜集关于这个站点的信息。比如服务器的IP地址(不幸的是服务器通常使用静态的IP地址)或者这个站点的工作人员,这些都能够帮助发起一次成功的攻击。
搜集初始信息的一些方法包括:
开放来源信息 (open source information)
在一些情况下,公司会在不知不觉中泄露了大量信息。公司认为是一般公开的以及能争取客户的信息,都能为攻击者利用。这种信息一般被称为开放来源信息。
开放的来源是关于公司或者它的合作伙伴的一般、公开的信息,任何人能够得到。这意味着存取或者分析这种信息比较容易,并且没有犯罪的因素,是很合法的。这里列出几种获取信息的例子:
公司新闻信息:如某公司为展示其技术的先进性和能为客户提供最好的监控能力、容错能力、服务速度,往往会不经意间泄露了系统的*作平台、交换机型号、及基本的线路连接。
公司员工信息:大多数公司网站上附有姓名地址簿,在上面不仅能发现CEO和财务总监,也可能知道公司的VP和主管是谁。
新闻组:现在越来越多的技术人员使用新闻组、论坛来帮助解决公司的问题,攻击者看这些要求并把他们与电子信箱中的公司名匹配,这样就能提供一些有用的信息。使攻击者知道公司有什么设备,也帮助他们揣测出技术支持人员的水平
Whois
对于攻击者而言,任何有域名的公司必定泄露某些信息!
攻击者会对一个域名执行whois程序以找到附加的信息。Unix的大多数版本装有whois,所以攻击者只需在终端窗口或者命令提示行前敲入\
whois 要攻击的域名\就可以了。对于windows*作系统,要执行whois查找,需要一个第三方的工具,如sam spade。
通过查看whois的输出,攻击者会得到一些非常有用的信息:得到一个物理地址、一些人名和电话号码(可利用来发起一次社交工程攻击)。非常重要的是通过whois可获得攻击域的主要的(及次要的)服务器IP地址。
Nslookup
找到附加IP地址的一个方法是对一个特定域询问DNS。这些域名服务器包括了特定域的所有信息和链接到网络上所需的全部数据。任何网络都需要的一条信息,如果是打算发送或者接受信件,是mx记录。这条记录包含邮件服务器的IP地址。大多数公司也把网络服务器和其他IP放到域名服务器记录中。大多数UNIX和NT系统中,nslookup代理或者攻击者能够使用一个第三方工具,比如spade。
另一个得到地址的简单方法是ping域名。Ping一个域名时,程序做的第一件事情是设法把主机名解析为IP地址并输出到屏幕。攻击者得到网络的地址,能够把此网络当作初始点。
2> 找到网络的地址范围
当攻击者有一些机器的IP地址,他下一步需要找出网络的地址范围或者子网掩码。
需要知道地址范围的主要原因是:保证攻击者能集中精力对付一个网络而没有闯入其它网络。这样做有两个原因:第一,假设有地址10.10.10.5,要扫描整个A类地址需要一段时间。如果正在跟踪的目标只是地址的一个小子集,那么就无需浪费时间;第二,一些公司有比其他公司更好的安全性。因此跟踪较大的地址空间增加了危险。如攻击者可能能够闯入有良好安全性的公司,而它会报告这次攻击并发出报警。
攻击者能用两种方法找到这一信息,容易的方法是使用America Registry for Internet Numbers(ARIN)whois
搜索找到信息;困难的方法是使用tranceroute解析结果。
(1) ARIN允许任何人搜索whois数据库找到\网络上的定位信息、自治系统号码(ASN)、有关的网络句柄和其他有关的接触点(POC)。\基本上,常规的whois会提供关于域名的信息。ARINwhois允许询问IP地址,帮助找到关于子网地址和网络如何被分割的策略信息。
(2) Traceroute可以知道一个数据包通过网络的路径。因此利用这一信息,能决定主机是否在相同的网络上。
连接到internet上的公司有一个外部服务器把网络连到ISP或者Internet上,所有去公司的流量必须通过外部路由器,否则没有办法进入网络,并且大多数公司有防火墙,所以traceroute输出的最后一跳会是目的机器,倒数第二跳会是防火墙,倒数第三跳会是外部路由器。通过相同外部路由器的所有机器属于同一网络,通常也属于同一公司。因此攻击者查看通过tranceroute到达的各种ip地址,看这些机器是否通过相同的外部路由器,就知道它们是否属于同一网络。
这里讨论了攻击者进入和决定公司地址范围的两种方法。既然有了地址范围,攻击者能继续搜集信息,下一步是找到网络上活动的机器。
3> 找到活动的机器
在知道了IP地址范围后,攻击者想知道哪些机器是活动的,哪些不是。公司里一天中不同的时间有不同的机器在活动。一般攻击者在白天寻找活动的机器,然后在深夜再次查找,他就能区分工作站和服务器。服务器会一直被使用,而工作站只在正常工作日是活动的。
Ping :使用ping可以找到网络上哪些机器是活动的。
Pingwar:ping有一个缺点,一次只能ping一台机器。攻击者希望同时ping多台机器,看哪些有反应,这种技术一般被称为ping
sweeping。Ping war 就是一个这样的有用程序。
Nmap:Nmap也能用来确定哪些机器是活动的。Nmap是一个有多用途的工具,它主要是一个端口扫描仪,但也能ping
sweep一个地址范围。
4> 找到开放端口和入口点
(1)Port Scanners:
为了确定系统中哪一个端口是开放的,攻击者会使用被称为port scanner(端口扫描仪)的程序。端口扫描仪在一系列端口上运行以找出哪些是开放的。
选择端口扫描仪的两个关键特征:第一,它能一次扫描一个地址范围;第二,能设定程序扫描的端口范围。(能扫描1到65535的整个范围。)
目前流行的扫描类型是:
TCP conntect扫描
TCP SYN扫描
FIN扫描
ACK扫描