Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
IMDSpoof — IMDSPOOF 是一款网络欺骗工具,它会伪造 AWS IMDS 服务以返回可触发告警的蜜令牌。 | Kitploit
工具/GitHubGitHub/grahamhelton/imdspoof
防御工具云安全事件响应
GitHubgrahamhelton/imdspoof

IMDSpoof

IMDSPOOF 是一款网络欺骗工具,它会伪造 AWS IMDS 服务以返回可触发告警的蜜令牌。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

IMDSPOOF

IMDSPOOF 是一个网络欺骗工具,用于伪造 AWS IMDS 服务。攻击者在云环境中提升权限或横向移动的一种方式是通过从位于 http://169.254.169.254/latest/meta-data/iam/security-credentials/<user> 的 IMDS 服务 端点获取 AWS 访问密钥。该工具伪造该端点,并将发送至 169.254.169.254 的流量重定向到一个返回虚假数据的本地 Web 服务器。通过在伪造的 IMDS 响应中插入 蜜罐 AWS 令牌,可以用于高度定制的检测。

IMDSPOOF

适用人群

该工具适用于在 不 主动使用 IMDS(v1 或 v2)的 AWS 实例上工作的蓝队。

从攻击者的角度来看,他们不知道所处 EC2 实例上是否正在使用 IMDS。IMDSPOOF 的目标是欺骗攻入你云环境的攻击者,使其认为自己在与合法的 IMDS 服务交互。

⚠️ 警告 ⚠️

再次强调,如果运行在 EC2 实例上的应用程序确实使用了 IMDS 服务,则该工具一定会引发问题!

尝试运行

要在一个测试环境中试用 IMDSPOOF,创建一个 EC2 实例,并确保安装了 iptables(如果使用 Amazon Linux 则运行 yum install iptables-services)。

  • 编译并运行 IMDS.go(如何编译 Go 代码)
  • 要测试输出效果,运行 curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin
  • 你将看到如下输出:
root@kitploit:~
{
  "Code": "Success",
  "Message": "The request was successfully processed.",
  "LastUpdated": "2023-11-22T03:33:51Z",
  "Type": "AWS-HMAC",
  "AccessKeyId": "InsertHoneyToken",
  "SecretAccessKey": "InsertHoneyToken",
  "Token": "HoneyToken",
  "Expiration": "2023-11-22T09:33:51Z"
}

  • 要撤销之前 iptables 命令的更改,运行以下命令:iptables -t nat -D OUTPUT -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination 127.0.0.1:54321

自定义

为了使其有用,你必须更改 IMDS.go 文件顶部的变量,使其看起来更真实。我强烈建议在文件中放入蜜罐令牌。你可以保留 token 变量不变,或将其改为自定义内容。

  • 更改 IMDS.go 顶部的这些变量,以定义访问 http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin 时返回的内容:
root@kitploit:~
var accessKey string = "InsertHoneyToken"
var secretAccessKey string = "InsertHoneyToken"
var token string = "IQoJb3Jpz2cXpQRkpVX3Uf////////////xMdLZHNjb<snip>"

获取蜜罐令牌

Thinkst Canary 的团队提供了一个出色的工具,可以轻松生成 AWS 凭证,并在使用时触发告警。

  1. 访问 CanaryTokens
  2. 选择 AWS Keys,输入用于接收告警的电子邮件地址以及告警说明

Pasted image 20231124171011

  1. 记下提供的蜜罐令牌
root@kitploit:~
aws_access_key_id = AKIA....
aws_secret_access_key = uZF0y/l5X....
  1. 在 IMDS.go 源码中,将 accessKey 和 secretAccessKey 变量替换为 CanaryTokens 提供的 aws_access_key_id 和 aws_secret_access_key 值。

Pasted image 20231124171422

  1. 编译 IMDS.go。当查询 IMDS 时,IMDS 现在将返回蜜罐令牌。

Pasted image 20231124172134

  1. 等待攻击者尝试使用这些凭证

Pasted image 20231124172935

  1. Canary Token 发送的电子邮件告警

Pasted image 20231124173123

开机自启

通过创建一个 systemd 服务并启用该服务,可以轻松实现 IMDSPOOF 的开机自启。

  • 创建一个服务文件 sudo vim /etc/systemd/system/IMDS.service(如果你愿意,可以将其命名为其他更隐蔽的名字,但以下 systemctl 命令期望服务名为 IMDS.service)
  • 将以下内容添加到刚创建的 IMDS.service 文件中:
root@kitploit:~
[Unit]
# 如果有需要,可以更改为其他内容
Description=IMDSPOOF 

# 在依赖项可用之后启动
After=multi-user.target

[Service]
# 服务类型
Type=simple

# 执行服务程序的命令
ExecStart=/bin/IMDS

# 运行服务的用户
User=root

# 如果服务崩溃则重启
Restart=always

# 重启延迟时间(秒)
RestartSec=10

[Install]
# 在启动时启用该服务
WantedBy=multi-user.target
  • 确保 IMDS 二进制文件位于 /bin/ 目录:sudo mv IMDS /bin/
  • 启用服务以在启动时运行:sudo systemctl enable IMDS
  • 立即启动服务:sudo systemctl start IMDS
  • 使用 sudo systemctl status IMDS 确保一切正常运行

是否支持 SSRF?

是的!由于 IMDSPOOF 操纵 EC2 实例上的 iptables 的方式,无论流量来自何处都没有关系。这意味着除了在 EC2 实例上通过 curl 工具工作外,如果通过托管在 EC2 实例上的 Web 应用程序发现了 SSRF 漏洞,IMDSPOOF 也同样有效。使用 AlexanderHose 博客中关于 IMDS 渗透测试的脆弱应用,我们可以利用 SSRF 漏洞,它也会从 IMDSPOOF 返回伪造的凭证。

Pasted image 20231124180610

撤销操作

  • 停止 systemd 服务:sudo systemctl stop IMDS
  • 禁止 systemd 服务在启动时运行:sudo systemctl disable IMDS
  • 撤销 IMDSPOOF 对 iptables 的更改,运行以下命令:iptables -t nat -D OUTPUT -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination 127.0.0.1:54321
下载工具