\AppData\Local\Android\Sdk\tools`
-Op mac kan jy die **SDK tools aflaai** en dit in die PATH plaas deur die volgende te hardloop:
+Op mac kan jy die **SDK tools** aflaai en hulle in die PATH hĂȘ deur die volgende uit te voer:
```bash
brew tap homebrew/cask
brew install --cask android-sdk
```
-Of vanaf **Android Studio GUI** soos aangedui in [https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a](https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a) wat hulle sal installeer in `~/Library/Android/sdk/cmdline-tools/latest/bin/` en `~/Library/Android/sdk/platform-tools/` en `~/Library/Android/sdk/emulator/`
+Of vanaf **Android Studio GUI** soos aangedui in [https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a](https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a) wat hulle in `~/Library/Android/sdk/cmdline-tools/latest/bin/` en `~/Library/Android/sdk/platform-tools/` en `~/Library/Android/sdk/emulator/` sal installeer
Vir die Java-probleme:
```java
@@ -26,9 +26,9 @@ export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
```
## GUI
-### Berei Virtuele Masjien voor
+### Prepare Virtual Machine
-As jy Android Studio geĂŻnstalleer het, kan jy net die hoofprojek-oorsig oopmaak en toegang kry: _**Tools**_ --> _**AVD Manager.**_
+As jy Android Studio geĂŻnstalleer het, kan jy net die hoofprojek-oorsig oopmaak en toegang kry tot: _**Tools**_ --> _**AVD Manager.**_
@@ -36,38 +36,38 @@ As jy Android Studio geĂŻnstalleer het, kan jy net die hoofprojek-oorsig oopmaak
-Klik dan op _**Create Virtual Device**_
+Then, click on _**Create Virtual Device**_
-_**Kies** die foon wat jy wil gebruik_ en klik op _**Next.**_
+_**kies** die telefoon wat jy wil gebruik_ en klik op _**Next.**_
> [!WARNING]
-> If you need a phone with Play Store installed select one with the Play Store icon on it!
+> As jy 'n telefoon met Play Store geĂŻnstalleer benodig, kies een met die Play Store-ikoon daarop!
>
>
-In die huidige aansig kan jy die **Android image kies en aflaai** wat diefoon gaan gebruik:
+In die huidige aansig kan jy **kies en aflaai die Android image** wat die telefoon gaan gebruik:
-Kies dit, en as dit nie afgelaai is nie klik op die _**Download**_ simbool langs die naam (**wag nou totdat die image afgelaai is).**\
-Sodra die image afgelaai is, kies net **`Next`** en **`Finish`**.
+So, select it and if it isn't downloaded click on the _**Download**_ symbol next to the name (**now wait until the image is downloaded).**\
+Once the image is downloaded, just select **`Next`** and **`Finish`**.
-Die virtuele masjien sal geskep word. Nou, **elke keer as jy toegang kry tot AVD manager, sal dit daar wees**.
+Die virtuele masjien sal geskep word. Nou sal dit **elke keer as jy die AVD Manager oopmaak, beskikbaar wees**.
-### Begin Virtuele Masjien
+### Run Virtual Machine
-Om dit te **begin** druk net die _**Start button**_.
+Om dit te begin, druk net die _**Start button**_.
.png>)
-## Opdraglyn-gereedskap
+## Command Line tool
> [!WARNING]
-> For macOS you can find the `avdmanager` tool in `/Users//Library/Android/sdk/tools/bin/avdmanager` and the `emulator` in `/Users//Library/Android/sdk/emulator/emulator` if you have them installed.
+> Vir macOS kan jy die `avdmanager` tool vind in `/Users//Library/Android/sdk/tools/bin/avdmanager` en die `emulator` in `/Users//Library/Android/sdk/emulator/emulator` as jy dit geĂŻnstalleer het.
-Eerstens moet jy **bepaal watter foon jy wil gebruik**, om die lys van moontlike fone te sien voer uit:
+Eerstens moet jy **besluit watter telefoon jy wil gebruik**, om die lys van moontlike telefone te sien voer uit:
```
C:\Users\\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list device
@@ -95,11 +95,12 @@ Name: Nexus 10
OEM : Google
[...]
```
-Sodra jy die naam van die toestel wat jy wil gebruik besluit het, moet jy **bepaal watter Android-image jy in hierdie toestel wil uitvoer.**\ Jy kan al die opsies lys met `sdkmanager`:
+Sodra jy die naam van die toestel wat jy wil gebruik bepaal het, moet jy **bepaal watter Android image jy op hierdie toestel wil laat loop.**\
+Jy kan al die opsies lys met `sdkmanager`:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
```
-En **download** die een (of almal) wat jy wil gebruik met:
+En **laai af** die een (of almal) wat jy wil gebruik met:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
```
@@ -119,11 +120,11 @@ Type: Platform
API level: 29
Revision: 4
```
-Op hierdie stadium het jy besluit watter toestel jy wil gebruik en jy het die Android image afgelaai, dus **kan jy die virtuele masjien skep met**:
+Op hierdie stadium het jy besluit watter toestel jy wil gebruik en jy het die Android image afgelaai, dus **kan jy die virtuele masjien skep met behulp van**:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat -v create avd -k "system-images;android-28;google_apis;x86_64" -n "AVD9" -d "Nexus 5X"
```
-In die laaste opdrag **het ek 'n VM geskep met die naam** "_AVD9_" deur die **toestel** "_Nexus 5X_" en die **Android image** "_system-images;android-28;google_apis;x86_64_" te gebruik.\
+In die laaste opdrag **het ek 'n VM geskep genaamd** "_AVD9_" deur die **toestel** "_Nexus 5X_" en die **Android-image** "_system-images;android-28;google_apis;x86_64_" te gebruik.\
Nou kan jy **lys die virtuele masjiene** wat jy geskep het met:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list avd
@@ -142,52 +143,52 @@ Error: Google pixel_2 no longer exists as a device
### Voer Virtuele Masjien uit
> [!WARNING]
-> Vir macOS kan jy die `avdmanager` hulpmiddel vind in `/Users//Library/Android/sdk/tools/bin/avdmanager` en die `emulator` in `/Users//Library/Android/sdk/emulator/emulator` as jy dit geĂŻnstalleer het.
+> Vir macOS kan jy die `avdmanager` tool in `/Users//Library/Android/sdk/tools/bin/avdmanager` en die `emulator` in `/Users//Library/Android/sdk/emulator/emulator` vind as jy hulle geĂŻnstalleer het.
-Ons het reeds gesien hoe jy die gemaakte virtuele masjiene kan lys, maar **jy kan hulle ook lys met**:
+Ons het reeds gesien hoe jy die gemaakte virtuele masjiene kan lys, maar **jy kan hulle ook lys met behulp van**:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
```
-Jy kan eenvoudig **enige geskepte virtuele masjien** laat loop deur gebruik te maak van:
+Jy kan eenvoudig **enige geskepte virtuele masjien uitvoer** met:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
```
-Of deur meer gevorderde opsies te gebruik kan jy 'n virtuele masjien soos:
+Of deur meer gevorderde opsies te gebruik, kan jy 'n virtuele masjien soos die volgende laat loop:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
```
### Command line options
-Daar is egter **baie verskillende nuttige opdragreëlopsies** wat jy kan gebruik om 'n virtuele masjien te begin. Hieronder kan jy 'n paar interessante opsies sien, maar jy kan [**'n volledige lys hier vind**](https://developer.android.com/studio/run/emulator-commandline)
+Daar is egter **a lot of different command line useful options** wat jy kan gebruik om 'n virtuele masjien te begin. Hieronder kan jy 'n paar interessante opsies vind maar kan [**find a complete list here**](https://developer.android.com/studio/run/emulator-commandline)
**Opstart**
- `-snapshot name` : Start VM snapshot
-- `-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img` : Lys al die opgeneemde snapshots
+- `-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img` : Lys alle geregistreerde snapshots
**Netwerk**
-- `-dns-server 192.0.2.0, 192.0.2.255` : Laat toe om die DNS-bedieners vir die VM kommageskei aan te dui.
+- `-dns-server 192.0.2.0, 192.0.2.255` : Laat toe om die DNS-bedieners as 'n komma-geskeide lys aan die VM aan te dui.
- **`-http-proxy 192.168.1.12:8080`** : Laat toe om 'n HTTP-proxy aan te dui om te gebruik (baie nuttig om verkeer met Burp vas te vang)
-- As die proxy-instellings om een of ander rede nie werk nie, probeer dit intern te konfigureer of 'n toepassing soos "Super Proxy" of "ProxyDroid" te gebruik.
+- If the proxy settings aren't working for some reason, try to configure them internally or using an pplication like "Super Proxy" or "ProxyDroid".
- `-netdelay 200` : Stel die netwerklatensie-emulasie in millisekondes.
-- `-port 5556` : Stel die TCP-poortnommer wat vir die console en adb gebruik word.
-- `-ports 5556,5559` : Stel die TCP-poorte wat vir die console en adb gebruik word.
-- **`-tcpdump /path/dumpfile.cap`** : Vang al die verkeer in 'n lĂȘer
+- `-port 5556` : Stel die TCP-poortnommer wat vir die konsole en adb gebruik word.
+- `-ports 5556,5559` : Stel die TCP-poorte wat vir die konsole en adb gebruik word.
+- **`-tcpdump /path/dumpfile.cap`** : Neem al die verkeer in 'n lĂȘer op
**Stelsel**
-- `-selinux {disabled|permissive}` : Stel die Security-Enhanced Linux sekuriteitsmodule in op Ăłf disabled Ăłf permissive modus op 'n Linux-bedryfstelsel.
+- `-selinux {disabled|permissive}` : Stel die Security-Enhanced Linux sekuriteitsmodule op 'n Linux-bedryfstelsel.
- `-timezone Europe/Paris` : Stel die tydsone vir die virtuele toestel
- `-screen {touch(default)|multi-touch|o-touch}` : Stel die geëmuleerde raakskermmodus in.
-- **`-writable-system`** : Gebruik hierdie opsie om 'n beskryfbare stelselbeeld gedurende jou emulasiesessie te hĂȘ. Jy sal ook `adb root; adb remount` moet uitvoer. Dit is baie handig om 'n nuwe sertifikaat in die stelsel te installeer.
+- **`-writable-system`** : Gebruik hierdie opsie om 'n skryfbare stelselbeeld tydens jou emulasiesessie te hĂȘ. Jy sal ook moet `adb root; adb remount`. Dit is baie nuttig om 'n nuwe sertifikaat in die stelsel te installeer.
-## Linux CLI-opstelling (SDK/AVD snelbegin)
+## Linux CLI setup (SDK/AVD quickstart)
-Die amptelike CLI-gereedskap maak dit maklik om vinnige, debugbare emulators te skep sonder Android Studio.
+Die amptelike CLI-instrumente maak dit maklik om vinnige, ontfoutbare emulators te skep sonder Android Studio.
```bash
# Directory layout
mkdir -p ~/Android/cmdline-tools/latest
@@ -216,9 +217,9 @@ adb root
adb shell whoami # expect: root
```
Aantekeninge
-- Stelselbeeld-variante: google_apis (debuggable, laat `adb root` toe), google_apis_playstore (nie rootbaar nie), aosp/default (liggewig).
-- Bou-tipes: userdebug laat dikwels `adb root` toe op debug-geskikte beelde. Play Store images is produksie-boude en blokkeer root.
-- Op x86_64-gashere word volstelsel ARM64-emulasie nie ondersteun vanaf API 28+ nie. Vir Android 11+ gebruik Google APIs/Play images wat per-app ARM-to-x86 translation insluit om baie ARM-only apps vinnig te laat loop.
+- Stelselbeeld-variante: google_apis (debuggable, laat `adb root` toe), google_apis_playstore (nie-rootbaar nie), aosp/default (liggewig).
+- Bouwtipes: userdebug laat dikwels `adb root` toe op debug-ondersteunende images. Play Store images is produksie-boues en blokkeer root.
+- Op x86_64-gashere is volstelsels ARM64-emulasie nie ondersteun vanaf API 28+ nie. Vir Android 11+ gebruik Google APIs/Play images wat per-app ARM-na-x86-vertaling insluit om baie ARM-only apps vinnig te laat loop.
### Snapshots vanaf die CLI
```bash
@@ -228,39 +229,39 @@ adb -s emulator-5554 emu avd snapshot save my_clean_setup
# Boot from a named snapshot (if it exists)
emulator -avd PixelRootX86 -writable-system -snapshot my_clean_setup
```
-## ARMâx86 binaire vertaling (Android 11+)
+## ARMâx86 binary translation (Android 11+)
-Google APIs en Play Store images op Android 11+ kan ARM-app-binaries per proses vertaal terwyl die res van die stelsel inheemse x86/x86_64 bly. Dit is dikwels vinnig genoeg om baie ARM-only apps op 'n lessenaar te toets.
+Google APIs en Play Store-images op Android 11+ kan ARM-app-binaire per proses vertaal terwyl die res van die stelsel native x86/x86_64 bly. Dit is dikwels vinnig genoeg om baie slegs-ARM-apps op 'n lessenaar te toets.
-> Wenk: Gebruik voorkeurlik Google APIs x86/x86_64 images tydens pentests. Play images is gerieflik maar blokkeer `adb root`; gebruik dit slegs wanneer jy spesifiek Play services benodig en die gebrek aan root aanvaar.
+> Tip: Verkies Google APIs x86/x86_64-images tydens pentests. Play-images is gerieflik maar blokkeer `adb root`; gebruik hulle slegs wanneer jy spesifiek Play services benodig en die gebrek aan root aanvaar.
## Rooting a Play Store device
-As jy 'n toestel met Play Store afgelaai het, gaan jy nie direk root kan kry nie, en jy sal hierdie foutboodskap kry
+If you downloaded a device with Play Store you are not going to be able to get root directly, and you will get this error message
```
$ adb root
adbd cannot run as root in production builds
```
-Deur [rootAVD](https://github.com/newbit1/rootAVD) saam met [Magisk](https://github.com/topjohnwu/Magisk) te gebruik, kon ek dit root (volg byvoorbeeld [**this video**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **of** [**this one**](https://www.youtube.com/watch?v=qQicUW0svB8)).
+Deur [rootAVD](https://github.com/newbit1/rootAVD) met [Magisk](https://github.com/topjohnwu/Magisk) te gebruik, kon ek dit root (volg byvoorbeeld [**this video**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) of [**this one**](https://www.youtube.com/watch?v=qQicUW0svB8)).
-## Installeer Burp-sertifikaat
+## Installeer Burp Sertifikaat
-Kyk na die volgende bladsy om te leer hoe om 'n pasgemaakte CA-sertifikaat te installeer:
+Kyk na die volgende bladsy om te leer hoe om 'n pasgemaakte CA cert te installeer:
{{#ref}}
install-burp-certificate.md
{{#endref}}
-## Goeie AVD-opsies
+## Nuttige AVD-opties
### Neem 'n Snapshot
-Jy kan **use the GUI** gebruik om op enige tyd 'n snapshot van die VM te neem:
+Jy kan **die GUI gebruik** om te eniger tyd 'n snapshot van die VM te neem:
.png>)
-## Verwysings
+## References
- [Build a Repeatable Android Bug Bounty Lab: Emulator vs Magisk, Burp, Frida, and Medusa](https://www.yeswehack.com/learn-bug-bounty/android-lab-mobile-hacking-tools)
- [Android Emulator command line](https://developer.android.com/studio/run/emulator-commandline)
diff --git a/src/mobile-pentesting/android-app-pentesting/frida-tutorial/README.md b/src/mobile-pentesting/android-app-pentesting/frida-tutorial/README.md
index d74667938..faf522424 100644
--- a/src/mobile-pentesting/android-app-pentesting/frida-tutorial/README.md
+++ b/src/mobile-pentesting/android-app-pentesting/frida-tutorial/README.md
@@ -10,8 +10,8 @@ Installeer **frida tools**:
pip install frida-tools
pip install frida
```
-**Laai af en installeer** op die Android-toestel die **frida server** ([Download the latest release](https://github.com/frida/frida/releases)).\
-Eenreël-opdrag om adb in root-modus te herbegin, daaraan te koppel, frida-server op te laai, exec permissions te gee en dit in die agtergrond te laat loop:
+**Laai af en installeer** in die android die **frida server** ([Download the latest release](https://github.com/frida/frida/releases)).\
+Eenreël-opdrag om adb in root mode te herbegin, daaraan te koppel, frida-server op te laai, exec permissions te gee en dit in die agtergrond te laat loop:
```bash
adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local/tmp/; adb shell "chmod 755 /data/local/tmp/frida-server"; adb shell "/data/local/tmp/frida-server &"
```
@@ -22,10 +22,10 @@ frida-ps -U | grep -i #Get all the package name
```
## Frida server vs. Gadget (root vs. no-root)
-Twee algemene maniere om Android apps met Frida te instrumenteer:
+Twee algemene maniere om Android-apps met Frida te instrumenteer:
- Frida server (rooted devices): Stoot en voer 'n inheemse daemon uit wat jou toelaat om aan enige proses te koppel.
-- Frida Gadget (no root): Bundel Frida as 'n gedeelde biblioteek binne die APK en laai dit outomaties in die teikenproses.
+- Frida Gadget (no root): Bundel Frida as 'n gedeelde biblioteek binne die APK en laai dit outomaties binne die teikenproses.
Frida server (rooted)
```bash
@@ -42,9 +42,9 @@ frida -U -n com.example.app
```
Frida Gadget (no-root)
-1) Pak die APK uit, voeg die gadget .so en konfigurasie by:
-- Plaas libfrida-gadget.so in lib// (bv., lib/arm64-v8a/)
-- Skep assets/frida-gadget.config met jou script-laaistellings
+1) Pak die APK uit, voeg die gadget .so en config by:
+- Place libfrida-gadget.so into lib// (e.g., lib/arm64-v8a/)
+- Skep assets/frida-gadget.config met jou script laai-instellings
Voorbeeld frida-gadget.config
```json
@@ -53,8 +53,8 @@ Voorbeeld frida-gadget.config
"runtime": { "logFile": "/sdcard/frida-gadget.log" }
}
```
-2) Verwys/laai die gadget sodat dit vroeg geĂŻnitialiseer word:
-- Maklikste: Voeg 'n klein Java-stub by System.loadLibrary("frida-gadget") in Application.onCreate(), of gebruik die reeds bestaande native lib loading.
+2) Verwys/laai die gadget sodat dit vroeg geĂŻnisialiseer word:
+- Die maklikste: Voeg 'n klein Java-stub by wat System.loadLibrary("frida-gadget") in Application.onCreate() aanroep, of gebruik die native lib loading wat reeds teenwoordig is.
3) Herpak en teken die APK, en installeer dit dan:
```bash
@@ -64,40 +64,40 @@ apktool b app_m -o app_gadget.apk
uber-apk-signer -a app_gadget.apk -o out_signed
adb install -r out_signed/app_gadget-aligned-debugSigned.apk
```
-4) Koppel vanaf host na die gadget-proses:
+4) Koppel van gasheer na die gadget-proses:
```bash
frida-ps -Uai
frida -U -n com.example.app
```
Aantekeninge
- Gadget word deur sommige beskermings opgespoor; hou name/paaie onopvallend en laai laat/voorwaardelik indien nodig.
-- By geharde apps, verkies rooted testing met server + late attach, of kombineer met Magisk/Zygisk verberging.
+- By geharde apps, verkies rooted testing met server + late attach, of kombineer dit met Magisk/Zygisk hiding.
## Handleidings
-### [Handleiding 1](frida-tutorial-1.md)
+### [Tutorial 1](frida-tutorial-1.md)
-**Van**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
+**Bron**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
-**Bronkode**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
+**Source Code**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
-**Volg die [skakel om dit te lees](frida-tutorial-1.md).**
+**Volg die [link to read it](frida-tutorial-1.md).**
-### [Handleiding 2](frida-tutorial-2.md)
+### [Tutorial 2](frida-tutorial-2.md)
-**Van**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Dele 2, 3 & 4)\
-**APKs en Bronkode**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
+**Bron**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Dele 2, 3 & 4)\
+**APKs and Source code**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
-**Volg die [skakel om dit te lees](frida-tutorial-2.md).**
+**Volg die[ link to read it.](frida-tutorial-2.md)**
-### [Handleiding 3](owaspuncrackable-1.md)
+### [Tutorial 3](owaspuncrackable-1.md)
-**Van**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
+**Bron**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level_01/UnCrackable-Level1.apk)
-**Volg die [skakel om dit te lees](owaspuncrackable-1.md).**
+**Volg die [link to read it](owaspuncrackable-1.md).**
-**Jy kan meer Awesome Frida-skripte hier vind:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
+**Jy kan meer Awesome Frida scripts hier vind:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
## Vinnige Voorbeelde
@@ -114,7 +114,7 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
#frozen so that the instrumentation can occur, and the automatically
#continue execution with our modified code.
```
-### Basiese Python-skrip
+### Basiese Python Skrip
```python
import frida, sys
@@ -144,7 +144,7 @@ sysexit.exit.overload("int").implementation = function (var_0) {
send("java.lang.System.exit(I)V // We avoid exiting the application :)")
}
```
-Hook MainActivity `.onStart()` en `.onCreate()`
+Hook MainActivity `.onStart()` & `.onCreate()`
```javascript
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity")
mainactivity.onStart.overload().implementation = function () {
@@ -168,9 +168,9 @@ send("Activity HIT!!!")
var ret = this.onCreate.overload("android.os.Bundle").call(this, var_0)
}
```
-### Hooking funksies met parameters en die waarde terugkry
+### Hooking funksies met parameters en die waarde ophaal
-Hooking 'n decryption function. Druk die input, roep die oorspronklike funksie aan om die input te decrypt en uiteindelik druk die plain data uit:
+Hooking van 'n decryption-funksie. Druk die input, roep die oorspronklike funksie aan om die input te decrypt, en druk uiteindelik die plain data:
```javascript
function getString(data) {
var ret = ""
@@ -195,7 +195,7 @@ send("Decrypted flag: " + flag)
return ret //[B
}
```
-### Hooking funksies en hulle aanroep met ons inset
+### Hooking van funksies en hulle aanroep met ons inset
Hook 'n funksie wat 'n string ontvang en roep dit aan met 'n ander string (van [here](https://11x256.github.io/Frida-hooking-android-part-2/))
```javascript
@@ -210,11 +210,11 @@ console.log("Return value: " + ret)
return ret
}
```
-### Kry 'n reeds geskepte objek van 'n klas
+### Kry 'n reeds geskepte object van 'n class
-As jy 'n attribuut van 'n geskepte objek wil uittrek, kan jy dit gebruik.
+As jy 'n attribute van 'n reeds geskepte object wil uittrek, kan jy dit so gebruik.
-In hierdie voorbeeld gaan jy sien hoe om die objek van die klas my_activity te kry en hoe om die funksie .secret() aan te roep wat 'n privaat attribuut van die objek sal afdruk:
+In hierdie voorbeeld gaan jy sien hoe om die object van die class my_activity te kry en hoe om die function .secret() aan te roep wat 'n private attribute van die object sal afdruk:
```javascript
Java.choose("com.example.a11x256.frida_test.my_activity", {
onMatch: function (instance) {
@@ -225,7 +225,7 @@ console.log("Result of secret func: " + instance.secret())
onComplete: function () {},
})
```
-## Ander Frida-handleidings
+## Ander Frida-tutoriale
- [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
- [Part 1 of Advanced Frida Usage blog series: IOS Encryption Libraries](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
@@ -233,8 +233,8 @@ onComplete: function () {},
## Verwysings
-- [Bou 'n herhaalbare Android Bug Bounty-lab: Emulator vs Magisk, Burp, Frida, and Medusa](https://www.yeswehack.com/learn-bug-bounty/android-lab-mobile-hacking-tools)
-- [Frida Gadget dokumentasie](https://frida.re/docs/gadget/)
-- [Frida vrystellings (server binaries)](https://github.com/frida/frida/releases)
+- [Build a Repeatable Android Bug Bounty Lab: Emulator vs Magisk, Burp, Frida, and Medusa](https://www.yeswehack.com/learn-bug-bounty/android-lab-mobile-hacking-tools)
+- [Frida Gadget documentation](https://frida.re/docs/gadget/)
+- [Frida releases (server binaries)](https://github.com/frida/frida/releases)
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/mobile-pentesting/android-app-pentesting/install-burp-certificate.md b/src/mobile-pentesting/android-app-pentesting/install-burp-certificate.md
index d57b9d277..aab5cf44b 100644
--- a/src/mobile-pentesting/android-app-pentesting/install-burp-certificate.md
+++ b/src/mobile-pentesting/android-app-pentesting/install-burp-certificate.md
@@ -5,7 +5,7 @@
## Stelselwye proxy via ADB
-Konfigureer 'n globale HTTP proxy sodat alle apps verkeer deur jou interceptor (Burp/mitmproxy) stuur:
+Konfigureer 'n globale HTTP-proxy sodat alle apps verkeer deur jou interceptor (Burp/mitmproxy) gaan:
```bash
# Set proxy (device/emulator must reach your host IP)
adb shell settings put global http_proxy 192.168.1.2:8080
@@ -13,20 +13,20 @@ adb shell settings put global http_proxy 192.168.1.2:8080
# Clear proxy
adb shell settings put global http_proxy :0
```
-Wenk: In Burp bind jou luisteraar aan 0.0.0.0 sodat toestelle op die LAN kan koppel (Proxy -> Options -> Proxy Listeners).
+Tip: In Burp bind jou listener aan 0.0.0.0 sodat toestelle op die LAN kan koppel (Proxy -> Options -> Proxy Listeners).
## Op 'n Virtuele Masjien
-Eerstens moet jy die Der-sertifikaat vanaf Burp aflaai. Jy kan dit doen in _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_
+Eerstens moet jy die Der certificate van Burp aflaai. Jy kan dit doen in _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_
.png>)
-**Voer die sertifikaat uit in Der-formaat** en kom ons **transformeer** dit na 'n formaat wat **Android** gaan kan **begryp.** Let op dat **om die Burp-sertifikaat op die Android-masjien in AVD te konfigureer** jy hierdie masjien **met** die **`-writable-system`** opsie moet **begin.**\
-Byvoorbeeld kan jy dit so begin:
+**Export the certificate in Der format** en kom ons **transformeer** dit na 'n vorm wat **Android** gaan kan **begryp.** Neem kennis dat **in order to configure the burp certificate on the Android machine in AVD** jy hierdie masjien moet **run** **with** die **`-writable-system`** opsie.\
+Byvoorbeeld kan jy dit soos volg begin:
```bash
C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
```
-Dan, om **die Burp-sertifikaat te konfigureer**, doen:
+Dan, om **burps sertifikaat te konfigureer, doen**:
```bash
openssl x509 -inform DER -in burp_cacert.der -out burp_cacert.pem
CERTHASHNAME="`openssl x509 -inform PEM -subject_hash_old -in burp_cacert.pem | head -1`.0"
@@ -37,15 +37,15 @@ adb shell mv /sdcard/$CERTHASHNAME /system/etc/security/cacerts/ #Move to correc
adb shell chmod 644 /system/etc/security/cacerts/$CERTHASHNAME #Assign privileges
adb reboot #Now, reboot the machine
```
-Sodra die **masjien klaar herlaai is** sal die Burp-sertifikaat deur dit gebruik word!
+Sodra die **masjien klaar herbegin het** sal die Burp-sertifikaat deur dit gebruik word!
-## Gebruik van Magisc
+## Using Magisc
-As jy **jou toestel met Magisc geroot het** (miskien 'n emulator), en jy **kan nie** die vorige **stappe** volg om die Burp-sertifikaat te installeer omdat die **lĂȘerstelsel slegs-lees** is en jy dit nie kan remount om dit skryfbaar te maak nie, is daar 'n ander manier.
+As jy jou toestel **met Magisc geroot** het (miskien 'n emulator), en jy **kan nie** die vorige **stappe** volg om die Burp-sertifikaat te installeer omdat die **lĂȘerstelsel is read-only** en jy dit nie na skryfbaar kan heraanmerk nie, is daar 'n ander manier.
-In [**hierdie video**](https://www.youtube.com/watch?v=qQicUW0svB8) word dit verduidelik: jy moet:
+Soos verduidelik in [**this video**](https://www.youtube.com/watch?v=qQicUW0svB8) moet jy:
-1. **Installeer 'n CA certificate**: Net **drag&drop** die DER Burp-sertifikaat en **verander die uitbreiding** na `.crt` op die toestel sodat dit in die Downloads folder gestoor word en gaan na `Install a certificate` -> `CA certificate`
+1. **Install a CA certificate**: Just **drag&drop** the DER Burp certificate **changing the extension** to `.crt` in the mobile so it's stored in the Downloads folder and go to `Install a certificate` -> `CA certificate`
@@ -53,27 +53,27 @@ In [**hierdie video**](https://www.youtube.com/watch?v=qQicUW0svB8) word dit ver
-2. **Maak dit System trusted**: Laai die Magisc-module [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (ÊŒn .zip-lĂȘer) af, **drag&drop dit** in die telefoon, gaan na die **Magics app** op die telefoon na die **`Modules`**-afdeling, klik op **`Install from storage`**, kies die `.zip`-module en sodra dit geĂŻnstalleer is **herbegin** die telefoon:
+2. **Make it System trusted**: Download the Magisc module [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (a .zip file), **drag&drop it** in the phone, go to the **Magics app** in the phone to the **`Modules`** section, click on **`Install from storage`**, select the `.zip` module and once installed **reboot** the phone:
-- Nadat jy herbegin het, gaan na `Trusted credentials` -> `SYSTEM` en kontroleer dat die Postswigger-sertifikaat daar is
+- Na die herbegin, gaan na `Trusted credentials` -> `SYSTEM` en kontroleer of die Postswigger-sertifikaat daar is
-### Leer hoe om 'n Magisc-module te skep
+### Learn how to create a Magisc module
-Kyk na [https://medium.com/@justmobilesec/magisk-for-mobile-pentesting-rooting-android-devices-and-building-custom-modules-part-ii-22badc498437](https://medium.com/@justmobilesec/magisk-for-mobile-pentesting-rooting-android-devices-and-building-custom-modules-part-ii-22badc498437)
+Check [https://medium.com/@justmobilesec/magisk-for-mobile-pentesting-rooting-android-devices-and-building-custom-modules-part-ii-22badc498437](https://medium.com/@justmobilesec/magisk-for-mobile-pentesting-rooting-android-devices-and-building-custom-modules-part-ii-22badc498437)
-## Na Android 14
+## Post Android 14
-In die nuutste Android 14-uitgawe is daar 'n beduidende verandering waargeneem in die hantering van system-trusted Certificate Authority (CA) certificates. Voorheen is hierdie sertifikate bewaar in **`/system/etc/security/cacerts/`**, toeganklik en wysigbaar vir gebruikers met root-regte, wat onmiddellike toepassing deur die stelsel toegelaat het. Met Android 14 is die stoorplek egter verskuif na **`/apex/com.android.conscrypt/cacerts`**, 'n gids binne die **`/apex`**-pad, wat inherente onveranderlikheid het.
+In die nuutste Android 14 vrystelling is daar 'n beduidende verskuiwing in die hantering van stelsel-vertroude Certificate Authority (CA) sertifikate. Voorheen is hierdie sertifikate in **`/system/etc/security/cacerts/`** gehou, toeganklik en veranderbaar deur gebruikers met root-regte, wat onmiddellike toepassing oor die stelsel toegelaat het. Met Android 14 is die stoorplek egter verskuif na **`/apex/com.android.conscrypt/cacerts`**, 'n gids binne die **`/apex`**-pad, wat van aard onveranderlik is.
-Pogings om die **APEX cacerts path** as skryfbaar te remount misluk, aangesien die stelsel sulke operasies nie toelaat nie. Selfs pogings om die gids te unmount of te oorlaai met 'n tydelike lĂȘerstelsel (tmpfs) om die onveranderlikheid te omseil, omseil dit nie die probleem nie; toepassings bly steeds toegang tot die oorspronklike sertifikaatdata hĂȘ ongeag veranderinge op die lĂȘerstelselvlak. Hierdie veerkragtigheid is te danke aan die feit dat die **`/apex`**-mount geconfigureer is met PRIVATE propagation, wat verseker dat enige wysigings binne die **`/apex`**-gids nie ander prosesse beĂŻnvloed nie.
+Pogings om die **APEX cacerts path** as skryfbaar te heraanmerk misluk, aangesien die stelsel sulke bewerkings nie toelaat nie. Selfs pogings om die gids te unmount of met 'n tydelike lĂȘerstelsel (tmpfs) te oorlaai om die onveranderlikheid te omseil, werk nie; toepassings bly die oorspronklike sertifikaatdata benader ongeag veranderinge op die lĂȘerstelselvlak. Hierdie veerkragtigheid is te wyte aan die feit dat die **`/apex`**-mount gekonfigureer is met PRIVATE propagation, wat verseker dat enige wysigings binne die **`/apex`**-gids nie ander prosesse beĂŻnvloed nie.
-Die initialisering van Android behels die `init`-proses wat, by die begin van die bedryfstelsel, ook die Zygote-proses inisieer. Hierdie proses is verantwoordelik vir die bekendstelling van toepassingsprosesse met 'n nuwe mount namespace wat 'n private **`/apex`**-mount insluit, en sodoende veranderinge aan hierdie gids van ander prosesse isoleer.
+Die inisialisering van Android behels die `init`-proses wat, wanneer die bedryfstelsel begin, ook die Zygote-proses inisieer. Hierdie proses is verantwoordelik vir die loods van toepassingsprosesse met 'n nuwe mount namespace wat 'n private **`/apex`**-mount insluit, en sodoende veranderinge aan hierdie gids van ander prosesse isoleer.
-Nietemin bestaan daar 'n ompad vir diegene wat die system-trusted CA-sertifikate binne die **`/apex`**-gids moet wysig. Dit behels handmatige remounting van **`/apex`** om die PRIVATE propagation te verwyder, sodat dit skryfbaar word. Die proses sluit in om die inhoud van **`/apex/com.android.conscrypt`** na 'n ander ligging te kopieer, die **`/apex/com.android.conscrypt`**-gids te unmount om die lees-alleen-beperking te verwyder, en dan die inhoud terug te plaas na hul oorspronklike ligging binne **`/apex`**. Hierdie benadering vereis vinnige optrede om stelselbotsings te voorkom. Om stelselwye toepassing van hierdie veranderinge te verseker, word dit aanbeveel om die `system_server` te herbegin, wat effektief alle toepassings herbegin en die stelsel na 'n konsekwente toestand bring.
+Nietemin bestaan daar 'n workaround vir dié wat die stelsel-vertroude CA-sertifikate binne die **`/apex`**-gids wil wysig. Dit behels die handmatige heraanmerking van **`/apex`** om die PRIVATE propagation te verwyder, sodat dit skryfbaar word. Die proses sluit in om die inhoud van **`/apex/com.android.conscrypt`** na 'n ander ligging te kopieer, die **`/apex/com.android.conscrypt`**-gids te unmount om die read-only beperking op te hef, en daarna die inhoud terug te sit na hul oorspronklike ligging binne **`/apex`**. Hierdie benadering vereis vinnige optrede om stelselbotsings te vermy. Om te verseker dat die veranderinge stelselwyd toegepas word, word dit aanbeveel om die `system_server` te herbegin, wat effektief alle toepassings herbegin en die stelsel na 'n konsekwente toestand bring.
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.
@@ -133,24 +133,24 @@ echo "System certificate injected"
```
### Bind-mounting deur NSEnter
-1. **Opstel van 'n Skryfbare Gids**: Aanvanklik word 'n skryfbare gids geskep deur 'n `tmpfs` oor die bestaande non-APEX stelselsertifikaatgids te mount. Dit word bereik met die volgende opdrag:
+1. **Opstel van 'n Skryfbare Gids**: Aanvanklik word 'n skryfbare gids geskep deur 'n `tmpfs` oor die bestaande non-APEX stelsel sertifikaatgids te mount. Dit word bereik met die volgende opdrag:
```bash
mount -t tmpfs tmpfs /system/etc/security/cacerts
```
-2. **Voorbereiding van CA-sertifikate**: Nadat die skryfbare gids opgestel is, moet die CA-sertifikate wat gebruik gaan word in hierdie gids gekopieer word. Dit kan insluit om die standaardsertifikate vanaf `/apex/com.android.conscrypt/cacerts/` te kopieer. Dit is noodsaaklik om die toegangsregte en SELinux-etikette van hierdie sertifikate ooreenkomstig aan te pas.
-3. **Bind-mounting vir Zygote**: Deur `nsenter` te gebruik, betree mens Zygote se mount-naamruimte. Zygote, die proses wat verantwoordelik is vir die opstart van Android-toepassings, vereis hierdie stap om te verseker dat alle toepassings wat van nou af begin die nuut gekonfigureerde CA-sertifikate gebruik. Die opdrag wat gebruik word, is:
+2. **Voorbereiding van CA certificates**: Na die opstel van die skryfbare gids moet die CA certificates wat jy wil gebruik na hierdie gids gekopieer word. Dit kan behels dat jy die standaard sertifikate van `/apex/com.android.conscrypt/cacerts/` kopieer. Dit is noodsaaklik om die toestemmings en SELinux-labels van hierdie sertifikate dienooreenkomstig aan te pas.
+3. **Bind Mounting vir Zygote**: Deur `nsenter` te gebruik, betree 'n mens Zygote se mount namespace. Zygote, die proses wat verantwoordelik is vir die begin van Android-toepassings, vereis hierdie stap om te verseker dat alle toepassings wat van nou af begin die nuut gekonfigureerde CA certificates gebruik. Die opdrag wat gebruik word is:
```bash
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
-Dit verseker dat elke nuwe app wat begin die opgedateerde CA certificates-opstelling sal toepas.
+Dit verseker dat elke nuwe app wat begin, die opgedateerde CA certificates-opstelling sal volg.
-4. **Toepassing van veranderinge op lopende apps**: Om die veranderinge op reeds lopende apps toe te pas, word `nsenter` weer gebruik om in elke app se namespace afsonderlik in te gaan en 'n soortgelyke bind mount uit te voer. Die nodige opdrag is:
+4. **Wysigings op lopende apps toepas**: Om die wysigings op reeds lopende apps toe te pas, word `nsenter` weer gebruik om elke app se namespace individueel binne te gaan en 'n soortgelyke bind mount uit te voer. Die nodige opdrag is:
```bash
nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
-5. **Alternative Approach - Soft Reboot**: 'n Alternatiewe metode behels die uitvoer van die bind mount op die `init` proses (PID 1), gevolg deur 'n soft reboot van die bedryfstelsel met die `stop && start` opdragte. Hierdie benadering sal die veranderinge oor alle namespaces versprei, sodat dit nie nodig is om elke lopende app afsonderlik aan te spreek nie. Hierdie metode word egter oor die algemeen minder verkies weens die ongerief van herbegin.
+5. **Alternatiewe benadering - Sagte herbegin**: 'n Alternatiewe metode behels om die bind mount op die `init`-proses (PID 1) uit te voer, gevolg deur 'n sagte herbegin van die bedryfstelsel met die `stop && start`-kommando's. Hierdie benadering sal die veranderinge oor alle namespaces toepas, en die behoefte om elke lopende app individueel aan te spreek, vermy. Hierdie metode is egter oor die algemeen minder verkies weens die ongerief van herbegin.
-## Verwysings
+## References
- [Android 14: Install a system CA certificate on a rooted device](https://httptoolkit.com/blog/android-14-install-system-ca-certificate/)
- [Build a Repeatable Android Bug Bounty Lab: Emulator vs Magisk, Burp, Frida, and Medusa](https://www.yeswehack.com/learn-bug-bounty/android-lab-mobile-hacking-tools)
diff --git a/src/network-services-pentesting/pentesting-smb/README.md b/src/network-services-pentesting/pentesting-smb/README.md
index 92cb00867..1604592a2 100644
--- a/src/network-services-pentesting/pentesting-smb/README.md
+++ b/src/network-services-pentesting/pentesting-smb/README.md
@@ -2,46 +2,45 @@
{{#include ../../banners/hacktricks-training.md}}
-## **Port 139**
+## **Poort 139**
-Die _**Network Basic Input Output System**_** (NetBIOS)** is 'n sagtewareprotokol wat ontwerp is om toepassings, rekenaars en desktops binne 'n plaaslike netwerk (LAN) in staat te stel om met netwerkhardware te kommunikeer en **die oordrag van data oor die netwerk te vergemaklik**. Die identifikasie en ligging van sagtewaretoepassings wat op 'n NetBIOS-netwerk werk, word bewerkstellig deur hul NetBIOS-name, wat tot 16 karakters lank kan wees en dikwels verskil van die rekenaarnaam. 'n NetBIOS-sessie tussen twee toepassings word geïnisieer wanneer een toepassing (wat as die kliënt optree) 'n opdrag gee om 'n ander toepassing (wat as die bediener optree) te "call" deur gebruik te maak van **TCP Port 139**.
+Die _**Network Basic Input Output System**_** (NetBIOS)** is 'n sagtewareprotokol wat ontwerp is om toepassings, rekenaars en desktops binne 'n lokale netwerk (LAN) in staat te stel om met netwerkhardeware te kommunikeer en **die oordrag van data oor die netwerk te fasiliteer**. Die identifikasie en ligging van sagtewaretoepassings wat op 'n NetBIOS-netwerk bedryf word, word deur hul NetBIOS names bereik, wat tot 16 karakters lank kan wees en dikwels verskil van die rekenaarnaam. 'n NetBIOS-sessie tussen twee toepassings word geĂŻnisieer wanneer een toepassing (optredend as die client) 'n opdrag gee om "call" na 'n ander toepassing (optredend as die server) te rig deur gebruik te maak van **TCP Port 139**.
```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
## Port 445
-Tegnies verwys Port 139 na âNBT over IPâ, terwyl Port 445 geĂŻdentifiseer word as âSMB over IPâ. Die akroniem **SMB** staan vir â**Server Message Blocks**â, wat ook modern bekend is as die **Common Internet File System (CIFS)**. As 'n toepassingslaag-netwerkprotokol word SMB/CIFS hoofsaaklik gebruik om gedeelde toegang tot lĂȘers, drukkers en seriĂ«le poorte te verleen, en om verskeie vorme van kommunikasie tussen nodes op 'n netwerk te fasiliteer.
+Tegnieks gesproke word Port 139 verwys as âNBT over IPâ, terwyl Port 445 as âSMB over IPâ geĂŻdentifiseer word. Die akroniem **SMB** staan vir â**Server Message Blocks**â, wat ook modern as die **Common Internet File System (CIFS)** bekend staan. As 'n application-layer netwerkprotokol word SMB/CIFS hoofsaaklik gebruik om gedeelde toegang tot lĂȘers, drukkers, seriĂ«le poorte te verskaf en verskeie vorme van kommunikasie tussen nodes op 'n netwerk te fasiliteer.
-Byvoorbeeld, in die konteks van Windows word beklemtoon dat SMB direk oor TCP/IP kan werk deur gebruik te maak van port 445, wat die behoefte aan NetBIOS oor TCP/IP uitskakel. Omgekeerd word by ander stelsels die gebruik van port 139 waargeneem, wat aandui dat SMB in samewerking met NetBIOS oor TCP/IP uitgevoer word.
+Byvoorbeeld, in die konteks van Windows word beklemtoon dat SMB direk oor TCP/IP kan werk, wat die behoefte aan NetBIOS oor TCP/IP oortollig maak deur gebruik te maak van poort 445. In teenstelling daarmee, op ander stelsels word poort 139 gebruik, 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 **client-server**-model werk, is ontwerp om **toegang tot lĂȘers**, gidse en ander netwerkbronne soos printers en routers te reguleer. Dit word hoofsaaklik binne die **Windows**-bedryfstelselreeks gebruik. SMB verseker agterwaartse versoenbaarheid, sodat toestelle met nuwer weergawes van Microsoft se bedryfstelsel naatloos met toestelle wat ouer weergawes gebruik kan kommunikeer. Boonop bied die **Samba**-projek 'n gratis sagteware-oplossing wat die implementering van SMB op **Linux**- en Unix-stelsels moontlik maak en sodoende kruisplatformkommunikasie via SMB vergemaklik.
+Die **Server Message Block (SMB)** protokol, wat in 'n **kliĂ«nt-bediener** model werk, is ontwerp om **toegang tot lĂȘers**, gidse, en ander netwerkhulpbronne soos drukkers en routers te reĂ«l. Hoofsaaklik gebruik binne die **Windows** bedryfstelselreeks, verseker SMB agterwaartse versoenbaarheid, wat toestelle met nuwer weergawes van Microsoft's bedryfstelsel toelaat om naatloos met diĂ© wat ouer weergawes gebruik te kommunikeer. Verder bied die **Samba** projek 'n gratis sagteware-oplossing wat die implementering van SMB op **Linux** en **Unix** stelsels moontlik maak, en sodoende kruis-platform kommunikasie deur SMB vergemaklik.
-Shares, wat **willekeurige dele van die plaaslike lĂȘerstelsel** verteenwoordig, kan deur 'n SMB-bediener aangebied word, wat die hiĂ«rargie vir 'n kliĂ«nt sigbaar maak wat gedeeltelik **onafhanklik** is van die werklike struktuur van die bediener. Die **Access Control Lists (ACLs)**, wat **toegangsregte** definieer, laat vir **fynkorrelige beheer** oor gebruikerspermissies toe, insluitend eienskappe soos **`execute`**, **`read`**, en **`full access`**. Hierdie permissies kan gebaseer op die shares aan individuele gebruikers of groepe toegekĂȘn word en is apart van die plaaslike permissies wat op die bediener ingestel is.
+Shares, wat **willekeurige dele van die plaaslike lĂȘerstelsel** verteenwoordig, kan deur 'n SMB bediener aangebied word, wat die hiĂ«rargie vir 'n kliĂ«nt sigbaar maak en deels onafhanklik van die bediener se werklike struktuur kan wees. Die Access Control Lists (ACLs), wat toegangregte definieer, laat fynkorrelbeheer oor gebruikerspermisse toe, insluitend attribuut soos `execute`, `read`, en `full access`. Hierdie permissies kan aan individuele gebruikers of groepe toegewys word, gebaseer op die shares, en verskil van die plaaslike permissies wat op die bediener gestel is.
### IPC$ Share
-Toegang tot die IPC$ share kan verkry word via 'n anonieme null session, wat interaksie met dienste wat deur named pipes blootgestel word moontlik maak. Die nutsprogram `enum4linux` is nuttig hiervoor. As dit behoorlik gebruik word, stel dit in staat om die volgende te bekom:
+Toegang tot die IPC$ share kan verkry word deur 'n anonieme null session, wat interaksie met dienste wat via named pipes blootgestel word, toelaat. Die hulpmiddel `enum4linux` is nuttig vir hierdie doel. Korrekt gebruik, stel dit in staat om die verkryging van:
- Inligting oor die bedryfstelsel
- Besonderhede oor die ouer-domein
-- 'n Samestelling van plaaslike gebruikers en groepe
+- 'n samestelling van plaaslike gebruikers en groepe
- Inligting oor beskikbare SMB shares
-- Die geldende stelsel-sekuriteitsbeleid
+- Die geldende stelselsekuriteitsbeleid
-Hierdie funksionaliteit is noodsaaklik vir netwerkadministrateurs en sekuriteitspraktisyns om die sekuriteitstoestand van SMB (Server Message Block)-dienste op 'n netwerk te evalueer. `enum4linux` bied 'n omvattende oorsig van die teikenstelsel se SMB-omgewing, wat noodsaaklik is om potensiële kwesbaarhede te identifiseer en te verseker dat die SMB-dienste behoorlik beveilig is.
+Hierdie funksionaliteit is krities vir netwerkadministrateurs en sekuriteitsprofessionals om die sekuriteitsposisie van SMB (Server Message Block) dienste op 'n netwerk te beoordeel. `enum4linux` bied 'n omvattende oorsig van die teikenstelsel se SMB-omgewing, wat noodsaaklik is om potensiële kwesbaarhede te identifiseer en te verseker dat die SMB-dienste behoorlik beveilig is.
```bash
enum4linux -a target_ip
```
-Die bogenoemde opdrag is 'n voorbeeld van hoe `enum4linux` gebruik kan word om 'n full enumeration teen 'n teiken gespesifiseer deur `target_ip` uit te voer.
+Die bogenoemde opdrag is 'n voorbeeld van hoe `enum4linux` gebruik kan word om 'n volledige enumerasie teen 'n teiken wat deur `target_ip` gespesifiseer word uit te voer.
## Wat is NTLM
-As jy nie weet wat NTLM is nie of as jy wil weet hoe dit werk en hoe om dit te misbruik, sal jy hierdie bladsy oor **NTLM** baie interessant vind, waarin verduidelik word **hoe hierdie protokol werk en hoe jy dit kan uitbuit:**
-
+As jy nie weet wat NTLM is nie, of jy wil weet hoe dit werk en hoe om dit te misbruik, sal jy hierdie bladsy oor **NTLM** baie interessant vind, waarin verduidelik word **hoe hierdie protokol werk en hoe jy dit in jou voordeel kan benut:**
{{#ref}}
../../windows-hardening/ntlm/
@@ -49,16 +48,16 @@ As jy nie weet wat NTLM is nie of as jy wil weet hoe dit werk en hoe om dit te m
## **Server Enumeration**
-### **Scan** a network op soek na hosts:
+### **Scan** 'n netwerk op soek na hosts:
```bash
nbtscan -r 192.168.0.1/24
```
### SMB-bedienerweergawe
-Om na moontlike exploits vir die SMB-bedienerweergawe te soek, is dit belangrik om te weet watter weergawe gebruik word. As hierdie inligting nie in ander gebruikte gereedskap verskyn nie, kan jy:
+Om moontlike exploits vir die SMB-weergawe te soek, is dit belangrik om te weet watter weergawe gebruik word. As hierdie inligting nie in ander gebruikte gereedskap verskyn nie, kan jy:
- Gebruik die **MSF** auxiliary module `**auxiliary/scanner/smb/smb_version**`
-- Of hierdie skrip:
+- Of hierdie script:
```bash
#!/bin/sh
#Author: rewardone
@@ -80,17 +79,17 @@ echo "" && sleep .1
msf> search type:exploit platform:windows target:2008 smb
searchsploit microsoft smb
```
-### **Moontlike Kredensiale**
+### **Moontlike** Kredensiale
-| **Gebruikersnaam(s)** | **Algemene wagwoorde** |
-| --------------------- | ---------------------------------------- |
-| _(leeg)_ | _(leeg)_ |
-| guest | _(blank)_ |
-| Administrator, admin | _(blank)_, password, administrator, admin |
-| arcserve | arcserve, backup |
-| tivoli, tmersrvd | tivoli, tmersrvd, admin |
-| backupexec, backup | backupexec, backup, arcada |
-| test, lab, demo | password, test, lab, demo |
+| **Gebruikersnaam(e)** | **Common passwords** |
+| -------------------- | ----------------------------------------- |
+| _(leeg)_ | _(leeg)_ |
+| guest | _(blank)_ |
+| Administrator, admin | _(blank)_, password, administrator, admin |
+| arcserve | arcserve, backup |
+| tivoli, tmersrvd | tivoli, tmersrvd, admin |
+| backupexec, backup | backupexec, backup, arcada |
+| test, lab, demo | password, test, lab, demo |
### Brute Force
@@ -120,7 +119,7 @@ rpcclient -U "username%passwd" #With creds
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]
```
-### Enumerate Users, Groups & Logged On Users
+### Enumereer Gebruikers, Groepe & Aangemelde Gebruikers
Hierdie inligting behoort reeds deur enum4linux en enum4linux-ng versamel te wees.
```bash
@@ -150,28 +149,28 @@ use auxiliary/scanner/smb/smb_lookupsid
set rhosts hostname.local
run
```
-### **Enumerering van LSARPC en SAMR rpcclient**
+### **Enumerasie van LSARPC en SAMR rpcclient**
{{#ref}}
rpcclient-enumeration.md
{{#endref}}
-### GUI-verbinding vanaf Linux
+### GUI-verbinding vanaf linux
#### In die terminal:
`xdg-open smb://cascade.htb/`
-#### In die lĂȘerblaaier-venster (nautilus, thunar, ens.)
+#### In die lĂȘerblaaier-venster (nautilus, thunar, etc)
`smb://friendzone.htb/general/`
## Enumerasie van gedeelde vouers
-### Lys gedeelde vouers
+### Lys van gedeelde vouers
-Dit word altyd aanbeveel om te kyk of jy enige toegang het. As jy nie credentials het nie, probeer om **null** **credentials/guest user** te gebruik.
+Dit word altyd aanbeveel om te kyk of jy toegang tot enigiets het. As jy nie credentials het nie, probeer om **null** **credentials/guest user** te gebruik.
```bash
smbclient --no-pass -L // # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] // #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
@@ -185,7 +184,7 @@ crackmapexec smb -u '' -p '' --shares #Null user
crackmapexec smb -u 'username' -p 'password' --shares #Guest user
crackmapexec smb -u 'username' -H '' --shares #Guest user
```
-### **Koppel/Lys ân gedeelde vouer**
+### **Koppel/Lys 'n gedeelde vouer**
```bash
#Connect using smbclient
smbclient --no-pass ///
@@ -197,11 +196,11 @@ smbmap [-u "username" -p "password"] -R [Folder] -H [-P ] # Recursive
smbmap [-u "username" -p "password"] -r [Folder] -H [-P ] # Non-Recursive list
smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-the-Hash
```
-### **Handmatig opnoem van Windows shares en daaraan koppel**
+### **Manueel Windows shares opnoem en daaraan koppel**
-Dit kan wees dat jy beperk is om enige shares van die gasheer-masjien te vertoon, en wanneer jy probeer om hulle te lys, lyk dit asof daar geen shares is om te koppel nie. Dit kan dus die moeite werd wees om kortliks te probeer om manueel aan 'n share te koppel. Om die shares manueel op te noem, wil jy kyk na antwoorde soos NT_STATUS_ACCESS_DENIED en NT_STATUS_BAD_NETWORK_NAME wanneer jy 'n geldige session gebruik (bv. null session of valid credentials). Dit kan aandui of die share bestaan en jy nie toegang daartoe het nie, of die share bestaan glad nie.
+Dit is moontlik dat jy beperk is om enige shares van die gasheer te wys, en wanneer jy probeer om dit op te lys, lyk dit asof daar geen shares is om aan te koppel nie. Dit kan dus die moeite werd wees om kortliks te probeer om manueel aan 'n share te koppel. Om die shares manueel op te noem, wil jy moontlik na antwoorde soos NT_STATUS_ACCESS_DENIED en NT_STATUS_BAD_NETWORK_NAME kyk wanneer 'n geldige sessie gebruik word (bv. null session of valid credentials). Hierdie kan aandui of die share bestaan en jy nie toegang daartoe het nie, of die share bestaan glad nie.
-Common share names for windows targets are
+Common share names for Windows targets are
- C$
- D$
@@ -212,14 +211,14 @@ Common share names for windows targets are
- SYSVOL
- NETLOGON
-(Common share names from _**Network Security Assessment 3rd edition**_)
+(Common share-names uit _**Network Security Assessment 3rd edition**_)
-Jy kan probeer om daarmee te verbind deur die volgende kommando te gebruik
+Jy kan probeer om daaraan te koppel deur die volgende kommando te gebruik
```bash
smbclient -U '%' -N \\\\\\ # null session to connect to a windows share
smbclient -U '' \\\\\\ # authenticated session to connect to a windows share (you will be prompted for a password)
```
-of hierdie script (met 'n null session)
+of hierdie skrip (gebruik 'n null session)
```bash
#/bin/bash
@@ -241,7 +240,7 @@ voorbeelde
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
```
-### **Lys netwerkshares vanaf Windows / sonder gereedskap van derde partye**
+### **Enumereer shares vanaf Windows / sonder derdeparty-instrumente**
PowerShell
```bash
@@ -253,7 +252,7 @@ get-smbshare -CimSession ""
# Retrieves the connections established from the local SMB client to the SMB servers.
Get-SmbConnection
```
-CMD-konsol
+CMD konsole
```shell
# List shares on the local computer
net share
@@ -267,16 +266,16 @@ fsmgmt.msc
# Computer Management: Computer Management > System Tools > Shared Folders > Shares
compmgmt.msc
```
-explorer.exe (grafies), tik `\\\` om die beskikbare nie-verborgde shares te sien.
+explorer.exe (grafies), voer `\\\` in om die beskikbare nie-verborgde shares te sien.
-### Mount 'n shared folder
+### Monteer 'n gedeelde gids
```bash
mount -t cifs //x.x.x.x/share /mnt/share
mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
```
-### **Download files**
+### **Laai lĂȘers af**
-Lees die vorige afdelings om te leer hoe om verbinding te maak met credentials/Pass-the-Hash.
+Lees die vorige afdelings om te leer hoe om met credentials/Pass-the-Hash te verbind.
```bash
#Search a file and download
sudo smbmap -R Folder -H -A -q # Search the file in recursive mode and download it inside /usr/share/smbmap
@@ -295,12 +294,12 @@ Opdragte:
- mask: spesifiseer die mask wat gebruik word om die lĂȘers binne die gids te filter (bv. "" vir alle lĂȘers)
- recurse: skakel rekursie aan (standaard: af)
-- prompt: skakel die prompting vir lĂȘernaam uit (standaard: aan)
-- mget: kopieer alle lĂȘers wat aan die mask voldoen van die host na die kliĂ«ntmasjien
+- prompt: skakel die bevestiging vir bestandsname af (standaard: aan)
+- mget: kopieer alle lĂȘers wat by die mask pas vanaf die host na die client machine
-(_Inligting uit die manpage van smbclient_)
+(_Inligting vanaf die manpage van smbclient_)
-### Soektog na gedeelde vouers op die domein
+### Soektog na gedeelde domeinvouers
- [**Snaffler**](https://github.com/SnaffCon/Snaffler)
```bash
@@ -312,51 +311,51 @@ 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'
```
-Spesiaal interessant in shares is die lĂȘers met die naam **`Registry.xml`**, aangesien hulle **miskien wagwoorde bevat** vir gebruikers wat met **autologon** via Group Policy gekonfigureer is. Of **`web.config`**-lĂȘers, aangesien hulle inlogbesonderhede bevat.
+Wat veral interessant is op shares, is lĂȘers soos **`Registry.xml`**, aangesien hulle **wagwoorde kan bevat** vir gebruikers wat via Group Policy met **autologon** gekonfigureer is. Of **`web.config`**-lĂȘers, aangesien hulle credentials bevat.
> [!TIP]
-> Die **SYSVOL share** is **leesbaar** deur alle geverifieerde gebruikers in die domein. Daarin kan jy baie verskillende batch-, VBScript- en PowerShell **scripts** vind.\
-> Jy behoort die **scripts** daarin na te gaan, aangesien jy sensitiewe inligting soos **wagwoorde** kan vind.
+> Die **SYSVOL share** is **leesbaar** deur alle geverifieerde gebruikers in die domein. Daarin kan jy baie verskillende batch-, VBScript- en PowerShell **skripte** vind.\
+> Jy moet die **skripte** daarin nagaan aangesien jy sensitiewe inligting soos **wagwoorde** kan vind.
-## Lees Registry
+## Lees die register
-Jy kan dalk die **Registry** lees met sommige ontdekte inlogbesonderhede. Impacket **`reg.py`** laat jou toe om dit te probeer:
+Jy mag in staat wees om die **register te lees** met sommige ontdekte credentials. Impacket **`reg.py`** laat jou toe om dit 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
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKLM -s
```
-## Post Exploitation
+## Post-eksploitasie
-Die **verstekkonfigurasie van** 'n **Samba** server is gewoonlik geleĂ« in `/etc/samba/smb.conf` en kan sommige **gevaarlike konfigurasies** hĂȘ:
+Die **standaardkonfigurasie van** 'n **Samba** bediener is gewoonlik geleĂ« in `/etc/samba/smb.conf` en kan sommige **gevaarlike konfigurasies** hĂȘ:
-| **Instelling** | **Beskrywing** |
+| **Instelling** | **Beskrywing** |
| --------------------------- | ------------------------------------------------------------------- |
| `browseable = yes` | Laat toe om beskikbare shares in die huidige share te lys? |
| `read only = no` | Verbied die skep en wysiging van lĂȘers? |
| `writable = yes` | Laat gebruikers toe om lĂȘers te skep en te wysig? |
-| `guest ok = yes` | Laat verbind tot die diens toe sonder om 'n wagwoord te gebruik? |
-| `enable privileges = yes` | Hou priviliges wat aan 'n spesifieke SID toegewys is in ag? |
-| `create mask = 0777` | Watter toestemmings moet aan die nuut geskepte lĂȘers toegeken word? |
-| `directory mask = 0777` | Watter toestemmings moet aan die nuut geskepte directories toegeken word? |
-| `logon script = script.sh` | Watter script moet uitgevoer word by die gebruiker se aanmelding? |
+| `guest ok = yes` | Laat toe om by die diens aan te sluit sonder 'n wagwoord? |
+| `enable privileges = yes` | Erken voorregte wat aan 'n spesifieke SID toegeken is? |
+| `create mask = 0777` | Watter toestemmings moet aan nuut geskepte lĂȘers toegeken word? |
+| `directory mask = 0777` | Watter toestemmings moet aan nuut geskepte gidse toegeken word? |
+| `logon script = script.sh` | Watter script moet uitgevoer word tydens die gebruiker se aanmelding? |
| `magic script = script.sh` | Watter script moet uitgevoer word wanneer die script gesluit word? |
-| `magic output = script.out` | Waar moet die uitvoer van die magic script gestoor word? |
+| `magic output = script.out` | Waar die uitset van die magic script gestoor moet word? |
-Die opdrag `smbstatus` gee inligting oor die **server** en oor **wie gekoppel is**.
+Die opdrag `smbstatus` gee inligting oor die **bediener** en oor **wie verbind is**.
-## Verifieer met Kerberos
+## Outentiseer met Kerberos
-Jy kan by **kerberos** **verifieer** deur die gereedskap **smbclient** en **rpcclient** te gebruik:
+Jy kan **outentiseer** by **Kerberos** met die gereedskap **smbclient** en **rpcclient**:
```bash
smbclient --kerberos //ws01win10.domain.com/C$
rpcclient -k ws01win10.domain.com
```
-## **Voer Opdragte Uit**
+## **Voer opdragte uit**
### **crackmapexec**
-crackmapexec kan opdragte uitvoer deur enige van **mmcexec, smbexec, atexec, wmiexec** te misbruik, waar **wmiexec** die **standaard** metode is. Jy kan aandui watter opsie jy verkies met die parameter `--exec-method`:
+crackmapexec kan opdragte uitvoer deur enige van **mmcexec, smbexec, atexec, wmiexec** te **misbruik**, waarbij **wmiexec** die **verstek-metode** is. Jy kan aandui watter opsie jy verkies om te gebruik met die parameter `--exec-method`:
```bash
apt-get install crackmapexec
@@ -380,8 +379,8 @@ crackmapexec smb -d -u Administrator -H #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** (deur _\pipe\svcctl_ via SMB te gebruik) op die slagoffer se masjien en dit gebruik om **iets uit te voer** (**psexec** sal **upload** 'n executable file na ADMIN$ share en **smbexec** sal na **cmd.exe/powershell.exe** wys en die payload in die argumente plaas --**file-less technique-**-).\
-**Meer info** oor [**psexec** ](../../windows-hardening/lateral-movement/psexec-and-winexec.md) en [**smbexec**](../../windows-hardening/lateral-movement/smbexec.md).\
+Albei opsies sal **'n nuwe diens skep** (deur _\pipe\svcctl_ via SMB te gebruik) op die slagoffer se masjien en dit gebruik om **iets uit te voer** (**psexec** sal **upload** 'n uitvoerbare lĂȘer na ADMIN$ share en **smbexec** sal na **cmd.exe/powershell.exe** wys en die payload in die argumente plaas --**file-less technique-**-).\
+**Meer inligting** oor [**psexec** ](../../windows-hardening/lateral-movement/psexec-and-winexec.md)and [**smbexec**](../../windows-hardening/lateral-movement/smbexec.md).\
In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
```bash
#If no password is provided, it will be prompted
@@ -390,11 +389,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
```
-Deur die **parameter**`-k` te gebruik kan jy teen **kerberos** authentikeer in plaas van **NTLM**
+Deur die **parameter** `-k` te gebruik, kan jy teen **kerberos** autentikeer in plaas van **NTLM**
### [wmiexec](../../windows-hardening/lateral-movement/wmiexec.md)/dcomexec
-Voer heimlik 'n command shell uit sonder om die skyf te raak of 'n nuwe diens te laat loop deur DCOM via **port 135.**\
+Heimlik voer 'n command 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ë by /usr/share/doc/python3-impacket/examples/
```bash
#If no password is provided, it will be prompted
@@ -411,7 +410,7 @@ Deur die **parameter**`-k` te gebruik, kan jy teen **kerberos** autentiseer in p
```
### [AtExec](../../windows-hardening/lateral-movement/atexec.md)
-Voer opdragte uit via die Task Scheduler (met gebruik van _\pipe\atsvc_ via SMB).\
+Voer kommando's uit via die Taakskeduleerder (wat _\pipe\atsvc_ via SMB gebruik).\
In **kali** is dit geleë op /usr/share/doc/python3-impacket/examples/
```bash
./atexec.py [[domain/]username[:password]@] "command"
@@ -421,27 +420,27 @@ 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/)
-### ksmbd aanvalsoppervlak en SMB2/SMB3 protocol fuzzing (syzkaller)
+### ksmbd attack surface and SMB2/SMB3 protocol fuzzing (syzkaller)
{{#ref}}
ksmbd-attack-surface-and-fuzzing-syzkaller.md
{{#endref}}
-## **Bruteforce gebruikers credentials**
+## **Bruteforce gebruikersbewyse**
-**Hierdie word nie aanbeveel nie, jy kan 'n rekening blokkeer as jy die maksimum toegelate pogings oorskry**
+**Dit word nie aanbeveel nie â jy kan 'n rekening blokkeer as jy die maksimum toegelate pogings oorskry**
```bash
nmap --script smb-brute -p 445
ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name
```
## SMB relay attack
-Hierdie aanval gebruik die Responder toolkit om **SMB-authentikasiesessies te vang** op 'n interne netwerk, en **herlei** hulle na 'n **doelmasjien**. As die authentikasiesessie **suksesvol** is, sal dit jou outomaties in 'n **stelsel** **shell** laat beland.\
-[**Meer inligting oor hierdie aanval hier.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
+Hierdie aanval gebruik die Responder toolkit om **SMB-authentiseringsessies vas te vang** op 'n interne netwerk, en **herlei** dit na 'n **teikenmasjien**. As die authentisering **sessie suksesvol** is, sal dit jou outomaties in 'n **stelsel** **shell** plaas.\
+[**More information about this attack here.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
## SMB-Trap
-Die Windows-biblioteek URLMon.dll probeer outomaties om by die gasheer te autentiseer wanneer 'n bladsy probeer om inhoud via SMB te bereik, byvoorbeeld: `img src="\\10.10.10.10\path\image.jpg"`
+Die Windows-biblioteek URLMon.dll probeer outomaties by die gasheer autentiseer wanneer 'n bladsy probeer om inhoud via SMB te bereik, byvoorbeeld: `img src="\\10.10.10.10\path\image.jpg"`
Dit gebeur met die funksies:
@@ -450,7 +449,7 @@ Dit gebeur met die funksies:
- URLOpenStream
- URLOpenBlockingStream
-Wat deur sommige blaaiers en tools (soos Skype) gebruik word
+Wat deur sommige blaaiers en gereedskap gebruik word (soos Skype)
.png>)
@@ -460,9 +459,9 @@ Wat deur sommige blaaiers en tools (soos Skype) gebruik word
## NTLM Theft
-Soortgelyk aan SMB Trapping, kan die plaas van kwaadwillige lĂȘers op 'n doelstelsel (bv. via SMB) 'n SMB-authentikasiepoging uitlok, wat toelaat dat die NetNTLMv2-hash met 'n instrument soos Responder onderskep word. Die hash kan dan aflyn gekraak word of gebruik word in 'n [SMB relay attack](#smb-relay-attack).
+Vergelykbaar met SMB Trapping, kan die plant van kwaadwillige lĂȘers op 'n teikenstelsel (byvoorbeeld via SMB) 'n SMB-authentiseringspoging uitlok, wat toelaat dat die NetNTLMv2-hash met 'n hulpmiddel soos Responder onderskep word. Die hash kan dan offline gekraak word of gebruik word in 'n [SMB relay attack](#smb-relay-attack).
-[Sien: 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
```
diff --git a/src/network-services-pentesting/pentesting-smb/ksmbd-attack-surface-and-fuzzing-syzkaller.md b/src/network-services-pentesting/pentesting-smb/ksmbd-attack-surface-and-fuzzing-syzkaller.md
index 0f2695ede..7a53ea510 100644
--- a/src/network-services-pentesting/pentesting-smb/ksmbd-attack-surface-and-fuzzing-syzkaller.md
+++ b/src/network-services-pentesting/pentesting-smb/ksmbd-attack-surface-and-fuzzing-syzkaller.md
@@ -3,24 +3,24 @@
{{#include ../../banners/hacktricks-training.md}}
## Oorsig
-Hierdie bladsy abstraheer praktiese tegnieke om die Linux in-kernel SMB-bediener (ksmbd) met syzkaller te oefen en te fuzz. Dit fokus op die uitbreiding van die protokol-aanvalsoppervlak deur konfigurasie, die bou van ân staatvolle harness wat SMB2-operasies aaneen kan skakel, die genereer van grammar-valid PDUs, die bevooroordeling van mutasies na swak-gedekte kodepaaie, en die benutting van syzkaller-funksies soos focus_areas en ANYBLOB. Terwyl die oorspronklike navorsing spesifieke CVEs opsom, beklemtoon ons hier die herbruikbare metodologie en konkrete snippers wat jy aan jou eie opstellings kan aanpas.
+Hierdie bladsy som praktiese tegnieke op om die Linux in-kernel SMB-bediener (ksmbd) met syzkaller te oefen en te fuzz. Dit fokus op die uitbreiding van die protokol se aanvalsoppervlak deur konfigurasie, die bou van 'n stateful harness wat SMB2-operasies kan keten, die genereer van grammatika-geldige PDUs, die bevooroordeeling van mutasies na swak-gedekde kodepaaie, en die benutting van syzkaller-funksies soos focus_areas en ANYBLOB. Alhoewel die oorspronklike navorsing spesifieke CVE's opsom, beklemtoon ons hier die herbruikbare metodologie en konkrete snippette wat jy vir jou eie opstellings kan aanpas.
-Teikengrens: SMB2/SMB3 oor TCP. Kerberos en RDMA is doelbewus buite omvang om die harness eenvoudig te hou.
+Teikenomvang: SMB2/SMB3 oor TCP. Kerberos en RDMA is doelbewus buite bestek om die harness eenvoudig te hou.
---
-## Brei ksmbd-aanvalsoppervlak uit via Konfigurasie
-By verstek laat ân minimale ksmbd-opstelling groot gedeeltes van die bediener ongetoets. Skakel die volgende funksies in om die bediener deur addisionele parsers/handlers te bestuur en dieper kodepaaie te bereik:
+## Brei ksmbd-aanvalsoppervlak uit via konfigurasie
+By verstek laat 'n minimale ksmbd-opstelling groot dele van die bediener ongetoets. Skakel die volgende funksies in om die bediener deur bykomende parsers/handlers te dwing en dieper kodepaaie te bereik:
-- Globale vlak
+- Global-level
- Durable handles
- Server multi-channel
- SMB2 leases
-- Per-share-vlak
-- Oplocks (aan standaard)
+- Per-share-level
+- Oplocks (on by default)
- VFS objects
-Die aktivering van hierdie elemente verhoog die uitvoering in modules soos:
+Deur hierdie opsies te aktiveer verhoog die uitvoering in modules soos:
- smb2pdu.c (command parsing/dispatch)
- ndr.c (NDR encode/decode)
- oplock.c (oplock request/break)
@@ -28,28 +28,28 @@ Die aktivering van hierdie elemente verhoog die uitvoering in modules soos:
- vfs.c (VFS ops)
- vfs_cache.c (lookup cache)
-Notas
+Aantekeninge
- Presiese opsies hang af van jou distro se ksmbd userspace (ksmbd-tools). Hersien /etc/ksmbd/ksmbd.conf en per-share-afdelings om durable handles, leases, oplocks en VFS objects te aktiveer.
-- Multi-channel en durable handles verander state machines en lewensduur, en laat dikwels UAF/refcount/OOB-bugs onder gelyktydigheid blyk.
+- Multi-channel en durable handles verander state machines en lewensduurtens, wat gereeld UAF/refcount/OOB-bugs onder concurrency na vore bring.
---
-## Authentication en koersbeperkings-aanpassings vir Fuzzing
-SMB3 benodig ân geldige sessie. Implementering van Kerberos in harnesses verhoog kompleksiteit, dus beveel ons NTLM/guest vir fuzzing aan:
+## Verifikasie en Rate-Limiting-aanpassings vir Fuzzing
+SMB3 benodig 'n geldige sessie. Die implementering van Kerberos in harnesses voeg kompleksiteit by, daarom is NTLM/guest vir fuzzing te verkies:
-- Laat guest-toegang toe en stel map to guest = bad user sodat onbekende gebruikers op GUEST terugval.
-- Aanvaar NTLMv2 (patch die beleid as dit gedeaktiveer is). Dit hou die handshake eenvoudig terwyl SMB3-kodepaaie geaktiveer word.
-- Verwyder streng credit checks tydens eksperimente (post-hardening vir CVE-2024-50285 het simultaneous-op crediting strenger gemaak). Andersins kan koersbeperkings gefuzzte sekwense te vroeg verwerp.
-- Verhoog max connections (bv. na 65536) om vroeë verwerping tydens hoë-deurset fuzzing te vermy.
+- Laat guest toegang toe en stel map to guest = bad user sodat onbekende gebruikers na GUEST terugval.
+- Aanvaar NTLMv2 (patch policy as dit gedeaktiveer is). Dit hou die handshake eenvoudig terwyl dit SMB3-kodepaaie oefen.
+- Verwyder streng credit checks tydens eksperimente (post-hardening vir CVE-2024-50285 het simultaneous-op crediting verskerp). Andersins kan rate-limits gefuzzte reekse te vroeg verwerp.
+- Verhoog max connections (bv. na 65536) om vroeë verwerping tydens hoë-deursit-fuzzing te voorkom.
-Waarskuwing: Hierdie verslappinge is slegs bedoel om fuzzing te vergemaklik. Moet dit nie in produksie gebruik nie.
+Waarskuwing: Hierdie verslappinge is slegs om fuzzing te vergemaklik. Moenie hierdie instellings in produksie gebruik nie.
---
-## Staatvolle Harness: Onttrek Hulpbronne en Skakel Versoeke
-SMB is staatvol: baie versoeke hang af van identifiseerders wat deur vorige antwoorde teruggegee word (SessionId, TreeID, FileID-paartjies). Jou harness moet antwoorde parse en ID's hergebruik binne dieselfde program om by dieper handlers uit te kom (bv. smb2_create â smb2_ioctl â smb2_close).
+## Stateful Harness: Extract Resources and Chain Requests
+SMB is stateful: baie versoeke hang af van identifiseerders wat deur vorige antwoorde teruggegee word (SessionId, TreeID, FileID pairs). Jou harness moet antwoorde parse en IDs binne dieselfde program hergebruik om by dieper handlers uit te kom (bv. smb2_create â smb2_ioctl â smb2_close).
-Voorbeeld-snipper om ân response buffer te verwerk (skipping the +4B NetBIOS PDU length) en ID's te kash:
+Example snippet to process a response buffer (skipping the +4B NetBIOS PDU length) and cache IDs:
```c
// process response. does not contain +4B PDU length
void process_buffer(int msg_no, const char *buffer, size_t received) {
@@ -76,15 +76,15 @@ break;
}
```
Wenke
-- Hou een fuzzer-proses wat authentication/state deel: beter stabiliteit en dekking met ksmbdâs global/session tables. syzkaller injecteer steeds concurrency deur ops as async te merk, en intern te herhaal.
-- Syzkallerâs experimental reset_acc_state kan globale staat terugstel, maar kan 'n groot vertraging veroorsaak. Gee voorkeur aan stabiliteit en fokus eerder op fuzzing.
+- Hou een fuzzer-proses wat authentikasie/staat deel: beter stabiliteit en dekking met ksmbdâs globale/sessie-tabelle. syzkaller injekteer steeds concurrency deur ops as async te merk, intern weer uit te voer.
+- Syzkallerâs eksperimentele reset_acc_state kan globale staat terugstel maar kan 'n groot vertraging veroorsaak. Gee voorkeur aan stabiliteit en fokus eerder op fuzzing.
---
## Grammatika-gedrewe SMB2-generering (Geldige PDUs)
-Vertaal die Microsoft Open Specifications SMB2-strukture in 'n fuzzer-grammatika sodat jou generator struktureel geldige PDUs produseer, wat sistematies dispatchers en IOCTL handlers bereik.
+Vertaal die Microsoft Open Specifications SMB2-strukture na 'n fuzzer-grammatika sodat jou generator struktureel geldige PDUs produseer, wat sistematies dispatchers en IOCTL handlers bereik.
-Voorbeeld (SMB2 IOCTL request):
+Voorbeeld (SMB2 IOCTL-versoek):
```
smb2_ioctl_req {
Header_Prefix SMB2Header_Prefix
@@ -107,12 +107,12 @@ Input array[int8]
Output array[int8]
} [packed]
```
-Hierdie styl dwing korrekte struktuurgroottes/-offsets af en verbeter dramaties die dekking in vergelyking met blind mutation.
+Hierdie styl dwing korrekte struktuurgroottes/-verskuiwings af en verbeter beduidend die dekking teenoor blinde mutasie.
---
-## Directed Fuzzing With focus_areas
-Gebruik syzkallerâs eksperimentele focus_areas om spesifieke funksies/lĂȘers wat tans swak dekking het, meer gewig te gee. Voorbeeld JSON:
+## Gerigte Fuzzing Met focus_areas
+Gebruik syzkallerâs eksperimentele focus_areas om spesifieke funksies/lĂȘers hoĂ«r gewig te gee wat tans swak dekking het. Voorbeeld JSON:
```json
{
"focus_areas": [
@@ -122,9 +122,9 @@ Gebruik syzkallerâs eksperimentele focus_areas om spesifieke funksies/lĂȘers w
]
}
```
-Dit help om geldige ACLs te konstrueer wat aritmetiese/overflow-paaie in smbacl.c tref. Byvoorbeeld, 'n kwaadwillige Security Descriptor met 'n oorgrootte dacloffset reproduseer 'n integer-overflow.
+Dit help om geldige ACLs te konstrueer wat arithmetic/overflow paths in smbacl.c tref. Byvoorbeeld, 'n kwaadwillige Security Descriptor met 'n te groot dacloffset reproduseer 'n integer-overflow.
-Reproducer builder (minimal Python):
+Reproducer-bouer (minimale Python):
```python
def build_sd():
import struct
@@ -143,8 +143,8 @@ return bytes(sd)
```
---
-## Deurbreek dekkingplateauë met ANYBLOB
-syzkaller se anyTypes (ANYBLOB/ANYRES) laat toe om komplekse strukture in blobs in te klap wat op 'n generiese wyse muteer. Skep 'n nuwe korpus uit openbare SMB pcaps en omskep payloads in syzkaller-programme wat jou pseudo-syscall aanroep (bv. syz_ksmbd_send_req):
+## Deurbreek dekkingsplateaus met ANYBLOB
+syzkallerâs anyTypes (ANYBLOB/ANYRES) laat komplekse strukture inklap tot blobs wat generies muteer. Skep 'n nuwe korpus uit openbare SMB pcaps en omskep payloads in syzkaller-programme wat jou pseudo-syscall aanroep (bv., syz_ksmbd_send_req):
```bash
# Extract SMB payloads to JSON
# tshark -r smb2_dac_sample.pcap -Y "smb || smb2" -T json -e tcp.payload > packets.json
@@ -167,14 +167,14 @@ f.write(
f"syz_ksmbd_send_req(&(&(0x7f0000000340))=ANY=[@ANYBLOB=\"{pdu}\"], {hex(pdu_size)}, 0x0, 0x0)"
)
```
-Dit gee 'n vlieënde begin aan verkenning en kan onmiddellik UAFs aktiveer (bv. in ksmbd_sessions_deregister), terwyl dit die dekking met 'n paar persent verhoog.
+Dit spring die verkenning aan en kan onmiddellik UAFs (bv. in ksmbd_sessions_deregister) veroorsaak, terwyl dit die dekking met 'n paar persent verhoog.
---
## Sanitizers: Verder as KASAN
-- KASAN bly die primĂȘre detektor vir heap-bugs (UAF/OOB).
-- KCSAN lewer dikwels vals positiewe of data races met lae erns in hierdie teiken.
-- UBSAN/KUBSAN kan foute in verklaarde grense opspoor wat KASAN mis as gevolg van array-indeks-semantiek. Voorbeeld:
+- KASAN bly die primĂȘre opsporer vir heap bugs (UAF/OOB).
+- KCSAN lewer dikwels false positives of low-severity data races in hierdie teiken.
+- UBSAN/KUBSAN kan declared-bounds mistakes vang wat KASAN mis weens array-index semantics. Voorbeeld:
```c
id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]);
struct smb_sid {
@@ -182,24 +182,24 @@ __u8 revision; __u8 num_subauth; __u8 authority[NUM_AUTHS];
__le32 sub_auth[SID_MAX_SUB_AUTHORITIES]; /* sub_auth[num_subauth] */
} __attribute__((packed));
```
-Setting num_subauth = 0 triggers an in-struct OOB read of sub_auth[-1], caught by UBSANâs declared-bounds checks.
+Die instel van num_subauth = 0 veroorsaak 'n in-struct OOB-lees van sub_auth[-1], wat deur UBSAN se declared-bounds-kontroles gevang word.
---
-## Deurset en Parallelisme Aantekeninge
-- Een enkele fuzzer-proses (shared auth/state) is geneig om aansienlik meer stabiel te wees vir ksmbd en toon steeds races/UAFs weens syzkallerâs interne async executor.
-- Met meerdere VMs kan jy steeds honderde SMB-opdragte per sekonde bereik. Funksievlak-dekking van ongeveer ~60% van fs/smb/server en ~70% van smb2pdu.c is haalbaar, alhoewel staatsoorgang-dekking deur sulke metrieke onderverteenwoordig word.
+## Deurset en parallelisme aantekeninge
+- 'n Enkele fuzzer-proses (gedeelde auth/state) neig om aansienlik meer stabiel te wees vir ksmbd en ontbloot steeds races/UAFs danksy syzkaller se interne async executor.
+- Met meerdere VMs kan jy steeds honderde SMB-opdragte per sekonde bereik. Funksievlakdekking van ~60% van fs/smb/server en ~70% van smb2pdu.c is haalbaar, alhoewel staat-oorgang-dekking deur sulke metrieke onderverteenwoordig word.
---
-## Praktiese Kontroleslys
+## Praktiese kontrolelys
- Skakel durable handles, leases, multi-channel, oplocks en VFS objects in ksmbd aan.
-- Laat guest en map-to-guest toe; aanvaar NTLMv2. Patch uit credit limits en verhoog max connections vir fuzzer stabiliteit.
-- Bou 'n stateful harness wat SessionId/TreeID/FileIDs cache en create â ioctl â close keten.
-- Gebruik 'n grammar vir SMB2 PDUs om strukturele geldigheid te behou.
-- Gebruik focus_areas om swak-gedekte funksies meer gewig te gee (bv. smbacl.c-paaie soos smb_check_perm_dacl).
-- Seed met ANYBLOB uit werklike pcaps om plateaus te breek; pak seeds met syz-db vir hergebruik.
-- Draai met KASAN + UBSAN; triage UBSAN declared-bounds verslae versigtig.
+- Laat guest en map-to-guest toe; aanvaar NTLMv2. Verwyder kredietlimiete en verhoog die maksimum verbindings vir fuzzer-stabiliteit.
+- Bou 'n stateful harness wat SessionId/TreeID/FileIDs kas en create â ioctl â close ketting.
+- Gebruik 'n grammatika vir SMB2 PDUs om strukturele geldigheid te behou.
+- Gebruik focus_areas om swak-gedekte funksies groter gewig te gee (bv. smbacl.c-paadjies soos smb_check_perm_dacl).
+- Gebruik ANYBLOB van werklike pcaps as saailinge om plateau's te breek; pak saailinge met syz-db vir hergebruik.
+- Hardloop met KASAN + UBSAN; triage UBSAN declared-bounds-verslae sorgvuldig.
---
@@ -214,6 +214,6 @@ Setting num_subauth = 0 triggers an in-struct OOB read of sub_auth[-1], caught b
- KCSAN: https://docs.kernel.org/dev-tools/kcsan.html
- Microsoft Open Specifications (SMB): https://learn.microsoft.com/openspecs/
- Wireshark Sample Captures: https://wiki.wireshark.org/SampleCaptures
-- Agtergrondlees: pwning.tech âTickling ksmbd: fuzzing SMB in the Linux kernelâ; Dongliang Muâs syzkaller notes
+- Background reading: pwning.tech âTickling ksmbd: fuzzing SMB in the Linux kernelâ; Dongliang Muâs syzkaller notes
{{#include ../../banners/hacktricks-training.md}}
diff --git a/src/network-services-pentesting/pentesting-web/README.md b/src/network-services-pentesting/pentesting-web/README.md
index a8df1aa44..1a3488d06 100644
--- a/src/network-services-pentesting/pentesting-web/README.md
+++ b/src/network-services-pentesting/pentesting-web/README.md
@@ -1,10 +1,10 @@
-# 80,443 - Pentesting Web Metodologie
+# 80,443 - Pentesting Web Methodology
{{#include ../../banners/hacktricks-training.md}}
## Basiese Inligting
-Die webdiens is die mees **algemene en omvattende diens** en daar bestaan baie **verskillende tipes kwesbaarhede**.
+Die webdiens is die mees **algemene en omvangryke diens**, en daar bestaan baie **verskillende soorte kwesbaarhede**.
**Standaardpoort:** 80 (HTTP), 443(HTTPS)
```bash
@@ -17,7 +17,7 @@ PORT STATE SERVICE
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
```
-### Web API Guidance
+### Web API Riglyne
{{#ref}}
@@ -26,46 +26,46 @@ web-api-pentesting.md
## Metodologie opsomming
-> In hierdie metodologie gaan ons aanvaar dat jy 'n aanval op 'n domain (of subdomain) en net daardie een gaan uitvoer. Dus, jy moet hierdie metodologie toepas op elke ontdekte domain, subdomain of IP met onbepaalde web server binne die scope.
+> In hierdie metodologie gaan ons aanvaar dat jy 'n domein (of subdomein) en slegs daardie wil aanval. Dus moet jy hierdie metodologie toepas op elke ontdekte domein, subdomein of IP met 'n ongedetermineerde web server binne die scope.
-- [ ] Begin deur die **identifiseer** die **tegnologieë** wat deur die web server gebruik word. Kyk vir **tricks** om gedurende die res van die toets in gedagte te hou as jy die tech suksesvol kan identifiseer.
+- [ ] Begin deur die **identifying** van die **technologies** wat deur die web server gebruik word. Soek na **tricks** om in gedagte te hou tydens die res van die toets as jy die tegnologie suksesvol kan identifiseer.
- [ ] Enige **known vulnerability** van die weergawe van die tegnologie?
-- [ ] Gebruik enige **well known tech**? Enige **useful trick** om meer inligting te onttrek?
-- [ ] Enige **specialised scanner** om te loods (soos wpscan)?
-- [ ] Begin met **general purposes scanners**. Jy weet nooit of hulle iets gaan vind of interessante inligting gaan ontsluit nie.
+- [ ] Gebruik dit enige **well known tech**? Enige **useful trick** om meer inligting te onttrek?
+- [ ] Enige **specialised scanner** om te hardloop (soos wpscan)?
+- [ ] Begin **general purposes scanners**. Jy weet nooit of hulle iets gaan vind of of hulle interessante inligting gaan oplewer nie.
- [ ] Begin met die **initial checks**: **robots**, **sitemap**, **404** error en **SSL/TLS scan** (if HTTPS).
-- [ ] Begin **spidering** die web page: Dit is tyd om alle moontlike **files, folders** en **parameters being used** te **vind.** Kyk ook vir **special findings**.
-- [ ] _Note that anytime a new directory is discovered during brute-forcing or spidering, it should be spidered._
-- [ ] **Directory Brute-Forcing**: Probeer om alle ontdekte folders te Brute-Force en soek na nuwe **files** en **directories**.
-- [ ] _Note that anytime a new directory is discovered during brute-forcing or spidering, it should be Brute-Forced._
-- [ ] **Backups checking**: Toets of jy **backups** van **ontdekte files** kan vind deur algemene backup extensies by te voeg.
+- [ ] Begin **spidering** die webblad: Dit is tyd om alle moontlike **files, folders** en **parameters being used** te **vind**. Kontroleer ook vir **special findings**.
+- [ ] _Let daarop dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spidering, dit gespider moet word._
+- [ ] **Directory Brute-Forcing**: Probeer om al die ontdekte vouers te brute force om nuwe **files** en **directories** te soek.
+- [ ] _Let daarop dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spidering, dit Brute-Forced moet word._
+- [ ] **Backups checking**: Toets of jy **backups** van **ontdekte files** kan vind deur algemene backup-extensies by te voeg.
- [ ] **Brute-Force parameters**: Probeer om **hidden parameters** te **vind**.
-- [ ] Sodra jy alle moontlike **endpoints** wat **user input** aanvaar geĂŻdentifiseer het, kyk na alle soorte **vulnerabilities** wat daarmee verband hou.
+- [ ] Sodra jy al die moontlike **endpoints** wat **user input** aanvaar geĂŻdentifiseer het, gaan na en toets vir alle soorte **vulnerabilities** wat daarmee verband hou.
- [ ] [Follow this checklist](../../pentesting-web/web-vulnerabilities-methodology.md)
-## Server-weergawe (Kwetsbaar?)
+## Server Version (Vulnerable?)
### Identifiseer
-Kyk of daar **known vulnerabilities** is vir die server **version** wat loop.\
-Die **HTTP headers and cookies of the response** kan baie nuttig wees om die **technologies** en/of **version** wat gebruik word te **identifiseer**. **Nmap scan** kan die server version identifiseer, maar dit kan ook nuttig wees om die tools [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) of [**https://builtwith.com/**](https://builtwith.com)**:**
+Kontroleer of daar **known vulnerabilities** is vir die server **version** wat loop.\
+Die **HTTP headers and cookies of the response** kan baie nuttig wees om die **technologies** en/of **version** te **identify** wat gebruik word. **Nmap scan** kan die serverweergawe identifiseer, maar dit kan ook nuttig wees om die tools [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) of [**https://builtwith.com/**](https://builtwith.com)**:**
```bash
whatweb -a 1 #Stealthy
whatweb -a 3 #Aggresive
webtech -u
webanalyze -host https://google.com -crawl 2
```
-Soek **na** [**vulnerabilities of the web application version**](../../generic-hacking/search-exploits.md)
+Soek **na** [**vulnerabilities of the web application** **version**](../../generic-hacking/search-exploits.md)
-### **Kyk of daar enige WAF**
+### **Kyk of daar 'n WAF is**
- [**https://github.com/EnableSecurity/wafw00f**](https://github.com/EnableSecurity/wafw00f)
- [**https://github.com/Ekultek/WhatWaf.git**](https://github.com/Ekultek/WhatWaf.git)
- [**https://nmap.org/nsedoc/scripts/http-waf-detect.html**](https://nmap.org/nsedoc/scripts/http-waf-detect.html)
-### Web tegniese truuks
+### Web tegnologie truuks
-Sommige **tricks** for **finding vulnerabilities** in verskillende bekende **technologies** wat gebruik word:
+Sommige **tricks** vir **finding vulnerabilities** in verskeie bekende **technologies** wat gebruik word:
- [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
- [**Apache**](apache.md)
@@ -102,28 +102,27 @@ Sommige **tricks** for **finding vulnerabilities** in verskillende bekende **tec
- [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/index.html)
- [**Sitecore**](sitecore/index.html)
-_Neem in ag dat die **same domain** verskillende **technologies** in verskillende **ports**, **folders** en **subdomains** kan gebruik._\
-As die web application enige bekende **tech/platform listed before** of **any other** gebruik, moenie vergeet om op die Internet te **search on the Internet** na nuwe tricks (en laat weet my!).
+_Ten einde in gedagte te hou dat dieselfde **domein** verskillende **technologies** op verskillende **poorte**, **gidse** en **subdomeine** kan gebruik._\
+As die webtoepassing enige bekende **tech/platform listed before** of **enigiets anders** gebruik, moenie vergeet om op die Internet na nuwe truuks te **search** (en laat my weet nie!).
-### Source Code Review
+### Bronkode hersiening
-As die **source code** van die toepassing op **github** beskikbaar is, benewens om deur **your own a White box test** van die toepassing te gaan, is daar **some information** wat nuttig kan wees vir die huidige **Black-Box testing**:
-
-- Is daar 'n **Change-log or Readme or Version** file of enigiets met **version info accessible** via web?
-- Hoe en waar word die **credentials** gestoor? Is daar enige (accessible?) **file** met credentials (usernames or passwords)?
-- Is dit **passwords** in **plain text**, **encrypted** of watter **hashing algorithm** word gebruik?
-- Gebruik dit enige **master key** vir die enkripsie van iets? Watter **algorithm** word gebruik?
-- Kan jy **access any of these files** deur 'n vulnerability uit te buit?
-- Is daar enige **interesting information in the github** (solved and not solved) **issues**? Of in die **commit history** (miskien is daar 'n **password introduced inside an old commit**)?
+As die **source code** van die toepassing op **github** beskikbaar is, behalwe om self 'n **White box test** van die toepassing uit te voer, is daar **inligting** wat nuttig kan wees vir die huidige **Black-Box testing**:
+- Is daar 'n **Change-log or Readme or Version** lĂȘer of enigiets met **version info accessible** via die web?
+- Hoe en waar word die **credentials** gestoor? Is daar enige (toeganklike?) **file** met credentials (gebruikersname of wagwoorde)?
+- Is wagwoorde in **plain text**, **encrypted** of watter **hashing algorithm** word gebruik?
+- Gebruik dit enige **master key** om iets te enkripteer? Watter **algorithm** word gebruik?
+- Kan jy enige van hierdie **files** toegang kry deur 'n kwetsbaarheid uit te buit?
+- Is daar enige interessante inligting in die github (opgelos en nie-opgelos) **issues**? Of in die **commit history** (miskien is daar 'n **password** wat in 'n ou commit ingestel is)?
{{#ref}}
code-review-tools.md
{{#endref}}
-### Outomatiese skanners
+### Automatic scanners
-#### Algemene doel outomatiese skanners
+#### Algemene doeleindes outomatiese skandeerders
```bash
nikto -h
whatweb -a 4
@@ -137,12 +136,12 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
```
#### CMS-skandeerders
-As 'n CMS gebruik word, moenie vergeet om 'n **skandeerder te laat loop** nie â miskien word iets interessant gevind:
+As 'n CMS gebruik word, moenie vergeet om **'n skandeerder uit te voer** nie â dalk word iets sappigs gevind:
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/index.html)**, Railo, Axis2, Glassfish**\
-[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/index.html), **Joomla**, **vBulletin** webwerwe vir Security issues. (GUI)\
+[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/index.html), **Joomla**, **vBulletin** webwerwe vir Security kwessies. (GUI)\
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal/index.html)**, PrestaShop, Opencart**\
-**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal/index.html) **or** [**(M)oodle**](moodle.md)\
+**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal/index.html) **of** [**(M)oodle**](moodle.md)\
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal/index.html)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
```bash
cmsmap [-f W] -F -d
@@ -150,13 +149,13 @@ wpscan --force update -e --url
joomscan --ec -u
joomlavs.rb #https://github.com/rastating/joomlavs
```
-> Op hierdie stadium behoort jy reeds sekere inligting oor die webbediener te hĂȘ wat deur die kliĂ«nt gebruik word (indien enige data verskaf is) en 'n paar truuks om tydens die toets in gedagte te hou. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n scanner laat loop.
+> Op hierdie punt behoort jy reeds sekere inligting oor die webserver wat deur die kliĂ«nt gebruik word te hĂȘ (indien enige data gegee is) en 'n paar wenke om in gedagte te hou tydens die toets. As jy gelukkig is het jy selfs 'n CMS gevind en 'n scanner uitgevoer.
## Stap-vir-stap Webtoepassing-ontdekking
-> Vanaf hierdie punt gaan ons begin om met die webtoepassing te kommunikeer.
+> Vanaf hierdie punt gaan ons begin interakteer met die webtoepassing.
-### Aanvangskontroles
+### Aanvanklike kontroles
**Standaard bladsye met interessante inligting:**
@@ -165,30 +164,30 @@ joomlavs.rb #https://github.com/rastating/joomlavs
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
-- Kontroleer ook kommentaar in die hoof- en sekondĂȘre bladsye.
+- Kontroleer ook kommentare op die hoof- en sekondĂȘre bladsye.
**Foute afdwing**
-Webbedieners kan **onverwagse gedrag** vertoon wanneer vreemde data aan hulle gestuur word. Dit kan **kwesbaarhede** oopmaak of **sensitiewe inligting openbaar**.
+Webservers kan **onverwag optree** wanneer vreemde data na hulle gestuur word. Dit kan **vulnerabilities** of die openbaarmaking van sensitiewe inligting oopmaak.
-- Gaan na **vals bladsye** soos /whatever_fake.php (.aspx,.html,.etc)
-- **Voeg "\[]", "]]", en "\[["** in **cookie values** en **parameter values** in om foute te veroorsaak
-- Genereer 'n fout deur invoer te gee as **`/~randomthing/%s`** aan die **einde** van die **URL**
-- Probeer **verskillende HTTP Verbs** soos PATCH, DEBUG of verkeerde soos FAKE
+- Toegang tot **fake pages** soos /whatever_fake.php (.aspx,.html,.etc)
+- **Add "\[]", "]]", and "\[["** in **cookie values** en **parameter** values om foute te skep
+- Genereer 'n fout deur inset as **`/~randomthing/%s`** aan die **end** van die **URL** te gee
+- Probeer verskillende **HTTP Verbs** soos PATCH, DEBUG of verkeerde soos FAKE
-#### **Kontroleer of jy kan lĂȘers oplaai (**[**PUT verb, WebDav**](put-method-webdav.md)**)**
+#### **Check if you can upload files (**[**PUT verb, WebDav**](put-method-webdav.md)**)**
-As jy vind dat **WebDav** geaktiveer is maar jy het nie genoeg toestemmings om **lĂȘers in die root-gids** op te laai nie, probeer om:
+As jy vind dat **WebDav** **enabled** is maar jy het nie genoeg **permissions** vir **uploading files** in die root folder nie, probeer om:
- **Brute Force** credentials
-- **Upload files** via WebDav na die **oorblywende** van die **gevonde gidse** binne die webblad. Jy mag toestemmings hĂȘ om lĂȘers in ander gidse op te laai.
+- **Upload files** via WebDav na die res van die gevonde vouers binne die webblad. Jy mag **permissions** hĂȘ om lĂȘers in ander vouers op te laai.
-### **SSL/TLS kwesbaarhede**
+### **SSL/TLS vulnerabilites**
-- As die toepassing **nie die gebruiker in enige deel dwing om HTTPS te gebruik** nie, is dit **kwesbaar vir MitM**
-- As die toepassing **sensitiewe data (wagwoorde) via HTTP stuur**, is dit 'n hoë kwesbaarheid.
+- As die toepassing **isn't forcing the user of HTTPS** in enige deel, dan is dit **vulnerable to MitM**
+- As die toepassing **is sending sensitive data (passwords) using HTTP**. Dan is dit 'n hoë vulnerability.
-Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om na **kwesbaarhede** te kyk (in Bug Bounty-programme sal hierdie soort kwesbaarhede waarskynlik nie aanvaar word nie) en gebruik [**a2sv** ](https://github.com/hahwul/a2sv)om die kwesbaarhede te herkontroleer:
+Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om vir **vulnerabilities** te kontroleer (in Bug Bounty-programme sal hierdie tipe vulnerabilities waarskynlik nie aanvaar word nie) en gebruik [**a2sv** ](https://github.com/hahwul/a2sv) om die vulnerabilities weer te kontroleer:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@@ -197,60 +196,60 @@ Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om na **kwesbaa
sslscan
sslyze --regular
```
-Inligting oor SSL/TLS-kwesbaarhede:
+Information about SSL/TLS vulnerabilities:
- [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
- [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
### Spidering
-Begin 'n soort **spider** op die web. Die doel van die **spider** is om **soveel paadjies as moontlik te vind** vanaf die getoetste toepassing. Daarom moet web crawling en eksterne bronne gebruik word om soveel geldige paadjies as moontlik te ontdek.
+Start 'n soort **spider** binne die webtoepassing. Die doel van die spider is om **soveel paaie as moontlik te vind** van die getoetste toepassing. Daarom moet web crawling en eksterne bronne gebruik word om soveel geldige paaie as moontlik te vind.
-- [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder in JS-lĂȘers en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com).
-- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, met LinkFider vir JS-lĂȘers en Archive.org as eksterne bron.
+- [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder in JS files en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com).
+- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, met LinkFider vir JS files en Archive.org as eksterne bron.
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, dui ook "juicy files" aan.
-- [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spider. Soek ook in Archive.org.
-- [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie hulpmiddel is nie 'n spider nie, maar kan nuttig wees. Jy kan net 'n lĂȘer met hosts en 'n lĂȘer met paths aandui en meg sal elke path op elke host ophaal en die response stoor.
-- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider met JS-rendering vermoëns. Dit lyk egter of dit ononderhou is; die vooraf-gekompileerde weergawe is oud en die huidige kode kompileer nie.
-- [**gau**](https://github.com/lc/gau) (go): HTML spider wat eksterne verskaffers gebruik (wayback, otx, commoncrawl).
-- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URLs met parameters vind en dit lys.
-- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider met JS-rendering vermoëns.
-- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, met JS beautify vermoĂ«ns wat nuwe paadjies in JS-lĂȘers kan soek. Dit is ook die moeite werd om [JSScanner](https://github.com/dark-warlord14/JSScanner), wat 'n wrapper van LinkFinder is, te bekyk.
-- [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om endpoints te onttrek in beide HTML-bron en ingesluit javascript-lĂȘers. Nuttig vir bug hunters, red teamers, infosec ninjas.
-- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): 'n python 2.7 skrip wat Tornado en JSBeautifier gebruik om relatiewe URLs uit JavaScript-lĂȘers te parse. Nuttig om AJAX-aanvraag maklik te ontdek. Lyk ononderhou.
-- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegee 'n lĂȘer (HTML) sal dit URLs onttrek met 'n netjiese regular expression om relatiewe URLs uit verrommelde (minified) lĂȘers te kry.
-- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie tools): Versamel interessante inligting uit JS-lĂȘers deur verskeie tools te gebruik.
-- [**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 urls wat gelaai word om die bladsy te laai.
+- [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spider. Dit soek ook in Archive.org
+- [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie tool is nie 'n spider nie maar kan nuttig wees. Jy kan net 'n lĂȘer met hosts en 'n lĂȘer met paths aandui en meg sal elke pad op elke host haal en die response stoor.
+- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider met JS rendering vermoëns. Dit lyk egter ononderhou; die vooraf-gekompileerde weergawe is oud en die huidige kode kompileer nie.
+- [**gau**](https://github.com/lc/gau) (go): HTML spider wat eksterne providers gebruik (wayback, otx, commoncrawl)
+- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URL's met parameter vind en dit lys.
+- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider met JS rendering vermoëns.
+- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, met JS beautify vermoëns wat nuwe paaie in JS files kan 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 endpoints in beide HTML source en ingebedde javascript files te onttrek. Nuttig vir bug hunters, red teamers, 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 files te parse. Nuttig om AJAX requests maklik te ontdek. Lyk ononderhou.
+- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegee 'n file (HTML) sal dit URL's daaruit onttrek met 'n netjiese regular expression om relatiewe URL's uit verkorte (minify) files te kry.
+- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, several tools): Versamel interessante inligting uit JS files deur verskeie tools te gebruik.
+- [**subjs**](https://github.com/lc/subjs) (go): Vind JS files.
+- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n headless browser en druk al die urls wat gebruik word om die bladsy te laai.
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Content discovery tool wat verskeie opsies van die vorige tools meng.
-- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp extension om paths en params in JS-lĂȘers te vind.
-- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n hulpmiddel wat, gegee die .js.map URL, die beautified JS-kode sal kry.
-- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Hierdie tool word gebruik om endpoints vir 'n gegewe doelwit te ontdek.
-- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek links uit die wayback machine (laai ook die responses in die wayback af en soek meer links).
-- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (selfs deur vorms in te vul) en vind ook sensitiewe inligting gebruikende spesifieke regexes.
-- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-feature GUI web security Crawler/Spider ontwerp vir cyber security professionele.
-- [**jsluice**](https://github.com/BishopFox/jsluice) (go): 'n Go pakket en [command-line tool](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) om URLs, paths, secrets en ander interessante data uit JavaScript-bronkode te onttrek.
-- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge is 'n eenvoudige **Burp Suite extension** om **paramters en endpoints** uit die requests te onttrek om 'n custom wordlist vir fuzzing en enumerasie te skep.
+- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp extension om path en params in JS files te vind.
+- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n tool wat gegewe die .js.map URL die beautified JS kode kry.
+- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Hierdie is 'n tool wat gebruik word om endpoints vir 'n gegewe target te ontdek.
+- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek links vanaf die wayback machine (laai ook die responses in die wayback af en soek vir meer links).
+- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (selfs deur forms in te vul) en vind ook sensitiewe inligting deur spesifieke regexes.
+- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-feature GUI web security Crawler/Spider ontwerp vir kuberveiligheidsprofessionals.
+- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go package en [command-line tool](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) vir die onttrekking van URLs, paths, secrets, en ander interessante data uit JavaScript bronkode.
+- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge is 'n eenvoudige **Burp Suite extension** om **die parameters en endpoints te onttrek** uit requests om custom wordlist vir fuzzing en enumerasie te skep.
- [**katana**](https://github.com/projectdiscovery/katana) (go): Awesome tool hiervoor.
- [**Crawley**](https://github.com/s0rg/crawley) (go): Druk elke link wat dit kan vind.
### Brute Force directories and files
-Begin met **brute-forcing** vanaf die root-gids en maak seker om **al** die **gevonde directories** te brute-force met **dié metode** en alle directories wat deur die **Spidering** ontdek is (jy kan dit **rekursief** doen en aan die begin van die gebruikte wordlist die name van die gevonde directories toevoeg).\
+Begin met **brute-forcing** vanaf die root vouer en maak seker om **alle** die **directories wat gevind word** te brute-force deur **hierdie metode** en al die directories **ontdek** deur die **Spidering** (jy kan dit rekursief brute-forceer en by die begin van die gebruikte wordlist die name van die gevonde directories bysit).\
Tools:
-- **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Ondersteun self-getekende sertifikate en rekursiewe soektog. Baie stadiger vergeleke met die ander opsies.
-- [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Dit laat nie self-getekende sertifikate toe nie maar** ondersteun rekursiewe soektog.
-- [**Gobuster**](https://github.com/OJ/gobuster) (go): Ondersteun self-getekende sertifikate, dit het egter **nie** 'n **rekursiewe** soektog nie.
-- [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Vinnig, ondersteun rekursiewe soektog.**
+- **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **traag**) maar funksioneel. Laat self-gesertifiseerde sertifikate toe en rekursiewe soektog. Te stadig vergeleke met die ander opsies.
+- [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Dit laat nie self-gesertifiseerde sertifikate toe nie maar** laat rekursiewe soektog toe.
+- [**Gobuster**](https://github.com/OJ/gobuster) (go): Dit laat self-gesertifiseerde sertifikate toe, dit **het nie** **rekursiewe** soektog nie.
+- [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Fast, supports recursive search.**
- [**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)- Vinnig: `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 URLs, "gedupliseerde" URLs sal verwyder.
-- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp Extension om 'n lys van directories te skep vanaf die burp history van verskeie bladsye.
-- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URLs met gedupliseerde funksionaliteite (gebaseer op js imports).
-- [**Chamaleon**](https://github.com/iustin24/chameleon): Gebruik wapalyzer om gebruikte tegnologieë te ontdek en kies die woordlyste om te gebruik.
+- [**ffuf** ](https://github.com/ffuf/ffuf)- Fast: `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 tool wat gegewe 'n lys van gevonde URLs "gedupliseerde" URLs sal verwyder.
+- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp Extension om 'n lys directories te skep vanaf die burp history van verskeie bladsye.
+- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met gedupliseerde funksionaliteite (gebaseer op js imports).
+- [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë te detect en kies die wordlists om te gebruik.
-**Aanbevole woordlyste:**
+**Aanbevole woordeboeke:**
- [https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt](https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt)
- [**Dirsearch** included dictionary](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
@@ -269,41 +268,41 @@ Tools:
- _/usr/share/wordlists/dirb/big.txt_
- _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
-Let wel dat elke keer as 'n nuwe directory tydens brute-forcing of spidering ontdek word, dit weer Brute-Forced moet word.
+_Let daarop dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spidering, dit Brute-Forced moet word._
-### Wat om op elke gevonde lĂȘer te kontroleer
+### What to check on each file found
-- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat vatbaar kan wees vir takeovers.
-- **File Backups**: Sodra jy al die lĂȘers gevind het, soek vir rugsteunweergawes 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 and file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** gebruik.**
-- **Discover new parameters**: Jy kan tools 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 versteekte parameters te ontdek. Indien moontlik, probeer om versteekte parameters op elke uitvoerbare web-lĂȘer te soek.**
+- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke links binne HTML's wat vatbaar kan wees vir takeovers.
+- **File Backups**: Sodra jy al die files gevind het, soek na backups van alle uitvoerbare files ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n backup is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp and file.old._ Jy kan ook die tool [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** gebruik.**
+- **Discover new parameters**: Jy kan tools 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 verstekte parameters te ontdek. Indien moontlik, kan jy probeer om verstekte parameters op elke uitvoerbare web file te soek.**
- _Arjun all default wordlists:_ [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)
-- **Comments:** Kontroleer die comments van al die lĂȘers; jy kan **credentials** of **versteekte funksionaliteit** vind.
-- As jy 'n **CTF** speel, is 'n "algemene" truuk om **inligting** in comments regs op die **bladsy** te **versteek** (deur honderde spasies te gebruik sodat jy die data nie sien as jy die bronkode in die blaaier oopmaak nie). 'n Ander moontlikheid is om verskeie reëls op te neem en inligting in 'n comment onder aan die webblad te versteek.
-- **API keys**: As jy enige API key vind, is daar 'n gids wat aandui hoe om API keys van verskeie 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**]()**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
-- Google API keys: As jy 'n API key vind wat soos **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik lyk, kan jy die projek [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) gebruik om te kontroleer watter apis die sleutel kan toegang gee.
-- **S3 Buckets**: Terwyl jy spidering doen, kyk of enige subdomain of enige skakel met 'n S3 bucket verband hou. In daardie geval, [**kontroleer** die **toestemmings** van die bucket](buckets/index.html).
+- **Comments:** Kontroleer die comments van alle files; jy kan **credentials** of **hidden functionality** daar vind.
+- As jy in 'n **CTF** speel, is 'n "gewone" truuk om **inligting** in comments regs van die **bladsy** te **versteek** (deur **honderde** spasies te gebruik sodat jy die data nie sien as jy die source met die blaaier oopmaak nie). 'n Ander moontlikheid is om verskeie nuwe lyne te gebruik en inligting in 'n comment aan die **onderkant** van die webblad te verstop.
+- **API keys**: As jy enige API key vind is daar 'n gids wat aandui hoe om API keys 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**]()**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
+- Google API keys: As jy 'n API key vind wat soos **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik lyk kan jy die projek [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) gebruik om te kyk watter apis die sleutel kan toegang gee.
+- **S3 Buckets**: Terwyl jy spider, kyk of enige **subdomain** of enige **link** verband hou met 'n **S3 bucket**. In daardie geval, [**check** the **permissions** of the bucket](buckets/index.html).
-### Spesiale vondste
+### Special findings
-**Terwyl** jy die **spidering** en **brute-forcing** doen, kan jy **interessante** **items** vind wat jy moet **notuleer**.
+**Terwyl** jy die **spidering** en **brute-forcing** uitvoer, kan jy **interessante** **vindings** kom wat jy moet **aanteken**.
**Interessante lĂȘers**
-- Kyk vir **links** na ander lĂȘers binne die **CSS**-lĂȘers.
-- [As jy 'n _**.git**_ lĂȘer vind, kan sekere inligting onttrek word](git.md)
-- As jy 'n _**.env**_ vind, kan inligting soos api sleutels, db wagwoorde en ander inligting gevind word.
-- As jy **API endpoints** vind, behoort jy [dit ook te toets](web-api-pentesting.md). Dit is nie lĂȘers nie, maar sal waarskynlik soos lĂȘers lyk.
-- **JS files**: In die spidering-afdeling is verskeie tools genoem wat paadjies uit JS-lĂȘers kan onttrek. Dit sal ook interessant wees om **elke JS-lĂȘer wat gevind is te monitor**, aangesien 'n verandering soms aandui dat 'n potensiĂ«le kwesbaarheid in die kode ingebring is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)** gebruik.**
-- Jy moet ook ontdekte JS-lĂȘers kontroleer met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) om te sien of dit kwesbaar is.
+- Kyk vir **links** na ander files binne die **CSS** files.
+- [If you find a _**.git**_ file some information can be extracted](git.md)
+- As jy 'n _**.env**_ vind kan inligting soos api keys, dbs passwords en ander data gevind word.
+- As jy **API endpoints** vind, [should also test them](web-api-pentesting.md). Dit is nie lĂȘers nie, maar sal waarskynlik "soos" lĂȘers lyk.
+- **JS files**: In die spidering afdeling is verskeie tools genoem wat paths uit JS files kan onttrek. Dit sal ook interessant wees om **elke JS file gevind te monitor**, aangesien in sekere gevalle '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 files met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) nagaan om te sien of dit kwesbaar is.
- **Javascript Deobfuscator and 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 with chars:"\[]!+" [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.`
+- **TrainFuck**](https://github.com/taco-cy/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
- In verskeie gevalle sal jy die regular expressions wat gebruik word moet 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 gedetekteer is, aangesien 'n verandering in die parameter of die verskyning van 'n nuwe vorm 'n aanduiding van 'n potensiĂ«le nuwe kwesbare funksionaliteit kan wees.
+- Jy kan ook die files wat vorms bevat monitor, aangesien 'n verandering in die parameter of die verskyning van 'n nuwe vorm 'n aanduiding kan wees van 'n nuwe moontlike kwesbare funksionaliteit.
**403 Forbidden/Basic Authentication/401 Unauthorized (bypass)**
@@ -314,38 +313,38 @@ Let wel dat elke keer as 'n nuwe directory tydens brute-forcing of spidering ont
**502 Proxy Error**
-As enige bladsy met daardie kode reageer, is dit waarskynlik 'n sleg gekonfigureerde proxy. **As jy 'n HTTP versoek stuur soos: `GET https://google.com HTTP/1.1`** (met die host header en ander algemene headers), sal die **proxy** probeer om _**google.com**_ te bereik en jy het 'n SSRF gevind.
+As enige bladsy met daardie kode **antwoord**, is dit waarskynlik 'n **sleg gekonfigureerde proxy**. **As jy 'n HTTP request stuur soos: `GET https://google.com HTTP/1.1`** (met die host header en ander gewone headers), sal die **proxy** probeer om _**google.com**_ te **toegang** en jy het 'n SSRF gevind.
**NTLM Authentication - Info disclosure**
-As die bediener wat vir authentication vra 'n **Windows** bediener is of jy vind 'n login wat vir jou **credentials** vra (en vir 'n **domain** **name** vra), kan jy 'n **inligtingslek** veroorsaak.\
-**Stuur** die **header**: `âAuthorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=â` en weens hoe die **NTLM authentication** werk, sal die bediener met interne inligting (IIS version, Windows version...) binne die header "WWW-Authenticate" antwoord.\
+As die bediener wat authentikeering vra **Windows** is of jy vind 'n login wat vir jou **credentials** vra (en vra vir **domain** **name**), kan jy 'n **inligtingvrylating** veroorsaak.\
+**Stuur** die **header**: `âAuthorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=â` en as gevolg van hoe **NTLM authentication** werk, sal die bediener met interne inligting (IIS version, Windows version...) in die header "WWW-Authenticate" antwoord.\
Jy kan dit **outomatiseer** met die **nmap plugin** "_http-ntlm-info.nse_".
**HTTP Redirect (CTF)**
-Dit is moontlik om **inhoud** binne 'n **Redirect** te plaas. Hierdie inhoud **sal nie aan die gebruiker gewys word nie** (aangesien die blaaier die redirect sal uitvoer) maar iets kan daarin **weggesteek** wees.
+Dit is moontlik om **inhoud** binne 'n **Redirection** te sit. Hierdie inhoud **word nie aan die gebruiker gewys** nie (aangesien die blaaier die redirection sal uitvoer) maar iets kan daarin **weggesteek** wees.
-### Kontrole van Web-kwesbaarhede
+### Web Vulnerabilities Checking
-Nou dat 'n omvattende enumerasie van die web-toepassing uitgevoer is, is dit tyd om vir 'n lang lys moontlike kwesbaarhede te toets. Jy kan die checklist hier kry:
+Nou dat 'n omvattende enumerasie van die web toepassing uitgevoer is, is dit tyd om vir 'n groot aantal moontlike kwesbaarhede te toets. Jy kan die checklist hier vind:
{{#ref}}
../../pentesting-web/web-vulnerabilities-methodology.md
{{#endref}}
-Vind meer inligting oor web vulns by:
+Vind meer inligting oor web vulns in:
- [https://six2dez.gitbook.io/pentest-book/others/web-checklist](https://six2dez.gitbook.io/pentest-book/others/web-checklist)
- [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html)
- [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection)
-### Moniteer bladsye vir veranderinge
+### Monitor Pages for changes
-Jy kan hulpmiddels soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye te monitor vir wysigings wat kwesbaarhede kan inbring.
+Jy kan tools soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye te monitor vir wysigings wat kwesbaarhede kan invoeg.
-### HackTricks Outomatiese Opdragte
+### HackTricks Automatic Commands
```
Protocol_Name: Web #Protocol Abbreviation if there is one.
Port_Number: 80,443 #Comma separated if there is more than one.
diff --git a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md
index e2e98b98e..c6260190f 100644
--- a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md
+++ b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md
@@ -1,17 +1,17 @@
-# Electron Desktop-toepassings
+# Electron Bureaublad-apps
{{#include ../../../banners/hacktricks-training.md}}
## Inleiding
-Electron kombineer 'n plaaslike backend (met **NodeJS**) en 'n frontend (**Chromium**), alhoewel dit sekere sekuriteitsmeganismes van moderne blaaiers ontbreek.
+Electron kombineer 'n plaaslike backend (met **NodeJS**) en 'n frontend (**Chromium**), alhoewel dit 'n paar van die sekuriteitsmeganismes van moderne blaaiers ontbreek.
-Gewoonlik sal jy die Electron-app-kode binne 'n `.asar` aansoek vind; om die kode te verkry moet jy dit uitpak:
+Gewoonlik sal jy die Electron app code binne 'n `.asar`-toepassing vind; om die code te verkry moet jy dit onttrek:
```bash
npx asar extract app.asar destfolder #Extract everything
npx asar extract-file app.asar main.js #Extract just a file
```
-In die bronkode van 'n Electron app, binne `packet.json`, kan jy die aangeduide `main.js`-lĂȘer vind waar sekuriteitskonfigurasies gestel is.
+In die bronkode van ân Electron-app, binne `packet.json`, kan jy die gespesifiseerde `main.js`-lĂȘer vind waarin sekuriteitskonfigurasies gestel is.
```json
{
"name": "standard-notes",
@@ -19,8 +19,8 @@ In die bronkode van 'n Electron app, binne `packet.json`, kan jy die aangeduide
```
Electron het 2 proses-tipes:
-- Main Process (het volledige toegang tot NodeJS)
-- Renderer Process (moet vir sekuriteitsredes beperkte toegang tot NodeJS hĂȘ)
+- Main Process (het volle toegang tot NodeJS)
+- Renderer Process (moet beperkte NodeJS-toegang hĂȘ vir sekuriteitsredes)
.png>)
@@ -32,20 +32,20 @@ let win = new BrowserWindow()
//Open Renderer Process
win.loadURL(`file://path/to/index.html`)
```
-Instellings van die **renderer-proses** kan in die **main-proses** binne die main.js-lĂȘer **gekonfigureer** word. Sommige van die konfigurasies sal **voorkom dat die Electron-toepassing RCE kry** of ander kwesbaarhede as die **instellings korrek gekonfigureer** is.
+Instellings van die **renderer process** kan in die **main process** binne die main.js-lĂȘer **gekonfigureer** word. Sommige van die konfigurasies sal **voorkom dat die Electron application RCE kry** of ander kwesbaarhede as die **instellings korrek gekonfigureer** is.
-Die Electron-toepassing **kan toegang tot die toestel kry** via Node apis alhoewel dit gekonfigureer kan word om dit te voorkom:
+Die Electron application **kan toegang tot die toestel kry** via Node apis alhoewel dit gekonfigureer kan word om dit te voorkom:
-- **`nodeIntegration`** - is `off` per verstek. As dit aan is, laat dit toe om Node-funksies vanaf die renderer-proses te gebruik.
-- **`contextIsolation`** - is `on` per verstek. As dit `off` is, is die main- en renderer-prosesse nie geĂŻsoleer nie.
-- **`preload`** - leeg per verstek.
-- [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - is `off` per verstek. Dit sal die aksies beperk wat NodeJS kan uitvoer.
-- Node-integrasie in Workers
-- **`nodeIntegrationInSubframes`** - is `off` per verstek.
-- As **`nodeIntegration`** **geaktiveer** is, sal dit die gebruik van **Node.js APIs** toelaat in webblaaie wat **gelaai is in iframes** binne 'n Electron-toepassing.
-- As **`nodeIntegration`** **gedeaktiveer** is, sal preloads dan in die iframe gelaai word
+- **`nodeIntegration`** - is `off` standaard. As dit aan is, laat dit toe om toegang te kry tot Node-funksies vanaf die renderer process.
+- **`contextIsolation`** - is `on` standaard. If `off`, main and renderer processes aren't isolated.
+- **`preload`** - leeg standaard.
+- [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - is `off` standaard. Dit sal die aksies wat NodeJS kan uitvoer beperk.
+- Node Integration in Workers
+- **`nodeIntegrationInSubframes`** - is `off` standaard.
+- If **`nodeIntegration`** is **enabled**, this would allow the use of **Node.js APIs** in web pages that are **loaded in iframes** within an Electron application.
+- If **`nodeIntegration`** is **disabled**, then preloads will load in the iframe
-Voorbeeld van konfigurasie:
+Example of configuration:
```javascript
const mainWindowOptions = {
title: "Discord",
@@ -95,15 +95,15 @@ onerror="alert(require('child_process').execSync('ls -l').toString());" />
src="x"
onerror="alert(require('child_process').execSync('uname -a').toString());" />
```
-### Vang netwerkverkeer
+### Vang verkeer
-Wysig die start-main-konfigurasie en voeg die gebruik van 'n proxy soos:
+Wysig die start-main-konfigurasie en voeg die gebruik van 'n proxy by, soos:
```javascript
"start-main": "electron ./dist/main/main.js --proxy-server=127.0.0.1:8080 --ignore-certificateerrors",
```
## Electron Local Code Injection
-As jy 'n Electron App lokaal kan uitvoer, is dit moontlik dat jy dit kan dwing om willekeurige javascript-kode uit te voer. Kyk hoe in:
+As jy 'n Electron App plaaslik kan uitvoer, is dit moontlik dat jy dit kan laat uitvoer arbitrĂȘre javascript code. Kyk hoe in:
{{#ref}}
@@ -112,7 +112,7 @@ As jy 'n Electron App lokaal kan uitvoer, is dit moontlik dat jy dit kan dwing o
## RCE: XSS + nodeIntegration
-As die **nodeIntegration** op **on** gestel is, kan 'n webblad se JavaScript maklik Node.js-funksies gebruik net deur die `require()` aan te roep. Byvoorbeeld, die manier om die calc-toepassing op Windows uit te voer is:
+As die **nodeIntegration** op **on** gestel is, kan 'n webblad se JavaScript Node.js-funksies maklik gebruik net deur die `require()` aan te roep. Byvoorbeeld, die manier om die calc toepassing op Windows uit te voer is:
```html