60
网网网网网网网 网网网网 (网) 网网网 网网网网网网网网网网 http://www.icst.pku.edu.cn/ InfoSecCourse

网络与信息安全 网络安全 (三 )

  • Upload
    nitsa

  • View
    243

  • Download
    0

Embed Size (px)

DESCRIPTION

网络与信息安全 网络安全 (三 ). 潘爱民,北京大学计算机研究所 http://www.icst.pku.edu.cn/InfoSecCourse. 内 容. 信息收集 DNS 收集信息 端口扫描 操作系统辨识. 黑客和黑客技术. 如何理解 hacker Hacker 的定义? Hacker 代表了数字时代的一种文化 强盗和侠客如何界定? 警察和匪徒如何界定? 从道德和技术两方面来看 道德:服从人民大众的利益 技术:过硬 还需要强烈的热忱和坚持不懈的毅力 黑客技术 防护技术的一部分 发展黑客技术,也是为了更加有效地实施系统防护 - PowerPoint PPT Presentation

Citation preview

Page 1: 网络与信息安全 网络安全  (三 )

网络与信息安全网络安全 ( 三 )潘爱民,北京大学计算机研究所http://www.icst.pku.edu.cn/

InfoSecCourse

Page 2: 网络与信息安全 网络安全  (三 )

内 容信息收集

DNS 收集信息端口扫描操作系统辨识

Page 3: 网络与信息安全 网络安全  (三 )

黑客和黑客技术如何理解 hacker

Hacker 的定义?Hacker 代表了数字时代的一种文化强盗和侠客如何界定?警察和匪徒如何界定?从道德和技术两方面来看道德:服从人民大众的利益技术:过硬还需要强烈的热忱和坚持不懈的毅力黑客技术防护技术的一部分发展黑客技术,也是为了更加有效地实施系统防护技术繁多,没有明显的理论指导

Page 4: 网络与信息安全 网络安全  (三 )

黑客技术从一个攻击过程来看待黑客技术攻击过程中涉及到的技术都可以看成黑客技术有时候,一种技术既是黑客技术,也是网络管理技术,或者网络防护技术粗分类信息收集技术:入侵之前的准备入侵技术:拒绝服务、欺骗、溢出、病毒邮件,…信息获取:入侵之后的增值服务,如木马、解口令等藏匿:希望自己被发现吗?其他,比如针对 cookie 或者一些协议、机制的攻击

Page 5: 网络与信息安全 网络安全  (三 )

为什么要信息收集信息收集技术也是一把双刃剑

黑客在攻击之前需要收集信息,才能实施有效的攻击管理员用信息收集技术来发现系统的弱点

攻击工具攻击命令

攻击机制

目标网络网络漏洞

目标系统系统漏洞

攻击者

漏洞扫描评估加固攻击过程实时入侵检测

知己知彼,百战不殆

Page 6: 网络与信息安全 网络安全  (三 )

信息收集过程信息收集是一个综合过程

从一些社会信息入手找到网络地址范围找到关键的机器地址找到开放端口和入口点找到系统的制造商和版本……

Page 7: 网络与信息安全 网络安全  (三 )

社会信息DNS 域名网络实名管理人员在新闻组或者论坛上的求助信息也会泄漏信息网站的网页中新闻报道例如: XX 公司采

用 XX 系统,…这样的信息可以合法地获取

Page 8: 网络与信息安全 网络安全  (三 )

例:来自网站的公开信息

Page 9: 网络与信息安全 网络安全  (三 )

非网络技术的探查手段社会工程

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

Page 10: 网络与信息安全 网络安全  (三 )

信息收集: whoisWhois

为 Internet提供目录服务,包括名字、通讯地址、电话号码、电子邮箱、 IP 地址等信息Client/Server结构

Client 端发出请求,接受结果,并按格式显示到客户屏幕上Server 端建立数据库,接受注册请求提供在线查询服务客户程序UNIX 系统自带whois 程序Windows 也有一些工具直接通过 Web 查询

Page 11: 网络与信息安全 网络安全  (三 )

Spade 工具

Page 12: 网络与信息安全 网络安全  (三 )

基于Web 的Whois示例

Page 13: 网络与信息安全 网络安全  (三 )

信息收集: nslookup关于 DNS是一个全球分布式数据库,对于每一个 DNS节点,包含有该节点所在的机器的信息、邮件服务器的信息、主机 CPU 和操作系统等信息

Nslookup 是一个功能强大的客户程序熟悉 nslookup ,就可以把 DNS 数据库中的信息挖掘出来分两种运行模式非交互式,通过命令行提交命令交互式:可以访问DNS 数据库中所有开放的信息UNIX/LINUX环境下的 host 命令有类似的功能

Page 14: 网络与信息安全 网络安全  (三 )

DNS节点的例子

Page 15: 网络与信息安全 网络安全  (三 )

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

给 ISP

Page 16: 网络与信息安全 网络安全  (三 )

Nslookup交互环境中常用命令Server, 指定 DNS 服务器Set q=XXX ,设定查询类型Ls, 列出记录[domain name, or IP address]

Page 17: 网络与信息安全 网络安全  (三 )

关于 DNS & nslookup注意的地方关闭未授权区域传送功能或者,在防火墙上禁止53号 TCP 端口, DNS 查询请求使用 53号 UDP端口区分内部 DNS 和外部 DNS内部信息不出现在外部 DNS 中DNS 中该公开的信息总是要公开的,否则,域名解析的功能就无效了,没有 MX记录就不能支持邮件系统

Windows 2000 中的 DNS与 AD 集成在一起,增加了新的功能

SRV记录动态DNS在获得灵活性的同时,更加要注意安全

Page 18: 网络与信息安全 网络安全  (三 )

Ping & TraceroutePing: Packet InterNet Groper用来判断远程设备可访问性最常用的方法原理:发送 ICMP Echo消息,然后等待

ICMP Reply消息Traceroute用来发现实际的路由路径原理:给目标的一个无效端口发送一系列

UDP ,其 TTL依次增一,中间路由器返回一个 ICMP Time Exceeded消息

Page 19: 网络与信息安全 网络安全  (三 )

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

Page 20: 网络与信息安全 网络安全  (三 )

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

Page 21: 网络与信息安全 网络安全  (三 )

ICMP消息类型 ( 部分 )0 Echo Reply3 Destination Unreachable4 Source Quench 5 Redirect 8 Echo 11 Time Exceeded

12 Parameter Problem 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply

Page 22: 网络与信息安全 网络安全  (三 )

ICMP Echo消息

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

Page 23: 网络与信息安全 网络安全  (三 )

ICMP Time Exceeded消息

类型: 11代码: 0表示传输过程中时间到, 1表示分片装配过程中时间到IP首部 + 原始 IP 数据包中前 8个字节

Page 24: 网络与信息安全 网络安全  (三 )

ICMP Destination Unreachable消息

类型: 3代码: 0表示网络不可达, 1表示主机不可达;2表示协议不可达;3表示端口不可达;等等IP首部 +原始 IP 数据包中前 8个字节

Page 25: 网络与信息安全 网络安全  (三 )

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

最后显示统计结果——丢包率

Page 26: 网络与信息安全 网络安全  (三 )

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

Page 27: 网络与信息安全 网络安全  (三 )

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

Page 28: 网络与信息安全 网络安全  (三 )

关于 traceroutetraceroute 有一些命令行参数,可以改变缺省的行为可以用来发现到一台主机的路径,为勾画出网络拓扑图提供最基本的依据Windows平台上为“ tracert”Traceroute允许指定宽松的源路由选项。

不过,许多防火墙是禁止带源路由的包的

Page 29: 网络与信息安全 网络安全  (三 )

指定源路由示例

Page 30: 网络与信息安全 网络安全  (三 )

信息收集:扫描技术Port scanning: 找出网络中开放的服务基于 TCP/IP 协议,对各种网络服务,无论是主机或者防火墙、路由器都适用端口扫描可以确认各种配置的正确性,避免遭受不必要的攻击用途,双刃剑管理员可以用来确保自己系统的安全性黑客用来探查系统的入侵点端口扫描的技术已经非常成熟,目前有大量的商业、非商业的扫描器

Page 31: 网络与信息安全 网络安全  (三 )

扫描器的重要性扫描器能够暴露网络上潜在的脆弱性无论扫描器被管理员利用,或者被黑客利用,都有助于加强系统的安全性它能使得漏洞被及早发现,而漏洞迟早会被发现的扫描器可以满足很多人的好奇心扫描器除了能扫描端口,往往还能够发现系统存活情况,以及哪些服务在运行用已知的漏洞测试这些系统对一批机器进行测试,简单的迭代过程有进一步的功能,包括操作系统辨识、应用系统识别

Page 32: 网络与信息安全 网络安全  (三 )

扫描器历史早期80年代,网络没有普及,上网的好奇心驱使许多年轻人通过 Modem拨号进入到 UNIX 系统中。这时候的手段需要大量的手工操作于是,出现了 war dialer—— 自动扫描,并记录下扫描的结果现代的扫描器要先进得多

SATAN: Security Administrator's Tool for Analyzing Networks 1995年 4月发布,引起了新闻界的轰动界面上的突破,从命令行走向图形界面 (使用 HTML 界面 ),不依赖于 X两位作者的影响 (Dan Farmer写过网络安全检查工具 COPS ,另一位Weitse Venema 是 TCP_Wrapper 的作者 )

Nmap作者为 Fyodor ,技术上,是最先进的扫描技术大集成结合了功能强大的通过栈指纹来识别操作系统的众多技术

Page 33: 网络与信息安全 网络安全  (三 )

端口扫描技术基本的 TCP connect() 扫描TCP SYN 扫描 (半开连接扫描 , half open)TCP Fin 扫描 (秘密扫描, stealth)TCP ftp proxy 扫描 (bounce attack)用 IP 分片进行 SYN/FIN 扫描 (躲开包过滤防火墙 )UDP recvfrom 扫描UDP ICMP 端口不可达扫描Reverse-ident 扫描

Page 34: 网络与信息安全 网络安全  (三 )

回顾: TCP连接的建立和终止时序图

Page 35: 网络与信息安全 网络安全  (三 )

TCP连接知识TCP 数据包6个标志位

URG: 紧急数据包ACK: 确认PSH: 请求急迫操作RST: 连接复位SYN: 连接请求FIN: 结束

TCP/IP 的一些实现原则当一个 SYN 或者 FIN 数据包到达一个关闭的端口, TCP丢弃数据包同时发送一个 RST数据包 当一个 RST 数据包到达一个监听端口, RST 被丢弃

当一个 RST 数据包到达一个关闭的端口, RST 被丢弃 当一个包含 ACK 的数据包到达一个监听端口时,数据包被丢弃,同时发送一个 RST 数据包 当一个不包含 SYN位的数据包到达一个监听端口时,数据包被丢弃 当一个 SYN 数据包到达一个监听端口时,正常的三阶段握手继续,回答一个 SYN|ACK 数据包 当一个 FIN 数据包到达一个监听端口时,数据包被丢弃

Page 36: 网络与信息安全 网络安全  (三 )

TCP connect() 扫描做法

扫描器调用 socket 的 connect()函数发起一个正常的连接如果端口是打开的,则连接成功否则,连接失败优点

简单,不需要特殊的权限缺点服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描

Page 37: 网络与信息安全 网络安全  (三 )

TCP SYN 扫描做法向目标主机的特定端口发送一个 SYN包如果应答包为 RST包,则说明该端口是关闭的否则,会收到一个 SYN|ACK包。于是,发送一个 RST ,停止建立连接由于连接没有完全建立,所以称为“半开连接扫描”优点很少有系统会记录这样的行为缺点

在 UNIX平台上,需要 root权限才可以建立这样的SYN 数据包

Page 38: 网络与信息安全 网络安全  (三 )

TCP Fin 扫描 (秘密扫描 )做法扫描器发送一个 FIN 数据包如果端口关闭的,则远程主机丢弃该包,并送回一个 RST包否则的话,远程主机丢弃该包,不回送变种,组合其他的标记优点不是 TCP建立连接的过程,所以比较隐蔽缺点

与 SYN 扫描类似,也需要构造专门的数据包在 Windows平台无效,总是发送 RST包

Page 39: 网络与信息安全 网络安全  (三 )

分片扫描它本身并不是一种新的扫描方法,而是其他扫描技术的变种,特别是 SYN 扫描和 FIN 扫描思想是,把 TCP包分成很小的分片,从而让它们能够通过包过滤防火墙注意,有些防火墙会丢弃太小的包而有些服务程序在处理这样的包的时候会出现异常,或者性能下降,或者出现错误

Page 40: 网络与信息安全 网络安全  (三 )

Reverse-ident 扫描Ident 协议使得可以发现任何一个通过 TCP连接的进程的所有者的用户名,即使该进程并没有发起该连接只有在 TCP 全连接之后才有效

TCP 端口 113例如可以先连接到 80端口,然后通过 identd 来发现服务器是否在 root下运行建议关闭 ident 服务,或者在防火墙上禁止,除非是为了审计的目的

Page 41: 网络与信息安全 网络安全  (三 )

TCP ftp proxy 扫描FTP bounce attack做法

在 ftp 协议中,数据连接可以与控制连接位于不同的机器上让 ftp server 与目标主机建立连接,而且目标主机的端口可以指定如果端口打开,则可以传输否则,返回 "425 Can't builddata connection: Connectionrefused." Ftp 这个缺陷还可以被用来向目标 ( 邮件 ,新闻 ) 传送匿名信息优点:这种技术可以用来穿透防火墙缺点:慢,且有些 ftp server禁止这种特性

数据连接

H2:p2 H1:p1 ftp server

控制连接

Page 42: 网络与信息安全 网络安全  (三 )

UDP ICMP 端口不可达扫描利用 UDP 协议做法开放的 UDP 端口并不需要送回 ACK包,而关闭的端口也不要求送回错误包,所以利用 UDP包进行扫描非常困难有些协议栈实现的时候,对于关闭的 UDP 端口,会送回一个

ICMP Port Unreach错误缺点速度慢,而且 UDP包和 ICMP包都不是可靠的需要 root权限,才能读取 ICMP Port Unreach消息一个应用例子Solaris 的 rpcbind 端口 (UDP)位于 32770之上,这时可以通过这种技术来探测

Page 43: 网络与信息安全 网络安全  (三 )

UDP recvfrom() & write() 扫描非 root 用户不能直接读取 ICMP Port Unreach消息,但是 Linux提供了一种方法可以间接通知到做法第二次对一个关闭的 UDP 端口调用 write()总是会失败经验:在 ICMP错误到达之前,在 UDP 端口上调用 recvfrom() 会返回 EAGAIN(重试 ),否则会返回 ECONNREFUSED(连接拒绝 )

Page 44: 网络与信息安全 网络安全  (三 )

nmapBy Fyodor作者研究了诸多扫描器,每一种扫描器都有自己的优点,它把所有这些技术集成起来,写成了

nmap ,当前版本为 2.53/2.54源码开放, C 语言两篇技术文档The Art of Port ScanningRemote OS detection via TCP/IP Stack FingerPrinting除了扫描功能,更重要的是,可以识别操作系统,甚至是内核的版本

Page 45: 网络与信息安全 网络安全  (三 )

Nmap 用于扫描

Page 46: 网络与信息安全 网络安全  (三 )

Nmap 用于扫描 (续 )

Page 47: 网络与信息安全 网络安全  (三 )

Pinger

Page 48: 网络与信息安全 网络安全  (三 )

扫描器SATANstrobePingerPortscanSuperscan……

Page 49: 网络与信息安全 网络安全  (三 )

操作系统辨识操作系统辨识的动机许多漏洞是系统相关的,而且往往与相应的版本对应从操作系统或者应用系统的具体实现中发掘出来的攻击手段都需要辨识系统操作系统的信息还可以与其他信息结合起来,比如漏洞库,或者社会诈骗 ( 社会工程, social engineering)如何辨识一个操作系统一些端口服务的提示信息,例如, telnet 、 http 、 ftp 等服务的提示信息

TCP/IP栈指纹DNS 泄漏出 OS 系统

Page 50: 网络与信息安全 网络安全  (三 )

端口服务提供的信息Telnet 服务Http 服务Ftp 服务

Page 51: 网络与信息安全 网络安全  (三 )

某大学的 ftp进站页面

Page 52: 网络与信息安全 网络安全  (三 )

栈指纹技术定义:利用 TCP/IP 协议栈实现上的特点来辨识一个操作系统技术导向

可辨识的 OS 的种类,包括哪些操作系统结论的精确度,细微的版本差异是否能识别一些工具Checkos, by ShokQueso, by SavageNmap, by Fyodor

Page 53: 网络与信息安全 网络安全  (三 )

栈指纹识别技术做法:寻找不同操作系统之间在处理网络数据包上的差异,并且把足够多的差异组合起来,以便精确地识别出一个系统的 OS 版本配置能力扩展性,新的 OS ,版本不断推出定义一种配置语言或者格式

Page 54: 网络与信息安全 网络安全  (三 )

栈指纹识别方法常用的手段给一个开放的端口发送 FIN包,有些操作系统有回应,有的没有回应对于非正常数据包的反应

比如,发送一个包含未定义 TCP 标记的数据包根据 TCP连接的序列号风格寻找初始序列号之间的规律

TCP初始化窗口有些操作系统会使用一些固定的窗口大小

DF位 (Don't Fragment bit )分片处理方式分片重叠的情况下,处理会不同。如何确定处理方式?

Page 55: 网络与信息安全 网络安全  (三 )

栈指纹识别方法 (续 )ICMP 协议

ICMP错误消息的限制发送一批 UDP包给高端关闭的端口,然后计算返回来的不可达错误消息ICMP 端口不可达消息的大小通常情况下送回 IP头+8个字节,但是个别系统送回的数据更多一些ICMP回应消息中对于校验和的处理方法不同ICMP回应消息中, TOS 域的值

TCP选项这里充满了各种组合的可能性应答方式“Query-Reply” ,可以把多个选项放到一个包中SYN Flooding 对抗测试先发送8个 SYN包,看还能不能建立连接,确认它是否受此攻击

Page 56: 网络与信息安全 网络安全  (三 )

Nmap 的指纹库指纹模板文件: nmap-os-fingerprints.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 closed 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

Page 57: 网络与信息安全 网络安全  (三 )

Nmap 的指纹库 (续 )例如Fingerprint Linux kernel 2.2.13TSeq(Class=RI%gcd=<6%SI=<E5F68C&>24CA0)T1(DF=Y%W=7F53%ACK=S++%Flags=AS%Ops=MENNTNW)T2(Resp=N)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)

Page 58: 网络与信息安全 网络安全  (三 )

Nmap 识别操作系统的例子

Page 59: 网络与信息安全 网络安全  (三 )

Nmap 的图形界面 &探寻数据包示意图