본문 바로가기

Personal/Cloud

CloudGoat 실습 - iam_privesc_by_rollback

2023년 2학기 때 CloudGoat에 오픈소스 컨트리뷰션을 팀원들이랑 팀 프로젝트로 했었는데, 다시 복습 겸 실습한다.

 

설치해뒀던 cloudgoat 경로로 접속해 git pull을 해준다.

 

프로필 설정은 이미 잘 되어 있는 것을 확인했다.

 

iam_privesc_by_rollback 시나리오를 create 해준다.

 

테라폼 프로비저닝 과정이 끝나면 아래와 같이 나온다.

 

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

 

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

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

 

먼저 raynor의 프로필을 등록해준다.

 

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

아까 start.txt에 있었던 username을 활용해서 cli 명령어를 완성해주면 관리형 정책 목록 확인이 가능하다.

다음으로 policy의 버전들을 출력해준다. --policy-arn 뒤에 알맞은 값을 잘 복붙해주면 5개의 버전이 나오는 것을 알 수 있다.

 

v1부터 하나씩 확인을 해보자

 

다음은 v2

 

v3

 

v4

 

v5

 

이 5가지 정책 중에 가장 취약한 정책은 모든 것을 다 허용하고 있는 admin 권한 급의 v2 권한인 것을 알 수 있다.

 

갑자기 현재는 이 5가지 버전 중 어떤 버전으로 설정돼 있을지 궁금해졌다. 콘솔에서 직접 확인하면 되지만, cli 명령어로 확인하고 싶어서 구글링한 끝에 명령어를 알아냈다.

aws iam get-policy --policy-arn [해당 policy arn] --profile [프로필]

Default는 v1이라는 것을 보니 현재는 위에서 확인한 v1 버전이 적용되어 있을 것 같다.

 

이제 v2를 default 버전으로 바꿔보겠다.

바꾼 후에 다시 정책의 정보를 보는 명령어를 썼더니 Default 버전이 v2로 바뀐 것을 확인할 수 있었다.

 

시나리오 실습 끝났으면 이제 시나리오를 destroy해주자

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

조금 시간이 지나면 Destroy complete! 라고 나오는데, 이러면 정상적으로 다 리소스가 삭제됐다고 생각하면 된다!

시나리오 중 내가 직접 뭔가 새로 생성하는 시나리오들도 있는데 그 시나리오들은 직접 생성한 것은 삭제를 따로 해주어야 한다.

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

CloudGoat 실습 - vulnerable_lambda  (0) 2024.03.26
CloudGoat 실습 - lambda_privesc  (1) 2024.03.19
AWS SAA 공부 3일차  (0) 2024.01.11
AWS SAA 공부 2일차  (0) 2024.01.10
AWS SAA 공부 1일차  (0) 2024.01.09