AWS - Lambda Persistence

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Lambda

자세한 정보는 다음을 확인하십시오:

AWS - Lambda Enum

Lambda Layer Persistence

Lambda가 은밀하게 실행될 때 임의의 코드를 실행하도록 레이어를 도입/백도어할 수 있습니다:

AWS - Lambda Layers Persistence

Lambda Extension Persistence

Lambda Layers를 악용하여 확장을 악용하고 lambda에 지속적으로 존재할 수 있으며 요청을 훔치고 수정할 수도 있습니다.

AWS - Abusing Lambda Extensions

리소스 정책을 통한 방법

외부 계정에 다양한 lambda 작업(예: 호출 또는 코드 업데이트)에 대한 액세스를 부여할 수 있습니다:

버전, 별칭 및 가중치

Lambda는 다른 버전(각 버전마다 다른 코드)을 가질 수 있습니다. 그런 다음, 다른 버전의 lambda와 다른 가중치를 설정하여 다른 별칭을 만들 수 있습니다. 이렇게 하면 공격자는 백도어된 버전 1정상 코드만 있는 버전 2를 만들고 요청의 1%에서만 버전 1을 실행하여 은밀하게 유지할 수 있습니다.

버전 백도어 + API Gateway

  1. Lambda의 원본 코드를 복사합니다.

  2. 원본 코드를 백도어하거나(또는 악성 코드만 포함된) 새 버전을 생성합니다. 해당 버전을 $LATEST에 게시하고 배포합니다.

  3. Lambda와 관련된 API Gateway를 호출하여 코드를 실행합니다.

  4. 원본 코드로 새 버전을 생성하고, 해당 버전을 $LATEST에 게시하고 배포합니다.

  5. 이는 이전 버전에 백도어된 코드를 숨깁니다.

  6. API Gateway로 이동하여 새 POST 메서드(또는 다른 메서드 선택)를 생성하여 lambda의 백도어된 버전을 실행합니다: arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1

  7. arn의 마지막 :1은 함수의 버전(이 시나리오에서는 버전 1이 백도어된 버전임)을 나타냅니다.

  8. 생성된 POST 메서드를 선택하고 작업에서 **Deploy API**를 선택합니다.

  9. 이제 POST를 통해 함수를 호출하면 백도어가 실행됩니다.

Cron/Event 액추에이터

무언가가 발생하거나 일정 시간이 지나면 lambda 함수가 실행되도록 할 수 있다는 사실은 lambda를 지속성을 확보하고 탐지를 피하는 좋은 방법으로 만듭니다. 여기에는 lambda를 생성하여 AWS에서 더 은밀하게 존재할 수 있는 몇 가지 아이디어가 있습니다.

  • 새 사용자가 생성될 때마다 lambda가 새 사용자 키를 생성하여 공격자에게 전송합니다.

  • 새 역할이 생성될 때마다 lambda가 손상된 사용자에게 역할 가정 권한을 부여합니다.

  • 새 cloudtrail 로그가 생성될 때마다 삭제/변경합니다.

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated