服务器渗透和攻击技术审计_第1页
服务器渗透和攻击技术审计_第2页
服务器渗透和攻击技术审计_第3页
服务器渗透和攻击技术审计_第4页
服务器渗透和攻击技术审计_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、34章节服务器渗透和攻击技术审计 知道那些对象容易遭受攻击 讨论渗透策略和手法 列举潜在的物理、操作系统和TCPIP 堆栈攻击 识别和分析暴力攻击、社会工程和拒绝 服务攻击 实施反渗透和攻击的方法 常见攻击类型和特征字典攻击:黑客和用一些自动执行的程序猜测用户命和密码,审计这类攻击通常需要做全面的日志记录和入侵监测系统(IDS)。Man-in-thc-middle攻击:黑客从合法的传输过程中嗅探到密码和信息。防范这类攻击 的有效方法是应用强壮的加密。劫持攻击:在双方进行会话时被第三方(黑客)入侵,瘫痪其中一方,并冒充他继续与另一方进行会话。虽然不是个完全的解决方案,但强的验证方法将有助于防范这

2、种 攻击。典型的就是tcp通信劫持病毒攻击:病毒是能够自我复制和传播的小程序,消耗系统资源。在审计过程中,你应 当安装最新的反病毒程序,并对用户进行防病毒教育。非法服务:非法服务是任何未经同意便运行在你的操作系统上的进程或服务。你会在接 下来的课程中学到这种攻击。拒绝服务攻击:利用各种程序(包括病毒和包发生器)使系统崩溃或消耗带宽。容易遭受攻击的目标 路由器,窃听配置通信(telnet,snmp).Dos 数据库 ,着重是在内网的保护Web,Ftp:操作系统和服务存在众所周知的漏洞导致拒绝服务攻击或破坏系统.旧有操作系统中以root权限初始运行的服务,一旦被黑客破坏,入侵者便可以在shell中

3、运行任意的代码。注意runlevel。Cgi脚本邮件服务:pop3口令明文传输,暴力破解,以及spam,系统本身漏洞。Sunrpc,常见于NFS,sunrpc本身的漏洞Dns 服务 Smaba ,Smb ,被暴力破解 http:/ http:/ 有助于加强系统的安全性 常用技术 基本的TCP connect()扫描 TCP SYN扫描(半开连接扫描, half open) TCP Fin扫描(秘密扫描,stealth) TCP ftp proxy扫描(bounce attack) 用IP分片进行SYN/FIN扫描(躲开包过滤防火墙) UDP recvfrom扫描 UDP ICMP端口不可达扫描

4、 Reverse-ident扫描IP欺骗:双向欺骗 欺骗的过程攻击者H被假冒者A目标机器B假冒包:A - B回应包:B - AH能看到这个包吗? 让回应包经过H H和A在同一个子网内部 使用源路由选项如何避免IP欺骗 主机保护,两种考虑 保护自己的机器不被用来实施IP欺骗 物理防护、登录口令 权限控制,不允许修改配置信息 保护自己的机器不被成为假冒的对象 无能为力 网络防护 路由器上设置欺骗过滤器 入口过滤,外来的包带有内部IP地址 出口过滤,内部的包带有外部IP地址 保护免受源路由攻击 路由器上禁止这样的数据包电子邮件欺骗 电子邮件欺骗的动机 隐藏发信人的身份,匿名信 挑拨离间,唯恐世界不乱

5、 骗取敏感信息 欺骗的形式 使用类似的电子邮件地址 修改邮件客户软件的账号配置 直接连到smtp服务器上发信 电子邮件欺骗成功的要诀 与邮局的运作模式比较 基本的电子邮件协议不包括签名机制 发信可以要求认证Web欺骗 Web是应用层上提供的服务,直接面向Internet用户,欺骗的根源在于 由于Internet的开放性,任何人都可以建立自己的Web站点 Web站点名字(DNS域名)可以自由注册,按先后顺序 并不是每个用户都清楚Web的运行规则 Web欺骗的动机 商业利益,商业竞争 政治目的 Web欺骗的形式 使用相似的域名 改写URL 劫持Web会话使用类似的域名 注册一个与目标公司或组织相似

6、的域名,然后建立一个欺骗网站,骗取该公司的用户的信任,以便得到这些用户的信息 例如,针对ABC公司,用来混淆 如果客户提供了敏感信息,那么这种欺骗可能会造成进一步的危害,例如: 用户在假冒的网站上订购了一些商品,然后出示支付信息,假冒的网站把这些信息记录下来(并分配一个cookie),然后提示:现在网站出现故障,请重试一次。当用户重试的时候,假冒网站发现这个用户带有cookie,就把它的请求转到真正的网站上。用这种方法,假冒网站可以收集到用户的敏感信息。 对于从事商业活动的用户,应对这种欺骗提高警惕改写URL 一个HTTP页面从Web服务器到浏览器的传输过程中,如果其中的内容被修改了的话,则欺

7、骗就会发生,其中最重要的是URL改写 URL改写可以把用户带到不该去的地方,例如: Welcom to Hollywood-Movie site. 有一些更为隐蔽的做法 直接指向一些恶意的代码 把url定向放到script代码中,难以发现 改写页面的做法 入侵Web服务器,修改页面 设置中间http代理 在传输路径上截获页面并改写 在客户端装载后门程序 Web会话劫持 HTTP协议不支持会话(无状态),Web会话如何实现? Cookie 用url记录会话 用表单中的隐藏元素记录会话 Web会话劫持的要点在于,如何获得或者猜测出会话ID防止Web欺骗 使用类似的域名 注意观察URL地址栏的变化

8、不要信任不可靠的URL信息 改写URL 查看页面的源文本可以发现 使用SSL Web会话劫持 养成显式注销的习惯 使用长的会话ID Web的安全问题很多,我们需要更多的手段来保证Web安全TCP会话劫持(session hijacking) 欺骗和劫持 欺骗是伪装成合法用户,以获得一定的利益 劫持是积极主动地使一个在线的用户下线,或者冒充这个用户发送消息,以便达到自己的目的 动机 Sniffer对于一次性密钥并没有用 认证协议使得口令不在网络上传输 会话劫持分两种 被动劫持,实际上就是藏在后面监听所有的会话流量。常常用来发现密码或者其他敏感信息 主动劫持,找到当前活动的会话,并且把会话接管过来

9、。迫使一方下线,由劫持者取而代之,危害更大,因为攻击者接管了一个合法的会话之后,可以做许多危害性更大的事情会话劫持示意图被劫持者A服务器B1 A远程登录,建立会话,完成认证过程攻击者H2 监听流量3 劫持会话4 迫使A下线会话劫持的原理 TCP协议 三次握手建立TCP连接(即一个TCP会话) 终止一个会话,正常情况需要4条消息 如何标识一个会话:状态:源IP:端口+SN 目标IP:端口+SN 从TCP会话的状态入手 要了解每一个方向上的SN(数据序列号) 两个方向上的序列号是相互独立的 TCP数据包,除了第一个SYN包之外,都有一个ack标志,给出了期待对方发送数据的序列号 所以,猜测序列号是

10、成功劫持TCP会话的关键关于TCP协议的序列号在每一个ACK包中,有两个序列号 第一个(SEG_SEQ)是当前包中数据第一个字节的序号 第二个(SEG_ACK)是期望收到对方数据包中第一个字节的序号假设客户(CLT)向服务器(SVR)发起一个连接,我们用以下的表示 SVR_SEQ: 服务器将要发送的下一个字节的序号 SVR_ACK: 服务器将要接收的下一个字节的序号(已经收到的最后一个字节的序号加1) SVR_WIND: 服务器的接收窗口 CLT_SEQ: 客户将要发送的下一个字节的序号 CLT_ACK: 客户将要接收的下一个字节的序号 CLT_WIND: 客户的接收窗口关系 CLT_ACK

11、= SVR_SEQ = CLT_ACK + CLT_WIND SVR_ACK = CLT_SEQ B包TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB SEQ (hex): 5C8223EA ACK (hex): C34A67F6 FLAGS: -AP- Window: 7C00,包长为1A攻击者BB回应一个包,B-ATCP Packet ID (from_IP.port-to_IP.port): IP_B.PortB-IP_A.PortA SEQ (hex): C34A67F6 ACK (hex): 5C8223EB

12、 FLAGS: -AP- Window: 2238,包长为1A回应一个包,A-BTCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB SEQ (hex): 5C8223EB ACK (hex): C34A67F7 FLAGS: -A- Window: 7C00,包长为0会话劫持过程详解(2)攻击者模仿A插入一个包给B,假设这个包正常跟在第一个包之后TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB SEQ (hex): 5C8223EB ACK (h

13、ex): C34A67F6 FLAGS: -AP- Window: 7C00,包长为10(一定的长度)A攻击者BB回应一个包,B-ATCP Packet ID (from_IP.port-to_IP.port): IP_B.PortB-IP_A.PortA SEQ (hex): C34A67F7 ACK (hex): 5C8223F5 FLAGS: -AP- Window: 2238,包长不定(比如20)此时,A会按照它所理解的SEQ/ACK发送包TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB SEQ (hex):

14、5C8223EB ACK (hex): C34A67F7 FLAGS: -A- Window: 7C00一阵广播风暴会话劫持过程详解(3)攻击者已经劫持了会话,它可以与B正常通讯(用A的地址)TCP Packet ID (from_IP.port-to_IP.port): IP_A.PortA-IP_B.PortB SEQ (hex): 5C8223F5 ACK (hex): C34A680B FLAGS: -AP- Window: 7C00,包长不定(比如37)A攻击者BB回应这个包,B-ATCP Packet ID (from_IP.port-to_IP.port): IP_B.PortB

15、-IP_A.PortA SEQ (hex): C34A680B ACK (hex): 5C82241A FLAGS: -AP- Window: 2238,包长不定关于会话劫持的参考 三篇文章 Simple Active Attack Against TCP, /stf/iphijack.txt A short overview of IP spoofing: PART I, /dittrich/papers/IP-spoof-1.txt A short overview of IP spoofing

16、: PART II , /dittrich/papers/IP-spoof-2.txt “Hackers Beware”“Hackers Beware”,中文版,中文版黑客黑客攻击透析攻击透析与防范与防范,第五章,第五章“会话劫持会话劫持”审计系统本身的bug TrapDoor是系统上的bug, Root kit是用木马替代合法程序 审查端口与进程关联性 fport netstat 审查md5sum 审查是否有多余的shell命令, 审查path路径是否正确 审查注册表,审查系统服务 审查rundll32。exe审计拒绝服务攻击 缓冲区溢出

17、审计非法服务,特洛伊木马和蠕虫 消耗资源类型 软件实现缺陷类型DoS的技术分类 从表现形式来看 带宽消耗 用足够的资源消耗掉有限的资源 利用网络上的其他资源(恶意利用Internet共享资源),达到消耗目标系统或网络的目的 系统资源消耗,针对操作系统中有限的资源,如进程数、磁盘、CPU、内存、文件句柄,等等 程序实现上的缺陷,异常行为处理不正确,比如Ping of Death 修改(篡改)系统策略,使得它不能提供正常的服务 从攻击原理来看 通用类型的DoS攻击,这类攻击往往是与具体系统无关的,比如针对协议设计上的缺陷的攻击 系统相关的攻击,这类攻击往往与具体的实现有关 说明:最终,所有的攻击都

18、是系统相关的,因为有些系统可以针对协议的缺陷提供一些补救措施,从而免受此类攻击DoS的技术历史 早期的Internet蠕虫病毒 消耗网络资源 分片装配,非法的TCP标志,SYN Flood,等 利用系统实现上的缺陷,点对点形式 Ping of Death, IP分片重叠 分布式DoS(DDoS)攻击 最著名的smurf攻击一些典型的DoS攻击 Ping of Death 发送异常的(长度超过IP包的最大值) Land 程序发送一个TCP SYN包,源地址与目的地址相同,源端口与目的端口相同,从而产生DoS攻击 SYN Flood 快速发送多个SYN包 UDP Flood Teardrop IP

19、包的分片装配 Smurf 给广播地址发送ICMP Echo包,造成网络阻塞 SYN Flood 原理:利用TCP连接三次握手过程,打开大量的半开TCP连接,使得目标机器不能进一步接受TCP连接。每个机器都需要为这种半开连接分配一定的资源,并且,这种半开连接的数量是有限制的,达到最大数量时,机器就不再接受进来的连接请求。 受影响的系统:大多数操作系统 攻击细节 连接请求是正常的,但是,源IP地址往往是伪造的,并且是一台不可达的机器的IP地址,否则,被伪造地址的机器会重置这些半开连接 一般,半开连接超时之后,会自动被清除,所以,攻击者的系统发出SYN包的速度要比目标机器清除半开连接的速度要快 任何

20、连接到Internet上并提供基于TCP的网络服务,都有可能成为攻击的目标 这样的攻击很难跟踪,因为源地址往往不可信,而且不在线SYN Flood(续) 攻击特征 目标主机的网络上出现大量的SYN包,而没有相应的应答包 SYN包的源地址可能是伪造的,甚至无规律可循 防止措施 针对网络 防火墙或者路由器可以在给定时间内只允许有限数量的半开连接 入侵检测,可以发现这样的DoS攻击行为 打补丁 Linux和Solaris使用了一种被称为SYN cookie的技术来解决SYN Flood攻击:在半开连接队列之外另设置了一套机制,使得合法连接得以正常继续Smurf 原理:向广播地址发送伪造地址的ICMP

21、 Echo数据包。攻击者向一个广播地址发送ICMP Echo请求,并且用受害者的IP地址作为源地址,于是,广播地址网络上的每台机器响应这些Echo请求,同时向受害者主机发送ICMP Echo-Reply应答。于是,受害者主机会被这些大量的应答包淹没 受影响的系统:大多数操作系统和路由器 变种:fraggle,使用UDP包,或称为udpsmurf 比如,7号端口(echo),如果目标机器的端口开着,则送回应答,否则,产生ICM端口不可达消息 技术细节 两个主要的特点:使用伪造的数据包,使用广播地址。 不仅被伪造地址的机器受害,目标网络本身也是受害者,它们要发送大量的应答数据包Smurf攻击示意图

22、Smurf攻击 攻击特征 涉及到三方:攻击者,中间目标网络,受害者 以较小的网络带宽资源,通过放大作用,吃掉较大带宽的受害者系统 Smurf放大器 Smurf放大器网络:不仅允许ICMP Echo请求发给网络的广播地址,并且允许ICMP Echo-Reply发送回去 这样的公司越多,对Internet的危害就越大 实施Smurf攻击 需要长期的准备,首先找到足够多的中间网络 集中向这些中间网络发出ICMP Echo包Smurf攻击的防止措施 针对最终受害者 没有直接的方法可以阻止自己接收ICMP Echo Reply消息 在路由器上阻止这样的应答消息,但是,结果是,路由器本身遭受了DoS攻击

23、与中间目标网络联系 针对中间网络 关闭外来的IP广播消息,但是,如果攻击者从内部机器发起攻击,仍然不能阻止smurf攻击 配置操作系统,对于广播地址的ICMP包不响应 在每个路由节点上都记录log,以备查 流量大的路由节点上能够记录所有的流量吗一般性的分布式攻击(如DDoS)模型DoS工具 每一种攻击被揭示出来的时候,都会有一些试验性的代码,例如teardrop.c、synflood.c等,由于DoS攻击往往比较简单,所以这些代码也比较短小 通常,要涉及到IP欺骗 一些现有的工具 Targa:把几种DoS集中在一起 Trinoo:分布式DoS工具 TFN2K:Targa的增强,可实施DDoS攻

24、击 stacheldraht防止DoS 对于网络 路由器和防火墙配置得当,可以减少受DoS攻击的危险 比如,禁止IP欺骗可以避免许多DoS攻击 入侵检测系统,检测异常行为 对于系统 升级系统内核,打上必要的补丁,特别是一些简单的DoS攻击,例如SYN Flooding 关掉不必要的服务和网络组件 如果有配额功能的话,正确地设置这些配额 监视系统的运行,避免降低到基线以下 检测系统配置信息的变化情况 保证物理安全 建立备份和恢复机制结合所有攻击定制审计策略 渗透策略 物理接触 操作系统策略 较弱的密码策略 较弱的系统策略 IPIP欺骗和劫持控制阶段的安全审计 获得root的权限 收集信息 开启新

25、的安全漏洞 擦除渗透痕迹 攻击其他系统 获得rootroot的权限 创建额外账号 获得信息 擦除渗透的痕迹 Web服务器 防火墙 SMTP,HTTP和FTP服务器 数据库 日志文件:类型包括: 事件:日志 应用程序日志 安全日志 Linux的日志文件 日志文件的控制 首先要打开日志记录功能 其次要经常检查日志文件中的内容 /var/log/wtmp:用户登录历史/var/run/utmp:当前用户登录日志。每条记录包括登录类型、登录进程的pid、tty设备名、用户id、用户名、远程登录的主机名、退出状态、会话id、时间、远程主机的ip地址 用utmpdump可以查看上面两个日志文件的内容 /v

26、ar/log/messages:内核消息日志,文本文件,可以直接输出。其中,系统启动、退出,用户su命令的成功和失败、ipchains丢弃或拒收数据包等消息都记录在此文件中 var/log/pacct:进程审计日志。pacct记录系统中运行过的所有进程的信息。可以用dump-acct来查看内容。 还有其他一些日志文件,位于var/log目录下Windows NT/2000日志文件 日志文件 三个日志文件 Sysevent.evt Secevent.evt Appevent.evt 三个缓冲区文件 System.log Security.log Application.log 事件浏览器(Eve

27、nt Viewer)可以查看日志文件 要在NT上直接通过这些文件来消除痕迹并不很容易 如果攻击者有管理员权限的话,可以直接用事件浏览器删除记录作为跳板攻击其它系统 肉鸡 跳板的链接方式ssh 日志清除一次针对Windows 2000的入侵过程(一) 1. 探测 选择攻击对象,了解部分简单的对象信息。 这里,针对具体的攻击目标,随便选择了一组IP地址,进行测试,选择处于活动状态的主机,进行攻击尝试; 针对探测的安全建议 对于网络:安装防火墙,禁止这种探测行为 对于主机:安装个人防火墙软件,禁止外部主机的ping包,使对方无法获知主机当前正确的活动状态一次针对Windows 2000的入侵过程(二

28、) 2. 扫描 使用的扫描软件 这里选择的扫描软件是SSS(Shadow Security Scanner),目前的最高版本是5.3.1,SSS是俄罗斯的一套非常专业的安全漏洞扫描软件,能够扫描目标服务器上的各种漏洞,包括很多漏洞扫描、端口扫描、操作系统检测、账号扫描等等,而且漏洞数据可以随时更新。(呵呵,使用的是盗版软件,数据更新功能好像无效。) 扫描远程主机 开放端口扫描 操作系统识别 SSS本身就提供了强大的操作系统识别能力,也可以使用其他工具进行主机操作系统检测。 主机漏洞分析 扫描结果:端口扫描 可以看出几个比较知名的端口均处于打开状态,如139、80等 尝试使用Unicode漏洞攻

29、击,无效。可能主机已经使用了SP进行补丁或未开放远程访问权限 扫描结果:操作系统识别 结果显示该主机操作系统为Windows 2000,正是我们期望的操作系统类型扫描结果:漏洞扫描 SSS可对远程主机进行漏洞检测分析,这更方便了我们了解远程主机的状态,选择合适的攻击入口点,进行远程入侵 该主机存在的漏洞较多,我们可以确定选择该主机作为攻击对象。另外,主机的帐号密码使用的是“永不过期”方式,我们可以在下面进行帐号密码的强行破解 一次针对Windows 2000的入侵过程(三) 3. 查看目标主机的信息 在完成对目标主机的扫描后,我们可以利用Windows NT/2000对NetBIOS的缺省信赖

30、,对目标主机上的用户帐号、共享资源等进行检查。事实上,在利用SSS进行扫描的过程中,SSS已经向我们报告了众多有效的信息。这里,我们再利用Windows2000的IPC空会话查询远程主机 一次针对Windows 2000的入侵过程(四) 4. 渗透 IIS攻击 尝试利用IIS中知名的Unicode和“Translate:f”漏洞进行攻击,没有成功。目标主机可能已修复相应漏洞,或没有打开远程访问权限 Administrator口令强行破解 目标主机是一台个人主机,绝大部分情况下,均使用Administrator帐号进行登陆,且个人防范意识较差的话,选择的密码一般都较简单,如“主机名”、“11111”、“12345”之类的简单密码(方便自己的快速登陆)。所以考虑利用NetBIOS会话服务(TCP 139)进行远程密码猜测。 这里我们使用NAT(NetBIOS Auditing Tool)进行强行破解:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论