AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
VPC & Networking
VPC가 무엇인지와 그 구성 요소에 대해 배우세요:
AWS - VPC & Networking Basic InformationEC2
Amazon EC2는 가상 서버를 시작하는 데 사용됩니다. 보안 및 네트워킹을 구성하고 스토리지를 관리할 수 있습니다. Amazon EC2의 유연성은 자원을 상하로 확장하여 다양한 요구 변화나 인기도 급증에 효과적으로 적응할 수 있는 능력에서 분명히 드러납니다. 이 기능은 정확한 트래픽 예측의 필요성을 줄여줍니다.
EC2에서 열거할 흥미로운 것들:
가상 머신
SSH 키
사용자 데이터
기존 EC2/AMI/스냅샷
네트워킹
네트워크
서브네트워크
공인 IP
열린 포트
AWS 외부의 다른 네트워크와의 통합 연결
Instance Profiles
역할을 사용하여 EC2 인스턴스에서 실행되는 애플리케이션에 권한을 부여하려면 약간의 추가 구성이 필요합니다. EC2 인스턴스에서 실행되는 애플리케이션은 가상화된 운영 체제에 의해 AWS로부터 추상화됩니다. 이 추가 분리로 인해 AWS 역할과 관련된 권한을 EC2 인스턴스에 할당하고 이를 애플리케이션에 사용할 수 있도록 하는 추가 단계가 필요합니다.
이 추가 단계는 인스턴스에 연결된 인스턴스 프로필의 생성입니다. 인스턴스 프로필은 역할을 포함하고 인스턴스에서 실행되는 애플리케이션에 역할의 임시 자격 증명을 제공할 수 있습니다. 그런 다음 애플리케이션의 API 호출에서 이러한 임시 자격 증명을 사용하여 리소스에 액세스하고 역할이 지정한 리소스에만 액세스를 제한할 수 있습니다. 한 번에 하나의 역할만 EC2 인스턴스에 할당될 수 있으며, 인스턴스의 모든 애플리케이션은 동일한 역할과 권한을 공유합니다.
Metadata Endpoint
AWS EC2 메타데이터는 런타임에 인스턴스에서 사용할 수 있는 Amazon Elastic Compute Cloud (EC2) 인스턴스에 대한 정보입니다. 이 메타데이터는 인스턴스 ID, 실행 중인 가용 영역, 인스턴스와 연결된 IAM 역할 및 인스턴스의 호스트 이름과 같은 인스턴스에 대한 정보를 제공하는 데 사용됩니다.
Enumeration
인증되지 않은 접근
AWS - EC2 Unauthenticated Enum권한 상승
다음 페이지에서 EC2 권한을 악용하여 권한을 상승시키는 방법을 확인할 수 있습니다:
AWS - EC2 Privesc사후 익스플로잇
AWS - EC2, EBS, SSM & VPC Post ExploitationEBS
Amazon EBS (Elastic Block Store) 스냅샷은 기본적으로 AWS EBS 볼륨의 정적 백업입니다. 즉, 특정 시점에 EC2 인스턴스에 연결된 디스크의 복사본입니다. EBS 스냅샷은 지역 및 계정 간에 복사하거나 다운로드하여 로컬에서 실행할 수 있습니다.
스냅샷에는 소스 코드나 API 키와 같은 민감한 정보가 포함될 수 있으므로, 기회가 있다면 확인하는 것이 좋습니다.
AMI & EBS 차이점
AMI는 EC2 인스턴스를 시작하는 데 사용되며, EC2 스냅샷은 EBS 볼륨에 저장된 데이터를 백업하고 복구하는 데 사용됩니다. EC2 스냅샷은 새로운 AMI를 생성하는 데 사용할 수 있지만, AMI와 동일하지 않으며 운영 체제, 애플리케이션 서버 또는 애플리케이션 실행에 필요한 기타 소프트웨어에 대한 정보를 포함하지 않습니다.
권한 상승
다음 페이지에서 EBS 권한을 악용하여 권한을 상승시키는 방법을 확인할 수 있습니다:
AWS - EBS PrivescSSM
**Amazon Simple Systems Manager (SSM)**은 EC2 인스턴스의 플로트를 원격으로 관리하여 관리 작업을 훨씬 쉽게 만듭니다. 각 인스턴스는 SSM 에이전트 서비스가 AWS API에서 작업을 받아 수행할 수 있도록 SSM 에이전트 서비스를 실행해야 합니다.
SSM 에이전트는 Systems Manager가 이러한 리소스를 업데이트, 관리 및 구성할 수 있도록 합니다. 에이전트는 AWS 클라우드의 Systems Manager 서비스에서 요청을 처리하고, 요청에 지정된 대로 실행합니다.
SSM 에이전트는 일부 AMI에 사전 설치되어 있거나 인스턴스에 수동으로 설치해야 합니다. 또한, 인스턴스 내에서 사용되는 IAM 역할에는 통신이 가능하도록 AmazonEC2RoleforSSM 정책이 첨부되어야 합니다.
열거
EC2 인스턴스에서 Systems Manager가 실행 중인지 확인하려면 다음을 실행하면 됩니다:
Privesc
다음 페이지에서 SSM 권한을 악용하여 권한을 상승시키는 방법을 확인할 수 있습니다:
AWS - SSM PrivescELB
Elastic Load Balancing (ELB)는 Amazon Web Services (AWS) 배포를 위한 로드 밸런싱 서비스입니다. ELB는 자동으로 들어오는 애플리케이션 트래픽을 분산시키고 트래픽 수요를 충족하기 위해 리소스를 확장합니다.
Enumeration
Launch Templates & Autoscaling Groups
Enumeration
Nitro
AWS Nitro는 AWS EC2 인스턴스의 기본 플랫폼을 구성하는 혁신적인 기술 모음입니다. Amazon이 보안, 성능 및 신뢰성을 향상시키기 위해 도입한 Nitro는 맞춤형 하드웨어 구성 요소와 경량 하이퍼바이저를 활용합니다. 전통적인 가상화 기능의 많은 부분을 전용 하드웨어와 소프트웨어로 추상화하여 공격 표면을 최소화하고 자원 효율성을 높입니다. 가상화 기능을 오프로드함으로써 Nitro는 EC2 인스턴스가 거의 베어메탈 성능을 제공할 수 있게 하여, 특히 자원 집약적인 애플리케이션에 유리합니다. 또한, Nitro Security Chip은 하드웨어와 펌웨어의 보안을 보장하여 견고한 아키텍처를 더욱 강화합니다.
자세한 정보와 나열 방법은 다음에서 확인할 수 있습니다:
AWS - Nitro EnumVPN
VPN은 온프레미스 네트워크(사이트 간 VPN) 또는 **작업자 노트북(Client VPN)**을 AWS VPC와 연결하여 인터넷에 노출하지 않고 서비스를 액세스할 수 있게 합니다.
기본 AWS VPN 구성 요소
Customer Gateway:
Customer Gateway는 VPN 연결의 사용자 측을 나타내기 위해 AWS에서 생성하는 리소스입니다.
이는 사이트 간 VPN 연결의 사용자 측에 있는 물리적 장치 또는 소프트웨어 애플리케이션입니다.
라우팅 정보와 네트워크 장치(예: 라우터 또는 방화벽)의 공용 IP 주소를 AWS에 제공하여 Customer Gateway를 생성합니다.
VPN 연결 설정의 기준점 역할을 하며 추가 비용이 발생하지 않습니다.
Virtual Private Gateway:
Virtual Private Gateway(VPG)는 사이트 간 VPN 연결의 Amazon 측 VPN 집중 장치입니다.
VPC에 연결되어 VPN 연결의 대상이 됩니다.
VPG는 VPN 연결의 AWS 측 엔드포인트입니다.
VPC와 온프레미스 네트워크 간의 안전한 통신을 처리합니다.
Site-to-Site VPN Connection:
사이트 간 VPN 연결은 온프레미스 네트워크를 VPC에 안전한 IPsec VPN 터널을 통해 연결합니다.
이 유형의 연결에는 Customer Gateway와 Virtual Private Gateway가 필요합니다.
데이터 센터 또는 네트워크와 AWS 환경 간의 안전하고 안정적이며 일관된 통신에 사용됩니다.
일반적으로 정기적이고 장기적인 연결에 사용되며, 연결을 통해 전송된 데이터 양에 따라 요금이 부과됩니다.
Client VPN Endpoint:
Client VPN 엔드포인트는 클라이언트 VPN 세션을 활성화하고 관리하기 위해 AWS에서 생성하는 리소스입니다.
개별 장치(예: 노트북, 스마트폰 등)가 AWS 리소스 또는 온프레미스 네트워크에 안전하게 연결할 수 있도록 사용됩니다.
사이트 간 VPN과 달리 전체 네트워크를 연결하는 것이 아니라 개별 클라이언트를 위한 것입니다.
Client VPN을 사용하면 각 클라이언트 장치가 VPN 클라이언트 소프트웨어를 사용하여 안전한 연결을 설정합니다.
AWS VPN의 이점과 구성 요소에 대한 자세한 정보는 여기에서 확인할 수 있습니다.
Enumeration
Local Enumeration
Local Temporary Credentials
AWS VPN Client를 사용하여 VPN에 연결할 때, 사용자는 보통 VPN에 접근하기 위해 AWS에 로그인합니다. 그런 다음, AWS 자격 증명이 생성되어 로컬에 저장되어 VPN 연결을 설정합니다. 이 자격 증명은 $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt
에 저장되며, AccessKey, SecretKey 및 Token을 포함합니다.
이 자격 증명은 arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials
사용자에게 속합니다 (이 자격 증명의 권한에 대해 더 연구 필요).
opvn config files
VPN 연결이 설정되었을 경우, 시스템에서 .opvn
구성 파일을 검색해야 합니다. 또한, 구성 파일을 찾을 수 있는 한 장소는 **$HOME/.config/AWSVPNClient/OpenVpnConfigs
**입니다.
Post Exploitaiton
AWS - VPN Post ExploitationReferences
Last updated