本文目录一览:
解决爬虫们的大部分障碍——mitmproxy使用初探
mitmtproxy即mitm+proxy,顾名思义是中间人攻击加代理。用于中间人攻击的代理首先会向正常代理一样转发请求,保障服务器与客户端的通信,其次,会适时的查、记录截获的数据或 篡改数据 ,引发服务端和客户端的特定行为。
mitmproxy可以利用python实现高度定制脚本。因为mitmproxy工作在http层,现在的绝大部分的https拥有检测并规避中间人攻击的能力,所以mitmproxy工作时必须忽略浏览器的SSL证书或让其主动信任。由于此工具具有一定的黑产性质,使用时注意有所规范。
mitmproxy有三种启动命令,分别是mitmproxy,mitmdump,mitmweb,三个命令都会启动软件,区别在于交互界面的不同。
mitmproxy没有window,再次略过。
mitmdump启动后在后台默默运行,实用性不强,也略过。
mitmweb启动后,在8081端口开一个窗口,形如:
[图片上传失败...(image-369edf-1541148099114)]
接下来就是启动chrome,不过启动要设置代理,并忽略证书错误,命令行如下
上述工作完成后就可以开发自定义脚本了,这才是mitmproxy真正强大的地方。方法有两个:
1.编写一个 py 文件供 mitmproxy 加载,文件中定义了若干函数,这些函数实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的函数。
2.编写一个 py 文件供 mitmproxy 加载,文件定义了变量 addons,addons 是个数组,每个元素是一个类实例,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。
推荐使用第二种方法。
事实上考虑到mitmproxy的实际使用场景,大多数情况下我们只会用到针对HTTP生命周期的几个事件。只会用到http_connect/request/response三个时间就能完成大多数需求了。
详细使用还在研究中。敬请期待。
MITM攻击(中间人攻击)
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
总体来讲,中间人攻击可分为如下五种不同的类型:
1、WiFi欺骗:攻击者可以创建与本地免费WiFi同名的虚假WiFi接入点。比如,在咖啡馆中,攻击者会模仿创建一个和墙上贴着WiFi信息同名的WiFi。一旦您连接上去,您的一切在线网络行为,将尽在攻击者的监控和掌握之中。
2、HTTPS欺骗:攻击者通过欺骗您的浏览器,使您认为自己访问的是可信任站点。当您输入与该站点相关的登录凭据时,您的流量将被重定向到攻击者自建的非安全站点处。
3、SSL劫持:通常,当您尝试连接或访问不安全的http://站点时,您的浏览器会自己将您重定向到安全的https://处。此时,攻击者则可以劫持该重定向的过程,将指向其自建服务器的链接植入其中,进而窃取您的敏感数据、以及输入的所有信任凭据。
4、DNS欺骗:为了准确地浏览到目标网站,域名系统会将地址栏中的URL,从人类易于识别的文本格式,转换为计算机易于识别的IP地址。然而,DNS欺骗则会迫使您的浏览器,在攻击者的控制下,发生转换异常,而去访问那些被伪造的地址。
5、电子邮件劫持:如果攻击者获得了受信任机构的邮箱、甚至是邮件服务器的访问权限,那么他们就能够拦截包含敏感信息的客户电子邮件,甚至以该机构的身份发送各种电子邮件。
以上所介绍的只是5种典型的中间人攻击方式,在现实情况中,此类攻击还会有许多变种与组合。
什么是中间人攻击
中间人攻击
维基百科,自由的百科全书
在密码学和计算机安全领域中,中间人攻击(Man-in-the-middle attack ,缩写:MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。
一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。
目录
1 需要通过一个安全的通道做额外的传输
2 攻击示例
3 防御攻击
4 中间人攻击的取证分析
5 其他的非加密的中间人攻击
6 实现
7 参见
8 参考资料
需要通过一个安全的通道做额外的传输
与连锁协议不同,所有能抵御中间人攻击的加密系统都需要通过一个安全通道来传输或交换一些额外的信息。为了满足不同安全通道的不同安全需求,许多密钥交换协议已经被研究了出来。
攻击示例
假设爱丽丝(Alice)希望与鲍伯(Bob)通信。同时,马洛里(Mallory)希望拦截窃会话以进行窃听并可能在某些时候传送给鲍伯一个虚假的消息。
首先,爱丽丝会向鲍勃索取他的公钥。如果Bob将他的公钥发送给Alice,并且此时马洛里能够拦截到这个公钥,就可以实施中间人攻击。马洛里发送给爱丽丝一个伪造的消息,声称自己是鲍伯,并且附上了马洛里自己的公钥(而不是鲍伯的)。
爱丽丝收到公钥后相信这个公钥是鲍伯的,于是爱丽丝将她的消息用马洛里的公钥(爱丽丝以为是鲍伯的)加密,并将加密后的消息回给鲍伯。马洛里再次截获爱丽丝回给鲍伯的消息,并使用马洛里自己的私钥对消息进行解密,如果马洛里愿意,她也可以对消息进行修改,然后马洛里使用鲍伯原先发给爱丽丝的公钥对消息再次加密。当鲍伯收到新加密后的消息时,他会相信这是从爱丽丝那里发来的消息。
1.爱丽丝发送给鲍伯一条消息,却被马洛里截获:爱丽丝“嗨,鲍勃,我是爱丽丝。给我你的公钥” -- 马洛里 鲍勃
2.马洛里将这条截获的消息转送给鲍伯;此时鲍伯并无法分辨这条消息是否从真的爱丽丝那里发来的:爱丽丝 马洛里“嗨,鲍勃,我是爱丽丝。给我你的公钥” -- 鲍伯
3.鲍伯回应爱丽丝的消息,并附上了他的公钥:爱丽丝 马洛里-- [鲍伯的公钥]-- 鲍伯
4.马洛里用自己的密钥替换了消息中鲍伯的密钥,并将消息转发给爱丽丝,声称这是鲍伯的公钥:爱丽丝-- [马洛里的公钥]-- 马洛里 鲍勃
5.爱丽丝用她以为是鲍伯的公钥加密了她的消息,以为只有鲍伯才能读到它:爱丽丝“我们在公共汽车站见面!”--[使用马洛里的公钥加密] -- 马洛里 鲍勃
6.然而,由于这个消息实际上是用马洛里的密钥加密的,所以马洛里可以解密它,阅读它,并在愿意的时候修改它。他使用鲍伯的密钥重新加密,并将重新加密后的消息转发给鲍伯:爱丽丝 马洛里“在家等我!”--[使用鲍伯的公钥加密] -- 鲍伯
7.鲍勃认为,这条消息是经由安全的传输通道从爱丽丝那里传来的。
这个例子显示了爱丽丝和鲍伯需要某种方法来确定他们是真正拿到了属于对方的公钥,而不是拿到来自攻击者的公钥。否则,这类攻击一般都是可行的,在原理上,可以针对任何使用公钥——密钥技术的通讯消息发起攻击。幸运的是,有各种不同的技术可以帮助抵御MITM攻击。
防御攻击
许多抵御中间人攻击的技术基于以下认证技术:
公钥基础建设
在PKI方案中,主要防御中间人攻击的方案就是PKI的相互认证的机制。使用这样的机制并由应用程序验证用户,用户设备验证应用程序。但在某些流氓应用的情况下,这不是很有用,所以需要注意对流氓软件应与正规软件进行区分。
更强力的相互认证,例如:
密钥(通常是高信息熵的密钥,从而更安全),或密码(通常是低的信息熵的密钥,从而降低安全性)
延迟测试,例如使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费20秒来计算,并且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中间人。
第二(安全的)通道的校验
一次性密码本可以对中间人攻击免疫,这是在对一次密码本的安全性和信任上创建的。公钥体系的完整性通常必须以某种方式得到保障,但不需要进行保密。密码和共享密钥有额外的保密需求。公钥可以由证书颁发机构验证,这些公钥通过安全的渠道(例如,随Web浏览器或操作系统安装)分发。公共密钥也可以经由Web在线信任进行在线验证,可以通过安全的途径分发公钥(例如,通过面对面的途径分发公钥)。
查看密钥交换协议以了解不同类别的使用不同密钥形式或密码以抵御中间人攻击的协议。
中间人攻击的取证分析
从被怀疑是中间人攻击的链接中捕捉网络数据包并进行分析可以确定是否存在中间人攻击。在进行网络分析并对可疑的SSL中间人攻击进行取证时,重要的分析证据包括:
远程服务器的IP地址
DNS域名解析服务器
X.509证书服务器
证书是自签名证书吗?
证书是由信任的颁发机构颁发的吗?
证书是否已被吊销?
证书最近被更改过吗?
在互联网上的其他的客户端是否也得到了相同的证书?
其他的非加密的中间人攻击
一个著名的非加密中间人攻击的例子是贝尔金无线路由器2003年的某一个版本所造成的。它会周期性地接管通过它的HTTP连接,阻止数据包到达目的地。并将它自己对请求的回应作为应答返回。而它发送的回应,则是在用户原本应该显示网页的地方,显示一个关于其他贝尔金产品的广告。在遭到了解技术详情的用户的强烈抗议后,这个功能被贝尔金从路由器后续版本的固件中删除。[1]
另一个典型的非加密中间人攻击的例子是“图灵色情农场”。布赖恩·华纳说,这是垃圾邮件发送者用来绕过验证码的“可以想象的攻击”。垃圾邮件发送者设置了一个色情网站,而访问这个色情网站需要用户解决一些验证问题。这些验证问题实际上是其他网站的验证问题。这样就可以达到绕开网站验证发送垃圾邮件的目的。[2]然而,Jeff Atwood指出,这次袭击仅仅是理论上的——没有任何证据指出垃圾邮件发送者曾经在2006年创建了图灵色情农场。[3]然而,2007年10月有新闻报道称,垃圾邮件发送者确实创建了一个Windows游戏,当用户键入从雅虎收到的注册邮箱验证码后,程序将奖励用户色情图片。[4]这将允许垃圾邮件发送者创建临时的免费电子邮件帐户以发送垃圾邮件。
实现
dsniff - 一个实现SSH和SSL中间人攻击的工具
Cain and Abel - Windows图形界面的工具,它可以执行中间人攻击,嗅探和ARP投毒
Ettercap - 一个基于局域网的中间人攻击工具
Karma - 一个使用802.11 Evil Twin以执行MITM攻击的工具
AirJack -一个演示802.11 MITM攻击的工具
SSLStrip一个基于SSL的MITM攻击的工具。
SSLSniff一个基于SSL的MITM攻击的工具。原本是利用一个在Internet Explorer上缺陷实现的。
Intercepter-NG -- 一个有ARP投毒攻击能力的Windows网络密码嗅探器。可以进行包括SSLStrip在内的
基于SSL的MITM攻击。
Mallory - 一个透明的TCP和UDP MiTMing代理。扩展到MITM SSL,SSH和许多其他协议。
wsniff - 一个802.11HTTP / HTTPS的基于MITM攻击的工具
安装在自动取款机银行卡插槽上的附加读卡器和安装在键盘上的附加密码记录器。
参见
浏览器中间人攻击 -一种网页浏览器中间人攻击
Boy-in-the-browser - 一个简单的Web浏览器中间人攻击
Aspidistra transmitter -英国二战“入侵”行动中使用的无线电发射器,早期的中间人攻击。
计算机安全 - 安全的计算机系统的设计。
安全性分析 - 在不完全知道加密方法的情况下破解加密后的信息。
数字签名 -一个加密文字的真实性担保,通常是一个只有笔者预计将能够执行计算的结果。
联锁协议 -一个特定的协议,在密钥可能已经失密的情况下,规避可能发生的中间人攻击。
密钥管理 - 如何管理密钥,包括生成,交换和存储密钥。
密钥协商协议 - 又称密钥交换协议,一个协商如何创建适合双方通信的密钥的协议。
相互认证 -如何沟通各方的信心创建在彼此的身份。
密码认证密钥协议 -创建使用密码钥匙的协议。
量子密码 - 量子力学的使用提供安全加密(老方法,而依靠单向函数)。
安全通道 - 一种在通信中防截获和防篡改的方式。
欺骗攻击
HTTP严格传输安全
参考资料
1. ^ Leyden, John. Help! my Belkin router is spamming me. The Register. 2003-11-07.
2. ^ Petmail Documentation: Steal People's Time To Solve CAPTCHA Challenges. [2008-05-19].
3. ^ CAPTCHA Effectiveness. 2006-10-25.
4. ^ PC stripper helps spam to spread. BBC News. 2007-10-30.
取自“中间人攻击oldid=40088488”
本页面最后修订于2016年5月13日 (星期五) 03:04。
本站的全部文字在知识共享 署名-相同方式共享 3.0协议之条款下提供,附加条款亦可能应用(请参阅使用条款)。
Wikipedia®和维基百科标志是维基媒体基金会的注册商标;维基™是维基媒体基金会的商标。
维基媒体基金会是在美国佛罗里达州登记的501(c)(3)免税、非营利、慈善机构。
常见的网络安全事件攻击主要类型
常见的网络安全事件攻击主要类型如下:
1、DoS攻击:DoS是Denial of Service的简称,即拒绝服务。单一的DoS攻击一般是采用一对一方式的,通过制造并发送大流量无用数据。造成通往被攻击主机的网络拥塞,耗尽其服务资源,致使被攻击主机无法正常和外界通信。
2、MITM攻击:中间人类型的网络攻击是指网络安全漏洞,使得攻击者有可能窃听两个人、两个网络或计算机之间来回发送的数据信息。在MITM攻击中,所涉及的两方可能会觉得通信正常。但在消息到达目的地之前,中间人就非法修改或搜问了消息。可以通过在接入点上使用强加密或使用虚拟专用网络,来避免MITM攻击。
3、网络钓鱼攻击:网络钓鱼是通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息的一种攻击方式。攻击者可能会将自己伪装成网络银行、在线零售商和信用卡公司等可信的品牌,骗取用户的私人信息。最常见的是向用户发送链接,通过欺骗用户下载病毒等恶意软件,或提供私人信息来完成诈骗。
4、勒索软件:勒索软件是一种流行的木马,通过骚扰、恐吓甚至采用绑架用户文件等方式。使用户数据资金正产或计算资源无法正常使用,并以此为条件向用户勒索钱财。这类用户数据资产包括文档、邮件、数据库、源代码、图片、压缩文件等多种文件。赎金形式包括真实货币、比特币或其它虚拟货币。
5、密码攻击:密码是大多数人访问验证的工具,因此找出目标的密码对黑客来说非常具有吸引力。攻击者可能试图拦截网络传输,以获取未经网络加密的密码。他们通过引导用户解决看似“重要”的问题来说服目标输入密码。一些安全性较低的密码很容易被攻击者获取,例如“1234567”。
如何防范中间人攻击
中间人攻击英文名叫:Man-in-the-MiddleAttack,简称MITM攻击。指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
如何防范中间人攻击
1、使用HTTPS:确保您只访问那些使用着HTTPS的网站。HTTPS提供了额外的安全保护层。在此,您可以考虑下载并安装Electronic
Frontier Foundation的HTTPS Everywhere浏览器扩展程序。它是Google Chrome浏览器最好的隐私扩展程序之一。
2、不要忽略警告:如果您的浏览器提示,您正在访问的网站存在着安全问题,那么就请引起足够的重视。毕竟安全证书警告可以帮您直观地判定,您的登录凭据是否会被攻击者截获。
3、不要使用公共WiFi:如果您无法避免使用公共WiFi,那么请下载并安装安全防护,为连接增加安全性。同时,在使用公共WiFi连接时,请留意浏览器的安全警告。如果警告的数量突然猛增,那么很可能就表明某个漏洞遭到了中间人攻击。
4、运行并更新防病毒软件:除了此外,也请考虑使用诸如Malwarebytes Premium之类的其他安全工具。