Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
IPSpinner — IPSpinner 作为一个本地代理运行,将请求通过外部服务进行重定向。 | Kitploit
工具/GitHubGitHub/synacktiv/ipspinner
密码攻击Web代理与拦截IDS/IPS规避渗透测试云安全红队
GitHubsynacktiv/ipspinner

IPSpinner

IPSpinner 作为一个本地代理运行,将请求通过外部服务进行重定向。

查看仓库
1238401年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🔁 IPSpinner

IPSpinner 是一个本地代理,可用于将收到的所有请求通过不同的选定提供商进行重定向。其目的是创建一个透传代理,为每个请求轮换源 IP 地址。例如,通过 IPSpinner 运行暴力破解操作有助于避免被检测,因为服务器将从数百个不同的 IP 地址收到请求。

IPSpinner 目前支持 AWS(API Gateway)、Azure(Cloud Shell)和 GitHub(GitHub Actions)。

目录

  1. 工作原理
    1. 概述
    2. 提供商与启动器
      1. AWS API Gateway
      2. Azure Cloud Shell
      3. GitHub Actions
    3. 启动器对比
  2. 如何安装?
    1. 安装 Go
    2. 克隆并构建 IPSpinner
    3. 清理构建
  3. 如何使用?
    1. 概述
      1. 命令行参数
      2. 配置文件
    2. 各提供商
      1. AWS
      2. Azure
      3. GitHub
  4. 如何 ...?
    1. HTTP/2 支持?

I/ 工作原理

1) 概述

图 1:IPSpinner - 总体架构图 图 1:IPSpinner - 总体架构图

IPSpinner 作为本地代理运行,通过外部服务重定向请求。为此,IPSpinner 利用了提供商和启动器。

提供商(provider)指云提供商或在线服务提供商(AWS、Azure、GitHub 等),它们提供不同的服务,即所谓的启动器(launcher),可用于中继用户的请求(AWS API Gateway、GitHub Actions、Azure Cloud Shell 等)。

因此,要启动 IPSpinner,用户必须为要使用的提供商提供凭据,并为启动器提供额外配置。可以同时使用多种启动器类型,IPSpinner 会为每个请求随机选择其中一个可用的启动器。

此外,IPSpinner 实现了预加载功能。某些启动器可以预先加载,以避免代理发现新主机时的重新配置延迟。对于这些启动器,预加载过程是推荐的但不是强制的。对于其他启动器,则无需预加载。

2) 提供商与启动器

i. AWS API Gateway

简介

IPSpinner 可以利用 AWS API Gateway 发送请求。此实现基于 FireProx,它创建一个 REST API Gateway 来重定向传入请求。因此,我们对 FireProx 进行了改造,使其能够为每个 API Gateway 处理多个主机,并实现了新功能。总而言之,当 IPSpinner 收到请求时,它会选择或创建合适的 API Gateway 实例并发送请求。然后,它收集响应并返回给用户。因此,目标服务器收到的是来自 API Gateway 的请求,而不是直接来自用户。由于 API Gateway 会为每个请求轮换其出口 IP,IPSpinner 利用此功能实现 IP 地址轮换。

图 2:AWS API Gateway - 总体架构图 图 2:AWS API Gateway - 总体架构图

下图制作于 2024 年 10 月,展示了每个 AWS 区域根据发送请求数量可用的唯一 IP 地址数量。大多数区域提供超过 100 个 IP 地址,并且可以同时使用多个区域,使用户能够通过全球数千个地址代理其请求。

图 3:AWS API Gateway - 各区域可用 IP 地址 图 3:AWS API Gateway - 各区域可用 IP 地址

最后,图 4 以对数绿色色阶展示了每个国家可用的地址数量。这表明用户可以伪造其源 IP 地址,使用任何大陆的地址。

图 4:AWS API Gateway - 各国 IP 地址 图 4:AWS API Gateway - 各国 IP 地址

值得注意的细节

IPSpinner 实现了轮换功能,会定期删除并重新创建 FireProx 实例。如下图所示,轮换 FireProx 实例可能会提供新的 IP 子集。但每个 AWS 区域的 IP 集合有限,因此在某个时刻,轮换将不再提供新的 IP。

图 5:AWS API Gateway - 轮换过程 图 5:AWS API Gateway - 轮换过程

该启动器实现了预加载过程。如前所述,这不是强制性的,但可以避免重新配置后最初几秒内出现的一些重新配置延迟或同步错误。

此外,API Gateway 默认会设置 X-Forwarded-For 头,该头无法删除但可以被覆盖。因此,用户可以在 IPSpinner 配置中指定一个 IP 地址范围,系统将为每个请求从中随机选择一个 IP(IPv4 或 IPv6 范围)。

ii. Azure Cloud Shell

简介

IPSpinner 利用 Azure Cloud Shell 发送请求。Azure Cloud Shell 是一个交互式、经过身份验证、可通过浏览器访问的终端,用于管理 Azure 资源。Cloud Shell 在按会话、按用户提供的临时主机上运行。

因此,IPSpinner 使用多个 Azure 用户,并为这些用户准备 Cloud Shell 会话。然后,每个请求将被重定向到已初始化的 Cloud Shell,之后会对其进行续期以重置其 IP 地址。

图 6:Azure Cloud Shell - 总体架构图 图 6:Azure Cloud Shell - 总体架构图

如下图所示,可用于部署 Cloud Shell 会话的不同区域各自提供数十个 IP 地址。用户可以同时配置多个区域以扩大其 IP 池。

图 7:Azure Cloud Shell - 各区域可用 IP 地址 图 7:Azure Cloud Shell - 各区域可用 IP 地址

然而,IP 地址比 AWS API Gateway 更集中。如下图所示,大多数 IP 地址位于美国、欧洲和印度。

图 8:Azure Cloud Shell - 各国 IP 地址 图 8:Azure Cloud Shell - 各国 IP 地址

值得注意的细节

由于 Cloud Shell 续期过程的延迟,我们建议限制请求速率。更多信息请参阅启动器对比小节。

iii. GitHub Actions

简介

IPSpinner 也可以利用 GitHub Actions 发送请求。此实现的灵感来自 git-rotate,但已被完全修改和调整,以摆脱 catcher 服务器。

它创建一个包含预定义工作流模板的仓库。然后,对于每个请求,它通过环境变量传递请求信息来运行工作流。所有数据均经过加密,外部用户无法读取。IPSpinner 最终从工作流日志中收集响应数据。

图 9:GitHub Actions - 总体架构图 图 9:GitHub Actions - 总体架构图

下图显示 GitHub Actions 提供数千个不同的 IP 地址。

图 10:GitHub Actions - 各区域可用 IP 地址 图 10:GitHub Actions - 各区域可用 IP 地址

然而,下图显示 GitHub Actions 仅提供美国 IP 地址。经分析,其 worker 似乎部署在 Azure 基础设施上。

图 11:GitHub Actions - 各国 IP 地址 图 11:GitHub Actions - 各国 IP 地址

值得注意的细节

⚠️ 此外,“GitHub 严肃对待 Actions 的滥用和垃圾信息行为,并设有专门团队追踪‘垃圾用户’。” 因此,用户绝不能使用自己的账户或公司账户使用此提供商,以避免账户被关闭的问题。

由于 GitHub REST API 的每小时限制,必须限制最大请求速率以避免中断。更多信息请参阅启动器对比小节。

3) 启动器对比

AWS API GatewayAzure Cloud ShellGitHub Actions
可用 IP 地址≈ 12,418≈ 276> 6,000
平均响应时间0.46s13.04s21.42s
平均重新配置时间无20s无
最大理论请求速率4,000 到 16,000 req/h107 req/h/Cloud Shell 实例1,000 req/h
可否/需要预加载?✅❌❌
用途:浏览✅❌❌
用途:密码喷洒✅✅✅

II/ 如何安装?

1) 安装 Go

本项目已在 go 版本 >= 1.21 下测试,但在更低版本下也可能正常工作。

参见 Go 安装文档

安装后,请确保默认的 go 二进制文件是正确的:

$ go version
go version go1.21.1 linux/amd64

2) 克隆并构建 IPSpinner

$ git clone https://github.com/synacktiv/IPSpinner.git
$ cd IPSpinner
$ go mod tidy

$ make build-linux # For Linux AMD64 arch
$ make build-windows # For Windows AMD64 arch

在 Linux 上,可执行文件默认名为 “ipspinner”,在 Windows 上则为 “ipspinner.exe”。

3) 清理构建

使用结束后,可以通过运行以下命令清理构建:

$ make clean

III/ 如何使用?

1) 概述

要获取使用 IPSpinner 的帮助,可以不带任何参数运行该命令:

$ ./ipspinner -h
    Help will be displayed

所有信息(不包括请求重定向)都会记录到 ipspinner.log 文件中。

一些常用选项可以作为命令行参数提供,其他配置信息则必须在 INI 配置文件中提供。

i. 命令行参数

用户可以指定以下命令行参数:

参数必填默认值
--config❌config.ini
--export-ca-cert❌
--host❌
--port❌8080
--v, --vv, --vvv❌
下载工具