Pentesting Dropbox on Steroids
Joff Thyer//
很多人可能已经看过Beau Bullock关于渗透测试dropbox的优秀博客文章。Beau提供了使用不同平台构建基础dropbox平台的出色指导。在本文中,我选择了运行KALI(ARM)版的ODroid-C2平台,并将在其基础上扩展,添加一些重要功能。建议您先阅读Beau的文章,因为本文内容建立在该基础之上。
简而言之,Beau的优秀工作提到了部署临时接入点用于攻击者/渗透测试人员通信,但在某些场景下(如多租户/多层建筑),这种部署可能无法通过802.11访问。
作为改进方案,我将解决两个具体问题:
- 添加两个额外的以太网NIC以创建透明桥接中间人(MiTM)功能
- 添加蜂窝调制解调器用于反向通道通信,替代802.11 WiFi
透明桥接配置
透明桥接中间人功能在红队场景中非常有用。只要部署的dropbox有电池供电,测试人员可以通过任何可用方式进入组织,将dropbox连接在服务器/桌面系统与以太网墙插孔之间,然后快速撤离!
我的透明桥接要求相当基础。桥接解决方案必须转发任何ARP请求和包含0x0800 IP以太网类型的以太网帧。桥接还必须能够转发以太网类型0x888E的帧,这是局域网上的可扩展认证协议(EAPOL)。这很重要,以便捕获未启用MACSEC的802.1X帧。
首先安装bridge-utils:
|
|
使用两个可靠的USB以太网NIC(建议使用USB3、10/100/1000Mbps能力的NIC),系统启动后应该能看到三个NIC:eth0、eth1和eth2。
手动创建桥接接口:
|
|
验证配置:
|
|
蜂窝调制解调器配置
需要安装必要的软件包:
|
|
选择不被任何提供商锁定的蜂窝调制解调器,并与您选择的提供商兼容。我选择了与任何GSM提供商兼容的GSM调制解调器。
使用wvdial工具配置PPP拨号。蜂窝调制解调器仍然使用旧的"AT"命令集语法。拨号初始化命令集和其他参数因提供商而异。
/etc/wvdial.conf文件配置示例:
|
|
蜂窝调制解调器通常有两种模式:USB驱动器模式和调制解调器模式。需要通过/etc/usb_modeswitch.conf文件正确配置模式切换。
测试拨号:
|
|
创建启动脚本/etc/init.d/wvdial来自动启动拨号连接。
反向SSH隧道
现在有了可用的蜂窝调制解调器通道,下一步是建立反向SSH隧道到您喜欢的互联网目的地。这将使您能够随时通过反向隧道SSH到您的dropbox。
最简单的方法是在dropbox系统上生成SSH密钥,然后将公钥复制到互联网目标系统的SSH authorized_keys文件中。
生成ECDSA密钥:
|
|
建立反向SSH隧道的命令:
|
|
从远程系统登录dropbox:
|
|
为了实现冗余,可以选择实现多个IP地址目标和多个TCP端口。还需要在蜂窝调制解调器连接成功完成后自动建立反向SSH隧道。
在服务器端(255.99.99.99远程端),设置几个空闲超时参数很有帮助。如果dropbox重新启动,我们需要隧道化的ssh会话超时以释放我们绑定的TCP端口。
额外的数据包过滤和转发
在此阶段,我们有一个配置了透明桥接接口(称为br0)的系统,它将愉快地转发流量,并且还将SSH隧道返回家中供您使用!这是一个很棒的成就,但仍有几个问题需要解决:
- dropbox需要在网络上真正静默
- dropbox需要能够转发EAPOL数据包
- 需要在启动时配置默认的静默行为
- 需要在启动时正确配置桥接接口
安装额外的过滤工具:
|
|
完整的网络接口配置示例:
|
|
关于电源预算不足的说明
USB总线上的电源经常被过度使用。标准USB端口按规格可提供500毫瓦,USB 3.0最多可提供900毫瓦。添加两个以太网NIC和一个蜂窝调制解调器到USB总线时,每个端口可能没问题,但总瓦数消耗会增加。
实验测量显示:
- ODroid-C2 + 两个USB NIC + 蜂窝调制解调器:总计4.7瓦(4700毫瓦)
- 减去蜂窝调制解调器:3000毫瓦
- 减去两个NIC:2700毫瓦
蜂窝调制解调器 = 1700毫瓦 USB NIC = 150毫瓦(x 2)
使用1安培 x 5 VDC电源最多可提供5000毫瓦。我们的测量是在空闲状态下进行的,这意味着我们非常接近最大电源预算。
解决方案是确保使用的电池解决方案能够提供至少2安培的电流,最大可达10,000毫瓦。即使使用2安培电池供电,如果电池未充满电,蜂窝调制解调器也会出现问题。
前进吧,中间人攻击所有东西!