使用Bash Bunny从被锁定的系统抓取登陆凭据

在今年早些时候,FB就对Bash Bunny做了相关的报导。这款号称“世界上最先进的USB攻击工具”的Bash Bunny,是否真的像其所说的一样是款渗透神器呢?下面,我将通过实例演示如何利用Bash Bunny QuickCreds模块,获取到目标主机上的登陆凭据。

简介

很幸运,我得到了一个Bash Bunny的硅谷优惠码,并非常期待Bash Bunny的表现。

首先,对于那些不熟悉该类攻击的人,我强烈推荐你可以先去阅读下mubix的原始帖子

配置

首先,我需要将payload加载到设备上并使它能正常工作。

我在Windows和Mac上的尝试都遇到了许多麻烦,最终我在Kali VM成功执行了Bunny。

随着你的[sic]VM被关闭,进入到设置>端口>USB 启用usb 3.0

将bunny切换到状态1;插入并等待它完全加载

添加一个usb过滤器(+图标)并添加设备(Linux 3.4.39 sunxi_usb_udc RNDIS/Ethernet Gadget [0333]驱动)

弹出bunny

将开关调到状态2和3,然后重复步骤2-4

打开你的vm,并且保持bunny未插入状态

在vm上wget bb.sh脚本

运行`sudo bash bb.sh`并按照引导设置

当bunny不在arm模式(位置3),在第三步后插入bunny

如果你操作正确的话,脚本会在这个阶段“检测”bunny

最后一步是再次使用你刚刚的设置“connect”主菜单后按“C”

现在你应该能够ssh到bunny,并可通过ping命令测试连接状态

DNS问题

完成上述配置步骤后,我可以SSH连接到我的bunny。

不幸的是,我无法正确下载任何内容或是更新它。

经过一番折腾后,我查看了一下在设备上的resolv.conf文件。

[email protected]:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=43 time=26.7 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 26.766/26.766/26.766/0.000 ms
[email protected]:~# ping google.com
^C
[email protected]:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4

我发现我的 pfSense 被配置为阻止所有传出的DNS请求。为了后续演示的方便,这里我禁用了我的防火墙规则。

工具安装

在Bash Bunny QuickCreds payload工作之前,我需要在设备上使用Responder。

首先,我将 ToolsInstaller 包添加到switch1有效载荷中。

接下来,我将QuickCreds有效载荷添加到switch2中。

不幸的是,ToolsInstaller的安装仍然失败。

接下来,我手动创建了一个名为pentest的文件夹。

完成创建后,我手动上传了impacket和responder到设备。

但不幸的是,安装依旧失败。

固件更新

至此我意识到可能是固件的问题,因此我决定更新我的固件版本。

进入下载页面,我发现目前最新的版本为1.3。

我按照页面的更新说明,完成了对设备上的固件更新操作。

成功安装

接着,我将Responder移动到了/tools/responder并尝试了快速攻击。

但问题再次出现,Bunny并没有显示攻击成功的绿光,我相信这肯定是Responder的问题。

最后,我找到了.deb文件,并成功安装了Responder!

执行

现在到了最激动人心的时刻了,我决定拿我女朋友加密锁定的笔记本电脑作为我的渗透目标。

我将bunny插入了她的笔记本,可以看到琥珀色的灯光。

没过几秒钟灯光颜色变成了绿色,说明我们的payload成功被执行。

检查设备后我们发现,多了一个包含NTLM哈希的文件。

哈希破解

根据女友提供给我的一小点提示,我开始尝试破解哈希密码。

Rays-MacBook-Pro:testing doyler$ hashcat -a 3 -m 5600 -i --increment-min=1 --increment-max=10 hash.txt ?l?l?l?l?l?l?l?l?l?l
hashcat () starting...

OpenCL Platform #1: Apple
=========================
* Device #1: Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz, skipped.
* Device #2: Intel(R) HD Graphics 530, 384/1536 MB allocatable, 24MCU
* Device #3: AMD Radeon Pro 460 Compute Engine, 1024/4096 MB allocatable, 16MCU

Hashes: 2 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

Applicable optimizers:
* Zero-Byte
* Not-Iterated
* Single-Hash
* Single-Salt
* Brute-Force

Watchdog: Temperature abort trigger disabled.
Watchdog: Temperature retain trigger disabled.

The wordlist or mask that you are using is too small.
This means that hashcat cannot use the full parallel power of your device(s).
Unless you supply more work, your cracking speed will drop.
For tips on supplying more work, see: https://hashcat.net/faq/morework

Approaching final keyspace - workload adjusted.           

Session..........: hashcat
Status...........: Exhausted
Hash.Type........: NetNTLMv2
Hash.Target......: GIRLFRIEND::Girlfriend-THINK:dexxxxx...000000
Time.Started.....: Fri Jul 14 19:40:47 2017 (0 secs)
Time.Estimated...: Fri Jul 14 19:40:47 2017 (0 secs)
Guess.Mask.......: ?l [1]
Guess.Queue......: 1/10 (10.00%)
Speed.Dev.#2.....:        0 H/s (0.45ms)
Speed.Dev.#3.....:        0 H/s (0.00ms)
Speed.Dev.#*.....:        0 H/s
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 26/26 (100.00%)
Rejected.........: 0/26 (0.00%)
Restore.Point....: 0/1 (0.00%)
Candidates.#2....: q -> x
Candidates.#3....: [Generating]

Session..........: hashcat
Status...........: Running
Hash.Type........: NetNTLMv2
Hash.Target......: GIRLFRIEND::Girlfriend-THINK:dexxxxx...000000
Time.Started.....: Wed Jul 19 12:28:22 2017 (1 sec)
Time.Estimated...: Wed Jul 19 12:28:26 2017 (3 secs)
Guess.Mask.......: ?l?l?l?l?l?l?l?l?l?l [10]
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....: 12865.7 kH/s (4.11ms)
Speed.Dev.#3.....: 60526.9 kH/s (7.08ms)
Speed.Dev.#*.....: 73392.6 kH/s
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: xxxxxxxx/308915776 (xx%)
Rejected.........: 0/88440832 (0.00%)
Restore.Point....: xxxxxxxx/308915776 (xx%)
Candidates.#2....: xxxxxxxxxx -> xxxxxxxxxx
Candidates.#3....: xxxxxxxxxx -> xxxxxxxxxx

GIRLFRIEND::Girlfriend-THINK:dexxxxx:xxxxx:xxxxx:(password here)

总结

在成功破解密码后,我成功登陆到了我女友的笔记本。

这是我在bunny上成功使用的第一个payload。

最后,如果你有其他关于payload更好的想法或建议,或尝试编写一些个人的payload,那么欢迎与我取得联系并分享你的成果。

时间: 2024-07-28 23:55:06

使用Bash Bunny从被锁定的系统抓取登陆凭据的相关文章

[C#绘图]Bitmap锁定到系统内存中

具体方法Bitmap.LockBits方法的实现功能是讲Bitmap锁定到系统内存中. 使用LockBits方法,可以在系统内存中锁定现有的位图,以便通过编程方式进行修改.尽管用LockBits方式进行大规模更改可以获得更好的性能,但是仍然可以用SetPixel方法来更改图像的颜色. 函数的返回值的类型是BitmapData,包含选定Bitmap区域的特性. private void LockUnlockBitsExample(PaintEventArgs e) { // Create a ne

Linux系统下ssh登陆很慢的解决办法

Linux系统下ssh登陆很慢怎么办?很多的Linux用户发现连接上Linux服务器在输入用户名之后还要再等一下才能输入密码,时间过长了,现在小编与大家分享一下如何解决ssh登陆问题的问题,需要的朋友可以参考下 很多的Linux用户发现连接上Linux服务器在输入用户名之后还要再等一下才能输入密码,时间过长了,现在小编与大家分享一下如何解决ssh登陆问题的问题,希望对您有所帮助 . 1.我们平时登陆Linux服务器的时候,都需要在输入用户名之后再等待一下,这个时间因不同而等的时间不一样. 2.其

用oracle中的系统用户无法登陆问题解决方案

在使用oracle中的sql plus功能时, 会出现系统用户无法登陆 因为SYS是数据库之外的超级管理员,在输入密码时,输入 密码 as sysdba 就可以;

python抓取系统metrics吐给kafka

本篇介绍用python写脚本,抓取系统metrics,然后调用kafka client library把metrics吐给kafka的案例分享.对于用kafka的同学实用性很高. 在运行本实例前需要先下载两个python库到本地 : six和kafka-python cat config_system_metrics.json  { "env": { "site": "cluster", "component": "

Linux系统下取IP地址的几种方法

Linux系统下取IP地址所在行的方法:(1).ifconfig eth0 | grep "inet addr"          inet addr:10.57.36.112  Bcast:10.57.36.255  Mask:255.255.255.0注释:grep过滤包含"inet addr"字符串的内容(2).ifconfig eth0 | sed -n '2p'          inet addr:10.57.36.112  Bcast:10.57.36

#在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat

#在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat子网和主机网络是同一网络,网络管理员要注意手动配置主机IP,以免IP冲突. #在FLATDHCP模式下,系统将通过自己的服务为VM分配IP,这时不要将flat_injected设置为True,同时设置flat_network_dhcp_start以防止IP冲突,我想这个参数应该是区别主机IP和VM的IP的. 注: 可以使用下列方法来控制I

一淘搜索网页抓取系统的分析与实现(3)—scrapy+webkit & mysql+django

图 scrapy+webkit: 如结构图③. scrapy不能实现对javascript的处理,所以须要webkit解决问题.开源的解决方式能够选择scrapinghub的scrapyjs或者功能更强大的splash. 关于scrapy+webkit的使用后期进行分析. scrapy+django: 如结构图④. django实现的配置界面主要是对抓取系统的管理和配置,包含:网站feed.页面模块抽取.报表系统的反馈等等. 请直接參考: [1]高速构建实时抓取集群 [2]淘宝摘星 文章链接:h

一个小型的网页抓取系统的架构设计

一个小型的网页抓取系统的架构设计 网页抓取服务是互联网中的常用服务,在搜索引擎中spider(网页抓取爬虫)是必需的核心服务.搜索引擎的衡量指标"多.快.准.新"四个指标中,多.快.新都是对spider的要求.搜索引擎公司比如google.baidu都维护者自己负责的spider系统.当然他们的系统很复杂,在这里我们介绍一个小型的网页抓取系统的架构,目标是快速的抓取某个或者几个指定的网站的数据,它的作用有很多,比如做竞品分析,还有其他不可告人的J. 下面这个小型的网页抓取系统,分成下面

关于Windows系统密码抓取

0x01 windows密码Hash 早期SMB协议在网络上传输明文口令.后来出现"LAN Manager Challenge/Response"验证机制,简称LM,它是如此简单以至很容易被破解.微软提出了WindowsNT挑战/响应验证机制,称之为NTLM.现在已经有了更新的NTLMv2以及Kerberos验证体系.Windows加密过的密码口令,我们称之为hash(中文:哈希),Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM