协议攻击

参考文章:
协议攻击(一)
协议攻击(二)
DNS劫持攻击

起因是某黑奴公司给我调到规则组做协议攻击的流量包,所以菜鸡被迫周末疯狂加班学习T_T

IP协议:IP源地址欺骗攻击

原理

客户端(kali)基于tcp第一次握手,给服务器端(centos)发送了大量标记位为SYN的包。
服务器端收到来自客户端的syn包后,对源ip返回标记位为syn_ack的包,这是第二次握手。
由于源ip是伪造的,所以返回的syn_ack包发送不到正确的地方,更不要说得到回应了。所以服务器端一直是SYN-RCVD阶段。

实验环境

靶机:centos 7 192.168.23.131
攻击机:kali linux 2021.4a 192.168.23.130
网络拓扑环境:攻击机和靶机处于同一内网。

步骤

攻击机伪造IP,发送包

netwox 52 -E "0:1:2:3:4:5" -I "114.114.114.114" -e "00:0c:29:83:36:d7" -i "192.168.23.131"

Netwox 52 使用netwox 的52号模块进行IP源地址欺骗;
-E伪造的mac地址;
-I伪造的ip地址,这里将ip地址伪装成114.114.114.114;
-e一些资料说是目标mac地址,但是随便输入一个mac地址也可以;
-i目标ip地址。

靶机开启服务,监听端口

开启apache服务,然后使用tcpdump监听80端口

systemctl start httpd
tcpdump -i ens33 tcp port 80 -n -nn

可以看到这里监听到的是114.114.114.114一直在发送数据,而不是正确的攻击机ip,说明伪装源ip成功。

因为靶机一直是syn-rcvd端,占用线程,所以如果伪造ip发送大量的包。影响其他正常用户的访问,就可以造成dos攻击

ARP协议:ARP欺骗攻击

原理

ARP协议在设计时认为局域网内部的所有用户都是可信的,当攻击者渗透进入内网后,通过向局域网内节点缓存中注入伪造的IP/MAC映射关系,从而进行欺骗,成为局域网内的中间人节点,即可以监听并进一步篡改数据包。

简单来说,a广播ARP请求,询问IP地址为192.168.0.122的主机b的MAC地址。c收到广播帧,发出ARP应答,告诉a自己是192.168.0.122,MAC地址是cc:cc:cc:cc:cc:cc。(之后,a发给b的所有流量都会发给c)

再通俗点讲,就是a想与b通信,a就在通讯录(arp缓存表)里找b的联系方式。但是c已经提前把通信录改了,将b的联系方式换成自己的。所以a发给b的消息其实都是发给c。

因为只欺骗其中一方,所以也叫单向欺骗。

arpspoof -i wlo1 -t 192.168.23.131         192.168.23.134

攻击机欺骗192.168.23.131这台主机,说我是192.168.23.134

第二种攻击方式是arp嗅探。c把ab双方都欺骗了,ab之间的通信都经过c,于是ab的通信内容被c窃取了

实验环境

靶机:centos7 192.168.23.131
靶机:ubuntu 192.168.23.134
攻击机:kali 192.168.23.130
网络拓扑环境:攻击机和靶机处于同一内网。

步骤

首先centos7靶机看一下arp缓存表

arp -a

发现Ubuntu 192.168.23.134的mac地址是00:0c:29:86:5e:0b,kali 192.168.23.130的mac地址是00:0c:29:c5:36:a8

然后,kali上使用ettercap进行中间人欺骗

ettercap -i eth0 -Tq -M arp:remote /192.168.23.131// /192.168.23.134//

后面跟的是要攻击的两个IP,伪装成后者去攻击前者

此时我们去看centos7的缓存表

发现kali的mac地址变成了和Ubuntu一样的地址,Ubuntu看一下同样也是变成了centos7的

两个靶机都已经把kali当作了对方

此时kali另开一个终端,开启ip转发功能, 将0改为1

echo 1 > /proc/sys/net/ipv4/ip_forward

kali本地监听eth0网卡

ettercap -Tq -i eth0

这样当两台靶机之间通信时,kali就可以监听到信息。比如centos7 ping一下Ubuntu

就可以在kali看到。

ICMP协议:ICMP重定向攻击

原理

ICMP路由重定向攻击(ICMPRedirectAttack)是指攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。

实验环境

靶机:centos 192.168.23.131

攻击机:kali 192.168.23.130

步骤

查看centos7的路由表

route -n

可以看到正常的网关地址是192.168.23.2

inux系统中,默认不接受ICMP重定向报文。所以应该将0设置为1,就可进行ICMP重定向攻击。

echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv4/conf/ens33/accept_redirects
echo 1 > /proc/sys/net/ipv4/conf/default/accept_redirects

这里注意下是哪个网卡,改好以后kali使用netwox中86号模块发起ICMP路由重定向攻击

netwox 86 -g 192.168.23.130 -i 192.168.23.2

-g伪造路由ip(kali ip)

-i原路由ip

然后用centos去 ping一下百度,可以看到已经重定向了

正常的ping百度是这样的

TCP协议:SYN Flood攻击

原理

TCPSYNFlood,又称SYN洪泛攻击,是目前最为有效和流行的一种拒绝服务攻击形式。它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。

环境

靶机:centos 192.168.23.131
攻击机:kali 192.168.23.130

步骤

Kali向centos 的22端口发起syn flood攻击
首先,centos7中查看当前22端口连接信息

netstat -ant|grep 22

然后kali对centos的22端口发起syn flood攻击

netwox 76 -i 192.168.23.131 -p 22

此时Centos7查看22端口的tcp流量,发现有大量SYN_RECV状态的包

UDP协议:UDP Flood攻击

原理

由于UDP协议的无状态不可靠的天然特性,UDP Flood拒绝服务攻击的原理非常简单,即通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。

环境

靶机:centos 192.168.23.131
攻击机:kali 192.168.23.130

步骤

Kali向centos7发起udp flood攻击,并使用tcpdump进行分析

1.Centos开启对udp 22端口的监听

tcpdump -i ens33 udp port 22

2.kali向centos的22端口发起udp flood攻击

hping3 --udp -p 22 192.168.23.131

此时centos7监听到大量UDP包

进一步升级攻击,使用工具自带的随机源地址参数进行源地址欺骗udp flood攻击

hping3 --udp -p 22 192.168.23.131  --flood --rand-source

此时centos7上可以监听到大量来自随机地址的udp流量

DNS协议:DNS劫持攻击

原理

DNS(DomainNameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住IP地址。DNS协议运行在UDP协议之上,使用端口号53,DNS并不包含任何认证机制,因此第三方可以对DNS数据包进行伪造。

DNS缓存攻击是通过欺骗域名服务器的缓存条目(即:域名到ip地址的映射)。当目标计算机访问被欺骗的域名时,会把域名转发到一个被我们伪装的站点下。而访问者却并不知道访问的是一个假网站。

当计算机要访问本地或者Internet上的站点时,操作系统首先需要知道该站点的确切IP。但是记住ip是一件困难的事情,所以基本上每个站点都有一个域名。而计算机去访问站点的时候如果拿到的是域名,那么去寻找网络中的一台DNS 服务器,通过该域名服务器提供的域名解析服务将域名转换为真实的ip地址再进行访问大概的流程如下:

可以看到nslookup将github.com翻译为20.205.243.166。如果本地DNS服务器缓存中具有这个地址的条目,它便把正确的ip地址返回给查询终端。如果它的缓存条目里没有这条记录,它将联系Iternet上的DNS服务器寻找相应的地址信息。最终目的在用户不需要知道ip地址的情况下正确的通过URL地址来访问github.com

环境

靶机:centos7 192.168.23.131
攻击机:kali 192.168.23.130

步骤

DNS攻击:就是发送一堆DNS域名指向错误的服务器地址。

首先我们在kali启动一个httpd服务,我们稍后会将靶机的访问解析到这个页面

/etc/init.d/apache2 start

攻击机做一个ip转发

echo 1 > /proc/sys/net/ipv4/ip_forward

然后再开个终端做靶机和网关之间的流量劫持

arpspoof  -i  eth0 -t 192.168.23.131 192.168.23.2
arpspoof  -i  eth0 -t 192.168.23.2 192.168.23.131

接下来我们将github.com指向这个页面的地址

dnsspoof -i eth0 -f  hosts.txt

靶机去ping github.com

可以看到这个域名已经被解析到了我们的攻击机上,我们再访问下试试

ok,劫持成功。

posted @ 2023-10-13 12:45  M0urn  阅读(54)  评论(0编辑  收藏  举报