zoukankan      html  css  js  c++  java
  • 20169217 2016-2017-2 《网络攻防实践》第六周学习总结

    教材内容总结

    一、TCP/IP协议的安全隐患  

        造成操作系统漏洞的一个重要原因,就是协议本身的缺陷给系统带来的攻击点。网络协议是计算机之间为了互联共同遵守的规则。目前的互联网络所采用的主流协议TCP/IP,由于在其设计初期人们过分强调其开发性和便利性,没有仔细考虑其安全性,因此很多的网络协议都存在严重的安全漏洞,给Internet留下了许多安全隐患。另外,有些网络协议缺陷造成的安全漏洞还会被黑客直接用来攻击受害者系统。本文就TCP/IP协议自身所存在的安全问题和协议守护进程进行了详细讨论,指出针对这些安全隐患的攻击。

     1 TCP协议的安全问题
     TCP使用三次握手机制来建立一条连接,握手的第一个报文为SYN包;第二个报文为SYN/ACK包,表明它应答第一个SYN包同时继续握手的过程;第三个报文仅仅是一个应答,表示为ACK包。若A放为连接方,B为响应方,其间可能的威胁有:
     1. 攻击者监听B方发出的SYN/ACK报文。
     2. 攻击者向B方发送RST包,接着发送SYN包,假冒A方发起新的连接。
     3. B方响应新连接,并发送连接响应报文SYN/ACK。
     4. 攻击者再假冒A方对B方发送ACK包。

    这样攻击者便达到了破坏连接的作用,若攻击者再趁机插入有害数据包,则后果更严重。
         TCP协议把通过连接而传输的数据看成是字节流,用一个32位整数对传送的字节编号。初始序列号(ISN)在TCP握手时产生,产生机制与协议实现有关。攻击者只要向目标主机发送一个连接请求,即可获得上次连接的ISN,再通过多次测量来回传输路径,得到进攻主机到目标主机之间数据包传送的来回时间RTT。已知上次连接的ISN和RTT,很容易就能预测下一次连接的ISN。若攻击者假冒信任主机向目标主机发出TCP连接,并预测到目标主机的TCP序列号,攻击者就能伪造有害数据包,使之被目标主机接受。

    二、IP协议的安全问题
         IP协议在互连网络之间提供无连接的数据包传输。IP协议根据IP头中的目的地址项来发送IP数据包。也就是说,IP路由IP包时,对IP头中提供的源地址不作任何检查,并且认为IP头中的源地址即为发送该包的机器的IP地址。这样,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。其中最重要的就是利用IP欺骗引起的各种攻击。
     以防火墙为例,一些网络的防火墙只允许网络信任的IP数据包通过。但是由于IP地址不检测IP数据包中的IP源地址是否为放送该包的源主机的真实地址,攻击者可以采用IP源地址欺骗的方法来绕过这种防火墙。另外有一些以IP地址作为安全权限分配依据的网络应用,攻击者很容易使用IP源地址欺骗的方法获得特权,从而给被攻击者造成严重的损失。事实上,每一个攻击者都可以利用IP不检验IP头源地址的特点,自己填入伪造的IP地址来进行攻击,使自己不被发现。

    三、TCP/IP协议安全问题的防范
         TCP协议安全问题的防范
     对于SYN Flood攻击,目前还没有完全有效的方法,但可以从以下几个方面加以防范:
     1. 对系统设定相应的内核参数,使得系统强制对超时的SYN请求连接数据包的复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的SYN请求数据包。
     2. 建议在该网段的路由器上做些配置的调整,这些调整包括限制SYN半开数据包的流量和个数。
     3. 建议在路由器的前端多必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可以进入该网段,这样可以有效的保护本网段内的服务器不受此类攻击。
         IP协议安全问题的防范
     1. 抛弃基于地址的信任策略。这是最简单的方法。
     2. 进行包过滤。如果网络是通过路由器接入Internet的,那么可以利用路由器来进行包过滤。确认只有内部LAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重理。       路由器可以过滤掉所有来自于外部而希望与内部建立连接的请求。
     3. 使用加密技术。阻止IP欺骗的一种简单的方法是在通信时要求加密传输和验证。当有多种手段并存时,加密方法可能最为适用。

    四、TCP/IP各层的安全性和提高各层安全性的方法
     1. 网络层的安全性
         网络安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。它最主要的缺点是:网络层一般属于不间进程和相应条例的包不做区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。这可能导致提供不了所需要的功能,也会导致性能下降。针对面向主机的密钥分配的这些问题,RFC 1825允许(甚至可以说是推荐)使用面向用户的密钥分配,其中,不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核作比较大的改动。
     简而言之,网络层是非常适合提供基于主机对主机的安全服务的。相应的安全协议可以用来在Internet上建立安全的IP通道和虚拟私有网。例如,利用它对IP包的加密和解密功能,可以简捷地强化防火墙系统的防卫能力。RSA数据安全公司已经发起了一个倡议,来推进多家防火墙和TCP/IP软件厂商联合开发虚拟私有网,该倡议被称为S-WAN(安全广域网)倡议,其目标是制定和推荐网络层的安全协议标准。
     2. 传输层的安全性
         在网络应用编程中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议打交道。在Internet中提供安全服务的首先一个想法便是强化它的IPC界面,如BSD、Sockets等,具体做法包括双端实体的认证,数据加密密钥的交换等。Netscape通信公司遵循了这个思路,制定了建立在可靠的传输服务(如TCP/IP所提供)基础上的安全接层协议(SSL)。
     网络安全机制的主要优点是它的透明性,即安全服务的提供不要求应用层做任何改变。这对传输层来是说是做不到的。原则上,任何TCP/IP应用,只要应用传输层安全协议,比如说SSL或IPC,就必定要进行若干修改以增加相应的功能,并使用不同的IPC界面。于是,传输层安全机制的主要缺点就是要对传输层IPC界面和应用程序两端都进行修改。可是,比起Internet层和应用层的安全机制来,这里修改还是相当小的。另一个缺点是,基于UDP的通信很难在传输层建立起安全机制来。同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务。这一成就如果再加上应用级的安全服务,就可以再向前跨越一大步了。
     3. 应用层的安全性
         网络层的安全协议允许为主机(进程)之间的数据通道增加安全属性,这以为着真正的数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个具体文件的安全性要求。比如说,如果一个主机与另一个主机之间建立起一条安全的IP通道,那么所有在这条通道上传输的IP包就到要自动的被加密。同样,如果一个进程和另一个进程之间通过传输层安全协议建立起了一条安全的数据通道,那么两个进程间传输的所有消息就都要自动的被加密。
     一般来说,在应用层提供安全服务有几种可能的做法,一个是对每个应用(及应用协议)分别进行修改。一些重要的TCP/IP应用已经这样做了。在RFC1421至1424中,IETF规定了私用强化邮件(PEM)来为基于SMTP的电子邮件系统提供安全服务。Internet业界采纳PEM的步子太慢的原因是PEM依赖于一个既存的、完全可操作的PKI(公钥基础结构)。建立一个符合PEM规范的PKI需要多方在一个共同点上达成信任。作为一个中间步骤,Phil Zimmermann开发了一个软件包,叫做PGP(Pretty Good Privacy)。PGP符合PEM的绝大多数规范,但不必要求PKI的存在。相反,它采用了分布式的信任模型,即由每个用户自己决定该信任哪些其他用户。因此,PGP不是去推广一个全局的PKI,而是让用户自己建立自己的信任之网。

    kali视频学习以及实践:

    破解工具Hydra
     
    使用参数:
     破解FTP服务:

     hydra -L user.txt -P pass.txt -F ftp://127.0.0.1:21


     破解SSH服务:
     

    hydra -L user.txt -P pass.txt -F ssh://127.0.0.1:22


     破解SMB服务:
     

    hydra -L user.txt -P pass.txt -F smb://127.0.0.1


     破解MSSQL账户密码
     

    hydra -L user.txt -P pass.txt -F mssql://127.0.0.1:1433

    Crunch  

      实用的密码字典生成工具,可以指定位数生成暴力枚举字典。例如生成1-3位的包含0876四位字符的所有字符串

    crunch 1 3 0876

    如下图所示

    John the ripper

       密码破解工具,常用于Linux shadow中账户的密码破解,社区版也支持MD5-RAW等哈希的破解。  尝试破解本机用户名和密码,如下图所示

     

    学习中的问题

    视频中的字典文件需要自己手动准备。

    小测中遇到的问题:http和https的区别。

    https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。 

    学习进度条

    第六周进度

    学习了课本5/6章内容,实践操作了视频21-25集内容。

    小测错题总结

    web应用安全辅助分析工具tamperdata,burp suite,hp webinspect

    sql注入和xss攻击的共同原理:输入检查不充分,数据和代码没有分离

    提升http协议安全的机制:ssl、tls,cookie机制,基于表单的认证

    下面属于web前端的技术有:HTML,css,JavaScript

    浏览器和服务器交互的协议:http,https。

    OWASPZAP不能实现的功能是:目录遍历。

  • 相关阅读:
    SpringBoot 项目瘦身
    对比两个文本的异同
    Spring 事务不起作用的场景
    Controller 层数据校验实现思路
    Notify 类的实现思路
    backup: 使用 vim 时一定会用到的设置 --for-myself
    exercise: 反射获取指定的属性值 --CSharp
    exercise: 序列化和反序列化Xml --CSharp
    前缀
    华罗庚的数学思想
  • 原文地址:https://www.cnblogs.com/dkyliuhongyi/p/6668681.html
Copyright © 2011-2022 走看看