1 / 155

网络扫描技术

网络扫描技术. 刘鹏 北京大学信息科学技术学院软件研究所 网络和信息安全研究室. 内容. TCP/IP 基础 网络信息收集 目标探测 网络扫描 查点 从系统中获取有效账号或资源名 网络监听 截获网络上的数据包. 安全层次. 应用安全. 系统安全. 网络安全. 安全协议. 安全的密码算法. TCP/IP 基础. 网络体系架构 重要协议的数据包格式 IP 、 ICMP TCP 、 UDP TCP 连接 一些上层协议. 网络体系架构. OSI 参考模型. TCP/IP 模型. TCP/IP 协议栈. 协议栈各层数据包结构.

aelwen
Download Presentation

网络扫描技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 网络扫描技术 刘鹏 北京大学信息科学技术学院软件研究所 网络和信息安全研究室

  2. 内容 • TCP/IP基础 • 网络信息收集 • 目标探测 • 网络扫描 • 查点 • 从系统中获取有效账号或资源名 • 网络监听 • 截获网络上的数据包

  3. 安全层次 应用安全 系统安全 网络安全 安全协议 安全的密码算法

  4. TCP/IP基础 • 网络体系架构 • 重要协议的数据包格式 • IP、ICMP • TCP、UDP • TCP连接 • 一些上层协议

  5. 网络体系架构 OSI参考模型 TCP/IP模型

  6. TCP/IP协议栈

  7. 协议栈各层数据包结构

  8. IP数据包格式

  9. IP首部说明 • 版本号,目前取值4 • 首部长度,4个字节为单位,取值范围5~15 • 服务类型,指定传输的优先级、传输速度、可靠性和吞吐量等 • 报文总长度,最大长度为65535字节 • 报文标识,唯一标识一个数据报,如果数据报分段,则每个分段的标识都一样 • 标志,最高位未使用,定义为0,其余两位为DF(不分段)和MF(更多分段) • 段偏移量,以8个字节为单位,指出该分段的第一个数据字在原始数据报中的偏移位置

  10. IP首部说明(续) • 生存时间,取值0~255,以秒为单位,每经过一个路由节点减1,为0时被丢弃 • 协议,指明该数据报的协议类型,1为ICMP,4为IP,6为TCP,17为UDP等 • 首部校验和,每通过一次网关都要重新计算该值,用于保证IP首部的完整性 • 选项,长度可变,提供某些场合下需要的控制功能,IP首部的长度必须是4个字节的整数倍,如果选项长度不是4的整数倍,必须填充数据

  11. IP地址 • 保留地址,只用于内部通信: • 10.0.0.0 - 10.255.255.255 • 172.16.0.0 - 172.31.255.255 • 192.168.0.0 - 192.168.255.255 1.0.0.0-127.255.255.255 128.0.0.0-191.255.255.255 192.0.0.0-223.255.255.255 224.0.0.0-239.255.255.255 240.0.0.0-247.255.255.255

  12. 特殊意义的IP地址 • 全0的IP地址表示本机 • 以0作网络号的IP地址表示当前的网络 • 32比特全为1的IP地址表示局域网的广播地址 • 127.xx.yy.zz保留做回路(loopback)测试

  13. ICMP协议 • Internet Control Message Protocol,本身是IP的一部分,用途 • 网关或者目标机器利用ICMP与源通讯,当出现问题时,提供反馈信息 • 用于报告错误 • 在IP协议栈中必须实现 • 特点: • 其控制能力并不用于保证传输的可靠性 • 它本身也不是可靠传输的 • 并不用来反映ICMP报文的传输情况

  14. ICMP数据包 • ICMP数据包直接包含在IP数据包的净荷数据中,IP头中协议类型为1 • ICMP数据的第一个字节代表ICMP报文的类型,它决定了后续数据的格式

  15. ICMP报文类型 • 0 Echo Reply • 3 Destination Unreachable • 4 Source Quench • 5 Redirect • 8 Echo • 11 Time Exceeded • 12 Parameter Problem • 13 Timestamp • 14 Timestamp Reply • 15 Information Request • 16 Information Reply • 17 Address Mask Request • 18 Address Mask Reply

  16. ICMP报文分类 • ICMP差错报文 • 目的不可达报文(类型3) • 超时报文(类型11) • 参数出错报文(类型12) • ICMP控制报文 • 报源抑制报文(类型4) • 重定向(类型5) • ICMP请求/应答报文 • 回送请求和响应报文(类型0和8) • 时间戳请求和响应报文(类型13和14) • 地址掩码请求和响应报文(类型17和18) • 其他

  17. ICMP Echo报文 • 类型:0表示Echo Reply,8表示Echo • 代码:0 • 标识符:标识一个会话,例如,用进程ID • 序号:可能这样用:每个请求增1 • 选项数据:回显

  18. ICMP Time Exceeded报文 • 类型:11 • 代码:0表示传输过程中时间到,1表示分片装配过程中时间到 • 出错的IP包IP首部+原始IP数据包中前8个字节

  19. ICMP Destination Unreachable报文 • 类型:3 • 代码:0表示网络不可达,1表示主机不可达;2表示协议不可达;3表示端口不可达;等等 • 出错的IP包的IP首部+原始IP数据包中前8个字节

  20. TCP数据包格式

  21. TCP首部说明 • 源端口号和目的端口号:源和目的主机的IP地址加上端口号构成一个TCP连接 • 序号和确认号:序号为该TCP数据包的第一个数据字在所发送的数据流中的偏移量;确认号为希望接收的下一个数据字的序号; • 首部长度,以4个字节为单位,通常为20个字节 • 6个标志位: • URG:如果使用了紧急指针,URG置1,紧急指针为当前序号到紧急数据位置的偏移量 • ACK:为1表示确认号有效,为0表示该TCP数据包不包含确认信息 • PSH:表示是带有PUSH标志的数据,接收到数据后不必等缓冲区满再发送

  22. TCP首部说明(续) • RST:用于连接复位,也可用于拒绝非法的数据或拒绝连接请求 • SYN:用于建立连接,连接请求时SYN=1,ACK=0;响应连接请求时SYN=1,ACK=1 • FIN:用于释放连接,表示发送方已经没有供发送的数据 • 窗口大小:表示在确认字节后还可以发送字节数,用于流量控制 • 校验和:覆盖了整个数据包,包括对数据包的首部和数据 • 选项:常见的选项是MSS(Maximum Segment Size)

  23. UDP数据包格式

  24. TCP连接的建立和终止

  25. TCP/IP的一些实现原则 当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包 当一个RST数据包到达一个监听端口,RST被丢弃 当一个RST数据包到达一个关闭的端口,RST被丢弃 当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包 TCP连接若干要点 • 当一个不包含SYN位的数据包到达一个监听端口时,数据包被丢弃 • 当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN|ACK数据包 • 当一个FIN数据包到达一个监听端口时,数据包被丢弃

  26. 常用的上层协议 • DNS: 53/tcp,udp • FTP: 20,21/tcp • telnet: 23/tcp • HTTP: 80/tcp • NNTP: 119/tcp • SMTP: 25/tcp • POP3: 110/tcp …… 参考:IANA提供的port-numbers.txt

  27. 网络攻击的完整过程

  28. 网络漏洞 系统漏洞 信息收集 • 信息收集技术是一把双刃剑 • 黑客在攻击之前需要收集信息,才能实施有效的攻击 • 安全管理员用信息收集技术来发现系统的弱点并进行修补 攻击机制 目标系统 实时 入侵 检测 漏洞扫描 评估 加固 攻击工具 攻击命令 攻击过程 目标网络 攻击者 知己知彼,百战不殆

  29. 信息收集过程 • 信息收集(踩点,footprint)是一个综合过程 • 从一些社会信息入手 • 找到网络地址范围 • 找到关键的机器地址 • 找到开放端口和入口点 • 找到系统的制造商和版本 ……

  30. 攻击者需要的信息 • 域名 • 经过网络可以到达的IP地址 • 每个主机上运行的TCP和UDP服务 • 系统体系结构 • 访问控制机制 • 系统信息(用户名和用户组名、系统标识、路由表、SNMP信息等) • 其他信息,如模拟/数字电话号码、认证机制等 ……

  31. 社会信息 • DNS域名 • 网络实名 • 管理人员在新闻组或者论坛上的求助信息也会泄漏信息 • 网站的网页中 • 新闻报道 • 例如:XX公司采用XX系统,… • 这样的信息可以合法地获取

  32. 例:来自网站的公开信息

  33. 网站上令人感兴趣的信息 • 机构所在位置 • 与其关系紧密的公司或实体 • 电话号码 • 联系人姓名和电子邮件地址 • 指示所用安全机制的类型的私密或安全策略 • 与其相关联的Web服务器链接 此外,尝试查阅HTML源代码

  34. 非网络技术的探查手段 • 社会工程 • 通过一些公开的信息,获取支持人员的信任 • 假冒网管人员,骗取员工的信任(安装木马、修改口令等) • 查电话簿、XX手册(指南) • 在信息发达的社会中,只要存在,就没有找不到的,是这样吗? • 通过搜索引擎可以获取到大量的信息 • 搜索引擎提供的信息的有效性?(google、AltaVista)

  35. 信息收集:whois • Whois • 为Internet提供目录服务,包括名字、通讯地址、电话号码、电子邮箱、IP地址等信息 • Client/Server结构 • Client端 • 发出请求,接受结果,并按格式显示到客户屏幕上 • Server端 • 建立数据库,接受注册请求 • 提供在线查询服务 • 客户程序 • UNIX系统自带whois程序 • Windows也有一些工具 • 直接通过Web查询

  36. 例:Sam Spade工具

  37. 各种whois数据来源 • http://www.networksolution.com • http://www.arin.net • 多数Unix提供了whois,fwhois由Chris Cappuccio创建 • http://www.ipswitch.com • http://www.samspade.org …… 如果需要查询com、net、edu、org以外的域可以查询以下的whois服务器 • http://www.ripe.net 欧洲IP地址分配 • http://whois.apnic.net 亚太IP地址分配 • http://whois.nic.mil 美国军事部门

  38. 各种whois数据来源(续) • http://whois.nic.gov 美国政府部门 • www.allwhois.com 美国以外的whois服务器 通过这些查询可以得到黑客感兴趣的一些信息: • 注册机构:显示特定的注册信息和相关的whois服务器; • 机构本身:显示与某个特定机构相关的所有信息; • 域名:显示与某个特定域名相关的所有信息 • 网络:显示与某个特定网络或IP地址相关的所有信息; • 联系点:显示与某位特定人员(通常是管理方面联系人)相关的所有信息

  39. 公共数据库安全对策 • 考虑使用免费电话或不在本机构电话交换机范围内的电话,避免拨入攻击和社交工程 • 伪造虚假的管理方面联系人,期望以此捕获潜在的社交工程师 • 加强注册机构的信息更新方式,可以使用安全的认证机制 弱的认证方式:电子邮件的FROM字段 1998年对AOL的攻击-修改其域名信息

  40. 信息收集:DNS查询 • 关于DNS • 是一个全球分布式数据库,对于每一个DNS节点,包含有该节点所在的机器的信息、邮件服务器的信息、主机CPU和操作系统等信息 • Nslookup是一个功能强大的客户程序 • 熟悉nslookup,就可以把DNS数据库中的信息挖掘出来 • 分两种运行模式 • 非交互式,通过命令行提交命令 • 交互式:可以访问DNS数据库中所有开放的信息 • UNIX/LINUX环境下的host命令有类似的功能

  41. DNS节点的例子

  42. DNS & nslookup • 通过nslookup可以做什么? • 区域传送:可以列出DNS节点中所有的配置信息 • 这是为了主DNS和辅DNS之间同步复制才使用的 • 查看一个域名,根据域名找到该域的域名服务器 • 反向解析,根据IP地址得到域名名称 • 从一台域名服务器可以得到哪些信息? • 如果支持区域传送,可以从中获取大量信息 • 否则的话,至少可以发现以下信息 • 邮件服务器的信息,在实用环境中,邮件服务器往往在防火墙附近,甚至就在同一台机器上 • 其他,比如ns、www、ftp等,这些机器可能被托管给ISP

  43. nslookup交互环境中常用命令 • server, 指定DNS服务器 • set type=XXX,设定查询类型 • ls, 列出记录 • [domain name, or IP address] • ……

  44. 关于DNS & nslookup的安全 • 注意的地方 • 关闭未授权区域传送(zone transfer)功能 • 或者,在防火墙上禁止53号TCP端口,DNS查询请求使用53号UDP端口 • 区分内部DNS和外部DNS • 内部信息不出现在外部DNS中 • DNS中该公开的信息总是要公开的,否则,域名解析的功能就无效了,没有MX记录就不能支持邮件系统 • Windows 2000中的DNS • 与AD集成在一起,增加了新的功能 • SRV记录 • 动态DNS • 在获得灵活性的同时,更加要注意安全

  45. 网络勘察 最常用的工具: Ping和Traceroute • Ping: Packet InterNet Groper • 用来判断远程设备可访问性最常用的方法 • 原理:发送ICMP Echo消息,然后等待ICMP Reply消息 • Traceroute • 用来发现实际的路由路径 • 原理:给目标的一个无效端口发送一系列UDP,其TTL依次增一,中间路由器返回一个ICMP Time Exceeded消息 • Windows中为tracert

  46. Ping工具 • 发送ICMP Echo消息,等待Echo Reply消息 • 可以确定网络和外部主机的状态 • 可以用来调试网络的软件和硬件 • 每秒发送一个包,显示响应的输出,计算网络来回的时间 • 最后显示统计结果——丢包率

  47. 关于Ping • Ping有许多命令行参数,可以改变缺省的行为 • 可以用来发现一台主机是否active • 为什么不能ping成功? • 没有路由,网关设置? • 网卡没有配置正确 • 增大timeout值 • 被防火墙阻止 …… • “Ping of death” • 发送特大ping数据包(>65535字节)导致机器崩溃 • 许多老的操作系统都受影响

  48. traceroute • 发送一系列UDP包(缺省大小为38字节),其TTL字段从1开始递增,然后监听来自路径上网关发回来的ICMP Time Exceeded应答消息 • UDP包的端口设置为一个不太可能用到的值(缺省为33434),因此,目标会送回一个ICMP Destination Unreachable消息,指示端口不可达

  49. 关于traceroute • traceroute有一些命令行参数,可以改变缺省的行为 • 可以用来发现到一台主机的路径,为勾画出网络拓扑图提供最基本的依据 • Traceroute允许指定宽松的源路由选项。 • 许多防火墙是禁止带源路由的包的

  50. 指定源路由示例

More Related