ARP欺骗是用处很大的一个技术,我们的路由器整天在欺骗我们的PC,没有这个欺骗我们就不能上网。
先稍微说下我们每天经历的ARP欺骗,比如早上开路由器开PC,我们上Google,PC在发送IP包之前(,当然事先要先通过DNS服务器获取Google的IP,这个不多谈)要先这个IP包装配为以太网帧,所以PC必须要知道Google服务器端MAC,才能填充好以太网帧。要想知道Google的MAC地址,我们的PC就要发送ARP广播请求,跟你一个局域网里的所有以太网设备都能收到这个请求,,因为我们的PC跟Google的服务器不在一个局域网里,所以Google服务器没法收到你的ARP请求,但是如果这个局域网中有其他PC知道的话,它收到这个请求就会给你发送ARP应答告诉你,如果没人知道怎么办?只能靠骗了!这个骗子就是路由器,这也是它的一个职责。路由器用自己的MAC地址冒充Google服务器的MAC地址,给你发ARP应答糊弄你,你收到应答后喜得不行,然后把所有帧都发给了路由器。下面我们就看路由器时怎么欺骗你的。
路由器能捕捉到这个局域网里广播帧,假设路由器捕捉到的PC的ARP广播帧写成十六进制为:
[plain]
FFFFFFFFFFFFCE1A8206DA0708060001080006040001CE1A820C6B07C0A8127A000000000000C0A8127B00000B00482A00000D00000060FB5EFB61FB
按以太网帧结构把这个帧分解后为:
[cpp]
FFFFFFFFFFFF---目的MAC,因为是广播帧,所以MAC地址全为1
CE1A8206DA07---源MAC,这里就是你PC的MAC
0806—---帧类型(以太网帧都是这个数)
0001----硬件类型(以太网帧都是这个数)
0800----协议类型(以太网帧都是这个数)
06----硬件地址长度(以太网帧都是这个数)
04----协议地址长度(以太网帧都是这个数)
0001—---操作字段(0001为ARP请求,0002为ARP应答)
CE1A820C6B07---源mac,还是你的PC的MAC地址
C0A8127A-------源IP地址,就是你的PC的ip
000000000000---目的mac,因为不知道,所以把这6个字节胡乱填充一下就好
ADC2485E-------目的ip,就是Google的IP
00000B00482A00000D00000060FB5EFB61FB---这18个字节都是填充,就是为了凑够以太网帧最小长度60字节
然后路由器收到PC的ARP广播请求后就给你发送应答,这个应答帧为:
[plain]
CE1A8206DA07000A3501FA1708060001080006040002000A3501FA17ADC2485ECE1A8206DA07C0A8127A00000B00482A00000D00000060FB5EFB61FB
按照以太网帧格式拆分后为:
[cpp]
CE1A8206DA07---目的MAC,ARP应答不是广播帧,它直接把PC的MAC地址当成目
arp欺骗 来自淘豆网m.daumloan.com转载请标明出处.