AWS Pentesting
Last updated
Last updated
Voordat jy begin pentesting van 'n **AWS-omgewing is daar 'n paar basiese dinge wat jy moet weet oor hoe AWS werk om jou te help verstaan wat jy moet doen, hoe om misconfiguraties te vind en hoe om dit te benut.
Konsepte soos organisasie-hierargie, IAM en ander basiese konsepte word verduidelik in:
Hulpmiddels om aanvalle te simuleer:
Om 'n AWS-omgewing te oudit, is dit baie belangrik om te weet: watter dienste word gebruik, wat blootgestel word, wie het toegang tot wat, en hoe is interne AWS-dienste en eksterne dienste gekoppel.
Vanuit 'n Red Team-oogpunt is die eerste stap om 'n AWS-omgewing te kompromitteer om te slaag om sekere gelde te verkry. Hier het jy 'n paar idees oor hoe om dit te doen:
Lekke in github (of soortgelyk) - OSINT
Sosiale Ingenieurswese
Wagwoord hergebruik (wagwoordlek)
Kwesbaarhede in AWS-gehoste Aansoeke
Bedienerkant Aanvraagvervalsing met toegang tot metadata-eindpunt
Plaaslike Lêes van Lêers
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3de partye gekraak
Interne Werknemer
Cognito gelde
Of deur 'n ongeagte diens wat blootgestel is, te kompromitteer:
Of as jy 'n ondersoek doen, kan jy net vra vir gelde met hierdie rolle:
Nadat jy daarin geslaag het om gelde te verkry, moet jy weet aan wie behoort daardie gelde, en wat hulle toegang tot het, dus moet jy 'n paar basiese opname uitvoer:
As jy 'n SSRF in 'n masjien binne AWS gevind het, kyk na hierdie bladsy vir truuks:
Een van die eerste dinge wat jy moet weet, is wie jy is (in watter rekening jy is en ander inligting oor die AWS-omgewing):
Let wel dat maatskappye kanarie tokens kan gebruik om te identifiseer wanneer tokens gesteel en gebruik word. Dit word aanbeveel om te kontroleer of 'n token 'n kanarie token is voordat dit gebruik word. Vir meer inligting kyk na hierdie bladsy.
As jy genoeg toestemmings het om die voorregte van elke entiteit binne die AWS-rekening te kontroleer sal dit jou help om te verstaan wat jy en ander identiteite kan doen en hoe om voorregte te eskaleer.
As jy nie genoeg toestemmings het om IAM te opneem nie, kan jy hulle bruteforce om dit uit te vind. Kyk hoe om die opname en bruteforcing te doen in:
Nou dat jy inligting oor jou geloofsbriewe het (en as jy 'n rooi span is, hopelik het jy nie opgespoor nie). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word. In die volgende afdeling kan jy 'n paar maniere vind om sekere algemene dienste op te som.
AWS het 'n verbysterende hoeveelheid dienste, op die volgende bladsy sal jy basiese inligting, opname-spiekbriefjies, hoe om opsporing te vermy, verkry volharding, en ander post-exploitation truuks oor sommige van hulle vind:
Merk op dat jy nie al die werk handmatig hoef te doen nie, onderaan in hierdie pos kan jy 'n afdeling oor outomatiese gereedskap vind.
Verder, in hierdie stadium het jy dalk ontdek dat daar meer dienste aan ongeagte gebruikers blootgestel is, jy mag hulle kan uitbuit:
As jy ten minste jou eie toestemmings kan kontroleer oor verskillende bronne kan jy kyk of jy verdere toestemmings kan verkry. Jy behoort ten minste te fokus op die toestemmings wat aangedui word in:
Terwyl jy AWS-dienste opneem, mag jy sommige van hulle vind wat elemente aan die internet blootstel (VM/Containers-poorte, databasisse of koeie dienste, oomblikke of emmers...). As pentester/rooi span moet jy altyd kyk of jy sensitiewe inligting / kwesbaarhede daarop kan vind aangesien dit jou verdere toegang tot die AWS-rekening kan bied.
In hierdie boek behoort jy inligting te vind oor hoe om blootgestelde AWS-dienste te vind en hoe om hulle te kontroleer. Oor hoe om kwesbaarhede in blootgestelde netwerkdienste te vind, sal ek aanbeveel om te soek vir die spesifieke diens in:
Wanneer die bestuursrekening nuwe rekeninge in die organisasie skep, word 'n nuwe rol in die nuwe rekening geskep, standaard genoem OrganizationAccountAccessRole
en gee AdministratorAccess beleid aan die bestuursrekening om toegang tot die nuwe rekening te verkry.
Dus, om as administrateur toegang tot 'n kinderrekening te verkry, het jy nodig:
Kompromitteer die bestuursrekening en vind die ID van die kinderrekeninge en die name van die rol (Standaard OrganizationAccountAccessRole
) wat die bestuursrekening toelaat om as admin toegang te verkry.
Om kinderrekeninge te vind, gaan na die organisasieseksie in die AWS-konsole of hardloop aws organizations list-accounts
Jy kan nie die name van die rolle direk vind nie, so kontroleer al die aangepaste IAM-beleide en soek na enige wat sts:AssumeRole
oor die voorheen ontdekte kinderrekeninge toelaat.
Kompromitteer 'n prinsipaal in die bestuursrekening met sts:AssumeRole
toestemming oor die rol in die kinderrekeninge (selfs al laat die rekening enigeen van die bestuursrekening toe om te impersoneer, aangesien dit 'n eksterne rekening is, is spesifieke sts:AssumeRole
toestemmings nodig).
aws-recon: 'n Veelvuldige AWS-sekuriteitsgefokusseerde inventarisversamelingswerktuig geskryf in Ruby.
cloudlist: Cloudlist is 'n multi-cloud tool vir die verkryging van bates (Gasheername, IP-adresse) van Wolkleweransiers.
cloudmapper: CloudMapper help jou om jou Amazon Web Services (AWS) omgewings te analiseer. Dit bevat nou baie meer funksionaliteit, insluitend ouditering vir sekuriteitskwessies.
cartography: Cartography is 'n Python-werktuig wat infrastruktuur bates en die verhoudings tussen hulle konsolideer in 'n intuïtiewe grafiese aansig aangedryf deur 'n Neo4j databasis.
starbase: Starbase versamel bates en verhoudings van dienste en stelsels, insluitend wolkinfrastruktuur, SaaS-toepassings, sekuriteitsbeheer, en meer in 'n intuïtiewe grafiese weergawe ondersteun deur die Neo4j-databasis.
aws-inventory: (Gebruik python2) Hierdie is 'n instrument wat probeer om **alle AWS-bronne wat in 'n rekening geskep is, te ontdek.
aws_public_ips: Dit is 'n instrument om alle openbare IP-adresse (beide IPv4/IPv6) wat met 'n AWS-rekening geassosieer is, te kry.
SkyArk: Ontdek die mees bevoorregte gebruikers in die gescande AWS-omgewing, insluitend die AWS-skermskadu-administrateurs. Dit gebruik powershell. Jy kan die definisie van bevoorregte beleide vind in die funksie Check-PrivilegedPolicy
in https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.
pacu: Pacu is 'n oopbron AWS-uitbuitingsraamwerk, ontwerp vir aanvallende sekuriteitstoetsing teen wolkomgewings. Dit kan opsom, verkeerde konfigurasies vind en dit uitbuit. Jy kan die definisie van bevoorregte toestemmings vind in https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 binne die user_escalation_methods
dict.
Let daarop dat pacu slegs jou eie privesc-roetes nagaan (nie rekeningwyd nie).
PMapper: Die Hoofafbeelding (PMapper) is 'n skrip en biblioteek om risiko's in die konfigurasie van AWS Identity and Access Management (IAM) vir 'n AWS-rekening of 'n AWS-organisasie te identifiseer. Dit modelleer die verskillende IAM-gebruikers en rolle in 'n rekening as 'n gerigte grafiek, wat kontrole vir bevoorregte eskalasie en vir alternatiewe paaie wat 'n aanvaller kan neem om toegang tot 'n hulpbron of aksie in AWS te verkry. Jy kan die toestemmings wat gebruik word om privesc-paaie te vind nagaan in die lêreindes wat eindig op _edges.py
in https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Cloudsplaining is 'n AWS IAM Sekuriteitsassesseringswerktuig wat oortredings van die beginsel van minste bevoegdheid identifiseer en 'n risiko-geprioriteerde HTML-verslag genereer. Dit sal jou potensieel oorbevoegde kliënt, inline en aws beleide wys en watter prinsipale toegang daartoe het. (Dit kyk nie net vir bevoegdheidsverhoging nie, maar ook vir ander soorte interessante toestemmings, aanbeveel om te gebruik).
cloudjack: CloudJack assesseer AWS-rekeninge vir subdomein-kaping kwesbaarhede as gevolg van ontkoppelde Route53 en CloudFront konfigurasies.
ccat: Lys ECR-opslag -> Trek ECR-opslag -> Agterdeur dit -> Druk teruggekapte beeld
Dufflebag: Dufflebag is 'n gereedskap wat deur openbare Elastiese Blok-opbergings (EBS) snagsels soek vir geheime wat moontlik per ongeluk agtergelaat is.
cloudsploit: CloudSploit deur Aqua is 'n oopbronprojek wat ontwerp is om die opsporing van sekuriteitsrisiko's in wolk-infrastruktuur-rekeninge moontlik te maak, insluitend: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI), en GitHub (Dit soek nie na ShadowAdmins nie).
Prowler: Prowler is 'n Oopbron-sekuriteitsinstrument om AWS-sekuriteitsbestpraktykassessering, oudits, insidentreaksie, deurlopende monitering, verharding en forensiese gereedheid uit te voer.
CloudFox: CloudFox help jou om situasiebewustheid te kry in onbekende wolkomgewings. Dit is 'n oopbron-kommalynhulpmiddel wat geskep is om pentesters en ander aanvallende sekuriteitsprofessionele te help om uitbuitbare aanvalspaaie in wolkinfrastruktuur te vind.
ScoutSuite: Scout Suite is 'n oopbron multi-cloud sekuriteitsouditeringswerktuig wat sekuriteitspostuurbepaling van wolk-omgewings moontlik maak.
cs-suite: Wolkmeging Suite (gebruik python2.7 en lyk ongemaintain)
Zeus: Zeus is 'n kragtige instrument vir AWS EC2 / S3 / CloudTrail / CloudWatch / KMS beste harding praktyke (lyk ongemaintain). Dit toets slegs standaard geconfigureerde geloofsbriewe binne die stelsel.
cloud-custodian: Wolkbewaarder is 'n reëls engine vir die bestuur van openbare wolkrekeninge en bronne. Dit stel gebruikers in staat om beleide te definieer om 'n goed bestuurde wolk-infrastruktuur moontlik te maak, wat beide veilig en koste-geoptimeer is. Dit konsolideer baie van die adhoc-skripte wat organisasies het in 'n ligte en buigsame instrument, met eenvormige metriese en verslagdoening.
pacbot: Beleid as Kode Bot (PacBot) is 'n platform vir deurlopende nakomingmonitering, nakomingsverslagdoening en sekuriteitsoutomatisering vir die wolk. In PacBot word sekuriteits- en nakomingsbeleide as kode geïmplementeer. Alle bronne wat deur PacBot ontdek word, word geëvalueer teen hierdie beleide om beleidsooreenstemming te meet. Die PacBot outo-herstel-raamwerk bied die vermoë om outomaties op beleidsoortredings te reageer deur voorafbepaalde aksies te neem.
streamalert: StreamAlert is 'n bedienerlose, werklike tyd data-analise-raamwerk wat jou bemagtig om data van enige omgewing te inkom, analiseer, en waarsku oor data van enige omgewing, deur data-bronne en waarskuingslogika wat jy definieer te gebruik. Rekenaarsekuriteitspanne gebruik StreamAlert om terabytes logdata elke dag te skandeer vir insidentopsporing en -reaksie.