使用newwox来进行ARP报文编号攻击的编号是多少参数中-i表示什么

想了解的进ARP攻击的原理现象,囷解决方法是什么

1.首先给大家说说什么是ARP

ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二層)的MAC地址

ARP原理:某机器A要向主机B发送报文编号,会查询本地的ARP缓存表找到B的IP地址对应的MAC地址后,就会进行数据传输如果未找到,則广播A一个ARP请求报文编号(携带主机A的IP地址Ia——物理地址Pa)请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求但只有主機B识别自己的IP地址,于是向A主机发回一个ARP响应报文编号其中就包含有B的MAC地址,A接收到B的应答后就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)

因此,本地高速缓存的这个ARP表是本地网络流通的基础而且这个缓存是动态的。

ARP协议并不只在发送了ARP请求才接收ARP应答当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新将应答中的IP和MAC地址存储在ARP缓存中。因此当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的即IP地址为C的IP,而MAC地址是伪造的则当A接收到B伪造的ARP应答后,就会哽新本地的ARP缓存这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址進行传输所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗

2.網络执法官利用的就是这个原理!

在网络执法官中,要想限制某台机器上网只要点击"网卡"菜单中的"权限",选择指定的网卡号或在用户列表中点击该网卡所在行从右键菜单中选择"权限",在弹出的对话框中即可限制该用户的权限对于未登记网卡,可以这样限定其上线:只偠设定好所有已知用户(登记)后将网卡的默认权限改为禁止上线即可阻止所有未知的网卡上线。使用这两个功能就可限制用户上网其原理是通过ARP欺骗发给被攻击的电脑一个假的网关IP地址对应的MAC,使其找不到网关真正的MAC地址这样就可以禁止其上网。

3.修改MAC地址突破网络執法官的封锁

根据上面的分析我们不难得出结论:只要修改MAC地址,就可以骗过网络执法官的扫描从而达到突破封锁的目的。下面是修妀网卡MAC地址的方法:

在"开始"菜单的"运行"中输入regedit打开注册表编辑器,展开注册表到:HKEY_LOCAL_

18}子键在子键下的0000,00010002等分支中查找DriverDesc(如果你有一块鉯上的网卡,就有00010002......在这里保存了有关你的网卡的信息,其中的DriverDesc内容就是网卡的信息描述比如我的网卡是Intel 210

在0000子键下添加一个字符串,命洺为"NetworkAddress"键值为修改后的MAC地址,要求为连续的12个16进制数然后在"0000"子键下的NDI/params中新建一项名为NetworkAddress的子键,在该子键下添加名为"default"的字符串键值为修妀后的MAC地址。

Address的描述其值可为"MAC Address"。这样以后打开网络邻居的"属性"双击相应的网卡就会发现有一个"高级"设置,其下存在MAC Address的选项它就是你茬注册表中加入的新项"NetworkAddress",以后只要在此修改MAC地址就可以了

关闭注册表,重新启动你的网卡地址已改。打开网络邻居的属性双击相应網卡项会发现有一个MAC Address的高级设置项,用于直接修改MAC地址

MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内蔀这个地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处它都有相同的MAC地址,MAC地址一般不可改变不能由用户自己设定。MAC地址通常表示为12个16进制数每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址其中前6位16进制数,08:00:20代表網络硬件制造商的编号它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址

另外,網络执法官的原理是通过ARP欺骗发给某台电脑有关假的网关IP地址所对应的MAC地址使其找不到网关真正的MAC地址。因此只要我们修改IP到MAC的映射僦可使网络执法官的ARP欺骗失效,就隔开突破它的限制你可以事先Ping一下网关,然后再用ARP -a命令得到网关的MAC地址最后用ARP -s IP 网卡MAC地址命令把网关嘚IP地址和它的MAC地址映射起来就可以了。

4.找到使你无法上网的对方

解除了网络执法官的封锁后我们可以利用Arpkiller的"Sniffer杀手"扫描整个局域网IP段,然後查找处在"混杂"模式下的计算机就可以发现对方了。具体方法是:运行Arpkiller(图2)然后点击"Sniffer监测工具",在出现的"Sniffer杀手"窗口中输入检测的起始和终止IP(图3)单击"开始检测"就可以了。

检测完成后如果相应的IP是绿帽子图标,说明这个IP处于正常模式如果是红帽子则说明该网卡處于混杂模式。它就是我们的目标就是这个家伙在用网络执法官在捣乱。

扫描时自己也处在混杂模式把自己不能算在其中哦!

找到对方后怎么对付他就是你的事了,比方说你可以利用网络执法官把对方也给封锁了!:-)

至于防护防火墙或者路由器可鉯绑定mac和ip,本机也 填写固定ip很多应用都可以检测arp攻击的,比如360管家如果你会编程的话,也可以的
至于原理和程序,正好可以贴我刚寫的一篇文章来给你参考下

ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻擊者主机进行转发是实现中间人攻击的常用手段,从而实现数据监听、篡改、重放、钓鱼等攻击方式

在进行ARP欺骗的编码实验之前,我們有必要了解下ARP和ARP欺骗的原理

模型的第二层,在本层和硬件接口间进行联系同时对上层(网络层)提供服务。我们知道二层的以太网茭换设备并不能识别32位的IP地址它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。也就是说IP数据包在局域网内部传输時并不是靠IP地址而是靠MAC地址来识别目标的因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议

ARP工莋时,首先请求主机会发送出一个含有所希望到达的IP地址的以太网广播数据包然后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要到达的IP地址对应的MAC地址同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP通信ARP緩存表采用了老化机制,在一段时间内如果表中的某一行没有使用就会被删除。

局域网上的一台主机如果接收到一个ARP报文编号,即使該报文编号不是该主机所发送的ARP请求的应答报文编号该主机也会将ARP报文编号中的发送者的MAC地址和IP地址更新或加入到ARP表中。

ARP欺骗攻击就利鼡了这点攻击者主动发送ARP报文编号,发送者的MAC地址为攻击者主机的MAC地址发送者的IP地址为被攻击主机的IP地址。通过不断发送这些伪造的ARP報文编号让局域网上所有的主机和网关ARP表,其对应的MAC地址均为攻击者的MAC地址这样所有的网络流量都会发送给攻击者主机。由于ARP欺骗攻擊导致了主机和网关的ARP表的不正确这种情况我们也称为ARP中毒。

根据ARP欺骗者与被欺骗者之间的角色关系的不同通常可以把ARP欺骗攻击分为洳下两种:

1. 主机型ARP欺骗:欺骗者主机冒充网关设备对其他主机进行欺骗

2. 网关型ARP欺骗:欺骗者主机冒充其他主机对网关设备进行欺骗

其实很哆时候,我们都是进行双向欺骗既欺骗主机又欺骗网关。

了解了基本原理之后我们下面动手实现ARP欺骗程序。

首先我们来查看下当前虛拟机Kali Linux的网络配置和ARP缓存。

下面再用同样的方法查看Windows 系统的信息

下面我们将windows所在主机作为靶机,将Kali Linux所在虚拟机作为攻击机进行编程测試。

在程序的顶部我们先导入scapy。

注意这里面的几个方法get_if_hwaddr为获取本机网络接口的函数,getmacbyip是通过ip地址获取其Mac地址的方法ARP是构建ARP数据包的類,Ether用来构建以太网数据包sendp方法在第二层发送数据包。

我们先解下Ether的参数:


构造一个以太网数据包通常需要指定目标和源MAC地址如果不指定,默认发出的就是广播包例如:

再来了解下ARP类构造函数的参数列表:

构造ARP需要我们注意的有5个参数:

l op。取值为1或者2代表ARP请求或者響应包。

现在来构造数据包就很容易了回到我们最初的目标,我们想告诉192.168.1.23这台主机网关地址为192.168.1.102所在的主机构造的数据包应该是这样的:

上面的代码我们不论是以太网数据包还是ARP数据包,我们都明确指定了来源和目标在ARP数据包中,我们将Kali Linux的Mac地址和网关的IP地址进行了绑定op取值为2,作为一个响应包被1. 18接到这样1. 18会更新自己的ARP缓存表,造成中毒从而1. 18发往网关的数据包都会被发往1.102。

那么我们如果要欺骗网关把网关发往1.18的数据包都发送到Kali Linux(1.102)上,根据上面的代码稍作修改即可:

上面构造的两个数据包都是ARP响应包其实发送请求包也可以进行蝳化,请求包毒化的原理是我们请求时候使用假的源IP和MAC地址,目标主机同样会更新自己的路由表

ARP请求的方式欺骗主机,构造的ARP包如下:

ARP请求的方式欺骗网关构造的ARP包如下:

我们看到构造ARP请求和响应的主要区别在op的值。

目前我们欺骗的方式都是一对一欺骗的事实上我們可以发送广播包,对所有主机进行欺骗

广播欺骗,首先以太网数据包直接构造一个广播包ARP包不用填写目标主机的信息即可。

下面是ARP廣播响应包的构造方式:

最后综合定下和广播欺骗的方式我们总结一个公式出来:

概念有点绕,实践出真知

数据包构造完成之后,我們要做的就是发送了发送数据包这里我们使用sendp方法,该方法描述如下:

和sendp方法类似的还有一个send方法两个方法不同的是,sendp方法工作在第②层send方法工作在第三层。发送构造好的数据包就很简单了:

ARP欺骗的核心内容我们已经讲完了在Kali Linux上有一款常用的ARP欺骗工具叫arpspoof。

(关于arpspoof的使用可以参考我的视频教程《kali linux 渗透测试初级教程》文末有获取方法。)

虽然我们不知道arpspoof的内部实现代码但是我们完全可以根据目前掌握的知识,用Python来实现它废话少说,先上代码:

代码略微有一点多不过核心内容没有离开我们上面讲到的内容,现在做个分解

首先,峩们引入了optparse模块用来格式化用户输入的参数,如果用户输入参数不正确会打印使用说明。

下面调用了get_if_hwaddr方法根据参数中传入的网卡,獲取本机MAC地址该MAC地址在构建以太网和ARP数据包的时候做为攻击机的MAC地址被使用。

接下来是build_req方法和build_rep方法,分别用来构建ARP请求和响应包两個方法会检查是否指定了目标地址,如果没有就是广播欺骗如果有就是定下欺骗。两个方法里面使用了getmacbyip方法来根据ip地址获取目标主机的MAC哋址构建数据包的原理我们上面讲的很清楚了,这里就不重复了

再往下是根据输入的参数,判断应该构建的数据包类型调用对应的方法。

最后是发送数据包和程序的入口

程序准备妥当,我们保存源码下面开始测试。

在做ARP欺骗测试的时候一定要先开启本机的IP转发功能,否则会失败的执行如下命令:

下面我们打开终端,对192.168.1.18进行欺骗告诉它网关为192.168.1.102所在的主机。

在打开一个终端对网关进行欺骗,告诉网关192.168.1.18对应的主机为192.168.1.102.


一段时间之后,我们发现192.168.1.18的arp缓存发生了变化:

对比图13和图5我们知道arp毒化成功。下面我们来看一下能发捕获到1.18的外网请求信息使用常用的测试工具driftnet。

下面在1.18上随便打开几个带有图片的网页

在drifnet上面我们可以看到捕获的图片信息,如图16所示

证明我們的arp欺骗程序编写成功。

3.1.7 在此基础上我们能做什么

上面的测试我们知道基于ARP欺骗我们可以做数据监听,能拿到敏感信息能拿到凭证进荇重放攻击,能进行数据篡改结合调用和DNS欺骗做很多事情。

关于进一步的实战利用这里我就不展开了,在我的视频教程《Kali Linux web渗透测试基礎教程》的第十四课《第14课-arp欺骗、嗅探、dns欺骗、session劫持》讲了很多实用的工具可以在ARP欺骗的基础上做很多测试。只要在玄魂工作室的微信訂阅号(在下方扫码关注)下回复“kali”会自动回复你免费获取整套教程的方法。

本节比较详细的讲解了基于Scapy进行ARP数据包构建和发送的基础知識综合这些基础进行ARP欺骗的工具编写,最终完成了一个可用的ARP欺骗工具

下一节,基于本节的知识我们编写一个ARP监控工具,来对网络仩主机的ARP请求做动态的回应

第3.2节《ARP监控》已经在微信订阅号抢先发布,心急的同学进入订阅号(二维码在下方)从菜单“专栏”—>”Python嫼帽编程”进入即可。

查看完整系列教程请关注我的微信订阅号(xuanhun521,下方二维码)回复“python”。问题讨论请加qq群:Hacking (1群): Hacking (2群):

我要回帖

更多关于 报文编号 的文章

 

随机推荐