AWS - Lambda Persistence
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
詳細については、以下を確認してください:
Lambdaが実行される際に任意のコードを実行するためにレイヤーを導入/バックドアすることが可能です:
Lambda Layersを悪用することで、拡張機能を悪用し、Lambdaに持続的に存在することが可能ですが、リクエストを盗んだり変更したりすることもできます。
外部アカウントに対して、さまざまなLambdaアクション(呼び出しやコードの更新など)へのアクセスを付与することが可能です:
Lambdaは異なるバージョン(各バージョンに異なるコード)を持つことができます。 その後、Lambdaの異なるバージョンを持つ異なるエイリアスを作成し、各エイリアスに異なる重みを設定できます。 この方法で、攻撃者はバックドア付きのバージョン1と正当なコードのみのバージョン2を作成し、リクエストの1%でのみバージョン1を実行して隠れることができます。
Lambdaの元のコードをコピーします。
元のコードをバックドアする新しいバージョンを作成します(または悪意のあるコードのみ)。そのバージョンを公開し、$LATESTにデプロイします。
Lambdaに関連するAPIゲートウェイを呼び出してコードを実行します。
元のコードを持つ新しいバージョンを作成し、そのバージョンを$LATESTに公開してデプロイします。
これにより、バックドア付きのコードは以前のバージョンに隠されます。
APIゲートウェイに移動し、バックドア付きのLambdaの実行を行う新しいPOSTメソッドを作成します:arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
最後の:1は関数のバージョンを示しています(このシナリオではバージョン1がバックドア付きのものになります)。
作成したPOSTメソッドを選択し、アクションで**APIをデプロイ
**を選択します。
これで、POST経由で関数を呼び出すとバックドアが呼び出されます。
何かが起こったときや時間が経過したときにLambda関数を実行できることは、持続性を得て検出を避けるための素晴らしい一般的な方法です。 ここでは、Lambdaを作成してAWS内での存在をより隠密にするためのいくつかのアイデアを紹介します。
新しいユーザーが作成されるたびに、Lambdaは新しいユーザーキーを生成し、攻撃者に送信します。
新しいロールが作成されるたびに、Lambdaは侵害されたユーザーにロールの引き受け権限を付与します。
新しいCloudTrailログが生成されるたびに、それらを削除または変更します。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)