Pentesting Cloud Methodology
Last updated
Last updated
Elke wolk het sy eie eiesoortighede, maar oor die algemeen is daar 'n paar gemeenskaplike dinge wat 'n pentester moet nagaan wanneer 'n wolkomgewing getoets word:
Benchmarks nagaan
Dit sal jou help om die grootte van die omgewing en die gebruikte dienste te verstaan
Dit sal jou ook in staat stel om sommige vinnige verkeerde konfigurasies te vind, aangesien jy die meeste van hierdie toetse met geoutomatiseerde gereedskap kan uitvoer
Dienste-opnoeming
Jy sal waarskynlik nie baie meer verkeerde konfigurasies hier vind as jy die toets van die maatstaf korrek uitgevoer het nie, maar jy mag dalk sommige vind wat nie in die maatstaf-toets gesoek is nie.
Dit sal jou in staat stel om te weet wat presies in die wolkomgewing gebruik word
Dit sal baie help in die volgende stappe
Blootgestelde bates nagaan
Dit kan gedurende die vorige afdeling gedoen word, jy moet alles vind wat potensieel blootgestel is aan die internet op een of ander manier en hoe dit toeganklik is.
Hier neem ek handmatig blootgestelde infrastruktuur soos instansies met webbladsye of ander poorte wat blootgestel word, en ook oor ander wolkbestuurde dienste wat gekonfigureer kan word om blootgestel te word (soos databasisse of emmers)
Dan moet jy nagaan of daardie hulpbron blootgestel kan word of nie (vertroulike inligting? kwesbaarhede? verkeerde konfigurasies in die blootgestelde diens?)
Toestemmings nagaan
Hier moet jy uitvind wat die toestemmings van elke rol/gebruiker binne die wolk is en hoe dit gebruik word
Te veel hoogs bevoorregte (beheer alles) rekeninge? Gegenereerde sleutels wat nie gebruik word nie?... Die meeste van hierdie nagaan behoort reeds in die maatstaf-toetse gedoen te wees
As die kliënt OpenID of SAML of ander federasie gebruik, moet jy dalk vir hulle verdere inligting vra oor hoe elke rol toegewys word (dit is nie dieselfde as die admin-rol aan 1 gebruiker of aan 100 toegewys word nie)
Dit is nie genoeg om te vind watter gebruikers admin toestemmings het "*:*". Daar is baie ander toestemmings wat afhangend van die gebruikte dienste baie sensitief kan wees.
Daarbenewens is daar potensiële privesc-weë om te volg deur toestemmings te misbruik. Al hierdie dinge moet in ag geneem word en soveel privesc-paaie as moontlik moet gerapporteer word.
Integrasies nagaan
Dit is baie waarskynlik dat integrasies met ander wolke of SaaS binne die wolkomgewing gebruik word.
Vir integrasies van die wolk wat jy ondersoek met ander platforms moet jy aanwys wie toegang het om daardie integrasie (mis)tebruik en jy moet vra hoe sensitief die aksie wat uitgevoer word, is. Byvoorbeeld, wie kan in 'n AWS-emmer skryf waar GCP data van kry (vra hoe sensitief is die aksie in GCP wat daardie data hanteer).
Vir integrasies binne die wolk wat jy ondersoek vanaf eksterne platforms, moet jy vra wie ekstern toegang het om daardie integrasie (mis)tebruik en nagaan hoe daardie data gebruik word. Byvoorbeeld, as 'n diens 'n Docker-beeld gebruik wat in GCR gehuisves word, moet jy vra wie toegang het om dit te wysig en watter sensitiewe inligting en toegang daardie beeld sal kry wanneer dit binne 'n AWS-wolk uitgevoer word.
Daar is verskeie gereedskap wat gebruik kan word om verskillende wolkomgewings te toets. Die installasie-stappe en skakels sal in hierdie afdeling aangedui word.
'n Gereedskap om slegte konfigurasies en privesc-paaie in wolke en oor wolke/SaaS te identifiseer.
Dit ondersteun AWS, GCP & Azure. Kyk hoe om elke verskaffer te konfigureer in https://docs.prowler.cloud/en/latest/#aws
AWS, Azure, Github, Google, Oracle, Alibaba
AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure
Laai Steampipe af en installeer dit (https://steampipe.io/downloads). Of gebruik Brew:
AWS, GCP, Azure, DigitalOcean. Dit vereis python2.7 en lyk ononderhou.
Nessus het 'n Audit Cloud Infrastructure skandering wat ondersteuning bied vir: AWS, Azure, Office 365, Rackspace, Salesforce. Sommige ekstra konfigurasies in Azure is nodig om 'n Client Id te verkry.
Cloudlist is 'n multi-cloud instrument vir die verkryging van bates (Hostnames, IP-adresse) van Cloudverskaffers.
Die eerste stap in die pentesting-metodologie vir die ondersoek van die wolk is om inligting te versamel oor die teikenwolkomgewing. Hier is 'n paar tegnieke wat gebruik kan word:
DNS-opname: Identifiseer die DNS-rekords van die teikenwolkomgewing om inligting soos IP-adresse, subdomeine en diensverskaffers te verkry.
Portskandering: Skandeer die IP-adresse van die teikenwolkomgewing om oop poorte en dienste te identifiseer.
Subdomeinontdekking: Identifiseer subdomeine van die teikenwolkomgewing deur gebruik te maak van tegnieke soos bruteforcing, DNS-opname en openbare bronnavorsing.
Openbare bronnavorsing: Deursoek openbare bronne soos sosiale media, blogposts en forums vir enige inligting wat nuttig kan wees vir die pentesting-proses.
Netwerkkaartbring: Identifiseer die netwerkargitektuur van die teikenwolkomgewing deur gebruik te maak van tegnieke soos netwerkkaartbring en subnetidentifikasie.
Die volgende stap is om die aanvalsvlakke in die teikenwolkomgewing te identifiseer. Hier is 'n paar moontlike aanvalsvlakke wat ondersoek kan word:
Gebruikersrekening: Identifiseer swak gebruikersrekeninge wat gebruik kan word om toegang tot die wolkomgewing te verkry.
API-toegang: Identifiseer en ondersoek die API-toegangspunte van die teikenwolkomgewing om moontlike aanvalsvlakke te identifiseer.
Konfigurasiefoute: Identifiseer foute in die konfigurasie van die teikenwolkomgewing wat misbruik kan word om toegang te verkry.
Swak toegangsbeheer: Identifiseer swak toegangsbeheermaatreëls wat misbruik kan word om toegang tot die wolkomgewing te verkry.
Onveilige data-oordrag: Identifiseer onveilige data-oordragprotokolle wat gebruik word in die teikenwolkomgewing.
Nadat die aanvalsvlakke geïdentifiseer is, kan die volgende stap wees om aanvalle uit te voer om toegang tot die teikenwolkomgewing te verkry. Hier is 'n paar moontlike aanvaltegnieke wat gebruik kan word:
Bruteforcing: Probeer om swak wagwoorde te raai deur herhaaldelik te probeer om in te teken op gebruikersrekeninge.
SQL-injeksie: Voer SQL-injeksie-aanvalle uit om toegang tot die databasis van die teikenwolkomgewing te verkry.
Cross-Site Scripting (XSS): Voer XSS-aanvalle uit om kwaadwillige skrips in die webtoepassings van die teikenwolkomgewing in te spuit.
Man-in-the-Middle (MitM): Voer MitM-aanvalle uit om die kommunikasie tussen die teikenwolkomgewing en gebruikers te onderskep en te manipuleer.
Databasislekke: Identifiseer en ondersoek databasislekke in die teikenwolkomgewing om toegang tot gevoelige inligting te verkry.
As toegang tot die teikenwolkomgewing verkry is, kan die volgende stap wees om voorregte te verhoog om verdere toegang en beheer oor die omgewing te verkry. Hier is 'n paar moontlike tegnieke wat gebruik kan word:
Gebruikersrolmanipulasie: Manipuleer gebruikersrolle en toegangsbeheermaatreëls om voorregte te verhoog.
Misbruik van swakke konfigurasie: Misbruik swakke konfigurasie-instellings om voorregte te verhoog.
Exploit van bekende kwesbaarhede: Maak gebruik van bekende kwesbaarhede in die teikenwolkomgewing om voorregte te verhoog.
Privilege Escalation in containers: Identifiseer en ondersoek voorregverhoging in konteineromgewings.
Die finale stap in die pentesting-metodologie vir die ondersoek van die wolk is om data uit die teikenwolkomgewing te onttrek. Hier is 'n paar moontlike tegnieke wat gebruik kan word:
Bestandsoordrag: Oordra van gevoelige data deur gebruik te maak van protokolle soos FTP, HTTP of SMB.
Datalekke: Identifiseer en ondersoek datalekke in die teikenwolkomgewing om gevoelige inligting te onttrek.
Netwerkverkeerontleding: Ontleed die netwerkverkeer tussen die teikenwolkomgewing en ander stelsels om gevoelige inligting te onderskep.
Terugdeurinstallasie: Installeer 'n terugdeur in die teikenwolkomgewing om toekomstige toegang te verseker.
Die laaste stap in die pentesting-metodologie is om 'n volledige verslag op te stel wat die bevindinge, aanbevelings en stappe vir die oplossing van die geïdentifiseerde kwesbaarhede bevat. Die verslag moet duidelik en bondig wees en moet aan die kliënt oorgedra word vir verdere aksie.
Kartografie is 'n Python-hulpmiddel wat infrastruktuur bates en die verhoudings tussen hulle konsolideer in 'n intuïtiewe grafiese weergawe wat aangedryf word deur 'n Neo4j databasis.
Ontdek die mees bevoorregte gebruikers in die gescande AWS of Azure omgewing, insluitend die AWS Shadow Admins. Dit maak gebruik van PowerShell.
'n Gereedskap om 'n maatskappy (teiken) se infrastruktuur, lêers en programme op die top wolkverskaffers (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) te vind.
WolkVos is 'n gereedskap om uitbuitbare aanvalspaaie in wolkinfrastruktuur te vind (tans slegs AWS & Azure ondersteun met GCP wat binnekort kom).
Dit is 'n opnamegereedskap wat bedoel is om handmatige pentesting aan te vul.
Dit skep of wysig geen data binne die wolkomgewing nie.
Stormspotter skep 'n "aanvalgrafiek" van die hulpbronne in 'n Azure intekening. Dit stel rooi spanne en pentesters in staat om die aanvalsvlak en draaipunte binne 'n huurder te visualiseer, en versterk jou verdedigers om vinnig te oriënteer en voorrang te gee aan insidentresponswerk.
Jy benodig Global Admin of ten minste Global Admin Reader (maar let daarop dat Global Admin Reader bietjie beperk is). Hierdie beperkings verskyn egter in sommige PS-modules en kan omseil word deur die funksies via die webtoepassing te benader.