AWS - Lambda Persistence
Last updated
Last updated
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
자세한 정보는 다음을 확인하세요:
AWS - Lambda Enum람다가 은밀하게 실행될 때 임의의 코드를 실행하기 위해 레이어를 도입/백도어하는 것이 가능합니다:
AWS - Lambda Layers PersistenceLambda Layers를 악용하여 확장을 악용하고 람다에 지속적으로 존재할 수 있으며 요청을 훔치고 수정할 수도 있습니다.
AWS - Abusing Lambda Extensions외부 계정에 대해 다양한 람다 작업(예: 호출 또는 코드 업데이트)에 대한 접근을 부여할 수 있습니다:
람다는 다양한 버전(각 버전마다 다른 코드)을 가질 수 있습니다. 그런 다음, 람다의 다양한 버전으로 다양한 별칭을 생성하고 각 버전에 대해 다른 가중치를 설정할 수 있습니다. 이렇게 하면 공격자는 백도어가 있는 버전 1과 정상 코드만 있는 버전 2를 생성하고 요청의 1%에서만 버전 1을 실행하여 은밀함을 유지할 수 있습니다.
Lambda의 원본 코드를 복사합니다.
원본 코드를 백도어하는 새로운 버전을 생성합니다(또는 악성 코드만 포함). 해당 버전을 게시하고 $LATEST에 배포합니다.
람다와 관련된 API 게이트웨이를 호출하여 코드를 실행합니다.
원본 코드로 새로운 버전을 생성하고, 해당 버전을 $LATEST에 게시하고 배포합니다.
이렇게 하면 이전 버전에서 백도어 코드가 숨겨집니다.
API Gateway로 이동하여 백도어가 있는 람다의 새로운 POST 메서드를 생성합니다: arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
arn의 마지막 :1은 함수의 버전을 나타냅니다(이 시나리오에서 버전 1이 백도어가 있는 것입니다).
생성된 POST 메서드를 선택하고 작업에서 **API 배포
**를 선택합니다.
이제 POST를 통해 함수를 호출하면 백도어가 호출됩니다.
무언가가 발생하거나 시간이 경과할 때 람다 함수를 실행할 수 있다는 사실은 람다를 지속성을 얻고 탐지를 피하는 좋은 방법으로 만듭니다. 여기 AWS에서 은밀하게 존재하기 위해 람다를 생성하는 몇 가지 아이디어가 있습니다.
새로운 사용자가 생성될 때마다 람다가 새로운 사용자 키를 생성하고 공격자에게 전송합니다.
새로운 역할이 생성될 때마다 람다가 손상된 사용자에게 역할 수임 권한을 부여합니다.
새로운 CloudTrail 로그가 생성될 때마다 이를 삭제/변경합니다.
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)