Ettercap中间人攻击--介绍

前言

  Ettercap有四种界面:Text,Curses,GTK2,Daemonize。

  1.  -T      命令行界面,只显示字符。通常与配套的参数有-q(安静模式),加上该选项,则不会显示抓到的数据包内容。
  2. Curses和GTK2是图形化界面。
  3. Daemonize是守护模式,相当于在后台运行。

ettercap运行方式

  ettercap有两种运行方式:UNIFIED和BRIDGED。

  其中,UNIFIED的方式是以中间人方式嗅探;BRIDGED方式是在双网卡情况下,嗅探两块网卡之间的数据包。

  UNIFED方式的大致原理为同时欺骗A和B,把原本要发送给对方的数据包发送到第三者C上,然后由C再转发给目标。这样C就充当了一个中间人的角色。因为数据包会通过C那里,所以由C再转发给目标。这样C就充当了一个中间人的角色。因为数据包会通过C那里,所以C可以对数据包进行分析处理,导致原本只属于A和B的信息泄露给了C。

  BRIDGED方式有点像笔记本电脑上的两个网卡,一个有线网卡,一个无线网卡。我们可以将有线网卡的internet连接共享给无线网卡,这样笔记本就变成了一个无线ap。无线网卡产生的所有数据包流量都将传送给有线网卡。BRIDGED方式ettercap嗅探的就是这两块网卡之间的数据包。

ettercap常用的功能

  1. 在已有的连接上注入数据:  可以在维持原有连接不变的基础上想服务器或客户端注入数据,以达到模拟命令或响应的目的。
  2. SSH1支持:可以捕获SSH1连接上的User和Pass信息,甚至其他数据。(全双工)
  3. HTTPS支持:可以监听http SSL连接上加密数据,甚至通过Proxy的连接。
  4. 监听通过GRE通道的远程通信:可以通过监听来自远程cisco路由器的GRE通道的数据流,并对它进行中间人攻击。
  5. Plug-in支持:通过Ettercap的API可以创建自己的Plug-in。
  6. 口令收集:可以收集以下协议的口令信息:TELNET、FTP、POP、RLOGIN、SSH1、ICQ、SMB、MySQL、HTTP、NNTP、X11、NAPSTER、IRC、RIP、BGP、SOCK5、IMAP4、VNC、LDAP、NFS、SNMP、HALFLIFE、QUAKE3、MSNYMSG(不久还会有新的协议获得支持).
  7. 数据包过滤和丢弃:可以建立一个查找特定字符串(甚至包括十六进制数)的过滤链,根据这个过滤链对TCP/UDP数据包进行过滤并用自己的数据替换这些数据包,或丢弃整个数据包。
  8. 被动的OS指纹提取:可以被动地(不必主动发送数据包)获取局域网上计算机系统的详细信息,包括操作系统版本、运行的服务、打开的端口、IP地址、MAC地址和网卡的生产厂家等信息。
  9. OS指纹:可以提取被控主机的OS指纹以及它的网卡信息(利用NMAP Fyodor数据库).
  10. 杀死一个连接:杀死当前连接表中的连接,甚至所有连接。
  11. 数据包生产:可以创建和发送伪造的数据包,允许你伪造从以太报头到应用层的所有信息。
  12. 把捕获的数据流绑定到一个本地端口:可以通过一个客户端软件连接到该端口上,进行进一步地协议解码或向其中注入数据(仅适用于基于ARP的方式)。

ettercap中间人攻击

  1. arp毒化

    arp毒化有双向(remote)和单向(oneway)两种方式。

    双向方式将对两个目标的ARP缓存都进行毒化,对两者之间的通信进行监听。单向方式只会监听从第一个目标到第二个目标的单向通信内容。

    若目标主机开启了ARP防火墙,那么直接欺骗会引发报警且无效果。这时就是单向ARP毒化起作用的时候了。只要路由器没有对IP和MAC进行绑定,我们就可以只欺骗路由器,使从路由器发给目标主机的数据包经过中间人,完成我们的攻击。

  1. ICMP欺骗

    icmp欺骗即基于重定向(redirect)的路由欺骗技术。其基本原理是欺骗其他的主机,本机才是最近的路由,因此其他主机会将数据包发送到本机,然后本机再重新将其转发到真正的路由器上。于是,我们便可以对这些数据包进行监听。

    icmp欺骗不适用于在交换机下的环境。若本机在交换机的环境下,则最好选择arp毒化的方式进行攻击。

    icmp欺骗方式的参数是真实路由器的MAC和IP。参数形式为(MAC/IP)。举例如下:

    -M icmp:00:11:22:33:44:55/10.0.0.1

  1. DHCP spoofing

    DHCP spoofing的基本原理是本机伪装成DHCP服务器,代替真实的DHCP服务器给新接入网络的主机动态分配ip。这样的缺点是可能会与真实的DHCP服务器重复分配IP,造成冲突,而且只能针对新接入的主机,不影响到之前的主机。

    DHCP spoofing方式的参数是可以分配出去的ip地址池,子网掩码和DNS,参数形式为(ip_pool/netmask/dns)。举例如下:

    -M  dhcp:192.168.0.30,35,50-60/255.255.255.0/192.168.0.1,对应的含义为将分配192.168.0.30,35,50-60之间的地址,子网掩码为255.255.255.0,DNS服务器为192.168.0.1.

  1. Port Stealing

    此攻击方式适用的环境是在交换机下,且路由器中ip和mac绑定无法进行arp欺骗。其基本思想是,既然无法欺骗路由器的IP和MAC对应关系,那么就欺骗交换机。这样,原本应该通过交换机某一端口到达目标主机的数据包被传入了攻击者的端口。

    由于本方法只能用于交换环境,且会产生大量的数据包,严重影响网络状况,用之间最好三思。

目标写法

  目标写法为:mac/IPs/PORTs,或mac/IPs/Ipv6/PORTs,即mac地址,ip地址,端口号。留空不写表示"ANY",即所有;多个mac地址之间用";"隔开;多个IP地址和端口号可以用符号"-"表示连续和英文符号分号";"隔开;如/192.168.1.100-200;192.168.2.130/ ; 当ip有多个的时候,可以用","分隔不同的C段ip。

注意点:

  1. ettercap并不会转发数据包,转发数据包的是操作系统,因此,在中间人攻击时需要启用操作系统的数据包转发功能。
    1.  sysctl -w net.ipv4.ip_forward =1这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。
    2. 在配置文件/etc/sysctl.conf中写入:net.ipv4.ip_forward = 1.这样就不会在重启的时候失效。
    3. 用户还可以使用如下命令查看当前系统是否支持包转发:sysctl net.ipv4.ip_forward
    4. 参考链接:http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.htm

    

 

posted @ 2016-03-06 09:32  blacksunny  阅读(4254)  评论(0编辑  收藏  举报