zoukankan      html  css  js  c++  java
  • 利用ARP欺骗进行MITM(中间人攻击)

    ARP欺骗主要骑着信息收集得作用,比如可以利用欺骗获取对方流量,从流量分析你认为重要得信息

    0X01  了解ARP

    Arp协议

    ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。

    以太网(局域网)进行信息传输时,不是根据IP地址进行通信,因为IP地址是可变的,用于通信是不安全的。然而MAC地址是网卡的硬件地址,一般出厂后就具有唯一性。ARP协议就是将目标IP地址解析成MAC地址进行验证通信。

    ARP通信原理

    每台主机都会在自己的ARP缓冲区建立一个ARP列表(生命周期二十分钟),用于表示IP地址和MAC地址的对应关系。而这份协议信任以太网所有节点,不检查自己是否接受或发送过请求包,只要收到ARP广播包,他就会把对应得IP-mac更新到自己得缓存表,这就导致我们可以不停的向以太网发送ARP广播包,更i性能ip-mac缓存表

     

    0X02  实验环境:

    win10  IP:192.168.0.101      mac:00:f4:8d:18:de:e8

    中间人Kali     IP:192.168.0.104     mac:00:0c:29:cc:35:6b

    ubuntu    IP:192.168.0.103     mac:00:0c:29:cc:5d:22

    使用工具arpspoof、tcpdump

    a)   linux因为系统安全,是不支持IP转发的,其配置文件写在/proc/sys/net/ipv4的ip_forward中。默认为0,需要修改为1

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

    b)   查看arp攻击前win10和Ubuntu的ARP表中对应的mac地址

    win10中ARP表的对应关系 

    image

    Ubuntu中ARP表的对应关系

    image

    c)    使用arpspoof实现双向欺骗 

      服务通过端口和IP传输数据,IP通过mac地址去寻找对应的机器发送数据

    正常情况下首先去寻找win10自身ARP缓冲区中的列表,找到列表里IP对应的mac地址,如果使用arpspoof更新win10的ARP列表,使的Kali的mac地址与Ubuntu的ip地址成一一对应关系,当win10向想要通信的IP地址发送数据的时候,实则是向Kali发送数据,同理欺骗Ubuntu服务器,从而做到双向欺骗

    arpspoof –i eth0 –t 192.168.0.101  192.168.0.103  #参数:-i 指Kali所用网卡,-t 表示攻击目标 使用这条语句得作用:告诉192.168.0.101,我(Kali)是192.168.0.103,工具会更新靶机的ARP表,在表里192.168.103这个IP会和Kali的mac地址对应上

    arpspoof –i eth0 –t 192.168.0.103  192.168.0.101  #同上

    以上两条命令可合并为一条  arpspoof –r 参数 

    毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)

    arpspoof -i eth0 -t 192.168.11.101 -r 192.168.11.3

    d)  在靶机上查看FTP服务器的mac地址

    WIN10的ARP表

    image

    Ubuntu的ARP表

    image

    f)  使用工具tcpdump监听80端口并将所截获数据包导入到1.txt中(如没有1.txt,则自动新建)

    tcpdump  -X -i eth0 tcp prot 21 > 1.txt

    使用WIN10通过浏览器访问Ubuntu,产生如下数据

    image

    在文件中查找有用信息,比如user password

    g)  结合driftnet和ettercap工具进行进一步攻击

     

    h)  防御方法: 将IP和mac地址双向绑定,设置为静态绑定

  • 相关阅读:
    [Ramda] Create a Query String from an Object using Ramda's toPairs function
    UVA 10285 Longest Run on a Snowboard(记忆化搜索)
    为什么鲍尔默现在说要辞职?
    c++中经常需要访问对象中的成员的三种方式
    【实用技术】DreamWeaver常用快捷键
    Objective-C中NSString和NSMutableString的基本用法
    《数据通信与网络》笔记--IPSec
    最小费用最大流模板 poj 2159 模板水题
    UVa 10192: Vacation
    C++按值和按址传递对象的思考和优化
  • 原文地址:https://www.cnblogs.com/sup3rman/p/12324512.html
Copyright © 2011-2022 走看看