网络侦察技术分析.docx
《网络侦察技术分析.docx》由会员分享,可在线阅读,更多相关《网络侦察技术分析.docx(13页珍藏版)》请在冰豆网上搜索。
网络侦察技术分析
RevisedbyBETTYonDecember25,2020
网络侦察技术分析
网络侦察技术分析
(一)
[本文原创,禁止任何形式的转载]
一名严谨的黑客在入侵之前会先进行网络侦察及分析,以判断可行性及应采取的入侵方法。
我们今天就讲一下一名黑客是如何进行网络侦察的。
首先,我们介绍一下安全管理的规范。
一名好的网络安全人员,应该从两个不同的角度来分析网络进行安全评估:
1、从黑客角度进行思考,寻找现有的网络漏洞,对网络资源加以保护;2、从安全管理者的角度进行思考,寻找最佳途径既可保障安全又不影响商业运作效率。
从安全管理者角度考虑,安全管理者知道网络是如何配置的,更多从防火墙内部发起探测,关注内部网络的服务器和主机是否有异常情况,但黑客是不知道目标网络的配置情况,他们是从防火墙外部进行攻击/渗透的,所以一名合格的安全管理者还要从防火墙外部进行渗透看是否能穿透防火墙而控制网络主机。
如图:
从安全顾问角度考虑,首先要从不知情者的角度加以定位,然后以内部知情人的角度来评估网络安全
如图:
下面我们看一下不同基点的安全管理结构:
首先我们介绍一下基于网络的安全管理结构。
如图:
由图可知,基于网络的管理产品将软件安装在一台服务器上,由它来向网络提出查询,提出查询的要求,其中主机往往是管理者,扫描网络上所有可疑的活动。
在这种结构下每台计算机被动的响应查询,优点是主机并不知道被监视,缺点是监视端口会对交换机的性能产生影响
我们再介绍一下基于主机级的安全管理结构。
如图:
由图可知,这是一种分层管理体系,一层是图形界面,二层是管理者,通过代理发出查询请求,从代理收集信息进行显示,三层是安装在每台主机上的代理。
可安装SNMP辅助管理。
安全审计的三个阶段:
对于安全管理的几个概念我们介绍完了,我们看一下网络攻击的动机。
随着木马/病毒及黑客技术的商业化,网络攻击行为越来越多的是为了名利目的。
现在所存在的主要动机为:
偷取国家机密、商业竞争行为、内部员工对单位的不满、对企业核心机密的企望、网络接入帐号/信用卡号等金钱利益的诱惑、利用攻击网络站点而出名、对网络安全技术的挑战、对网络的好奇心。
攻击的一般步骤分为三步:
预攻击、攻击和后攻击。
如图:
预攻击阶段的行为及目的:
端口扫描、漏洞扫描、操作系统类型鉴别、网络拓扑分析
攻击阶段的主要攻击行为:
缓冲区溢出攻击、操作系统漏洞、应用服务缺陷、脚本程序漏洞攻击、口令攻击、错误及弱配置攻击、网络欺骗与劫持攻击
后攻击阶段:
安装后门木马、痕迹擦除
另外还有一些其它攻击种类如:
拒绝服务攻击、嗅探攻击、恶意网页攻击、社会工程攻击等。
下面,我们就进入正题,看一下黑客是如何进行有效的信息收集的——信息收集技术也就是网络侦察技术。
1、Whois。
Whois是一种internet的目录服务,它提供了在internet上的一台主机或某个域所有者的信息,比如管理员姓名、通信地址、电话号码、Email信息、Primary和Secondary域名服务器信息。
常用的Whois命令是[root@redhat-6/root]#whois。
现在一些网站也提供了Whois功能,效果是一样的,以本站为例,查询结果如下:
DomainName:
Registrar:
XINNETTECHNOLOGYCORPORATION
Status:
clientDeleteProhibited
Status:
clientTransferProhibited
Status:
clientUpdateProhibited
UpdatedDate:
25-sep-2007
CreationDate:
29-jul-2003
ExpirationDate:
29-jul-2008
>>>Lastupdateofwhoisdatabase:
Sun,06Jan200817:
13:
44UTC<<<
2、nslookup(我最喜欢的信息收集方法)。
它是Windows操作系统自带的DNS排错工具,使用此DNS服务器做域名解析到所有主机名和IP地址的映射情况,可测试正向区域及反向区域。
(区域传送指的是在多个DNS服务器之间复制区域数据库文件的过程。
)因为nslookup命令不是死命令,而是一种固定模式+测试者习惯的命令,我们在此不做介绍。
相关基础命令可在网上查询。
3、Host命令。
它是一种UNIX提供的有关Internet域名查询的命令,可以实现区域传送、、获得名称解析信息、得知域中邮件服务器的信息等功能。
常用的三个参数:
参数–v显示更多信息
参数–l实现区域传送
参数–t查询特定的DNS记录
例:
[root@redhat-6/root]#host-l-v
rcode=0(Success),ancount=2
Found1addressesfor
4、Traceroute命令。
可用于路由跟踪,判断从你的主机到目标主机经过哪些路由器、跳计数、响应时间等等。
根据反馈数据可以推测出网络物理布局、判断出响应较慢的节点和数据包在路由过程中的跳数。
Traceroute或者使用极少被其它程序使用的高端UDP端口,或者使用PING数据包。
我们以图示Traceroute路由跟踪原理:
网络侦察技术分析
网络侦察技术分析
(二)
[本文原创,禁止任何形式的转载]
扫描与侦察:
按照获得结果分类,分为存活性扫描、端口扫描及系统堆栈扫描。
按照攻击者角色分类,分为主动扫描和被动扫描。
安全扫描的检测技术分类:
基于应用的检测技术,它采用被动的,非破坏性的办法检查应用软件包的设置,发现安全漏洞。
基于主机的检测技术,它采用被动的,非破坏性的办法对系统进行检测。
基于目标的漏洞检测技术,它采用被动的,非破坏性的办法检查系统属性和文件属性,如数据库,注册号等。
基于网络的检测技术,它采用积极的,非破坏性的办法来检验系统是否有可能被攻击崩溃
安全扫描系统具有的功能:
协调了其它的安全设备、使枯燥的系统安全信息易于理解,告诉了你系统发生的事情、跟踪用户进入,在系统中的行为和离开的信息、可以报告和识别文件的改动、纠正系统的错误设置、识别正在受到的攻击、减轻系统管理员搜索最近黑客行为的负担、使得安全管理可由普通用户来负责、为制定安全规则提供依据。
通常的检测项目:
已知的服务漏洞、缺省安装、不安全的网络管理、弱口令、不正确的服务器配置、网络拓扑的缺陷、信息泄漏、信息缺陷、未授权的设备和服务、可管理的设备、加密机制、额外的用户权限、已知的软件版本漏洞、防火墙自身的安全性和、稳定性。
下面,我们根据扫描分类介绍以下各种扫描技术。
1、存活性扫描。
己方发送扫描数据包,等待对方的回应数据包,其最终结果并不一定准确,依赖于网络边界设备的过滤策略。
最常用的探测包是ICMP数据包。
例如发送方发送ICMPEchoRequest,期待对方返回ICMPEchoReply。
2、端口扫描。
这是最流行的扫描方法,众多的初学安全的朋友常用此方法抓肉鸡。
我们着重讲解。
先看一下扫描图。
一个端口就是一个潜在的通信通道,即入侵通道。
黑客就是对目标计算机进行端口扫描,得到有用的信息。
扫描的方法分为手工扫描和软件扫描两种。
如果是用软件扫描,那没什么可讲的了,软件可以帮你自动挂马并告诉你什么样的漏洞等等。
如果是手工扫描呢?
返回的是数据包,因此,我们必须要会一些常识性的数据包分析了。
以下给出几种类型的数据包头结构图:
IP协议包头:
ICMP协议包头:
TCP协议包头:
UDP协议包头:
TCP三次握手机制图:
TCP连接的终止:
一个TCP头包含6个标志位。
SYN:
标志位用来建立连接,让连接双方同步序列号。
如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接;
FIN:
表示发送端已经没有数据要求传输了,希望释放连接;
RST:
用来复位一个连接。
RST标志置位的数据包称为复位包。
一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包;
URG:
为紧急数据标志。
如果它为1,表示本数据包中包含紧急数据。
此时紧急数据指针有效;
ACK:
为确认标志位。
如果为1,表示包中的确认号时有效的。
否则,包中的确认号无效;
PSH:
如果置位,接收端应尽快把数据传送给应用层。
给大家介绍一款能穿透网络边缘安全设备的扫描程序:
NMAP。
Nmap被称为“扫描器之王”,有forUnix和forWin的两种版本,需要Libpcap库和Winpcap库的支持,能够进行普通扫描、各种高级扫描和操作系统类型鉴别等。
它对网络的侦查十分有效,具有非常灵活的TCP/IP堆栈指纹引擎并可以穿透网络边缘的安全设备。
(NMAP穿透防火墙的一种方法是利用碎片扫描技术(fragmentscans),你可以发送隐秘的FIN包(-sF),Xmastree包(-sX)或NULL包(-sN)。
这些选项允许你将TCP查询分割成片断从而绕过防火墙规则。
这种策略对很多流行的防火墙产品都很有效)。
使用命令:
使用
-sS:
半开式扫描?
-sT:
普通connect()扫描
-sP存活扫描
-sU:
udp端口扫描
-O:
操作系统鉴别
-P0:
强行扫描(无论是否能够ping通目标)
-p:
指定端口范围
-v:
详细模式
举例
讲到这里,我们不得不讲一下TCP/IP所遵循的选择,也是端口扫描的原则:
3、堆栈指纹扫描。
它是利用TCP/IP来识别不同的操作系统和服务向系统发送各种特殊的包,根据系统对包回应的差别,推断出操作系统的种类。
堆栈指纹程序利用的部分特征:
ICMP错误信息抑制、服务类型值(TOS)、TCP/IP选项、对SYNFLOOD的抵抗力、TCP初始窗口。
堆栈指纹的应用:
利用FIN探测、利用TCPISN采样、使用TCP的初始化窗口、ICMP消息抑制机制、ICMP错误引用机制、ToS字段的设置、DF位的设置、ICMP错误信息回显完整性、TCP选项、ACK值。
详细讲解:
利用FIN探测:
利用BOGUS标记探测:
利用TCPISN采样:
这是利用寻找初始化序列长度模板与特定的操作系统相匹配的方法。
利用它可以对许多系统分类,如较早的UNIX系统是64K长度。
一些新的UNIX系统则是随机增长的长度(Solaris,IRIX,FreeBSD,DigitalUnix,Cray等)或者可以使用DontFragment位:
许多操作系统在发送的包里使用这个位,由此可以确定操作系统的类型。
使用TCP的初始化窗口:
简单地检查返回包里包含的窗口长度。
根据各个操作系统的不同的初始化窗口大小来唯一确定操作系统类型(TCP使用滑动窗口为两台主机间传送缓冲数据。
每台TCP/IP主机支持两个滑动窗口,一个用于接收数据,另一个用于发送数据。
窗口尺寸表示计算机可以缓冲的数据量大小。
)
ToS字段的设置:
IP首部的ToS字段用来指示可靠性、预延迟、通过量参数
现在大多数的TCP/IP实现都不支持TOS特性,但是自Reno以后的新版系统都对它进行了设置。
另外,新的路由协议如OSPF和IS-IS都能根据这些字段的值进行路由决策。
对于ICMP的“端口不可到达”信息,经过对返回包的服务类型(TOS)值的检查,几乎所有的操作系统使用的是ICMP错误类型0,而Linux使用的值是0xC0。
ACK值:
操作系统在ACK域值的实现也有所不同,向一个关闭的TCP端口发送一个FIN|PSH|URG包,许多操作系统会将ACK值设置为ISN值,但Windows和某些打印机会设置为seq+1
安全扫描技术的发展趋势:
1、使用插件(plugin)或者叫功能模块技术。
每个插件都封装一个或者多个漏洞的测试手段,主扫描程序通过调用插件的方法来执行扫描,仅仅是创建新的插件就可以使软件增加新功能,扫描更多漏洞。
2、使用专用脚本语言。
一种更高级的插件技术,可以使用专门语言来扩充软件功能。
3、由安全扫描程序到安全评估专家系统。
将扫描结果整理,形成报表,对具体漏洞提出一些解决方法。
未来的安全扫描系统,不仅能扫描漏洞,还能智能化的协助网络信息管理人员进行安全评估,给出安全建议,成为安全评估专家系统。
操作系统识别技术
操作系统指纹扫描技术是安全扫描技术的一个重点。
不同的操作系统有着不同的漏洞和薄弱环节,操作系统指纹扫描的目的就是为了鉴别出目标主机所使用的操作系统类型,从而确定后续的攻击或防御方法,缩小尝试的范围。
例如,采用攻击IIS方法去突破一台Linux主机,肯定不会有任何结果;同样对。
Macintosh进行send。
mail攻击也将一无所获。
由此可知,对攻击而言,操作系统指纹扫描是前奏,是攻击前的准备阶段;从防御角度来讲,操作系统指纹扫描有助于了解攻击方会采用哪些攻击方法,从而做到有针对性的防御。
栈指纹识别是最早从技术角度研究如何识别远程操作系统的。
所谓栈指纹识别是指通过分析远程主机操作系统实现的协议堆栈对不同请求的响应来区分其系统。
TCP/IP栈指纹是指
操作系统的TCP/IP堆栈对不同请求在响应上的差别,而其后出现的ICMP栈指纹是指操作系统的ICMP堆栈对不同请求在响应上的差异。
当前几乎所有操作系统网络部分的实现都是基于同样的TCP/IP协议体系标准,那为什么远程操作系统还可以被识别呢?
究其原因,主要有以下几点。
(1)每个操作系统通常都会使用它们自己的IP栈。
由于技术上的相互保密和各个公司自身利益以及操作系统安全性的考虑,IP栈的实现都是在RFC标准文档的基础上自行开发研制的,因此必然存在不一致的想法和实现方法。
(2)TCP/IP规范并不是被严格的执行,每个不同的实现都拥有它们自己的特性。
同样由于各公司都是白行开发,即使TCP/IP规范中提到的方方面面,由于理解上的不同,实现的结果也是不同的。
另外根据实现技术的难易程度,许多规范上要求的规则可能在具体实现上被其他简易的方法所代替,这也造成相互之间的差异。
(3)规范可能被打乱,一些选择性的特性被使用,而其他的一些系统则可能没有使用。
TCP/IP规范中存在许多可选的特性,可以由厂家自行选择是否需要实现,这些选择性规则也
是分辨操作系统的一个重要的方面。
(4)某些私自对IP的改进也可能被实现,这就成为了某些操作系统的特性。
操作系统在协议实现上的不同就像人类的指纹,每个人都有指纹,但是没有两个人的指纹是相同的。
通过对不同操作系统的TCP/IP栈和ICMP存在的细微差异来判定操作系统类型和版本的技术,就类似于人们应用指纹来标明是否是同一个人一样,可以清楚地将其分开来。
操作系统指纹扫描更多时候是为攻击者所利用。
通过指纹扫描获知对方操作系统的类型和版本,其相关漏洞和薄弱点就一目了然,其上安装的应用软件的范围也可以大大缩小,从而可以在很大程度上提高攻击的速度并能迅速突破对方的安全保护,达到预期的目的