AWS - EC2 Privesc
EC2
Kwa habari zaidi kuhusu EC2 angalia:
pageAWS - EC2, EBS, ELB, SSM, VPC & VPN Enumiam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Mshambuliaji anaweza kuunda kipengee na kufunga jukumu la IAM kisha kupata kipengee ili kuiba siri za jukumu la IAM kutoka kwa mwisho wa metadata.
Upatikanaji kupitia SSH
Anzisha kipengee kipya ukitumia ufunguo wa ssh uliozalishwa (--key-name
) kisha ingia ndani yake kupitia ssh (ikiwa unataka kuunda mpya unaweza kuhitaji idhini ya ec2:CreateKeyPair
).
Upatikanaji kupitia rev shell katika data ya mtumiaji
Unaweza kuendesha kifaa kipya kutumia data ya mtumiaji (--user-data
) ambayo itakutumia rev shell. Hauitaji kutaja kikundi cha usalama njia hii.
Kuwa makini na GuradDuty ikiwa utatumia siri za jukumu la IAM nje ya kifaa:
pageAWS - GuardDuty EnumAthari Inayowezekana: Privesc moja kwa moja kwa jukumu lolote la EC2 lililounganishwa na maelezo ya kifaa yaliyopo.
Privesc kwenda ECS
Kwa seti hii ya ruhusa unaweza pia kuunda kifaa cha EC2 na kusajili ndani ya kikundi cha ECS. Kwa njia hii, huduma za ECS zitakimbia ndani ya kifaa cha EC2 ambapo una ufikiaji na kisha unaweza kuingia kwenye huduma hizo (makontena ya docker) na kuiba majukumu yao ya ECS yaliyounganishwa.
Ili kujifunza jinsi ya kufanya huduma za ECS zilishehuri kwenye kifaa kipya cha EC2 angalia:
pageAWS - ECS PrivescIkiwa hauwezi kuunda kifaa kipya lakini una idhini ya ecs:RegisterContainerInstance
unaweza kujiandikisha kifaa ndani ya kikundi na kufanya shambulio lililoelezwa.
Matokeo Yanayowezekana: Privesc moja kwa moja kwa majukumu ya ECS yanayohusishwa na kazi.
iam:PassRole
, iam:AddRoleToInstanceProfile
iam:PassRole
, iam:AddRoleToInstanceProfile
Kama kwenye kisa kilichopita, mshambuliaji mwenye idhini hizi angeweza kubadilisha jukumu la IAM la kifaa kilichoharibiwa ili aweze kuiba vibali vipya.
Kwa kuwa wasifu wa kifaa unaweza kuwa na jukumu 1 tu, ikiwa wasifu wa kifaa tayari una jukumu (kawaida), utahitaji pia iam:RemoveRoleFromInstanceProfile
.
Ikiwa wasifu wa kifaa una jukumu na mshambuliaji hawezi kuiondoa, kuna njia nyingine. Anaweza kupata wasifu wa kifaa bila jukumu au kuunda mpya (iam:CreateInstanceProfile
), ongeza jukumu kwa wasifu huo wa kifaa (kama ilivyoelezwa hapo awali), na unganishe wasifu wa kifaa uliingiliwa kwa kifaa kilichingiliwa:
Ikiwa kifaa hakina wasifu wowote wa kifaa (
ec2:AssociateIamInstanceProfile
) *
Madhara Yanayoweza Kutokea: Privesc moja kwa moja kwenda kwa jukumu tofauti la EC2 (unahitaji kuwa umeharibu kipengele cha AWS EC2 na idhini ya ziada au hadhi maalum ya wasifu wa kipengele).
iam:PassRole
(( ec2:AssociateIamInstanceProfile
& ec2:DisassociateIamInstanceProfile
) || ec2:ReplaceIamInstanceProfileAssociation
)
iam:PassRole
(( ec2:AssociateIamInstanceProfile
& ec2:DisassociateIamInstanceProfile
) || ec2:ReplaceIamInstanceProfileAssociation
)Kwa idhini hizi, ni rahisi kubadilisha wasifu wa kipengele uliounganishwa na kipengele hivyo ikiwa shambulio tayari lilikuwa na ufikiaji wa kipengele anaweza kuiba siri za majukumu zaidi ya wasifu wa kipengele kwa kubadilisha ile iliyounganishwa nayo.
Ikiwa ina wasifu wa kipengele, unaweza kuondoa wasifu wa kipengele (
ec2:DisassociateIamInstanceProfile
) na kuunganisha *
au badilisha maelezo ya mfano ya kifaa kilichoharibiwa (
ec2:ReplaceIamInstanceProfileAssociation
). *
Athari Inayowezekana: Privesc moja kwa moja kwa jukumu tofauti la EC2 (unahitaji kuwa umeharibu kifaa cha AWS EC2 na idhini ya ziada au hali maalum ya wasifu wa kifaa).
ec2:RequestSpotInstances
,iam:PassRole
ec2:RequestSpotInstances
,iam:PassRole
Mshambuliaji mwenye idhini ya ec2:RequestSpotInstances
na iam:PassRole
anaweza kuomba Spot Instance na EC2 Role iliyowekwa na rev shell katika data ya mtumiaji.
Marafiki kifaa kikianza, anaweza kuiba jukumu la IAM.
ec2:ModifyInstanceAttribute
ec2:ModifyInstanceAttribute
Mshambuliaji mwenye ec2:ModifyInstanceAttribute
anaweza kubadilisha sifa za mifano. Miongoni mwao, anaweza kubadilisha data ya mtumiaji, ambayo inamaanisha anaweza kufanya mifano kutekeleza data ya kupindukia. Ambayo inaweza kutumika kupata rev shell kwa kifaa cha EC2.
Tafadhali kumbuka kuwa sifa hizi zinaweza kubadilishwa wakati kifaa kimezimwa, hivyo ruhusa ec2:StopInstances
na ec2:StartInstances
zinahitajika.
Athari Inayowezekana: Privesc moja kwa moja kwa jukumu lolote la IAM la EC2 lililounganishwa na kifaa kilichoundwa.
ec2:CreateLaunchTemplateVersion
,ec2:CreateLaunchTemplate
,ec2:ModifyLaunchTemplate
ec2:CreateLaunchTemplateVersion
,ec2:CreateLaunchTemplate
,ec2:ModifyLaunchTemplate
Mshambuliaji mwenye ruhusa za ec2:CreateLaunchTemplateVersion
,ec2:CreateLaunchTemplate
na ec2:ModifyLaunchTemplate
anaweza kuunda toleo jipya la Templeti ya Kuanzisha na rev shell ndani ya data ya mtumiaji na jukumu lolote la IAM la EC2 juu yake, kubadilisha toleo la msingi, na kikundi chochote cha Autoscaler kitumia Templeti hiyo ya Kuanzisha ambayo ime sanidiwa kutumia toleo la hivi karibuni au toleo la msingi litakalo zindua upya vipengele kutumia templeti hiyo na kutekeleza rev shell.
Matokeo Yanayowezekana: Privesc moja kwa moja kwa jukumu lingine la EC2.
autoscaling:CreateLaunchConfiguration
, autoscaling:CreateAutoScalingGroup
, iam:PassRole
autoscaling:CreateLaunchConfiguration
, autoscaling:CreateAutoScalingGroup
, iam:PassRole
Mshambuliaji mwenye ruhusa za autoscaling:CreateLaunchConfiguration
, autoscaling:CreateAutoScalingGroup
, iam:PassRole
anaweza kuunda Mazingira ya Kuzindua na Jukumu la IAM na rev shell ndani ya data ya mtumiaji, kisha kuunda kikundi cha autoscaling kutoka kwa hilo usanidi na kusubiri rev shell kuiba Jukumu la IAM.
Madhara Yanayoweza Kutokea: Privesc moja kwa moja kwa jukumu tofauti la EC2.
!autoscaling
!autoscaling
Seti ya ruhusa ec2:CreateLaunchTemplate
na autoscaling:CreateAutoScalingGroup
si za kutosha kwa kuinua upendeleo kwa jukumu la IAM kwa sababu ili kuambatisha jukumu lililoelezwa katika Mipangilio ya Uzinduzi au katika Kigezo cha Uzinduzi unahitaji ruhusa za iam:PassRole
na ec2:RunInstances
(ambayo ni privesc inayojulikana).
ec2-instance-connect:SendSSHPublicKey
ec2-instance-connect:SendSSHPublicKey
Mshambuliaji mwenye ruhusa ec2-instance-connect:SendSSHPublicKey
anaweza kuongeza ufunguo wa ssh kwa mtumiaji na kutumia kuifikia (ikiwa ana ufikiaji wa ssh kwa kifaa) au kuinua upendeleo.
Athari Inayowezekana: Privesc moja kwa moja kwa majukumu ya EC2 IAM yanayohusishwa na mifano inayotumika.
ec2-instance-connect:SendSerialConsoleSSHPublicKey
ec2-instance-connect:SendSerialConsoleSSHPublicKey
Mshambuliaji mwenye ruhusa ya ec2-instance-connect:SendSerialConsoleSSHPublicKey
anaweza kuongeza ufunguo wa ssh kwa muunganisho wa serial. Ikiwa serial haijashirikishwa, mshambuliaji anahitaji ruhusa ya ec2:EnableSerialConsoleAccess
kuwezesha.
Ili kuunganisha kwenye bandari ya serial, pia unahitaji kujua jina la mtumiaji na nenosiri la mtumiaji ndani ya kifaa.
Njia hii si ya manufaa sana kwa privesc kwani unahitaji kujua jina la mtumiaji na nenosiri ili kutumia udhaifu huo.
Athari Inayowezekana: (Inayoweza kuthibitishwa sana) Privesc moja kwa moja kwa majukumu ya EC2 IAM yanayohusishwa na mifano inayotumika.
Marejeo
Last updated