第2章 入侵方法与手段 曹元大主编,人民邮电出版社,2007年 入侵方法与手段
第2章 入侵方法与手段 入侵方法与手段: 黑客入侵模型与原理 漏洞扫描 口令破解 拒绝服务攻击 缓冲区溢出攻击 格式化字符串攻击 跨站脚本攻击 SQL Injection攻击 入侵方法与手段
黑客入侵的步骤 确定目标 信息收集 攻击网络 攻击系统 留下后门 漏洞挖掘 清除日志 结束攻击 入侵方法与手段
常见的安全威胁 网络 黑客攻击 特洛伊木马 后门、隐蔽通道 计算机病毒 信息丢失、篡改、销毁 拒绝服务攻击 逻辑炸弹 蠕虫 内部、外部泄密 大多数成功的攻击都是结合了几种威胁来完成 入侵方法与手段
主机渗透攻击方法 口令破解 应对措施:增强口令的强度、保护口令存储文件和服务器合理利用口令管理工具 良好的密码 15% 自己姓名的中文拼音 37% 常用英文单词 23% 计算机的中经常出现的单词 18% 自己的出生日期 7% 良好的密码 15% 入侵方法与手段
主机渗透攻击方法 漏洞攻击:漏洞大多是由于开发者的疏忽造成的 缓冲溢出漏洞:通过在程序的缓冲区写入超出其长度的内容,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。 Unicode编码漏洞:当微软IIS 4.0/5.0(远东地区版本)在处理包含有不完整的双字节编码字符的HTTP命令请求时,会导致Web目录下的文件内容被泄漏给远程攻击者。 SQL Injection漏洞:用用户的输入创建一个动态的SQL请求有可能让攻击者控制SQL语句。 入侵方法与手段
主机渗透攻击方法 特洛伊木马攻击:远程控制技术的一个实现 在未经授权情况下渗透远端主机 被控制端的应用程序非常短小,便于上传 被控制端的应用程序在运行时不会弹出任何提示和界面 被控制端的应用程序一般具有自我保护功能,因此难以查杀 入侵方法与手段
主机渗透攻击方法 凡是你在PC前所说、 所做的一切, 都有可能被记录! 木马具有捕获每一个用户屏幕、每一次键击事件的能力。 完全的控制宿主主机。可以打开摄像头、麦克风,并将得到的图像、声音传给木马控制者(2004.6发现的蜜蜂大盗)。 带有包嗅探器,它能够捕获和分析流经网卡的每一个数据包 随意操控PC本身资源的能力,而且还能够冒充PC合法用户,例如冒充合法用户发送邮件、修改文档,甚至进行银行转帐操作。 首先,特洛伊木马具有捕获每一个用户屏幕、每一次键击事件的能力,这意味着攻击者能够轻松地窃取用户的密码、目录路径、驱动器映射,甚至医疗记录、银行帐户和信用卡、个人通信方面的信息。如果PC带有一个麦克风,特洛伊木马能够窃听谈话内容。如果PC带有摄像头,许多特洛伊木马能够把它打开,捕获视频内容——在恶意代码的世界中,目前还没有比特洛伊木马更威胁用户隐私的,凡是你在PC前所说、所做的一切,都有可能被记录。 一些特洛伊木马带有包嗅探器,它能够捕获和分析流经网卡的每一个数据包。攻击者可以利用特洛伊木马窃取的信息设置后门,即使木马后来被清除了,攻击者仍可以利用以前留下的后门方便地闯入。 其次,如果一个未经授权的用户掌握了远程控制宿主机器的能力,宿主机器就变成了强大的攻击武器。远程攻击者不仅拥有了随意操控PC本身资源的能力,而且还能够冒充PC合法用户,例如冒充合法用户发送邮件、修改文档,当然还可以利用被侵占的机器攻击其他机器。 入侵方法与手段
网络攻击方法 拒绝服务(Denial of Service,DoS)攻击:通过消耗目标主机或者网络的资源,达到干扰目标主机或网络,甚至导致被攻击目标瘫痪,无法为合法用户提供正常网络服务的目的。 分布式拒绝服务攻击(Distributed Denial of Service,DDoS):采用分布式技术,利用多台计算机对单个或者多个目标同时发起拒绝服务攻击。 攻击力度非常强,可导致被攻击目标陷入瘫痪状态 入侵追踪困难 和蠕虫技术结合,防范更困难 入侵方法与手段
网络攻击方法 IP地址欺骗:通过伪造某台主机的IP地址骗取特权从而进行攻击 入侵方法与手段
网络攻击方法 IP地址欺骗 条件 攻击过程 主机A(假设IP地址是192.168.100.11)是主机B的被信任主机 主机X想冒充主机A从主机B(假设IP为192.168.100.1)获得某些服务 攻击过程 攻击者修改距离X最近的路由器G2,使得到达此路由器且包含目的地址192.168.100.1的数据包以主机X所在的网络为目的地 攻击者X利用IP欺骗(把数据包的源地址改为192.168.100.11)向主机B发送带有源路由选项(指定最近的路由器G2)的数据包。当B回送数据包时,按收到数据包的源路由选项反转使用源路由,就传送到被更改过的路由器G2。由于G2路由表已被修改,收到B的数据包时,G2根据路由表把数据包发送到X所在网络,X可在其局域网内较方便的进行侦听,收取此数据包。 入侵方法与手段
网络攻击方法 网络监听 作为一类管理工具,管理员可用于监视网络的状态、数据流动情况以及网络上传输的信息; 当信息以明文的形式在网络上传输时,攻击者使用网络监听的方式实施攻击,将网络接口设置为混杂模式,可以截获网上传输的信息; 最方便部署网络监听的位置是局域网中的主机。 入侵方法与手段
其他攻击方法 病毒攻击 随着蠕虫病毒的泛滥以及蠕虫、计算机病毒、木马和黑客攻击程序的结合,病毒攻击成为了互联网发展以来遇到的巨大挑战。 社会工程攻击 社会工程学其实就是一个陷阱,黑客通常以交谈、欺骗、假冒或口语等方式,从合法用户中套取用户系统的秘密。 “网络钓鱼”是典型代表应用 入侵方法与手段
漏洞扫描 扫描器:扫描器是一种通过收集系统的信息来自动监测远程或本地主机安全性弱点的程序,通过使用扫描器,可以发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本。这就能让黑客或管理员间接或直接的了解到远程主机存在的安全问题。 扫描器有三项功能:1、发现一个主机或网络;2、一旦发现一台主机,可以发现有什么服务程序正运行在这台主机上;3、通过测试这些服务,发现漏洞。 编写扫描器程序? 入侵方法与手段
漏洞扫描 按照扫描的目的,扫描器可以分为端口扫描器和漏洞扫描器 端口扫描器只是单纯用来扫描目标系统开放的网络服务端口以及与端口相关的信息,常见的端口扫描器有NMAP,Protscan 漏洞扫描器检查目标系统中可能包含的已知漏洞,威胁性极大,网络入侵者可以利用扫描到的结果直接进行攻击。著名的漏洞扫描器有ISS,NESSUS,SATAN等 入侵方法与手段 15 15
TCP Connect扫描 入侵方法与手段
TCP Connect 扫描 实现原理:通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程。如果端口处于侦听状态,那么connect()就能成功返回。否则,这个端口不可用,即没有提供服务。 优点:稳定可靠,不需要特殊的权限 缺点:扫描方式不隐蔽,服务器日志会记录下大量密集的连接和错误记录 ,并容易被防火墙发现和屏蔽 入侵方法与手段
TCP SYN 扫描 实现原理:扫描器向目标主机端口发送SYN包。如果应答是RST包,那么说明端口是关闭的;如果应答中包含SYN和ACK包,说明目标端口处于监听状态,再传送一个RST包给目标机从而停止建立连接。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半连接扫描 优点:隐蔽性较全连接扫描好,一般系统对这种半扫描很少记录 缺点:通常构造SYN数据包需要超级用户或者授权用户访问专门的系统调用 入侵方法与手段
TCP FIN 扫描 实现原理:扫描器向目标主机端口发送FIN包。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。 优点:由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽得多,FIN数据包能够通过只监测SYN包的包过滤器。 缺点: 跟SYN扫描类似,需要自己构造数据包,要求由超级用户或者授权用户访问专门的系统调用; 通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送RST包的操作系统(包括CISCO,HP/UX,MVS和IRIX)。但在Windows95/NT环境下,该方法无效,因为不论目标端口是否打开,操作系统都返回RST包。 入侵方法与手段
TCP Xmas 和TCP Null 扫描 实现原理:TCP Xmas和Null扫描是FIN扫描的两个变种。Xmas扫描打开FIN,URG和PUSH标记,而Null扫描关闭所有标记。这些组合的目的是为了通过对FIN标记数据包的过滤。当一个这种数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,若是打开的端口,数据包只是简单的丢掉(不返回RST)。 优点:隐蔽性好; 缺点: 需要自己构造数据包,要求由超级用户或者授权用户权限; 通常适用于UNIX目标主机,而Windows系统不支持。 入侵方法与手段
TCP ACK扫描 这种扫描一般用来侦测防火墙,他可以确定防火墙是否只是支持简单的分组过滤技术,还是支持高级的基于状态检测的包过滤技术。 入侵方法与手段
UDP扫描 这种扫描往目标主机的端口发送UDP数据分组,如果目标端口是关闭状态,则返回一个“ICMP端口不可达(ICMP port unreachable)”消息。否则,如果没有收到上述返回信息,可以判断该端口是开启的。 入侵方法与手段
栈指纹OS识别技术 原理:根据各个OS在TCP/IP协议栈实现上的不同特点,采用黑盒测试方法,通过研究其对各种探测的响应形成识别指纹,进而识别目标主机运行的操作系统。根据采集指纹信息的方式,又可以分为主动扫描和被动扫描两种方式。 入侵方法与手段
被动扫描 通过Sniff收集数据包,再对数据包的不同特征(TCP Window-size、 IP TTL、IP TOS、DF位等参数)进行分析,来识别操作系统。 被动扫描基本不具备攻击特征,具有很好的隐蔽性,但其实现严格依赖扫描主机所处的网络拓扑结构;和主动探测相比较,具有速度慢、可靠性不高等缺点。 入侵方法与手段
主动扫描 采用向目标系统发送构造的特殊包并监控其应答的方式来识别操作系统类型。 主动扫描具有速度快、可靠性高等优点,但同样严重依赖于目标系统网络拓扑结构和过滤规则。 入侵方法与手段
主动扫描-识别技术(一) FIN探测:发送一个FIN包给一个打开的端口,一般的行为是不响应,但某些实现例如 MS Windows, BSDI, CISCO,HP/UX,MVS,和IRIX 发回一个RESET。 BOGUS标记探测:设置一个未定义的TCP “标记”(64或128)在SYN包的TCP头里。Linux早期版本在回应中保持这个标记。 TCP ISN 取样:找出当响应一个连接请求时由TCP 实现所选择的初始化序列数式样。这可分为许多组。例如传统的64K(许多老UNIX机器),随机增量(新版本的Solaris,IRIX,FreeBSD,Digital UNIX,Cray,等),真“随机”(Linux 2.0.*,OpenVMS,新的AIX,等),Windows 机器(和一些其他的)用一个“时间相关”模型,每过一段时间ISN就被加上一个小的固定数。 入侵方法与手段
主动扫描-识别技术(二) 不分段位:许多操作系统开始在送出的一些包中设置IP的"Don't Fragment"位。 TCP初始化窗口:检查返回包的窗口大小。如queso和nmap保持对窗口的精确跟踪因为它对于特定OS基本是常数。 ACK值:不同实现中一些情况下ACK域的值是不同的。例如,如果你送了一个FIN|PSH|URG 到一个关闭的TCP 端口。大多数实现会设置ACK 为你的初始序列数,而Windows 会送给你序列数加1 。 ICMP错误信息终结:一些操作系统跟从限制各种错误信息的发送率。例如,Linux 内核限制目的不可达消息的生成每4 秒钟80个。测试的一种办法是发一串包到一些随机的高UDP端口并计数收到的不可达消息。 入侵方法与手段
主动扫描-识别技术(三) ICMP消息引用:ICMP错误消息可以引用一部分引起错误的源消息。对一个端口不可达消息,几乎所有实现只送回IP请求头外加8个字节。然而,Solaris 送回的稍多,而Linux 更多。 SYN洪水限度:如果收到过多的伪造SYN数据包,一些操作系统会停止新的连接尝试。许多操作系统只能处理8 个包。 参考:Nmap Remote OS Detection http://www.insecure.org/nmap/nmap-fingerprinting-article.html 入侵方法与手段
现有扫描器介绍及选择 评价扫描器的原则 现有扫描器产品的不足 入侵方法与手段
评价扫描器的原则(一) 漏洞检测的完整性 是否能扫描各类重要的系统漏洞,漏洞库信息的完备程度如何? 漏洞检测的精确性 是否能准确报告系统漏洞,很少误报或漏报 漏洞检测的范围 是否能进行本地主机或远端主机的扫描 及时更新 是否能及时更新漏洞库,加入新发现的漏洞信息 入侵方法与手段
评价扫描器的原则(二) 报告功能 是否有完善的报告功能,是客户便于理解和维护 价格 产品价格是否合理 入侵方法与手段
现有扫描器产品的不足 检测的完整性 没有一种产品可以发现所有漏洞 检测的准确性 常有漏报、误报现象 更新的及时性 对新漏洞的更新不够及时 入侵方法与手段
口令破解 账户是一种参考上下文,操作系统在这个上下文描述符运行它的大部分代码。换一种说法,所有的用户模式代码在一个用户帐户的上下文中运行。即使是那些在任何人都没有登录之前就运行的代码(例如服务)也是运行在一个帐户(特殊的本地系统账户SYSTEM)的上下文中的。如果用户使用帐户凭据(用户名和口令)成功通过了登录认证,之后他执行的所有命令都具有该用户的权限。 口令破解是获得系统最高权限帐户的最有效的途径之一。 入侵方法与手段
Windows口令文件的格式及安全机制 Windows NT及Windows2000中对用户帐户的安全管理使用了安全帐号管理器(SAM, Security Account Manager)的机制,SAM是组成注册表的5个配置单元之一,口令在SAM中通过单向函数(One-way Function, OWF)加密,SAM文件存放在“%systemroot%\system32\config\sam”(在域服务器中,SAM文件存放在活动目录中,默认地址“%system32%\ntds\ntds.dit”)。 入侵方法与手段
Windows口令文件的格式及安全机制 在SAM文件中保存了两个不同的口令信息:LanManager(LM)口令散列算法和加密NT版 口令不足14位,后面补0,并把所有字母转成大写字母 分成两组,每组7个数字分别生成8位的DES key 每一个8位的DES key都使用一个魔法数字再进行一次加密,然后将两组加密后的字符串连在一起获得最终的口令散列 正式的口令 将用户的口令转换成unicode编码,然后使用MD4算法将口令加密 作业:Windows 7的口令文件格式及安全机制 入侵方法与手段
Unix口令文件的格式及安全机制 Unix系统中帐户信息存放在passwd文件中,口令可以实用DES或MD5加密后存放在shadow文件中。 账号名称:密码:uid:gid:个人资料:用户目录:shell 入侵方法与手段
破解原理及典型工具 破解弱口令的主流方法 工具一:Password Crackers 工具二:L0phtCrack 基于字典分析的方法 暴力破解法 工具一:Password Crackers 工具二:L0phtCrack 入侵方法与手段
破解原理及典型工具 工具一:Password Crackers 口令破译的速度与加密及比较的速度有关 第一步:读出加密口令档案 第二步:以字典为辅助工具,把字典的每一项进行加密,然后两者进行比较。 口令破译的速度与加密及比较的速度有关 入侵方法与手段
破解原理及典型工具 工具二:L0phtCrack(LC5) 通过尝试每个可能的字母数字组合试图破解密码 入侵方法与手段
破解原理及典型工具 L0phtCrack的防范:执行强制的口令防范政策 要求用户的口令至少有8位,包括数字、字母及特殊字符(如!、@、#、¥、%); 口令应不包括字典字; 可借助一些口令自动设置工具 入侵方法与手段
小结 网络入侵的一般流程 主机渗透方法介绍 网络攻击方法介绍 其他攻击方法介绍 扫描器介绍 秘密扫描 OS指纹扫描 操作系统口令文件的格式及安全机制 口令破解的原理与攻击 入侵检测概述