TCP/IP网络协议攻击


kali视频学习请看

http://www.cnblogs.com/lidong20179210/p/8909569.htmlhtml


这部分涉及:

  • ARP缓存欺骗攻击
  • ICMP重定向攻击
  • SYN FLOOD攻击
  • TCP RST攻击
  • TCP会话劫持攻击
  • Netwox原始报文伪造工具

网络层攻击:

(1) ARP 缓存欺骗

ARP 缓存是 ARP 协议的重要组成部分。当使用 ARP 协议解析了某个 MAC 地址和 IP地址的映射关系,该映射便会被缓存下来。所以就不用再使用 ARP 协议来解析已存在缓存中的映射关系。可是由于 ARP 协议是无身份认证的,因此 ARP 缓存很容易被恶意的虚假ARP 数据报实施欺骗。这样的攻击被称为 ARP 缓存欺骗(或 ARP 缓存中毒)。在这样的攻击中,攻击者经过伪造 ARP 数据报来欺骗被攻击主机的电脑使之缓存错误的 MAC 地址和 IP 地址映射。因攻击者的动机不一样,攻击的结果也有不少。例如,攻击者可使被攻击主机的默认网关IP 映射到一个不存在的 MAC 地址达到 DoS 攻击,攻击者也可使被攻击主机的通讯重定向至其余机器等等。你的任务是演示 ARP 缓存欺骗攻击是怎么工做的。任务中一些有用的命令: linux 下可使用 arp 来检查当前的 ARP 缓存。

linux

  • ARP欺骗技术的应用场景
     利用ARP欺骗进行交换网络中的嗅探
     ARP欺骗构造中间人攻击,从而实施TCP会话劫持
     ARP病毒
     ARP欺骗挂马ubuntu

  • ARP欺骗攻击防范措施
     静态绑定关键主机的IP地址与MAC地址映射关系
     网关/关键服务器
     "arp -s IP地址 MAC地址 类型"
     使用相应的ARP防范工具
     ARP防火墙
     使用VLAN虚拟子网细分网络拓扑
     加密传输数据以下降ARP欺骗攻击的危害后果浏览器

实践

ARP欺骗

攻击机的ip后三位为130,靶机A为133,靶机B为134,攻击机经过netwox工具伪造arp报文,使靶机B相信靶机A的ip对应的MAC地址为伪造的MAC地址,这个MAC地址能够是攻击机的物理地址,我在伪造的物理地址中嵌入了个人学号。
使用netwox的80号工具攻击,命令如图,
缓存

攻击结果如图,安全

(2) ICMP 重定向攻击

ICMP 重定向报文是路由器为网络中的机器提供最新的路由信息以达到最短路由而使用的。当主机收到一个 ICMP 重定向报文就会根据报文来更新本身的路由表。因为缺少确认机制,若是攻击者想要使被攻击主机使用特定路由,他们只要向被攻击主机发送欺骗性的ICMP 重定向报文,使它改变路由表便可。你的任务是演示 ICMP 重定向攻击是如何工做的,并描述一下观察到的结果。在 linux可使用 route 命令检查路由表。
服务器

  • ICMP路由重定向攻击防范
     根据类型过滤一些ICMP数据包
     设置防火墙过滤
     对于ICMP重定向报文判断是否是来自本地路由器cookie

    实践

首先查看靶机A的ip/mac地址,攻击机B的ip/mac地址


而后记录下此时A的路由表状态
咱们打开wireshark,输入判断条件

(tcp or arp or icmp) and ip.addr == 222.28.136.122网络

准备待命抓包。
这时咱们开启netwox进行ICMP路由重定向,使用第86号工具,按照工具提示进行数据包的篡改,以下图

这句话的意思是,嗅探网络中来自主机222.28.136.122的TCP包,一旦出现,就以网关222.28.136.254的名义,向数据包的源地址发送一个ICMP重定向报文,使之使用222.28.136.223做为默认的路由。

回车以后,咱们开启wireshark,用靶机ping baidu.com,能够看到wireshark马上截获了靶机发往目标服务器的的相关报文,以下图所示:
tcp

而后这时咱们再查看靶机的路由表,和以前的相对比,靶机已经错误的将网关更改成了咱们的攻击机A的IP地址

传输层攻击:

(1) SYN flood 攻击

SYN flood攻击是 DoS 攻击的一种形式,攻击者向被攻击主机的 TCP 端口大量发送 SYN请求包,但不去完成 TCP 的”三次握手”的过程,例如攻击使用一个假的 IP 地址,或只是简单地再也不继续创建 TCP 链接的过程,这都使被攻击主机处于”半链接”状态(即在”三次握手”过程当中,有了前两次握手,SYN 包和 SYN-ACK 包的传输,但没有最后一次 ACK 包的确认)。被攻击主机的主机会使用一个队列来保存这种半链接的状态,当这个队列存储空间满了的时候,目标主机便没法再接受任何其它链接。这一队列的空间大小事实上是一个系统变量,在Linux 中,能够这样查看它的大小:

# sysctl –q net.ipv4.tcp_max_syn_backlog

咱们还可使用”netstat -na”命令去检查队列的使用状况。处于半链接的链接状态被标示为”SYN-RECV”,完成了”三次握手”的链接被标示为”ESTABLISHED”.在这一任务中,你须要演示 SYN flood 攻击。你可使用 Netwox 去实施攻击,并使用嗅探器来获取数据包。攻击实施的过程当中,在被攻击主机上运行”netstat -na”命令去观察受攻击的状况。请描述你的攻击是否成功。
SYN Cookie 保护机制:若是你的攻击看起来并不成功,你能够检查一下目标主机的 SYN Cookie 机制是否被开启。SYN cookie 是针对 SYN flood 攻击的一种保护机制。这一机制会在探测到 SYN flood 攻击时开始生效。
你可使用 sysctl 命令去打开或关闭这一机制:

# sysctl -a | grep cookie (查看 SYN cookie 的当前状态)
# sysctl -w net.ipv4.tcp_syncookies=0 (关闭 SYN cookie)
# sysctl –w net.ipv4.tcp_syncookies=1 (打开 SYN cookie)

请分别在 SYN cookie 机制打开和关闭两种状况下实施你的 SYN flood 攻击,并比较结果。请在你的报告中尝试描述为何 SYN cookie 能有效地抵御你的攻击。 (若是课堂上没有讲解 SYN cookie 的原理,你能够从网络上找到相关的信息)

实践

SYN FLOOD攻击

使用主机C对A实施攻击,形成FLOOD攻击,使用以下命令

可利用Wireshark工具抓取数据包查看:

能够看出C向A发送了大量的数据包,形成了SYN FLOOD攻击。

(2) TCP RST 攻击

  • TCP RST攻击是一种中断攻击
     伪造TCP重置报文攻击(spoofed TCP reset packet)
     TCP重置报文将直接关闭掉一个TCP会话链接
     限制条件:通信目标方接受TCP包
     通信源IP地址及端口号一致
     序列号(Seq)落入TCP窗口以内
     嗅探监视通讯双方的TCP链接,得到源、目标IP地址及端口
     结合IP源地址欺骗技术假装成通讯一方,发送TCP重置报文给通讯另外一方
    应用场景:恶意拒绝服务攻击、重置入侵链接、 GFW
     GFW: “net::ERR_CONNECTION_RESET
    你须要实施 TCP RST 攻击。这里推荐一个较为有趣的实验方法:对一个视频流的 TCP链接实施攻击。大多数的视频分享网站会经过 TCP 链接来传输数据,你的目标是干扰被攻击主机与视频源之间的 TCP 链接(已经假定你和被攻击主机在同一局域网内)
    访问视频网站并观看视频的过程通常以下:
    被攻击者使用浏览器访问一个视频网站,并选择播放某个视频
    大多数状况下视频的完整内容被存放在一个不一样的主机上,该主机接下来会与被攻击主机创建起 TCP 链接,从而使被攻击主机可以接收视频的内容。你的任务是经过破坏上述 TCP 链接来干扰视频流的传输。你可让被攻击主机试图去访问一个假的 IP 地址或是攻击主机的 IP 地址来获取视频(从而它没法成功得到视频内容),但请注意,攻击的目标应该是被攻击主机,这是受你控制的一台主机,不要针对提供视频的主机(不受你控制的主机)。你的攻击实验应出于学习目的而不要形成真正的危害。

实践

TCP RST攻击也称伪造TCP重置报文攻击,它经过更改TCP协议头的标志位中的“reset”比特位(0变1),来关闭掉一个TCP会话链接。

首先,A为kali攻击机,B为靶机(win2000),C为服务器(ubuntu)。其中服务器的IP地址以下

咱们用靶机B创建和C的23端口的链接,利用telnet命令

这时,咱们启动A中的wireshark,进行数据包的监视:
使用ip。Addr==222.28.136.226and tcp.port==23过滤
打开NETWOX,调用第78号工具,

这时,咱们再看B的链接界面

而wireshark当中也捕捉到了断开链接的数据包

说明此次RST攻击成功

(3) TCP 会话劫持 (bonus)

TCP 会话劫持的目标是劫持一个已经存在于两台被攻击主机之间的 TCP 链接,在会话
中注入恶意的内容。若是这是一个 telnet 会话链接,攻击者能够注入一些恶意的命令,使得被攻击主机运行这些恶意的命令。在这个任务中,咱们使用 telnet 做为例子,而且仍然假定攻击机与目标主机在同一个局域网内。

  • TCP会话劫持
     结合嗅探、欺骗技术
     中间人攻击:注射额外信息,暗中改变通讯
     计算出正确的seq ackseq便可
     TCP会话攻击工具 Juggernaut、 Hunt、 TTY watcher、IP watcher

  • 如何防止会话劫持
     避免攻击者成为通讯双方的中间人
     部署交换式网络,用交换机代替集线器
     禁用主机上的源路由
     采用静态绑定IP-MAC映射表以免ARP欺
     过滤ICMP重定向报文
  • TCP会话加密(IPsec协议)
     避免了攻击者在获得传输层的端口及序列号等关键信息防火墙配置
     限制尽量少许的外部许可链接的IP地址检测
     ACK风暴: ACK包的数量明显增长

关于 wireshark 的一些提示:若是你使用 wireshark 进行监听,请注意在默认状况下wireshark 显示的 TCP 链接的序列号(sequence number)是相对序列号(relative sequence),也就是当前序列号减去 TCP 链接创建之初的起始序列号,要查看真实的”绝对”序列号,右键点击协议内容,在”protocol preference”菜单中去掉”Relative Sequence Number and Window Scaling”这一项前面的勾。
UDP Flood攻击

  • UDP协议
     无状态不可靠
     仅仅是传输数据报
  • UDP Flood
     带宽耗尽型拒绝服务攻击
     分布式拒绝服务攻击(DDoS)
     利用僵尸网络控制大量受控傀儡主机
     一般会结合IP源地址欺骗技术
  • UDP Flood攻击防范措施
     禁用或过滤监控和响应服务
     禁用或过滤其它的 UDP 服务
     网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量
     遭遇带宽耗尽型拒绝服务攻击
     终端无能为力
     补救措施: 网络扩容、 转移服务器位置
     事件响应:汇报给安全应急响应部门、追溯和处置
     流量清洗解决方案: ISP为关键客户/服务所提供

实践

实验环境:

A:攻击机kali

B:TCP会话一方,ubuntu

C:TCP会话一方,win2000

注意:这里咱们使用hunt工具来完成tcp会话劫持,下载地址:http://download.csdn.net/detail/qq_26802417/9382279,咱们在后面会进行一些该工具的功能演示

在kali中安装成功hunt-1.5以后,咱们直接启动,hunt界面以下:

接下来,咱们令C去telnetB主机的23端口。界面以下,链接成功

此时回到kali

命令l是查看当前局域网内的链接

命令w是监控当前局域网内的链接

命令r是终结链接

有关劫持更多的操做的两个命令是a,s命令,都是进行arp劫持,可是a命令会防止ack风暴。

1.咱们输入l,界面以下

能够看到0)号链接为两台进行TCP会话的主机。

2.咱们再输入a,按照以下方式填写,进入一个监控界面

在这个界面中,不管B作了什么,均可以监控到,以下图所示:

咱们在A中看到就是以下界面

该方式是中间人欺骗,就是被动劫持,使得数据包经过你来传达,因此链接不会终止,而你只能查看其操做结果并不能进行命令的插入。

从上图中咱们注意到CTRL-C to break这句话,此时按下CTRL-C,而后hunt就会呈现以下界面:

其中的绿颜色的命令是我在B主机中输入的命令,而此时B主机不管如何输入命令,都不能起任何做用了

在kali中按下回车键,就彻底接管了B主机和C主机的通讯,以下图所示

3.咱们还能够测试r命令。r命令是一个终结链接的命令,以下

此时咱们的win2000机器就断了

相关文章
相关标签/搜索