网络扫描技术刘鹏北京大学信息科学技术学院软件研究所网络和信息安全研究室2内容TCP/IP基础网络信息收集目标探测网络扫描查点从系统中获取有效账号或资源名网络监听截获网络上的数据包3安全层次安全的密码算法安全协议网络安全系统安全应用安全4TCP/IP基础网络体系架构重要协议的数据包格式IP、ICMPTCP、UDPTCP连接一些上层协议5网络体系架构OSI参考模型TCP/IP模型6TCP/IP协议栈7协议栈各层数据包结构8IP数据包格式9IP首部说明版本号,目前取值4首部长度,4个字节为单位,取值范围5~15服务类型,指定传输的优先级、传输速度、可靠性和吞吐量等报文总长度,最大长度为65535字节报文标识,唯一标识一个数据报,如果数据报分段,则每个分段的标识都一样标志,最高位未使用,定义为0,其余两位为DF(不分段)和MF(更多分段)段偏移量,以8个字节为单位,指出该分段的第一个数据字在原始数据报中的偏移位置10IP首部说明(续)生存时间,取值0~255,以秒为单位,每经过一个路由节点减1,为0时被丢弃协议,指明该数据报的协议类型,1为ICMP,4为IP,6为TCP,17为UDP等首部校验和,每通过一次网关都要重新计算该值,用于保证IP首部的完整性选项,长度可变,提供某些场合下需要的控制功能,IP首部的长度必须是4个字节的整数倍,如果选项长度不是4的整数倍,必须填充数据11IP地址保留地址,只用于内部通信:10.0.0.0-10.255.255.255172.16.0.0-172.31.255.255192.168.0.0-192.168.255.2551.0.0.0-127.255.255.255128.0.0.0-191.255.255.255192.0.0.0-223.255.255.255224.0.0.0-239.255.255.255240.0.0.0-247.255.255.25512特殊意义的IP地址全0的IP地址表示本机以0作网络号的IP地址表示当前的网络32比特全为1的IP地址表示局域网的广播地址127.xx.yy.zz保留做回路(loopback)测试13ICMP协议InternetControlMessageProtocol,本身是IP的一部分,用途网关或者目标机器利用ICMP与源通讯,当出现问题时,提供反馈信息用于报告错误在IP协议栈中必须实现特点:其控制能力并不用于保证传输的可靠性它本身也不是可靠传输的并不用来反映ICMP报文的传输情况14ICMP数据包ICMP数据包直接包含在IP数据包的净荷数据中,IP头中协议类型为1ICMP数据的第一个字节代表ICMP报文的类型,它决定了后续数据的格式15ICMP报文类型0EchoReply3DestinationUnreachable4SourceQuench5Redirect8Echo11TimeExceeded12ParameterProblem13Timestamp14TimestampReply15InformationRequest16InformationReply17AddressMaskRequest18AddressMaskReply16ICMP报文分类ICMP差错报文目的不可达报文(类型3)超时报文(类型11)参数出错报文(类型12)ICMP控制报文报源抑制报文(类型4)重定向(类型5)ICMP请求/应答报文回送请求和响应报文(类型0和8)时间戳请求和响应报文(类型13和14)地址掩码请求和响应报文(类型17和18)其他17ICMPEcho报文类型:0表示EchoReply,8表示Echo代码:0标识符:标识一个会话,例如,用进程ID序号:可能这样用:每个请求增1选项数据:回显18ICMPTimeExceeded报文类型:11代码:0表示传输过程中时间到,1表示分片装配过程中时间到出错的IP包IP首部+原始IP数据包中前8个字节19ICMPDestinationUnreachable报文类型:3代码:0表示网络不可达,1表示主机不可达;2表示协议不可达;3表示端口不可达;等等出错的IP包的IP首部+原始IP数据包中前8个字节20TCP数据包格式21TCP首部说明源端口号和目的端口号:源和目的主机的IP地址加上端口号构成一个TCP连接序号和确认号:序号为该TCP数据包的第一个数据字在所发送的数据流中的偏移量;确认号为希望接收的下一个数据字的序号;首部长度,以4个字节为单位,通常为20个字节6个标志位:URG:如果使用了紧急指针,URG置1,紧急指针为当前序号到紧急数据位置的偏移量ACK:为1表示确认号有效,为0表示该TCP数据包不包含确认信息PSH:表示是带有PUSH标志的数据,接收到数据后不必等缓冲区满再发送22TCP首部说明(续)RST:用于连接复位,也可用于拒绝非法的数据或拒绝连接请求SYN:用于建立连接,连接请求时SYN=1,ACK=0;响应连接请求时SYN=1,ACK=1FIN:用于释放连接,表示发送方已经没有供发送的数据窗口大小:表示在确认字节后还可以发送字节数,用于流量控制校验和:覆盖了整个数据包,包括对数据包的首部和数据选项:常见的选项是MSS(MaximumSegmentSize)23UDP数据包格式24TCP连接的建立和终止25TCP连接若干要点TCP/IP的一些实现原则当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包当一个RST数据包到达一个监听端口,RST被丢弃当一个RST数据包到达一个关闭的端口,RST被丢弃当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包当一个不包含SYN位的数据包到达一个监听端口时,数据包被丢弃当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN|ACK数据包当一个FIN数据包到达一个监听端口时,数据包被丢弃26常用的上层协议DNS:53/tcp,udpFTP:20,21/tcptelnet:23/tcpHTTP:80/tcpNNTP:119/tcpSMTP:25/tcpPOP3:110/tcp……参考:IANA提供的port-numbers.txt27网络攻击的完整过程28信息收集信息收集技术是一把双刃剑黑客在攻击之前需要收集信息,才能实施有效的攻击安全管理员用信息收集技术来发现系统的弱点并进行修补攻击工具攻击命令攻击机制目标网络网络漏洞目标系统系统漏洞攻击者漏洞扫描评估加固攻击过程实时入侵检测知己知彼,百战不殆29信息收集过程信息收集(踩点,footprint)是一个综合过程从一些社会信息入手找到网络地址范围找到关键的机器地址找到开放端口和入口点找到系统的制造商和版本……30攻击者需要的信息域名经过网络可以到达的IP地址每个主机上运行的TCP和UDP服务系统体系结构访问控制机制系统信息(用户名和用户组名、系统标识、路由表、SNMP信息等)其他信息,如模拟/数字电话号码、认证机制等……31社会信息DNS域名网络实名管理人员在新闻组或者论坛上的求助信息也会泄漏信息网站的网页中新闻报道例如:XX公司采用XX系统,…这样的信息可以合法地获取32例:来自网站的公开信息33网站上令人感兴趣的信息机构所在位置与其关系紧密的公司或实体电话号码联系人姓名和电子邮件地址指示所用安全机制的类型的私密或安全策略与其相关联的Web服务器链接此外,尝试查阅HTML源代码34非网络技术的探查手段社会工程通过一些公开的信息,获取支持人员的信任假冒网管人员,骗取员工的信任(安装木马、修改口令等)查电话簿、XX手册(指南)在信息发达的社会中,只要存在,就没有找不到的,是这样吗?通过搜索引擎可以获取到大量的信息搜索引擎提供的信息的有效性?(google、AltaVista)35信息收集:whoisWhois为Internet提供目录服务,包括名字、通讯地址、电话号码、电子邮箱、IP地址等信息Client/Server结构Client端•发出请求,接受结果,并按格式显示到客户屏幕上Server端•建立数据库,接受注册请求•提供在线查询服务客户程序UNIX系统自带whois程序Windows也有一些工具直接通过Web查询36例:SamSpade工具37各种whois数据来源多数Unix提供了whois,fwhois由ChrisCappuccio创建……如果需要查询com、net、edu、org以外的域可以查询以下的whois服务器地址分配地址分配美国政府部门服务器通过这些查询可以得到黑客感兴趣的一些信息:注册机构:显示特定的注册信息和相关的whois服务器;机构本身:显示与某个特定机构相关的所有信息;域名:显示与某个特定域名相关的所有信息网络:显示与某个特定网络或IP地址相关的所有信息;联系点:显示与某位特定人员(通常是管理方面联系人)相关的所有信息各种whois数据来源(续)39公共数据库安全对策考虑使用免费电话或不在本机构电话交换机范围内的电话,避免拨入攻击和社交工程伪造虚假的管理方面联系人,期望以此捕获潜在的社交工程师加强注册机构的信息更新方式,可以使用安全的认证机制弱的认证方式:电子邮件的FROM字段1998年对AOL的攻击-修改其域名信息40信息收集:DNS查询关于DNS是一个全球分布式数据库,对于每一个DNS节点,包含有该节点所在的机器的信息、邮件服务器的信息、主机CPU和操作系统等信息Nslookup是一个功能强大的客户程序熟悉nslookup,就可以把DNS数据库中的信息挖掘出来分两种运行模式•非交互式,通过命令行提交命令•交互式:可以访问DNS数据库中所有开放的信息UNIX/LINUX环境下的host命令有类似的功能41DNS节点的例子42DNS&nslookup通过nslookup可以做什么?区域传送:可以列出DNS节点中所有的配置信息•这是为了主DNS和辅DNS之间同步复制才使用的查看一个域名,根据域名找到该域的域名服务器反向解析,根据IP地址得到域名名称从一台域名服务器可以得到哪些信息?如果支持区域传送,可以从中获取大量信息否则的话,至少可以发现以下信息•邮件服务器的信息,在实用环境中,邮件服务器往往在防火墙附近,甚至就在同一台机器上•其他,比如ns、、ftp等,这些机器可能被托管给ISP43nslookup交互环境中常用命令server,指定DNS服务器settype=XXX,设定查询类型ls,列出记录[domainname,orIPaddress]……44关于DNS&nslookup的安全注意的地方关闭未授权区域传送(zonetransfer)功能•或者,在防火墙上禁止53号TCP端口,DNS查询请求使用53号UDP端口区分内部DNS和外部DNS•内部信息不出现在外部DNS中DNS中该公开的信息总是要公开的,否则,域名解析的功能就无效了,没有MX记录就不能支持邮件系统Windows2000中的DNS与AD集成在一起,增加了新的功能•SRV记录•动态DNS在获得灵活性的同时,更加要注意