ARP局域网欺骗工具编写
每台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上各主机和路由器的IP地址和硬件地址的映射表,这些都是该主机目前知道的一些地址。
当主机A要向本局域网上的某个主机B发送IP数据报时,先在其ARP高速缓存中查看是否有主机B的IP地 址。如果有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。也有可能查不到主机 B的IP地址的项目。这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。在这种情况下,主机A就自动运行ARP,然后按以下步骤找到主 机B的硬件地址。
实现地址解析的第一步是产生ARP请求帧。在ARP帧数据部分的相应字段写入本地主机的物理地址、IP地址、待侦测的目的IP地址,在目的物理地址字段写入0,并在操作类型字段写入1,用以表示本数据帧是一个ARP请求数据帧。
该ARP请求帧以本地网络适配器的物理地址作为源地址,以物理广播地址(FF-FF-FF-FF-FF-FF)作为目的地址,通过物理层发送出去。
由于采用了广播地址,因此网段内所有的主机或设备都能够接收到该数据帧。除了目的主机外,所有接收到该ARP请求帧的主机和设备都会丢弃该ARP请求帧,因为目的主机能够识别ARP消息中的IP地址是否与本机相同。
与目的IP地址匹配的主机构造ARP应答帧。在ARP应答帧中,以请求分组中源物理地址、源IP地址作为其目的物 理地址、目的IP地址,并将自身的物理地址、IP地址填入应答帧的源物理地址、源IP地址字段,并在操作字段中写入2,表示本ARP数据帧是一个应答数据 帧。该分组通过数据链路层直接发给源主机。
源主机接收到ARP应答帧后,获得目的主机的物理地址,并将它作为一条新记录加入到ARP高速缓存表。
此外,如果源主机没有发送ARP请求而收到其他主机的ARP响应数据帧,源主机也会在本地ARP缓冲区中缓存该主机物理地址和IP地址的对应关系。
ARP高速缓存是非常有用的。如果不使用ARP高速缓存,那么任何一个主机只要进行一次通信,就必须在网络上用广播的方式发送ARP请求分组,这会使网络上的通信量大大增加。ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间,超过生存时间的项目就从高速缓存中删除掉。
注意:ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
ARP局域网欺骗工具编写的更多相关文章
- 用python编写的定向arp欺骗工具
刚学习了scapy模块的一些用法,非常强大,为了练手,利用此模块编写了一个arp欺骗工具,其核心是构造arp欺骗包.加了一个-a参数用于进行全网欺骗,先暂不实现.代码如下: #--*--coding= ...
- 防范ARP网关欺骗, ip mac双向绑定脚本
客户局域网内的一台数据库服务器, 重新安装操作系统后,不能上网了,ping网关192.168.0.1出现在800多ms的响应时间,还会超时丢包,检查了ip,路由配置,都没有问题.通过IE打开路由器管理 ...
- ARP局域网断网攻击
Kali--ARP局域网攻击 什么是ARP? ARP ( Address Resolution Protocol)地址转换协议,工作在OSI模型的数据链路层,在以太网中,网络设备之间互相通信是用MAC ...
- 用Socket做一个局域网聊天工具(转)
原文:http://www.cnblogs.com/technology/archive/2010/08/15/1799858.html 程序设计成为简单的服务端和客户端之间的通信, 但通过一些方法可 ...
- eclipse中可以导入其它工具编写的RobotFramework脚本吗?
在Robotframework的官方网站中,提供了非常多的编辑RF的工具.比如Ride,eclipse,sublime,notepad++等. 网上查到的资料,大部分都是Ride这个编辑工具的使用.在 ...
- 《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift
Swift 2.0学习笔记(Day4)——用Playground工具编写Swift 原创文章,欢迎转载.转载请注明:关东升的博客 用Playground编写Swift代码目的是为了学习.测试算法.验证 ...
- C# WINFORM 局域网PING 工具(技术改变世界-cnblog)
WINFORM 局域网PING 工具(技术改变世界-cnblog) 需求: 1.实时更新 日期时间 2.可以ping多个IP 地址,必须判断 IP地址的正确性,不能为广播地址 3.对ping结果的显示 ...
- [恶趣味]搞了下局域网内的arp网络欺骗
挺无聊的. 扫描,伪装,抓包. 基本上搞完就失去乐趣了. 文章在这里,想搞的可以自己拿去搞下,其实很无聊,我真是个很容易无聊的人啊.
- Ettercap之ARP+DNS欺骗
1.网络攻击拓扑环境 网关:192.168.133.2 攻击者:192.168.133.128 受害者:192.168.133.137 2.原理讲解 ARP欺骗 简介:ARP(Address Reso ...
随机推荐
- nginx 常用的 URL 重写方法
转自:http://www.jbxue.com/article/4727.html Nginx中一些常用的URL 重写方法介绍,有需要的朋友可以参考下.url重写应该不陌生,不管是SEO URL 伪静 ...
- CSS中Padding的用法
Padding的英文意思是填充,在CSS中则是设置内边距属性. padding不允许使用负值 1. 四个参数时: padding: 10px,20px,30px,40px; 上边距:10px 右边距: ...
- 将ecshop中的session机制重写,从DB移植到Memcache中去
<?php if (!defined('IN_ECS')) { die('Hacking attempt'); } /*------------------------------------- ...
- linux点滴:NFS
介绍 NFS,Network File System,网络文件系统.主要功能是通过网络让不同的主机系统间共享资源,类似于windows下的文件共享.适用于互联网中小型企业. 工作原理 客户端发送请求 ...
- 修改oracle数据库为归档模式
参考博客:http://blog.csdn.net/codesaint/article/details/1901030 Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHI ...
- SQLServer数据库通用访问类
private static string connString=ConfigurationManager.ConnStrings["connString"].ToString() ...
- ios字符串操作
string的操作应用 NSRange range = [self.general rangeOfString:@"."]; NSString *str = [self.gener ...
- MongoDB 覆盖索引查询
MongoDB 覆盖索引查询 官方的MongoDB的文档中说明,覆盖查询是以下的查询: 所有的查询字段是索引的一部分 所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, Mo ...
- ie6 css sprites重复加载
如果你使用css sprites,那么在ie6下并不能发挥sprites的作用,它还是会每次再重新 加载这个图片,解决方法为为ie6添加下面这条js: <!--[if IE 6]> ...
- python编码基础知识
http://www.javaeye.com/topic/560229 一 预备知识 字符集1, 常用字符集分类ASCII及其扩展字符集作用:表语英语及西欧语言.位数:ASCII是用7位表示的,能表示 ...