반응형

✔️ CVE - 등록

CVE-2021-4222

CVE-2021-25117

CVE-2022-0728

 

반응형
반응형

예전에 프로젝트를 하면서 파일 시그니처를 검색 했었는데, 아주 좋은 자료가 있어서 다시 올림.!

http://forensic-proof.com/archives/300

 

파일 시그니처 모음 (Common File Signatures) | FORENSIC-PROOF

 

forensic-proof.com

 

반응형

'500. etc...' 카테고리의 다른 글

E: Unable to locate package python3-pip Error  (0) 2022.02.25
Notion2Tistory  (0) 2022.02.02
반응형

#README

해당 문제는 IAM 사용자가 있으며, 5가지의 정책 버전이 있습니다. IAM 사용자는 Raynor이며, Goal는 제한된 IAM 사용자로서 전체 관리자 권한을 획득하는 것입니다.

  1. IAM 사용자 Raynor는 제한된 권한을 소유
  2. Raynor의 권한을 분석/확인 후 SetDefaultPolicyVersion 권확을 확인
  3. 특정 버전이 전체 관리자 권한을 제공
  4. 전체 관리자 정책 버전을 확인 후 Raynor 외의 임의의 계정 생성 후 관리자 권한으로 상승

#iam_privesc_by_rollback Install

Step1.) cloudgoat 폴더에 접근 후 iam_privesc_by_rollback을 생성합니다. 생성 시 2번 째 그림과 같이 “Apply Complet” 메시지가 출력 됩니다.

Step2.) AWS 홈페이지 접근 시 사용자 이름 탭에 raynor-iam_privesc_by_rollback-cgidboiejabggd가 생성된 것을 확인할 수 있습니다.

  • #./cloudgoat.py create iam_privesc_by_rollback

 

#raynor-user access_key / secret_key registration

Step3.) iam_privesc_by_rollback 폴더 접근 시 config들을 확인할 수 있으며 start.txt를 출력 시 “cloudgoat_output_policy_arn / cloudgoat_output_raynor_access_key_id / cloudgoat_output_raynor_secret_key / cloudgoat_output_username” AWS Key 값을 획득할 수 있었습니다.

  • #cat start.txt

 

Step4.) 위에서 획득한 Key 값을 이용하여 raynor 계정의 “access_key_id / secret_key” 값을 등록합니다.

  • #aws configure --profile raynor
    • AWS Access Key ID [None] : access-key
    • AWS Secret Access Key [None] : secret-key

#raynor get-user profile

Step5.) get-user 옵션을 사용하여 raynor 계정의 프로파일을 확인합니다. 프로파일 확인 시 UserName / UserID / Arn 정보를 확인할 수 있습니다. arn 정보를 보면 aws의 iam 정책을 사용 중이며 user 그룹 raynor를 확인할 수 있습니다.

  • #aws iam get-user --profile raynor

#list-attched-user-policies / list-policy-version

Step5.) list-attched-user-policies 옵션은 지정된 IAM 사용자의 연결된 관리형 정책을 나열합니다. 즉 raynor 사용자를 지정 후 해당 옵션을 사용 시 raynor 계정의 정책을 확인할 수 있으며, 정책이름, 정책arn을 확인할 수 있습니다.

policyarn을 보면 aws의 iam 그리고 policy는 cg-raynor-policy-iam_privesc_by_rollback_cgidboiejabggd인 것을 확인할 수 있으며, IAM은 정책 버전은 최대 5개까지 생성/지원 되는 것을 확인할 수 있습니다.

  • #aws iam list-attached-user-policies --user-name raynor-iam_privesc_by_rollback_cgidboiejabgged --profile raynor
  • #aws iam list-policy-version --policy-arn arn:aws:iam::035166743817:policy/cg-raynor-policy-iam_privesc_by_rollback_cgidboiejabggd --profile raynor

#v1 / v5 확인 / get-policy-version / set-default-policy-version

Step6.) 위에서 확인된 정책 버전 5개 중 한 항목 중 “v1”에 취약 결점이 발견 됐습니다. v1을 보면 iam:SetDefaultPolicyVersion이 모든 리소스에 대해 setting 작업이 허용되어 있는 것이 문제가될 수 있습니다.

  • #aws iam get-policy-version --policy-arn arn:aws:iam::035166743817:policy/cg-raynor-iam_privesc_by_rollback_cgid0hf1yen61z --version-id v1 --profile raynor
  • SetDefaultPolicyVersion 권한 정책 문제 발생? 첨언권한이 있는 IAM Access Credential은 현재 사용하지 않는 기존 정책 버전을 통해 권한을 승격할 수 있습니다.iam:SetDefaultPolicyVersion 설정이 어떻게 보안 문제로 이어져있는지 확인하기 위해 다른 버전의 고객 관리 정책이 있는지 확인을 해야 합니다.
  • 액세스 권한이 있는 정책에 기본값이 아닌 버전이 있는 경우 기본 버전을 다른 기존 버전으로 변경할 수가 있습니다.
  • SetDefualtPolicyVersion 은 지정된 정책의 지정된 버전을 정책의 default 버전으로 설정합니다. 해당 작업은 정책이 연결된 모든 사용자 그룹, 역할에 영향을 줍니다.

 

Step7.) 위에서 확인된 정책 버전 5개 중 한 항목씩 확인해본 결과 “v5”가 취약한 것으로 확인됩니다. 근거로 AWS 정책을 살펴 보겠습니다

  • #aws iam get-policy-version --policy-arn arn:aws:iam::035166743817:policy/cg-raynor-iam_privesc_by_rollback_cgid0hf1yen61z --version-id v1 --profile raynor
  • IAM JSON 정책 Action - 특정 작업의 허용 또는 거부 여부의 값을 지정합니다.
    • 현재 v5는 특정 작업에 대해 모든 것을 허용하고 있습니다.
  • IAM JSON 정책 Effect - 필수 요소로서 허용 또는 거부(explicit deny) 중 하나를 지정합니다. Effect 유효값은 Allow 및 Deny입니다.
    • 현재 v5는 모든 Effect에 대해 허용하고 있습니다.
  • IAM JSON 정책 Resource - Resource 요소는 명령문에서 처리할 일련의 오브젝트를 지정합니다. 명령문에는 Resource 또는 NotResource 요소가 포함되어야 합니다. ARN을 사용하여 리소스를 식별합니다.
    • 현재 v5는 모든 Resource에 대해 허용하고 있습니다.

#set-default-policy-version / create-user

Step8.) raynor 계정에서 모든 정책을 허용하고 있는 v5 정책을 사용하기 위해 “set-default-policy-version” 해당 옵션을 사용합니다.

  • #aws iam set-default-policy-version --policy-arn arn:aws:iam::035166743817:policy/cg-raynor-policy-iam_privesc_by_rollback_cgidohf1yen61z --version-id v5 --profile raynor

 

Step9.) 위에서 정책 버전 v5가 지정된 상태이며, 임의의 계정 tester를 생성을 시도합니다.

  • #aws iam create-user --user-name tester --profile raynor

 

Step10.) “Step9”에서 계정 생성 시 AWS 페이지에서 확인 결과 “tester”라는 계정이 생성된 것을 확인할 수 있습니다.


#PACU - 부록

Pacu는 클라우드 환경에 대한 보안 테스트를 위한 오픈 소스 AWS 익스플로잇 프레임워크입니다. Rhino Security Labs에서 제작 및 관리합니다. Pacu는 AWS 계정 내의 구성 결함을 악용할 수 있으며 모듈을 사용하여 기능을 쉽게 확장할 수 있습니다. 현재 모듈은 사용자 권한 상승, IAM 사용자 백도어링, 취약한 Lambda 함수 공격 등 다양한 기능을 포함하고 있습니다.


#Pacu-Setting

Step11.) Pacu를 설치 후 실행 시 세션을 선택합니다. Pacu 최초 설치 시 등록된 세션이 없으니, 새로운 세션을 생성합니다.

  • [0] New session 선택

 

Step11.) Pacu help 명령어 확인 시 “set-keys”라는 옵션을 사용합니다.

 

Step12.) “set-keys” 옵션을 입력 시 AWS 이용자와 access-key, secret-key를 입력합니다.

  • key alias - “step9”에서 생성한 tester 입력
  • access-key - raynor의 access-key 입력
  • sceret-key - raynor의 secret-key 입력

 

Step13.) “iam__enum_permissions”을 사용하여 tester에 대한 권한 목록을 수집 후 “iam__privesc_scan” 권한 상승 action을 탐색 했으나, 이미 관리자 권한을 가지고 있는 정책을 사용 중

  • #run iam__enum_permissions
  • #run iam__privesc_scan
  • pacu - iam__enum_permissions 옵션
    • 해당 옵션은 IAM API를 사용하여 현재 사용자에 대한 확인된 IAM 권한 목록을 가져오며, 사용자들이 속한 그룹에 대한 인라인 정책을 확인하는 기능
  • pacu - iam__privesc_scan 옵션
    • IAM 권한 상승 경로 찾는 옵션으로 권한 상승이 가능한 위치를 파악하여 취약한 권한 구성을 검색 후 사용자에게 표시되고 선택한 경우 실행합니다.
      • Waring - IAM 정책의 구현으로 인해 이 모듈은 "NotActions"를 구문 분석하는 데 부족한 점이 있으며, 사용자 관련 NotAction이 있는 경우 해당 옵션 결과를 수동으로 확인하는 것을 추천합니다, 또한, NotAction은 "!"로 표시됩니다. "whoami" 명령의 결과를 볼 때 작업을 선행합니다. NotAction에 대한 문서는 다음과 같습니다. - read here(IAM JSON 정책 요소: NotAction)


※ 참고 문헌

IAM JSON 정책 요소: Action

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_elements_action.html

IAM JSON 정책 요소: Effect

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_elements_effect.html

IAM JSON 정책 요소: Resource

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_elements_resource.html

IAM 정책 요소: create-user

https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html

해당 문제 참고 자료

https://dnsdudrla97.github.io/cloud-service-vuln-2/

PACU - download

https://github.com/RhinoSecurityLabs/pacu

PACU - options

https://github.com/RhinoSecurityLabs/pacu/wiki/Module-Details

반응형

'Cloud > Cloud-Goat' 카테고리의 다른 글

Cloud-Goat-Install  (0) 2022.03.01

+ Recent posts