新手指南:如何用Ettercap实现“中间人攻击”

什么是“中间人攻击”?

中间人攻击(Man-in-the-Middle Attack,简称“MiTM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。入侵者把这台计算机模拟一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接并允许其读取或篡改传递的信息,然而两个原始计算机用户却认为他们是在互相通信,因而这种攻击方式并不很容易被发现。所以中间人攻击很早就成为了黑客常用的一种古老的攻击手段,并且一直到今天还具有极大的扩展空间。

工具简介

Ettercap是一款实现“中间人攻击”的多功能工具,具有嗅探实时连接、内容过滤以及其它非常有趣的功能。

它还支持许多协议的主动与被动分离,并且包含网络和主机分析的多项功能。

Ettercap的工作原理是将网络接口设置为混杂模式,并通过ARP欺骗感染目标设备。由此该设备成为所谓的“中间人”,并发动对受害者的各类攻击。Ettercap支持插件,可以通过添加新的插件来扩展功能。

功能

Ettercap支持对许多协议(包括加密协议)的主动和被动分离,并具有网络和主机分析方面的多项功能。Ettercap包含四种操作模式:

基于IP的模式:根据IP源和目的地过滤数据包 基于MAC的模式:根据MAC地址过滤数据包,该模式能够对嗅探通过网关的连接起到作用。 基于ARP的模式:利用ARP欺骗方式在两个主机之间的交换式局域网(全双工,即支持双方同时发送信息)上进行嗅探。 基于公共ARP的模式:利用ARP欺骗方式从一台受害者主机到其它所有主机的交换式局域网(全双工)上进行嗅探。

具体功能:

在已建立的连接中注入字符:将字符注入到服务器(模拟命令)或客户端(模拟回复),同时保持实时连接。 SSH1支持:嗅探用户名和密码,甚至是SSH1连接的数据。Ettercap是第一个能够以全双工方式嗅探SSH连接的软件。 HTTPS支持:嗅探HTTP SSL连接上的加密数据——通过Cisco路由器的GRE tunnel对远程流量进行嗅探,并对它进行"中间人攻击"。 插件支持:使用Ettercap的API创建自定义插件。 密码收集:可以收集以下协议的密码信息——TELNET、FTP、POP、IMAP、rlogin、SSH1、ICQ、SMB、MySQL、HTTP、NNTP、X11、Napster、IRC、RIP、BGP、SOCKS 5、IMAP 4、VNC、LDAP、NFS、SNMP、Half-Life、Quake 3MSN、YMSG 数据包过滤/丢弃:设置一个过滤器,用于在TCP或UDP有效内容中查找特定字符串(或十六进制序列),并用自定义字符串/序列替换它,或丢弃整个数据包。 操作系统指纹:可以提取受害主机及其网络适配器的操作系统信息。 终止连接:从connections-list(连接列表)中终止所选择的连接。 局域网的被动扫描:检索局域网上的主机信息、开放端口、可用服务的版本号、主机(网关、路由器或简单PC)的类型以及跃点数(跃点即路由,一个路由为一个跃点。传输过程中需要经过多个网络,每个被经过的网络设备点(有能力路由的)叫做一个跃点,地址就是它的ip。跃点数是经过了多少个跃点的累加器,为了防止无用的数据包在网上流散。 )的预估距离。 劫持DNS请求。 Ettercap还具有主动或被动地在局域网中找到其它受感染者的功能。

用法

Usage: ettercap [OPTIONS] [TARGET1] [TARGET2]

用法:ettercap【选项】【目标1】【目标2】

TARGET is in the format MAC/IPs/PORTs (see the man for further detail)

目标是MAC/IPs/PORTs格式(根据中间人获取更多信息)

嗅探与攻击选项:

-M, --mitm <方法:ARGS> 执行mitm攻击

-o, --only-mitm 不嗅探,只执行mitm攻击

-B, --bridge <IFACE> 使用桥接嗅探(需要2个iface——嗅探时使用的网卡接口,嗅探两块网卡之间的数据包)

-p, --nopromisc 不要将iface放入混杂模式

-S, --nosslmitm 不要伪造SSL证书

-u, --unoffensive 不要转发数据包

-r, --read <file> 从pcap文件读取数据 <file>

-f, --pcapfilter <string> 设置pcap过滤器<string>

-R, --reversed 使用逆向目标反馈

-t, --proto <proto> 只嗅探该proto(默认是全部)

用户界面类型:

-T, --text 使用只显示字符的界面

-q, --quiet 安静模式,不显示抓到的数据包内容

-s, --script <CMD> 向用户界面发出这些命令

-C, --curses 使用curses图形化界面

-G, --gtk 使用GTK+ GUI

-D, --daemon 守护模式(无界面),相当于在后台运行

日志选项:

-w, --write <file> 将嗅探到的数据写入pcap文件 <file>

-L, --log <logfile> 此处记录所有流量<logfile>

-l, --log-info <logfile> 此处记录所有信息<logfile>

-m, --log-msg <logfile> 此处记录所有消息记录<logfile>

-c, --compress 使用gzip压缩日志文件

可视化选项:

-d, --dns 将ip地址解析为主机名

-V, --visual <format> 设置可视化格式

-e, --regex <regex> 只实现匹配该regex数据包的可视化

-E, --ext-headers 打印每个pck的扩展头

-Q, --superquiet 不显示用户名与密码

通用选项:

-i, --iface <iface> 使用该网络接口

-I, --liface 显示所有的网络接口

-n, --netmask <netmask> 在iface上强制实行(force)该<netmask>

-P, --plugin <plugin> 开始该插件<plugin>

-F, --filter <file> 加载过滤器 <file> (内容过滤器)

-z, --silent 不执行初始ARP扫描

-j, --load-hosts <file> 从 <file>加载主机列表

-k, --save-hosts <file> 将主机列表保存至<file>

-W, --wep-key <wkey> 使用该wep密钥解密wifi数据包

-a, --config <config> 使用其它配置文件<config>

标准选项:

-U, --update 从ettercap网站更新数据库

-v, --version 打印此版本并退出

-h, --help 帮助选项

所需资源

Ettercap源代码编译需要以下资源:

Libpcap & dev libraries

Libnet1 & dev libraries

Libpthread & dev libraries

Zlibc

Libtool

CMake 2.6

Flex

Bison

LibSSL & dev libraries

LibGTK & dev libraries

Libncurses & dev libraries

Libpcre & dev libraries

系统要求

支持的操作系统(32位或64位的以下操作系统发行版均已测试成功):

Debian/Ubuntu (包括Kali、BackTrack、Mint等衍生物)、Fedora、Gentoo、Pentoo、Mac OSX (Snow Leopard & Lion)、FreeBSD、OpenBSD、NetBSD。

不支持的操作系统(以下发行版能够安装但不支持,可能需要其它用于代码编译和使用的设置):OpenSuSe、Solaris、Windows Vista、Windows 7、Windows 8。

*参考来源:darknet,FB小编Carrie编译,转载请注明来自FreeBuf(FreeBuf.COM)

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-01-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052(CVE-2017-9805)

漏 洞 概 述 1. 漏洞信息: 2017年9月5日,Apache Struts 发布最新安全公告。Apache Struts2 的 REST 插件存在远程...

30860
来自专栏北京马哥教育

DNS从入门到管理(一)

DNS概述 DNS(Domain Name System,域名系统),域名和IP地址相互映射的一个分布式数据库,通过主机名,最终得到该主机名对应的IP地址的过程...

68260
来自专栏散尽浮华

Linux系统下的ssh使用(依据个人经验总结)

对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验...

78270
来自专栏云计算教程系列

如何在FreeBSD 10.1上使用Sendmail通过外部SMTP服务发送电子邮件

设置新的Web服务器时最常见的需求之一是发送电子邮件。最安全,最简单的方法是将服务器连接到SendGrid或Amazon SES等邮件服务。使用外部服务将帮助您...

23600
来自专栏码洞

你没读过的Jetty使用入门

在近几年的开源Java容器市场上,Tomcat依旧保持在龙头老大的位置,其地位丝毫没有被撼动的迹象。与此同时Tomcat也因为架构臃肿结构复杂而饱受批评。作为T...

15620
来自专栏Linyb极客之路

运维管理之防止"rm -rf /" 误删除

大概懂点linux的程序员都知道“rm -rf /”意味着擦除根路径“/”下挂载的所有内容而无需询问。以前一个主管说过,在你不充分了解某个工具的原理的时候,不要...

17540
来自专栏linux运维学习

linux学习第六十二篇:添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理

添加自定义监控项目 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现 对于第一步,需要到客...

326100
来自专栏Golang语言社区

Linux服务器最最基本安全策略

1、Linux SSH 安全策略一:关闭无关端口 网络上被攻陷的大多数主机,是黑客用扫描工具大范围进行扫描而被瞄准上的。所以,为了避免被扫描到,除了必要的端口,...

61590
来自专栏沈唁志

在Ubuntu 16.04上安装Roundcube

Roundcube是一个基于网络的IMAP电子邮件客户端,提供类似于谷歌Gmail的用户界面。它是用PHP编写的服务器端应用程序,旨在访问电子邮件服务器或服务。...

63610
来自专栏互扯程序

Linux常用Shell脚本,值得学习及收藏

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

25710

扫码关注云+社区

领取腾讯云代金券