-
[AWS] flAWS Challenge - Level4Infra/CloudSecurity 2023. 7. 16. 21:50
문제내용
=> 문제는 간단하다. 다음 Level로 가기위해서는 4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud에 접근할 수 있으면 된다. 하지만 역시 접근 시, 다음과 같은 화면을 보게 된다. 그렇다는 것은 저 사용자이름과 비밀번호를 알아내야한다. 추가적인 내용으로는 "nginx가 설정된 직후 해당 EC2의 스냅샷이 만들어졌다는 것을 아는 것이 유용할 것이다"라는 것이다. 그렇다면 snapshot이 뭐가있나 확인해보자.
존재하는 Snapshot 확인
aws sts get-caller-identity --profile flaws aws ec2 describe-snapshots --profile flaws --owner-ids 975426262029
=> 우선 aws cli의 sts get-caller-identity 명령을 이용해서 profile flaws(이전 문제에서 구한 계정 credential)의 Owner id를 알아낸 뒤, describe-snapshot의 옵션으로 주어서 정보를 확인했다.
나의 계정에 필요한 리소스 생성(instance, volume)
aws ec2 create-volume --region us-west-2 --availability-zone us-west-2b --snapshot-id snap-0b49342abd1bdcb89
=> 음 고민하다가 snapshot 내용을 확인해봐야겠다는 생각이 들었고 instance를 하나 생성해주었다. 그리고 해당 instance의 zone을 확인하고 위에서 확인한 snapshot id로 volume을 생성해주었다.
참고로 해당 문제에서 생성하는 snapshot은 공개된 snapshot이기 때문에 나의 계정으로 생성이 되는 것이다. 기본적으로 Snapshot은 Private이지만 snapshot을 다른 계정으로 옮기거나 공유하고나서 다시 Private하게 설정하는 것을 까먹는 경우가 종종 있다고 한다. 즉, snapshot을 만든사람들이 공개해놓고 이를 까먹어서 발생할 수 있는 취약점이다.
생성한 Volume Attach
lsblk sudo mount /dev/xvdf1 /tmp
=> volume을 생성한 instance에 attach하고 해당 instance에 접속해서 mount를 진행해주었다. 나의 경우 /tmp경로에 mount 해주었다.
Mount 정보 확인
=> mount된 정보를 확인해보니 문제에서 말했던 Nginx관련 setup shellscipt가 존재했고 내용을 살펴보니 계정 정보로 보여지는 값이 존재했다.
계정 입력
=> URL을 통해 다음 Level로 갈 수 있게 되었다!!
=> 이번에 풀었던 문제에 대한 해설관련 내용은 이미 문제를 풀면서 작성해두었기 때문에 넘어가겠다. 그냥 해설을 한번 슥 읽어보고 개인적으로는 이러한 상황에 대해서도 사전방지를 어떻게 할지 고민해보았다.
반응형'Infra > CloudSecurity' 카테고리의 다른 글
[AWS] flAWS Challenge - Level6 (0) 2023.07.18 [AWS] flAWS Challenge - Level5 (0) 2023.07.17 [AWS] flAWS Challenge - Level3 (0) 2023.07.16 [AWS] flAWS Challenge - Level2 (0) 2023.07.16 [AWS] flAWS Challenge - Level1 (0) 2023.07.16 댓글