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

在渗透测试评估期间,某些活动需要一定程度的自动化,例如从 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.mfbz.cn/a/883718.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习—神经网络基本概念

一,神经元 1.生物神经元与人工神经元 1.1神经元是人脑的基本结构和功能单位之一。人脑中有数1000亿个神经元,其功能是接受(树突),整合(细胞体),传导(轴突)和…

电脑usb接口封禁如何实现?5种禁用USB接口的方法分享!(第一种你GET了吗?)

“防患于未然,安全始于细节。”在信息技术飞速发展的今天,企业的信息安全问题日益凸显。 USB接口作为数据传输的重要通道,在带来便利的同时,也成为了数据泄露和安全风险的高发地。 因此,对电脑USB接口进行封闭管理&a…

【OceanBase 诊断调优】—— GC问题根因分析

GC 流程涉及到 RS 的状态切换和 LS 的资源安全回收,流程上较长。且 GC 线程每个租户仅有一个,某个日志流 GC Hang 死时会卡住所有其余日志流的 GC,进而造成更大的影响。 本文档会帮助大家快速定位到 GC 故障的模块,直达问题核心。…

Redis篇(环境搭建)

目录 一、安装包 1. Windows版下载地址 2. Linux版下载地址 二、安装Redis 1. 在Linux中安装Redis 2. 在Windows中安装Redis 3. 细节问题 三、Redis服务启动 1. 默认启动 2. 指定配置启动 3. 开机自启 四、Redis服务停止 1. Linux系统中启动和停止Redis 2. Window…

SLF4J报错log4j又报错

项目场景: 搭建一个spirngboot项目,启动运行时,SLF4J报错 解决后 ~ log4j又报错了。 问题描述 首先是SLF4J报错了,解决完SL4J报错问题后,再次启动项目,log4j又报错了 。。。 报错信息: SLF4J…

Go语言匿名字段使用与注意事项

1. 定义 Go语言支持一种特殊的字段只需要提供类型而不需要写字段名的字段,称之为匿名字段或者嵌套字段。 所谓匿名字段实际上是一种结构体嵌套的方式,所以也可以称作嵌套字段。 这种方式可以实现组合复用,即通过匿名字段,结构体…

说说海外云手机的自动化功能

在全球社交媒体营销中,通过自动化功能,企业不再需要耗费大量时间和精力手动监控和操作每台设备。这意味着,企业可以显著提升效率、节省成本,同时减少对人力资源的依赖。那么,海外云手机的自动化功能具体能带来哪些优势…

使用ucharts写的小程序页面柱状图上方没有数字

使用uCharts官网 - 秋云uCharts跨平台图表库写的柱状图如何让柱子上放没有数据 更改前 更改后 使用uCharts官网 - 秋云uCharts跨平台图表库 写的小程序图表,无论是柱状图还是折线图添加一个 dataLabel: false, // 不显示数据 九可以实现不显示数据 const opts …

IDEA Dependency Analyzer 分析 maven 项目包的依赖

一、场景分析 javax.validation 是我们 SpringMVC 常用的数据校验框架。但是 javax.validation 是一个规范(Java Bean Validation,简称 JSR 380),它并没有具体的实现,它的常用实现,是hibernate-validator。…

数据结构 - 数组

今天我们将开始第一个数据类型-数组的学习。 经常会看到这样的问题,怎么学习数据结构,我的答案是搞清楚具体数据结构对应的抽象数据类型ADT,抛开语言层面自带的数据类型,然后自己从头 实现一遍。 其实数据结构没多复杂&#xff…

基于SSM+小程序的医院核酸检测服务管理系统(医院2)(源码+sql脚本+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序的医院核酸检测服务管理系统实现了管理员、用户管理、普通管理员、医护人员。 1、管理员实现了首页、用户管理、医护人员管理、普通管理员、通知公告管理、疫苗接种管理、核…

华为GaussDB数据库(单机版)在ARM环境下的安装指南

一、软件版本 机器配置:8核16G,CPU: Huawei Kunpeng 920 2.9GHz操作系统:EulerOS 2.8 64bit with ARM数据库版本:GaussDB Kernel 505.1.0 build 44f4fa53 二、部署流程 2.1 新建用户 ① 以omm用户为例,添加一个omm用…

11. Map和Set

一、二叉搜索树 1. 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根…

IvorySQL 3.4 来了

9 月 26 日,IvorySQL 3.4 发版。本文将带大家快速了解新版本特性。 IvorySQL 3.4 发版说明 IvorySQL 3.4 基于 PostgreSQL 16.4,修复了多个问题,并增强多项功能。 PostgreSQL 16.4 的变更 在未经授权时防止 pg_dump 执行,并引入一…

Qt-QTableWidget多元素控件(37)

目录 描述 QTableWidget 方法 QTableWidgetItem 信号 QTableWidgetItem 方法 使用 图形化界面操作 代码操作 描述 这是一个表格控件,表格中的每一个单元格,都是一个 QTableWidgetItem 对象 QTableWidget 方法 item(int row,int column)根据⾏数…

Snap AR眼镜Spectacles的技术揭秘:通往真正AR体验的道路

Snap公司自2010年成立以来,一直致力于探索增强现实(AR)技术的边界。经过多年的研发与迭代,Snap终于在最新一代Spectacles中实现了重大突破,为用户带来了前所未有的沉浸式AR体验。本文将深入探讨Spectacles的发展历程、…

【docker】debian中配置docker(2024年9月)

首先Follow了一下菜鸟教程,然后遇到了curl的问题。 curl存在的问题 参见这篇文章。其中用到了vim进行编辑,笔者的环境是windows10putty,vim的粘贴操作参考这篇文章。 修改之后的curl没有问题了,成功把脚本下载下来了。 但是在…

即插即用篇 | DenseNet卷土重来! YOLOv8 引入全新密集连接卷积网络 | ECCV 2024

本改进已同步到YOLO-Magic框架! 本文重新审视了密集连接卷积网络(DenseNets),并揭示了其在主流的ResNet风格架构中被低估的有效性。我们认为,由于未触及的训练方法和传统设计元素没有完全展现其能力,DenseNets的潜力被忽视了。我们的初步研究表明,通过连接实现的密集连接…

工作安排 - 华为OD统一考试(E卷)

2024华为OD机试(C卷+D卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 小明每周上班都会拿到自己的工作清单,工作清单内包含n项工作,每项工作都有对应的耗时时长(单位h)和报酬,工作的总报酬为所有已完成工作的报酬之和。那么请你帮小明安排一下工作,保证小明在指定…

基于微信小程序的智能汽车充电站系设计与实现(源码+定制+文档)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…