20212904 2021-2022-2 《网络攻防实践》实践四报告
20212904 2021-2022-2 《网络攻防实践》实践四报告
1.实践内容
通过实验了解TCP/IP协议栈的几种攻击:ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
2.基础知识
(1)TCP/IP 协议栈的安全风险和相应的攻击技术如下表:
(2)ARP缓存欺骗攻击
1)ARP缓存欺骗攻击原理
ARP缓存欺骗攻击是利用ARP协议的缺陷进行的一种非法攻击。其原理是主机接收到一个应答包之后,并不会验证自己是否发送过对应的arp请求包,也不会验证这个arp请求包是否可信,而是直接用应答包里的IP地址和mac地址的对应关系替换掉arp缓存表里原有的对应关系。
2)ARP缓存欺骗攻击过程
(3)ICMP重定向攻击
1)ICMP重定向概念
ICMP重定向技术,是用来提示主机改变自己的主机路由从而使路由路径最优化的一种ICMP报文。其概念理解的要义是原主机路由不是最佳路由,而其默认网关提醒主机优化自身的主机路由而发送的报文。
2)ICMP重定向攻击
从安全的角度来讲,ICMP重定向报文没有协议状态检查,以及合法性机制验证,十分类似ARP报文,可以轻而易举的进行欺骗攻击。ICMP攻击可以达到的目的:流量的嗅探劫持、中间人代理权。正常时,user通过交换机Switch连接到网关设备Gateway,利用默认网关与跨网段的服务器Server通信。异常情况下,攻击者Attacker可以伪造网关向user发送ICMP重定向报文,可以结合ARP欺骗技术,然后用户user主机路由变成流量要通过Attacker来进行转发通信。攻击者可以截获、提取、分析、修改、重放用户user的数据包,造成多种安全威胁。
(4)SYN Flood攻击
1)SYN Flood攻击概念
SYN Flood攻击是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+ ACK包),因为对方是假冒IP对方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足) ,让正常的业务请求连接不进来。
2)SYN Flood攻击图解
(5)TCP RST攻击
A和服务器B之间建立了TCP连接,此时C伪造了一个TCP包发给B,使B异常的断开了与A之间的TCP连接,就是RST攻击了。实际上从上面RST标志位的功能已经可以看出这种攻击如何达到效果了。假定C伪装成A发过去的包,这个包如果是RST包的话,毫无疑问,B将会丢弃与A的缓冲区上所有数据,强制关掉连接。如果发过去的包是SYN包,那么,B会表示A已经发疯了(与OS的实现有关),正常连接时又来建新连接,B主动向A发个RST包,并在自己这端强制关掉连接。
(6)TCP会话劫持攻击
TCP会话劫持的目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行一步通信。
3.实践过程
(1)ARP缓存欺骗攻击
1)ARP缓存欺骗攻击实验环境
虚拟机 | IP | MAC地址 |
---|---|---|
Kali | 192.168.200.5 | 00:0c:29:da:bb:26 |
MetaSploitable_Ubuntu(靶机1) | 192.168.200.123 | |
Win2kSever(靶机2) | 192.168.200.124 |
2)使用MetaSploitable_Ubuntu靶机Ping 靶机Win2kSever,看是否能Ping通。
3)输入arp -a查看arp表将其记录,如图所示:
4)Kali虚拟机ping 虚拟机MetaSploitable_Ubuntu看是否能ping通。
5)ARP缓存欺骗就是为了让一个靶机将另一个靶机的MAC地址记为攻击机的MAC地址,使用netwox 80工具可以进行ARP欺骗,Kali输入apt install netwox 进行安装:
6)Kali输入netwox 80 -e 00:0c:29:da:bb:26 1 -i 192.168.200.123 对MetaSploitable_Ubuntu进行攻击,
7)返回MetaSploitable_Ubuntu再次查看arp缓存列表,发生了改变,说明攻击成功。
(2)ICMP重定向攻击
1)ICMP重定向攻击实验环境:
虚拟机 | IP |
---|---|
Kali | 192.168.200.5 |
SEEDUbuntu | 192.168.200.3 |
2)查看靶机SEEDUbuntu路由为192.168.200.1。
3)测试SEEDUbuntu靶机 ping 百度,可以ping通:
4)在攻击机Kali输入 netwox 86 -f “host 192.168.200.3” -g 192.168.200.5 -i 192.168.200.1,进行ICMP重定向攻击。
5)再用SEEDUbuntu靶机 ping 百度,发现下一跳地址都变成了攻击机的IP地址192.168.200.5。
(3)SYN Flood攻击
1)SYN Flood攻击实验环境
虚拟机 | IP |
---|---|
Kali(攻击机) | 192.168.200.5 |
SEEDUbuntu | 192.168.200.3 |
MetaSploitable_Ubuntu | 192.168.200.123 |
2)在SEEDUbuntu中输入telnet 192.168.200.123,将SEEDUbuntu和MetaSploitable_Ubuntu之间建立telnet联系,可以看到顺利建立连接并登录。
3)在Kali输入netwox 76 192.168.200.123 -p 23,对MetaSploitable_Ubuntu的23号端口进行攻击。
4)回到SEEDUbuntu再次输入telnet 192.168.200.123,将SEEDUbuntu和MetaSploitable_Ubuntu之间建立telnet联系,出现明显卡顿。
5)回到Kali虚拟机,打开Wireshark看到攻击机通过不同的IP向靶机23号端口发送大量的数据包,使得正常服务停止,无法找出攻击IP地址。
(4)SYN Rst攻击
1)SYN Rst攻击实验环境:
虚拟机 | IP |
---|---|
Kali(攻击机) | 192.168.200.5 |
SEEDUbuntu | 192.168.200.7 |
MetaSploitable_Ubuntu | 192.168.200.123 |
2)在SEEDUbuntu中输入telnet 192.168.200.123,将SEEDUbuntu和MetaSploitable_Ubuntu之间建立telnet联系,可以看到顺利建立连接并登录。
3)使用命令:netwox 78 -i 192.168.200.123 ,在Kali上利用netwox的78号工具对MetaSploitable_Ubuntu的23号端口进行SYN Flood攻击。
4)回到SEEDUbuntu再次输入telnet 192.168.200.123发现无法连接。
(5)TCP会话劫持攻击
1)TCP会话劫持攻击实验环境
虚拟机 | IP |
---|---|
Kali(攻击机) | 192.168.200.5 |
SEEDUbuntu | 192.168.200.7 |
MetaSploitable_Ubuntu | 192.168.200.123 |
2)进入Kali,输入ettercap -G,打开ettercap,点击√,点击Ettercap菜单,点击hosts,点击scan for hosts,等待扫描完毕,再打开菜单点击hosts,点击hosts list:
3)在host list中选择SEEDUbuntu和MetaSploitable_Ubuntu靶机作为靶机作为攻击对象,选择菜单MITM中的ARP Poisoning点击OK:
4)打开Ettercap菜单选择view,选择connections:
5)打开SEEDUbuntu靶机对MetaSploitable_Ubuntu进行连接,输入账号密码。回到Kali,发现两个靶机之间传输数据包,点开发现telnet相关信息(右)以及账号和密码mfsadmin(左):
4.学习中遇到的问题及解决
- 问题1:使用MetaSploitable_Ubuntu靶机Ping 靶机Win2kSever未ping通,原因是两台靶机不在一个局域网。
- 问题1解决方案:把虚拟机分别改成NAT模式和vmnet1就可以了。
- 问题2:在攻击机Kali输入 netwox 86 -f “host 192.168.200.3” -g 192.168.200.5 -i 192.168.200.1攻击靶机失败。
- 问题2解决方案:原因是靶机IP地址的引号用成了中文,改成英文即可。
5.实践总结
通过这次实验,我了解ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击这几种攻击原理,这次实验相对之前的简单但是收获也很丰富。