chon

[ CloudGoat ] Pacu 본문

AWS/CloudGoat

[ CloudGoat ] Pacu

chon29 2026. 3. 9. 15:11

Pacu AWS 환경에서 취약점을 찾고, 권한을 상승시키고, 데이터를 탈취하는 모든 과정을 자동화해주는 오픈소스 침투 테스트 프레임워크다.

침투 테스터가 AWS 계정의 구성 취약점을 악용할 수 있도록 지원하며, 모듈을 사용하여 기능을 쉽게 확장할 수 있다. 현재 제공되는 모듈은 사용자 권한 상승, IAM 사용자 백도어 설치, 취약한 Lambda 함수 공격 등 다양한 공격을 가능하게 한다.


Github 링크

 

GitHub - RhinoSecurityLabs/pacu: The AWS exploitation framework, designed for testing the security of Amazon Web Services enviro

The AWS exploitation framework, designed for testing the security of Amazon Web Services environments. - RhinoSecurityLabs/pacu

github.com

설치 및 기본 사용 가이드는 Github에서 확인할 수 있다.


Pacu의 주요 기능

1. 정찰 (Reconnaissance)

정찰 단계는 모든 후속 공격 활동의 기반을 구축한다. Pacu의 열거 모듈은 최적화된 API 사용을 통해 탐지 위험을 최소화하면서 AWS 환경에 대한 포괄적인 가시성을 제공한다.

  • iam __enum_permissions : 자격 증명에 연결된 정책을 분석하여 실제 실행 가능한 API 액션 권한을 도출한다.
  • iam __ bruteforce_permissions : 정책 문서에 명시되지 않았으나 실제 호출 가능한 API 권한을 전수 조사하여 숨겨진 권한을 파악한다.
  • ec2__enum / s3__enum : VPC 네트워크 구조, 보안 그룹 설정 및 S3 버킷의 접근 통제 정책을 스캔하여 인프라 맵을 구축한다.
  • aws__enum_account: 조직 단위(OU) 정보 및 계정 세부 설정을 확인하여 공격 범위를 결정한다.

권한 상승 (Privilege Escalation)

현재 보유한 제한적인 권한을 악용하여 상위 권한(Administrator)을 획득하는 단계

iam__privesc_scan 모듈은 IAM 정책의 구성 오류를 찾아내어 이를 공격 경로로 활용한다.

  • 권한 상속 기법: 특정 역할(Role)을 신뢰 관계가 설정된 EC2 인스턴스에 할당한 뒤, 메타데이터 서비스를 통해 해당 역할을 탈취하는 메커니즘을 사용한다.
  • 정책 버전 조작: 새 정책 버전을 생성하거나 기존 인라인 정책을 수정하여 공격자에게 더 높은 수준의 권한을 부여하는 방식을 자동화한다.

3. 데이터 탈취 (Exfiltration)

식별된 민감 정보를 외부 인프라로 이동시키는 단계

Pacu는 탐지를 피하기 위해 필요한 데이터만 선별적으로 추출하는 기능을 제공합니다.

  • 객체 필터링 유출: s3__download_bucket 모듈을 통해 버킷 내 중요 키워드가 포함된 객체만 선별하여 전송한다.
  • lambda__download_source: 모든 Lambda 함수의 소스 코드를 로컬로 다운로드하여 내부 로직 및 하드코딩된 기밀 정보를 분석한다.
  • ec2__download_userdata: EC2 인스턴스 생성 시 입력된 사용자 데이터를 확인하여 스크립트 내 평문 비밀번호나 설정값을 탈취한다.
  • 구성 정보 평문 추출: Secrets Manager 및 Parameter Store를 전수 조사하여 암호화되지 않은 자격 증명과 환경 변수를 수집한다.
  • 스냅샷 외부 공유: EBS 또는 RDS의 스냅샷을 생성한 후, 이를 공격자가 통제하는 외부 AWS 계정으로 공유하여 데이터를 원격으로 복제한다.

4. 탐지 회피 및 지속성 유지

공격 성공 후 보안 관제 시스템(SIEM/IDS)의 추적을 따돌리고 재진입 경로를 확보하는 최종 단계

  • 로깅 무력화: cloudtrail__stop_logging 을 통해 활동 기록 생성을 중단하거나, 로그 보존 설정을 변경하여 침해 사고 분석을 방해합니다.
  • 탐지 예외 설정: GuardDuty 등의 보안 서비스에 특정 IP를 화이트리스트로 등록하여 비정상 행위 탐지 알람을 차단합니다.
  • 백도어 구축: 기존 IAM 사용자 계정에 별도의 Access Key를 추가 생성하거나 신뢰 관계를 조작하여, 원래의 자격 증명이 삭제되더라도 접근 권한을 유지하도록 설계합니다.

 


Pacu 기본 사용법

Pacu는 독자적인 터미널 환경을 가지고 있다. 실행하면 pacu > 라는 프롬프트가 뜬다.

① 세션 생성 및 키 등록

Pacu는 '세션' 단위로 정보를 저장한다. 프로젝트별로 관리하기 편하다.

# 세션 생성
set_session [세션명]

# 공격할 대상의 Access Key 등록
set_keys

② 모듈 탐색 및 선택

Pacu는 '모듈'이라는 단위로 기능을 실행한다.

# 사용 가능한 모든 모듈 리스트 보기
list

# 특정 키워드로 모듈 검색
search [키워드]

#예시 
search sns

③ 모듈 실행

모듈을 실행할 때는 run [모듈명]을 사용한다.

run [모듈명]

# 현재 내 유저가 가진 권한을 분석
run iam__enum_permissions

④ 수집된 데이터 확인

Pacu가 수집한 정보는 따로 명령어를 치지 않아도 내부 DB에 저장된다.

# 지금까지 찾은 모든 리소스 요약 보기
data

# 특정 서비스의 데이터 상세 보기
data [서비스명]