TCP/IP三次握手攻击是种什么攻击法,这样的攻击名称就什么啊?谢谢
是半连接攻击吧?
tcp协议是一种面向连接的可靠协议,它规定在正式传输数据之前必须建立起连接关系,过程是a向b发送syn包,b收到后发送ack+syn包,a收到后向b发送ack包。这个过程称为三次握手,经过三次握手后发送的数据才会被接收。
利用tcp协议的攻击原理是a向b发送一个syn包,b返回ack+syn包,但a不再发送ack确认包,那么b将就这样一直等待a返回的确认包,占用了连接资源,这样的状况成为半开连接,直到连接超时才会关闭连接。如果a向b发送大量的syn包,b的网络连接资源将被耗尽,就构成了攻击。还有更坏的一种方式是在发送的syn包中把源地址设为一个不存在的地址,服务器向一个不存在的地址发送请求包自然得不到回应。
以上就是tcp连接攻击的方法,称为半连接flood攻击
tcp/ip常见攻击方式
常见 TCP/IP 协议攻击方法分析
2.1 IP 欺骗( IP Spoofing)
IP 欺骗是指一个攻击者假冒一个主机或合法用户的 IP 地址,利用两个主机之间的信任关系来达到攻击的目的,而这种信任关系只是根据源 IP 地址来确定。所谓信任关系是指当主机 B 信任主机 A 上的 X用户时,只要 X 在 A 上登录, X 用户就可以直接登录到主机 B 上,而不需要任何口令。
IP 欺骗通常需要攻击者能构造各种形式 IP 数据包,用虚假的源 IP 地址替代自己的真实 IP 地址。如果主机之间存在基于 IP 地址的信任关系,目标主机无法检测出已经被欺骗。
防范措施
各个网络 ISP 应该限制源地址为外部地址的 IP 数据包进入互联网
合理的配置防火墙,限制数据包的源地址为内部网络的数据包进入网络。
2.2 TCP 会话劫持 (TCP sessJOn hijacking)
TCP 会话劫持跳过连接过程.对一个已经建立的连接进行攻击。攻击者与被假冒主机和目标主机之一在同一个子网中,攻击者通过一个嗅探程序可以看到被假冒主机和目标主机之间通信的数据包。
攻击者看到被假冒主机和目标主机建立一个连接并进行身份认证后,通过对数据包捕获和进行分析,就可以得到连接的序列号。
一旦得到正确的序列号就可以发送一个假冒的 TCP 分段,接管已经建立的连接。这样,被假冒主机发送的数据包都会被目标主机忽略,因为它们的序列号会被目标主机认为不正确。
防范措施
最主要的方法是在传输层对数据进行加密。
2.3 拒绝服务( Denial Of Service )
拒绝服务坷的目的就是使受害的服务器不能提供正常的网络服务。
2.3.1 SYN 淹没 (SYN Flooding)
当开放了一个TCP端口后,该端口就处于Listening状态,不停地监视发到该端口的Syn报文,一旦接收到Client发来的Syn报文,就需要为该请求分配一个TCB(Transmission Control Block),通常一个TCB至少需要280个字节,在某些操作系统中TCB甚至需要1300个字节,并返回一个SYN ACK命令,立即转为SYN-RECEIVED即半开连接状态,而操作系统在SOCK的实现上最多可开启半开连接个数是一定的。
从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计。
防范措施
无效连接监视释放
这种方法不停监视系统的半开连接和不活动连接,当达到一定阈值时拆除这些连接,从而释放系统资源。这种方法对于所有的连接一视同仁,而且由于SYN Flood造成的半开连接数量很大,正常连接请求也被淹没在其中被这种方式误释放掉,因此这种方法属于入门级的SYN Flood方法。
延缓TCB分配方法
从前面SYN Flood原理可以看到,消耗服务器资源主要是因为当SYN数据报文一到达,系统立即分配TCB,从而占用了资源。而SYN Flood由于很难建立起正常连接,因此,当正常连接建立起来后再分配TCB则可以有效地减轻服务器资源的消耗。常见的方法是使用Syn Cache和Syn Cookie技术。
Syn Cache技术:
这种技术是在收到SYN数据报文时不急于去分配TCB,而是先回应一个SYN ACK报文,并在一个专用HASH表(Cache)中保存这种半开连接信息,直到收到正确的回应ACK报文再分配TCB。在FreeBSD系统中这种Cache每个半开连接只需使用160字节,远小于TCB所需的736个字节。在发送的SYN ACK中需要使用一个己方的Sequence Number,这个数字不能被对方猜到,否则对于某些稍微智能一点的Syn Flood攻击软件来说,它们在发送Syn报文后会发送一个ACK报文,如果己方的Sequence Number被对方猜测到,则会被其建立起真正的连接。因此一般采用一些加密算法生成难于预测的Sequence Number。
Syn Cookie技术:
对于SYN攻击,Syn Cache虽然不分配TCB,但是为了判断后续对方发来的ACK报文中的Sequence Number的正确性,还是需要使用一些空间去保存己方生成的Sequence Number等信息,也造成了一些资源的浪费。
Syn Cookie技术则完全不使用任何存储资源,这种方法比较巧妙,它使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息,以及对方无法知道而己方比较固定的一些信息,如MSS、时间等,在收到对方的ACK报文后,重新计算一遍,看其是否与对方回应报文中的(Sequence Number-1)相同,从而决定是否分配TCB资源。
1, 基于网络层的攻击是() A,TCP会话拦截 B ping of death C 网络嗅探 D DNS欺诈
选B,ping基于ICMP协议,这个协议是网络层的。
TCP属于传输层,网络嗅探,基于物理层,DNS欺诈,可以说基本应用层
TCP/IP攻击的基于TCP/IP协议的网络攻击方式
有三台主机:
A:IP地址 192.168.0.1;硬件地址AA:AA:AA:AA:AA:AA
B:IP地址 192.168.0.2;硬件地址BB: BB: BB: BB: BB: BB
C:IP地址 192.168.0.3;硬件地址CC:CC:CC: CC:CC:CC
一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料得知这台主机A的防火墙只对主机C有信任关系。而入侵者必须要使用telnet来进入主机A,这个时候入侵者应当如何处理?
要telnet到主机A,入侵者可以让主机A相信主机B就是主机C。如果主机A与C的信任关系是建立在IP地址上的。攻击者可以先通过各种拒绝式服务方式让C这台机器暂时宕机,同时将B的IP地址改为192.168.0.3,B就可以成功地通过23端口telnet到A上,而成功地绕过防火墙的限制。
但是,如果AC的信任关系是建立在硬件地址之上,这个时候上述的方式就不行了,需要运用ARP欺骗方式。
入侵者认为地制造一个arp_reply的响应包,发送给想要欺骗的主机A,这是可以实现的,因为ARP协议并没有规定在收到arp_echo请求后才可以发送响应包(这就是能够实现的关键,在一般的情况之下只有路由器进行了arp广播之后,主机才会回复)。这样,就可以通过发送虚假的ARP响应包来修改主机A上的动态ARP缓存来达到欺骗的目的。
具体步骤如下:
①利用工具,进行拒绝式服务攻击,让主机C宕机,暂时停止工作。
②在这段时间里,入侵者把自己的IP改为192.168.0.3(主机C的IP)。
③用工具发一个源地址为192.168.0.3,源MAC地址为BB: BB: BB: BB: BB: BB的包给主机A,要求A更新自己的ARP转换表(ARP缓存)。
④主机A更新了ARP缓存中关于主机C的IPàMAC的对应关系。
⑤防火墙失效了,现在主机B可以telnet到主机A。 2.1ICMP转向连接攻击
攻击者使用ICMP超时或者ICMP主机不可达报文,这两种报文都会使得主机迅速放弃连接。此时通信连接就会被切断。
一台主机错误地认为信息的目标地址不在本地网络之中的时候,网关通常会使用ICMP重定向消息。如果攻击者伪造一条重定向消息,就可以导致主机经过攻击者主机向特定连接发送数据包。
2.2ICMP数据包放大(ICMP Smurf)
攻击者向安全薄弱网络的广播地址发送ICMP回显请求,所有的主机都会像被攻击主机,发送ICMP应答,占用了目标系统的带宽,并导致合法通信的拒绝服务(DoS)。
2.3ICMP Ping淹没攻击
大量的ping信息广播淹没了目标系统。
2.4ICMP nuke攻击
nuke发送出目标操作系统无法处理的信息数据包,从而导致该系统瘫痪。
2.5通过ICMP进行攻击信息收集
可以通过ping来检查目标主机是否存活,并且根据返回的TTL值就可以判断目标主机的操作系统(Linux应答TTL为64,windows 200/NT/XP为128,其他系统未列出)。
2.6ICMP攻击防范
策略一:对ICMP数据包进行过滤
使用防火墙的功能
策略二:修改TTL值巧妙骗过黑客
系统缺省的TTL值是可以修改的,可以编写一个批处理文件来进行修改。 假设主机A和B建立TCP连接,要进行三次握手。针对TCP协议的攻击原理是:TCP协议三次握手没有完成的时候,被请求端B一般都会重试(即再给A发送SYN+ACK报文)并等待一段时间,这就可以用来进行DoS、Land、SYN flood攻击。
在SYN flood攻击中,黑客向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包;并等待源地址返回ACK包,由于源地址是伪造的所以源端永远不会发送ACK包,所以受害主机继续发送SYN+ACK包,并将半链接放入端口的积压队列之中,虽然一般主机都有超时机制和默认的重传次数,但是如果不断向受害主机发送大量的TCP SYN报文,半连接队列就会很快被填满,导致受害主机无法响应其他主机的连接请求。
防御方法:针对SYN flood的攻击防范措施主要有两种:一种是通过防火墙、路由器等过滤网关防护,另一种是通过加固TCP/IP协议栈。
网络安全-TCP-IP攻击
概述
1. SYN-Flooding攻击效果,受害者系统卡死.
2. TCP-RST攻击实现已经建立的TCP连接断开.
3. TCP会话劫持,劫持TCP会话,并实现反向Shell.
实验环境
1. 三台Linux系统主机,一台作为攻击者,一台作为受害者,一台作为观察者.
2. 为了简化TCP序列号和源端口号的“猜测”,实验处于同一局域网内,你可以使用嗅探器来获取受害者信息.
SYN-Flooding攻击
1. SYN-Flooding攻击原理
SYN-Flooding是DoS攻击的一种,攻击者向受害者的TCP端口发送很多SYN请求,但攻击者无意完成三次握手过程.
攻击者要么使用欺骗性的假的IP地址,要么不要继续完成整个三次握手过程.
通过这种攻击,攻击者可以淹没用于半连接的受害者队列,即已完成SYN,SYN-ACK但尚未得到最终ACK的连接.
当这个队列已满时,受害者不能再进行任何连接.
正常三次握手过程:
在Linux中,我们可以使用以下命令检查
我们可以使用命令“netstat -na”来检查队列的使用情况,即与监听端口相关联的半连接的数量.
这种半连接的状态是SYN-RECV。如果三次握手完成,则连接的状态将为ESTABLISHED.
在这个任务中,你需要演示SYN-Flooding攻击:
您可以使用Netwox来执行攻击,然后使用嗅探器捕获攻击性数据包.
在攻击发生时,在受害机器上运行“netstat -na”命令,并将结果与攻击前的结果进行比较.
2. Netwox 76简介
3. SYN Cookie防御机制
如果你的攻击看起来不成功,你可以检查是否启用了SYN cookie机制.
SYN cookie是抵抗SYN-Flooding的防御机制.
防御原理简介:
在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,
而是根据这个SYN包计算出一个cookie值.
在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性.
如果合法,再分配专门的数据区进行处理未来的TCP连接.
你可以使用sysctl命令打开/关闭SYN cookie机制:
4. 实验结果分析
比较 netstat -na 前后状态如下:
产生大量的TCP半连接,阻塞了队列,导致后续正常TCP连接无法建立!!
TCP-RST攻击
1. FTP协议
2. TELNET协议
3. SSH协议
4. Newox 78简介
5. 实验结果分析
-** FTP**
FTP服务器地址: 192.168.59.146/24
FTP客户端地址: 192.168.59.144/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP-RST打击:
结果显示:已经建立的TCP连接断开.
Telnet服务器地址: 192.168.59.146/24
Telnet客户端地址: 192.168.59.144/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP-RST打击:
结果显示:已经建立的TCP连接断开.
SSH服务器地址: 192.168.59.146/24
SSH客户端地址: 192.168.59.144/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP-RST打击:
结果显示:已经建立的TCP连接断开.
TCP会话劫持
1. 会话劫持简介
TCP会话劫持攻击的目标是通过向该会话中注入恶意内容来劫持两名受害者之间的现有TCP连接(会话).
如果这个连接是一个telnet会话,攻击者可以在这个会话中注入恶意命令(例如删除重要文件),导致受害者执行恶意命令.
2. Wireshark简介
如果您使用Wireshark观察网络流量,当Wireshark显示TCP序列号时,
默认情况下会显示相对序列号,它等于实际序列号减去初始序列号.
如果想查看包中的实际序列号,则需要右键单击Wireshark输出的TCP部分,
然后选择"Protocol Preference". 在弹出窗口中,取消选"Relative Sequence Number"选项.
3. Netwox 40简介
4. 实验结果分析
Telnet服务器地址: 192.168.59.148/24
Telnet客户端地址: 192.168.59.146/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP会话劫持:
我们要伪造发下一个包:
所以直接采用nextseq作为下一个包的ack,采用ack作为下一个包的seq.
最后一个Telnet数据包内容如下:
我们伪造向服务器 192.168.59.148 发送 ls 命令,
通过netwox构造我们的攻击指令如下:
在wireshark上显示抓包数据如下:
来创建我们的肉鸡~
现在我们来通过NC反弹一个Shell,来控制我们受害者:
首先是构造NC命令:
实验结果如图:
首先看结果:我们成功拿到了服务器上的用户gu的所有权限!
咱们再来看看抓包数据,通过抓包数据,你可以看到最后一条Telnet的TCP数据,通过这些数据,就可以很方便通过Netwox构造攻击语句了!!
0条大神的评论