1、2018/7/18,计算机网络安全11网络攻击的信息收集方法,1/60,计算机网络安全 (11),网络攻击的信息收集方法杨寿保中国科技大学计算机系202.38.64.11/syang3601540 二六年三月,2018/7/18,计算机网络安全11网络攻击的信息收集方法,2/60,内 容,信息收集DNS收集信息端口扫描操作系统辨识,2018/7/18,计算机网络安全11网络攻击的信息收集方法,3/60,黑客和黑客技术,如何理解hackerHacker的定义?Hacker代表了数字时代的一种文化强盗和侠客如何界定?警察和匪徒如何界定?从道德和技术两方面来看道德:服从人民大众的利益技术:过硬还需要
2、强烈的热忱和坚持不懈的毅力黑客技术防护技术的一部分发展黑客技术,也是为了更加有效地实施系统防护技术繁多,没有明显的理论指导,2018/7/18,计算机网络安全11网络攻击的信息收集方法,4/60,黑客技术,从一个攻击过程来看待黑客技术攻击过程中涉及到的技术都可以看成黑客技术有时候,一种技术既是黑客技术,也是网络管理技术,或者网络防护技术粗分类信息收集技术:入侵之前的准备入侵技术:拒绝服务、欺骗、溢出、病毒邮件,信息获取:入侵之后的增值服务,如木马、解口令等藏匿:希望自己被发现吗?其他,比如针对cookie或者一些协议、机制的攻击,2018/7/18,计算机网络安全11网络攻击的信息收集方法,5
3、/60,为什么要信息收集,信息收集技术也是一把双刃剑黑客在攻击之前需要收集信息,才能实施有效的攻击管理员用信息收集技术来发现系统的弱点,攻击工具攻击命令,攻击机制,目标网络,目标系统,攻击者,漏洞扫描评估加固,攻击过程,实时入侵检测,知己知彼,百战不殆,2018/7/18,计算机网络安全11网络攻击的信息收集方法,6/60,信息收集过程,信息收集是一个综合过程从一些社会信息入手找到网络地址范围找到关键的机器地址找到开放端口和入口点找到系统的制造商和版本,2018/7/18,计算机网络安全11网络攻击的信息收集方法,7/60,社会信息,DNS域名网络实名管理人员在新闻组或者论坛上的求助信息也会泄
4、漏信息网站的网页中新闻报道例如:XX公司采用XX系统,这样的信息可以合法地获取,2018/7/18,计算机网络安全11网络攻击的信息收集方法,8/60,例:来自网站的公开信息,2018/7/18,计算机网络安全11网络攻击的信息收集方法,9/60,非网络技术的探查手段,社会工程通过一些公开的信息,获取支持人员的信任假冒网管人员,骗取员工的信任(安装木马、修改口令等)查电话簿、XX手册(指南)在信息发达的社会中,只要存在,就没有找不到的,是这样吗?通过搜索引擎可以获取到大量的信息搜索引擎提供的信息的有效性?,2018/7/18,计算机网络安全11网络攻击的信息收集方法,10/60,信息收集:wh
5、ois,Whois为Internet提供目录服务,包括名字、通讯地址、电话号码、电子邮箱、IP地址等信息Client/Server结构Client端发出请求,接受结果,并按格式显示到客户屏幕上Server端建立数据库,接受注册请求提供在线查询服务客户程序UNIX系统自带whois程序Windows也有一些工具直接通过Web查询,2018/7/18,计算机网络安全11网络攻击的信息收集方法,11/60,Spade工具,2018/7/18,计算机网络安全11网络攻击的信息收集方法,12/60,基于Web的Whois示例,2018/7/18,计算机网络安全11网络攻击的信息收集方法,13/60,信息
6、收集:nslookup,关于DNS是一个全球分布式数据库,对于每一个DNS节点,包含有该节点所在的机器的信息、邮件服务器的信息、主机CPU和操作系统等信息Nslookup是一个功能强大的客户程序熟悉nslookup,就可以把DNS数据库中的信息挖掘出来分两种运行模式非交互式,通过命令行提交命令交互式:可以访问DNS数据库中所有开放的信息UNIX/LINUX环境下的host命令有类似的功能,2018/7/18,计算机网络安全11网络攻击的信息收集方法,14/60,DNS节点的例子,2018/7/18,计算机网络安全11网络攻击的信息收集方法,15/60,DNS & nslookup,通过nslo
7、okup可以做什么?区域传送:可以列出DNS节点中所有的配置信息这是为了主DNS和辅DNS之间同步复制才使用的查看一个域名,根据域名找到该域的域名服务器反向解析,根据IP地址得到域名名称从一台域名服务器可以得到哪些信息?如果支持区域传送,不用客气,拿下来看一看否则的话,至少可以发现以下信息邮件服务器的信息,在实用环境中,邮件服务器往往在防火墙附近,甚至就在同一台机器上其他,比如ns、www、ftp等,这些机器可能被托管给ISP,2018/7/18,计算机网络安全11网络攻击的信息收集方法,16/60,Nslookup交互环境中常用命令,Server, 指定DNS服务器Set q=XXX,设定查
8、询类型Ls, 列出记录domain name, or IP address,2018/7/18,计算机网络安全11网络攻击的信息收集方法,17/60,关于DNS & nslookup,注意的地方关闭未授权区域传送功能或者,在防火墙上禁止53号TCP端口,DNS查询请求使用53号UDP端口区分内部DNS和外部DNS内部信息不出现在外部DNS中DNS中该公开的信息总是要公开的,否则,域名解析的功能就无效了,没有MX记录就不能支持邮件系统Windows 2000中的DNS与AD集成在一起,增加了新的功能SRV记录动态DNS在获得灵活性的同时,更加要注意安全,2018/7/18,计算机网络安全11网络
9、攻击的信息收集方法,18/60,Ping & Traceroute,Ping: Packet InterNet Groper用来判断远程设备可访问性最常用的方法原理:发送ICMP Echo消息,然后等待ICMP Reply消息Traceroute用来发现实际的路由路径原理:给目标的一个无效端口发送一系列UDP,其TTL依次增一,中间路由器返回一个ICMP Time Exceeded消息,2018/7/18,计算机网络安全11网络攻击的信息收集方法,19/60,ICMP简介,Internet Control Message Protocol,本身是IP的一部分,用途网关或者目标机器利用ICMP与
10、源通讯,当出现问题时,提供反馈信息用于报告错误在IP协议栈中必须实现特点其控制能力并不用于保证传输的可靠性它本身也不是可靠传输的并不用来反映ICMP消息的传输情况,2018/7/18,计算机网络安全11网络攻击的信息收集方法,20/60,ICMP数据包,ICMP数据包直接包含在IP数据包的净荷数据中,IP头中协议类型为1ICMP数据的第一个字节代表ICMP消息的类型,它决定了后续数据的格式,2018/7/18,计算机网络安全11网络攻击的信息收集方法,21/60,ICMP消息类型(部分),0 Echo Reply3 Destination Unreachable4 Source Quench
11、5 Redirect 8 Echo 11 Time Exceeded,12 Parameter Problem 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply,2018/7/18,计算机网络安全11网络攻击的信息收集方法,22/60,ICMP Echo消息,类型:0表示Echo Reply消息,8表示Echo消息代码:0标识符:标识一个会话,例如,用进程ID序号:可能这样用:每个请求增一选项数据:回显,2018/7/18,计算机网络安全11网络攻击的信息收集方法,23/60,ICMP Tim
12、e Exceeded消息,类型:11代码:0表示传输过程中时间到,1表示分片装配过程中时间到IP首部+原始IP数据包中前8个字节,2018/7/18,计算机网络安全11网络攻击的信息收集方法,24/60,ICMP Destination Unreachable消息,类型:3代码:0表示网络不可达,1表示主机不可达;2表示协议不可达;3表示端口不可达;等等IP首部+原始IP数据包中前8个字节,2018/7/18,计算机网络安全11网络攻击的信息收集方法,25/60,Ping工具,发送ICMP Echo消息,等待Echo Reply消息可以确定网络和外部主机的状态可以用来调试网络的软件和硬件每秒发
13、送一个包,显示响应的输出,计算网络来回的时间最后显示统计结果丢包率,2018/7/18,计算机网络安全11网络攻击的信息收集方法,26/60,关于Ping,Ping有许多命令行参数,可以改变缺省的行为可以用来发现一台主机是否active为什么不能ping成功?没有路由,网关设置?网卡没有配置正确增大timeout值防火墙阻止掉了“Ping to death”发送特大ping数据包(65535字节)导致机器崩溃许多老的操作系统都受影响有兴趣可以找ping的源代码读一读,2018/7/18,计算机网络安全11网络攻击的信息收集方法,27/60,traceroute,发送一系列UDP包(缺省大小为3
14、8字节),其TTL字段从1开始递增,然后监听来自路径上网关发回来的ICMP Time Exceeded应答消息UDP包的端口设置为一个不太可能用到的值(缺省为33434),因此,目标会送回一个ICMP Destination Unreachable消息,指示端口不可达,2018/7/18,计算机网络安全11网络攻击的信息收集方法,28/60,关于traceroute,traceroute有一些命令行参数,可以改变缺省的行为可以用来发现到一台主机的路径,为勾画出网络拓扑图提供最基本的依据Windows平台上为“tracert”Traceroute允许指定宽松的源路由选项。不过,许多防火墙是禁止带
15、源路由的包的,2018/7/18,计算机网络安全11网络攻击的信息收集方法,29/60,指定源路由示例,2018/7/18,计算机网络安全11网络攻击的信息收集方法,30/60,信息收集:扫描技术,Port scanning: 找出网络中开放的服务基于TCP/IP协议,对各种网络服务,无论是主机或者防火墙、路由器都适用端口扫描可以确认各种配置的正确性,避免遭受不必要的攻击用途,双刃剑管理员可以用来确保自己系统的安全性黑客用来探查系统的入侵点端口扫描的技术已经非常成熟,目前有大量的商业、非商业的扫描器,2018/7/18,计算机网络安全11网络攻击的信息收集方法,31/60,扫描器的重要性,扫描
16、器能够暴露网络上潜在的脆弱性无论扫描器被管理员利用,或者被黑客利用,都有助于加强系统的安全性它能使得漏洞被及早发现,而漏洞迟早会被发现的扫描器可以满足很多人的好奇心扫描器除了能扫描端口,往往还能够发现系统存活情况,以及哪些服务在运行用已知的漏洞测试这些系统对一批机器进行测试,简单的迭代过程有进一步的功能,包括操作系统辨识、应用系统识别,2018/7/18,计算机网络安全11网络攻击的信息收集方法,32/60,扫描器历史,早期80年代,网络没有普及,上网的好奇心驱使许多年轻人通过Modem拨号进入到UNIX系统中。这时候的手段需要大量的手工操作,于是,出现了war dialer自动扫描,并记录下
17、扫描的结果现代的扫描器要先进得多SATAN: Security Administrators Tool for Analyzing Networks 1995年4月发布,引起了新闻界的轰动界面上的突破,从命令行走向图形界面(使用HTML界面),不依赖于X两位作者的影响(Dan Farmer写过网络安全检查工具COPS,另一位Weitse Venema是TCP_Wrapper的作者)Nmap作者为Fyodor,技术上,是最先进的扫描技术大集成结合了功能强大的通过栈指纹来识别操作系统的众多技术,2018/7/18,计算机网络安全11网络攻击的信息收集方法,33/60,端口扫描技术,基本的TCP c
18、onnect()扫描TCP SYN扫描(半开连接扫描, half open)TCP Fin扫描(秘密扫描,stealth)TCP ftp proxy扫描(bounce attack)用IP分片进行SYN/FIN扫描(躲开包过滤防火墙)UDP recvfrom扫描UDP ICMP端口不可达扫描Reverse-ident扫描,2018/7/18,计算机网络安全11网络攻击的信息收集方法,34/60,回顾:TCP连接的建立和终止时序图,2018/7/18,计算机网络安全11网络攻击的信息收集方法,35/60,TCP连接知识,TCP数据包6个标志位URG: 紧急数据包ACK: 确认PSH: 请求急迫操
19、作RST: 连接复位SYN: 连接请求FIN: 结束TCP/IP的一些实现原则当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包 当一个RST数据包到达一个监听端口,RST被丢弃,当一个RST数据包到达一个关闭的端口,RST被丢弃 当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包 当一个不包含SYN位的数据包到达一个监听端口时,数据包被丢弃 当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN|ACK数据包 当一个FIN数据包到达一个监听端口时,数据包被丢弃,2018/7/18,计算机网络安全11网络
20、攻击的信息收集方法,36/60,TCP connect()扫描,做法扫描器调用socket的connect()函数发起一个正常的连接如果端口是打开的,则连接成功否则,连接失败优点简单,不需要特殊的权限缺点服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描,2018/7/18,计算机网络安全11网络攻击的信息收集方法,37/60,TCP SYN扫描,做法向目标主机的特定端口发送一个SYN包如果应答包为RST包,则说明该端口是关闭的否则,会收到一个SYN|ACK包。于是,发送一个RST,停止建立连接由于连接没有完全建立,所以称为“半开连接扫描”优点很少有系统会记
21、录这样的行为缺点在UNIX平台上,需要root权限才可以建立这样的SYN数据包,2018/7/18,计算机网络安全11网络攻击的信息收集方法,38/60,TCP Fin扫描(秘密扫描),做法扫描器发送一个FIN数据包如果端口关闭的,则远程主机丢弃该包,并送回一个RST包否则的话,远程主机丢弃该包,不回送变种,组合其他的标记优点不是TCP建立连接的过程,所以比较隐蔽缺点与SYN扫描类似,也需要构造专门的数据包在Windows平台无效,总是发送RST包,2018/7/18,计算机网络安全11网络攻击的信息收集方法,39/60,分片扫描,它本身并不是一种新的扫描方法,而是其他扫描技术的变种,特别是S
22、YN扫描和FIN扫描基本思想是,把TCP包分成很小的分片,从而让它们能够通过包过滤防火墙注意,有些防火墙会丢弃太小的包而有些服务程序在处理这样的包的时候会出现异常,或者性能下降,或者出现错误,2018/7/18,计算机网络安全11网络攻击的信息收集方法,40/60,Reverse-ident扫描,Ident协议使得可以发现任何一个通过TCP连接的进程的所有者的用户名,即使该进程并没有发起该连接只有在TCP全连接之后才有效TCP端口113例如可以先连接到80端口,然后通过identd来发现服务器是否在root下运行建议关闭ident服务,或者在防火墙上禁止,除非是为了审计的目的,2018/7/1
23、8,计算机网络安全11网络攻击的信息收集方法,41/60,TCP ftp proxy扫描,FTP bounce attack做法在ftp协议中,数据连接可以与控制连接位于不同的机器上让ftp server与目标主机建立连接,而且目标主机的端口可以指定如果端口打开,则可以传输否则,返回425 Cant builddata connection: Connectionrefused. Ftp这个缺陷还可以被用来向目标(邮件,新闻)传送匿名信息优点:这种技术可以用来穿透防火墙缺点:慢,且有些ftp server禁止这种特性,2018/7/18,计算机网络安全11网络攻击的信息收集方法,42/60,U
24、DP ICMP端口不可达扫描,利用UDP协议做法开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包,所以利用UDP包进行扫描非常困难有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMP Port Unreach错误缺点速度慢,而且UDP包和ICMP包都不是可靠的需要root权限,才能读取ICMP Port Unreach消息一个应用例子Solaris的rpcbind端口(UDP)位于32770之上,这时可以通过这种技术来探测,2018/7/18,计算机网络安全11网络攻击的信息收集方法,43/60,UDP recvfrom() & write()扫描,非root用户
25、不能直接读取ICMP Port Unreach消息,但是Linux提供了一种方法可以间接通知到做法第二次对一个关闭的UDP端口调用write()总是会失败经验:在ICMP错误到达之前,在UDP端口上调用recvfrom()会返回EAGAIN(重试),否则会返回ECONNREFUSED(连接拒绝),2018/7/18,计算机网络安全11网络攻击的信息收集方法,44/60,nmap,By Fyodor作者研究了诸多扫描器,每一种扫描器都有自己的优点,把所有这些技术集成起来,写成了nmap,当前版本为2.53/2.54源码开放,C语言两篇技术文档The Art of Port ScanningRem
26、ote OS detection via TCP/IP Stack FingerPrinting除了扫描功能,更重要的是,可以识别操作系统,甚至是内核的版本,2018/7/18,计算机网络安全11网络攻击的信息收集方法,45/60,Nmap用于扫描,2018/7/18,计算机网络安全11网络攻击的信息收集方法,46/60,Nmap用于扫描(续),2018/7/18,计算机网络安全11网络攻击的信息收集方法,47/60,Pinger,2018/7/18,计算机网络安全11网络攻击的信息收集方法,48/60,扫描器,SATANstrobePingerPortscanSuperscan,2018/7
27、/18,计算机网络安全11网络攻击的信息收集方法,49/60,操作系统辨识,操作系统辨识的动机许多漏洞是系统相关的,而且往往与相应的版本对应从操作系统或者应用系统的具体实现中发掘出来的攻击手段都需要辨识系统操作系统的信息还可以与其他信息结合起来,比如漏洞库,或者社会诈骗(社会工程,social engineering)如何辨识一个操作系统一些端口服务的提示信息,例如,telnet、http、ftp等服务的提示信息TCP/IP栈指纹DNS泄漏出OS系统,2018/7/18,计算机网络安全11网络攻击的信息收集方法,50/60,端口服务提供的信息,Telnet服务Http服务Ftp服务,2018/
28、7/18,计算机网络安全11网络攻击的信息收集方法,51/60,某大学的ftp进站页面,2018/7/18,计算机网络安全11网络攻击的信息收集方法,52/60,栈指纹技术,定义:利用TCP/IP协议栈实现上的特点来辨识一个操作系统技术导向可辨识的OS的种类,包括哪些操作系统结论的精确度,细微的版本差异是否能识别一些工具Checkos, by ShokQueso, by SavageNmap, by Fyodor,2018/7/18,计算机网络安全11网络攻击的信息收集方法,53/60,栈指纹识别技术,做法:寻找不同操作系统之间在处理网络数据包上的差异,并且把足够多的差异组合起来,以便精确地识
29、别出一个系统的OS版本配置能力扩展性,新的OS,版本不断推出定义一种配置语言或者格式,2018/7/18,计算机网络安全11网络攻击的信息收集方法,54/60,栈指纹识别方法,常用的手段给一个开放的端口发送FIN包,有些操作系统有回应,有的没有回应对于非正常数据包的反应比如,发送一个包含未定义TCP标记的数据包根据TCP连接的序列号风格寻找初始序列号之间的规律TCP初始化窗口有些操作系统会使用一些固定的窗口大小DF位(Dont Fragment bit )分片处理方式分片重叠的情况下,处理会不同。如何确定处理方式?,2018/7/18,计算机网络安全11网络攻击的信息收集方法,55/60,栈指
30、纹识别方法(续),ICMP协议ICMP错误消息的限制发送一批UDP包给高端关闭的端口,然后计算返回来的不可达错误消息ICMP端口不可达消息的大小通常情况下送回IP头+8个字节,但是个别系统送回的数据更多一些ICMP回应消息中对于校验和的处理方法不同ICMP回应消息中,TOS域的值TCP选项这里充满了各种组合的可能性应答方式“Query-Reply”,可以把多个选项放到一个包中SYN Flooding对抗测试先发送8个SYN包,看还能不能建立连接,确认它是否受此攻击,2018/7/18,计算机网络安全11网络攻击的信息收集方法,56/60,Nmap的指纹库,指纹模板文件:nmap-os-fing
31、erprints.txt首先定义一组测试,例如,# TEST DESCRIPTION:# Tseq is the TCP sequenceability test# T1 is a SYN packet with a bunch of TCP options to open port# T2 is a NULL packet w/options to open port# T3 is a SYN|FIN|URG|PSH packet w/options to open port# T4 is an ACK to open port w/options# T5 is a SYN to close
32、d port w/options# T6 is an ACK to closed port w/options# T7 is a FIN|PSH|URG to a closed port w/options# PU is a UDP packet to a closed port,2018/7/18,计算机网络安全11网络攻击的信息收集方法,57/60,Nmap的指纹库(续),例如Fingerprint Linux kernel 2.2.13TSeq(Class=RI%gcd=24CA0)T1(DF=Y%W=7F53%ACK=S+%Flags=AS%Ops=MENNTNW)T2(Resp=N)
33、T3(Resp=Y%DF=Y%W=7F53%ACK=S+%Flags=AS%Ops=MENNTNW)T4(DF=N%W=0%ACK=O%Flags=R%Ops=)T5(DF=N%W=0%ACK=S+%Flags=AR%Ops=)T6(DF=N%W=0%ACK=O%Flags=R%Ops=)T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)PU(DF=N%TOS=C0|A0|0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=F%ULEN=134%DAT=E),2018/7/18,计算机网络安全11网络攻击的信息收集方法,58/60,Nmap识别操作系统
34、的例子,2018/7/18,计算机网络安全11网络攻击的信息收集方法,59/60,Nmap的图形界面&探寻数据包示意图,2018/7/18,计算机网络安全11网络攻击的信息收集方法,60/60,参考资料,书“Hackers Beware”,中文版黑客攻击透析与防范 文章Remote OS detection via TCP/IP Stack FingerPrinting,http:/www.insecure.org/nmap/nmap-fingerprinting-article.htmlThe Art of Port Scanning, http:/www.insecure.org/nmap/nmap_doc.htmlWeb站点http:/