본문 바로가기

Personal/Cloud

CloudGoat 실습 - lambda_privesc

이번에는 lambda_privesc 시나리오를 실습해볼 예정이다.

VMware의 ubuntu 가상머신에 접속하여 cloudgoat 경로로 들어가 시나리오를 create한다.

 

ll 명령어로 cloudgoat 디렉토리 하위에 생성된 시나리오 디렉토리로 경로를 이동해준다.

 

그 후에 ll로 또 어떤 파일들이 있는지 확인을 하고 cat으로 start.txt 정보를 읽어준다.

리소스들의 access key나 secret key 등 시나리오를 풀이하는데 필요한 정보들이 대부분 모여있다.

 

이제 chris의 프로필을 등록한다.

 

다음으로 어떤 관리형 정책이 연결되어 있는지 확인한다.

 

정책 버전 v1에 대한 자세한 정보를 출력한다.

여기서 문제의 AssumeRole이 있는 것을 확인 가능하다.

list-roles 명령어로 자세한 역할을 출력해보자.

 

그 중 debug-role의 정책을 출력해보니 AdministratorAccess 인 것을 확인할 수 있다.

 

다음은 lambdaManager-role을 확인해보니, 더 자세한 정보를 알 필요가 있어 보인다.

 

문제의 iam:PassRole을 확인할 수 있다.

 

계속 아래의 명령어가 안 돼서 문제가 무엇인지 찾아봤는데, us-east-1으로 default region name을 프로필을 등록할 때 설정했어야 했다.

 

lambdaManager라는 프로필로 등록해주고 토큰도 넣어줘야 하는데 그거는 직접 ~/.aws/credentials 파일을 gedit으로 열어준 뒤 입력한다.

 

role이 잘 부여되었는지 확인하기 위해 get-caller-identity cli 명령어를 쓴다.

 

gedit lambda_function.py 명령어로 lambda_funcion.py 파일의 코드를 아래와 같이 작성해준다.

 

zip 명령어로 lambda_function.py.zip으로 압축해준다.

 

다음으로 lambda 함수를 만들어주는 명령어로 lambda_function.py.zip을 사용해서 만들어준다.

 

lambda 함수를 호출해준다.

 

다음으로 크리스의 관리형 정책을 다시 한 번 확인해준다.

admin 권한도 추가된 것을 알 수 있다.

 

시나리오 실습이 끝나서 시나리오를 destroy 하자.

시나리오 경로에서 상위 디렉토리로 이동한 뒤에 ./cloudgoat.py destroy [시나리오 실습 디렉토리] 를 해주면 자동으로 모든 리소스가 삭제 된다.

해당 시나리오는 추가로 작업해준 것들이 있어서 destroy Error가 나기 때문에 남은 건 직접 삭제해주자.

연결했던 admin 정책을 해제해준다.

 

다시 destroy를 했더니 complete!가 출력되는 것을 볼 수 있다.

 

하지만, 여기서 끝이 아니다. lambda 함수를 우리가 직접 생성해줬었기 때문에 그것도 직접 삭제해줘야 한다.

admin_lambda가 남아있는 것을 콘솔을 통해 확인할 수 있다.

 

자세한 정보를 보기 위해 lambda 함수를 눌러서 들어가면 실습하면서 작성했던 lambda_function.py 코드도 확인할 수 있다. 이제 삭제하자.

모든 시나리오의 리소스 정리가 끝났다.

이렇듯 시나리오 중 내가 직접 뭔가 새로 생성하는 시나리오들은 삭제를 꼼꼼히 확인해줘야 과금을 막을 수 있다.

 

핵심

- 관리형 정책과 인라인 정책의 차이를 알아야 한다.

- assume role과 pass role에 대해서 이해해야 한다.

- lambda 함수를 만들고 실행하는 권한에 대해 이해해야 한다.

 

 

'Personal > Cloud' 카테고리의 다른 글

CloudGoat 실습 - iam_privesc_by_key_rotation  (0) 2024.04.02
CloudGoat 실습 - vulnerable_lambda  (0) 2024.03.26
CloudGoat 실습 - iam_privesc_by_rollback  (1) 2024.03.12
AWS SAA 공부 3일차  (0) 2024.01.11
AWS SAA 공부 2일차  (0) 2024.01.10