地址解析协议,ARPAddress Resolution Protocol),是根据IP地址 获取物理地址(MAC地址)的一个TCP/IP协议

主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;

由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗

通俗来讲,就是骗电脑,骗它说我这里是能让你上网的,或者随便说一个地方,但是呢那个地方却不会让它上网,所以它就断网了。当然这是最简单的。

而我要是骗它说我这里是能让你上网,然把它的上网请求拿给真正能上网的地方,它就能上网了。不过呢我是能够看到它的上网信息的,如果厉害点,它在登录账号的时候,我还能看到账号密码。当然这是违反法律的,不能做。

怎么实现arp 欺骗呢,其实很简单,

我去网上找了一个windows下得软件,叫arpspoof

看着界面功能单一,单操作也简单,选好网卡,后其他都帮你填了,只要自己填要骗谁就可以了

但是没想到居然没有用,这就让我无语了,你功能单一就算了,还没有用

所以我就不打算在windows上演示了,还是去linux吧,这种操作呢我当然首选kali,这个实验呢在虚拟机下就可以完成,只要将虚拟机的网络选为桥接就可以与本机处在同一个局域网下了,手机再连一下路由器wifi,也能把手机当做欺骗目标了。

打开kali用root用户登录 进入终端输入命令

apt-get install -y dsniff ssldump

这就安装好了

使用man arpspoof可以查看使用手册

用法  

arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host

参数 -i interface  指定要使用的接口(即指定一块网卡)

可以用命令 ip a 查看 网卡名称,一般有 ip 的话才是

在我 这里用  -I eth0

-t target      指定一个特殊的、将被ARP毒化的主机(如果没有指定,则认为是局域网中所有主机)。重复可以指定多个主机

就是说 -t 后面加上你要欺骗的主机ip或者是域名

host   host是你想要截获数据包的主机 (通常是网关)

就是要骗它你是什么,通常骗它说你是网关,就是开头说的能上网的地方,这样它要上网就来找你。

会这几个参数就够了

比如说我所在网络的网关为192.168.31.1

受骗ip为:192.168.31.45

那就使用命令

arpspoof -i eth0 -t 192.168.31.45  192.168.31.1

其实这个命令很容易看懂,想象一下就是前一个ip的主机传到后一个ip的数据包会被我得到

它会不断的发送包去骗,需要按ctrl+Z或者 ctrl+C才能停止

第一个是会立马停止发送包

第二个不会立刻停止,会继续发送几个包,不过呢是告诉它真话,让它找对地方

在骗包发送的过程中目标主机无法上网

先按 ctrl+Z停止,

停止后目标就可以就可以上网了,我的这个电脑,好像比较聪明,会自己找对地方,不需要它告诉我真正的位置,即不需要按Ctrl+C

手机也是一样的原理,所以我终于明白小时候手机上安装的wifi杀手是怎吗让别人不能上网了,还记得曾经去蹭网开wifi杀手占地为王,虽然被主人察觉没网以为是我们下东西,把我们赶跑了。但是满满的乐趣。

但是呢这个效果达到的作用也只是让目标断网,让自己提高网速,这并不是很严重,有点常识的也很容易辨别并防范,只要绑定一下mac地址就可以。

所以我们不能让对方发现,那就不能让其断网。

所以我们要把得到的数据包再到它该去的地方,这样对方就感觉不到了,而实际上它的数据包是先经过我的手的,我可以看里面的东西

当然要看到也不是那么简单的,就先不说了。

用下面的命令就可以把数据包转发数据

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

这个命令实际上是通过修改配置文件ip_forward 把里面的0变成1

Forword意思是转发,而0是关闭,1是开启,而默认为0,也就是关闭

这个命令就是开启转发

如果不想目标上网,就再把它改成0就好

我来试验一下

查看原本是什么

修改变成1

再次发送欺骗包

 目标主机照常上网

不过明显看到网速变慢了,毕竟有了一个中转 

现在我们只能获取到目标上网的请求包,不能知道它收到了什么内容,因为我们并没有骗网关,也就是上网的地方,网关能够找到目标主机并把内容给它,不用经过我,所以我们可以用-r参数

-r     毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)

我们可以把它加在两个ip中间,表明他们之间的包我都

arpspoof -i eth0 -t 192.168.31.45 -r 192.168.31.1

试试看

可以看到发的包数量,类型不一样了

之前只发送一种包,现在发送两种,也就是骗两个人

和之前一样也是每两秒发一次,只不过每次发两个包,

还是可以上网,因为之前启动了转发

 还有一个参数-c

-c own|host|both

 指定在恢复ARP配置时使用的硬件地址;当在清理时,数据包的源地址可以用自己的也可以用主机(host)的硬件地址。使用伪造的硬件地址可能导致某些配置下的交换网络、AP网络或桥接网络通信中断,然而它比起默认值—使用自己的硬件地址要工作地更为可靠。

这是用来设置按Ctrl+C时发送的清理包要告诉对方什么。这个我就不说了,我感觉没那必要,停止欺骗后,我电脑都会自己找对地方

虽然现在数据包要经过我,但是我想看也不是那么容易的,就像邮差想看信封内容也很麻烦一样,拆开容易被发现,不拆开很难看到。

我的下一篇文章讲解了怎么从用户的上网包中提取出来图片和账号密码,还有怎么全局域网断网

链接:

https://blog.csdn.net/qq_54780911/article/details/121957519?spm=1001.2014.3001.5501

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐