如何构建完美的Dropbox(上) - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

如何构建完美的Dropbox(上)

luochicun 技术 2020-10-23 10:45:00
450140
收藏

导语:Dropbox是一款免费网络文件同步工具,是Dropbox公司运行的在线存储服务,通过云计算实现因特网上的文件同步,用户可以存储并共享文件和文件夹。

Dropbox是一款免费网络文件同步工具,是Dropbox公司运行的在线存储服务,通过云计算实现因特网上的文件同步,用户可以存储并共享文件和文件夹。Dropbox提供免费和收费服务,Dropbox的收费服务包括Dropbox Pro 和 Dropbox for Business。在不同操作系统下有客户端软件,并且有网页客户端。

即便如此完美的工具,也发生过网络安全事故。早在2012 年,Dropbox 超过 6000 万帐户资料就被盗过一次。再比如在2016年,攻击者利用Dropbox传播了一种名为petya的勒索软件,他们点击存储在Dropbox共享上,而用户没有意识到,只要点击Dropbox后他们的计算机上就会安装病毒。

我们一直在为FriendlyArm NanoPi R1S单板计算机(SBC)制作软件映像,他们将用它来演示一些近距离攻击技术。我将通过安装Armbian发行版以及P4wnP1 ALOA详细介绍配置R1S的过程。我们还将快速了解如何将USBProxy配置为一个键盘记录器。

首先,我们将利用MaMe82的P4wnP1将R1S配置为USB攻击的平台,虽然最初是为Raspberry Pi Zero W创建的,但从本质上讲,没有任何限制。Raspberry Pi Zero W,在中国,大家叫我树莓派Zero W,在这里,我简称为RPi Zero W。
我作为树莓派家族里的新生代宠儿,与前辈1代一样用ARM11内核的BCM2835处理器,但我的运行速度比之提升了约40%。
相比Raspberry Pi Zero,我增加了与3代B一样的WiFi和蓝牙,能适应更多场合。我们真正需要的是带有USB设备控制器(UDC)的SBC,以及通过该设备控制器进行通信的某种方式!R1S完全符合上述描述,它具有2个千兆以太网端口,我们可以在设置时最初使用它们,但最终我们将专用于以太网攻击,具体的过程我们稍后介绍。 R1S还具有内置的WiFi,尽管它不是特别好的芯片组!但是,我们可以将其用作访问点以允许远程访问设置的dropbox。我们还可以将USB主机端口用于LTE调制解调器或更长距离的其他网络接口。但首先,我们将使用默认情况下Armbian在USB端口上提供的串行控制台进行连接。

我们将以Armbian Buster当前版本(Armbian_20.02.1_Nanopi-r1_buster_current_5.4.20.7z)为基础。下载文件,解压缩.img文件,然后按照Armbian网站上的说明将其写入microSD卡。通常,我会执行以下操作,但要确保你使用的设备是正确的设置!

mount | grep mmcblk0 | while read dev rest; do
        sudo umount $dev
done && (pv Armbian_20.02.1_Nanopi-r1_buster_current_5.4.20.img | sudo dd of=/dev/mmcblk0 bs=2048)

完成后,将micro SD卡插入R1S,然后使用microUSB线将R1S连接到计算机。确保你选择的线是数据线,而不仅仅是充电线!几分钟后,你应该在主机上看到一个串行端口(这发生在R1S启动并扩展文件系统以填充SD卡之后)。如果看不到新的串行端口,请检查数据线!

2.png

dmesg -w显示R1S的枚举

你应该能够使用首选的终端仿真器连接到串行端口,我喜欢使用picocom,并且我相信Windows上的Putty也可以很好地工作。你不必担心波特率,但115200应该可以。使用Linux主机,串行端口枚举为ttyACM设备,例如/dev/ttyACM0。建立连接后,最初的Armbian登录/设置屏幕会打招呼。以“root”用户身份登录,密码为“1234”,然后重新输入密码“1234”以开始将其更改为新密码。记住你的新root密码!你可能不需要创建非特权用户,但是如果你确实愿意,可以这样做!

3.png

以root / 1234身份登录,然后更改root密码

在中断或完成“新用户帐户”的创建过程后,注销,然后作为根用户或来自非特权用户的sudo -s重新登录。在引导过程中,我们将一条以太网线从本地网络连接到R1S的WAN端口。几秒钟后,R1S应该分配了一个IP地址。

4.png

从本地DHCP服务器获取IP地址

现在我们可以SSH到我们的R1S。我还复制了ssh公钥,以使将来的连接更简单。

5.png

在运行P4wnP1之前,我们需要禁用USB串行控制台,以便P4wnP1可以管理USB设备控制器。首先,停止systemd在设备上启动登录提示:

systemctl disable serial-getty@ttyGS0.service
systemctl stop serial-getty@ttyGS0.service

然后,通过阻止加载g_serial模块,停止自动创建串行设备。这样,我们将立即将其卸载,并防止日后再次加载:

rm /etc/modules
rmmod g_serial

现在克隆P4wnP1 ALOA存储库,然后将必要的(预构建的)零件复制到正确的位置。理想情况下,我们会从头开始构建,但是在构建过程中目前存在一些错误。幸运的是,为Raspberry Pi Zero W构建的二进制文件在NanoPi R1S上运行得很好!

apt install -y dnsmasq
git clone https://github.com/RoganDawes/P4wnP1_aloa
cd P4wnP1_aloa
mkdir -p /usr/local/P4wnP1
cp build/P4wnP1_* /usr/local/bin/
cp -r dist/* /usr/local/P4wnP1/
cp build/webapp* /usr/local/P4wnP1/www
mv /usr/local/P4wnP1/P4wnP1.service /etc/systemd/system/
systemctl enable P4wnP1.service
systemctl start P4wnP1.service

现在P4wnP1正在运行,你应该可以在端口8000上以与SSH相同的IP访问P4wnP1 Web界面,即http://nanopi-r1:8000。这里没有身份验证,因为假设P4wnP1公开的网络是一个受信任的网络。

现在是测试USB配置是否正常的好时机,你应该能够使用右侧的复选框选择一个或多个USB类来实施。我通常喜欢实现键盘和鼠标以及自定义的HID设备。然后,确保左上角的USB已启用,然后单击“部署”。

9.png

配置P4wnP1 USB配置文件

你应该看到R1S连接到的计算机检测到一个新的USB设备。例如,在主机上使用“dmesg”,你应该看到类似以下内容:

[2316641.797152] usb 1-5: new high-speed USB device number 40 using xhci_hcd
[2316641.809806] usb 1-5: New USB device found, idVendor=1d6b, idProduct=1347, bcdDevice= 1.00
[2316641.809808] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2316641.809810] usb 1-5: Product: P4wnP1 by MaMe82
[2316641.809811] usb 1-5: Manufacturer: MaMe82
[2316641.809812] usb 1-5: SerialNumber: deadbeef1337
[2316641.815378] input: MaMe82 P4wnP1 by MaMe82 as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/0003:1D6B:1347.0028/input/input85
[2316641.867750] hid-generic 0003:1D6B:1347.0028: input,hidraw0: USB HID v1.01 Keyboard [MaMe82 P4wnP1 by MaMe82] on usb-0000:00:14.0-5/input0
[2316641.868575] input: MaMe82 P4wnP1 by MaMe82 Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/0003:1D6B:1347.0029/input/input86
[2316641.868921] hid-generic 0003:1D6B:1347.0029: input,hidraw1: USB HID v1.01 Mouse [MaMe82 P4wnP1 by MaMe82] on usb-0000:00:14.0-5/input1
[2316641.869892] hid-generic 0003:1D6B:1347.002A: hiddev96,hidraw2: USB HID v1.01 Device [MaMe82 P4wnP1 by MaMe82] on usb-0000:00:14.0-5/input2

如果要在启动时部署此USB配置,则可以单击Store,然后输入“startup”作为配置文件名称。另外,也可以根据需要在手动控制下进行部署。

此时,你应该拥有一个功能正常的P4wnP1设备,并且可以按照Internet上的各种教程来实际使用USB功能来攻击连接的设备。

注意:我发现P4wnP1在配置(在P4wnP1内)连接到现有的接入点时非常不稳定。如果这是你的需要,我宁愿建议使用NetworkManager进行这种配置。在这种情况下,我建议你忽略下一段,并禁用P4wnP1中的WiFi配置,并将其另存为启动配置文件。

如果你确实想利用内置Wi-Fi界面的热点功能进行远程访问,则可能希望让P4wnP1为你进行管理,只是因为使用NetworkManager进行配置似乎并不容易。如果是这样,你将需要告诉NetworkManager忽略该接口,因此不会存在所有权冲突。你可以通过编辑/etc/NetworkManager/NetworkManager.conf并在底部添加以下两行来完成此操作:

[keyfile]
unmanaged-devices=interface-name:wlan0

现在,你可以使用Web界面中的“WiFi设置”标签,将P4wnP1配置为将Wi-Fi界面作为接入点运行。将其存储为“启动”配置文件的一部分,以在启动时自动对其进行配置。

12.png

当设备将在现场部署且没有熟悉的Wi-Fi网络可供连接时,这将很有用。可以说,隐藏SSID有助于将其隐藏起来。当然,一旦你开始与它关联,任何本地Wireless IDS都会很快发现你!或者,你可以选择使用LTE加密狗或其他不太明显的通信机制(例如Bluetooth或802.15.4无线电)进行连接。不过,这里将不讨论如何设置它!

另外,我想我会尝试使用USBProxy设置键盘记录器。尽管它被做了特殊标记,但仍然可以正常使用!这个想法是通过创建相同的USB小工具描述符,并简单地将数据包从一侧复制到另一侧,来“镜像”通过USB-A连接器插入R1S的USB设备。研究USB协议可能是最有趣的,但是开箱即用它也可以充当键盘记录器。

除了要确保首先安装libusb和libusb-dev软件包外,我将不涉及编译的所有细节。同样,默认情况下,键盘记录器功能与ROT13过滤器绑定,因此,你在键盘上输入的任何内容都将由13个字符转置。因此,在编译之前,你可能需要注释掉第153行,其中添加了PacketFilter_ROT13插件。当你在那里时,还应通过将“r +”参数更改为“a +”,将第143行的fopen调用更改为追加到日志文件,而不是将其打开只进行读取。主要原因是,如果输出文件尚不存在,则执行将失败,另一种解决方法是在执行之前修改outputfile。

编译后,你可以运行usb-mitm –k来启动键盘记录器。这会将观察到的击键信息转储到stderr,这可能并没有那么大的帮助。你还可以向-k开关传递一个可选参数,指定要写入的文件:usb-mitm –kkeystrokes,这会将观察到的击键记录在输出文件中。

13.png

捕获的击键

总而言之,我们创建了一个USB攻击平台,该平台可用于将击键和鼠标移动注入所连接的受害者,以及执行各种其他USB攻击,例如使用优先级路由来启动USB网络接口。如果有现成的外部USB键盘可以通过R1S插入,我们也可以将其用作USB键盘嗅探器。接下来,我们将研究如何将R1S伪装成以太网人员,插在已授权的受害者和其上游交换机之间。在这种配置中,我们可以利用受害计算机传递任何网络身份验证控制机制的能力,同时“劫持”其IP和MAC地址,以使R1S生成的任何流量实际上都来自受害计算机。

接下来,我将重点介绍两种情况下作为以太网攻击工具的操作。首先,作为可以连接到未使用的以太网端口的Dropbox,并提供对目标网络的远程访问;其次,作为以太网的中间人(Ethernet Person in the Middle),可以将其放置在合法设备与其内部设备之间。在上游交换机中,使用合法设备的IP地址和MAC地址覆盖自己的流量。在第二种情况下,我们也可以击败网络访问控制措施,因为合法设备将处理所有这些。

但是,需要注意的一件事是引起任何异常网络流量,这可能会引发警报。一个明显的示例是在计划的apt更新发生时对armbian.org进行DNS查找,或尝试解析0.debian.pool.ntp.org。更复杂的可能是Linux特有的特定DHCP选项和参数,这些选项和参数不适用于只支持windows的网络。在将你的设备连接到潜在的恶意网络之前,最好熟悉你的设备上运行的所有进程,以及它们在网络上的确切样子!稍后我将演示一种最小化这种意外流量的方法。

攻击准备

如上所述,我假设你将内置的WiFi接口配置为你控制的接入点的客户端,或者配置为AP本身,这样我们就可以通过WiFi连接到R1S,而不受P4wnP1的影响。你可以在命令行上使用nmtui连接到串行控制台时完成此操作,如果你确实知道自己在做什么,则可以使用nmcli !设置以太网接口

第一个建议是重命名接口,以对应于案例中的LAN和WAN名称,这有助于避免混淆接口。你可以使用以下命令来完成此操作,该命令可以正确配置systemd-network。

printf "lan\tplatform-1c1b000.usb-usb-0:1:1.0\nwan\tplatform-1c30000.ethernet\n" | while read iface path; do
cat << EOF > /etc/systemd/network/10-$iface.link
[Match]
Path=$path

[Link]
Name=$iface
EOF
done

这将在/ etc / systemd / network /中创建两个文件,分别以lan和wan接口命名,并带有应重命名的设备的路径。这些应该是NanoPi R1S的标准配置,但在其他设备上可能会有所不同。你还应该确保NetworkManager不会尝试管理以下接口:

cat << EOF >> /etc/NetworkManager/NetworkManager.conf

[keyfile]
unmanaged-devices=interface-name:wan,interface-name:lan
EOF

创建这些文件后,请重新启动以激活规则,重命名接口并重新加载NetworkManager。

2.3.png

重命名后的wan和lan接口

让我们考虑这样一个场景:你发现了一个未使用的以太网端口,并希望连接你的设备。这是一个潜在的风险活动,因为任何网络访问控制(NAC)系统可以检测你的未经授权的活动,并警告操作人员。尽管如此,它很可能会成功,因此值得尝试。

你要了解的第一件事是目标端口是否实际存在,幸运的是,我们可以使用NanoPi R1S上的3个LED来获得即时反馈。不幸的是,LAN和WAN LED很难看到,呈绿色,而红色SYS LED更容易看到。我建议的配置如下,SYS LED用来显示CPU使用率,WAN和LAN LED用来显示链路状态(当链路被检测到时)和被检测到的RX流量(当只接收到流量时闪烁)。

modprobe ledtrig-netdev # not loaded by default
cd /sys/class/leds/
echo cpu > LED1/trigger # labelled sys
echo netdev > LED2/trigger # labelled wan
echo wan > LED2/device_name
echo 1 > LED2/link
echo 1 > LED2/rx
echo netdev > LED3/trigger # labelled lan
echo lan > LED3/device_name
echo 1 > LED3/link
echo 1 > LED3/rx
ip link set dev wan up
ip link set dev lan up

为了在R1S每次启动时都能运行,建议将以上内容添加到/etc/rc.local。请注意,如果没有IP链接设置部分,则链接检测将无法工作!如果你希望红色LED指示WAN链接,请在上面的脚本中交换LED1和LED2。

现在,如果你给R1S通电,只需将以太网线插入WAN或LAN端口,就会告诉你该数据线是否接通,以及该数据线是否有活动。这样可以避免将R1S连接到禁用或断开的端口。也就是说,R1S在以太网端口上也确实有指示灯LED,因此这不是完全必要的!

2.5.png

触发硬件LED的选项,所选触发器位于方括号中,当前为[cpu]

然后,你可以通过WiFi连接并开始监视网络流量,然后再决定要如何进行。例如,请求DHCP租约,或简单地劫持观察到的网络范围内的未使用IP地址。

下一篇文章中,我们将介绍自动化攻击方案、网络访问控制、网络命名空间等可能的攻击手段。

本文翻译自:https://sensepost.com/blog/2020/making-the-perfect-red-team-dropbox-part-1/ 与 https://sensepost.com/blog/2020/making-the-perfect-red-team-dropbox-part-2/如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务