20212907 2021-2022-2 《网络攻防实践》实践四报告
一.实践内容
1.TCP/IP协议栈
TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列。TCP/IP协议栈(按TCP/IP参考模型划分),TCP/IP分为4层,不同于OSI,他将OSI中的会话层、表示层规划到应用层。
·链路层主要用来处理数据在物理介质(如以太网、令牌环等)的传输,实现网卡接口的网络驱动程序;
·网络层采用IP协议是整个协议栈的核心,其主要功能是进行数据包的选路和转发,实现网际互联与拥塞控制等;
·传输层为主机间的应用程序提供端到端的通信,该层定义了两种协议即TCP与UDP;
·应用层的主要功能是处理应用程序的逻辑,比如文件传输、名称查询和网络管理等,位于该层的协议有基于TCP协议的FTP文件传输协议、HTTP超文本传输协议和基于UDP协议的域名服务DNS等。
由于 TCP/IP 协议有四层且每一层功能、协议各不相同,因此针对不同协议层攻击方法也各不相同:针对链路层的攻击,主要是对网络硬件和基础设施进行物理破坏或强行改变路由器路由;IP协议与ARP协议是网络层最重要的两个协议,针对网络层的攻击,主要有IP碎片攻击、ARP 欺骗等;由于TCP协议与UDP协议是传输层最主要的两个协议,因此针对传输层的攻击非常多,包括DOS攻击等;而应用层的协议是整个协议栈最多的,因此针对该层的攻击数量极为庞大,常见的如 DNS 欺骗等。
2.ARP缓存欺骗攻击
ARP(地址解析协议)是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDI IP网络中使用。ARP欺骗,它主要分为双向欺骗和单向欺骗。
(1)单向欺骗
A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB
C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC
A和C之间进行通讯.但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么:)。这就是典型的ARP欺骗过程。
(2)双向欺骗
A要跟C正常通讯,B向A说我是才C。B向C说我才是A,那么这样的情况下把A跟C的ARP缓存表全部修改了。以后通讯过程就是 A把数据发送给B,B在发送给C,C把数据发送B,B在把数据给A。
攻击主机发送ARP应答包给被攻击主机和网关,它们分别修改其ARP缓存表为, 修改的全是攻击主机的MAC地址,这样它们之间数据都被攻击主机截获。
3.ICMP重定向攻击
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。
在VMware虚拟环境中(Virtual Box不同),.2是充当网关的默认地址(通过route命令可以查看当前的网关和路由信息);所以攻击者可以冒充.2发出重定向包,通知受害者修改自己的网关为攻击者指定的gw地址;如果伪造的gw是自身,可以实现中间人攻击或者DOS攻击(没有启动IP转发功能);如果是随意IP(不能到达或不负责转发),则可以导致DOS攻击。
4.SYN Flood攻击
SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。
SYN Flood攻击是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+ ACK包),因为对方是假冒IP对方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足) ,让正常的业务请求连接不进来。
5.TCP RST攻击
RST表示复位。用来异常的关闭连接。在发送RST包关闭连接时,不必等缓冲区的包都发出去,而是直接丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。 RST攻击:客户端和服务端之间建立了TCP连接。此时攻击者伪造了一个TCP包发给客户端,使客户端异常的断开了与服务端之间的TCP连接,这就是RST攻击。攻击中,攻击主机可以通过嗅探方式监视通信双方之间的TCP连接,在获得源、目标IP地址及端口,以及序列号之后,就可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方,在确保端口号一致及序列号落入TCP窗口之内的情况下,即可直接关闭这个TCP连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果,而且向TCP会话中的任意一端节点均可以重置TCP连接。
·当A与B正在进行数据传输通信(已建立TCP连接);
·这时hacker伪装了一个由服务器B给A发送的复位报文并发送给A;
·A收到该复位报文,则会立即释放连接并清空缓存;
·hacker会一直监听被攻击者A是否发出TCP连接请求,一旦监听到该TCP请求报文,hacker则会立即向被攻击者A发送TCP RST复位报文,这就导致了A将无法再次连接上B。
6.TCP会话劫持攻击
目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。TCP会话劫持的攻击方式可以对基于TCP的任何应用发起攻击,如HTTP、FTP、Telnet等。对于攻击者来说,所必须要做的就是窥探到正在进行TCP通信的两台主机之间传送的报文,这样攻击者就可以得知该报文的源IP、源TCP端口号、目的IP、目的TCP端号,从而可以得知其中一台主机对将要收到的下一个TCP报文段中seq和ackseq值的要求。这样,在该合法主机收到另一台合法主机发送的TCP报文前,攻击者根据所截获的信息向该主机发出一个带有净荷的TCP报文,如果该主机先收到攻击报文,就可以把合法的TCP会话建立在攻击主机与被攻击主机之间。带有净荷的攻击报文能够使被攻击主机对下一个要收到的TCP报文中的确认序号(ackseq)的值的要求发生变化,从而使另一台合法的主机向被攻击主机发出的报文被被攻击主机拒绝。TCP会话劫持攻击方式的好处在于使攻击者避开了被攻击主机对访问者的身份验证和安全认证,从而使攻击者直接进入对被攻击主机的的访问状态,因此对系统安全构成的威胁比较严重。
二.实践过程
任务:
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
将虚拟机都改为NAT模式。
首先查看kali攻击机和winxp以及ubuntu两台通信机的IP及MAC地址:
综上,如表格所示:
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali | 192.168.200.7 | 00:0c:29:d1:f8:9e |
WinXP | 192.168.200.131 | 00:0c:29:f3:2c:63 |
Ubuntu | 192.168.200.66 | 00:0c:29:fc:4a:f4 |
1.ARP缓存欺骗攻击
·kali下载netwox
·打开kali的IP转发功能
·使用arp -a查看arp缓存表,可得IP地址和MAC无误
·使用ubuntu去ping kali,连通
·Kali执行以下命令sudo netwox 33 -b -(A的mac地址) -g -(B的ip地址) -h -(A的mac地址) -i -(A的ip地址)
即sudo netwox 33 -b 00:0c:29:fc:4a:f4 -g 192.168.200.20 -h 00:0c:29:fc:4a:f4 -i 192.168.200.66
·在SEED_Ubuntu虚拟机中利用命令arp -a再次查看arp缓存表,可以发现这时192.168.200.20对应改为了kali的MAC地址
2.ICMP重定向攻击
·使用ubuntu ping 网址baidu.com测试连通性
在测试过程中,发现使用NAT模式无法联网,所以都修改为了桥接模式,IP地址发生变化:
kali:192.168.1.106
WinXP:192.168.1.109
Ubuntu:192.168.1.105
·使用命令route -n查看靶机Ubuntu路由信息
·在Kali执行命令netwox 86 -f "host 192.168.1.105" -g 192.168.1.106 -i 192.168.1.1,当嗅探到SEED的数据包时,以192.168.1.1的名义发送ICMP重定向报文,使Kali成为其默认路由。
·使用Ubuntu去ping baidu.com ,可见数据包已经被重定向到192.168.1.1
3.SYN Flood攻击
·在WinXP命令行中输入telnet 192.168.1.105,将Ubuntu和WinXP之间建立telnet联系
·用76号工具,在Kali输入netwox 76 192.168.1.105 -p 23,对Ubuntu的23号端口进行攻击
kali中打开wireshark,发现TCP SYN数据包,即对Ubuntu 192.168.1.105进行了SYN flood攻击。
·Kali输入netwox 76 192.168.1.109 -p 23,对WinXP的23号端口进行攻击。
靶机WinXP 192.168.1.109,已失去和主机的联系
4.TCP RST攻击
换了地方做实验,WinXP 的IP地址再次发生变化:
WinXP:192.168.1.101
·WinXP靶机输入telnet 192.168.1.105,使得Ubuntu与XP建立联系
·使用命令sudo netwox 78 -i 192.168.1.105 进行TCP RST攻击,
·WinXP输入telnet 192.168.1.105,无法连接
5.TCP会话劫持攻击
· kali中用sudo ettercap -G命令,打开ettercap图形化界面
·打开Ettercap Menu->Hosts->Host List
·添加target1和target2
·选择MITM menu中的 ARP poisoning ,进行ARP欺骗
·kali中选择Ettercap Menu菜单栏,再选择view-connections
再用WinXP telnet 192.168.1.105
再view-connections,之后点击查看用户名和密码
三.遇见的问题及解决
问题1:安装netwox过程中始终安装失败
问题1解决方案:把NAT模式改为了桥接模式,即可连接网络下载,但是这一操作使得IP地址都改变了。
问题2:使用kali进行TCP RST攻击过程中,一操作就断网,使得整个物理机也断网了。再查看发现宿舍的路由器也断网了。
问题2解决措施:上网查询相关资料发现可能是因为采用的桥接模式影响了整个网络,但还不确定具体原因,还在继续查找。
四.实践总结
通过这次实验,了解了TCP/IP协议栈重点协议的多种攻击实验的原理与方法,对于网络攻防的认识也深入了一层,同时实验中出现的各种问题也使得我能够更加理性的思考解决。