도움을 받을 수 있는 곳 : Rhino Security Labs Discord 또는 Stack Overflow
문제 접수처 : https://github.com/RhinoSecurityLabs/pacu/issues
관리사 : Rhino Security Labs
Pacu는 클라우드 환경에 대한 공격적인 보안 테스트를 위해 설계된 오픈 소스 AWS 활용 프레임워크입니다. Rhino Security Labs에서 만들고 유지 관리하는 Pacu를 사용하면 침투 테스터가 모듈을 사용하여 기능을 쉽게 확장하여 AWS 계정 내의 구성 결함을 이용할 수 있습니다. 현재 모듈은 사용자 권한 상승, IAM 사용자 백도어, 취약한 Lambda 기능 공격 등을 포함한 다양한 공격을 가능하게 합니다.
Pacu는 소수의 Python 라이브러리를 설치하는 데 Python3.7+ 및 pip3만 필요하므로 상당히 가벼운 프로그램입니다.
> pip3 install -U pip > pip3 install -U pacu > pacu
보다 자세하고 사용자 친화적인 사용자 지침 세트를 보려면 Wiki의 설치 가이드를 확인하세요.
$ docker run -it rhinosecuritylabs/pacu:latest
$ docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
경고: 이 명령을 실행하면 Docker 컨테이너가 시작될 때 로컬 AWS 구성 파일이 Docker 컨테이너에 탑재됩니다. 이는 컨테이너에 액세스할 수 있는 모든 사용자가 호스트 컴퓨터의 AWS 자격 증명에 액세스할 수 있음을 의미합니다.
$ docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
Pacu가 처음 시작되면 새 세션을 시작하고 이름을 지정하라는 메시지가 표시됩니다. 이 세션은 AWS 키 쌍은 물론 다양한 모듈을 실행하여 얻은 데이터를 저장하는 데 사용됩니다. Pacu에서는 각각 고유한 AWS 키 및 데이터 세트가 포함된 다양한 세션을 보유할 수 있으며 언제든지 세션을 재개할 수 있습니다(단, 현재 세션 간 전환을 위해서는 다시 시작해야 함).
모듈에는 AWS 환경에 대한 최소한의 액세스 권한을 부여하는 AWS 키가 필요하며 액세스 키 ID와 보안 액세스 키로 구성됩니다. 세션 키를 설정하려면 set_keys
명령을 사용한 다음 프롬프트에 따라 키 별칭(참조용 별명), AWS 액세스 키 ID, AWS 보안 액세스 키 및 AWS 세션 토큰(사용하는 경우)을 제공합니다. ).
문제가 발생하면 help
사용 가능한 명령 목록을 불러올 수 있습니다.
list
현재 세션에서 설정된 지역에 사용 가능한 모듈이 나열됩니다.
help module_name
지정된 모듈에 적용 가능한 도움말 정보를 반환합니다.
run module_name
기본 매개변수를 사용하여 지정된 모듈을 실행합니다.
run module_name --regions eu-west-1,us-west-1
eu-west-1 및 us-west-1 지역(--regions 인수를 지원하는 모듈의 경우)에 대해 지정된 모듈을 실행합니다.
pacu --help
도움말 메뉴를 표시합니다.
pacu --session
세션이 필요한 명령에 사용할 세션을 설정합니다.
pacu --list-modules
사용 가능한 모든 모듈을 나열합니다(세션이 필요하지 않음)
pacu --pacu-help
pacu 도움말 창을 나열합니다(세션이 필요하지 않음).
pacu --module-name
작업을 수행할 모듈의 이름, 해당 모듈을 실행하거나 정보를 얻을 수 있습니다.
pacu --exec
--module-name
에 제공된 모듈을 실행합니다.
pacu --module-info
--module-name
에 제공된 모듈에 대한 정보를 얻습니다.
pacu --data
로컬 SQLAlchemy 데이터베이스를 쿼리하여 열거된 정보를 검색합니다.
pacu --module-args="
실행 중인 모듈에 선택적 모듈 인수를 제공합니다.
pacu --set-regions
세션에서 사용할 영역을 설정하거나, 영역을 공백으로 구분하거나, 모든 영역에 대해 all
입력합니다.
pacu --whoami
현재 사용자에 대한 정보를 얻습니다.
Pacu는 다양한 플러그인 모듈을 사용하여 AWS 환경 내에서 열거, 권한 상승, 데이터 유출, 서비스 악용 및 로그 조작 시 공격자를 지원합니다. 새로운 모듈에 대한 기여나 아이디어를 환영합니다.
진행 중인 AWS 제품 개발에 보조를 맞추기 위해 처음부터 확장성을 염두에 두고 Pacu를 설계했습니다. 공통 구문과 데이터 구조 덕분에 모듈을 쉽게 구축하고 확장할 수 있습니다. AWS 지역을 지정하거나 모듈 간에 중복 권한 확인을 할 필요가 없습니다. 로컬 SQLite 데이터베이스는 검색된 데이터를 관리 및 조작하여 API 호출(및 관련 로그)을 최소화하는 데 사용됩니다. 보고 및 공격 감사도 프레임워크에 내장되어 있습니다. Pacu는 명령 로깅 및 내보내기를 통해 문서화 프로세스를 지원하여 테스트 프로세스를 위한 타임라인을 구축하는 데 도움을 줍니다.
우리는 Pacu 프레임워크 자체의 버그 보고서는 물론 다양한 모듈에 대한 테스트 및 피드백, 그리고 일반적으로 프레임워크를 개선하는 데 도움이 되는 중요한 피드백을 받는 것을 기쁘게 생각합니다. 사용, 테스트, 개선을 통해 또는 단순히 소문을 퍼뜨려 Pacu에 대한 지원을 보내주시면 매우 감사하겠습니다.
Pacu 프레임워크 자체에 직접 기여하는 데 관심이 있다면 코드 규칙 및 git-flow 노트에 대한 기여 지침을 읽어보세요.
Pacu용 모듈을 직접 작성하는 데 관심이 있다면 모듈 개발 위키 페이지를 확인하세요. 새로운 기능을 개발하고 계시다면 저희에게 연락해주세요. Pacu와 함께 제공되는 핵심 컬렉션에 새로운 모듈을 추가하고 싶습니다.
인터페이스 형식 개선
데이터베이스 앞으로 마이그레이션 및 버전 추적
복잡한 모듈 실행 체인을 더 쉽게 사용할 수 있는 "공격 플레이북"
컬러 콘솔 출력
모듈 Dry-Run 기능
독립형 구성 파일 사용 허용
플러그인 아키텍처 개선
Pacu는 OSX 및 Linux에서 공식적으로 지원됩니다.
Pacu는 오픈 소스 소프트웨어이며 BSD-3 조항 라이선스와 함께 배포됩니다.
Pacu의 취약점을 이메일( [email protected] )을 통해 직접 보고해 주세요.
Pacu는 각 세션의 폴더 내에 오류 로그를 생성할 뿐만 아니라 기본 디렉터리에 생성되는 세션 외 오류에 대한 전역 오류 로그도 생성합니다. 가능하다면 버그 보고서에 이러한 로그를 포함시켜 주십시오. 이렇게 하면 디버깅 프로세스가 크게 단순화됩니다.
보고할 기능 요청, 아이디어 또는 버그가 있는 경우 여기에 제출해 주세요.
추적 및 재현 단계를 포함하여 발견한 버그를 재현하기에 충분한 설명을 포함하고 새 버그 보고서를 제출하기 전에 버그에 대한 다른 보고서를 확인하세요. 중복된 내용을 제출하지 마세요.
연습 및 전체 문서를 보려면 Pacu 위키를 방문하세요.
이유가 무엇이든 우리는 여러분의 의견을 듣고 싶습니다. Rhino Security Labs Discord에 문의하세요.
우리가 아는 한 Pacu의 기능은 AWS 이용 제한 정책을 준수하지만, 유연한 모듈식 도구로서 이것이 모든 상황에서 적용된다고 보장할 수는 없습니다. Pacu를 사용하는 방식이 AWS 이용 제한 정책을 준수하는지 확인하는 것은 전적으로 귀하의 책임입니다.
사용하는 AWS 서비스와 계획된 테스트에 수반되는 내용에 따라 실제로 인프라에 대해 Pacu를 실행하기 전에 침투 테스트에 대한 AWS 고객 지원 정책을 검토해야 할 수도 있습니다.
모든 침투 테스트 도구와 마찬가지로, 환경 외부에서 Pacu를 사용하기 전에 적절한 승인을 받는 것은 귀하의 책임입니다.
Pacu는 어떠한 보증도 제공하지 않는 소프트웨어입니다. Pacu를 사용함으로써 발생하는 모든 결과에 대해 귀하는 전적인 책임을 집니다.