☁️ Smogcloud
알지 못했던 노출된 AWS 클라우드 자산을 찾아보세요. 포괄적인 자산 인벤토리는 모든 보안 프로그램의 첫 번째 단계입니다. 우리는 보안 엔지니어, 침투 테스터, AWS 관리자가 동적이고 일시적인 인터넷 접속 자산을 더 자주 모니터링할 수 있도록 smogcloud를 만들었습니다. 다음을 식별하는 데 유용할 수 있습니다:
- 하나 또는 수백 개의 AWS 계정에 걸친 인터넷 접속 FQDN 및 IP
- 잘못된 구성 또는 취약점
- 더 이상 사용되지 않는 자산
- 현재 모니터링되지 않는 서비스
- 섀도우 IT
🛠 시작하기
-
golang 설치 및 설정
-
다음 명령을 사용하여 smogcloud 설치
go get -u github.com/BishopFox/smogcloud
-
쿼리하려는 계정에 대한 AWS 환경 변수를 설정합니다. 읽기 전용 Security Auditor 역할을 사용하는 것이 좋습니다. 다음 명령으로 환경 변수를 설정할 수 있습니다:
export AWS_ACCOUNT_ID='' # Describe account
export AWS_ACCESS_KEY_ID='' # Access key for aws account
export AWS_SECRET_ACCESS_KEY='' # Secret key for aws account
-
애플리케이션 실행
또는
🕵️ 현재 서비스
인터넷 노출을 추출하기 위해 지원되는 서비스:
* API Gateway
* CloudFront
* EC2
* Elastic Kubernetes Service
* Elastic Beanstalk
* Elastic Search
* Elastic Load Balancing
* IoT
* Lightsail
* MediaStore
* Relational Database Service
* Redshift
* Route53
* S3
🔎 AWS 패턴
RESTful AWS 엔드포인트에 대한 Open API 문서를 연구한 결과, AWS 계정에서 발견할 수 있는 노출 URI 패턴을 확인했습니다. 이러한 기본 서비스와 상호 작용하여 취약점 및 기타 잘못된 구성을 테스트하는 방법을 이해하는 것이 중요합니다. 보안 엔지니어는 Cloudtrail 로그를 모니터링하거나 이러한 서비스에 대한 요청에 대한 DNS 모니터링을 구축할 수 있습니다.
- s3
- https://{user_provided}.s3.amazonaws.com
- cloudfront
- https://{random_id}.cloudfront.net
- ec2
- ec2-{ip-seperated}.compute-1.amazonaws.com
- es
- https://{user_provided}-{random_id}.{region}.es.amazonaws.com
- elb
- http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80
- https://{user_provided}-{random_id}.{region}.elb.amazonaws.com:443
- elbv2
- https://{user_provided}-{random_id}.{region}.elb.amazonaws.com
- rds
- mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306
- postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432
- route53
- execute-api
- https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}
- cloudsearch
- transfer
- sftp://s-{random_id}.server.transfer.{region}.amazonaws.com
- iot
- mqtt://{random_id}.iot.{region}.amazonaws.com:8883
- https://{random_id}.iot.{region}.amazonaws.com:8443
- https://{random_id}.iot.{region}.amazonaws.com:443
- mq
- kafka
- b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com
- {user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com
- cloud9
- https://{random_id}.vfs.cloud9.{region}.amazonaws.com
- mediastore
- https://{random_id}.data.mediastore.{region}.amazonaws.com.
- kinesisvideo
- https://{random_id}.kinesisvideo.{region}.amazonaws.com
- mediaconvert
- https://{random_id}.mediaconvert.{region}.amazonaws.com
- mediapackage
- https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel
📌 참조
👨💻 저자
✨ 기여
도구를 최대한 유지 관리하기 위해 노력하지만, 항상 원하는 만큼 최신 상태로 유지할 수는 없습니다. 따라서 코드 기여, 기능 요청 및 버그 보고는 항상 감사히 받습니다.
📣 감사의 말
영감을 주셔서 감사합니다
📄 라이선스
Smogcloud는 GPLv3에 따라 라이선스가 부여되며, 일부 하위 구성 요소는 별도의 라이선스를 가집니다.