hiris
CloudGoat 실습 - iam_privesc_by_rollback 본문
1. 먼저 환경 세팅부터 시작한다.
github 주소는 다음과 같다 .
https://github.com/RhinoSecurityLabs/cloudgoat?tab=readme-ov-file
GitHub - RhinoSecurityLabs/cloudgoat: CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool
CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool - RhinoSecurityLabs/cloudgoat
github.com
1. Terraform 설치
2. AWS CLI를 설치를 한다.
3. jq 다운로드 한다.
linux or mac만 사용가능하다고 해서, wsl을 사용하여 실습을 진행했다.
CloudGoat 환경설정 하는 방법은 밑의 블로그를 참고하였다.
https://xxls-scty.tistory.com/16
Cloud-Goat-Install
#Cloud-Goat-Install Step1.) 리눅스에서 git 명령어를 사용하여 cloudgoat 플랫폼을 내려받습니다. #git clone https://github.com/RhinoSecurityLabs/cloudgoat.git Step2.) cloudgoat 폴더 접근 후 “cloudgoat.py” 777권한을 주고 /c
xxls-scty.tistory.com
CloudGoat iam_privesc_by_rollback 실습
실습 시나리오는 다음과 같다 .
Rayor의 정책 버전을 확인하던 중 하나의 버전이 setDefaultPolicyVersion이 true가 되어 있음을 확인할 수 있다.
이는 해당 버전을 통해 다른 정책 버전의 권한을 가져올 수 있는 위험이 존재한다.
다른 버전을 확인해보니, 모든 리소스를 허용하는 버전이 있음을 확인했고, 해당 버전에 setDefaultPolicyVersion의 정책을 주어 권한을 승격하는 과정을 거친다.
실제로 해당 권한을 통해 Rayor외의 임의의 계정을 생성할 수 있어, 관리자 권한으로 상승했음을 확인할 수 있다.
./cloudgoat.py create iam_privesc_by_rollback
1) 해당 명령어를 치게 되면, 다음과 같이 apply complet 메시지가 출력이 된다.
2) 그럼 다음과 같이 AWS IAM 에 raynor -~~ 하는 사용자가 생긴 것을 확인할 수 있다.
3) iam_prviesc_by_rollback 폴더에 접근하면, start.txt 파일을 확인할 수 있고 해당 파일에는 key_id 및 aws key 값의 정보를 확인할 수 있었다.
4) 위에서 획득한 key 값을 활용하여 cloudgoat 계정의 "access_key_id / secret_key" 를 등록한다.
4) IAM 사용자와 연결된 관리형 정책을 나열을 한다.
list-attached-user-policies
list-policy-version
5) v1에 대한 취약 결점이 발견됐다. v1을 확인해보니 iam:setDefaultPolicyVersion에 취약점이 발견됐음을 알 수 있다.
iam:setDeafultPolicyVersion 설정은 해당 정책이 연결된 모든 사용자, 그룹 및 역할에 영향을 미치기 때문에, 다른 버전의 고객관리 정책도 확인했다.
확인한 결과, v2가 모든 리소스들에 대해 Allow를 하고 있었다.
6) 모든 리소스가 허가된 v2를 기본 정책으로 저장을 한 뒤, 임의의 계정 tester을 생성을 해봤다.
tester가 생성됨을 알 수 있다.
-> 관리자 권한을 획득하여 임의의 계정을 생성을 했음을 알 수 있다.
비용 청구가 될 수 있으니,, 리소스는 모두 삭제했다.