Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sadcloud — 의도적으로 취약한 클라우드 인프라를 구축(및 해체!)하기 위한 도구 | Kitploit
도구/GitHubGitHub/nccgroup/sadcloud
Cloud Infrastructure SecurityPenetration TestingCloud SecurityMisconfigurationLearning & EducationLabs & Practice
GitHubnccgroup/sadcloud

sadcloud

의도적으로 취약한 클라우드 인프라를 구축(및 해체!)하기 위한 도구

저장소 보기
7841132년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Sadcloud

sadcloud은 취약한 AWS 인프라를 Terraform으로 구축하기 위한 도구입니다.

약 84가지의 잘못된 구성을 22개의 AWS 서비스에 걸쳐 지원합니다. 초기 잘못된 구성 세트는 NCCGroup의 멀티클라우드 감사 도구인 ScoutSuite에서 가져왔습니다.

sadcloud은 보안 연구자들이 교육 목적으로 AWS를 쉽게 잘못 구성하거나, 내장 및 타사 도구를 포함한 AWS 보안 도구를 평가하는 데 사용할 수 있도록 만들어졌습니다.

보안 주의사항 - 필독

이 도구는 의도적으로 취약하게 구성된 AWS 리소스를 구동합니다. 프로덕션 클라우드나 보안이 유지되어야 하는 환경에서는 실행하지 마십시오. 이 도구를 실행할 새 AWS 계정을 만드는 것을 고려하세요. 이 도구는 클라우드 리소스를 구동하므로 AWS 계정에 비용이 청구됩니다. 비용을 최소화하기 위해 노력했지만, NCC Group 및 이 도구의 관리자는 이 도구 사용으로 인해 발생할 수 있는 요금이나 보안 문제에 대해 책임을 지지 않습니다. 사용하지 않을 때는 모든 Terraform 리소스를 반드시 삭제하세요!

비용

sadcloud의 24시간 테스트 실행으로 약 $10의 청구서가 발생했습니다. 비용의 대부분은 Redshift 모듈(시간당 25c = 하루 $6)과 EKS 모듈(시간당 10c = 하루 $2.40)에서 발생합니다.

sadcloud를 사용한 샘플 감사

우리는 주기적으로 sadcloud를 사용하여 다양한 AWS 및 Terraform 감사 도구를 시연합니다. 모든 감사는 가능한 모든 잘못된 구성의 전체 코퍼스를 대상으로 수행됩니다.

설정

필요한 소프트웨어: Terraform

SSH 키가 data/ssh_keys/terraform_rsa{,.pub}에 저장되어 있는지 확인하세요.

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f data/ssh_keys/terraform_rsa
  1. git clone https://github.com/nccgroup/sadcloud.git
  2. cd sadcloud/sadcloud

환경 설정

AWS 프로바이더를 설정하세요 (이 단계를 건너뛰는 방법은 아래의 "환경 변수 대신 프로바이더 사용" 섹션을 참조하세요):

root@kitploit:~
export AWS_ACCESS_KEY_ID="accesskey"
export AWS_SECRET_ACCESS_KEY="secretkey"
export AWS_DEFAULT_REGION="us-east-1"

Terraform을 준비하세요:

root@kitploit:~
terraform init

sadcloud 구성

원하는 잘못된 구성으로 sadcloud를 구성하세요:

  • 모든 탐지 항목 활성화 (... 다른 탐지 항목과 충돌하는 항목 제외):

    1. sadcloud/main.tf에서 모든 모듈의 주석을 해제하세요.
    2. sadcloud/terraform.tfvars의 all_findings 플래그를 true로 편집하거나, --var="all_findings=true" 플래그와 함께 terraform apply를 호출하세요.
  • 하나 이상의 서비스에서 모든 탐지 항목 활성화:

    1. sadcloud/main.tf에서 관련 서비스의 주석을 해제하세요.
    2. 단일 서비스의 경우, sadcloud/terraform.tfvars의 관련 all_{service}_findings 플래그를 true로 편집하거나, --var="all_{service}_findings=true" 플래그와 함께 terraform apply를 호출하세요.
    3. 여러 서비스의 경우, sadcloud/terraform.tfvars의 플래그를 로 편집하거나, 플래그와 함께 를 호출하세요.

참고: sadcloud의 모든 잘못된 구성은 기본적으로 비활성화되어 있습니다. 불필요한 리소스가 생성되는 것을 방지하기 위해 모든 서비스도 기본적으로 비활성화되어 있습니다. 잘못된 구성에 대한 변수를 true로 설정하면 항상 잘못된 구성이 생성됩니다. all_findings 실행은 10-15분이 소요될 수 있습니다.

확인:

root@kitploit:~
terraform plan

배포:

root@kitploit:~
terraform apply

해체:

root@kitploit:~
terraform destroy

참고: terraform apply는 AWS에서 서비스를 구동합니다. 이는 비용이 발생합니다. 작업이 끝난 후 terraform destroy를 실행하는 것을 잊지 마세요. all_findings를 실행하기 전에 terraform plan을 실행하여 어떤 리소스가 생성될지 반드시 확인하세요!

추가 사항

환경 변수 대신 프로바이더 사용

매번 환경 변수를 설정하지 않아도 되도록 AWS 프로바이더를 설정할 수 있습니다.

sadcloud/providers.tf라는 파일을 만들고 다음 내용을 입력하세요:

root@kitploit:~
provider "aws" {
  access_key = "YOUR_AWS_ACCESS_KEY"
  secret_key = "YOUR_AWS_SECRET_KEY"
  region     = "us-east-1"
}
도구 다운로드
도구샘플 보고서
ScoutSuitehttps://ramimac.github.io/sadcloud-reports/scoutsuite-reports/scoutsuite-report_03_2020/aws.html
prowlerhttps://ramimac.github.io/sadcloud-reports/prowler-report/report.html
cloudmapperhttps://ramimac.github.io/sadcloud-reports/cloudmapper-reports/web_03_2020/account-data/report.html
cloudsploithttps://ramimac.github.io/sadcloud-reports/cloudsploit-scans-reports/scans.04_2020.txt
tfsechttps://ramimac.github.io/sadcloud-reports/tfsec/tfsec.03_27_2020.txt
all_findings
true
--var="all_findings=true"
terraform apply
참고: 현재 Cloudformation 서비스에 Terraform 버그가 있습니다. Cloudformation 탐지 항목을 생성하려면 Terraform apply를 두 번 실행해야 합니다.
  • 특정 탐지 항목을 세부적으로 활성화:

    1. sadcloud/main.tf에서 관련 서비스의 주석을 해제하세요.
    2. sadcloud/main.tf에서 관심 있는 변수를 직접 편집하여 원하는 곳에서 true로 설정하세요.
    3. VPC가 필요한 서비스의 경우 sadcloud/main.tf에서 needs_network를 true로 설정했는지 확인하세요.