云中红队系列 | 使用 AWS API 配置Fireprox进行 IP轮换

news2024/12/23 19:16:34

在渗透测试评估期间,某些活动需要一定程度的自动化,例如从 LinkedIn 等网站抓取网页以收集可用于社会工程活动、密码喷洒登录门户或测试时盲注的有效员工姓名列表网络应用程序。但是,从单个源 IP 地址执行这些活动可能会导致在测试期间被拦截。

为了克服这个问题,我们需要足够频繁地轮换 IP 以避免检测。我们可以使用 AWS API Gateway 等服务,它通过网关代理我们的流量,而不是直接将其发送到目标。当通过网关发出请求时,它会从 AWS 的大型池中选择一个 IP 地址。由于 AWS 拥有全球基础设施,因此每个请求的这些 IP 可能会有所不同。

有许多工具可以利用 AWS API Gateway;在本博客中,我们将研究Fireprox。它是由Black Hills Information Security的Mike Felch创建的开源工具。Fireprox 会动态创建临时直通代理,每次通过代理发出请求时,目标服务器的 IP 地址都会有所不同。

创建亚马逊账户

要为 Fireprox 设置直通代理,我们需要创建一个 AWS 帐户。首先,请访问AWS 网站:https://aws.amazon.com/并单击“创建 AWS 账户”。填写帐户信息,包括电子邮件地址、强密码和所需的帐户名。

图片

img

图片

img

在下一页上,选择账户类型(个人或企业),输入联系信息,然后选中复选框以同意 AWS 客户协议。

图片

img

之后,输入账单信息并通过电话或短信验证您的身份。

图片

img

然后,我们选择支持计划 - 基本、开发人员或商业计划。一般来说,AWS 提供免费套餐,允许用户试用其服务。3 个主要产品是:

12 个月免费:注册 AWS 后的前 12 个月内可以免费使用这些服务。之后,您将需要按照标准的即用即付费率付费。

始终免费:只要您不超出免费套餐限制,某些 AWS 服务就完全免费。

免费试用:某些服务提供持续时间较短的免费试用,例如一个月左右。

基本计划对于这个功能来说已经足够了。API Gateway 的免费套餐每月为 REST 和 HTTP API 提供多达 100 万次 API 调用。

图片

img

完成注册过程后,我们登录并访问“ AWS管理控制台”即可开始使用AWS服务。

图片

img

图片

img

配置AWS API网关

创建 AWS 账户后,导航至 AWS 控制台上的“服务”磁贴图标。从那里,打开“身份和访问管理仪表板(IAM) ”。

图片

img

在 IAM 仪表板中,从侧面菜单中选择“用户组”,然后单击“创建组”。

图片

img

输入组名称并向下滚动到“附加权限策略 - 可选”以选择策略类型AmazonAPIGatewayAdministrator策略,然后单击“创建用户组”。

图片

img

图片

img

之后,我们将创建一个新用户并将其添加到“FireProx-Testing”组中。单击“创建用户”并输入用户名信息。

图片

img

图片

img

对于“设置权限”,选择“将用户添加到组”并将其添加到Fireprox-Testing组。然后,在单击“创建用户”之前检查用户名和组。

图片

img

图片

img

创建用户成功后,点击该用户即可查看其信息。

要生成访问密钥,请单击“创建访问密钥”。在访问密钥向导中,选择命令行界面 (CLI) 用例并确认我们了解 Amazon 对于访问密钥的建议。

图片

img

图片

img

如果您想添加描述,您可以这样做;这是可选的。要继续,请单击“创建访问密钥”。在最后一步中,您可以将访问密钥复制到密码管理器或将其下载为 .csv 文件。完成后,单击“完成”。

图片

img

图片

img

安装 Fireprox

要安装 Fireprox 工具,从https://github.com/ustayready/fireprox克隆存储库,并在“ fireprox ”目录中使用*irtualenv创建 Python3 的虚拟环境。

  • $ git clone https://github.com/ustayready/fireprox
  • $ cd fireprox
  • #create virutal environment
  • virtualenv -p python3 .

图片

img

然后,运行命令source bin/activate来执行activate bash脚本的内容。activate 脚本通过将VIRTUAL_ENV等变量设置为指向 Fireprox 目录来修改环境变量。

它还修改系统的$PATH变量,以优先考虑安装在 Fireprox 虚拟环境中的库。

  • source bin/activate

要验证变量是否已正确添加,请运行env命令,并检查PATH 、 VIRTUAL_ENVVIRTUAL_ENV_PROMPT变量。

图片

img

图片

img

最后,使用pip,并运行该工具。

sudo pip install -r requirements.txt
python fire.py

图片

img

运行 FireProx

要使用 Firefox,我们需要提供之前在创建新用户“fireprox-testuser”时生成的访问密钥和密钥,以及我们希望通过其代理的站点的 URL。

您可以直接在命令中提供密钥,也可以将它们添加到环境变量中。或者,您可以使用 AWS CLI 创建配置文件并向其中添加密钥。

方法一:

  • python fire.py --access_key ACCESS_KEY --secret_access_key SECRET_ACCESS_KEY --region us-east-2 --command create --url TARGET_URL

图片

img

方法二:环境变量

使用导出命令添加 AWS 变量。然后,运行 Fireprox 并指定要代理的区域和 URL。

  • export AWS_ACCESS_KEY_ID=ACESS_KEY
  • export AWS_SECRET_ACCESS_KEY=SRECRET_KEY
  • python fire.py --region Your-Region --command create --url https://TARGET_URL

图片

img

图片

img

创建API后,返回控制台可以看到新创建的网关。

图片

img

方法 3:AWS 配置文件

我们可以创建一个AWS配置文件,它是一个包含一组用于不同帐户或目的的配置的文件。配置文件由访问密钥 ID 和秘密访问密钥组成,并指定默认区域。

要创建配置文件,请先安装 AWS CLI,然后使用aws configure命令创建配置文件。提供访问密钥 ID、密钥以及要创建 API 网关的区域。

  • #Install AWS
  • curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  • unzip awscliv2.zip
  • sudo ./aws/install
  • #Configure the profile
  • aws configure

图片

img

默认情况下,配置文件将被命名为“default”。在 Linux 上,aws 配置文件通常位于~/.aws/config 。

图片

img

创建后,使用以下命令再次运行该工具,它将从~/.aws/config获取凭证。

  • python fire.py --command create --url https://icanhazip.com

图片

img

💡 --profile_name选项不起作用,因此请在没有它的情况下运行命令。

检查 IP 轮换

通过免费套餐,我们收到了 100 万个请求;如果您好奇当我们通过 API Gateway 发送请求时 IP 如何变化,您可以编写一个快速 bash 脚本,向创建的 URL 发送 10 个请求。

  • #!/bin/bash
  • for i in $(seq 10); do
  • # Send GET request to icanhazip.com
  • curl "https://fireprox_URL"
  • done

图片

img

如下所示,返回的 IP 是唯一的。

图片

img

伪造 X-Forwarded-For 标头

在向目标 URL 发送请求时,我观察到我的云虚拟机的源 IP 地址在X-Forwarded-For标头的值中显示给目标服务器,而不是 API 网关的 IP 地址。

我使用 Burp Suite Collaborator 检查发送请求中X-Forwarded-For标头的值。

  • python fire.py --region us-east-2 --command create --urlhttps://6ip78y7rtz4ig5o5x7sjnye45swgl.oastify.com
  • curl https://FIREPROXURL.amazonaws.com/fprox/

查看请求,您可能会看到源 IP 来自 AWS 池,但如果您单击其中一个请求并检查发送到目标目的地的标头,您将在X-Forwarded-For中看到您的源 IP X-Forwarded-For标头。

图片

img

图片

img

为了规避检测,我们可以通过将此自定义标头添加到我们的curl命令中来屏蔽我们的源IP地址“ X-My-X-Forwarded-For: 127.0.0.1 ”。

curl -H "X-My-X-Forwarded-For: 127.0.0.1" https://FIREPROXURL.amazonaws.com/fprox/

图片

img

完整脚本

  • #!/bin/bash
  • for i in $(seq 10); do
  • # Send GET request to icanhazip.com curl -H "X-My-X-Forwarded-For: 127.0.0.1"https://FIREPROX_URL.amazonaws.com/fireprox/"
  • done

我们已经配置了 Fireprox 并学习了如何伪造X-Forwarded-For`标头。我们现在可以将它与各种工具一起使用来自动化我们的请求,而不必担心被拦截。

资源

•AWS 直通代理 作者:Mike Bond[1]

•用于规避外部网络安全控制的工具,作者:Nate Fair[2]

•使用 FireProx 喷洒 ADFS 密码 作者:Mike Felch[3]

•使用 Fireprox 克服速率限制 作者:James Gallagher[4]

References

[1] AWS 直通代理作者:Mike Bond: https://bond-o.medium.com/aws-pass-through-proxy-84f1f7fa4b4b
[2] 用于逃避外部网络安全控制的工具,作者:Nate Fair: https://www.sprocketsecurity.com/resources/evading-external-network-security-controls
[3] 使用 FireProx 悄悄地喷洒 ADFS 密码 作者:Mike Felch: https://www.youtube.com/watch?v=eZh9HDWmYIQ
[4] 使用 Fireprox 克服速率限制作者:James Gallagher: https://jamesonhacking.hashnode.dev/defeating-rate-limiting-with-fireprox

无偿获取网络安全优质学习资料与干货教程

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2168813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【TabBar嵌套Navigation案例-新特性页面-代码位置 Objective-C语言】

一、接下来,我们来说这个新特性页面 1.首先,看一下我们的示例程序,这里改一下,加一个叹号, command + R, 好,首先啊,这里边有一个新特性页面,当我这个程序是第一次安装、第一次运行、还有呢、就是当这个应用程序更新的时候,我应该去加载这个新特性页面, 然后呢,这…

JPEG图像的DCT(Discrete Cosine Transform)变换公式代码详解

引 言 网络上图像在传输过程中为节省内存空间主要采用jpeg格式。jpeg图属于有损压缩图像的一种。在图像篡改检测过程中,可以利用jpeg图像的单双压缩伪影的不同而判别图像为伪造图并可以定位伪造区域。RGB图像变成jpeg图像过程中涉及从RGB图变成YCbCr图像&#xff0c…

使用离火插件yoloV8数据标注,模型训练

1. 启动 2.相关配置 2.1 data.yaml path: D:/yolo-tool/yaunshen-yolov8/YOLOv8ys/YOLOv8-CUDA10.2/1/datasets/ceshi001 train: images val: images names: [蔡徐坤,篮球] 2.2 cfg.yaml # Ultralytics YOLOv8, GPL-3.0 license # Default training settings and hyp…

物联网行业中通信断线重连现象介绍以及如何实现

01 概述 断线重连是指在计算机网络中,当网络连接遇到异常中断或者断开时,系统会自动尝试重新建立连接,以保证网络通信的连续性和稳定性。这是一种常见的网络通信技术,广泛应用于各种计算机网络场景,包括互联网、局域…

蓝队技能-应急响应篇Web内存马查杀Spring框架型中间件型JVM分析Class提取

知识点: 1、应急响应-Web框架内存马-分析&清除 2、应急响应-Web中间件内存马-分析&清除 注:框架型内存马与中间件内存马只要网站重启后就清除了。 目前Java内存马具体分类: 1、传统Web应用型内存马 Servlet型内存马:…

探索EasyCVR视频融合平台:在视频编解码与转码领域的灵活性优势

随着视频监控技术的飞速发展,各类应用场景对视频数据的处理需求日益复杂多样。从公共安全到智慧城市,再到工业监控,高效、灵活的视频处理能力成为衡量视频融合平台性能的重要标准。在众多解决方案中,EasyCVR视频融合平台凭借其在视…

Java面试题之JVM20问

1、说说 JVM 内存区域 这张图就是一个 JVM 运行时数据图,「紫色区域代表是线程共享的区域」,JAVA 程序在运行的过程中会把他管理的内存划分为若干个不同的数据区域,「每一块儿的数据区域所负责的功能都是不同的,他们也有不同的创建…

Django设计批量导入Excel数据接口(包含图片)

Django设计批量导入Excel数据接口(包含图片) 目录 Django设计批量导入Excel数据接口(包含图片)示例xlsx文件接口详情前端上传FormData后端APIView调用函数 Django 4.2.7 openpyxl 3.1.5示例xlsx文件 接口详情 前端上传FormData …

2-104 基于MATLAB的动态模式分解(Dynamic Mode Decomposition,DMD)

基于MATLAB的动态模式分解(Dynamic Mode Decomposition,DMD),从人类步行数据中提取信息.动态模式分解是一种降维算法,在流体力学领域引入的。与提供内部坐标系和相应投影的SVD相似,DMD为您提供随不同时间行为演变的特定…

【架构】前台、中台、后台

文章目录 前台、中台、后台1. 前台(Frontend)特点:技术栈: 2. 中台(Middleware)特点:技术栈: 3. 后台(Backend)特点:技术栈: 示例场景…

PMOS的原理

PMOS(金属氧化物半导体场效应晶体管)是一种以空穴为主要载流子的场效应管,它的D极(漏极)、S极(源极)和G极(栅极)的工作原理如下: 1. D极(漏极&am…

已存在的Python项目使用依赖管理工具UV

1. 文档 uv文档 2. 如何转换 初始化 uv initrequirements.txt转换成pyproject.toml uv add $(cat requirements.txt)删除requirements.txt 如果更新pyproject.toml之后,使用命令 uv sync替换项目环境 如果有库没有加入依赖,自己手动加一下&am…

详解电力物联网通常使用哪些通信规约?

在电力物联网行业中,通信规约是关键的技术之一,用于实现电网设备与控制中心之间的数据通信和信息管理。本篇就为大家简单说明电力物联网通常使用哪些通信规约。 1、IEC 60870-5-101/104 这是由国际电工委员会(IEC)制定的一系列标…

微信小程序配置prettier+eslint

虽然微信开发者工具是基于vscode魔改的.但是由于版本过低,导致很多插件也用不上新版本.所以在微信开发者工具限制的版本下使用的prettier,eslint也是有版本要求. 本文主要就是记录一下需要的版本号 1.微信开发者工具安装插件 2.package.json中添加以下依赖及安装依赖 "de…

【HarmonyOS】组件长截屏方案

【HarmonyOS】普通组件与web组件长截屏方案:原则是利用Scroll内的组件可以使用componentSnapshot完整的截屏 【普通组件长截屏】 import { componentSnapshot, promptAction } from kit.ArkUI import { common } from kit.AbilityKit import { photoAccessHelper }…

增量式编码器实现原理

目录 概述 1 认识增量式编码器 1.1 概述 1.2 增量式编码器的特性 1.3 编码器的硬件 2 增量式编码器实现原理 2.1 编码器信号 2.2 正反转判断 概述 本文主要介绍增量式编码器实现原理,包括增量式编码器的特性,信号特性,以及如何使用编…

【稳定且高效的分治排序 —— 归并排序算法】

【稳定且高效的分治排序 —— 归并排序算法】 归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,采用分治法的典型应用。将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序&#xff0…

深度探索与实战编码:利用Python与AWS签名机制高效接入亚马逊Product Advertising API获取商品详情

亚马逊商品详情接口技术贴及代码示例 在电商数据分析和产品管理中,获取商品的详细信息是至关重要的一环。亚马逊作为全球领先的电商平台,提供了丰富的商品数据和强大的API接口,使得开发者能够轻松获取商品的详细信息。本文将详细介绍如何使用…

NASA:ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006数据集

目录 简介 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3A Along Track Inland Surface Water Data V006 简介 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006是指由ATLAS/ICESat-2卫星获取的针对陆地…

矿石运输船数据集、散货船数据集、普通货船数据集、集装箱船数据集、渔船数据集以及客船数据集

海船:用于船只检测的大规模精准标注数据集 我们很高兴地介绍一个新的大规模数据集——海船,该数据集专为训练和评估船只目标检测算法而设计。目前,这个数据集包含31,455张图像,并涵盖了六种常见的船只类型,包括矿石运…