AWS 침투 테스트 [칼리 리눅스로 배우는 AWS]
- 원서명Hands-On AWS Penetration Testing with Kali Linux: Set up a virtual lab and pentest major AWS services, including EC2, S3, Lambda, and CloudFormation (ISBN 9781789136722)
- 지은이칼 길버트(Karl Gilbert), 벤자민 카우딜(Benjamin Caudill)
- 옮긴이이진호, 이여름
- ISBN : 9791161754352
- 40,000원
- 2020년 07월 06일 펴냄
- 페이퍼백 | 576쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 해킹과 보안
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/aws-penetration-kali
요약
아마존에서 제공하는 다양한 클라우드 서비스를 대상으로 침투 테스트를 수행하는 방법을 중점적으로 다룬다. AWS 클라우드 환경의 침투 테스터와 시스템 관리자에게 도움을 줄 수 있도록 실습 위주로 구성했다. 클라우드 기반 실습 환경의 구성, 칼리 리눅스를 활용한 화이트 박스 테스팅 수행 방법부터 서버리스 인프라에서 자동화 배포 파이프라인까지 광범위한 AWS 서비스를 대상으로 하는 침투 테스트 방법을 다룬다. 이 책을 통해 AWS 클라우드 환경에서 발생할 수 있는 취약점을 식별하고 안전한 AWS 클라우드 환경을 구성할 수 있을 것이다.
이 책에서 다루는 내용
■ 자주 사용하며, 외부에 공개된 AWS 서비스 소개 및 침투 테스트 수행
■ 인프라에서 결함, 취약점, 허점 등을 자체 감사 수행하는 방법
■ 일부 권한만 획득한 AWS 계정을 통한 수평 및 상향 이동 절차
■ 일부 권한만 획득한 AWS 계정의 지속성 및 잠입 상태 유지
■ 실전 방식으로 침투 테스팅 숙달
■ 자동화 도구를 활용한 AWS 인프라 보안 상태의 지속적인 평가 및 개선
이 책의 대상 독자
클라우드 환경에 침투해 취약한 곳을 찾고 보완하는 데 흥미를 가진 보안 분석가나 침투 테스터에게 적합하다. 침투 테스팅과 보안에 관한 기본적인 이해가 필요하다.
이 책의 구성
1장, ‘AWS에 침투 환경 구성’에서는 AWS에서 칼리 머신과 동일한 네트워크에 취약한 리눅스 가상머신과 윈도우 가상머신 환경을 구성하는 것을 집중적으로 설명한다.
2장, ‘칼리 침투 테스트 머신을 클라우드에 구성’에서는 아마존 EC2 인스턴스를 생성해 칼리 리눅스 아마존 머신 이미지(AMI)를 설치하고, 해당 호스트로 원격 접근을 설정하는 다양한 방법을 집중적으로 살펴본다.
3장, ‘칼리 리눅스를 활용한 클라우드 공격’에서는 취약점 스캐닝, 메타스플로잇을 활용한 취약점 공격, 리버스 셸 획득과 기타 공격 기법을 설명한다. 이 환경은 초보 침투 테스터들이 클라우드 환경을 연습할 수 있는 상황을 시뮬레이션해준다.
4장, ‘첫 EC2 인스턴스 구성’에서는 EC2 인스턴스의 크기, 다양한 종류의 인스턴스와 활용 목적, AMI와 커스텀 AMI 생성, 여러 종류의 스토리지, 초당 입출력 수행의 개념(IOPS), 블록 스토리지, 보안 정책, 가상 사설 클라우드(VPC) 설정을 설명한다.
5장, ‘칼리 리눅스를 활용한 EC2 인스턴스 침투 테스트’에서는 EC2 인스턴스를 공격하는 방법을 집중적으로 살펴본다.
6장, ‘블록 스토리지와 스냅샷 - 삭제된 데이터 복구’에서는 AWS가 제공하는 여러 종류의 저장 옵션을 소개하고 3장의 내용을 확장한다.
7장, ‘정찰 - 취약한 S3 버킷 탐색’에서는 AWS S3 버킷의 개념과 사용 목적, 설치와 접근법을 살펴본다.
8장, ‘재미와 수익을 얻을 수 있는 공개된 S3 버킷 공격’에서는 취약한 S3 버킷을 공격해 웹 애플리케이션에 의해 로드된 자바스크립트 파일을 찾아내고, 이를 백도어로 활용해 영구적으로 사용자 계정을 탈취하는 과정을 설명한다.
9장, ‘AWS의 ID 액세스 관리’에서는 AWS의 다양한 계층의 서비스 접근 관리와 사용자 신원 관리에 사용되는, AWS의 가장 중요한 개념 중 하나를 집중적으로 설명한다.
10장, ‘탈취한 키, Boto3, Pacu를 활용한 AWS 계정의 권한 상승’에서는 AWS 환경에서 Boto3 파이썬 라이브러리와 Pacu framework, AWS 키를 사용해 수행할 수 있는 다양한 공격을 설명한다. 접근 유효성 열거, ID 정보, 전체 계정 정보, S3 버킷 및 EC2 인스턴스와 관련된 메타데이터를 추출하는 과정을 알아본다. 앞서 소개한 일부 과정을 자동화할 수 있는 방법도 다룬다. 마지막으로 사용자 및 그룹에 관해 관리자 역할을 변경하고 설정하는 방법도 설명한다.
11장, ‘Boto3와 Pacu를 사용해 AWS 지속성 유지하기’에서는 AWS 침투 테스트의 필수 요소인 권한 열거와 권한 상승을 설명한다.
12장, ‘AWS Lambda 보안 및 침투 테스팅’에서는 취약한 Lambda 애플리케이션 생성과 코드 샌드박스 내에서의 실행을 집중적으로 다룬다. 환경 구성이 완료된 이후, 연결된 응용 서비스 간의 피벗(pivot), Lambda 샌드박스 내에서의 코드 실행 획득하기, 단기간의 지속성 확보 등을 집중해 살펴본다. 현장감 있는 침투 테스트를 시뮬레이션하기 위해 실제로 동작하는 Lambda 애플리케이션의 공격 과정도 실었다.
13장, ‘AWS RDS 침투 테스팅과 보안’에서는 관계형 데이터베이스(RDS) 샘플 인스턴스를 구성하는 과정과 워드프레스 인스턴스의 안전하거나 안전하지 않은 연결 방법을 집중적으로 살펴본다.
14장, ‘기타 서비스 공략’에서는 상대적으로 흔치 않은 AWS API 공격을 설명한다. Route53, SES, CloudFormation, Key Management Service(KMS)에서 가능한 공격과 잘못된 설정을 살펴본다.
15장, ‘CloudTrail 침투 테스트’에서는 AWS 환경에서 가장 상세한 정보를 저장하고 있는 것 중 하나인 CloudTrail을 다룬다. 내부 운영과 관련된 다양한 AWS 서비스, 가상 머신, 사용자 그리고 기타 유용한 정보를 대량으로 저장하는 CloudTrail은 공격자에게는 보물 창고가 될 수 있다.
16장, ‘GuardDuty’에서는 AWS 전용 침입 탐지 시스템인 GuardDuty를 소개한다. GuardDuty의 경고 기능과 15장에서 소개한 CloudTrail을 사용하는 방식을 설명한다. 경고 기능과 모니터링 기능을 다룬 후, 공격자 입장에서 GuardDuty의 모니터링 기능을 우회하는 방법을 살펴본다.
17장, ‘Scout Suite를 활용한 AWS 보안 감사’에서는 AWS 환경 내에서 감사를 수행해 결과를 분석하고, 웹 브라우저에서 볼 수 있도록 보고해주는 자동화 도구인 Scout Suite를 소개한다. 또한 AWS 계정과 정책 변경도 살펴본다.
18장, ‘AWS 침투 테스트에 Pacu 사용하기’에서는 AWS 공격 프레임워크인 Pacu에 관해 앞서 설명한 개념까지 통합해 전체 기능을 알아본다.
19장, ‘종합 - 실전 AWS 침투 테스트’에서는 앞서 배운 다양한 개념을 활용해 권한 열거를 시작으로 권한 상승, 계정의 백도어, EC2 인스턴스 장악, 데이터 추출까지 실제 AWS 침투 테스트 과정을 살펴본다.
목차
목차
- 1부. AWS에서 칼리 리눅스 사용
- 1장. AWS에 침투 테스트 환경 구성
- 기술 요구 사항
- 취약한 우분투 인스턴스 구성
- 우분투 EC2 인스턴스 프로비저닝
- 우분투에 취약한 서비스 설치
- 취약한 윈도우 인스턴스 구성
- 취약한 윈도우 서버 인스턴스 프로비저닝
- 윈도우에 취약한 웹 애플리케이션 구성
- 실습 환경 내에서의 보안 그룹 설정
- 보안 그룹 설정
- 요약
- 추가 자료
- 2장. 클라우드에 칼리 침투 테스트 머신 구성
- 기술 요구 사항
- AWS EC2에서의 칼리 리눅스 구성
- 칼리 리눅스 AMI
- 칼리 리눅스 인스턴스 구성
- 원격 SSH 접근을 위한 OpenSSH 설정
- root와 사용자 패스워드 설정
- SSH에서 root 계정의 패스워드 인증 활성화
- 원격 접근을 위한 Guacamole 구성
- 보안 설정 강화와 필요 도구 설치
- SSH와 RDP 접속을 위한 Guacamole 설정
- 요약
- 테스트
- 추가 자료
- 3장. 칼리 리눅스를 활용한 클라우드 공격
- 기술 요구 사항
- Nessus 구성과 구동
- 칼리에 Nessus 설치
- Nessus 설정
- 첫 번째 Nessus 스캔 수행
- 취약한 리눅스 가상 머신 공격
- 리눅스의 Nessus 스캔 결과 분석
- 리눅스 공격
- 취약한 윈도우 가상머신 공격
- 윈도우 Nessus 스캔 결과 분석
- 윈도우 공격
- 요약
- 테스트
- 추가 자료
- 2부. AWS Elastic Compute Cloud 침투 테스팅, 설정, 보안
- 4장. 첫 EC2 인스턴스 구성
- 기술 요구 사항
- AWS EC2 우분투 구성
- 우분투 AMI
- VPC 설정 구성
- EC2 인스턴스와 사용할 수 있는 스토리지 타입
- 방화벽 설정 구성
- EC2 인스턴스 인증 구성
- 요약
- 추가 자료
- 5장. 칼리 리눅스를 활용한 EC2 인스턴스 침투
- 기술 요구 사항
- 윈도우에 취약한 서비스 설치
- 공격 목표 머신을 취약한 Jenkins 머신 뒷단에 구성
- 칼리 머신에 Nexpose 취약점 스캐너 설치
- Nmap을 활용한 스캐닝과 정찰
- Nmap을 활용한 열린 포트 식별 및 핑거프린팅
- Nexpose를 사용해 자동화된 취약점 분석 수행
- 메타스플로잇을 활용한 자동화 공격
- 미터프리터 셸을 활용한 권한 상승, 피벗팅, 지속성
- 요약
- 추가 자료
- 6장. 블록 스토리지와 스냅샷 - 삭제된 데이터 복구
- 기술 요구 사항
- EBS 볼륨 유형과 암호화
- EC2 인스턴스에 새로운 EBS 볼륨 생성, 연결, 분리
- EBS 볼륨에서 삭제된 데이터 복구
- EBS 볼륨의 전체 디스크 암호화
- 암호화된 볼륨 생성
- 암호화된 볼륨의 연결 및 마운트
- 암호화된 볼륨에서 데이터 복구
- 요약
- 추가 자료
- 기술 요구 사항
- 3부. AWS S3 침투 테스팅, 설정, 보안
- 7장. 정찰 - 취약한 S3 버킷 탐색
- 첫 S3 버킷 구성
- S3 권한과 접근 API
- 접근 제어 정책(ACP)/ 접근 제어 리스트(ACL)
- 버킷 정책
- IAM 계정 정책
- 접근 정책
- 취약한 S3 버킷 생성
- 요약
- 추가 자료
- 8장. 재미와 수익을 얻을 수 있는 공개된 S3 버킷 공격
- 노출된 S3 버킷에서 민감한 정보 추출
- S3 버킷에 악성 코드 삽입
- 지속적인 접근을 위한 S3 버킷 백도어
- 요약
- 추가 자료
- 4부. AWS의 ID 액세스 관리 구성과 보안
- 9장. AWS의 ID 액세스 관리
- IAM 사용자, 그룹, 역할과 관련 권한 생성
- IAM 정책으로 API 액션과 접근 가능한 자원 제한
- IAM 정책 구조
- IAM 정책 목적과 사용법
- IAM 액세스 키 사용
- AWS API 요청의 수동 서명
- 요약
- 10장. 탈취한 키, Boto3, Pacu를 활용한 AWS 계정의 권한 상승
- 권한 열거의 중요성
- 정찰 용도로 Boto3 라이브러리 사용
- 첫 Boto3 열거 스크립트
- 데이터 저장
- S3 열거 추가
- 모든 계정 정보 덤프
- 새로운 스크립트 - IAM 열거
- 데이터 저장하기(다시 한 번)
- 탈취한 AWS 키로 권한 열거
- 보유한 접근 권한 판단
- 현재 사용자에 적용된 정책 분석
- 다른 방법
- Pacu를 활용한 권한 상승과 계정 정보 수집
- Pacu - 오픈소스 AWS 공격 툴킷
- 칼리 리눅스 탐지 우회
- Pacu CLI
- 열거에서 권한 상승까지
- 획득한 관리자 권한 사용
- 요약
- 11장. Boto3와 Pacu를 사용해 AWS 지속성 유지하기
- 사용자 백도어 만들기
- 다수의 IAM 사용자 액세스 키
- Pacu로 작업하기
- 역할 신뢰 관계 백도어 만들기
- IAM 역할 신뢰 정책
- 적합한 목표 역할 찾기
- 백도어 액세스 추가하기
- 액세스 확인하기
- Pacu로 자동화하기
- EC2 보안 그룹 백도어 만들기
- Lambda 함수를 영구 감시기로 사용하기
- Lambda로 자격 증명 추출 자동화
- 백도어 배포에 Pacu 사용하기
- 다른 Lambda Pacu 모듈
- 요약
- 사용자 백도어 만들기
- 5부. 기타 AWS 서비스 침투 테스트
- 12장. AWS Lambda 보안 및 침투 테스팅
- 취약한 Lambda 함수 설정하기
- 읽기 액세스로 Lambda 함수 공격
- 읽기 및 쓰기 액세스로 Lambda 함수 공격하기
- 권한 상승
- 데이터 유출
- 지속성 유지하기
- 은밀하게 유지하기
- 가상 프라이빗 클라우드로 피벗
- 요약
- 13장. AWS RDS 침투 테스팅과 보안
- 기술 요구 사항
- 취약한 RDS 인스턴스 설정
- EC2에서 RDS 인스턴스를 워드프레스에 연결
- Nmap을 사용해 노출된 RDS 인스턴스 식별 및 나열하기
- 취약한 RDS 인스턴스 공격과 데이터 추출
- 요약
- 추가 자료
- 14장. 기타 서비스 공략
- Route 53
- 호스팅 영역
- 도메인
- 리졸브
- SES
- 피싱
- 기타 공격
- CloudFormation 공격하기
- 파라미터
- 출력값
- 종료 방지
- 삭제된 스택
- 내보내기
- 템플릿
- 역할 전달
- 추가 내용 - NoEcho 파라미터 값 발견하기
- ECR
- 요약
- Route 53
- 6부. AWS 로깅과 보안 서비스 공격하기
- 15장. CloudTrail 침투 테스트
- CloudTrail 상세 정보
- 설정, 모범 사례와 감사 수행
- 설정
- 감사 수행
- 정찰
- 로깅 우회
- 공격수와 수비수를 위한 CloudTrail 미지원 서비스
- 교차 계정 방법을 통한 로깅 우회
- Cloudtrail 기능 방해하기
- 로깅 끄기
- 추적/S3 버킷 삭제하기
- 추적 최소화하기
- 중단과 일부 솔루션 문제
- 요약
- 16장. GuardDuty
- GuardDuty 소개와 결과
- GuardDuty 결과 경보와 대응
- GuardDuty 우회하기
- 강제로 우회하기
- IP 화이트리스트로 모두 우회하기
- EC2 인스턴스 자격 증명 유출 경고 우회하기
- 운영체제 경보 우회하기
- 기타 간단한 우회
- 요약
- 7부. 실제 공격에서 AWS 침투 테스팅 도구 활용
- 17장. Scout Suite를 활용한 AWS 보안 감사
- 기술 요구 사항
- 취약한 AWS 인프라 설정하기
- 잘못 구성된 EC2 인스턴스
- 취약한 S3 인스턴스 생성
- Scout Suite 구성 및 실행
- 도구 설정
- Scout Suite 실행하기
- Scout Suite 스캔 결과 파싱하기
- Scout Suite의 규칙 사용
- 요약
- 18장. AWS 침투 테스트에 Pacu 사용하기
- Pacu의 역사
- Pacu 시작하기
- Pacu 명령
- list/ls
- search [ [cat] egory] <search term>
- help
- help <모듈 이름>
- whoami
- data
- services
- data <서비스>| proxy
- regions
- update_regions
- set_regions <리전>
- run/exec <모듈 이름>
- set_keys
- swap_keys
- import_keys <프로파일 이름>| - -all
- exit/quit/Ctrl + C
- aws <command>
- proxy <command>
- 새 모듈 만들기
- API
- 모듈 구조와 구현
- PacuProxy 소개
- 요약
- 19장. 종합 - 실전 AWS 침투 테스트
- 침투 테스트 시작
- 범위 정하기
- AWS 침투 테스팅 규칙 및 지침
- 자격 증명 및 AWS 침투테스팅 고객 기대 사항
- 비인증 정찰
- 인증받은 정찰 및 권한 열거
- 권한 상승
- 지속성
- 후속 공격
- EC2 공격하기
- Lambda의 코드 검토 및 분석
- RDS에서 인증 통과
- S3 인증 측면
- 규정 준수 및 모범 사례 감사하기
- 요약
- 침투 테스트 시작
도서 오류 신고
정오표
정오표
[p.36 : 첫 번째 명령]
git clone https://github/com/nikdubois/vsftpd-2.3.4-infected.git
->
git clone https://github.com/nikdubois/vsftpd-2.3.4-infected.git