Files

4.8 KiB
Raw Blame History

AWS - Lambda Post Exploitation

{{#include ../../../../banners/hacktricks-training.md}}

Lambda

For more information check:

{{#ref}} ../../aws-services/aws-lambda-enum.md {{#endref}}

Exfilrtate Lambda Credentials

Lambdaはランタイムで環境変数を使って資格情報を注入します。もしそれらにアクセスできれば/proc/self/environ を読む、または脆弱な関数自体を利用するなど)、その資格情報を利用できます。これらはデフォルトの変数名 AWS_SESSION_TOKENAWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_ID に格納されます。

デフォルトでは、これらの資格情報は cloudwatch のロググループ(名前は AWS_LAMBDA_LOG_GROUP_NAME に格納への書き込みや任意のロググループ作成が可能です。加えて、Lambda関数は用途に応じてさらに多くの権限が割り当てられていることが多いです。

Steal Others Lambda URL Requests

If an attacker somehow manage to get RCE inside a Lambda he will be able to steal other users HTTP requests to the lambda. If the requests contain sensitive information (cookies, credentials...) he will be able to steal them.

{{#ref}} aws-warm-lambda-persistence.md {{#endref}}

Steal Others Lambda URL Requests & Extensions Requests

Lambda Layers を悪用すると、extensions を悪用してLambda内に永続化し、リクエストの窃取や改竄を行うことも可能です。

{{#ref}} ../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md {{#endref}}

AWS Lambda VPC Egress Bypass

空の VpcConfigSubnetIds=[], SecurityGroupIds=[]で設定を更新することで、Lambda関数を制限されたVPCから外へ強制的に出すことができます。そうすると関数はLambda管理のネットワークプレーンで実行され、アウトバウンドのインターネットアクセスを回復し、NATのないプライベートVPCサブネットで課される送信制御を回避します。

{{#ref}} aws-lambda-vpc-egress-bypass.md {{#endref}}

AWS Lambda Runtime Pinning/Rollback Abuse

lambda:PutRuntimeManagementConfig を悪用して関数を特定のランタイムバージョンに固定Manualしたり、更新を凍結FunctionUpdateしたりします。これにより悪意ある layer/wrapper と互換性を維持し、脆弱な旧ランタイムにとどめて exploitation や長期的な永続化を助けることができます。

{{#ref}} aws-lambda-runtime-pinning-abuse.md {{#endref}}

AWS Lambda Log Siphon via LoggingConfig.LogGroup Redirection

lambda:UpdateFunctionConfiguration の高度なログ設定を悪用して、関数のログを攻撃者が指定した CloudWatch Logs のロググループにリダイレクトできます。コードや実行ロールを変更する必要はありません(ほとんどの Lambda ロールは AWSLambdaBasicExecutionRole 経由で既に logs:CreateLogGroup/CreateLogStream/PutLogEvents を含んでいます)。関数が秘密情報やリクエストボディを出力したり、スタックトレースでクラッシュした場合、新しいロググループからそれらを収集できます。

{{#ref}} aws-lambda-loggingconfig-redirection.md {{#endref}}

AWS - Lambda Function URL Public Exposure

Function URL の AuthType を NONE に切り替え、lambda:InvokeFunctionUrl を全員に付与するリソースベースポリシーをアタッチすることで、プライベートな Lambda Function URL を認証不要の公開エンドポイントにできます。これにより内部関数の匿名実行が可能になり、機密性の高いバックエンド処理が露出する可能性があります。

{{#ref}} aws-lambda-function-url-public-exposure.md {{#endref}}

AWS Lambda Event Source Mapping Target Hijack

UpdateEventSourceMapping を悪用して既存の Event Source Mapping (ESM) のターゲットLambda関数を変更すると、DynamoDB Streams、Kinesis、または SQS からのレコードが攻撃者管理下の関数に配信されます。これによりプロデューサーや元の関数コードに触れることなく、ライブデータを密かに迂回させられます。

{{#ref}} aws-lambda-event-source-mapping-target-hijack.md {{#endref}}

AWS Lambda EFS Mount Injection data exfiltration

lambda:UpdateFunctionConfiguration を悪用して既存の EFS Access Point を Lambda にアタッチし、マウントされたパスからファイルを列挙/読み取りする簡単なコードをデプロイすることで、関数が以前アクセスできなかった共有の秘密情報や設定を持ち出せます。

{{#ref}} aws-lambda-efs-mount-injection.md {{#endref}}

{{#include ../../../../banners/hacktricks-training.md}}