AWS - Lambda Persistence

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

Lambda

더 많은 정보를 확인하려면:

pageAWS - Lambda Enum

Lambda 레이어 지속성

람다가 실행될 때 임의의 코드를 실행하기 위해 레이어에 백도어를 도입할 수 있습니다.

pageAWS - Lambda Layers Persistence

Lambda 익스텐션 지속성

Lambda 레이어를 남용하여 익스텐션을 남용하고 람다에 지속성을 부여하고 요청을 도용하고 수정할 수도 있습니다.

pageAWS - Abusing Lambda Extensions

리소스 정책을 통해

외부 계정에 다른 람다 작업(호출 또는 코드 업데이트)에 대한 액세스 권한을 부여할 수 있습니다.

버전, 별칭 및 가중치

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

버전 백도어 + API Gateway

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

  2. 원본 코드를 백도어하는 새 버전을 만듭니다(또는 악의적인 코드만 있는 경우). 해당 버전을 $LATEST에 발행 및 배포합니다.

  3. 람다와 관련된 API 게이트웨이를 호출하여 코드를 실행합니다.

  4. 원본 코드로 새 버전을 만들고 해당 버전을 $LATEST에 발행 및 배포합니다.

  5. 이렇게 하면 이전 버전에 백도어 코드가 숨겨집니다.

  6. API Gateway로 이동하여 새 POST 방법을 만들고(또는 다른 방법을 선택) 백도어 버전의 람다를 실행합니다: arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1

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

  8. 생성된 POST 방법을 선택하고 작업에서 **API 배포**를 선택합니다.

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

Cron/이벤트 액추에이터

무언가가 발생하거나 시간이 경과할 때 람다 함수를 실행할 수 있다는 사실은 람다를 통해 지속성을 얻고 감지를 피하는 일반적인 방법입니다. 여기에는 람다를 만들어 AWS에 대한 존재를 더 은밀하게 만드는 아이디어가 있습니다.

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

  • 새 역할이 생성될 때마다 람다는 침해된 사용자에게 역할 가정 권한을 부여합니다.

  • 새 클라우드트레일 로그가 생성될 때마다 해당 로그를 삭제/변경합니다.

最終更新