Arp欺骗和DNS投毒的实验性分析
1.中间人攻击之Arp欺骗/毒化
本文涉及网络安全攻击知识,随时可能被永久删除。请Star我的GitHub仓库
实现原理:
这种攻击手段也叫做中间人攻击MITM(Man-in-the-Middle)
Attack),算是一种古老的方法了,但仍有很多变种的中间人攻击是有效的,能够很容易地欺骗外行并且入侵他们。MITM攻击就是攻击者扮演中间人并且实施攻击。MITM攻击它可以劫持一段会话,称为会话劫持,可以窃取密码和其他机密,即使使用了SSL加密。这里使用的arp欺骗也被称为arp缓存中毒,是在内网的MITM攻击。Arp投毒的实现过程非常简单,我们只需要欺骗目标机器使其确信我们的攻击主机就是它的网关,再伪装成目标机器欺骗网关,这样所有的流量都会通过我们的攻击主机,我们就能截获目标机器与网关的通信数据了。网络中所有的机器都包含ARP缓存,它存储了本地网络中最近时间的MAC地址与ip地址的对应关系,我们要达成攻击目标的话就需要对这个缓存进行投毒。因为地址解析协议(arp)和arp投毒还涵盖了许多其他方面的知识,所以可以先了解下arp的原理及这种攻击如何在底层的协议中发挥作用。
实现网络通讯需要AP端广播ARP Request询问网关的Mac,并且路由回传数据也需要ARP Request询问AP的Mac。此时我们可以通过内网的第三台设备进行ARP欺骗,告诉AP端网关的Mac、告诉网关AP的Mac,此时所有网络数据则可以被我们第三台设备拦截并分析记录。
原理图:
实验环境:
- Kali Linux(攻击机)
- 局域网内Win7 靶机
免责声明:以下实验均在虚拟机内进行,请遵守法律法规,仅用作学习。了解攻击方法能更好的进行网络防范。勿用于实际生活中。造成的任何不良后果与作者本人无关。
实验过程:
进行中间人攻击
以下操作均需要root权限
1.提前开启IP转发才不会在ARP毒化过程中被目标有明显察觉。
echo 1 >/proc/sys/net/ipv4/ip_forward(开启)
echo 0 >/proc/sys/net/ipv4/ip_forward(关闭)
2.对局域网内存活主机进行扫描
(nmap的使用参照此处)
nmap -sP [ip段]
此处:
192.168.164.1 为网关
192.168.164.5 为攻击机
192.168.164.2 则为win7靶机
使用arpspoof执行arp欺骗毒化被欺骗者(192.168.164.2):
将被欺骗者的流量重定向给攻击者,再由攻击者转发给网关。
arpspoof -i eth0 -t 192.168.164.2 192.168.164.1
eth0是网卡名,可通过ifconfig查看
在另一个终端同时执行如下代码毒化网关(192.168.164.1):
使网关的数据重定向到攻击者的机器。(流量由网关到攻击者再到受攻击者)
arpspoof -i eth0 -t 192.168.164.1 192.168.164.2
arp欺骗之前
网关的arp缓存表:
靶机arp缓存表:
arp欺骗之后
网关的arp缓存表:
靶机arp缓存表:
可以看到靶机和网关的arp缓存中均分别把攻击机识别成了网关和靶机
如发现目标设备没有出现在缓存表中,ping一下即可
下面使用Ettercap进行可视化操作:
在终端中打开ettercap工具
ettercap -G
通过scan for hosts 快速扫描当前局域网存活设备,并通过host list列出表单。
可以看到此时只有网关和靶机两个设备,并可知他们的Mac地址。将他们分别设为target 1和target 2。
开启ARP poisoning。
整个arp欺骗过程完成。可通过arp缓存表进行验证。
执行driftnet命令,捕获图片。
driftnet -i eth0
在被欺骗者的手机上用浏览器访问新闻页面。此时,攻击者的主机上就会捕获到新闻页面上包含的图片。
或者也可以抓取账户密码
ettercap -Tq -i eth0
2.DNS投毒
在arp欺骗的基础上,我们利用ettercap工具能更快捷的(相较于命令行)对目标进行dns投毒
首先我们启动web服务
/etc/init.d/apache2 start
然后进入ettercap的plugins扩展中心,双击选中dns_spoof
编辑/etc/ettercap/etter.dns , :wq保存退出。
vi /etc/ettercap/etter.dns
添加A解析记录:
* A ip
可用*表示任意网址,ip表示重定向,可使用攻击机的ip以达到重定向攻击机本地的网页文件
vi /var/www/html/index.html
写一个简单的测试网页:
攻击效果如下:
局限性:由于部分浏览器的缓存机制,访问曾经访问过的域名时如与dns缓存不同,则会显示无法显示此网页,而不是我们需要其访问的网页。
Arp欺骗和DNS投毒的实验性分析的更多相关文章
- Arp欺骗和DNS投毒
中间人攻击 ARP缓存攻击 ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址.简单来说,就 ...
- Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持
Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...
- 同一局域网环境下的arp欺骗和中间人攻击(mac)
最近读了一篇有关arp欺骗和中间人攻击的文章,于是乎就想着自己实现一下,顺便验证下微信在回话劫持后的安全性. 1.本机环境 Macbook Air:OS X 10.11 El Captain 2.推荐 ...
- kali Linux 渗透测试 | ettercap图形界面(ARP 欺骗 + DNS欺骗)
上次我们使用 arpspoof 工具在命令行中完成了 arp 欺骗实验,今天我们用另一种工具 ettercap 工具来实现.ettercap支持图形化操作,对新手非常友好,并且操作非常简单, ette ...
- ARP欺骗分析
(作者原创,欲转载请说明出处)1.arp介绍 arp:地址解析协议;将IP地址映射为MAC地址.2.为什么要有arp 平时上网我们都知道要有一个IP地址才能上网,那arp用来干嘛的呢?如果 ...
- 局域网下ARP欺骗、嗅探,以及DNS欺骗
准备:kali.xp kali ip:192.168.14.157 目标ip:192.168.14.158 目标网关:192.168.14.2 ARP欺骗:arpspoof -t 目标ip -r 目标 ...
- arp协议分析&python编程实现arp欺骗抓图片
arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...
- DNS投毒学习分析总结
[一]背景 今晚看一份日志,数据很奇怪.大佬说是DNS投毒,盲点就来了,学习一下~ [二]内容 https://zhuanlan.zhihu.com/p/92899876 看完内容发现属于之前写的DN ...
- 中间人攻击之arp欺骗 科普ARP欺骗
中间人攻击之arp欺骗 科普ARP欺骗 A <-> B A中有个ARP Table,每次发包都会在此Table中查找,若找不到,发APR Request包询问.此时若hacker冒充B的M ...
随机推荐
- 一个double free相关问题的澄清
引言 前一阵定位 Oracle 的 OCI 接口相关的一个内存释放问题,在网上看到了链接如下的这篇文章: 一个C++bug引入的许多知识 看到后面说 vector 里的两个单元里的内部成员指针地址是一 ...
- 从输入 URL 到展现页面的全过程
总体分为以下几个过程 DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 DNS解析 域名到ip地址转换 TCP连接 HTTP连接是基于TCP连接 ...
- 【JDK】分析 String str=““ 与 new String()
一.基础概念 为了讲清楚他们的差异,这里先介绍几个概念. 1.1 常量池 所谓常量池:顾名思义就是用来存放一些常量的.该常量是在编译期被确定,并被保存在已编译的.class文件中,其中包括了类,方法, ...
- CentOS下安装libmcrypt失败
libmcrypt是什么?? 是加密算法扩展库---支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SA ...
- C# 获取动态类中所有的字段
/// <summary> /// 动态类 获取字典集合 /// </summary> /// <typeparam name= ...
- Java基础系列(17)- 顺序结构
顺序结构 JAVA的基本结构就是顺序结构,除非特别说明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的 ...
- Jmeter系列(26)- 常用逻辑控制器(5) | 循环控制器Loop Controller
循环控制器(Loop Controller) 字面意思,循环该控制器下的请求 设定固定循环次数,或者一直循环 同线程组的循环是父子关系,大家可以试下,如果线程组设置了一直循环,而循环控制器设置了2次, ...
- Linux系列(36) - yum命令安装(3)
yum常用命令 查询 yum list:查询所有可用软件包列表 yum search 关键字:搜索服务器上所有和关键字相关的包 安装 yum -y install 包名 选项: -install 安装 ...
- SonarQube汉化
SonarQube安装后默认是英文,如果不习惯看英文,可以进行汉化,官方提供了汉化插件. 登录后,汉化步骤如下: 需要点击了解风险,不然查询到插件后没有install按钮 搜索Chinese,找到插件 ...
- @RestController的用法
我一直都不太理解RESTFUL风格但是先记住一些基本用法在深入吧 ** * * 在服务端应用程序状态和功能可以分成各种资源,每一个资源都使用URL 得到一个唯一的地址,所有资源都共享统一的 * 接口, ...